TUTORIAL DE BASE DE DATOS I. UNIDAD I. Introduccin a las bases de datos. 1. Importancia conceptos b!sicos " ob#eti$os de las bases de datos. Base de datos.%Es una coleccin de archios interrelacionados! son creados con un DBMS. El contenido de una "ase de datos en#lo"a a la in$or%acin concerniente &al%acenadas en archios' de una or#anizacin! de tal %anera (ue los datos est)n dis*oni"les *ara los usuarios! una $inalidad de la "ase de datos es eli%inar la redundancia o al %enos %ini%izarla. +os tres co%*onentes *rinci*ales de un siste%a de "ase de datos son el hard,are! el so$t,are DBMS - los datos a %anejar! as. co%o el *ersonal encar#ado del %anejo del siste%a. Base de datos.% Es un conjunto de datos or#anizados - relacionados entre s.! de $or%a l#ica! (ue en su totalidad dan in$or%acin so"re as*ectos reales. Dato& Conjunto de caracteres con al#n si#ni$icado! *ueden ser nu%)ricos! al$a")ticos o al$anu%)ricos. In'ormacin& Es un conjunto ordenado de datos los cuales son %anejados se#n la necesidad del usuario! *ara (ue un conjunto de datos *ueda ser *rocesado e$iciente%ente - *ueda dar lu#ar a in$or%acin! *ri%ero se de"e #uardar l#ica%ente en archios. 1.1.Rol de las bases de datos " de los sistemas para su procesamiento en la econom(a. En una econo%.a cada ez %s #lo"alizada! la to%a de decisiones en las or#anizaciones se uelen %s co%*lejas! *ues se de"e considerar una %a-or cantidad de in$or%acin - esta de"e re*resentar los datos reales de lo (ue esta ocurriendo en la e%*resa! *or lo (ue directios - ad%inistradores! de"en hacer uso de herra%ientas (ue les *er%itan analizar esa in$or%acin - $inal%ente to%ar la decisin correcta so"re c%o diri#ir la e%*resa. E/isten di$erentes ti*os de siste%as (ue dan a*o-o a la to%a de decisiones! *or lo (ue se de"en analizar las necesidades de la or#anizacin - seleccionar el (ue %ejor se ada*te a ella. Al#unas de las razones %s co%unes *ara hacer uso de estos siste%as se *ueden %encionar las si#uientes0 Ma-or elocidad de *rocesa%iento0 +os siste%as de so*orte a la to%a de decisiones! *er%iten (ue los ad%inistradores *uedan realizar un %a-or n%ero de *rocesa%iento de in$or%acin de una %anera %s r*ida - a "ajo costo. 1 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Incremento de la productividad0 El $or%ar #ru*os es*ecializados *ara la to%a de decisiones *uede ser real%ente costoso *ara la or#anizacin. A tra)s de los siste%as co%*utarizados! los #ru*os *ueden ser %s reducidos - encontrarse en di$erentes lu#ares! lo (ue i%*licar.a una reduccin de costos - o*ti%izacin de recursos. Soporte tcnico: Muchas de las decisiones de los ad%inistradores! inolucran interacciones co%*lejas de in$or%acin en di$erentes "ases de datos dentro de la or#anizacin. +os siste%as de so*orte a las decisiones! *er%iten acceder a toda la in$or%acin de la or#anizacin - a tra)s de la 2e" se *uede tener acceso desde cual(uier lu#ar donde se necesite. Ade%s (ue se *uede o"tener a*o-o a tra)s de #r$icas! sonidos - anlisis de sensi"ilidad! entre otros! de una %anera r*ida - econ%ica. Calidad en las decisiones: +a calidad de las decisiones de los ad%inistradores se e %ejorada nota"le%ente! -a (ue se tiene una %a-or alternatia *ara realizar ealuaciones! los anlisis de ries#os *ueden ser o"tenidos r*ida%ente - ser co%unicados a los de%s %ie%"ros de la or#anizacin a %u- "ajo costo. 3inal%ente *er%iten crear si%ulaciones co%*lejas - un sin $in de escenarios! (ue *er%itirn al ad%inistrador conocer el i%*acto de sus decisiones en la or#anizacin. 1.).*roblemas de redundancia e inconsistencia de datos. Redundancia de datos& si un cliente ha realizado %s de un *edido todos los datos de este cliente estarn re*etidos tantas eces co%o *edidos ha-a! lo %is%o sucede *ara los art.culos esto es o*uesto al *rinci*al o"jetio de una "ase de datos (ue consiste en eitar la re*eticin de los %is%os. +ontrol de la redundancia de datos& Este consiste en lo#rar una %.ni%a cantidad de es*acio de al%acena%iento *ara al%acenar los datos eitando la du*licacin de la in$or%acin. De esta %anera se lo#ran ahorros en el tie%*o de *rocesa%iento de la in$or%acin! se tendrn %enos inconsistencias! %enores costos o*eratios - har el %anteni%iento %s $cil. Incosistencia de los datos& Si una o*eracin de *uesta al d.a %lti*le no se ha realizado co%*leta%ente el estado de la "ase de datos (ueda incoherente - *uede *roducir errores i%*ortantes. Redundancia e inconsistencia de datos& 4uesto (ue los archios (ue %antienen al%acenada la in$or%acin son creados *or di$erentes ti*os de *ro#ra%as de a*licacin e/iste la *osi"ilidad de (ue si no se controla detallada%ente el al%acena%iento! se *ueda ori#inar un du*licado de in$or%acin! es decir (ue la %is%a in$or%acin sea %s de una ez en un dis*ositio de al%acena%iento. Esto au%enta los costos de al%acena%iento - acceso a los datos! ade%s de (ue *uede ori#inar la inconsistencia de los datos 5 es decir diersas co*ias de un %is%o dato no concuerdan entre si 5! *or eje%*lo0 (ue se actualiza la direccin de un cliente en un archio - (ue en otros archios *er%anezca la anterior. 1.,. *roblemas de inte-ridad " se-uridad. *roblemas de se-uridad& +a in$or%acin de toda e%*resa es i%*ortante! aun(ue unos datos lo son %as (ue otros! *or tal %otio se de"e considerar el control de acceso a los %is%os! no todos los usuarios 6 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez *ueden isualizar al#una in$or%acin! *or tal %otio *ara (ue un siste%a de "ase de datos sea con$ia"le de"e de %antener un #rado de se#uridad (ue #arantice la autenti$icacin - *roteccin de los datos. En un "anco *or eje%*lo! el *ersonal de no%inas solo necesita e%*leados del "anco - no a otro ti*o de in$or%acin. *roblemas de inte-ridad& +os alores de datos al%acenados en la "ase de datos de"en satis$acer cierto ti*o de restricciones de consistencia. Estas restricciones se hacen cu%*lir en el siste%a aadiendo cdi#os a*ro*iados en los diersos *ro#ra%as de a*licacin. .antenimiento de la inte-ridad& +a inte#ridad de los datos es la (ue #arantiza la *recisin o e/actitud de la in$or%acin contenida en una "ase de datos. +os datos interrelacionados de"en sie%*re re*resentar in$or%acin correcta a los usuarios. 1.7. Ob#eti$os de las bases de datos. Independencia de datos " 'unciones as( como consultas no planeadas. E/isten "sica%ente dos ti*os de inde*endencia0 a. INDE*ENDEN+IA /ISI+A.% Esta se *resenta cuando es *osi"le la %odi$icacin del es(ue%a $.sico sin a$ectar a los es(ue%as restantes. +as *rinci*ales razones *ara llear a ca"o una %odi$icacin del es(ue%a $.sico sern un ajuste en el hard,are de al%acena%iento o una redistri"ucin de los datos en )l. ". INDE*ENDEN+IA LO0I+A.% 8curre cuando se %odi$ica el es(ue%a conce*tual sin a$ectar al resto de los es(ue%as. Bsica%ente se %odi$ica el es(ue%a conce*tual cuando ca%"ian las caracter.sticas de los datos a al%acenar. Independencia de los datos. En las a*licaciones "asadas en archios! el *ro#ra%a de a*licacin de"e conocer tanto la or#anizacin de los datos co%o las t)cnicas (ue el *er%iten acceder a los datos. En los siste%as DBMS los *ro#ra%as de a*licacin no necesitan conocer la or#anizacin de los datos en el disco duro. Este total%ente inde*endiente de ello. Independencia de los datos. 4ro*iedad (ue ase#ura (ue los *ro#ra%as de a*licacin sean inde*endientes de los ca%"ios realizados en datos (ue no usan o en detalles de re*resentacin $.sica de los datos a los (ue acceden ). Sistemas de mane#o de bases de datos. ).1.Or-ani1acin '(sica " l-ica. En el nivel interno se descri"e la estructura $.sica de la "ase de datos %ediante un esquema interno. Este es(ue%a se es*eci$ica %ediante un %odelo $.sico - descri"e todos los detalles *ara el al%acena%iento de la "ase de datos! as. co%o los %)todos de acceso. 9 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez En el nivel conceptual se descri"e la estructura de toda la "ase de datos *ara una co%unidad de usuarios &todos los de una e%*resa u or#anizacin'! %ediante un esquema conceptual. Este es(ue%a oculta los detalles de las estructuras de al%acena%iento - se concentra en descri"ir entidades! atri"utos! relaciones! o*eraciones de los usuarios - restricciones. En este niel se *uede utilizar un %odelo conce*tual o un %odelo l#ico *ara es*eci$icar el es(ue%a. En el nivel externo se descri"en arios esquemas externos o vistas de usuario. Cada es(ue%a e/terno descri"e la *arte de la "ase de datos (ue interesa a un #ru*o de usuarios deter%inado - oculta a ese #ru*o el resto de la "ase de datos. En este niel se *uede utilizar un %odelo conce*tual o un %odelo l#ico *ara es*eci$icar los es(ue%as. ).).Len-ua#es de bases de datos& len-ua#es de descripcin de datos de mane#o de datos de consulta " de pro-ramacin. El DBMS es un conjunto de *ro#ra%as (ue se encar#an de %anejar la creacin - todos los accesos a las "ases de datos. Se co%*one de un len#uaje de de$inicin de datos &DD+0 Data De$inition +an#ua#e'! de un len#uaje de %ani*ulacin de datos &DM+0 Data Mani*ulation +an#ua#e' - de un len#uaje de consulta &S:+0 Structured :uer- +an#ua#e'. El len#uaje de de$inicin de datos &DD+' es utilizado *ara descri"ir todas las estructuras de in$or%acin - los *ro#ra%as (ue se usan *ara construir! actualizar e introducir la in$or%acin (ue contiene una "ase de datos. El len#uaje de %ani*ulacin de datos &DM+' es utilizado *ara escri"ir *ro#ra%as (ue crean! actualizan - e/traen in$or%acin de las "ases de datos. El len#uaje de consulta &S:+' es e%*leado *or el usuario *ara e/traer in$or%acin de la "ase de datos. El len#uaje de consulta *er%ite al usuario hacer re(uisiciones de datos sin tener (ue escri"ir un *ro#ra%a! usando instrucciones co%o el SE+ECT! el 4;8<ECT - el <8IN. =n Len-ua#e de .anipulacin de Datos &Data .ani*ulation Lan#ua#e &DM+'' es un len#uaje *ro*orcionado *or el siste%a de #estin de "ase de datos (ue *er%ite a los usuarios de la %is%a llear a ca"o las tareas de consulta o %ani*ulacin de los datos! or#anizados *or el %odelo de datos adecuado. El len#uaje de %ani*ulacin de datos %s *o*ular ho- d.a es S:+! usado *ara recu*erar - %ani*ular datos en una "ase de datos relacional. Len-ua#e de manipulacin de datos. El D.L &Data Mani*ulation +an#ua#e' nos sire *ara %anejar la in$or%acin contenida en la "ase de datos. Este %anejo consiste "sica%ente en la insercin! recu*eracin! eli%inacin - %odi$icacin de la in$or%acin. El D.L a*licado a niel $.sico ser utilizado *ara realizar *rocesos (ue *er%itan un acceso %s e$iciente a la in$or%acin> en el niel de isin tendr co%o $inalidad %ostrar al usuario destino los datos en una 7 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez $or%a clara - sencilla. E/isten dos ti*os de D.L0 a. DE *RO+EDI.IENTOS.% Es*eci$ican cuales datos ha"rn de ser %ani*ulados - el %)todo (ue se utilizara *ara ello. ". SIN *RO+EDI.IENTOS.% Sola%ente es*eci$ican los datos a %anejar. +os D.L de *rocedi%ientos son %ucho %s e$icientes en lo (ue res*ecta a sus ca*acidades de %anejo - control de la in$or%acin! *ero su co%*lejidad es %a-or. Se de$ine una consulta co%o una o*eracin (ue solicita la recu*eracin de in$or%acin. +a *arte del DM+ (ue se encar#a de *rocesar esta recu*eracin se conoce co%o LENGUAJE DE CONSULA. Len-ua#e de de'inicin de datos. =n es(ue%a de "ase de datos se es*eci$ica *or %edio de un conjunto de de$iniciones (ue se e/*resan %ediante un len#uaje es*ecial lla%ado len#uaje de de$inicin de datos. El resultado de la co%"inacin de sentencias de DD+ es un conjunto de ta"las las cuales se al%acenan en un archio es*ecial lla%ado diccionario de datos. El DDL &Data De$inition +an#ua#e' es a(uel (ue *er%ite descri"ir un es(ue%a de "ase de datos. +as de$iniciones resultantes con$or%aran al DICCI8NA;I8 DE DAT8S. =n DI++IONARIO DE DATOS es un archio (ue contiene %etadatos (ue se consulta antes de leer o %odi$icar datos reales en el siste%a de "ase de datos. ).,.Inter'aces con otros sistemas. +mo /unciona la Inte-racin de Bases de Datos en el 2eb. 4ara realizar una re(uisicin de acceso desde el 2e" hasta una "ase de datos no slo se necesita de un "ro,ser del 2e" - de un Seridor 2e"! sino ta%"i)n de un so$t,are de *rocesa%iento &a*licacin C?I'! el cual es el *ro#ra%a (ue es lla%ado directa%ente desde un docu%ento @TM+ en el cliente. Dicho *ro#ra%a lee la entrada de datos desde (ue *roienen del cliente - to%a cierta in$or%acin de aria"les de a%"iente. El %)todo usado *ara el *aso de datos est deter%inado *or la lla%ada C?I. =na ez se reci"en los datos de entrada &sentencias S:+ o *iezas de ellas'! el so$t,are de *rocesa%iento los *re*ara *ara eniarlos a la inter$az en $or%a de S:+! - lue#o )sta *rocesa los resultados (ue se e/traen de la "ase de datos. A Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +a inter$az contiene las es*eci$icaciones de la "ase de datos necesarias *ara traducir las solicitudes eniadas desde el cliente! a un $or%ato (ue sea reconocido *or dicha "ase. Ade%s! contiene toda la in$or%acin! estructuras! aria"les - lla%adas a $unciones! necesarias *ara co%unicarse con la "ase de datos. El so$t,are de acceso usual%ente es el so$t,are distri"uido con la "ase de datos! el cual *er%ite el acceso a la %is%a! a tra)s de solicitudes con $or%ato. +ue#o! el so$t,are de acceso reci"e los resultados de la "ase de datos! an los %ensajes de error! - los *asa hacia la inter$az! - )sta a su ez! los *asa hasta el so$t,are de *rocesa%iento. Cual(uier otro so$t,are &seridor @TT4! so$t,are de redes! etc.' a#re#a enlaces adicionales a este *roceso de e/traccin de la in$or%acin! -a (ue el so$t,are de *rocesa%iento *asa los resultados hacia el seridor 2e"! - )ste hasta el "ro,ser del 2e" &-a sea directa%ente o a tra)s de una red'. +ate-ori1acin de Inter'aces 2eb3DB.S Tradicional%ente en el 2e" se han utilizado docu%entos @TM+ estticos *ara los cuales se crea"an las *osi"les res*uestas ante re(uisiciones del cliente. Este %)todo re(uiere de un #ran desarrollo de a*licaciones - de %anteni%iento de las %is%as. Al interactuar con las "ases de datos! este *roceso se co%*lica an %s. Co%o la necesidad de acceder a "ases de datos desde el 2e" se ha incre%entado! han sido creadas ta%"i)n inter$aces (ue %ani*ulan sus escritos *ara *rocesar la in$or%acin! teniendo co%o *unto co%n la ejecucin de sentencias S:+ *ara re(uerir datos a la "ase. A*licaciones de inter$az *ara la interaccin de "ases de datos con el 2e" han sur#ido -a. +os *roductos iniciales son si%*le%ente %odelos del a%"iente clienteBseridor! con una ca*a adicional *ara crear resultados @TM+ (ue *ueden ser istos a tra)s del 2e"! *or %edio de un *rocesa%iento de los datos de la $or%a introducidos *or el cliente. Ade%s! al usar estas inter$aces se *uede crear el *ro#ra%a *rinci*al de la a*licacin. Co%o *uede o"serarse! estas herra%ientas *er%iten construir *oderosas a*licaciones en el 2e"! *ero se re(uiere (ue *ro#ra%adores e/*eri%entados lo#ren un desarrollo a #ran escala. Ta%"i)n! el %anteni%iento de las %is%as es si#ni$icatia%ente %s co%*lejo - e/tenso. =na de las estrate#ias %s $a%osas *ara la creacin de a*licaciones de interaccin con el 2e"! es la de descar#ar del 2e"! a*licaciones o co%*onentes $uncionales (ue se ejecutarn dentro del "ro,ser. Con ellas se realizar un *rocesa%iento co%*lejo del lado del cliente! lo cual re(uiere un #ran es$uerzo *ara crear las *iezas de la a*licacin. Estas estrate#ias *oseen dos caracter.sticas *rinci*ales0 #arantizan la se#uridad tanto en los siste%as de distri"ucin co%o en la co%unicacin (ue se esta"lece con tales a*licaciones! a tra)s de Internet. Ta%"i)n han a*arecido "i"liotecas (ue inclu-en %otores *ro*ios de seridor (ue corren de $or%a conjunta con el Seridor 2e"! lo cual $acilita el desarrollo de nueas a*licaciones. =na a*licacin (ue *osi"ilita interconectar al 2e" con una "ase de datos tiene %uchas entajas! ade%s de (ue las $unciones (ue cu%*len actual%ente los Seridores 2e" - las herra%ientas de desarrollo de a*licaciones 2e"! hacen %s $cil (ue nunca la construccin de a*licaciones %s ro"ustas. Tal ez el %a-or "ene$icio del desarrollo de estas a*licaciones en el 2e" sea la ha"ilidad de (ue sean *ara %lti*les *lata$or%as! sin el costo de distri"uir %lti*les ersiones del so$t,are. Cada una de las inter$aces *ara co%unicar al 2e" con "ases de datos! ha sido creada "asndose en una tecnolo#.a de inte#racin es*ecial! a tra)s de *rocesos de intercone/in es*eciales! (ue sern descritos en el si#uiente a*artado. ecnolo!"as para la Inte!raci#n de $ases de Datos en el %e& El +ommon 0ate4a" Inter'ace 5+0I6. C Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Inter'a1 de *ro-ramacin de Aplicaciones 5A*I6. Inter'a1 de *ro-ramacin de Aplicaciones del Ser$idor Internet 5ISA*I6. 7a$a 7DB+ " 7a$aScript. A*licaciones <aa Conectiidad de Bases de Datos de <aa &<DBC' <aaScri*t Cuando se utiliza una inter$az *ara lo#rar la inte#racin del 2e" con cierta "ase de datos! se *uede eri$icar (ue los *rocesos se#uidos ar.an! de*endiendo de la tecnolo#.a (ue se est) utilizando. Entre estas tecnolo#.as se tienen las si#uientes0 El Common Gate'a( Inter)ace *CGI+, Actual%ente! )sta es la solucin (ue %s se est utilizando *ara la creacin de inter$aces 2e"BDBMS. 3ue *ro"ada *or *ri%era ez en el seridor NCSA. Se ha co%*ro"ado (ue si el Seridor 2e" reci"e un =;+ con una llae! *ara deoler un docu%ento @TM+ co%o res*uesta! tendr (ue car#ar el sericio &*ro#ra%a' (ue le indi(ue las aria"les de a%"iente - de la $or%a @TM+. +a %a-or.a de las eces dicha llae es el Dc#i5"inD. Entre las entajas de la *ro#ra%acin C?I! se tiene su sencillez! -a (ue es %u- $cil de entender! ade%s de ser un len#uaje de *ro#ra%acin inde*endiente! -a (ue los escritos C?I *ueden ela"orarse en arios len#uajes. Ta%"i)n es un estndar *ara usarse en todos los seridores 2e"! - $uncionar "ajo una ar(uitectura inde*endiente! -a (ue ha sido creado *ara tra"ajar con cual(uier ar(uitectura de seridor 2e". Co%o la a*licacin C?I se encuentra $uncionando de $or%a inde*endiente! no *one en *eli#ro al seridor! en cuanto al cu%*li%iento de todas las tareas (ue )ste se encuentre realizando! o al acceso del estado interno del %is%o. 4ero el C?I *resenta cierta desentaja en su e$iciencia! de"ido a (ue el Seridor 2e" tiene (ue car#ar el *ro#ra%a C?I - conectar - desconectar con la "ase de datos cada ez (ue se reci"e una re(uisicin. Ade%s! no e/iste un re#istro del estado del seridor! sino (ue todo ha- (ue hacerlo %anual%ente. Inter)a- de .ro!ramaci#n de Aplicaciones *A.I+, Es un conjunto de rutinas! *rotocolos - herra%ientas *ara construir a*licaciones de inter$az. =na "uena A4I hace %s $cil el tra"ajo de desarrollo de un *ro#ra%a! -a (ue de"e *roeer todos los "lo(ues *ara construirlo. El *ro#ra%ador lo nico (ue hace es *oner todos los "lo(ues juntos. A4I est diseado es*ecial%ente *ara los *ro#ra%adores! -a (ue #arantiza (ue todos los *ro#ra%as (ue utilizan A4I! tendrn inter$aces si%ilares. Asi%is%o! esto le $acilita al usuario a*render la l#ica de nueos *ro#ra%as. Cuando se realiza una re(uisicin! el seridor lla%ar al A4I! "rindando la entaja de dis*oner de una %a-or cantidad de sericios. Inter)a- de .ro!ramaci#n de Aplicaciones del Servidor Internet *ISA.I+, Es la inter$az *ro*uesta *or Microso$t co%o una alternatia %s r*ida (ue el C?I! - -a est incluida en el Seridor Microso$t Internet In$or%ation &IIS'. As. co%o los escritos C?I! los *ro#ra%as escritos usando ISA4I ha"ilitan un usuario re%oto *ara ejecutar un *ro#ra%a! "usca in$or%acin dentro de una "ase de datos! o interca%"ia in$or%acin con otro so$t,are localizado en el seridor. E Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +os *ro#ra%as escritos usando la inter$az ISA4I son co%*ilados co%o "i"liotecas de enlace din%ico &D++ 5 D-na%ic +inF +i"rar-'! -a (ue son car#ados *or el seridor 2e" cuando )ste se inicia. Dichos *ro#ra%as se uelen residentes en %e%oria! *or lo (ue se ejecutan %ucho %s r*ido (ue las a*licaciones C?I! de"ido a (ue re(uieren %enos tie%*o de uso de C4= al no iniciar *rocesos se*arados. =no de los *ro#ra%as ISA4I %s usados es el @TT48DBC.D++ (ue se usa *ara eniar -Bo deoler in$or%acin hacia - desde las "ases de datos! a tra)s de 8DBC. Ade%s! ISA4I *er%ite realizar un *rocesa%iento *reio de la solicitud - uno *osterior de la res*uesta! con lo cual %ani*ula la solicitudBres*uesta @TT4. +os $iltros ISA4I *ueden utilizarse *ara a*licaciones tales co%o autenticacin! acceso o a*ertura de sesin. Java/ JD$C ( Java Script, <aa o$rece un a%"iente de *ro#ra%acin %u- sencillo! ro"usto! din%ico! de *ro*sito #eneral! orientado a o"jetos - %lti*les *lata$or%as! creado *or Sun MicroS-ste%s. Es tanto un co%*ilador co%o un len#uaje int)r*rete. El cdi#o $uente de <aa es conertido en instrucciones "inarias si%*les! - co%*ilado con un $or%ato uniersal. El Co%*ilador realiza todas las actiidades de un *rocesador real en un a%"iente irtual %s se#uro. Es decir! ejecuta instrucciones! crea - %ani*ula in$or%acin! car#a - hace re$erencia a "lo(ues de cdi#o nueos. El Int)r*rete! (ue es *e(ueo - %u- til! es ca*az de ser i%*lantado en cual(uier $or%a (ue se desee *ara un siste%a o*eratio *articular. Este *uede correr co%o una a*licacin inde*endiente! o co%o una *arte de otro so$t,are! tal co%o el 2e" Bro,ser. El conce*to de <aa es di$erente al de C?I! -a (ue el C?I se ejecuta en el seridor! %ientras (ue <aa se ejecuta en el cliente. Aplicaciones Java, +os *ro#ra%adores *ueden desarrollar *e(ueas a*licaciones! las cuales *er%iten tener sitios 2e" con una #ran $uncionalidad en cuanto a0 ani%acin! actualizacin en io! interaccin "idireccional - %s. Al inte#rarse en una *#ina 2e"! las a*licaciones de <aa tienen acceso a0 ;ecreacin de #r$icos e/*ertos. Interaccin en tie%*o real con los usuarios. Actualizacin en io de la in$or%acin. Interaccin instantnea con los seridores a tra)s de la red. +as a*licaciones de <aa *ueden o"tenerse en cual(uier seridor con esta tecnolo#.a - $uncionan de $or%a se#ura "ajo cual(uier *lata$or%a o ar(uitectura de C4=! *er%itiendo introducirlas en *#inas @TM+. +as a*licaciones son *ro#ra%as inde*endientes! tales co%o el "ro,ser @ot<aa. .rocesamiento Cliente0Servidor. 4or lo #eneral! las a*licaciones 2e" son *rocesadas co%*leta%ente en el lado del seridor! lo cual no es *recisa%ente lo %s a*ro*iado! -a (ue si#ni$ica un uso e/cesio de %e%oria! %anteniendo al usuario en la es*era %ientras ter%ina de ejecutarse. 4ero los "ro,ser <aa &del lado del usuario' *ueden ejecutar a*licaciones! - no slo des*le#ar docu%entos @TM+! *oniendo a correr el *roceso en el lu#ar a*ro*iado. +as a*licaciones clsicas *roeen de in$or%acin acerca de los ti*os de $or%ato &ti*os MIME'. +os "ro,ser del 2e" r*idos sern ca*aces de a*render c%o tratar con nueos *rotocolos - dar $or%ato din%ica%ente a los datos. G Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Se!uridad . <aa est diseado *ara *roeer la %/i%a se#uridad *osi"le en redes *"licas! con %lti*les $or%as de se#uridad ante irus! *osi"les inasiones o accesos incorrectos! archios "asura! etc. <aa es co%o una ersin de CHH! en la cual se *uede causar cual(uier dao. Es $uncional co%o C - %odular Co%o CHH. Conectividad de $ases de Datos de Java *JD$C+, Se considera el *ri%er *roducto estndar de <aa con DBMS! creado - o$recido *or *ri%era ez en %arzo de 1IIC. Crea una inter$az con un niel de *ro#ra%acin (ue le *er%ite co%unicarse con las "ases de datos %ediante un conce*to si%ilar al de co%*onentes 8DBC! el cual se ha conertido en el estndar (ue se utiliza en co%*utadoras *ersonales o en redes locales. El estndar de <DBC est "asado en un niel de inter$az con instrucciones S:+ JB8*en! (ue es "sica%ente lo %is%o (ue en 8DBC. +as clases de o"jetos *ara iniciar la transaccin con la "ase de datos! estn escritas co%*leta%ente en <aa! lo cual *er%ite %antener la se#uridad! ro"ustez - *orta"ilidad de este a%"iente. El *uente <DBC58DBC %ani*ula la traduccin de lla%adas <DBC a a(uellas (ue *uedan ser entendidas *or el cliente 8DBC a un niel de len#uaje C. JavaScript, Es un len#uaje %u- *oderoso - es*ecial%ente diseado *ara la creacin de escritos! (ue se alojan dentro de un docu%ento @TM+. Dicho len#uaje es *ro*iedad de Netsca*e. Es un A4I *ro#ra%a"le (ue *er%ite crear escritos de eentos! o"jetos - acciones! "ajo cual(uier *lata$or%a. ?racias a (ue <aaScri*t es *arte de la cone/in en io! se *uede usar *ara crear interacciones entre docu%entos @TM+! 4lu#5ins &a*licaciones (ue corren dentro del "ro,ser del 2e"' - <aa. I Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez ,. Usuarios de las bases de datos. ,.1.Usuarios 'inales. ;e(uieren tener acceso directo a la "ase de datos *ara realizar consultas! %odi$icaciones - #enerar re*ortes! de hecho la "ase de datos e/iste *ara ellos. Dentro de este ti*o de usuarios tene%os la si#uiente clasi$icacin. Espor1dicos, 4ersonas (ue utilizan la "ase de datos al#unas eces *ara solicitar in$or%acin con di$erentes criterios. Simples o paramtrico, 3or%an el #rueso de la *o"lacin de los usuarios $inales! realizan o*eraciones o transacciones de uso co%n! (ue se han *o"lado e/haustia%ente. En este #ru*o se encuentran las *ersonas (ue utilizan a los siste%as "ancarios! reseraciones de cual(uier ti*o! entre otras. Avan-ados, Son las *ersonas ca*acitadas *ara %ani*ular el S?BD! las cuales tienen re(ueri%ientos co%*lejos de in$or%acin. Aut#nomos, =tilizan "ases de datos *ersonalizadas de $cil uso! cu-o a%"iente es de ti*o #r$ico! es decir! %antiene un a%"iente a%i#a"le. ,.). Dise8adores " desarrolladores. Son las *ersonas encar#adas de disear la "ase de datos - realizar las de$iniciones en el S?BD a niel interno! *ara cu"rir los re(ueri%ientos de los de%s usuarios de la "ase de datos. ,.,. Operadores " capturistas. Son las *ersonas encar#adas de hacer el aciado de la in$or%acin en la "ase de datos! as. co%o de llear a ca"o el $unciona%iento - %anteni%iento del siste%a de in$or%acin. 1K Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 9. Relaciones entre datos. 9.1.Uno a uno. 9.).Uno a $arios. 9.,.:arios a uno. 9.9.:arios a $arios. Limitantes de mapeo. E/isten 7 ti*os de relaciones (ue *ueden esta"lecerse entre entidades! las cuales esta"lecen con cuantas entidades de ti*o B se *ueden relacionar una entidad de ti*o A0 Tipos de relaciones& 2elaci#n uno a uno, Se *resenta cuando e/iste una relacin co%o su no%"re lo indica uno a uno! deno%inado ta%"i)n relacin de %atri%onio. =na entidad del ti*o A solo se *uede relacionar con una entidad del ti*o B! - iceersa> 4or eje%*lo0 la relacin asignacin de automvil (ue contiene a las entidades EM4+EAD8! A=T8! es una relacin 1 a 1! -a (ue asocia a un e%*leado con un nico auto%il *or lo tanto nin#n e%*leado *osee %s de un auto%il asi#nado! - nin#n eh.culo se asi#na a %s de un tra"ajador. Es re*resentado #r$ica%ente de la si#uiente %anera0 A& ;e*resenta a una entidad de cual(uier ti*o di$erente a una entidad B. R& en el dia#ra%a re*resenta a la relacin (ue e/iste entre las entidades. El e/tre%o de la $lecha (ue se encuentra *unteada indica el uno de la relacin! en este caso! una entidad A li#ada a una entidad B. 11 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 2elaci#n uno a muc3os, Si#ni$ica (ue una entidad del ti*o A *uede relacionarse con cual(uier cantidad de entidades del ti*o B! - una entidad del ti*o B solo *uede estar relacionada con una entidad del ti*o A. Su re*resentacin #r$ica es la si#uiente0 Ntese en este caso (ue el e/tre%o *unteado de la $lecha de la relacin de A - B! indica una entidad A conectada a %uchas entidades B. 4uc3os a uno, Indica (ue una entidad del ti*o B *uede relacionarse con cual(uier cantidad de entidades del ti*o A! %ientras (ue cada entidad del ti*o A solo *uede relacionarse con solo una entidad del ti*o B. 4uc3as a muc3as, Esta"lece (ue cual(uier cantidad de entidades del ti*o A *ueden estar relacionados con cual(uier cantidad de entidades del ti*o B. A los ti*os de relaciones antes descritos! ta%"i)n se le conoce co%o cardinalidad, +a cardinalidad nos es*eci$ica los ti*os de relaciones (ue e/isten entre las entidades en el %odelo E5; - esta"lecer con esto las alidaciones necesarias *ara conse#uir (ue los datos de la instancia &alor nico en un %o%ento dado de una "ase de datos' corres*ondan con la realidad. Al#unos eje%*los de cardinalidades de la ida co%n *ueden ser0 Uno a uno. El noiaz#o! el ;3C de cada *ersona! El C=;4 *ersonal! El acta de naci%iento! -a (ue solo e/iste un solo docu%ento de este ti*o *ara cada una de las di$erentes *ersonas. Uno a muc3os. Cliente L Cuenta en un "anco! 4adre5@ijos! Ca%in54asajeros! zoolo#ico5 ani%ales! r"ol L hojas. 16 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 4uc3os a muc3os, Ar(uitecto L *ro-ectos! $iesta L *ersonas! estudiante L %aterias. NOTA& Ca"e %encionar (ue la cardinalidad *ara cada conjunto de entidades de*ende del *unto de ista (ue se le de al %odelo en estudio! claro esta! sujetndose a la realidad. 8tra clase de li%itantes lo constitu-e la dependencia de existencia, ;e$iri)ndonos a las %is%as entidades A - B! deci%os (ue si la entidad A de*ende de la e/istencia de la entidad B! entonces A es de*endiente de e/istencia *or B! si eli%ina%os a B tendr.a%os (ue eli%inar *or consecuente la entidad A! en este caso B es la entidad Dominante - A es la entidad subordinada. ;. Tipos de modelos de datos& ;.1..odelos de lista o planos. ;.)..odelos #er!r<uicos o arborescentes. El %odelo jerr(uico es si%ilar al %odelo de red! los datos - las relaciones se re*resentan %ediante re#istros - enlaces. Se di$erencia del %odelo de red en (ue los re#istros estn or#anizados co%o colecciones de r"oles. =na base de datos jerrquica consiste en una coleccin de registros que se conectan entre si por medio de ligas. +os re#istros - las li#as son si%ilares a los del %odelo de red! *ero en el %odelo jerr(uico se or#aniza en $or%a de r"ol con ra.z &donde la ra.z es nodo $icticio'> de tal %anera (ue una "ase de datos jerr(uica es una coleccin de ar"oles de este ti*o! $or%ando un "os(ue. A cada rbol con raz con raz se le denomina rbol de base de datos. En este %odelo un re#istro *uede tener (ue re*etirse en arios sitios (ue *uede ocasionar los si#uientes *ro"le%as0 19 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez M ;ies#os de la inconsistencia al llear a ca"o actualizaciones. M Ineita"le des*erdicio de es*acio en el %edio de al%acena%iento secundario. Dia!ramas de estructura de 1r&ol =n dia#ra%a de estructura de r"ol es la re*resentacin de un es(ue%a de la "ase de datos jerr(uica! de ah. el no%"re! -a (ue un r"ol esta desarrollado *recisa%ente en orden descendente $or%ando una estructura jerr(uica. Este ti*o de dia#ra%a est $or%ado *or dos co%*onentes "sicos0 5 ;ectn#ulos0 (ue re*resentan a los de re#istros. 5 +.neas0 (ue re*resentan a los enlaces o li#as entre los re#istros. =n dia#ra%a de r"ol tiene el *ro*sito de es*eci$icar la estructura #lo"al de la "ase de datos. =n dia#ra%a de estructura de r"ol es si%ilar a un dia#ra%a de estructura de datos en el %odelo de red. +a *rinci*al di$erencia es (ue en el %odelo de red los re#istros se or#anizan en $or%a de un #ra$o ar"itrario! %ientras (ue en %odelo de estructura de r"ol los re#istros se or#anizan en $or%a de un r"ol con ra.z. Caracter.sticas de las estructuras de r"ol0 El r"ol no *uede contener ciclos. +as relaciones (ue e/isten en la estructura de"en ser de tal $or%a (ue solo e/istan relaciones %uchos a uno o uno a uno entre un *adre - un hijo. Diagrama de estructura de rbol En este dia#ra%a *ode%os o"serar (ue las $lechas estn a*untando de *adres a hijos. =n *adre &ori#en de una ra%a' *uede tener una $lecha a*untando a un hijo! *ero un hijo sie%*re *uede tener una $lecha a*untando a su *adre. El es(ue%a de una "ase de datos se re*resenta co%o una coleccin de dia#ra%as de estructura de r"ol. 4ara cada dia#ra%a e/iste una nica instancia de r"ol de "ase de datos. +a ra.z de este r"ol es un nodo $icticio. +os hijos de ese nodo son instancias de los re#istros de la "ase de datos. Cada una de las instancias (ue son hijos *ueden tener a su ez! arias instancias de arios re#istros. +as re*resentaciones se#n las cardinalidades son0 Considere%os la relacin alu%no5%ateria sin atri"uto descri*tio. 17 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +a trans$or%acin se#n las cardinalidades seria0 Cuando la relacin es uno a uno. Cuando la relacin es uno a %uchos. Cuando la relacin es %uchos a uno. Cuando la relacin es %uchos a %uchos. Cuando la relacin tiene atri"utos descri*tios! la trans$or%acin de un dia#ra%a E5; a estructura de r"ol se llea a ca"o cu"riendo los si#uientes *asos0 1. Crear un nueo ti*o de re#istro. 6. Crear los enlaces corres*ondientes. Considere%os (ue a la relacin Alu%no5Materia aadi%os el atri"uto Cal a la relacin (ue e/iste entre a%"as! entonces nuestro %odelo E5; resulta0 Aadir el dia#ra%a E5; 1A Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Se#n las cardinalidades los dia#ra%as de estructura de r"ol *ueden (uedar de la si#uiente %anera0 Cuando la relacin es uno a uno. Cuando la relacin es uno a %uchos. Cuando la relacin es Muchos a uno. Cuando la relacin es Muchos a Muchos. Si la relacin es %uchos a %uchos entonces la trans$or%acin a dia#ra%as de r"ol es un *oco %s co%*leja de"ido a (ue el %odelo jerr(uico solo se *ueden re*resentar las relaciones uno a uno o uno a %uchos. E/isten arias $or%as distintas de trans$or%ar este ti*o de relaciones a estructura de r"ol! sin e%"ar#o todas las $or%as constitu-en la re*eticin de al#unos re#istros. 1C Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +a decisin de (u) %)todo de trans$or%acin de"e utilizarse de*ende de %uchos $actores! entre los (ue se inclu-en0 5 El ti*o de consultas es*eradas en la "ase de datos. 5 El #rado al (ue el es(ue%a #lo"al de "ase de datos (ue se est %odelando se ajusta al dia#ra%a E5; dado. A continuacin se descri"e la $or%a de trans$or%ar un dia#ra%a E5; a estructura de r"ol con relaciones %uchos a %uchos. Su*one%os el eje%*lo de la relacin alu%no5%ateria. 1. Crear dos dia#ra%as de estructura de r"ol distintos T1 -T6! cada uno de los cuales inclu-e los ti*os de re#istro alu%no - %ateria! en el r"ol T1 la ra.z es alu%no - en T6 la ra.z es %ateria. 6. Crear los si#uientes enlaces0 =n enlace %uchos a uno del re#istro cuenta al re#istro Alu%no! en T1 =n enlace %uchos a uno del ti*o de re#istro cliente al ti*o de re#istro %ateria en T6. Co%o se %uestra en el si#uiente dia#ra%a0 ;.,..odelos reticulares. +os datos en el %odelo de red se re*resentan %ediante colecciones de re#istros - las relacciones entre los datos se re*resentan %ediante enlaces! los cuales *ueden erse co%o *unteros. +ON+E*TOS BASI+OS. =na "ase de datos de red se co%*one *or una coleccin de re#istras (ue se conectan entre si *or %edio de li#as. 1E Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez =n re#istro e(uiale a una entidad - un ca%*o a un atri"uto del %odelo entidad relacin. +os ca%*os contienen e/clusia%ente alores at%icos. =na li#a es una relacin (ue se esta"lece sola%ente entre dos re#istros> es decir> de"e utilizarse una li#a *ara cada relacin entre una *areja de re#istros. Eje%*lo0 C+IENTES C=ENTAS DIA0RA.AS DE ESTRU+TURAS DE DATOS 4er%iten %ostrar #r$ica%ente el es(ue%a de una "ase de datos en el %odelo de red. Sus co%*onentes *rinci*ales son0
5 Cajas o cuadros0 re*resentan re#istros. 5 +.neas0 re*resentan li#as. .ODELO ENTIDAD % RELA+I=N ;ED C+IENTE C=ENTA El caso anterior %uestra la conersin del %odelo entidad relacin al %odelo de red *ara una relacin si%*le donde no e/isten atri"utos descri*tios en la relacin. CASOS ES.ECIALES, a' +A ;E+ACINN TIENE AT;IB=T8S DESC;I4TIO8S E5; 1G Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez D. E. D. ;ED "' +a relacin conecta a %as de dos conjuntos de entidades. Eje%*lo0 1I Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez D. E. D. ;ED ;.9.El modelo relacional. El %odelo relacional re*resenta los datos - relaciones entre los datos %ediante una coleccin de ta"las! cu-as colu%nas tienen no%"res nicos. 6K Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez UNIDAD II. Bases de datos relacinales. 1. Estructuras b!sicas de las bases de datos relacionales " normali1acin. 1.1.Relaciones tablas o entidades. =na relaci#n es la asociacin (ue e/iste entre dos a %s entidades. =n con5unto de relaciones es un #ru*o de relaciones del %is%o ti*o. +a cantidad de entidades en una relacin deter%ina el !rado de la relacin! *or eje%*lo la relacin A+=MN85MATE;IA es de #rado 6! -a (ue interienen la entidad A+=MN8 - la entidad MATE;IA! la relacin 4AD;ES! *uede ser de #rado 9! -a (ue inolucra las entidades 4AD;E! MAD;E e @I<8. =na entidad es un o"jeto (ue e/iste - se distin#ue de otros o"jetos de acuerdo a sus caracter.sticas lla%adas atri"utos. +as entidades *ueden ser concretas co%o una *ersona o a"stractas co%o una $echa. =n con5unto de entidades es un #ru*o de entidades del %is%o ti*o. 4or eje%*lo el conjunto de entidades C=ENTA! *odr.a re*resentar al conjunto de cuentas de un "anco J! o A+=MN8 re*resenta a un conjunto de entidades de todos los alu%nos (ue e/isten en una institucin. =na entidad se caracteriza - distin#ue de otra *or los atri&utos! en ocasiones lla%adas *ro*iedades! (ue re*resentan las caracter.sticas de una entidad. +os atri"utos de una entidad *ueden to%ar un conjunto de alores *er%itidos al (ue se le conoce co%o dominio del atri"uto. As. cada entidad se descri"e *or %edio de un conjunto de *arejas $or%adas *or el atri"uto - el alor de dato. @a"r una *areja *ara cada atri"uto del conjunto de entidades. 61 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +a $uncin (ue tiene una relacin se lla%a papel! #eneral%ente no se es*eci$ican los *a*eles o roles! a %enos (ue se (uiera aclarar el si#ni$icado de una relacin. Dia#ra%a E5; &sin considerar los atri"utos! slo las entidades' *ara los %odelos eje%*li$icados0 Dia!rama Entidad62elaci#n Deno%inado *or sus si#las co%o0 E5;> Este %odelo re*resenta a la realidad a tra)s de un es(ue%a #r$ico e%*leando los ter%inolo#.a de entidades! (ue son o"jetos (ue e/isten - son los ele%entos *rinci*ales (ue se identi$ican en el *ro"le%a a resoler con el dia#ra%ado - se distin#uen de otros *or sus caracter.sticas *articulares deno%inadas atributos el enlace (ue (ue ri#e la unin de las entidades esta re*resentada *or la relacin del %odelo. ;ecorde%os (ue un rectn#ulo nos re*resenta a las entidades> una eli*se a los atri"utos de las entidades! - una eti(ueta dentro de un ro%"o nos indica la relacin (ue e/iste entre las entidades! destacando con l.neas las uniones de estas - (ue la llae *ri%aria de una entidad es a(uel atri"uto (ue se encuentra su"ra-ado. A continuacin %ostrare%os al#unos eje%*los de %odelos E5;! considerando las cardinalidades (ue e/isten entre ellos0 2elaci#n Uno a Uno, *roblema& Disear el %odelo E5;! *ara la relacin ;e#istro de auto%il (ue consiste en o"tener la tarjeta de circulacin de un auto%il con los si#uientes datos05 Auto%il5 Modelo! 4lacas! Color 5 Tarjeta de circulacin 54ro*ietario! NoPserie! Ti*o. 66 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Indica%os con este eje%*lo (ue e/iste una relacin de *ertenencia de uno a uno! -a (ue e/iste una tarjeta de circulacin re#istrada *or cada auto%il. En este eje%*lo! re*resenta%os (ue e/iste un solo *residente *ara cada *a.s. 2elaci#n muc3os a muc3os, El si#uiente eje%*lo indica (ue un cliente *uede tener %uchas cuentas! *ero (ue una cuenta *uede lle#ar a *ertenecer a un solo cliente &Deci%os *uede! -a (ue e/isten cuentas re#istradas a $aor de %s de una *ersona'. 2educci#n de dia!ramas E62 a ta&las, =n dia#ra%a E5;! *uede ser re*resentado ta%"i)n a tra)s de una coleccin de ta"las. 4ara cada una de las entidades - relaciones e/iste una ta"la nica a la (ue se le asi#na co%o no%"re el del conjunto de entidades - de las relaciones res*ectia%ente! cada ta"la tiene un n%ero de colu%nas (ue son de$inidas *or la cantidad de atri"utos - las cuales tienen el no%"re del atri"uto. +a trans$or%acin de nuestro eje%*lo Oenta en la (ue interienen las entidades de Oendedor con los atri"utos ;3C! no%"re! *uesto! salario - Art.culo con los atri"utos Clae! descri*cin! costo. Cu-o dia#ra%a E5; es el si#uiente0 Entonces las ta"las resultantes si#uiendo la descri*cin anterior son0 Tabla Empleado. Nombre *uesto Salario R/+ 69 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Te$iloOendedor 6KKK TEATEK161KJQR Cesar Au/iliar entas 16KK C8OE7116KABC Tabla art(culo. +la$e Descripcin +osto A1KK A"anico 7CK C6CK Colcha %atri%onial 16KK Tabla :enta R/+ +la$e TEATEK161KJQR C6CK C8OE7116KABC A1KK Ntese (ue en la ta"la de relacin 5 Oenta 5! contiene co%o atri"utos a las llaes *ri%arias de las entidades (ue interienen en dicha relacin! en caso de (ue e/ista un atri"uto en las relaciones! este atri"uto es ane/ado co%o una $ila %s de la ta"la> 4or eje%*lo si ane/a%os el atri"uto $echa a la relacin enta! la ta"la (ue se ori#inaria ser.a la si#uiente0 R/+ +la$e /ec>a TEATEK161KJQR C6CK 1KB16BIC C8OE7116KABC A1KK 11B16BIC 1.).+olumnas campos o atributos. 1.,.Ren-lones o re-istros. +ampo& Es la unidad %s *e(uea a la cual uno *uede re$erirse en un *ro#ra%a. Desde el *unto de ista del *ro#ra%ador re*resenta una caracter.stica de un indiiduo u o"jeto. Re-istro& Coleccin de ca%*os de i#uales o de di$erentes ti*os. Arc>i$o0 Coleccin de re#istros al%acenados si#uiendo una estructura ho%o#)nea. .ODELO RELA+IONAL 67 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Este modelo opera en los ni$eles conceptual " de $ision " tiene la caracteristica de <ue los resultados de un dise8o muestran caracteristicas bien de'inidas <ue seran utilis para la implementacin del ni$el conceptual. ESTRU+TURA 0ENERAL DE LA BD RELA+IONALES 1.9.+la$es primarias " 'or!neas. Lla$es primarias. Co%o -a se ha %encionado anterior%ente! la distincin de una entidad entre otra se de"e a sus atri"utos! lo cual lo hacen nico. =na llave primaria es a(uel atri"uto el cual considera%os clae *ara la identi$icacin de los de%s atri"utos (ue descri"en a la entidad. 4or eje%*lo! si considera%os la entidad A+=MN8 del Instituto Tecnol#ico de +a 4az! *odr.a%os tener los si#uientes atri"utos0 No%"re! Se%estre! Es*ecialidad! Direccin! Tel)$ono! N%ero de control! de todos estos atri"utos el (ue *odre%os desi#nar co%o llae *ri%aria es el n%ero de control! -a (ue es di$erente *ara cada alu%no - este nos identi$ica en la institucin. Claro (ue *uede ha"er %s de un atri"uto (ue *ueda identi$icarse co%o llae *ri%aria en este caso se selecciona la (ue considere%os %s i%*ortante! los de%s atri"utos son deno%inados llaves secundarias. =na clae o llae *ri%aria es indicada #r$ica%ente en el %odelo E5; con una l.nea de"ajo del no%"re del atri"uto. =no de los *rocesos de %a-or releancia en la %ani*ulacin de una "ase de datos es el de distin#uir entre las diersas entidades - relaciones (ue son %ani*uladas. Entende%os co%o una llae al %edio (ue nos *er%ite identi$icar en $or%a un.oca &nica e ine(u.oca' a una entidad dentro de un conjunto de entidades. E/isten diersas cate#or.as (ue *er%iten clasi$icar los ti*os de llaes a utilizara0 a6 SU*ER %LLA:E .% Es un conjunto de atri"utos %ediante los cuales es *osi"le reconocer a una entidad. Este ti*o de llaes contiene co%n%ente atri"utos ajenos> es decir> atri"utos (ue no son indis*ensa"les *ara llear a ca"o el reconoci%iento del re#istro. Eje%*lo0 6A Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Conjunto de entidades0 Cursos Atri"utos Su*er llaes MNo%"re %ateria No%"re! %at! carrera! se%estre MCarrera No%"re! %at! carrera! unidades MSe%estre No%"re! %at! carrera! se%estre! *eriodo M4eriodo No%"re! %at! carrera M=nidades 5Si el conjunto de atri"utos J es una su*er llae entonces cual(uier conjunto de J ser su*er5llae. b6 LLA:E +ANDIDATO.% Son a(uellas su*er llaes (ue no contienen atri"utos ajenos> es decir! a(uellos conjuntos de atri"utos (ue no tienen un su"conjunto %enor (ue *ueda considerarse co%o su*er llae. c6 LLA:E *RI.ARIA.% Es a(uella llae (ue el diseador de la "ase de datos selecciona entra las llaes candidatos encontradas. E/isten conjuntos de entidades (ue no *oseen los atri"utos necesarios *ara con$or%ar una llae *ri%aria> se les conoce co%o entidad d)"il. Cuando e/isten los atri"utos necesarios *ara $or%ar una llae *ri%aria! se deno%inan entidad $uerte. +as entidades d)"iles se su"ordinan a las entidades $uertes. Eje%*lo0 3uerte D)"il 3uerte Nota& ncred - clae son las llaes *ri%arias. En el eje%*lo anterior se *retende (ue el *roceso de renta es una entidad a"stracta *ara clari$icar el conce*to de entidad d)"il. No o"stante! la %ejor i%*le%entaron consiste en %ani*ular a la renta co%o una relacin. +as entidades d)"iles no *ueden ser conocidas *or s. solas> con el o"jeto de di$erenciarlas se seleccionan al#unos de sus atri"utos *ara $or%ar un discri%inador. Este discri%inador se asocia con las llaes *ri%arias de las entidades $uertes a las (ue se encuentre su"ordinada *ara $or%ar as. su llae *ri%aria *ro*ia. +os conjuntos de relaciones ta%"i)n tienen llaes *ri%arias. Estas se con$or%an *or las llaes *ri%arias de los conjuntos de entidades (ue se asocian en la relacin - todos los atri"utos descri*tios de la relacin. 6C Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 1.;.Normali1acin. .rimera ( se!unda )orma normal, /ormas normales. Son las t)cnicas *ara *reenir las ano%al.as en las ta"las. De*endiendo de su estructura! una ta"la *uede estar en *ri%era $or%a nor%al! se#unda $or%a nor%al o en cual(uier otra. ;elacin entre las $or%as nor%ales0 *rimera 'orma normal. De)inici#n )ormal: =na relacin ; se encuentra en 13N si - solo s. *or cada ren#ln colu%na contiene alores at%icos. A"reiada co%o 13N! se considera (ue una relacin se encuentra en la *ri%era $or%a nor%al cuando cu%*le lo si#uiente0 1. +as celdas de las ta"las *oseen alores si%*les - no se *er%iten #ru*os ni arre#los re*etidos co%o alores! es decir! contienen un solo alor *or cada celda. 6. Todos los in#resos en cual(uier colu%na&atri"uto' de"en ser del %is%o ti*o. 9. Cada colu%na de"e tener un no%"re nico! el orden de las colu%nas en la ta"la no es i%*ortante. 7. Dos $ilas o ren#lones de una %is%a ta"la no de"en ser id)nticas! aun(ue el orden de las $ilas no es i%*ortante. 4or lo #eneral la %a-or.a de las relaciones cu%*len con estas caracter.sticas! as. (ue *ode%os decir (ue la %a-or.a de las relaciones se encuentran en la *ri%era $or%a nor%al. 4ara eje%*li$icar co%o se re*resentan #r$ica%ente las relaciones en *ri%era $or%a nor%al considere%os la relacin alu%no cursa %ateria cu-o dia#ra%a E5; es el si#uiente0 6E Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Co%o esta relacin %aneja alores at%icos! es decir un solo alor *or cada uno de los ca%*os (ue con$or%an a los atri"utos de las entidades! -a se encuentra en *ri%era $or%a nor%al! #r$ica%ente as. re*resenta%os a las relaciones en 13N. Se-unda 'orma normal. 4ara de$inir $or%al%ente la se#unda $or%a nor%al re(ueri%os sa"er (ue es una dependencia 'uncional& Consiste en edi$icar (ue atri"utos de*enden de otro&s' atri"uto&s'. De)inici#n )ormal: =na relacin ; est en 63N si - solo si est en 13N - los atri"utos no *ri%os de*enden $uncional%ente de la llae *ri%aria. =na relacin se encuentra en se#unda $or%a nor%al! cuando cu%*le con las re#las de la *ri%era $or%a nor%al - todos sus atri"utos (ue no son claes &llaes' de*enden *or co%*leto de la clae . De acuerdo con est de$inicin! cada ta"la (ue tiene un atri"uto nico co%o clae! esta en se#unda $or%a nor%al. +a se#unda $or%a nor%al se re*resenta *or de*endencias $uncionales co%o0 Ntese (ue las llaes *ri%arias estn re*resentadas con do"le cuadro! las $lechas nos indican (ue de estos atri"utos se *uede re$erenciar a los otros atri"utos (ue de*enden $uncional%ente de la llae *ri%aria. ercera )orma normal ( la )orma normal de $o(ce Codd, 4ara de$inir $or%al%ente la 93N necesita%os de$inir dependencia transiti$a& En una a$inidad &ta"la "idi%ensional' (ue tiene *or lo %enos 9 atri"utos &A!B!C' en donde A deter%ina a B B deter%ina a C *ero no deter%ina a A. Tercera 'orma normal. De)inici#n )ormal: 6G Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez =na relacin ; est en 93N si - solo si esta en 63N - todos sus atri"utos no *ri%os de*enden no transitia%ente de la llae *ri%aria. Consiste en eli%inar la de*endencia transitia (ue (ueda en una se#unda $or%a nor%al! en *ocas *ala"ras una relacin esta en tercera $or%a nor%al si est en se#unda $or%a nor%al - no e/isten de*endencias transitias entre los atri"utos! nos re$eri%os a de*endencias transitias cuando e/iste %s de una $or%a de lle#ar a re$erencias a un atri"uto de una relacin. 4or eje%*lo! considere%os el si#uiente caso0 Tene%os la relacin alu%no5cursa5%ateria %anejada anterior%ente! *ero ahora considera%os al ele%ento %aestro! #r$ica%ente lo *ode%os re*resentar de la si#uiente %anera0 4ode%os darnos cuenta (ue se encuentra #ra$icado en se#unda $or%a nor%al! es decir (ue todos los atri"utos llae estn indicados en do"le cuadro indicando los atri"utos (ue de*enden de dichas llaes! sin e%"ar#o en la llae Necono tiene co%o de*endientes a 9 atri"utos en el cual el no%"re *uede ser re$erenciado *or dos atri"utos0 Necono - ;3C &E/iste de*endencia transitia'! *ode%os solucionar esto a*licando la tercera $or%a nor%al (ue consiste en eli%inar estas de*endencias se*arando los atri"utos! entonces tene%os0 6I Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez /orma normal de Bo"ce +odd. Determinante& =no o %s atri"utos (ue! de %anera $uncional! deter%inan otro atri"uto o atri"utos. En la de*endencia $uncional &A!B'55SC! &A!B' son los deter%inantes. De)inici#n )ormal: =na relacin ; esta en 3NBC si - solo si cada deter%inante es una llae candidato. Deno%inada *or sus si#las en in#les co%o BCN3> =na ta"la se considera en esta $or%a si - slo s. cada deter%inante o atri"uto es una llae candidato. Continuando con el eje%*lo anterior! si considera%os (ue en la entidad alu%no sus atri"utos control - no%"re nos *uede hacer re$erencia al atri"utos es*.! entonces deci%os (ue dichos atri"utos *ueden ser llaes candidato. ?r$ica%ente *ode%os re*resentar la $or%a nor%al de Bo-ce Codd de la si#uiente $or%a0 8"s)rese (ue a di$erencia de la tercera $or%a nor%al! a#ru*a%os todas las llaes candidato *ara $or%ar una #lo"al &re*resentadas en el recuadro' las cuales hacen re$erencia a los atri"uto (ue no son llaes candidato. +uarta " <uinta 'orma norma. +uarta 'orma normal. De)inici#n )ormal: =n es(ue%a de relaciones ; est en 73N con res*ecto a un conjunto D de de*endencias $uncionales - de alores %lti*les s.! *ara todas las de*endencias de alores %lti*les en D de la $or%a J5S5SQ! donde JTU; - QTU;! se cu%*le *or lo %enos una de estas condiciones0 9K Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez M J5S5SQ es una de*endencia de alores %lti*les triial. M J es una su*erllae del es(ue%a ;. 4ara entender %ejor an esto considere%os una a$inidad &ta"la' lla%ada estudiante (ue contiene los si#uientes atri"utos0 Clae! Es*ecialidad! Curso tal - co%o se de%uestra en la si#uiente $i#ura0 +la$e Especialidad +urso SK1 Siste%as Natacin SK1 Bio(u.%ica Danza SK1 Siste%as Natacin BK1 Bio(u.%ica ?uitarra CK9 Ciil Natacin Su*one%os (ue los estudiantes *ueden inscri"irse en arias es*ecialidades - en diersos cursos. El estudiante con clae SK1 tiene su es*ecialidad en siste%as - Bio(u.%ica - to%a los cursos de Natacin - danza! el estudiante BK1 tiene la es*ecialidad en Bio(u.%ica - to%a el curso de ?uitarra! el estudiante con clae CK9 tiene la es*ecialidad de Ciil - to%a el curso de natacin. En esta ta"la o relacin no e/iste de*endencia $uncional *or(ue los estudiantes *ueden tener distintas es*ecialidades! un alor nico de clae *uede *oseer %uchos alores de es*ecialidades al i#ual (ue de alores de cursos. 4or lo tanto e/iste dependencia de $alores m?ltiples. Este ti*o de de*endencias *roduce redundancia de datos! co%o se *uede a*reciar en la ta"la anterior! en donde la clae SK1 tiene tres re#istros *ara %antener la serie de datos en $or%a inde*endiente lo cual ocasiona (ue al realizarse una actualizacin se re(uiera de de%asiadas o*eraciones *ara tal $in. E/iste una de*endencia de alores %lti*les cuando una a$inidad tiene *or lo %enos tres atri"utos! dos de los cuales *oseen alores %lti*les - sus alores de*enden solo del tercer atri"uto! en otras *ala"ras en la a$inidad ; &A!B!C' e/iste una de*endencia de alores %lti*les si A deter%ina alores %lti*les de B! A deter%ina alores %lti*les de C! - B - C son inde*endientes entre s.. En la ta"la anterior Clae deter%ina alores %lti*les de es*ecialidad - clae deter%ina alores %lti*les de curso! *ero es*ecialidad - curso son inde*endientes entre s.. +as de*endencias de alores %lti*les se de$inen de la si#uiente %anera0 Clae 5S5SEs*ecialidad - Clae5S5SCurso> Esto se lee DClae %ultidetr%ina a Es*ecialidad! - clae %ultideter%ina a CursoD 4ara eli%inar la redundancia de los datos! se de"en eli%inar las de*endencias de alores %lti*les. Esto se lo#ra constru-endo dos ta"las! donde cada una al%acena datos *ara sola%ente uno de los atri"utos de alores %lti*les. 4ara nuestro eje%*lo! las ta"las corres*ondientes son0 Ta"la Ees*ecialidad +la$e Especialidad SK1 Siste%as 91 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez BK1 Bio(u.%ica CK9 Ciil Ta"la ECurso +la$e +urso SK1 Natacin SK1 Danza BK1 ?uitarra CK9 Natacin @uinta 'orma normal. De)inici#n )ormal: =n es(ue%a de relaciones ; est en A3N con res*ecto a un conjunto D de de*endencias $uncionales! de alores %lti*les - de *roducto! si *ara todas las de*endencias de *roductos en D se cu%*le *or lo %enos una de estas condiciones0 M &;1! ;6! ;9! ... ;n' es una de*endencia de *roducto triial. M Toda ;i es una su*erllae de ;. +a (uinta $or%a nor%al se re$iere a de*endencias (ue son e/traas. Tiene (ue er con ta"las (ue *ueden diidirse en su"ta"las! *ero (ue no *ueden reconstruirse. ). Al-ebra relacional. El Al#e"ra relacional es un len#uaje de consulta *rocedural. Consta de un conjunto de o*eraciones (ue to%an co%o entrada una o dos relaciones - *roducen co%o resultado una nuea relacin! *or lo tanto! es 96 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez *osi"le anidar - co%"inar o*eradores. @a- ocho o*eradores en el l#e"ra relacional (ue constru-en relaciones - %ani*ulan datos! estos son0 1. Seleccin 6. 4ro-eccin 9. 4roducto 7. =nin A. Interseccin C. Di$erencia E. <8IN G. Diisin Tabla )%1 % Operadores del Al-ebra relacional +as o*eraciones de *ro-eccin! *roducto! unin! di$erencia! - seleccin son lla%adas *ri%itias! *uesto (ue las otras tres se *ueden de$inir en t)r%inos de estas.
).1. Seleccin " pro"eccin. ).). *roducto cartesiano. ).,. Operacin unin. ).9. Operacin di'erencia. ).;. Operacin interseccin. Seleccin Crea una nuea relacin a *artir de otra! *ero inclu-endo slo al#unas de las tu*las a *artir de un criterio dado. El criterio se "asa en restricciones so"re los atri"utos de la relacin ; - no *ueden incluirse otras relaciones en dicho criterio (ue no esten en ; A9S1C &;' ! A9S1C and A9 T 7A &;'! no%"reUVCarlosV and edadU7A &;' title "ear len-t> 'ilmT"pe studioName Star 2ars 1IEE 167 color 3o/ Mi#ht- DucFs 1II1 1K7 color Disne- 2a-neVs 2orld 1II6 IA color 4ara%ount Moie Eje%*los0 len#thSU1KK &Moie' title "ear len-t> 'ilmT"pe studioName Star 2ars 1IEE 167 color 3o/ Mi#ht- DucFs 1II1 1K7 color Disne- len#thSU1KK and studioNa%eUV3o/V &Moie' 99 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez title "ear len-t> 'ilmT"pe studioName Star 2ars 1IEE 167 color 3o/
title!studioNa%e& len#thSU1KK &Moie'' title studioName Star 2ars 3o/ Mi#ht- DucFs Disne- *ro"eccin Crea una nuea relacin a *artir de otra! *ero inclu-endo slo al#unas de las colu%nas A1!A9!AC &;'
title "ear len-t> 'ilmT"pe studioName Star 2ars 1IEE 167 color 3o/ Mi#ht- DucFs 1II1 1K7 color Disne- 2a-neVs 2orld 1II6 IA color 4ara%ount Moie Eje%*lo0 title!-ear!len#th&Moie' title "ear len-t> Star 2ars 1IEE 167 Mi#ht- DucFs 1II1 1K7 2a-neVs 2orld 1II6 IA $il%T-*e&Moie' 'ilmT"pe color
97 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez B Seleccionar 5 6 4or %edio de esta o*eracin se *osi"ilita la seleccin de un su"conjunto de tu*las de una relacin (ue corres*onden a una condicin &columna 84E;AD8; alor'deter%inada. El #rado &total de colu%nas de la ;elacin'! se consera. 3or%ato de =so0 &condicin' &;E+ACI8N' Esta o*eracin es con%utatia! es decir0 &condicin1' & &condicin)' &;' ' U &condicin)' & &condicin1' &;' ' E#emplos0 4E;S8NA Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido Se/o Direccin Tele$ono Salario E1197A97 <uan Mesa =ri"e M Cra 6A 6651 6ACEA96 1!CKK!KKK 6976977A Ana Mar.a Betancur Ber%udez 3 Cra 7A 11519 9799777 1!9KK!KKK 167A9A9A ?loria Betancur ?arces 3 Tr. 16 795 A 6EACA99 1!EKK!KKK EAAACE79 4edro 8choa 4elaez M Cll.Cta 1757A 6CGCGGA 1!6KK!KKK 79A99966 4atricia An#el ?uz%n 3 Cll. 7A 6951 6CE7AC9 1!9AK!KKK EGIKK7AC Carlos Betancur A#udelo M Cir. A 165 A 777AEEA 1!AKK!KKK +a seleccin! *er%ite e/traer todas las $ilas &tu*las' (ue cu%*le una condicin deter%inada. Esta condicin *er%ite la utilizacin de los o*eradores de co%*aracin0 U!S!T!SU! WX ade%s de los conectores l#icos D-D 5 DoD0
a. cedula U E1197A97 &4E;S8NA' ;esultado0 Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido Se/o Direccin Tele$ono Salario E1197A97 <uan Mesa =ri"e M Cra 6A 6651 6ACEA96 1!CKK!KKK ". se/o UV3V &4E;S8NA' ;esultado0 Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido Se/o Direccin Tele$ono Salario 6976977A Ana Mar.a Betancur Ber%udez 3 Cra 7A 11519 9799777 1!9KK!KKK 9A Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 167A9A9A ?loria Betancur ?arces 3 Tr. 16 795 A 6EACA99 1!EKK!KKK c. &*ri%erPa*ellido UVBetancurV' - &se/oUV3V' &4E;S8NA' ;esultado0 Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido Se/o Direccin Tele$ono Salario 6976977A Ana Mar.a Betancur Ber%udez 3 Cra 7A 11519 9799777 1!9KK!KKK 167A9A9A ?loria Betancur ?arces 3 Tr. 16 795 A 6EACA99 1!EKK!KKK d. c. &se/o U VMVV' o &Salario SU1!9AK!KKK' &4E;S8NA' ;esultado0 Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido Se/o Direccin Tele$ono Salario E1197A97 <uan Mesa =ri"e M Cra 6A 6651 6ACEA96 1!CKK!KKK 167A9A9A ?loria Betancur ?arces 3 Tr. 16 795 A 6EACA99 1!EKK!KKK EAAACE79 4edro 8choa 4elaez M Cll.Cta 1757A 6CGCGGA 1!6KK!KKK 79A99966 4atricia An#el ?uz%n 3 Cll. 7A 6951 6CE7AC9 1!9AK!KKK EGIKK7AC Carlos Betancur A#udelo M Cir. A 165 A 777AEEA 1!AKK!KKK
B *ro"ectar 5 6 Esta o*eracin *er%ite seleccionar al#unas colu%nas de una relacin. 3or%ato de =so0 Tlista de Atri"utosS &;E+ACI8N' E#emplos0 Se constru-en con "ase en la ;elacin anterior0 4E;S8NA. a. cedula! no%"re! *ri%erPa*ellido! se#undoPa*ellido &4E;S8NA' ;esultado Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido E1197A97 <uan Mesa =ri"e 6976977A Ana Mar.a Betancur Ber%udez 167A9A9A ?loria Betancur ?arces 9C Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez EAAACE79 4edro 8choa 4elaez 79A99966 4atricia An#el ?uz%n EGIKK7AC Carlos Betancur A#udelo ". cedula! salario &4E;S8NA' ;esultado0 Cedula Salario E1197A97 1!CKK!KKK 6976977A 1!9KK!KKK 167A9A9A 1!EKK!KKK EAAACE79 1!6KK!KKK 79A99966 1!9AK!KKK EGIKK7AC 1!AKK!KKK +a o*eracin SE+ECCINN co%"inada con la o*eracin 4;8QECCINN! *ode%os tener0 c. cedula! no%"re! salario & &se/o U VMVV' o &Salario SU1!9AK!KKK' &4E;S8NA' ' ;esultado0 Cedula No%"re Salario E1197A97 <uan 1!CKK!KKK 167A9A9A ?loria 1!EKK!KKK EAAACE79 4edro 1!6KK!KKK 79A99966 4atricia 1!9AK!KKK EGIKK7AC Carlos 1!AKK!KKK E+ ;ES=+TAD8 DE +AS 84E;ACI8NES 4=EDEN SE; ++EOAD8S A ;E+ACI8NES TEM48;A+ES DE +A SI?=IENTE 38;MA0 ;E+PTEM4 X cedula! no%"re! salario & &se/o U VMVV' o &Salario SU1!9AK!KKK' &4E;S8NA' ' ;esultado0 ;E+PTEM4 Cedula No%"re Salario E1197A97 <uan 1!CKK!KKK 167A9A9A ?loria 1!EKK!KKK EAAACE79 4edro 1!6KK!KKK 79A99966 4atricia 1!9AK!KKK EGIKK7AC Carlos 1!AKK!KKK Unin ; S! la unin de ; - S es el conjunto de ele%entos (ue estn en ; o S o a%"os. =n ele%ento solo a*arece una sola ez. 9E Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Interseccin ; S! el conjunto de ele%entos (ue a*arecen en a%"os ; - S Di'erencia ; 5 S! la di$erencia de ; - S! el conjunto de ele%entos (ue estan en ; *ero no en S. Es i%*ortante resaltar (ue ; 5 S es di$erente a S 5 ;. Di$isin ; B S! la diisin de una relacin entre otra! de"e cu%*lirse (ue *ara toda tu*la en ; e/ista su corres*ondiente en S. ;estricciones0 1. ; - S de"en tener es(ue%as id)nticos. 6. El orden de las colu%nas de"e ser el %is%o Eje%*los0 name address -ender birt>date Carrie 3isher 169 Ma*le St. 3 IBIBII MarF @a%ill 7AC 8aF ;d. M GBGBGG
name address -ender birt>date @arrison 3ord EGI 4al% Dr. M EBEBEE Carrie 3isher 169 Ma*le St. 3 IBIBII =nin name address -ender birt>date @arrison 3ord EGI 4al% Dr. M EBEBEE MarF @a%ill 7AC 8aF ;d. M GBGBGG Carrie 3isher 169 Ma*le St. 3 IBIBII Interseccin name address -ender birt>date Carrie 3isher 169 Ma*le St. 3 IBIBII ;esta 9G Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez name address -ender birt>date MarF @a%ill 7AC 8aF ;d. M GBGBGG *roducto cartesiano C 4roducto cruz o solo *roducto ; J S! los es(ue%as de a%"as relaciones se %ezclan - unen. Dados A B 1 6 9 7 ; B + D 6 A C 7 E G I 1K 11 S A R.B S.B + D 1 6 6 A C 1 6 7 E G 1 6 I 1K 11 9 7 6 A C 9 7 7 E G 9 7 I 1K 11 ; J S *roducto natural DCD Es un *roducto cartesiano donde nos interesan nica%ente al#unas tu*las (ue hacen D%atchD en al#un criterio. A R.B S.B + D 1 6 6 A C 1 6 7 E G 1 6 I 1K 11 9 7 6 A C 9I Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 9 7 7 E G 9 7 I 1K 11
A B + D 1 6 A C 9 7 E G ; YJY S Di$isin. +a o*eracin diisin es la contraria a la o*eracin *roducto - (uizs sea la %s co%*leja de e/*licar! *or tanto co%enzar) con directa%ente con un eje%*lo. =na deter%inada e%*resa *osee una ta"la de co%erciales! otra ta"la de *roductos - otra con las entas de los co%erciales. :uere%os aeri#uar (ue co%erciales han endido todo ti*o de *roducto. +o *ri%ero (ue hace%os es e/traer en una ta"la todos los cdi#os de todos los *roductos! a esta ta"la la deno%ina%os A. Ta"la A Cdi#o 4roducto 1K9A 6671 667I AG1G En una se#unda ta"la e/trae%os! de la ta"la de entas! el cdi#o del *roducto - el co%ercial (ue lo ha endido! lo hace%os con una *ro-eccin - eita%os traer alores du*licados. El resultado *odr.a ser el si#uiente0 Ta"la B Cdi#o Co%ercial Cdi#o 4roducto 1K 6671 69 6A1G 69 1K9A 9I 6A1G 9E 6A1G 7K Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 1K 667I 69 667I 69 6671 Si diidi%os la ta"la B entre la ta"la A o"tendre%os co%o resultado una tercera ta"la (ue0 1. +os ca%*os (ue contiene son a(uellos de la ta"la B (ue no e/isten en la ta"la A. En este caso el ca%*o Cdi#o Co%ercial es el nico de la ta"la B (ue no e/isten en la ta"la A. 6. =n re#istro se encuentra en la ta"la resultado si - slo si est asociado en ta"la B con cada $ila de la ta"la A Ta"la ;esultado Cdi#o Co%ercial 69 Z4or (u) el resultado es 69[. El co%ercial 69 es el nico de la ta"la B (ue tiene asociados todos los *osi"les cdi#os de *roducto de la ta"la A. ,. :istas o subes<uemas. ,.1.*ri$ile-ios de acceso. ,.).Endices. :ISTAS LO+ALES0 Z:u) es una ista[ =na ista es un o"jeto (ue se crea e%*leando la instruccin SE+ECT de S:+ *ara "ases de datos relacionales. +as istas *ueden ser locales o ;e%otas SELE+T ca%*os /RO. ta"las 2FERE condicion 0ROU* BQ ca%*os de a#ru*a%iento ORDER BQ ca%*os de ordena%iento Eje%*lo0 SE+ECT id! na%e 3;8M sPre#ion 8;DE; BQ na%e 71 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Creacin de una ista local. Clic en el "otn *ara crear istas locales. +a entana *ara a#re#ar las ta"las! se utiliza *ara aadir ta"las (ue se an a ocu*ar en la instruccin SE+ECT L S:+! en este caso estar.a%os seleccionando la *arte del 3;8M. Seleccione%os sPre#ion - lue#o A#re#ar. +a ta"la se a#re#ar! lue#o le da%os cerrar &close'. :entana de creacin de la $ista& 76 A#re#ar una ta"la Oer el co%ando S:+ Eli%in ar ta"la A#re#a r una relaci n Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez /ields& &Ca%*os' A(u. se seleccionan los ca%*os de la ista &SE+ECT ca%*os' 7oin 0 ;elaciones entre ta"las /ilter 0 Condicin de $iltrado &2@E;E condicin' Order b" 0 ca%*os de ordena%iento &8;DE; BQ' 0roup b" 0 ca%*os de A#ru*a%iento &?;8=4 BQ' +REA+ION DE :ISTAS RE.OTAS& =na ista re%ota es una ista (ue se hace de otra "ase de datos .a 8DBC. Esta "ase de datos *uede ser Access! 8;AC+E! S:+5SE;OE;! entre otros. Crear una ista re%ota0 Clic en icono *ara crear ista re%otas. Esco#er Nuea Oista &Ne4 :ie4' 79 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Si no a creado una coneGin es necesario crear en Ne4! si -a esta creada seleccione la cone/in - lue#o OH. ZCo%o crear una cone/in[ Si no ha creado la cone/in seleccione Ne4 Si#a estos *asos cuidadosa%ente0 1. Seleccione Ne4 Data Source &Nuea 3uente de Datos' - a*arecer la con$i#uracin del 8DBC0 77 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 6. En el $older User DSN 4resione el "otn Add &A#re#ar' 7A Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 6. Escoja de la entana el Controlador deseado! Eje%*lo0 .icroso't Access Dri$er 5B.mdb6 - lue#o el "otn /inali1ar. 9. +ue#o a*arece la Oentana de 8DBC del controlador (ue selecciono &En este caso en de Access' Escri"a el no%"re del Data Source &3uente de datos'! +ue#o seleccione la Base de Dato a la (ue hace re$erencia & en el "oton Select Data"ase' +ue#o de ha"er seleccionado la "ase de datos! ace*te todas las entanas (ue a*arecieron anterior%ente - deten#ase en la si#uiente entana0 7C Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 7E Seleccin de la lista el Data Source <ue >a creado Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +ue#o seleccione de la lista de data source el data source (ue usted aca"a de crear. +ue#o *resione Ace*tar &8\'. Des*u)s le a*arece la *ri%era Oentana donde esco#e las cone/iones! le a*arecer la cone/in (ue usted ha creado. Nota0 Esta cone/in (ue usted a creado serir *ara sesiones $uturas. Seleccione la cone/in creada - lue#o Aceptar &8\' +ue#o le a*arecer la entana donde usted esco#e las ta"las (ue utilizar0 +ue#o a*arecer la entana donde se disea la ista0 El *rocedi%iento *ara crear la ista es i#ual a la creacin de ista +ocales. 7G Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
9. Len-ua#e relacional est!ndar S@L. 9.1.Elementos. 9.).Relaciones. 9.,.B?s<uedas. *ro"eccin 5 6 en S@L A1,A2,...,An !" SELE+T A1A)...An /RO. R Seleccin 5 6 en S@L condicin!" SELE+T B /RO. R 2FERE condicin +omposicin 5 " 6 en S@L A1,A2,...,An condicin!"" SELE+T A1A)...An /RO. R 2FERE condicin Eliminar duplicasos en S@L SELE+T DISTIN+T B /RO. R *roducto cartesiano 5]6 en S@L !1]!2 SELE+T B /RO. R1R) 9.9. :istas. 7I Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Son una es*ecie de ta"las irtuales> es decir no e/isten $isica%ente sino (ue $or%an %ediante la seleccin -Bo $iltrado de los co%*onentes de otras ta"las! una ista *uede ser de$inida en "ase a una lista *reia. Esto si#ni$ica (ue *ueden crearse de*endencia entre las istas. /ormato de de'inicion de $istas DE3INE OIE2Tno%"re istaS ^&identi$Pca%*o1! identi$Pca%*o6!...'_ ASTo*eracin de consultaS E#emplo& se desea crear una ista *ara o"tener los no%"res - do%icilios de los clientes adultos es desea"le el esta"leci%iento de las ca"eceras no%"re del cliente! do%icilio del cliente. DE3INE OIE2 clientePadulto &no%"re del cliente! do%icilio del cliente' As &select no%"re! do%icilio 3ro% clientes 2here estado U VadultoV' Co%o *uede erse! la es*eci$icacin de los identi$icadores es o*cional> si estos se o%iten se asu%iran los no%"res de los ca%*os e/traidos en la consulta. +a o*eracin de consulta *er%ite todos los $or%atos alidos de consulta en S:+ con e/ece*cin del #roo* "-. Cuando una ista es de$inida en "ase a otra! se se dice (ue es de*endiente de esta *or lo tanto! se su*ri%ira auto%atica%ente la ista de*endiente si se su*ri%e la ista ori#inal. Eliminacin de $istas. Dro* ie, Tno%"re ta"laS Eje%*lo0 su*on#a (ue se desea crear una ista de*endiente de la ista cliente adulto (ue conten#a sola%ente a los clientes (ue ien so"re $orjadores. Se desean los %is%os ca%*os - la ista sera lla%ada clientePadultoP$orjadores. De$ine ie, clientePadultoP$orjadores AS &select M 3ro% clientePadulto 2here do%icilioPdelPcliente liFe V$orjadores`V' a a dro* ie, clientePadulto &se eli%inara ta%"ien la ista clientePadultoP$orjadores! *uesto (ue es de*endiente de clientePadulto.' +a eli%inacin de una ta"la *rooca ta%"ien la eli%inacin auto%atica de todas las listas (ue se ha-an de$inido haciendo re$erencia a ella. UNIDAD III. .anipulacin de bases de datos. 1. +reacin de una base de datos. 1.1. +omandos b!sicos. AK Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 1.). Apertura de una base de datos. 1.,. Incorporacin de nue$os re-istros. 1.9. +ierre de una base de datos. #!$A#%&' D$ (A )A*$ D$ DA+&* 1. ="i(uese en el $older Data - lue#o en Databases - *resione el "otn Ne4 +a entana del Data"ase Desi#ner a*arecer 0 4uede ocu*ar el tool"ar Data"ase Desi#ner *ara el control de la Base de Datos. A1 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Descripcin de los botones del toolbar& Crear una nuea ta"la. A#re#ar una ta"la e/istente Eli%inar una ta"la seleccionada Modi$icar una ta"la seleccionada Creacin de Oistas re%otas Creacin de Oistas locales Editar 4rocedi%ientos al%acenados en la Base de Datos Creacin de Cone/iones con istas re%otas E/a%inar el contenido la ta"la &B;82SE' +rear una nue$a tabla& 1. ClicF en el "oton de Nuea ta"la! a*arecera la entana Ne, Ta"le A6 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 7. Se selecciona Ne4 Table! lue#o a*arece la entana de #uardar el archio! seleccione el directorio - el no%"re de la ta"la - lue#o *resione el "oton de sal$ar. +a entana de Table desi-ner a*arecera en *antalla0 Esta es la *arte %as i%*ortante de la ta"la! es a(u. donde se de$ine la estructura de datos (ue contendr dicha ta"la. El *ri%er *aso es de$inir los ca%*os! ti*os! ta%ao! 3or%ato - ;e#las de alidacin en el $oder de /ields. A9 De$inici n de ca%*os Ti*os de Datos De$inici n del 3or%ato de Entrada De$inici n de re#las de alidaci n de los ca%*os Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez a. De$inicin de ca%*os0 I#ual (ue en las ersiones anteriores! la de$inicin de ca%*os es i#ual. Se introduce el no%"re del ca%*o &name' el ti*o de datos (ue so*ortar &T"pe' - el ta%ao. ". De$inicin del Dis*la- /ormat 0 Es el $or%ato de salida del ca%*o! eje%*lo si $uera n%erico I!III.II o si $uera carcter bbbbbbbbbbbb! *ara (ue solo ace*te %a-usculas Input masI 0 I#ual (ue el 3or%at! lo nico (ue es *ara la entrada de datos. +aptin 0 Descri*cin %as *recisa del ca%*o! es de utilidad al disear los 3or%ularios. c. De$inicin de re#las de alidacin a niel de ca%*o +a alidacin son tri##ers o eentos (ue se ejecutan a niel de ca%*o. Eje%*lo0 una alidacin de un ca%*o (ue solo ace*te n%eros *ositios. &id S K' Rule 0 Es la re#la de alidacin! eje%*lo0 id S K! si (uere%os (ue ace*te alores *ositios. .essa-e0 Es el %ensaje *ersonalizado (ue (uere%os (ue a*arezca en *antalla a la hora de iolarse la re#la de alidacin del ca%*o. Eje%*lo 0 cSolo se ace*tan n%eros *ositiosd ¬a0 el te/to de"e escri"irse entre co%illas'. De'ault :alue 0 Oalor *or de$ecto del ca%*o. ¬a0 ha- (ue res*etar el ti*o de dato del Ca%*o' +ue#o de hacer la de$icion de los ca%*os! *asa%os a la de$inicion de Indices de la ta"la! (ue ser %u- i%*ortante a la hora de crear las relaciones entre las ta"las. A7 No%"re del .ndice Ti*o de Indice No%"re del o los ca%*os (ue co%*onen el indice Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez a. No%"re del Indice &name' Introducir el No%"re del archio .ndice. Es conocido ta%"i)n co%o TA?. ". T"pe & ti*o de Indice' 4ri%ar- 0 +lae *ri%aria. Candidate 0 +lae candidata =ni(ue 0 +lae nica. ;e#ular 0 +lae $ornea. c. No%"re de la E/*resin No%"re de los ca%*os (ue con$or%an la llae *ri%aria0 Eje%*lo 0 id! o si son arios ca%*os 0 id H linea Nota0 si los ca%*os no son del %is%o ha- (ue $orzarlos al ti*o de dato deseado! eje%*lo0 si id es carcter - linea! entoces el no%"re de la e/*resion ser.a0 Id J STR5linea6 ST;&' conierte de n%ero a carcter - OA+&' conierte de carcter a n%erico. Des*u)s de detallar los .ndices! se de$ine los eentos de +a alidacin a niel de re#istro - los eentos (ue se ejecuten a la hora de Insertar un re#istro! de actualizar o "orrar. AA Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez ).+onsultas a una base de datos. ).1.Estructura de una consulta. ).). +omandos de consulta b!sicos. +onsultas a la BD usando SELE+T%S@L SE+ECT 5 S:+ usando dos o %as ta"las0 SintaGis 0 SE+ECT alias1.ca%*o1 !alias2.ca%*o6 !alias,.ca%*o9 3;8M tabla1 alias1 !tabla) alias2 !tabla, alias, 2@E;E alias1.ca%*o1 U alias2.ca%*o6 alias1.ca%*o6 U alias2.ca%*o9 E#emplo 0 =n eje%*lo sencillo0 si (uere%os listar el nombre del empleado! el id del departamento! - el nombre del departamento al (ue *ertenece el e%*leado la (uer- ser.a0 SE+ECT A.no%"re AS e%*leado !A.de*tPid !B.no%"re AS de*to 3;8M sPe%* A !sPde*t B 2@E;E A.id U B.re#ionPid E#ercicios 0 Seleccionar el No. de*to! a*ellido! salario - car#o *ara los e%*leados (ue #anen %as de 1KK - el de*arta%ento este en 71! 1K - AK select de*tPid !no%"re !salario !car#o $ro% sPe%* ,here salario S 1KK and de*tPid IN &71!1K!AK' AC Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez seleccionar el a*ellido! del e%*leado! id del de*to! - el no%"re del de*to. select a.no%"re AS e%*leado !".id !".no%"re AS de*to $ro% sPe%* a !sPde*t " ,here a.id U ".de*tPid Seleccionar el a*ellido del e%*leado! no del de*to! el no%"re delde*to *ara los de*to (ue esten entre 6K - AK sin incluirlos. select a.no%"re AS e%*leado! ".id! ".no%"re AS de*to $ro% sPe%* a! sPde*t " ,here a.id U ".de*tPid and ".id S 6K and ".id T AK seleccionar el no%"re del e%*leado no. del de*to! no%"re del de*to! *ara los de*tos (ue co%iencen con 7 - ordenados el nu%ero de de*to - no%"re del e%*leado desc select a.no%"re AS e%*leado! ".id! ".no%"re AS de*to $ro% sPe%* a! sPde*t " ,here a.idU".de*tPid and A++T;IM&ST;&".id'' liFe V7`V order "- a.no%"re asc! ".id Seleccionar el no%"re del cliente *ara a(uellos e%*leados (ue el no del de*to sean 9K! 7K! 71! 76 - el & salario sea %a-or (ue 1KKK o el de*to sea AK ' select a.no%"re AS cliente! ".no%"re AS e%*leado! ".salario! ".id! ".de*tPid $ro% sPcusto%er a! sPe%* " ,here a.e%*PidU".id and ".de*tPid IN &9K!7K!71!76' and &".salario S 1KKK or ".de*tPidUVAKV' 8tra soluccion0 select a.no%"re $ro% sPcusto%er a ,here a.e%*Pid IN &Select id AE Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez $ro% sPe%* ,here de*tPid in &9K! 7K!71!76' and &salario S 1KKK or de*tPidUAK ' Seleccionar el no%"re del cliente! no%"re de re#ion - el salario *ara todos los e%*leados (ue el salario sean %a-or (ue 1KK select a.no%"re AS e%*leado! ".no%"re AS de*to! a.salario $ro% sPe%* a! sPde*t " ,here a.de*tPidU".id and a.salario S 1KK /unciones de -rupos salarios %ini%os - %a/i%os de los e%*leados select %a/&salario' salP%a/! %in&salario' salP%in $ro% sPe%* Su%a! %a/i%o! %ini%o salario *or De*arta%ento select de*tPid! su%&salario'! %a/&salario'! %in&salario' $ro% sPe%* #rou* "- de*tPid M555 select de*tPid! count&de*tPid' $ro% sPe%* #rou* "- de*tPid hain# de*tPid S 6K M555 select de*tPid! su%&salario' $ro% sPe%* #rou* "- de*tPid hain# su%&salario' "et,een 6KKK and 7KKK AG Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez M555 select a#&salario'! %in&salario'! %a/&salario'! su%&salario' $ro% sPe%* ,here =44E;&title' liFe VSA+ES`V M555 select count&no%"re'! de*tPid $ro% sPe%* ,here de*tPidU91 #rou* "- de*tPid SE+ECT C8=NT&ID'! DE4TPID 3;8M SPEM4 ?;8=4 BQ DE4TPID SE+ECT C8=NT&ID'! C;EDITP;ATIN? 3;8M SPC=ST8ME; ?;8=4 BQ C;EDITP;ATIN? M5555 SE+ECT S=M&SA+A;I8'! CA;?8 3;8M SPEM4 2@E;E u**er&TIT+E' N8T +I\E VO4`V ?;8=4 BQ CA;?8 M5555 SE+ECT S=M&SA+A;I8'! TIT+E 3;8M SPEM4 ?;8=4 BQ TIT+E M5555 SE+ECT TIT+E! S=M&SA+A;I8' 3;8M SPEM4 2@E;E =44E;&TIT+E' N8T +I\E VO4`V ?;8=4 BQ TIT+E @AOIN? S=M&SA+A;I8'S AKKK M5555 AI Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez CK Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez *ro-ramacin .ultiusuario& En la *ro#ra%acin %ultiusuario ha- (ue tener %u- en cuenta el control de la zona critica. En Oisual 3o/*ro! esto se *uede hacer Auto%atica%ente o Manual%ente. En la $or%a Auto%tica! 3o/ controla la zona critica con los enllaa%ientos auto%ticos! lo (ue nos ahorra tie%*o -a (ue no tene%os (ue *reocu*arnos *or ello. & esta es la $or%a (ue utilizare%os ' Z:u) se re(uiere[ Se re(uiere al#unas de$inir aria"les de a%"iente en el *ro#ra%a *rinci*al de nuestro Siste%a0 M De$inicion de *ara A%"iente ;ed SET EJC+=SIOE 833 A"re las ta"las en %odo co%*artido SET M=+TI+8C\S 8N 4ara (ue se *uedan "lo(uear %as de un re#istro SET DE+ETE 8N 4ara (ue los re#istros %arcados no se izualicen SET ;E3;ES@ T8 A ;e$resca%iento cada A se#undos en el Bro,se SET ;E4;8CESS T8 A=T8MATIC Si un re#istro esta "lo(ueado o enllaado 3o/ intenta acualizarlo hasta (ue uno *resione esc M*$+ !$-!&#$** +& . *$#&'D* Si des*ues de A se#undos no *uede actualizarlo 3o/ %anda un error. M 8tro A%"iente SET EC@8 833 SET TA+\ 833 SET CENT=;Q 8N SET C+8C\ STAT=S SET DATE B;IT SET 4AT@ T8 %enu!$or%s!"%*!*r#!data SET SA3ETQ 833 SET 4;8CED=;E T8 .e*r#eutilit- Usando el Bu''er con las tablas. Bu$$er 8*ti%ista0 Dos usuarios *ueden estar %odi$icando el re#istro sin nin#n *ro"le%a. 4esi%ista 0 Solo un usuario *uede estar %odi$icando el re#istro. K+mo 'i#ar el Bu''erL M Set "u$$erin# %ode and store lo#ical result C1 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez lSuccess U +URSORSET*RO*&DBu$$erin#D! ;! Dcusto%erD' I3 lSuccess U .T. UMESSA?EB8J&D8*eration success$ulbD!K!D8*eration StatusD' E+SE UMESSA?EB8J&D8*eration N8T success$ulbD!K!D8*eration StatusD' ENDI3 Con el "u$$er actiado *ode%os hacer uso de los co%andos 0 TAB+E;EOE;T&.T.' TAB+E=4DATE&.T.' TABLEU*DATE5.T.6 ?ra"a los ca%"ios hechos en la ta"la. SET M=+TI+8C\S 8N ff Must "e on $or ta"le "u$$erin# U C=;S8;SET4;84&VBu$$erin#V! A! Ve%*lo-eeV ' ff Ena"le ta"le "u$$erin# INSE;T INT8 e%*lo-ee &c+astNa%e' OA+=ES &VS%ithV' C+EA; [ V8ri#inal c+astNa%e alue0 V [[ c+astNa%e ff Dis*la-s current c+astNa%e alue &S%ith' ;E4+ACE c+astNa%e 2IT@ V<onesV [ VNe, c+astNa%e alue0 V [[ c+astNa%e ff Dis*la-s ne, c+astNa%e alue &<ones' U TAB+E=4DATE&.T.' ff Co%%its chan#es [ V=*dated c+astNa%e alue0 V [[ c+astNa%e ff Dis*la-s current c+astNa%e alue &<ones' TABLERE:ERT5.t.6 Cancela los ca%"ios hechos a la ta"la =SE Custo%er ff 8*en custo%er ta"le U C=;S8;SET4;84&VBu$$erin#V! A! Vcusto%erV' ff Ena"le ta"le "u$$erin# C6 Tipos de Bufer 1 No utilizar el buffer 2 Pessimistic row buffering on. 3 Optimistic row buffering on. 4 Pessimistic table buffering on. 5 Optimistic table buffering on. Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez C+EA; [ V8ri#inal custPid alue0 V [[ custPid ff Dis*la-s current custPid alue ;E4+ACE custPid 2IT@ VMMMV ff Chan#es $ield contents [ VNe, custPid alue0 V [[ custPid ff Dis*la-s ne, custPid alue U TAB+E;EOE;T&.T.' ff Discard all ta"le chan#es [ V;eerted custPid alue0 V [[ custPid ff Dis*la-s reerted custPid alue ,. .odi'icaciones a una base de datos. ,.1 .odi'icaciones en la estructura. ,.). .odi'icaciones en los re-istros. MOD!" #$%&'$&%( Mo)ifica la estructura )e una base )e )atos D#P*+" #$%&'$&%( Muestra la estructura )e una base )e )atos 9. Ordenacin de la in'ormacin. 9.1. Ordenacin '(sica. 9.). Ordenacin por (ndices. I.OS DE INDICES En una ta"la de*endiente se dis*one de cuatro ti*os de .ndice! %ientras (ue en una ta"la li"re slo los dos (ue se enu%eran en *ri%er lu#ar.
Normal & Es el .ndice clsico. 4er%ite cual(uier alor en la clae! est) re*etido o no. Es el %s utilizado. Unico & Se%ejante al nor%al. Sin e%"ar#o! en el caso de (ue ha-a %s de una clae re*etida! slo se tiene en cuenta la (ue se entrodujo en *ri%er lu#ar. Tiene *oca utilidad - es un ti*o de .ndice (ue *rctica%ente no se usa. *rincipal & I%*ide (ue e/istan claes re*etidas *roocndose un error en Oisual 3o/ 4ro &slo *uede ha"er un .ndice *rinci*al'. +andidato & Es e/acta%ente i#ual (ue el anterior. Su sentido reside en (ue co%o slo *uede ha"er un .ndice *rinci*al! todos los de%s de"en ser candidatos! a serlo. Co%ando INDEJ 8N Crea un .ndice en un archio de .ndices co%*uestos o "ien un archio de .ndice si%*le. SINTAJIS C9 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez INDEJ 8N ca%*o T8 no%"re de archio IDJ Y TA? eti(ueta ^83 archio CDJ_^38; e/*resin l#ica_ ^C8M4ACT_^ASCENDIN? Y DESCENDIN?_^CANDIDATE Y=NI:=E _^ADDITIOE_ E<EM4+80 =SE *ersona INDEJ 8N no%"re T8 *ersona.id/ El co%ando INDEJ 8N crea una archio .ndice lla%ado *ersona.id/! el cual tendr el .ndice de el archio *ersona. =na %ejor $or%a de crear un .ndice - en el cual 3o/ tra"aja a una %ejor ca*acidad es creando un .ndice co%*uesto. INDEJ 8N no%"re TA? *ersona C7 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez UNIDAD I:. +aracter(sticas a$an1adas de las bases de datos. 1. .ane#o de $ariables " 'unciones. 1.1. +reacin " eliminacin de $ariables. 1.). Utili1acin de 'unciones interconstruidas. :ariable.% Es*acio asi#nado de %e%oria *ara %aani*ular un dato de cual(uier ti*o. +as aria"les se *ueden de$inir co%o0 *u"licas! *riadas - locales eje%*lo0 4=B+IC no%"re! a*ellidos 4;IOATE sueldo Los operadores se utili1an en tiempo de e#ecuciMn para unir dos o mNs elementos del len-ua#e. Operadores aritmOticos & ' A#ru*a su"e/*resiones MM! g E/*onenciacin M! B Multi*licacihn - diisin ` Mdulo &resto de la diisin' H! 5 Su%a - resta Operadores relacionales , Menor -ue . Ma/or -ue ,0 Menor o igual -ue .0 Ma/or o igual -ue 0 igual a ,.1 21 30Distinto )e CA Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez A$era-e ;ealiza la %edia de un ca%*o o ca%*os corres*ondientes a una serie de re#istros! deter%inados *or la clusula 38; o 2@I+E (ue se inclu-a. Se *uede %andar el resultado a una aria"le o arias de*endiendo de los ca%*os *ro%ediados. Sum E(uiale al anterior *ero realiza una su%a +ount56 En este caso! esta instruccin cuenta re#istros de*endiendo del .ndice - del estado de eli%inacin. Reccount56 Si (uere%os o"iar el estado de los re#istros! *ode%os utilizarlo. 4or lo dicho! contar todos los re#istros. No se *ueden incluir clusulas 38; - 2@I+E. Se *uede incluir el rea o el alias de la ta"la a contar entre *ar)ntesis. CC Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez ). 0enerador de reportes. ).1 Estructura -eneral de un reporte. ).) +reacin de la estructura. )., .odi'icacin de la estructura. ).9 0eneracin del reporte. Dise8o de Reportes ?uia r*ida isual0 CE Titulo0 A*arece solo en la *ri%era *a#ina (ncabeza)o4 +parece en to)as las paginas Detalle0 Se es*eci$ican los ca%*os de la ta"la Su%ario0 A*arece en la ulti%a *a#ina Entorno de Datos Barra de @erra%ientas de ;e*ortes Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +os in$or%es %uestran datos - resu%en datos en un $or%ulario i%*reso o en *antalla. +os dos co%*onentes *rinci*ales de los in$or%es son los datos - el $or%ato. +a $uente de datos del in$or%e *uede ser una ta"la de "ase de dato! una consulta o una ista. El *ri%er *aso *ara disear un in$or%e es deter%inar los datos (ue se an a %ostrar! - el se#undo *aso es deter%inar cul a a ser el %ejor $or%ato *ara %ostrar ese in$or%e. 4uede crear listados (ue se "asen en una nica ta"la o en in$or%es co%*lejos. El ?enerador de In$or%es es una herra%ienta $le/i"le - de $cil uso *ara la creacin! diseo - %odi$icacin de in$or%es. *asos para +reacin de In'ormes & I. Seleccin de los datos Esta es la *arte %s i%*ortante del in$or%e! la seleccin de datos! ha- (ue sa"er (u) es lo (ue (uiere el usuario o (ue el usuario %uestre el diseo del in$or%e (ue desea! *ara co%enzar a tra"ajar. +os datos *ueden ser si%*les &utilizando una sola ta"la'! co%o listados de re#iones! listado de de*arta%entos! entre otros> o *ueden ser al#o %as co%*lejos &utilizando %as de una ta"la' Eje%*lo ;e*ortes a#ru*ados! re*ortes consolidados! etc. +os datos se *ueden o"tener directa%ente utilizando las ta"las o utilizando S:+ *ara crear cursores! esta lti%a es la %s reco%endada *ara una a*licacin %ultiusuario. E/isten arios ti*os de in$or%es entre ellos 0 5 Listados &Ej. +istados de re#iones' Muestra0 5555555555555555555555555555555 id name 5555555555555555555555555555555 K1 ;e#ion 1 K6 ;e#ion 6 55555555555555555555555555555555 CG Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 5 0rupos con detalles & o %aestro detalles' 5555555555555555555555555555555 Re-ion Departamento 5555555555555555555555555555555 ;e#ion 1 De*arta%ento a De*arta%ento " ;e#ion 6 De*arta%ento / De*arta%ento - 55555555555555555555555555555555 5 Matriciales o consolidados 55555555555555555555555555555555555555555555 Ratin- Re-ion EGcellent 0ood *oor 55555555555555555555555555555555555555555555 ;e#ion 1 1 6 K ;e#ion 6 9 K 1 55555555555555555555555555555555555555555555 Totales 7 6 1 55555555555555555555555555555555555555555555 +reacin de In'ormes usando el entorno de datos0
1. En el ad%inistrador de *ro-ectos! seleccione la $icha Docu%entos. 6. Seleccione In$or%es 9. 4ulse el "otn nueo 7. 4ulse el "otn nueo in$or%e. A*arece el #enerador de in$or%es - al "arra de herra%ientas Controles de in$or%es. A. Seleccione Entorno de datos - seleccione la ta"la C. Arrastre los ca%*os a utilizar del entorno de datos en el in$or%e en la *arte de detalle E. Introduzca los enca"ezados del re*orte G. 4uede er co%o (ueda el in$or%e con el "otn de *resentacin *reli%inar0 CI Arrastre el ca%*o a la *arte de detalle Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 4resentacin 4reli%inar 0 .en? de Reportes TituloBSu%ario &TitleBSu%%ar-'0 EK Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Muestra el rea del Titulo - el Su%ario del In$or%e +itulo 0 A*arece solo en la *ri%era *a#ina del ;e*orte *umario 0 A*arece solo en la ulti%a *a#ina del ;e*orte A-rupamiento de datos 5Data 0roupin-6 El a#ru*a%iento de datos se utiliza *ara in$or%es %aestro L detalle. Oaria"les0 +as aria"les son tiles *ara hacer clculos con los datos del re*orte - lue#o *resentarlas en el %is%o re*orte. E1 (specifi-ue el campo por el cual esta agrupan)o No%"re de la aria"le Ti*o de Calculo Ca%*o a calcular Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez *ropiedades de los campos Cada ca%*o en el In$or%e *osee *ro*iedades 0 +reacin de In'ormes usando +ursores S@L0 1. Crear el cursor con el co%ando SE+ECT..... 3;8M .....2@E;E.... E6 Doble clic en el campo para mostrar las propie)a)es #i )esea mos 5acer c6lculo s con el campo Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 6. Crear el In$or%e %anual%ente! con los no%"res de ca%*os del cursor. 9. Correr el ;e*orte. E#emplo& M Se de$ine una entana 4ersonalizada DE3INE 2IND82 ,P8ut*ut > 3;8M K!K T8 6A!EK > TIT+E VIn$or%es 5 INATECV > C+8SE 3+8AT ?;82 R88M SQSTEM =SE IN .edataesPre#ion IN K SE+ECT id! na%e 3;8M sPre#ion INT8 C=;S8; cPre#ion B Si lo <ueremos por pantalla ;E48;T 38;M .ere*orte**Pdetalles > 4;EOIE2 2IND82S ,Pout*ut > N8E<ECT N8C8NS8+E B *or Impresora ;E48;T 38;M .ere*orte**Pdetalles > T8 4;INTE; 4;8M4T > N8E<ECT N8C8NS8+E B Facia un Arc>i$o ;E48;T 38;M .ere*orte**Pdetalles > T8 3I+E 4=T3I+E&' > ASCII B +errar el cursor =SE IN cPre#ion E9 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez ,. 0enerador de pantallas. ,.1 Estructura -eneral de una pantalla ,.) +reacin de una pantalla. ,., .odi'icacin de una pantalla. ,.). Uso de una pantalla. Diseo de 3or%ularios 0u(a r!pida $isual& A la hora de disear $or%ularios usted tiene (ue estar $a%iliarizado con las entanas si#uientes0
E7 0enerador de /ormularios " +ontroles m!s comunes Entorno de Datos son las tablas <ue ocupa el 'ormulario Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez EA *ropiedades de los ob#etos Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +mo crear un nue$o /ormulario& 1. En el Administrador de *ro"ectos pulse documentos ). *ulse /ormulario para seleccionar la cate-or(a ,. *ulse botn nue$o A*arece en cuadro de dilo#o Nueo 3or%ulario. Este cuadro re$leja la *osi"ilidad de utilizar el Asistente *ara $or%ularios o construir uno nueo. Su-erencia0 utilice el Asistente *ara $or%ularios *ara desarrollar $or%ularios si%*les de introduccin de datos. El Asistente *ara $or%ularios hace una serie de *re#untas *ara #uiarle durante el *roceso de creacin del $or%ulario. El Asistente *er%ite la creacin de un $or%ulario *ara nica ta"la o *ara ta"las uno a %uchos. 9. *ulse el botn Nue$o 'ormulario A*arecer el ?enerador de $or%ularios. El ?enerador de $or%ularios isualiza /orm1 en la entana Doc/orm1! indicando (ue )ste es el *ri%er $or%ulario (ue tiene a"ierto en este *ro-ecto. 4odr ca%"iar de no%"re Doc0orm1 *or el no%"re (ue indi(ue al #uardar el $or%ulario. /orm1 es un rea de tra"ajo en "lanco. Ta%"i)n a*arecer la "arra de herra%ientas con los controles *ara la creacin de $or%ularios. A-re-acin de Ob#etos a su 'ormulario. =na ez (ue ten#a en *antalla una entana de $or%ulario en "lanco! 3or%1! inserte o"jetos *ara crear el su $or%ulario. MS Oisual 3o/*ro A.K o$rece dos ti*os de o"jetos (ue se *ueden insertar en un nueo $or%ulario0 o"jetos contenedores - o"jetos de control. 4ode%os accesar a estos o"jetos desde la "arra de herra%ientas Controles de $or%ulario o desde el Ad%inistrador de *ro-ectos. EC Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Ob#etos contenedores0 =n o"jeto contenedor es un o"jeto *ri%ario (ue contiene otros o"jetos su"ordinados. 4or eje%*lo! un $or%ulario es el o"jeto contenedor (ue es *ro*ietario de un "otn de co%ando isualizado en el $or%ulario. 8tros o"jetos contenedores *ueden incluir %arcos de *#ina! cuadr.culas - #ru*os de "otones de co%ando. 8"jetos de control0 =n o"jeto de control *er%ite al usuario seleccionar o*ciones! introducir datos - esco#er acciones. En un $or%ulario! estos o"jetos *ueden incluir casillas de eri$icacin! "otones de co%ando! cuadros de te/to - cuadr.culas. El ob#eto /OR. 4ro*iedades %as co%unes de la 3or%a 0 Nombre Tipo de dato Descripcin Ca*tion Carcter Titulo de la entana o 3or%a Autocenter Booleano 4ara central la 3or%a Sho,Ti*s Booleano 4ara (ue se %uestren los Toolti*s Closa"le Booleano Oisualiza el "oton de Cerrar la Oentana &J' Ma/Button Booleano Oisualiza el "oton de Ma/i%izar la Oentana MinButton Booleano Oisualiza el "oton de Mini%izar la Oentana ControlBo/ Booleano Oisualiza el Menu de Control de la Oentana. Eentos o M)todos %s co%unes de la 3or%a Nombre Descripcin Init Se dis*ara a la hora (ue se inicializa todos los o"jetos de la $or%a. +oad Se dis*ara antes (ue se inicialicen los o"jetos de la $or%a &ante (ue Init' Destro- Se dis*ara al cerrar la $or%a =nload Se dis*ara des*ues de Destro-. Utili1acin de m?ltiples p!-inas en un 'ormulario simple. EE Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez En O34! un $or%ulario si%*le *uede contener %lti*les *#inas (ue isualicen di$erentes conjuntos de datos - controles. En la *arte su*erior del $or%ulario! una $icha re*resenta cada *#ina. 4ode%os *ulsar en una $icha *ara %ostrar el contenido de la *#ina. +mo crear un 'ormulario de $arias p!-inas. 1. 4ulse el "otn Marco de *#ina &page 0rame' en la "arra de herra%ientas Controles de $or%ulario. 6. Site el cursor en la es(uina su*erior iz(uierda de 0orm1. & El cursor ca%"ia su $or%a a cruceta' 9. 4ulse en la es(uina su*erior iz(uierda del $or%ulario - arrastre el cursor hacia la es(uina in$erior derecha *ara crear un %arco de *#ina (ue cu"ra la %a-or *arte de la entana 0orm1. Deje un es*acio de unos dos cent.%etros en la *arte in$erior del $or%ulario *ara los "otones de co%ando (ue se a#re#arn des*u)s en esta leccin. 4ro*iedades %as co%unes de la *#inas 0 Nombre Tipo de dato Descripcin 4a#ecount N%erico 3ija el n%ero de 3olders o *#inas &4a#e1! *a#e6...' Ta"St-le N%erico <usti$icacion de las *#inas. Oisi"le Booleano Si el control es isi"le al usuario. A-re-acin de cuadros de teGto " cuadros de edicin0 +mo a-re-ar ob#etos en la pa-ina 1 5pa-e16& 1. Con el "otn derecho del ratn! *ulse so"re 4a#e1 en el $or%ulario. A*arece un %en instantaneo 6. Seleccione la entana *ro*iedades A*arece el cuadro de dilo#o *ro*iedadades! donde %uestra 4a#e1 en el cuadro de te/to. EG Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 9. 4ulse el "otn 3lecha hacia a"ajo. 7. Seleccione 4a#e1 en el cuadro de te/to 8"jeto. Su-erencia0 Cada ez (ue inserte un o"jeto en un $or%ulario! %arco de *#ina o cuadricula! co%*rue"e en la entana 4ro*iedades (ue ha colocado el o"jeto en el contenedor a*ro*iado. +omo A-re-ar de cuadros de teGto directamente de una tabla& 1. Seleccione Oer el %en ?enerador de 3or%ularios 6. Seleccione Entorno de Datos &Data Eniron%ent' 9. Seleccione Entorno de datos &Data Eniron%ent' en el %en de Oisual 3o/*ro - lue#o A#re#ar. Su-erencia0 Ta%"i)n *uede a"rir la entana A#re#ar ta"la o ista con el "otn derecho del ratn. =tilizando el "otn derecho del ratn! *ulse en cual(uier *arte del Entorno de datos - lue#o seleccione A#re#ar. 4ara o"tener la entana de Entorno de Datos o la entana de *ro*iedades! utilice el "otn derecho del ratn *ulsando $uera del %arco de *#ina! *ero dentro del $or%ulario. A*arece un %en instantneo desde el (ue *uede hacer la seleccin. A*arece la entana A#re#ar ta"la o ista. EI Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 7. Con$ir%e si es la Base de Dato deseada. A. 4ulse dos eces en la ta"la a utilizar. C. Seleccione el campo deseado en la lista de ca%*os de la ta"la! arrstrelo hacia el $or%ulario - d)jelo en cual(uier *arte del %is%o. En el $or%ulario a*arecer el cuadro de texto.text1 E. 4ulse - arrastre el cuadro de te/to text1 a la *osicin (ue desee. Su-erencia0 4ara des*lazar un control de te/to! *ulse so"re )l - arrastrelo hacia otro lu#ar en le $or%ulario. 4ara %odi$icar el ta%ao del cuadro de te/to! *ulse so"re )l - lue#o arrastre al#unos de los %r#enes. 4ro*iedades %as co%unes del Te/t &control de te/to'0 Nombre Tipo de dato Descripcin Controlsource Se#n la aria"le Es la aria"le o no%"re del ca%*o al cual hace re$erencia. Oalue Se#n la aria"le Contenido de la aria"le o ca%*o re$erenciado en controlsource Oisi"le Booleano Si el control es isi"le al usuario. Ena"led Booleano Si el control esta ha"ilitado o no. +ontrol Botn de +omando& 4ro*iedades %as co%unes del Botn 0 Nombre Tipo de dato Descripcin Ca*tion Carcter Eti(ueta del co%ando &Ej. ClicF A(u.' Oisi"le Booleano Si el control es isi"le al usuario. GK Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Ena"led Booleano Si el control esta ha"ilitado o no. Eentos o M)todos %s co%unes del control Nombre Descripcin Init Se dis*ara a la hora (ue se inicializa el o"jeto ClicF Se dis*ara al dar clicF en el o"jeto Set$ocus El cursor se a al o"jeto. +ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor. ;e$resh ;e$resca el o"jeto. G1 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez C%o asociar un *rocedi%iento a un "otn0 1. @a#a do"le clicF en el "oton. A*arece una entana de cdi#o0 +ontrol Botn de +uadro de Edicin& Se utiliza *ara los ca%*os %e%o. 4ro*iedades %as co%unes del control de edicin Nombre Tipo de dato Descripcin Controlsource Se#n la aria"le Es la aria"le o no%"re del ca%*o al cual hace re$erencia. Oalue Se#n la aria"le Contenido de la aria"le o ca%*o re$erenciado en controlsource Oisi"le Booleano Si el control es isi"le al usuario. Ena"led Booleano Si el control esta ha"ilitado o no. Eentos o M)todos %s co%unes del control de edicin Nombre Descripcin G6 Esco#a el eento deseado. &En este caso ClicF U Se ejecuta al 4resionar el Boton' Introduzca el cdi#o deseado. Ase#urese (ue esta u"icado en el control deseado Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Init Se dis*ara a la hora (ue se inicializa el o"jeto ClicF Se dis*ara al dar clicF en el o"jeto Set$ocus El cursor se a al o"jeto. +ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor. Oalid Se dis*ara des*ues de *resionar Enter o Ta"! se utiliza *ara alidar. ;e$resh ;e$resca el o"jeto. +ontrol de Opciones& 4ro*iedades %as co%unes del control de o*ciones Nombre Tipo de dato Descripcin Controlsource N%erico Es la aria"le o no%"re del ca%*o al cual hace re$erencia. Oalue N%erico Contenido de la aria"le o ca%*o re$erenciado en controlsource Oisi"le Booleano Si el control es isi"le al usuario. Ena"led Booleano Si el control esta ha"ilitado o no. Eentos o M)todos %s co%unes del control de o*ciones Nombre Descripcin InteractieChan#e Se dis*ara cuando %odi$ica%os el ca%*o Init Se dis*ara a la hora (ue se inicializa el o"jeto ClicF Se dis*ara al dar clicF en el o"jeto Set$ocus El cursor se a al o"jeto. +ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor. Oalid Se dis*ara des*ues de *resionar Enter o Ta"! se utiliza *ara alidar. ;e$resh ;e$resca el o"jeto. +ontrol +>ecI& 4ro*iedades %as co%unes del control ChecF Nombre Tipo de dato Descripcin Controlsource Booleano Es la aria"le o no%"re del ca%*o al cual hace re$erencia. G9 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Oalue Booleano Contenido de la aria"le o ca%*o re$erenciado en controlsource Oisi"le Booleano Si el control es isi"le al usuario. Ena"led Booleano Si el control esta ha"ilitado o no. Eentos o M)todos %s co%unes del control ChecF Nombre Descripcin InteractieChan#e Se dis*ara cuando %odi$ica%os el ca%*o Init Se dis*ara a la hora (ue se inicializa el o"jeto ClicF Se dis*ara al dar clicF en el o"jeto Set$ocus El cursor se a al o"jeto. +ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor. Oalid Se dis*ara des*ues de *resionar Enter o Ta"! se utiliza *ara alidar. ;e$resh ;e$resca el o"jeto. +ontrol 0rid& 4ro*iedades %as co%unes del control ?rid0 Nombre Tipo de dato Descripcin ;ecordsource Carcter No%"re de la ta"la Oisi"le Booleano Si el control es isi"le al usuario. Ena"led Booleano Si el control esta ha"ilitado o no. Colu%nCount N%erico Nu%ero de colu%nas del ?rid Delete%arF Booleano 4er%ite re#istro *ara "orrar & A*arece en la *arte iz(uierda del ?rid' Eentos o M)todos %s co%unes del control ?rid0 Nombre Descripcin Init Se dis*ara a la hora (ue se inicializa el o"jeto ClicF Se dis*ara al dar clicF en el o"jeto Set$ocus El cursor se a al o"jeto. +ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor. ;e$resh ;e$resca el o"jeto. G7 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez GA Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +ontrol Listas& 4ro*iedades %as co%unes del control +istas Nombre Tipo de dato Descripcin Controlsource Se#n la aria"le Oaria"le a (ue hace re$erencia &ca%*o donde se al%acena el alor de la lista' ;o,Source Carcter Ta"la o (uer- de los ele%entos de la lista ;o,SourceT-*e Nu%)rico Ti*o de la 3uente &Si es ta"la o (uer-.' Oisi"le Booleano Si el control es isi"le al usuario. Ena"led Booleano Si el control esta ha"ilitado o no. BoundColu%n Nu%)rico Oalor (ue retorna la lista &N%ero de la colu%na del ;o,Source ' BoundTo Booleano Es*eci$ica si el alor de la lista esta deter%inado *or los alores o *or la *ro*iedad +istInde/ Eentos o M)todos %s co%unes del control +istas Nombre Descripcin InteractieChan#e Se dis*ara cuando %odi$ica%os el ca%*o Init Se dis*ara a la hora (ue se inicializa el o"jeto ClicF Se dis*ara al dar clicF en el o"jeto Set$ocus El cursor se a al o"jeto. +ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor. Oalid Se dis*ara des*ues de *resionar Enter o Ta"! se utiliza *ara alidar. ;e$resh ;e$resca el o"jeto. GC Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 9. +reacin " mane#o de bases de datos m?ltiples. 9.1 +oneGin entre bases de datos sencillas. 9.) .ane#o de bases de datos m?ltiples. RELA+IONES ENTRE TABLAS0 +as relaciones %as co%unes entre ta"las se de$inen 0 De uno a uno 0 Eje%*lo de una llae *ri%aria a otra llae *ri%aria De uno a muc>os 0 Eje%*lo de una llae *ri%aria a una ;e#ular o 3ornea. +as relaciones entre ta"las se crean arrastrando la llae de la ta"la a la llae de otra ta"la. +a $i#ura %uestra una relacin entre las ta"las re#in - de*arta%ento! la relacin se leer.a as. 0 i=na re#in tiene %uchos de*arta%entosj. ?eneracin de inte#ridad re$erencial ;e#las (ue ri#en la coherencia de datos! es*ec.$ica%ente las relaciones entre las claes *rinci*al - e/terna de claes de ta"las distintas. Oisual 3o/*ro ;esuele la Inte#ridad ;e$erencial %ediante re#las a niel de ca%*o - a niel de re#istro de$inidas *or el usuario. El 0enerador de la Inte-ridad Re'erencial le a-uda a de$inir re#las *ara controlar c%o se insertan actualizan o eli%inan re#istros de ta"las relacionadas. GE ;elacin entre ta"las &de uno a %uchos' Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Desencadenante0 cdi#o de eento a niel de re#istro (ue se ejecuta des*ues de una insercin! una actualizacin o una eli%inacin. Se ocu*an *ara inte#ridad entre las ta"las. El esta"leci%iento de la inte#ridad re$erencial i%*lica la creacin de un conjunto de re#las *ara *reserar las relaciones de$inidas entre las ta"las al introducir o eli%inar re#istros. Si e/i#e la inte#ridad re$erencial! Oisual 3o/4ro i%*edir las acciones si#uientes0 k A#re#ar re#istros a una ta"la relacionada cuando no ha-a nin#n re#istro asociado en la ta"la *ri%aria. k Ca%"iar alores de una ta"la *ri%aria cuando tales ca%"ios su*on#an dejar re#istros hu)r$anos en una ta"la relacionada. k Eli%inar re#istros de una ta"la *ri%aria cuando ten#an re#istros relacionados coincidentes. Si lo desea! *uede escri"ir sus *ro*ios desencadenantes - *rocedi%ientos al%acenados *ara e/i#ir la inte#ridad re$erencial. Sin e%"ar#o! el ?enerador de inte#ridad re$erencial &I;' de Oisual 3o/4ro *er%ite deter%inar los ti*os de re#las (ue desea e/i#ir! las ta"las a las (ue desea e/i#irlas - los eentos del siste%a (ue harn (ue Oisual 3o/4ro las co%*rue"e. El ?enerador de I; trata %lti*les nieles de eli%inaciones - actualizaciones en cascada! - es reco%enda"le co%o herra%ienta *ara ase#urar la inte#ridad re$erencial. *ara abrir el 0enerador de IR 1 A"ra el Dise8ador de bases de datos. ) En el %en Base de datos! elija Editar inte-ridad re'erencial. Al utilizar el ?enerador de I; *ara crear re#las (ue se an a a*licar a la "ase de datos! Oisual 3o/4ro #uarda el cdi#o #enerado *ara e/i#ir las re#las de inte#ridad re$erencial co%o desencadenantes (ue hacen re$erencia a *rocedi%ientos al%acenados. 4ara er este cdi#o *uede a"rir el editor de te/to de *rocedi%ientos al%acenados en la "ase de datos. Si desea in$or%acin so"re la $or%a de crear desencadenantes *or *ro#ra%a! consulte =so de desencadenantes en el ca*.tulo E! Tra"ajo con ta"las. *recaucin Cuando ha#a ca%"ios en el diseo de una "ase de datos co%o %odi$icaciones en sus ta"las o alteraciones en los .ndices utilizados en una relacin *ersistente de"e oler a ejecutar el ?enerador de I; antes de utilizar de nueo la "ase de datos. De esta $or%a se reisarn el cdi#o de *rocedi%iento al%acenado - los desencadenantes utilizados *ara e/i#ir la inte#ridad re$erencial! de $or%a (ue re$lejen el nueo diseo. Si no uele a ejecutar el ?enerador de ;I! *uede (ue o"ten#a resultados ines*erados! -a (ue no se ha"rn actualizado los *rocedi%ientos al%acenados - los desencadenantes *ara ajustarlos a las %odi$icaciones. El 0enerador IR se muestra cuando& @ace do"le clic en una l.nea de relacin entre dos ta"las del Dise8ador de bases de datos - eli#e el "otn Inte-ridad Re'erencial en el cuadro de dilo#o Editar relacin. Eli#e Inte-ridad re'erencial en el %en conte/tual del Dise8ador de bases de datos. Eli#e Editar inte-ridad re'erencial en el %en Base de datos. /ic>as del -enerador Re-las para la actuali1acin Es*eci$ica re#las *ara a*licar cuando se %odi$ica el alor clae de la ta"la *ri%aria. GG Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Re-las para la eliminacin Es*eci$ica las re#las (ue se a*lican cuando se eli%ina un re#istro de la ta"la *ri%aria. Re-las para insertar Es*eci$ica las re#las (ue se a*lican cuando se inserta un nueo re#istro o cuando se actualiza un re#istro e/istente en la ta"la secundaria. Inte-racin de la Aplicacin. +reacin de .en?s& ?u.a r*ida Oisual0 GI Instruccin de %en 4resentacin *reli%inar del %en Modi$icacin o creacin de ;esultados del %en 8*ciones del %en +ista de ;esultados del %en &Su" %en! co%ando! *rocedi%iento' Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Tipos de .en?s& E/isten dos ti*os de %ens 0 %en - Shortcut. IK El Shorcut %en se inoca con el "otn derecho del %ouse Menu des*le#a"le a niel de la entana su*erior de Oisual 3o/*ro. Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +reacin de .en?s& +a creacin de %ens es un *roceso (ue conllea di$erentes *asos. 4ri%ero! de"e%os de$inir las o*ciones del %en - de los su"%ens. +ue#o! asi#nar $uncionalidad a las o*ciones de %en. 3inal%ente! #enerar el *ro#ra%a de %ens. 4uede l #enerador de %ens de Oisual 3o/*ro *ara (ue le a-ude a construir %ens r*ida%ente. El ?enerador de %ens le *er%ite de$inir la estructura - $uncionalidad de su siste%a de %ens a tra)s de cuadros de dilo#o de $cil uso - de listas des*le#a"les (ue *uede utilizar *ara crear - %odi$icar su site%a de %ens. De'inicin de las opciones de men?. +os %ens *resentan su as*ecto con una lista de o*ciones *ara iniciar una actiidad. +a %a-or.a de los ele%entos de %en %uestran su"%ens u o*ciones adicionales cuando el usuario selecciona uno de estos ele%entos. Antes de #enerar un %en *ara una a*licacin! tendr (ue deter%inar (ue selecciones tendr dis*oni"les el usuario $inal - (u) o*ciones de %ens *ertenecen a otras o*ciones de %ens &su" %enus'. +mo crear un nue$o men? 1. 4ulse la $icha de otros en el Ad%inistrador de *ro-ectos. A*arece la *#ina otros con las cate#or.as de archio de Mens! Te/to - 8tros. 6. Seleccione %ens en la lista de cate#or.as 9. 4ulse el "otn nueo - escoja si es Menu o un Shortcut 7. Introduzca las o*ciones del %enu - lue#o el resultado del %en & su"%enu! co%ando o *rocedi%iento' A. A la derecha del resultado se encuentra la o*cin crear o %odi$icar se#n el caso. & crea o %odi$icar los resultados de la o*cin del %enu'. Tipos de Resultados 0 Submenu 0 Si el %en contiene un su"%enu Co%ando & Si la opcin de ese men? in$oca un comando 5E#emplo& DO /OR. ;e#iones! *ara lla%ar un $or%ulario> +LEAR E:ENT! *or lo #eneral a en la o*cin Salir' *rocedimiento 0 Si la o*cin de ese %en inoca arias l.neas de co%andos & un *rocedi%iento'. I1 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Opciones de .en?& En las o*ciones del %en se es*eci$ican0 5 Teclas de Acceso directo 5 Mensajes del %en 5 Condicin de ha"ilitaBNo ha"ilitar 0eneracin del men? & 1. En el %en escoja la o*cin Men. 6. Se le *re#unta si desea #ra"ar los ca%"ios & res*onda (ue si' 9. +ue#o se le *ide (ue *ro*orcione el archio de salida del %enu & escoja la ruta - el no%"re del archio! *or lo #eneral son e/tension M4;' - lue#o seleccione #enerar. 7. Si e/iste -a el archio se le *ide si desea re5escri"irlo & seleccione (ue si' +omo in$ocar al men? creado& Al #enerar el %en se crea un archio (ue *or lo #eneral tiene e/tensin M4; (ue contiene el cdi#o *ara des*le#ar el %en. +a instruccin ser.a0
DO ruta " nombre del arc>i$o .*R E#emplo & DO menu..*R 4ara oler a re esta"lecer el %en *or de$ault de Oisual 3o/*ro utilice la instruccin0 SET SQSMEN= T8 DE3A=+T I6 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +reacin del E#ecutable de la Aplicacin. 4ri%ero se tiene (ue crear un *ro#ra%a de inicio! al cual se le tiene (ue decir (ue ese es el *ro#ra%a (ue se ejecutara de *ri%ero & esto se hace haciendo clic derecho en el *ro#ra%a (ue desi#ne%os co%o *rinci*al - esco#er la o*cin main & *rinci*al' del %en de o*ciones' Contenido Eje%*lo del *ro#ra%a *rinci*al0 C+EA; A++ M Oaria"les 4u"licas 4=B+IC ,P8ut*ut! #Pao! #idParea! #Pniel! #Pca%"io! #Plo#inPentr- > !#P*assPentr-! OPMEN=P4;E! OPE;;8;! #Pacceso M De$inicion de Oentana *ara los ;e*ortes DE3INE 2IND82 ,P8ut*ut > 3;8M K!K T8 6A!EK > TIT+E VIn$or%es 5 BCNV > C+8SE 3+8AT ?;82 R88M SQSTEM M A%"iente SET SQSMEN= T8 SET EC@8 833 SET TA+\ 833 SET CENT=;Q 8N SET C+8C\ STAT=S SET DATE "rit SET DE+ETE 8N SET 4AT@ T8 $or%enu!"%*!*r#!data SET EJC+=SIOE 833 SET SA3ETQ 833 SET ;E3;ES@ T8 A SET ;E4;8CESS T8 A=T8MATIC SET M=+TI+8C\ 8N I9 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez SET +8C\ 833 SET 4;8CED=;E T8 .e*r#eutilit- M 3ondo de la 4antalla *rinci*al PSC;EEN.4ictureUD.e"%*e$ondo."%*D PSC;EEN.2IND82STATEU6 PSC;EEN.C+8SAB+EU.3. PSC;EEN.CA4TI8NUD3or%ulacin 4resu*uestariaD M Base de Datos 84EN DATA .eSC8TTescott S@A;ED M +la%ada al Menu D8 .e%enue%enu.%*r ;EAD EOENT C+EA; A++ SET SQSMEN= T8 DE3A=+T +reacin del E#ecutable En el Ad%inistrador de *ro-ectos seleccione la o*cion Build! lue#o la o*cin "uild E/ecuta"le - lue#o 8\. En las o*ciones es reco%enda"le seleccionar ;eco%*ile All - dis*la- Error! *ara reco%*ilar todos sus *ro#ra%as - $or%ularios > - 4or si ha- un error %ostrarlo al $inal de la #eneracin del Ejecuta"le. I7 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez +omandos Relacionados a BD " Tablas 1. Instrucciones de Manejo de Bases de Datos 6. Instrucciones de Manejo de Ta"las Inde*endientes 9. Instrucciones ?enerales de Manejo de Ta"las 7. Instrucciones de Bs(ueda en Ta"las A. Instrucciones de Calculo en Ta"las C. El Siste%a de Al%acena%iento en Bu$$er E. Transacciones G. ?ENDBC 4ro#ra%a =tilidad *ara Base de Datos Instrucciones B!sicas 1. Trata%iento de Caracteres 6. Mani*ulacion de 3echas Instrucciones de .ane#o de Bases de Datos +REATE DATABASE Crea una BD nuea - la actia auto%tica%ente. O*EN DATABASE 4er%ite a"rir una BD creada *reia%ente El *ar%etro EC+LUSI:E *osi"ilita (ue la BD se *uede %odi$icar inde*endiente%ente del estado del co%ando SET EC+LUSI:E. IA Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 8tro *ar%etro co%*rue"a la inte#ridad de la in$or%acin de la BD! :ALIDATE. Es coneniente incor*orarlo dentro de nuestra a*licacin cuando a"ra%os la BD. A"rir una BD no i%*lica (ue se car#uen en %e%oria las ta"las contenidas! sino (ue *osterior%ente de"e%os a"rirlas %ediante el co%ando =SE. SET DATABASE Esta"lece la BD actia en el caso de (ue ten#a%os arias en %e%oria. Ta%"i)n es *osi"le esto utilizando la "arra de herra%ientas Estndar de Oisual 3o/*ro. .ODI/P DATABASE A"re el ?enerador de BD *ara (ue se *roceda a los ca%"ios *recisos. DELETE DATABASE Eli%ina una BD - las re$erencias (ue ten#an las ta"las contenidas con la BD. Es i%*ortante utilizar esta instruccin en ez de "orrar los archios directa%ente en el siste%a o*eratio! -a (ue las ca"eceras de las ta"las se#uirn teniendo in$or%acin so"re la BD (ue las conten.a - al ir a"rirlas nos saldr un error. Si (uere%os "orrar la BD co%o las ta"las contenidas *ode%os incluir el ar#u%ento DELETETABLES *A+H DATABASE Des*u)s de ha"er (uitado una ta"la de una BD! *er%anece el hueco de dicha ta"la! -a (ue se realiza interna%ente un "orrado l#ico. Al i#ual (ue con los re#istros de una ta"la! dis*one%os de la *osi"ilidad de e%*a(uetar los datos - "orrar $.sica%ente las ta"las. :ALIDATE DATABASE Tiene la %is%a $uncin del *ar%etro :ALIDATE del co%ando O*EN DATABASE! - lo (ue hace es co%*ro"ar la inte#ridad de la BD. Tiene un *ar%etro! RE+O:ER! (ue %uestra entanas de dilo#o *ara localizar las re$erencias inlidas> ahora "ien! slo se *uede utilizar en la entana de co%andos! -a (ue en un *ro#ra%a dar.a error. +LOSE DATABASE Cierra la BD actual - sus ta"las. Se es*eci$ica ALL! cierra todas las BD a"iertas! junto a las ta"las contenidas. 8tra *osi"ilidad *ara cerrar ta"las! tanto contenidas co%o li"res! es +LOSE ALL DB+56 Deuele el no%"re de la BD actual - su ruta de acceso. DBUSED56 Mediante esta $uncin *ode%os sa"er si una BD est en uso DIS*LAP DATABASE IC Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Muestra in$or%acin so"re la BD &Diccionario de Datos' IE Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Instrucciones de .ane#o de Tablas Independientes
Displa" Tables 3 List Tables 4er%ite sa"er cules son las ta"las (ue se encuentran dentro de la BD! as. co%o su ruta de acceso. Add Table Aade una ta"la li"re a una BD. Si (uere%os %odi$icar el no%"re *ara (ue sea de %a-or lon#itud! *ode%os incluir la clusula NA.E se#uida del nueo no%"re. Remo$e Table Eli%ina una ta"la de la BD (ue la contiene - la conierte en una ta"la li"re. 4or tanto! *erdere%os todas las *ro*iedades! indices *rinci*ales! etc.! as. co%o relcaiones (ue se *udiesen ha"er creado con otras ta"las. Si ade%s de (uitarla de la BD desea%os eli%inarla del disco! *ode%os *oner el *ar%etro DELETE /ree Table Es e(uialente al co%ando anterior! *ero se di$erencia de )ste en (ue no hace $alta tener a"ierta la BD *ara conerit en li"re la ta"la. +o (ue hace es (uitar la re$erencia de la ca"ecera de la ta"la. No es coneniente utilizarlo cuando e/iste la BD! -a (ue *uede ocurrir (ue la ta"la (uede daada. Slo es aconseja"le cuando se ha "orrado la BD - las ta"las continan con la lla%ada a dicha BD Drop Table Eli%ina una ta"la de la BD - ta%"i)n la "orra del disco. 4ode%os incluir el ar#u%ento NORE+P+LE *ara (ue no se (uede en la *a*elera de 2indo,sdIA InDbc56 Deuele erdadero si el o"jeto *or el (ue se *re#unta se encuentra dentro de la BD actia. Se indica co%o se#undo *ar%etro el ti*o de o"jeto (ue es! "ien TABLE! INDEC! /IELD! :IE2 o +ONNE+TION.
IG Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Instrucciones 0enerales de .ane#o de Tablas =na ez (ue tene%os a"ierta la BD o cuando (uera%os %anejar una ta"la li"re! de"e%os utilizar la si#uiente relacin de instrucciones. Muchas de ellas toda.a son las %is%as (ue esta"an dis*oni"les en los co%ienzos de J"ase. Use Es el co%ando de ta"las *or e/celencia. Sin nin#n ti*o de *ar%etro! slo se#uido del no%"re de la ta"la! *er%ite a"rirla. Se car#a auto%tica%ente en el rea actia. Ade%s de ello! si e/iste un archio de .ndices! se a"rir ta%"i)n junto a la ta"la> ahora "ien! )sta no se ordenar salo (ue se lo *ida%os e/*resa%ente %ediante el ar#u%ento ORDER TA0. Si desea%os (ue la ta"la se a"ra en una deter%inada rea se lo *ode%os indicar %ediante IN se#uido del n%ero de rea. Si lo (ue *re$eri%os es (ue O34 to%e la *ri%er rea no asi#nada! *ondre%os el alor K &cero' en el n%ero de rea. +as ta"las se car#an en el rea con el no%"re (ue tiene el archio .DB3! si (uere%os ca%"iarlo *ode%os utilizar el *ar%etro A+IAS se#uido del nueo no%"re. +o nor%al es no co%*licarse la ida - dejar tal cual. 4ara a"rir una ta"la de $or%a e/clusia *ode%os incluir EJC+=SIOE. 4ara hacerlo de %anera co%*artida tene%os el *ar%etro S@A;ED. =n eje%*lo t.*ico *odr.a ser0 =SE ta"la 8;DE; TA? codi#o IN K Select =na ez (ue una ta"la est a"ierta tene%os dos $or%as de hacer re$erencia a sus ca%*os! "ien %ediante el alias un *unto - el no%"re del ca%*o &ta"la1.codi#o' o situndonos *reia%ente en el rea de la ta"la corres*ondiente - lla%ando al ca%*o directa%ente con su no%"re. 4ara ca%"iar de rea tan slo hace $alta aco%*aar el SE+ECT con el n%ero de rea! o "ien! *oner el alias de la ta"la. Co%o re#la #eneral *ara la *ro#ra%acin! no es %u- aconseja"le a"usar de los SE+ECT! -a (ue ralentizan la ejecucin de los *ro#ra%as. Sie%*re (ue *oda%os sustituirlo *or otro otro ti*o de co%andos! so"re todo S:+! no de"e%os dudarlo. Append BlanI 4er%ite crear un re#istro re#istro nueo. Si (uere%os crearlo en una ta"la (ue no es la de rea actia! *ode%os incluir el ar#u%ento IN co%o se hace en el USE. Si es *osi"le! es %ejor utilizar el co%ando INSERT INTO! -a (ue sustitu-e tanto al A**END BLANH co%o al RE*LA+E. II Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Replace Este co%ando *er%ite %odi$icar la in$or%acin de cada ca%*o de una ta"la. Su sinta/is es0 ;E4+ACE ca%*o 2IT@ datos Se *ueden concatenar arios ca%*os %ediante co%as. Esto es lo correcto! no de"e%os re*etir el ;E4+ACE. Cada uno de ellos *roduce un "lo(ueo de red! lo (ue ralentiza el *ro#ra%a. Si es *osi"le! es %ejor utilizar el =4DATE L S:+. Delete Borra de %anera l#ica el re#istro donde est situado el *untero en la ta"la. Es *osi"le "orrar selectia%ente %ediante los ar#u%entos /OR o 2FILE. Asi%is%o *ode%os "orrar todos los re#istros %ediante DELETE ALL. Ta%"i)n *ode%os utilizar el IN al i#ual (ue en co%andos anteriores. 4ara tra"ajar slo con re#istros no %arcados *ara "orrar de"e%os utilizar el co%ando SET DELETE ON. Recall ;ecu*era un re#istro "orrado l#ica%ente. Co%o en el DELETE *ode%os recu*erar todos los re#istros %ediante ALL o al#unos con el /OR o el 2FILE. *acI Eli%ina $.sica%ente todos los re#istros con la %arca de "orrado - actualiza el archio de .ndices! as. c%o los archios .34T (ue contienen los ca%*os %e%o. Es i%*ortante es lti%o! -a (ue los ca%*os %e%o de los re#istros "orrados *ueden ocu*ar %ucho es*acio. N8 se de"e utilizar en nin#n caso el co%ando RA4 *ara eli%inar todos los re#istros! -a (ue no "orra los ca%*os %e%o asociados.
1KK Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Instrucciones de B?s<ueda en Tablas SIip Aanza o retrocede secuencial%ente tantos re#istros co%o se le indi(ue. @a- (ue controlar en todo %o%ento (ue el retraso - el aance no des"orden el *rinci*io del $ichero - el $inal. 4ara ello! *ode%os utilizar las dos $unciones si#uientes. Bo'56 Deuele .T. si se ha encontrado el *rinci*io de $ichero! esto es! (ue el *untero est %s all del *ri%er re#istro. Eo'56 Deuele erdadero al lle#ar el *untero al $inal del $ichero! cuando est %s all del lti%o re#istro. 0o 4er%ite ir directa%ente a un re#istro! "ien sea %ediante su n%ero de re#istro! o "ien! al *ri%er re#istro con 0O TO* o al lti%o! 0O BOTTO.. Sie%*re teniendo en cuenta el orden $.sico en el caso de ir a un re#istro se#n su n%ero. En el caso de TO* - BOTTO. de*ender del orden de la ta"la. Este co%ando *er%ite %oer *unteros en otra rea %ediante la clusula IN. SeeI ;ealiza una "s(ueda directa de un alor dentro del archio de .ndices! situndose el *untero en ese re#istro en el caso de encontrarse! o "ien accediendo al $inal de $ichero en caso contrario. /ound56 4er%ite sa"er si un deter%inado alor "uscado se ha encontrado o no. Se de"e *oner justo des*u)s de la instruccin de "s(ueda. SeeI56 Sustitu-e a las dos instrucciones anteriores - al SET 8;DE;! lo (ue le conierte en una $uncin alta%ente til - (ue de"e%os i%*le%entar en nuestro cdi#o sie%*re (ue sea *osi"le. =n eje%*lo *odr.a ser0 I3 SEE\&DKK1D! Dta"la1D!DcodcodD' [DEncontradoD ENDI3 1K1 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Donde 12211 es el alor "uscado! 1tabla11 es la ta"la donde se "usca - 1codcod1 el ta# *or el cul se a a realizar la "s(ueda. 4or tanto! no hace $alta ordenar *reia%ente la ta"la *or este .ndice. Se la $uncin deuele .T. es (ue se ha encontrado el alor. Do 2>ile Este "ucle! clsico donde los ha-a! *er%ite realizar una "s(ueda en toda la ta"la de si#ueinte $or%a D8 2@I+E bE83&' S\I4 ENDI3 Aanza *or toda la ta"la hasta (ue encuentra el $inal de $ichero. Scan E(uialente al "ucle anterior! - %ucho %s *rctico! es el S+AN! (ue ade%s de recorrer auto%tica%ente toda la ta"la *er%ite $iltrar la "s(ueda %ediante las clusulas /OR - 2FILE. Es i%*ortante sa"er *or (u) re#istro co%ienza la "s(ueda. En el caso del S+AN sin %s! sie%*re e%*ieza desde el *ri%er re#istro. Sin e%"ar#o! con el 2FILE e%*ezar desde el re#istro donde est) situado el *untero en ese %o%ento. Ta%"i)n es $unda%ental oler al rea de la ta"la so"re la (ue se est haciendo el S+AN si nos he%os situado en otra dentro del "ucle *ara realizar al#una o*eracin. Ta%*oco de"e%os %oer nosotros el *untero dentro de )l! -a (ue *uede causar *)rdidas de in$or%acin. 4ara salir del "ucle re*entina%ente *ode%os incluir el co%ando ECIT. Si lo (ue (uere%os es saltar a la condicin e%itire%os un LOO*.
1K6 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Instrucciones de +!lculos en Tablas En relacin con los recorridos de las ta"las - directa%ente relacionados con ellos! estn los co%andos (ue realizan clculo *ara un n%ero deter%inado de re#istros. ;eal%ente *odr.a%os sustituir *or el co%ando SELE+T%S@L! con $unciones de #ru*o. A$era-e ;ealiza la %edia de un ca%*o o ca%*os corres*ondientes a una serie de re#istros! deter%inados *or la clusula 38; o 2@I+E (ue se inclu-a. Se *uede %andar el resultado a una aria"le o arias de*endiendo de los ca%*os *ro%ediados. Sum E(uiale al anterior *ero realiza una su%a +ount56 En este caso! esta instruccin cuenta re#istros de*endiendo del .ndice - del estado de eli%inacin. Reccount56 Si (uere%os o"iar el estado de los re#istros! *ode%os utilizarlo. 4or lo dicho! contar todos los re#istros. No se *ueden incluir clusulas 38; - 2@I+E. Se *uede incluir el rea o el alias de la ta"la a contar entre *ar)ntesis.
1K9 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez El Sistema de Almacenamiento en Bu''er Bsica%ente! consiste en la creacin auto%tica de un es*acio de %e%oria destinado a #uardar el o los re#istros (ue se est)n editando sin (ue ten#a%os (ue realizar nin#n ti*o de %oi%iento a ese "u$$er ni *oner una sola l.nea de *ro#ra%a. El *roceso est #enerado interna%ente *or el O34. +o nico (ue de"e%os hacer es co%*ro"ar si se ha *roducido al#una %odi$icacin *or *arte del usuario -! *or lti%o! #uardar o descartar los ca%"ios. El siste%a de al%acena%iento en "u$$er *er%ite! ade%s de $acilitar el %anteni%iento de las ta"las! *oder controlar el $unciona%iento en red. E/iste la t)cnica de "lo(ueo en cuanto se *roduce una %odi$icacin! (ue es lo (ue lla%a%os "lo(ueo *esi%ista> o *or otro lado ! dejar a"soluta li"ertad a los usuarios de la red "lo(ueando slo a la hora de #ra"ar! (ue es lo (ue se lla%a "lo(ueo o*ti%ista. O34 dis*one de tres "u$$er *ara #uardar los datos0 1er "u$$er! contiene los alores (ue el usuario est iendo en *antalla 6do "u$$er! #uarda la in$or%acin ori#inal (ue ten.a la ta"la 9er "u$$er! al%acena el alor %s reciente reci"ido de la red. El al%acena%iento en "u$$er se actia a tra)s de la $uncin +URSORSET*RO*&'. 4or cada ta"la (ue a-a%os a"riendo tendre%os (ue *oner un +URSORSET*RO*. +a sinta/is ar.a de*endiendo del ti*o de al%acena%iento (ue desee%os! si#uiendo el $or%ato0 C=;S8;SET4;84&DBu$$erin#D! Tti*o de al%acena%ientoS' En ti*o de al%acena%iento *odre%os indicar cinco ti*os0 :alor Si-ni'icado 1 No se actia el al%acena%iento en "u$$er! *or tanto no lo utilizare%os 6 El "lo(ueo ser a niel de re#istro - *esi%ista. El re#istro *er%anecer "lo(ueado hasta (ue se #ra"e la %odi$icacin. 9 El "lo(ueo ta%"i)n tiene lu#ar a niel de re#istro! aun(ue o*ti%ista. 4or lo tanto! se *roduce el "lo(ueo cuando se actualiza la %odi$icacin o se *roduce un des*laza%iento a otro re#istro 7 Blo(ueo *esi%ista a niel de ta"la. 3unciona i#ual (ue a niel de re#istro A Blo(ueo o*ti%ista a niel de ta"la. Se *roduce cuando se actualizan las %odi$icaciones
1K7 Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 4ara todos los casos de"e%os tener! ade%s del acceso no e/clusio &SET EC+LUSI:E O//'! el SET .ULTILO+HS ON. Des*u)s de incluir esta introduccin -a *odre%os a*roecharnos de las "ondades del siste%a.
+mo comprobar si >a >abido modi'icaciones Cuando se utiliza el "u$$er a niel de re#istro utilizare%os la $uncin 0ET/LDSTATE&' Sintaxis& U?ET3+DSTATE&Tno%"re o No. de ca%*oS! TaliasS' o ta%"i)n0 U?ET3+DSTATE&51! TaliasS' El L1 es *ara sa"er todos los estados de los re#istros. +os alores (ue nos *uede deoler son0 :alor Si-ni'icado 1 El ca%*o no ha sido %odi$icado ni eli%inado 6 Ese ha editado el ca%*o o ha ca%"iado el estado de eli%inacin 9 No se ha editado el ca%*o de un re#istro aadido o no ha ca%"iado el estado de eli%inacin del re#istro aadido & o sea se inserto el re#istro en "lanco - no introdujo in$or%acin ' 7 Se ha editado el ca%*o de un re#istro aadido o ha ca%"iado el estado de eli%inacin *ara el re#istro aadido
El cdi#o t.*ico *ara sa"er si ha ha"ido al#n ti*o de %odi$icacin so"re la re#istro actual ser.a0 I3 D6Dl?ET3+DSTATE&51' 8; D9Dl?ET3+DSTATE&51' > 8; D7Dl?ET3+DSTATE&51' UMESSA?EB8J&D@a ha"ido al#una %odi$icacinD' ENDI3 1KA Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Cuando se utiliza el "u$$er a niel de ta"la utilizare%os la $uncin 0ETNECT.ODI/IED&' ! (ue deuele el n%ero del *ri%er re#istro (ue encuentra %odi$icado. +a "s(ueda se da a *artir del *ar%etro TNo. de re#istroS. Sintaxis& U?ETNEJTM8DI3IED&TNo. de re#istroS!TaliasS' +mo actuali1ar la tabla El lti%o *aso ser #uardar o descartar las %odi$icaciones. 4ara ello se dis*one de dos $unciones0 TAB+E=4DATE&' - TAB+E;EOE;T&'. @a- (ue recordar (ue isual%ente esta%os tra"ajando so"re una ta"la inter%edia - (ue esa in$or%acin ha de ser olcada a la ta"la $.sica. Este *aso ar.a de*endiendo del ti*o de al%acena%iento (ue ha-a%os desi#nado. TABLEU*DATE56 Sintaxis0 UTAB+E=4DATE&Tn%ero de $ilasS! T$orzar actualizacin redS! TaliasS! Tarra- *ara errorS' Al actualizar la ta"la $.sica le *ode%os decir (ue lo ha#a slo *ara el re#istro en el (ue se est o *ara todos los re#istros de la ta"la. El *ri%er *ar%etro est destinado a este $in. +os alores (ue *uede to%ar son0 Qn?mero de 'ilasR :alor Si-ni'icado K 4or de$ecto. Se actualiza el re#istro en el (ue est el *untero sea cual sea el ti*o de al%acena%iento 1 Se actualizarn todos los re#istros si el al%acena%iento es a niel de ta"la - slo el re#istro actual si el al%acena%iento se esta"leci a niel de re#istro 6 I#ual $unciona%iento (ue el alor 1 *ero en este caso O34 no e%ite un error si la actualizacin no ter%in con )/ito.
Q'or1ar actuali1acin redR Este *ar%etro se utiliza *ara $orzar la actualizacin en red en el caso (ue dos usuarios est)n %odi$icando el %is%o re#istro & en el caso del "u$$er o*ti%ista' TABLERE:ERT56 1KC Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Sintaxis0 UTAB+E;EOE;T&Ttodas las $ilasS!TaliasS' Tendre%os (ue *oner .T. *ara (ue se *roduzca el descarte de los ca%"ios realizados en todos los re#istros.
Transacciones =na de las %ejoras (ue se han i%*le%entado en esta nuea ersin es la *osi"ilidad de controlar de %anera %s *recisa! - so"re todo ro"usta! el *aso de in$or%acin entre el seridor - los clientes! re$erida natural%ente al #rae *ro"le%a (ue sur#e cuando $alla la cone/in entre los dos en el *reciso %o%ento en (ue est actualizando una deter%inada in$or%acin. Este *ro"le%a se eita con el control transaccional. En O34 consiste en incluir dentro de un BE0IN TRANSA+TION - un END TRANSA+TION la serie de co%andos (ue realizan la actualizacin re(uerida. Si *or cual(uier causa se corta la cone/in sin ha"er $inalizado la transaccin! )sta no se realiza. 4or tanto! tendre%os las ta"las co%o antes del corte! esto es *osi"le #racias a (ue los ca%"ios se an #uardando en %e%oria hasta (ue lle#a el END TRANSA+TION! (ue es cuando se uelca de #ol*e toda la in$or%acin. 8tros len#uajes *er%iten continuar la transaccin donde se *ar! O34 no> *ero es %s (ue su$iciente. Ta%"i)n es *osi"le sus*ender la transaccin si encontra%os una razn *ara ello! co%o *uede ser (ue una ta"la est) "lo(ueada. Entonces "astar con eniar un co%ando ;8++BAC\ *ara restaurar todas las ta"las con los alores *reios a la transaccin. No es coneniente a"usar de las transacciones -a (ue )stas "lo(uean todas las ta"las (ue *artici*an en la %is%a! *or lo (ue nin#n usuarios de la red *odr acceder a ellas. Slo de"e%os utilizarla si cuando a-a%os a actualizar la in$or%acin de arias ta"las! - una de ellas no ten#a los alores correctos! i%*li(ue un #rae *erjuicio *ara los clculos de la a*licacin. Nunca de"e%os usarlas *ara la actualizacin de una ta"la.
Utilidades 0ENDB+ Situada en el directorio O34eT88+Se?ENDBC! esta herra%ienta #enera un *ro#ra%a (ue *uede oler a crear una "ase de datos. =se este *ro#ra%a *ara0 ?enerar cdi#o (ue *uede analizar *ara a*render c%o se crea una "ase de datos %ediante cdi#o de *ro#ra%a. ?enerar cdi#o (ue *uede ser colocado en el cdi#o de su *ro#ra%a eli%inando la necesidad de trans*ortar sus "ases de datos con su a*licacin. 1KE Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez ?enerar cdi#o (ue *uede ser colocado en el cdi#o de su *ro#ra%a *ara oler a crear la "ase de datos si los datos de un cliente estn corro%*idos. SintaGis D8 ?ENDBC 2IT@ arc3ivo *ar!metros arc3ivo Cadena de caracteres (ue contiene el no%"re de un archio de salida. El arc3ivo *uede contener in$or%acin de ruta - una e/tensin. Si no se su%inistra nin#una e/tensin se usa la e/tensin *redeter%inada .4;?. Nota Este *ro#ra%a slo $uncionar en la "ase de datos actia actual%ente.
Tratamiento de +aracteres Str56 Es una $uncin de conersin de n%eros a letras. 4or de$ecto! to%a co%o ancho sie%*re 1K. En caso de (ue (uera%os es*eci$icar otro ta%ao! de"ere%os indicarlo en el se#undo *ar%etro. Upper56 Lo4er56 " *roper56 Conierte la cadena de caracteres indicada entre los *ar)ntesis a %a-sculas! %insculas! o "ien con la letra inicial en %a-sculas - las de%s en %insculas! res*ectia%ente. Ltrim56 Rtrim56 " Alltrim56 En los tres casos (uita los es*acios (ue *udiese tener la cadena de caracteres! "ien *or la iz(uierda! *or la derecha o *or a%"os lados. Le't56 Ri->t56 To%a de una cadena de caracteres el n%ero (ue le indi(ue%os co%o se#undo *ar%etro! e%*ezando *or la iz(uierda o "ien *or la derecha. Substr56 1KG Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 4osi"ilita la e/traccin de una deter%inada cadena de caracteres dentro de otra! e%*ezando desde la *osicin indicada co%o se#undo *ar%etro - co#iendo el n%ero de caracteres (ue se es*eci$i(uen en el tercero. Len56 Deuele el n%ero de caracteres (ue tiene la cadena (ue *on#a%os entre los *arentesis. Space56 Crea una cadena de es*acios con una lon#itud deter%inada *or el nu%ero (ue escri"i%os co%o *ar%etro. Replicate56 En esta $uncin no slo *ode%os re*etir una cadena de es*acios! sino cual(uier ti*o de carcter! tantas eces co%o indi(ue%os en el se#undo de los *ara%etros. Isalp>a56 Islo4er56 e Isupper56 Deolern .T. si la cadena es de caracteres! si est en %insculas - si est en %a-usculas! se#n corres*onda. S Co%*rue"a si una deter%inada cadena o caracter! (ue se de"e *oner antes del l! est dentro de una cadena de caracteres! (ue de"e ir detrs del l. *adl56 *adr56 " *adc56 Sire *ara rellenar una cadena de caracteres! con un deter%inado carcter! tercer *ara%etro! un nu%ero de eces deter%inado *or el alor del Se#undo *ara%etro. Se realizar el relleno *or la iz(uierda! derecha o a%"os lados de*endiendo de la $uncin (ue utilice%os. At56 Rat56 Atc56 Deuele la *osicin en la (ue se encuentra el carcter o cadena de caracteres es*eci$icado en el *ri%er *ara%etro! dentro de la cadena incluida co%o se#undo! la *ri%era ez (ue lo encuentre o se#unda! tercera! etc. Oalor este (ue de*ende del tercero de los *ara%etros. +a "s(ueda e%*ezar *or la iz(uierda! AT&' o *or la derecha RAT&'> *ero el alor deuelto sie%*re ser la *osicin (ue e%*ieza *or la iz(uierda. Si (uere%os i#norar (ue las letras est)n en %a-usculas o %inusculas *ode%os utilizar AT+&' Occurs56 Muestra el n%ero de eces (ue se encuentra un caracter o cadena de caracteres dentro de una cadena de caracteres. Stu''56 1KI Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez 4er%ite sustituir una cadena *or otra. +os *ara%etros son0 cadena donde "uscar! *osicin donde e%*ezar el ree%*lazo! nu%ero de caracteres ree%*lazados a *artir de ah. - cadena sustitutoria.
.anipulacin de 'ec>as SET +ENTURP Si esta en 8N *one el ao con cuatro di#itos - si esta en 833 *one el ao con 6 di#itos. Da"56 .ont>56 " Pear56 Nos %uestra el d.a! %es - ao de una deter%inada $echa. Esta de"e%os incluirla dentro del *ar)ntesis. El ao estar e/*resado con dos o cuatro d.#itos! de*ender del estado de SET +ENTURP. 2eeI56 Nos deuele la se%ana del ao a la (ue corres*onde el d.a de la $echa indicada entre *arentesis. Do456 Muestra el d.a de la se%ana a la (ue corres*onde la $echa. El alor es nu%erico! corres*ondiendo *or de$ecto el alor 1 al do%in#o! -a (ue to%a la secuencia se%anal an#losajona. +do456 " +mont>56 En ez de deoler el n%ero del d.a o el %es! a*arecer su e(uialente en te/to! esto es! lunes! %artes o a"ril! %arzo! ect. Dm"56 " .d"56 Muestra la $echa con el %es en letras en el orden d.a! %es ao o %es d.a ao se#n la $uncin. 0omont>56 Muestra la $echa (ue corres*onder a la (ue se indi(ue entre *ar)ntesis su%ndole o restndole el n%ero de %eses (ue se es*eci$i(uen en el se#undo de sus *ara%etros. Es %u- til! *or eje%*lo! cuando ha- *or %edio en el calculo un ao "isiesto. Bet4een56 Aun(ue no es una $uncin *ro*ia%ente de $echas! es til *ara aeri#uar si una deter%inada $echa! *ri%er *ara%etro! esta entre otras dos! se#undo - tercer *ara%etro. S"s5116 Deuele el n%ero de d.as (ue han *asado se#n el calendario juliano hasta la $echa (ue se indica en el se#undo *ara%etro. 11K Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez Date56 Time56 DateTime56 Deuelen res*ectia%ente! la $echa del siste%a! la hora! - la $echa - la hora juntas. Sec56 .inute56 Four56 Corres*onde a los se#undos! %inutos - la hora de una aria"le $echahora. 111