Вы находитесь на странице: 1из 98

Diseo de bases de datos relacionales 1.

I ndice General
Captulo siguiente: 2 - II Introduccin I ndice General Introduccin Sistemas de ficheros Sistemas de bases de datos Papeles en el entorno de las bases de datos Historia de los sistemas de bases de datos Ventajas e inconvenientes de los sistemas de bases de datos Caso de estudio esumen !r"ani#aciones de ficheros $ estructuras de acceso Introduccin Conceptos fundamentales de or"ani#aciones de ficheros %ispositivos de almacenamiento secundario %iscos &cceso a los datos 'icheros desordenados 'icheros ordenados 'icheros dispersos %ispersin din(mica %ispersin e)tensible %ispersin lineal &"rupamiento ndices ndices de un solo nivel ndices multinivel *rboles + $ (rboles +, 'icheros dispersos como -ndices esumen Sistemas de bases de datos .odelos de datos &r/uitectura de los sistemas de bases de datos 0en"uajes de los sistemas de "estin de bases de datos 0en"uaje de definicin de datos 0en"uaje de manejo de datos 0en"uajes de cuarta "eneracin Clasificacin de los sistemas de "estin de bases de datos 'unciones de los sistemas de "estin de bases de datos Componentes de un sistema de "estin de bases de datos esumen 1l modelo relacional Introduccin 1l modelo relacional 1structura de datos relacional elaciones Propiedades de las relaciones 2ipos de relaciones Claves 1s/uema de una base de datos relacional e"las de inte"ridad 3ulos e"la de inte"ridad de entidades e"la de inte"ridad referencial e"las de ne"ocio 0en"uajes relacionales *l"ebra relacional C(lculo relacional !tros len"uajes Vistas esumen Planificacin4 dise5o $ administracin de bases de datos Introduccin Ciclo de vida de los sistemas de informacin Ciclo de vida de las aplicaciones de bases de datos %ise5o de bases de datos %ise5o conceptual %ise5o l"ico %ise5o f-sico %ise5o de aplicaciones %ise5o de transacciones %ise5o de interfaces de usuario Herramientas C&S1 &dministracin de datos $ de la base de datos esumen %ise5o conceptual de bases de datos6 .odelo entidad-relacin Introduccin .etodolo"-a de dise5o de bases de datos .odelos de datos 1l modelo entidad-relacin .etodolo"-a de dise5o conceptual esumen %ise5o l"ico de bases de datos Introduccin .etodolo"-a de dise5o l"ico en el modelo relacional 3ormali#acin esumen %ise5o f-sico de bases de datos Introduccin .etodolo"-a de dise5o f-sico para bases de datos relacionales 2raducir el es/uema l"ico "lobal %ise5ar la representacin f-sica %ise5ar los mecanismos de se"uridad .onitori#ar $ afinar el sistema esumen +iblio"raf-a

2. II Introduccin
II Introduccin

1n este cap-tulo se presentan los sistemas de bases de datos4 haciendo antes un repaso por sus predecesores4 los sistemas de ficheros6 &un/ue los sistemas de ficheros se han /uedado obsoletos4 ha$ dos buenas ra#ones para estudiarlos6 1n primer lu"ar4 el conocer los problemas de este tipo de sistemas nos previene de volver a cometerlos6 1n se"undo lu"ar4 si en al"8n momento fuera necesario convertir un sistema de ficheros en un sistema de bases de datos4 comprender cmo trabaja este sistema puede ser una a$uda esencial6 Sistemas de ficheros 9n sistema de ficheros es un conjunto de pro"ramas /ue prestan servicio a los usuarios finales6 Cada pro"rama define $ maneja sus propios datos6 0os sistemas de ficheros sur"ieron al tratar de informati#ar el manejo de los archivadores manuales con objeto de proporcionar un acceso m(s eficiente a los datos6 1n lu"ar de establecer un sistema centrali#ado en donde almacenar todos los datos de la or"ani#acin o empresa4 se esco"i un modelo descentrali#ado en el /ue cada seccin o departamento almacena $ "estiona sus propios datos6 Para comprender esto vamos a utili#ar como ejemplo una empresa inmobiliaria cu$a descripcin completa se encuentra en el 8ltimo apartado de este cap-tulo6 1n esta inmobiliaria4 el departamento de ventas se encar"a de al/uilar inmuebles6 Por ejemplo4 cuando un propietario pasa por el departamento de ventas para ofrecer en al/uiler su piso4 se rellena un formulario en donde se reco"en los datos del piso4 como la direccin $ el n8mero de habitaciones4 $ los datos del propietario6 1l departamento de ventas tambi:n se encar"a de atender a los clientes /ue desean al/uilar un inmueble6 Cuando un cliente ;posible in/uilino< pasa por este departamento se rellena un formulario con sus datos $ sus preferencias= si /uiere un piso o una casa4 el importe mensual /ue est( dispuesto a pa"ar por el al/uiler4 etc6 Para "estionar toda esta informacin4 el departamento de ventas posee un sistema de informacin6 1l sistema tiene tres ficheros= fichero de inmuebles4 fichero de propietarios $ fichero de in/uilinos6 INMUEBLE Inum Calle I&7> 1nmedio4 72? I0B> iu 1bre4 2> &rea Centro Poblacin 2ipo Hab &l/uiler Pnum Castelln Casa @ @AA CDA CAA C2D P>@ P?E P>A PBC 2

onda Sur Castelln Piso > Grao Castelln Piso C Se"orbe Piso C

IG> Sorell4 D IGC@ &licante47

IG27 San 'rancisco4 7A IG7@ Capuchinos4 7B PROPI !"RIO Pnum 3ombre &pellido %ireccin P>@ P?E P>A PBC &mparo 'elip .anuel !biol

Vinaro#

Casa D

DDA >AA

P?E PBC

afalafena Castelln Piso >

Pref 2el:fono B@> 2CA @?A B@> >DA E@A

&sensi 2>4 Castelln &v60ibertad 7D4 Vinaro#

&lberto 1strada &v6del Puerto D24 Castelln B@> 2AA E>A Folanda obles Pur-sima >4 Se"orbe B@> E7A >CA

I#$%I&I#O Gnum 3ombre &pellido %ireccin GE@ GD@ GE> G@2 Huan &na 1lena &licia 'elip +arcel >E4 Castelln Pref 2el:fono 2ipo &l/uiler B@> 2?2 D>A Piso CED

Gran"el San afael >D4 &lma#ora B@> DD7 77A Piso CAA &baso .ori 3avarra E@4 Castelln &llo#a >D4 Castelln B@> 2AD D@A Casa EAA B@> 22B D?A Piso DDA

1l departamento de contratos se ocupa de "estionar los contratos de al/uiler de los inmuebles6 Cuando un cliente desea formali#ar un contrato4 un empleado de la empresa rellena un formulario con los datos del in/uilino $ los datos del inmueble6 1ste formulario se pasa al departamento de contratos4 /ue asi"na un n8mero al contrato $ completa la informacin sobre el pa"o $ el per-odo del contrato6 Para "estionar esta informacin4 el departamento de contratos posee un sistema de informacin con tres ficheros= el fichero de los contratos4 el fichero de los inmuebles al/uilados $ el fichero de los in/uilinos /ue tienen en vi"or un contrato de al/uiler6 CONTRATO Cnum Inum Gnum Importe Pa"o 7AA2> I&7> G@2 7AAED I0B> GE@ 7AA72 IG27 GE> I#'% (& C @AA CDA DDA Visa %epsito Pa"adoI Inicio 'in 72AA S 3 S .eses

7J@JBB C7JDJAA 72 7J7JAA CAJ@JAA @ 7JEJBB CAJ@JAA 72

1fectivo EAA Che/ue 77AA

Inum Calle I&7> 1nmedio4 72? I0B> iu 1bre4 2>

&rea Centro

Poblacin &l/uiler Castelln @AA

onda Sur Castelln CDA Vinaro# DDA

IG27 San 'rancisco4 7A I#$%I&I#O Gnum 3ombre &pellido %ireccin GE@ GE> G@2 Huan 1lena &licia 'elip &baso .ori

Poblacin 2el:fono

+arcel4 >E Castelln B@> 2?2 D>A 3avarra4 E@ Castelln B@> 2AD D@A &llo#a4 >D Castelln B@> 22B D?A

Cada departamento accede a sus propios ficheros mediante una serie de pro"ramas de aplicacin escritos especialmente para ellos6 1stos pro"ramas son totalmente independientes entre un departamento $ otro4 $ se utili#an para introducir datos4 mantener los ficheros $ "enerar los informes /ue cada departamento necesita6 1s importante destacar /ue la estructura f-sica de los ficheros de datos $ de sus re"istros est( definida dentro de los pro"ramas de aplicacin6 0a situacin es mu$ similar en el resto de departamentos6 1n el departamento de nminas tienen un fichero con los datos de los salarios de los empleados6 0os re"istros de este fichero tienen los si"uientes campos= n8mero de empleado4 nombre4 apellido4 direccin4 fecha de nacimiento4 salario4 %3I $ n8mero de la oficina en la /ue trabaja6 1l departamento de personal tiene un fichero con los datos de los empleados6 Sus re"istros tienen los si"uientes campos= n8mero de empleado4 nombre4 apellidos4 direccin4 tel:fono4 puesto4 fecha de nacimiento4 salario4 %3I $ n8mero de la oficina en la /ue trabaja6 Se puede ver claramente /ue ha$ una "ran cantidad de datos repetidos en los ficheros de estos departamentos4 al"o /ue siempre ocurre en los sistemas de ficheros6 & ra-# de esto4 los sistemas de ficheros presentan una serie de inconvenientes= K Separacin aislamiento de los datos! Cuando los datos se separan en distintos ficheros4 es m(s complicado acceder a ellos4 $a /ue el pro"ramador de aplicaciones debe sincroni#ar el procesamiento de los distintos ficheros implicados para ase"urar /ue se e)traen los datos correctos6 K "#plicacin de datos! 0a redundancia de datos e)istente en los sistemas de ficheros hace /ue se desperdicie espacio de almacenamiento $ lo /ue es m(s importante= puede llevar a /ue se pierda la consistencia de los datos6 Se produce una inconsistencia cuando copias de los mismos datos no coinciden6 K "ependencia de datos! Fa /ue la estructura f-sica de los datos ;la definicin de los ficheros $ de los re"istros< se encuentra codificada en los pro"ramas de aplicacin4 cual/uier cambio en dicha estructura es dif-cil de reali#ar6 1l pro"ramador debe identificar todos los pro"ramas afectados por este cambio4 modificarlos $ volverlos a probar4 lo /ue cuesta mucho tiempo $ est( sujeto a /ue se >

produ#can errores6 & este problema4 tan caracter-stico de los sistemas de ficheros4 se le denomina tambi:n falta de independencia de datos l$ica%f&sica6 K 'ormatos de ficheros incompati(les! Fa /ue la estructura de los ficheros se define en los pro"ramas de aplicacin4 es completamente dependiente del len"uaje de pro"ramacin6 0a incompatibilidad entre ficheros "enerados por distintos len"uajes hace /ue los ficheros sean dif-ciles de procesar de modo conjunto6 K Cons#ltas fi)as proliferacin de pro$ramas de aplicacin! %esde el punto de vista de los usuarios finales4 los sistemas de ficheros fueron un "ran avance comparados a los sistemas manuales6 & consecuencia de esto4 creci la necesidad de reali#ar distintos tipos de consultas de datos6 Sin embar"o4 los sistemas de ficheros son mu$ dependientes del pro"ramador de aplicaciones= cual/uier consulta o informe /ue se /uiera reali#ar debe ser pro"ramado por :l6 1n al"unas or"ani#aciones se conformaron con fijar el tipo de consultas e informes4 siendo imposible reali#ar otro tipo de consultas /ue no se hubieran tenido en cuenta a la hora de escribir los pro"ramas de aplicacin6 1n otras or"ani#aciones hubo una proliferacin de pro"ramas de aplicacin para resolver todo tipo de consultas4 hasta el punto de desbordar al departamento de proceso de datos4 /ue no daba abasto para validar4 mantener $ documentar dichos pro"ramas6 Sistemas de bases de datos 0os inconvenientes de los sistemas de ficheros se pueden atribuir a dos factores= K 0a definicin de los datos se encuentra codificada dentro de los pro"ramas de aplicacin4 en lu"ar de estar almacenada aparte $ de forma independiente6 K 3o ha$ control sobre el acceso $ la manipulacin de los datos m(s all( de lo impuesto por los pro"ramas de aplicacin6 Para trabajar de un modo m(s efectivo4 sur"ieron las (ases de datos $ los sistemas de $estin de (ases de datos *S+B",6 9na (ase de datos es un conjunto de datos almacenados entre los /ue e)isten relaciones l"icas $ ha sido dise5ada para satisfacer los re/uerimientos de informacin de una empresa u or"ani#acin6 1n una base de datos4 adem(s de los datos4 tambi:n se almacena su descripcin6 0a base de datos es un "ran almac:n de datos /ue se define una sola ve# $ /ue se utili#a al mismo tiempo por muchos departamentos $ usuarios6 1n lu"ar de trabajar con ficheros desconectados e informacin redundante4 todos los datos se inte"ran con una m-nima cantidad de duplicidad6 0a base de datos no pertenece a un departamento4 se comparte por toda la or"ani#acin6 &dem(s4 la base de datos no slo contiene los datos de la or"ani#acin4 tambi:n almacena una descripcin de dichos datos6 1sta descripcin es lo /ue se denomina metadatos4 se almacena en el diccionario de datos o cat(lo"o $ es lo /ue permite /ue e)ista independencia de datos l"ica-f-sica6 1l modelo se"uido con los sistemas de bases de datos4 en donde se separa la definicin de los datos de los pro"ramas de aplicacin4 es mu$ similar al modelo /ue se si"ue en la actualidad para el desarrollo de pro"ramas4 en donde se da una definicin interna de un objeto $ una definicin e)terna separada6 0os usuarios del objeto slo ven la definicin e)terna $ no se deben preocupar de cmo se define internamente el objeto $ cmo funciona6 9na ventaja de este modelo4 conocido como abstraccin de datos4 es /ue se puede cambiar la definicin interna de un objeto sin afectar a D

sus usuarios $a /ue la definicin e)terna no se ve alterada6 %el mismo modo4 los sistemas de bases de datos separan la definicin de la estructura de los datos4 de los pro"ramas de aplicacin $ almacenan esta definicin en la base de datos6 Si se a5aden nuevas estructuras de datos o se modifican las $a e)istentes4 los pro"ramas de aplicacin no se ven afectados $a /ue no dependen directamente de a/uello /ue se ha modificado6 1l sistema de $estin de la (ase de datos *S+B", es una aplicacin /ue permite a los usuarios definir4 crear $ mantener la base de datos4 $ proporciona acceso controlado a la misma6 1l SG+% es la aplicacin /ue interacciona con los usuarios de los pro"ramas de aplicacin $ la base de datos6 1n "eneral4 un SG+% proporciona los si"uientes servicios= K Permite la definicin de la base de datos mediante el len$#a)e de definicin de datos6 1ste len"uaje permite especificar la estructura $ el tipo de los datos4 as- como las restricciones sobre los datos6 2odo esto se almacenar( en la base de datos6 K Permite la insercin4 actuali#acin4 eliminacin $ consulta de datos mediante el len$#a)e de mane)o de datos6 1l hecho de disponer de un len"uaje para reali#ar consultas reduce el problema de los sistemas de ficheros4 en los /ue el usuario tiene /ue trabajar con un conjunto fijo de consultas4 o bien4 dispone de un "ran n8mero de pro"ramas de aplicacin costosos de "estionar6 Ha$ dos tipos de len"uajes de manejo de datos= los proced#rales $ los no proced#rales6 1stos dos tipos se distin"uen por el modo en /ue acceden a los datos6 0os len"uajes procedurales manipulan la base de datos re"istro a re"istro4 mientras /ue los no procedurales operan sobre conjuntos de re"istros6 1n los len"uajes procedurales se especifica /u: operaciones se deben reali#ar para obtener los datos resultado4 mientras /ue en los len"uajes no procedurales se especifica /u: datos deben obtenerse sin decir cmo hacerlo6 1l len"uaje no procedural m(s utili#ado es el SG0 ;Structured Guer$ 0an"ua"e< /ue4 de hecho4 es un est(ndar $ es el len"uaje de los SG+% relacionales6 K Proporciona un acceso controlado a la base de datos mediante= un sistema de se"uridad4 de modo /ue los usuarios no autori#ados no puedan acceder a la base de datosL un sistema de inte"ridad /ue mantiene la inte"ridad $ la consistencia de los datosL un sistema de control de concurrencia /ue permite el acceso compartido a la base de datosL un sistema de control de recuperacin /ue restablece la base de datos despu:s de /ue se produ#ca un fallo del hard-are o del soft-areL un diccionario de datos o cat(lo"o accesible por el usuario /ue contiene la descripcin de los datos de la base de datos6

& diferencia de los sistemas de ficheros4 el SG+% "estiona la estructura f-sica de los datos $ su almacenamiento6 Con esta funcionalidad4 el SG+% se convierte en una herramienta de "ran utilidad6 Sin embar"o4 desde el punto de vista del usuario4 se podr-a discutir /ue los SG+% han hecho las cosas m(s complicadas4 $a /ue ahora los usuarios ven m(s datos de los /ue realmente /uieren o necesitan4 puesto /ue ven la base de datos completa6 Conscientes de este problema4 los SG+% proporcionan un mecanismo de vistas /ue permite /ue cada usuario ten"a su propia vista o visin @

de la base de datos6 1l len"uaje de definicin de datos permite definir vistas como subconjuntos de la base de datos6 0as vistas4 adem(s de reducir la complejidad permitiendo /ue cada usuario vea slo la parte de la base de datos /ue necesita4 tienen otras ventajas= K 0as vistas proporcionan un nivel de se"uridad4 $a /ue permiten e)cluir datos para /ue ciertos usuarios no los vean6 K 0as vistas proporcionan un mecanismo para /ue los usuarios vean los datos en el formato /ue deseen6 K 9na vista representa una ima"en consistente $ permanente de la base de datos4 incluso si la base de datos cambia su estructura6 2odos los SG+% no presentan la misma funcionalidad4 depende de cada producto6 1n "eneral4 los "randes SG+% multiusuario ofrecen todas las funciones /ue se acaban de citar $ muchas m(s6 0os sistemas modernos son conjuntos de pro"ramas e)tremadamente complejos $ sofisticados4 con millones de l-neas de cdi"o $ con una documentacin consistente en varios vol8menes6 0o /ue se pretende es proporcionar un sistema /ue permita "estionar cual/uier tipo de re/uisitos $ /ue ten"a un 7AAM de fiabilidad ante cual/uier fallo hard-are o soft-are6 0os SG+% est(n en continua evolucin4 tratando de satisfacer los re/uerimientos de todo tipo de usuarios6 Por ejemplo4 muchas aplicaciones de ho$ en d-a necesitan almacenar im("enes4 v-deo4 sonido4 etc6 Para satisfacer a este mercado4 los SG+% deben cambiar6 Conforme va$a pasando el tiempo ir(n sur"iendo nuevos re/uisitos4 por lo /ue los SG+% nunca permanecer(n est(ticos6 Papeles en el entorno de las bases de datos Ha$ cuatro "rupos de personas /ue intervienen en el entorno de una base de datos= el administrador de la base de datos4 los dise5adores de la base de datos4 los pro"ramadores de aplicaciones $ los usuarios6 1l administrador de la (ase de datos se encar"a del dise5o f-sico de la base de datos $ de su implementacin4 reali#a el control de la se"uridad $ de la concurrencia4 mantiene el sistema para /ue siempre se encuentre operativo $ se encar"a de /ue los usuarios $ las aplicaciones obten"an buenas prestaciones6 1l administrador debe conocer mu$ bien el SG+% /ue se est: utili#ando4 ascomo el e/uipo inform(tico sobre el /ue est: funcionando6 0os dise.adores de la (ase de datos reali#an el dise5o l"ico de la base de datos4 debiendo identificar los datos4 las relaciones entre datos $ las restricciones sobre los datos $ sus relaciones6 1l dise5ador de la base de datos debe tener un profundo conocimiento de los datos de la empresa $ tambi:n debe conocer sus re$las de ne$ocio6 0as re"las de ne"ocio describen las caracter-sticas principales de los datos tal $ como las ve la empresa6 Para obtener un buen resultado4 el dise5ador de la base de datos debe implicar en el desarrollo del modelo de datos a todos los usuarios de la base de datos4 tan pronto como sea posible6 1l dise5o l"ico de la base de datos es independiente del SG+% concreto /ue se va$a a utili#ar4 es independiente de los pro"ramas de aplicacin4 de los len"uajes de pro"ramacin $ de cual/uier otra consideracin f-sica6 9na ve# se ha dise5ado e implementado la base de datos4 los pro$ramadores de aplicaciones se encar"an de implementar los pro"ramas de aplicacin /ue servir(n a los usuarios finales6 1stos E

pro"ramas de aplicacin son los /ue permiten consultar datos4 insertarlos4 actuali#arlos $ eliminarlos6 1stos pro"ramas se escriben mediante len"uajes de tercera "eneracin o de cuarta "eneracin6 0os #s#arios finales son los NclientesN de la base de datos= la base de datos ha sido dise5ada e implementada4 $ est( siendo mantenida4 para satisfacer sus re/uisitos en la "estin de su informacin6 Historia de los sistemas de bases de datos Como se ha visto en este cap-tulo4 los predecesores de los sistemas de bases de datos fueron los sistemas de ficheros6 3o ha$ un momento concreto en /ue los sistemas de ficheros ha$an cesado $ ha$an dado comien#o los sistemas de bases de datos6 %e hecho4 todav-a e)isten sistemas de ficheros en uso6 Se dice /ue los sistemas de bases de datos tienen sus ra-ces en el pro$ecto estadounidense &polo de mandar al hombre a la luna4 en los a5os sesenta6 1n a/uella :poca4 no hab-a nin"8n sistema /ue permitiera "estionar la inmensa cantidad de informacin /ue re/uer-a el pro$ecto6 0a primera empresa encar"ada del pro$ecto4 3&& ;3orth &merican &viation<4 desarroll un soft-are denominado G9&. ;General 9pdate &ccess .ethod< /ue estaba basado en el concepto de /ue varias pie#as pe/ue5as se unen para formar una pie#a m(s "rande4 $ as- sucesivamente hasta /ue el producto final est( ensamblado6 1sta estructura4 /ue tiene la forma de un (rbol4 es lo /ue se denomina una estr#ct#ra )er/r0#ica6 & mediados de los sesenta4 I+. se uni a 3&& para desarrollar G9&. en lo /ue ahora se conoce como I.S ;Information .ana"ement S$stem<6 1l motivo por el cual I+. restrin"i I.S al manejo de jerar/u-as de re"istros fue el de permitir el uso de dispositivos de almacenamiento serie4 m(s e)actamente las cintas ma"n:ticas4 $a /ue era un re/uisito del mercado por a/uella :poca6 & mitad de los sesenta4 se desarroll I%S ;Inte"rated %ata Store<4 de General 1lectric6 1ste trabajo fue diri"ido por uno de los pioneros en los sistemas de bases de datos4 Charles +achmann6 I%S era un nuevo tipo de sistema de bases de datos conocido como sistema de red4 /ue produjo un "ran efecto sobre los sistemas de informacin de a/uella "eneracin6 1l sistema de red se desarroll4 en parte4 para satisfacer la necesidad de representar relaciones entre datos m(s complejas /ue las /ue se pod-an modelar con los sistemas jer(r/uicos4 $4 en parte4 para imponer un est(ndar de bases de datos6 Para a$udar a establecer dicho est(ndar4 C!%&SF0 ;Conference on %ata S$stems 0an"ua"es<4 formado por representantes del "obierno de 1199 $ representantes del mundo empresarial4 formaron un "rupo denominado %+2G ;%ata +ase 2asO Group<4 cu$o objetivo era definir unas especificaciones est(ndar /ue permitieran la creacin de bases de datos $ el manejo de los datos6 1l %+2G present su informe final en 7BE7 $ aun/ue :ste no fue formalmente aceptado por &3SI ;&merican 3ational Standards Institute<4 muchos sistemas se desarrollaron si"uiendo la propuesta del %+2G6 1stos sistemas son los /ue se conocen como sistemas de red4 o sistemas C!%&SF0 o %+2G6 0os sistemas jer(r/uico $ de red constitu$en la primera "eneracin de los SG+%6 Pero estos sistemas presentan al"unos inconvenientes= K 1s necesario escribir complejos pro"ramas de aplicacin para responder a cual/uier tipo de consulta de datos4 por simple /ue :sta sea6 K K 0a independencia de datos es m-nima6 3o tienen un fundamento terico6 ?

1n 7BEA Codd4 de los laboratorios de investi"acin de I+.4 escribi un art-culo presentando el modelo relacional6 1n este art-culo4 presentaba tambi:n los inconvenientes de los sistemas previos4 el jer(r/uico $ el de red6 1ntonces4 se comen#aron a desarrollar muchos sistemas relacionales4 apareciendo los primeros a finales de los setenta $ principios de los ochenta6 9no de los primeros es S$stem 4 de I+.4 /ue se desarroll para probar la funcionalidad del modelo relacional4 proporcionando una implementacin de sus estructuras de datos $ sus operaciones6 1sto condujo a dos "randes desarrollos= K 1l desarrollo de un len"uaje de consultas estructurado denominado SG04 /ue se ha convertido en el len"uaje est(ndar de los sistemas relacionales6 K 0a produccin de varios SG+% relacionales durante los a5os ochenta4 como %+2 $ S0GJ%S de I+.4 $ ! &C01 de ! &C01 Corporation6 Ho$ en d-a4 e)isten cientos de SG+% relacionales4 tanto para microordenadores como para sistemas multiusuario4 aun/ue muchos no son completamente fieles al modelo relacional6 !tros sistemas relacionales multiusuario son I3G 1S de Computer &ssociates4 Informi) de Informi) SoftPare Inc6 $ S$base de S$base Inc6 1jemplos de sistemas relacionales de microordenadores son Parado) $ d+ase IV de +orland4 &ccess de .icrosoft4 'o)Pro $ =base de .icrorim6 0os SG+% relacionales constitu$en la se"unda "eneracin de los SG+%6 Sin embar"o4 el modelo relacional tambi:n tiene sus fallos4 siendo uno de ellos su limitada capacidad al modelar los datos6 Se ha hecho mucha investi"acin desde entonces tratando de resolver este problema6 1n 7BE@4 Chen present el modelo entidad-relacin4 /ue es la t:cnica m(s utili#ada en el dise5o de bases de datos6 1n 7BEB4 Codd intent subsanar al"unas de las deficiencias de su modelo relacional con una versin e)tendida denominada .J2 ;7BEB< $ m(s recientemente .JV2 ;7BBA<6 0os intentos de proporcionar un modelo de datos /ue represente al mundo real de un modo m(s fiel han dado lu"ar a los modelos de datos sem(nticos6 Como respuesta a la creciente complejidad de las aplicaciones /ue re/uieren bases de datos4 han sur"ido dos nuevos modelos= el modelo de datos orientado a objetos $ el modelo relacional e)tendido6 Sin embar"o4 a diferencia de los modelos /ue los preceden4 la composicin de estos modelos no est( clara6 1sta evolucin representa la tercera "eneracin de los SG+%6 Ventajas e inconvenientes de los sistemas de bases de datos 0os sistemas de bases de datos presentan numerosas ventajas /ue se pueden dividir en dos "rupos= las /ue se deben a la inte"racin de datos $ las /ue se deben a la interface com8n /ue proporciona el SG+%6 )enta*as por la integracin de datos K Control so(re la red#ndancia de datos! 0os sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos6 1sto hace /ue se desperdicie espacio de almacenamiento4 adem(s de provocar la falta de consistencia de datos6 1n los sistemas de bases de datos todos estos ficheros est(n inte"rados4 por lo /ue no se almacenan varias copias de los mismos datos6 Sin embar"o4 en una base de datos no se puede eliminar la redundancia completamente4 $a /ue en ocasiones es necesaria para modelar las relaciones entre los datos4 o bien es necesaria para mejorar las prestaciones6 B

K Consistencia de datos! 1liminando o controlando las redundancias de datos se reduce en "ran medida el ries"o de /ue ha$a inconsistencias6 Si un dato est( almacenado una sola ve#4 cual/uier actuali#acin se debe reali#ar slo una ve#4 $ est( disponible para todos los usuarios inmediatamente6 Si un dato est( duplicado $ el sistema conoce esta redundancia4 el propio sistema puede encar"arse de "aranti#ar /ue todas las copias se mantienen consistentes6 %es"raciadamente4 no todos los SG+% de ho$ en d-a se encar"an de mantener autom(ticamente la consistencia6 K M/s informacin so(re la misma cantidad de datos! &l estar todos los datos inte"rados4 se puede e)traer informacin adicional sobre los mismos6 K Comparticin de datos! 1n los sistemas de ficheros4 los ficheros pertenecen a las personas o a los departamentos /ue los utili#an6 Pero en los sistemas de bases de datos4 la base de datos pertenece a la empresa $ puede ser compartida por todos los usuarios /ue est:n autori#ados6 &dem(s4 las nuevas aplicaciones /ue se va$an creando pueden utili#ar los datos de la base de datos e)istente6 K Mantenimiento de est/ndares! Gracias a la inte"racin es m(s f(cil respetar los est(ndares necesarios4 tanto los establecidos a nivel de la empresa como los nacionales e internacionales6 1stos est(ndares pueden establecerse sobre el formato de los datos para facilitar su intercambio4 pueden ser est(ndares de documentacin4 procedimientos de actuali#acin $ tambi:n re"las de acceso6

Ventajas por la e)istencia del SG+%

K Me)ora en la inte$ridad de datos! 0a inte"ridad de la base de datos se refiere a la valide# $ la consistencia de los datos almacenados6 3ormalmente4 la inte"ridad se e)presa mediante restricciones o re"las /ue no se pueden violar6 1stas restricciones se pueden aplicar tanto a los datos4 como a sus relaciones4 $ es el SG+% /uien se debe encar"ar de mantenerlas6 K Me)ora en la se$#ridad! 0a se"uridad de la base de datos es la proteccin de la base de datos frente a usuarios no autori#ados6 Sin unas buenas medidas de se"uridad4 la inte"racin de datos en los sistemas de bases de datos hace /ue :stos sean m(s vulnerables /ue en los sistemas de ficheros6 Sin embar"o4 los SG+% permiten mantener la se"uridad mediante el establecimiento de claves para identificar al personal autori#ado a utili#ar la base de datos6 0as autori#aciones se pueden reali#ar a nivel de operaciones4 de modo /ue un usuario puede estar autori#ado a consultar ciertos datos pero no a actuali#arlos4 por ejemplo6 K Me)ora en la accesi(ilidad a los datos! .uchos SG+% proporcionan len"uajes de consultas o "eneradores de informes /ue permiten al usuario hacer cual/uier tipo de consulta sobre los datos4 sin /ue sea necesario /ue un pro"ramador escriba una aplicacin /ue realice tal tarea6 K Me)ora en la prod#ctividad! 1l SG+% proporciona muchas de las funciones est(ndar /ue el pro"ramador necesita escribir en un sistema de ficheros6 & nivel b(sico4 el SG+% proporciona todas las rutinas de manejo de ficheros t-picas de los pro"ramas de aplicacin6 1l hecho de disponer de estas funciones permite al pro"ramador centrarse mejor en la funcin espec-fica re/uerida por los usuarios4 sin tener /ue preocuparse de los detalles de implementacin de bajo nivel6 .uchos SG+% tambi:n proporcionan un entorno de cuarta "eneracin consistente en un conjunto de herramientas /ue simplifican4 en "ran medida4 el desarrollo de las aplicaciones /ue acceden a la base de datos6 7A

Gracias a estas herramientas4 el pro"ramador puede ofrecer una ma$or productividad en un tiempo menor6 K Me)ora en el mantenimiento $racias a la independencia de datos! 1n los sistemas de ficheros4 las descripciones de los datos se encuentran inmersas en los pro"ramas de aplicacin /ue los manejan6 1sto hace /ue los pro"ramas sean dependientes de los datos4 de modo /ue un cambio en su estructura4 o un cambio en el modo en /ue se almacena en disco4 re/uiere cambios importantes en los pro"ramas cu$os datos se ven afectados6 Sin embar"o4 los SG+% separan las descripciones de los datos de las aplicaciones6 1sto es lo /ue se conoce como independencia de datos4 "racias a la cual se simplifica el mantenimiento de las aplicaciones /ue acceden a la base de datos6 K A#mento de la conc#rrencia! 1n al"unos sistemas de ficheros4 si ha$ varios usuarios /ue pueden acceder simult(neamente a un mismo fichero4 es posible /ue el acceso interfiera entre ellos de modo /ue se pierda informacin o4 incluso4 /ue se pierda la inte"ridad6 0a ma$or-a de los SG+% "estionan el acceso concurrente a la base de datos $ "aranti#an /ue no ocurran problemas de este tipo6 K Me)ora en los servicios de copias de se$#ridad de rec#peracin ante fallos! .uchos sistemas de ficheros dejan /ue sea el usuario /uien proporcione las medidas necesarias para prote"er los datos ante fallos en el sistema o en las aplicaciones6 0os usuarios tienen /ue hacer copias de se"uridad cada d-a4 $ si se produce al"8n fallo4 utili#ar estas copias para restaurarlos6 1n este caso4 todo el trabajo reali#ado sobre los datos desde /ue se hi#o la 8ltima copia de se"uridad se pierde $ se tiene /ue volver a reali#ar6 Sin embar"o4 los SG+% actuales funcionan de modo /ue se minimi#a la cantidad de trabajo perdido cuando se produce un fallo6

Inconvenientes de los sistemas de bases de datos

K Comple)idad! 0os SG+% son conjuntos de pro"ramas mu$ complejos con una "ran funcionalidad6 1s preciso comprender mu$ bien esta funcionalidad para poder sacar un buen partido de ellos6 K Tama.o! 0os SG+% son pro"ramas complejos $ mu$ e)tensos /ue re/uieren una "ran cantidad de espacio en disco $ de memoria para trabajar de forma eficiente6 K Coste econmico del S+B"! 1l coste de un SG+% var-a dependiendo del entorno $ de la funcionalidad /ue ofrece6 Por ejemplo4 un SG+% para un ordenador personal puede costar DAA euros4 mientras /ue un SG+% para un sistema multiusuario /ue d: servicio a cientos de usuarios puede costar entre 7A6AAA $ 7AA6AAA euros6 &dem(s4 ha$ /ue pa"ar una cuota anual de mantenimiento /ue suele ser un porcentaje del precio del SG+%6 K Coste del e0#ipamiento adicional! 2anto el SG+%4 como la propia base de datos4 pueden hacer /ue sea necesario ad/uirir m(s espacio de almacenamiento6 &dem(s4 para alcan#ar las prestaciones deseadas4 es posible /ue sea necesario ad/uirir una m(/uina m(s "rande o una m(/uina /ue se dedi/ue solamente al SG+%6 2odo esto har( /ue la implantacin de un sistema de bases de datos sea m(s cara6 K Coste de la conversin! 1n al"unas ocasiones4 el coste del SG+% $ el coste del e/uipo inform(tico /ue sea necesario ad/uirir para su buen funcionamiento4 es insi"nificante comparado al 77

coste de convertir la aplicacin actual en un sistema de bases de datos6 1ste coste inclu$e el coste de ense5ar a la plantilla a utili#ar estos sistemas $4 probablemente4 el coste del personal especiali#ado para a$udar a reali#ar la conversin $ poner en marcha el sistema6 1ste coste es una de las ra#ones principales por las /ue al"unas empresas $ or"ani#aciones se resisten a cambiar su sistema actual de ficheros por un sistema de bases de datos6 K 1restaciones! 9n sistema de ficheros est( escrito para una aplicacin espec-fica4 por lo /ue sus prestaciones suelen ser mu$ buenas6 Sin embar"o4 los SG+% est(n escritos para ser m(s "enerales $ ser 8tiles en muchas aplicaciones4 lo /ue puede hacer /ue al"unas de ellas no sean tan r(pidas como antes6 K 2#lnera(le a los fallos! 1l hecho de /ue todo est: centrali#ado en el SG+% hace /ue el sistema sea m(s vulnerable ante los fallos /ue puedan producirse6 Caso de estudio 1n este apartado se describe una empresa inmobiliaria /ue est( especiali#ada en el al/uiler de pisos $ casas amuebladas6 1sta empresa se encar"a de dar publicidad a los inmuebles /ue ofrece en al/uiler4 tanto en prensa local como nacional4 entrevista a los posibles in/uilinos4 or"ani#a las visitas a los inmuebles $ ne"ocia los contratos de al/uiler6 9na ve# firmado el al/uiler4 la empresa asume la responsabilidad del inmueble4 reali#ando inspecciones peridicas para comprobar su correcto mantenimiento6 & continuacin se describen los datos /ue se manejan en las oficinas de la empresa para llevar a cabo el trabajo diario6 K !ficinas6

0a empresa tiene varias oficinas en todo el pa-s6 Cada oficina tiene un cdi"o de identificacin /ue es 8nico4 tiene una direccin ;calle4 n8mero $ ciudad<4 un n8mero de tel:fono $ un n8mero de fa)6 Cada oficina tiene su propia plantilla6 K Plantilla6

Cada oficina tiene un director /ue se encar"a de supervisar todas sus "estiones6 0a empresa si"ue mu$ de cerca el trabajo de los directores $ tiene re"istrada la fecha en /ue cada director empe# en el car"o en su oficina6 Cada director tiene un pa"o anual por "astos de veh-culo $ una bonificacin mensual /ue depende de los contratos de al/uiler /ue ha$a reali#ado su oficina6 1n cada oficina ha$ varios supervisores6 Cada uno es responsable del trabajo diario de un "rupo de entre cinco $ die# empleados /ue reali#an las "estiones de los al/uileres6 1l trabajo administrativo de cada "rupo lo lleva un administrativo6 Cada miembro de la plantilla tiene un cdi"o 8nico /ue lo identifica en la empresa6 %e cada uno de ellos se /uiere conocer el nombre4 la direccin4 el n8mero de tel:fono4 la fecha de nacimiento4 el n8mero del %3I4 su puesto en la empresa4 el salario anual $ la fecha en /ue entr en la empresa6 %e los administrativos se desea conocer tambi:n la velocidad con /ue escriben a m(/uina ;en pulsaciones por minuto<6 &dem(s4 de cada empleado se debe "uardar informacin sobre uno de sus parientes m(s pr)imos= nombre4 relacin con el empleado4 direccin $ n8mero de tel:fono6 72

Inmuebles para al/uilar6

Cada oficina de la empresa tiene una serie de inmuebles para al/uilar6 1stos inmuebles se identifican por un cdi"o /ue es 8nico dentro de la empresa6 0os datos /ue se "uardan de cada inmueble son los si"uientes= direccin completa ;calle4 n8mero $ ciudad<4 tipo de inmueble4 n8mero de habitaciones $ precio del al/uiler en euros ;este precio es mensual<6 1l precio del al/uiler se revisa de forma anual6 Cada inmueble se asi"na a un empleado /ue es el responsable de su "estin6 Cada miembro de la plantilla puede tener asi"nados hasta veinte inmuebles para al/uilar6 Si un propietario elimina su oferta de al/uiler de la empresa4 su informacin se mantiene durante al menos tres a5os6 K Propietarios6

0os propietarios de los inmuebles pueden ser particulares o empresas6 & cada propietario se le asi"na un cdi"o /ue es 8nico en la empresa6 %e los particulares se "uarda el nombre4 la direccin $ el n8mero de tel:fono6 %e las empresas se "uarda el nombre comercial4 tipo de empresa4 la direccin4 el n8mero de tel:fono $ el nombre de la persona de contacto6 K In/uilinos ;clientes<6

Cuando un cliente contacta con la empresa por primera ve#4 se toman sus datos= nombre4 direccin4 n8mero de tel:fono4 tipo de inmueble /ue prefiere e importe m()imo /ue est( dispuesto a pa"ar al mes por el al/uiler6 Fa /ue es un posible in/uilino4 se le asi"na un cdi"o /ue es 8nico en toda la empresa6 %e la entrevista inicial /ue se reali#a con cada cliente se "uarda la fecha4 el empleado /ue la reali# $ unos comentarios "enerales sobre el posible in/uilino6 K Visitas a los inmuebles6

1n la ma$or-a de los casos4 los posibles in/uilinos desean ver varios inmuebles antes de al/uilar uno6 %e cada visita /ue se reali#a se "uarda la fecha $ los comentarios reali#ados por el cliente respecto al inmueble6 K Publicidad de los inmuebles6

Cuando al"8n inmueble es dif-cil de al/uilar4 la empresa lo anuncia en la prensa local $ nacional6 %e cada anuncio se "uarda la fecha de publicacin $ el coste econmico del anuncio6 %e los peridicos se "uarda el nombre4 la direccin4 el n8mero de tel:fono4 el n8mero de fa) $ el nombre de la persona de contacto6 K Contratos de al/uiler6

0a empresa se encar"a de redactar los t:rminos de cada contrato de al/uiler6 Cada contrato tiene un n8mero4 un importe mensual4 un m:todo de pa"o4 el importe del depsito4 si se ha reali#ado el depsito4 las fechas de inicio $ finali#acin del contrato4 la duracin del contrato en meses $ el miembro de la plantilla /ue lo formali#6 0a duracin m-nima de un contrato es de tres meses $ la duracin m()ima es de un a5o6 Cada cliente puede tener al/uilados uno o varios inmuebles al mismo tiempo6 K Inspecciones6 7C

Como parte del servicio /ue presta la empresa4 :sta se encar"a de reali#ar inspecciones peridicas a los inmuebles para ase"urarse de /ue se mantienen en buen estado6 Cada inmueble se inspecciona al menos una ve# cada seis meses6 Se inspeccionan tanto los inmuebles al/uilados4 como los /ue est(n disponibles para al/uilar6 %e cada inspeccin se anota la fecha $ los comentarios sobre su estado /ue /uiera incluir el empleado /ue la ha llevado a cabo6 K &ctividades de cada oficina6

1n cada oficina se llevan a cabo las si"uientes actividades para "aranti#ar /ue cada empleado ten"a acceso a la informacin necesaria para desempe5ar su tarea de modo efectivo $ eficiente6 Cada actividad est( relacionada con una funcin espec-fica de la empresa6 Cada una de estas funciones corresponde a uno o varios puestos de los /ue ocupan los empleados4 por lo /ue :stos se indican entre par:ntesis6 76 Crear $ mantener las fichas con los datos de los empleados $ su familiar m(s pr)imo ;director<6 26 C6 >6 eali#ar listados de los empleados de cada oficina ;director<6 eali#ar listados del "rupo de empleados de un supervisor ;director $ supervisor<6 eali#ar listados de los supervisores de cada oficina ;director $ supervisor<6

D6 Crear $ mantener las fichas con los datos de los inmuebles para al/uilar ;$ de sus propietarios< de cada oficina ;supervisor<6 @6 eali#ar listados de los inmuebles para al/uilar en cada oficina ;toda la plantilla<6

E6 eali#ar listados de los inmuebles para al/uilar asi"nados a un determinado miembro de la plantilla ;supervisor<6 ?6 Crear $ mantener las fichas con los datos de los posibles in/uilinos de cada oficina ;supervisor<6 B6 eali#ar listados de los posibles in/uilinos re"istrados en cada oficina ;toda la plantilla<6

7A6 +uscar inmuebles para al/uilar /ue satisfacen las necesidades de un posible in/uilino ;toda la plantilla<6 776 Crear $ mantener las fichas de las visitas reali#adas por los posibles in/uilinos ;toda la plantilla<6 726 eali#ar listados con los comentarios hechos por los posibles in/uilinos respecto a un inmueble concreto ;toda la plantilla<6 7C6 Crear $ mantener las fichas con los datos de los anuncios insertados en los peridicos ;toda la plantilla<6 7>6 eali#ar listados de todos los anuncios /ue se han hecho sobre un determinado inmueble ;supervisor<6 7D6 eali#ar listados de todos los anuncios reali#ados en un determinado peridico ;supervisor<6 7>

7@6 Crear $ mantener las fichas /ue contienen los datos sobre cada contrato de al/uiler ;director $ supervisor<6 7E6 eali#ar listados de los contratos de al/uiler de un determinado inmueble ;director $ supervisor<6 7?6 Crear $ mantener las fichas con los datos de cada inspeccin reali#ada a los inmuebles en al/uiler ;toda la plantilla<6 7B6 eali#ar listados de todas las inspecciones reali#adas a un determinado inmueble ;supervisor<6

esumen 0os predecesores de los sistemas de bases de datos son los sistemas de ficheros6 9n sistema de ficheros est( formado por un conjunto de pro"ramas /ue dan servicio a los usuarios finales6 Cada pro"rama define $ "estiona sus propios datos6 &un/ue los sistemas de ficheros supusieron un "ran avance sobre los sistemas manuales4 tienen inconvenientes bastante importantes4 como la redundancia de datos $ la dependencia entre pro"ramas $ datos6 0os sistemas de bases de datos sur"ieron con el objetivo de resolver los problemas /ue planteaban los sistemas de ficheros6 9na base de datos es un conjunto de datos relacionados /ue reco"en las necesidades de informacin de una empresa u or"ani#acin6 1stos datos se comparten por todos los usuarios6 1l SG+% es un conjunto de pro"ramas /ue permiten a los usuarios definir4 crear $ mantener la base de datos4 adem(s de proporcionar un acceso controlado a dicha base de datos6 0a base de datos contiene tanto los datos como su definicin6 2odos los accesos a la base de datos se reali#an a trav:s del SG+%6 1l SG+% proporciona un len"uaje de definicin de datos /ue permite a los usuarios definir la base de datos4 $ un len"uaje de manejo de datos /ue permite a los usuarios la insercin4 actuali#acin4 eliminacin $ consulta de datos de la base de datos6 1l SG+% proporciona un acceso controlado a la base de datos6 Proporciona se"uridad4 inte"ridad4 concurrencia $ controla la recuperacin ante fallos6 &dem(s4 proporciona un mecanismo de vistas /ue permite mostrar a los usuarios slo a/uellos datos /ue les interesan6 0as personas involucradas en el entorno de una base de datos son= el administrador de la base de datos4 los dise5adores de la base de datos4 los pro"ramadores de aplicaciones $ los usuarios finales6 0as ra-ces de los SG+% se encuentran en los sistemas de ficheros6 0os sistemas jer(r/uico $ de red representan la primera "eneracin de los SG+%4 sur"ida hacia los a5os sesenta6 1l modelo relacional4 propuesto por Codd en 7BEA4 representa la se"unda "eneracin de los SG+%6 1ste modelo es el m(s e)tendido en la actualidad6 0a tercera "eneracin de los SG+% se encuentra representada por el modelo relacional e)tendido $ el modelo orientado a objetos6 0os sistemas de bases de datos presentan una serie de ventajas tanto por el hecho de compartir los datos4 como por la e)istencia del SG+%6 &l"unas de estas ventajas son el control de la redundancia4 la consistencia de datos4 la mejora en los aspectos de se"uridad $ la inte"ridad6 &l"unos de sus inconvenientes son su elevada complejidad4 su coste $ su vulnerabilidad ante fallos6

+. III Organi,aciones de -ic.eros / estructuras de acceso


7D

III !r"ani#aciones de ficheros $ estructuras de acceso 1n este cap-tulo se presentan los conceptos fundamentales sobre el almacenamiento f-sico de la base de datos en dispositivos de almacenamiento secundario4 como los discos6 Introduccin 0os discos son lentos pero tambi:n son maravillas de la tecnolo"-a= consi"uen incorporar varios "i"ab$tes de capacidad en un ordenador port(til6 Hace al"unos a5os4 los discos con esa capacidad eran del tama5o de una pe/ue5a lavadora6 Pero comparados a otras partes del ordenador4 los discos son lentos6 &cceder a memoria &. cuesta alrededor de 72A nanose"undos4 mientras /ue acceder al disco cuesta unos CA milise"undos6 Para darnos una idea de la diferencia de tiempos ;CA mse" J 72A nse" Q 2DA6AAA<4 vamos a hacer un s-mil= buscar al"o en memoria &. ser-a como buscar al"o en el -ndice de un libro4 para lo /ue empleamos unos 2A se"undos6 +uscar al"o en disco ser-a como pedir a la biblioteca /ue localicen un libro $ /ue el libro lle"ue despu:s de unos D? d-as6 Sin embar"o4 los discos proporcionan "ran capacidad a un coste mucho menor /ue la memoria &. $ adem(s4 mantienen la informacin aun estando apa"ados4 son no vol(tiles6 1s fundamental $ necesario un buen dise5o de la estructura de los ficheros para /ue nuestras aplicaciones ten"an acceso a toda la capacidad del disco sin /ue ten"an /ue esperar mucho tiempo por los datos6 1l objetivo es minimi#ar el n8mero de accesos a disco $ ma)imi#ar la probabilidad de /ue la informacin /ue el usuario va a necesitar en breve $a est: en memoria &.6 0os objetivos en el dise5o de estructuras de ficheros son los si"uientes= K !btener la informacin con un solo acceso a disco6 Si"uiendo con el s-mil4 no tener /ue esperar varias veces los D? d-as /ue cuesta obtener el libro6 1sto ser-a el caso ideal6 K Si no se pueden obtener los datos en un solo acceso4 hacen falta estructuras /ue permitan encontrar la informacin con el m-nimo n8mero de accesos posible ;dos o tres como mucho<6 0os al"oritmos r(pidos de b8s/ueda no son suficientes= la b8s/ueda binaria encuentra un re"istro entre D6AAA con un m()imo de 7@ comparacionesL 7@ accesos son demasiados cuando se accede a disco6 K Hace falta /ue la estructura del fichero permita a"rupar la informacin de modo /ue se puedan obtener todos los datos /ue se necesitan de una sola ve#6 2odo esto no es dif-cil si los ficheros nunca cambian4 pero con ficheros /ue crecen $ disminu$en en tama5o a medida /ue la informacin se a5ade o se borra4 es mucho m(s complejo6 0as or"ani#aciones de ficheros han ido evolucionando con el tiempo6 1n un principio4 los ficheros estaban en cinta4 con lo /ue el acceso era secuencial $ por lo tanto el coste de acceso aumentaba conforme el fichero crec-a en tama5o6 Fa /ue los ficheros de "ran tama5o no se pod-an manejar secuencialmente4 la aparicin de los discos hi#o /ue se comen#aran a utili#ar los &ndices6 9n -ndice es un fichero pe/ue5o con una lista de claves $ punteros donde la b8s/ueda es m(s r(pida6 Si se conoce el valor de la clave4 el acceso es directo6 Cuando los -ndices son demasiado "randes $ cambian con frecuencia4 son dif-ciles de "estionar4 $a /ue son ficheros ordenados en los /ue la b8s/ueda se reali#a de forma secuencial ;b8s/ueda lineal<6 7@

1s entonces cuando sur"e la idea de utili#ar estructuras en forma de (rbol como una posible solucin6 1sto ocurr-a a principios de los a5os sesenta6 %esafortunadamente4 los (rboles crecen de un modo mu$ desi"ual4 con lo /ue en muchas ocasiones todav-a ha$ /ue hacer muchos accesos a disco para obtener la informacin6 1n 7B@C se crean los /r(oles A2L ;(rbol binario autoajustable<4 /ue est(n e/uilibrados en altura= entre dos sub(rboles de la misma ra-# slo puede haber una diferencia en altura de un nivel6 1stos (rboles son mu$ buenos como estructuras de datos en memoria &.4 pero mu$ malos para ficheros en disco4 $a /ue re/uieren muchos accesos= al ser binarios son demasiado profundos6 Incluso los (rboles binarios e/uilibrados re/uieren demasiados accesos6 Hac-a falta un modo de tener un (rbol e/uilibrado cuando cada nodo del (rbol no era un solo re"istro ;como en un (rbol binario<4 sino un blo/ue conteniendo decenas o incluso centenas de re"istros6 1n 7BE2 ;casi die# a5os despu:s<4 sur"en los /r(oles B ; (alanced= e/uilibrado<4 en los /ue todas las hojas est(n al mismo nivel6 Cuesta tanto tiempo encontrarlos por/ue su filosof-a es completamente diferente de la filosof-a de los (rboles &V0= crecen de abajo hacia arriba conforme se a5aden re"istros6 0os (rboles + ofrecen mu$ buenas prestaciones pero presentan un problema= no es posible acceder secuencialmente a los re"istros del fichero de modo eficiente6 Casi de inmediato se crea el /r(ol B34 a5adiendo una lista enla#ada en el nivel m(s bajo del (rbol +4 con lo /ue tambi:n se permite el acceso secuencial6 Con los (rboles +, se obtiene la informacin en tres o cuatro accesos entre millones de re"istros4 $ las prestaciones se mantienen aun/ue se a5adan o eliminen re"istros6 .(s tarde4 a finales de los a5os setenta4 se empie#a a utili#ar la dispersin *hashin$,6 Se hab-a utili#ado anteriormente para -ndices4 pero no para ficheros din(micos /ue cambian con frecuencia6 %espu:s de los (rboles +4 los investi"adores se pusieron a trabajar con la dispersin din(mica e)tensible4 /ue permite acceder a la informacin en uno o dos accesos a disco4 independientemente del tama5o del fichero6 Conceptos fundamentales de or"ani#aciones de ficheros 1n los dispositivos de almacenamiento secundario4 la base de datos se or"ani#a en uno o varios ficheros6 Cada fichero est( formado por una serie de re$istros4 $ cada re"istro se divide en varios campos6 3ormalmente4 los re"istros corresponden a entidades= personas4 objetos4 eventos4 etc64 siendo los campos a/uellos atri(#tos o propiedades /ue se desea conocer sobre las entidades= el nombre de cada persona4 el color del objeto4 la fecha del evento4 etc6 Por ejemplo4 el fichero con informacin sobre la plantilla de la empresa inmobiliaria estar( formado por re"istros de empleados con los si"uientes campos= n8mero del empleado4 apellido4 puesto4 %3I $ n8mero de la oficina a la /ue pertenece= 1num &pellido Puesto 1027 Pastor %irector %3I !num

CB>C22721 !D C?E@@@2CR !C

1GCE Cubedo Supervisor

1G7> Collado &dministrativo 2>CB722C0 !C 1&B enau Supervisor CB2CC7BA' !E 7E

1GD Prats 10>7 +ae#a

%irector Supervisor

2D@>>CABR !C CBDD27CC2 !D

Cuando un usuario pide los datos del empleado E+454 el SG+% identifica el blo/ue de disco /ue contiene dichos datos $ lo pide al sistema operativo6 1ste utili#ar( sus rutinas de acceso a ficheros para obtener el blo/ue $ lo almacenar( en los (#ffers del SG+% en memoria principal6 9n (lo0#e o p/$ina es la unidad m-nima de transferencia entre disco $ memoria principal6 3ormalmente4 caben varios re"istros de datos en un mismo blo/ue6 Si un re"istro no cabe en un solo blo/ue4 se repartir( entre varios6 Si"uiendo con el ejemplo anterior4 si caben tres re"istros de plantilla por blo/ue4 el fichero ocupar( dos blo/ues= 1num &pellido Puesto 1027 Pastor %irector %3I !num blo0ue

CB>C22721 !D C?E@@@2CR !C 1

1GCE Cubedo Supervisor

1G7> Collado &dministrativo 2>CB722C0 !C 1&B enau Supervisor %irector Supervisor CB2CC7BA' !E 2D@>>CABR !C CBDD27CC2 !D 2

1GD Prats 10>7 +ae#a

1l orden en /ue se colocan los re"istros en un fichero depende de su estructura6 0os principales tipos de estructuras de ficheros son los si"uientes= K 'icheros desordenados! 1n estos ficheros los re"istros no si"uen un orden espec-fico6

K 'icheros ordenados! 1n estos ficheros los re"istros est(n ordenados por el valor de un determinado campo6 K 'icheros dispersos! 1n estos ficheros los re"istros se almacenan en la posicin del fichero /ue indica una funcin matem(tica al ser aplicada sobre un determinado campo6 K A$r#pamiento! Varios ficheros intercalan sus re"istros de modo /ue :stos /ueden a"rupados por el valor de al"8n campo /ue tienen en com8n6 0os pasos /ue se deben llevar a cabo para almacenar $ acceder a un re"istro de un fichero es lo /ue se denomina un m6todo de acceso6 Ha$ distintos m:todos de acceso4 al"unos de los cuales slo se pueden utili#ar con determinadas estructuras de ficheros6 %ispositivos de almacenamiento secundario 1l almacenamiento secundario se reali#a "eneralmente en disco $ en cinta6 3ormalmente los ficheros est(n almacenados en disco $ los datos se transfieren desde el disco a la memoria principal a medida /ue se necesitan6 1l almacenamiento en disco es la forma principal de almacenamiento 7?

con acceso directo6 1l almacenamiento en cinta es m(s lento $ el acceso es slo secuencial4 por lo /ue la funcin de las cintas est(4 b(sicamente4 limitada a archivar datos6 %iscos 0a unidad f-sica en /ue est( contenido el medio de "rabacin del disco se llama controlador de disco6 1l controlador contiene un pa/uete de discos4 tambi:n denominado vol#men6 1l pa/uete de discos est( formado por un conjunto de superficies "rabables ;discos< montados sobre un eje6 1n operacin4 el eje $ los discos rotan a una alta velocidad6 0os datos se "raban sobre las pistas4 /ue son coronas circulares /ue se encuentran sobre cada superficie6 0as pistas /ue se encuentran unas sobre otras forman cilindros6 Ha$ un conjunto de cabe#as de lecturaJescritura ubicadas al final de un bra#o /ue se mueven como un "rupo4 de tal forma /ue :stas pueden ser posicionadas sobre todas las pistas de un mismo cilindro6 %e este modo4 toda la informacin de un cilindro puede ser accedida sin tener /ue mover el bra#o4 /ue es la operacin m(s lenta6 0as pistas se dividen en porciones4 /ue son las unidades m(s pe/ue5as de espacio /ue se pueden direccionar4 $ pueden ser sectores o (lo0#es6 K Sectores! Son divisiones f-sicas $4 por tanto4 de tama5o fijo6 0os sectores van numerados4 de modo /ue sectores consecutivos tienen n8meros consecutivos6 9n cl#ster es una cantidad fija de sectores conti"uos4 $ constitu$e la unidad de espacio m(s pe/ue5a /ue se puede asi"nar a un fichero6 1l "estor de ficheros ve un fichero como un conjunto de cl#sters4 informacin /ue se encuentra almacenada en la '&2 ; 'ile Allocation Ta(le<6 9na ve# se locali#a un cl#ster4 no ha$ /ue mover las cabe#as para leer todos sus sectores6 1l administrador del sistema es /uien define cu(ntos sectores habr( en un cl#sterL cuantos m(s ha$a4 menos movimientos de las cabe#as ha$ /ue reali#ar4 con lo /ue se mejoran las prestaciones en el acceso secuencial6 9n e7tent es un tro#o de fichero formado por varios cl#sters conti"uos6 .ediante ellos se pretende enfati#ar m(s la conti"Sidad f-sica de los sectores6 0o ideal ;en acceso secuencial< es tener un solo e7tent6 Cuantos m(s ha$a4 m(s desperdi"ado estar( el fichero $4 por lo tanto4 m(s tiempo se dedicar( a mover las cabe#as de lecturaJescritura6 Cuando las pistas se encuentran divididas en sectores ha$ problemas de fra"mentacin interna debido a /ue todos los sectores son del mismo tama5o= si en un sector no cabe un m8ltiplo del n8mero de re"istros4 ha$ huecos6 Cabe la posibilidad de partir los re"istros entre sectores4 pero esto har( /ue para acceder a ciertos re"istros4 ha$a /ue traer dos sectores en lu"ar de uno6 !tro ori"en del problema de la fra"mentacin interna viene por el hecho de la asi"nacin de cl#sters enteros a ficheros= puede /ue sobre espacio en un cl#ster4 aun/ue no es tan malo4 $a /ue se puede necesitar m(s tarde6 &l principio de cada sector ha$ informacin invisible al pro"ramador en donde fi"ura la direccin del sector4 la direccin de la pista en la /ue se encuentra $ su condicin ;en buen estado o defectuoso<6 K Blo0#es! Son divisiones l"icas $4 por lo tanto4 su tama5o es variable6 1ste tama5o puede ser distinto para cada aplicacin4 $ se puede fijar como un m8ltiplo del tama5o de re"istro4 por lo /ue no ha$ problemas de fra"mentacin interna6 7B

0os blo/ues contienen datos e informacin sobre los datos= tama5o en b$tes $4 en ocasiones4 una clave indicando4 por ejemplo4 el valor de al"8n campo clave del 8ltimo re"istro del blo/ue6 &dem(s4 ha$ informacin invisible al pro"ramador al principio de cada blo/ue4 m(s cantidad /ue con los sectores6 Comparando sectores $ blo/ues4 estos 8ltimos ofrecen ma$or fle)ibilidad= se ahorra tiempo $ se consi"ue ma$or eficiencia4 $a /ue el pro"ramador determina cmo se van a or"ani#ar los datos en disco6 0os blo/ues son superiores a los sectores cuando se desea /ue la locali#acin f-sica de los ficheros corresponda con su or"ani#acin l"ica6 Sin embar"o4 el pro"ramador $Jo el sistema operativo deben hacer trabajo e)tra para determinar la or"ani#acin de los datos6 0a direccin de un re"istro en disco4 normalmente necesita informacin sobre el n8mero de cilindro4 la superficie $ el sector o blo/ue6 Coste del acceso a disco 1n "eneral ha$ tres factores /ue afectan directamente a la velocidad con /ue los datos se transfieren entre disco $ memoria principal6 Cada uno de estos factores consume un tiempo $ conlleva una operacin f-sica6 K Tiempo de (8s0#eda *see9,: es el tiempo necesario para mover el bra#o con las cabe#as de lecturaJescritura desde su posicin actual hasta el cilindro direccionado6 1l bra#o puede estar sobre el cilindro deseado4 tener /ue ir al si"uiente cilindro o al otro e)tremo del discoL por lo tanto4 dependiendo de la distancia a recorrer4 ser( m(s o menos caro6 1n un sistema multiusuario este tiempo es m(s notable $a /ue cada usuario estar( accediendo a un fichero distinto $ lo m(s probable es /ue en cada acceso de cada usuario ha$a /ue emplear un tiempo de b8s/ueda /ue ser(4 por t:rmino medio4 el tiempo de recorrer un tercio del n8mero de cilindros6 K Tiempo de rotacin *latencia,: el disco debe "irar hasta /ue la cabe#a est: situada sobre el sector a leer o escribir6 1l tiempo medio es el tiempo re/uerido para dar media vuelta6 K Tiempo de transferencia: es el tiempo empleado en leer o escribir los datos6 1ste tiempo es funcin del n8mero de b$tes transferidos ;n8mero de b$tes transferidos J n8mero de b$tes por pista tiempo de dar una vuelta<6

l disco: un cuello de botella 0as prestaciones de los discos crecen constantemente4 pero todav-a est(n mu$ lejos de las velocidades de las redes6 Por ejemplo4 un disco de DA Tb$tes por pista puede proporcionar datos a una velocidad pico de D .b$tes por se"undo4 mientras /ue una red local puede tener una velocidad de 7AA .b$tes por se"undo6 1sto hace /ue la CP9 ten"a /ue esperar a los datos debido a la lentitud de los discos4 $a /ue la red es lo suficientemente r(pida6 Ha$ una serie de t:cnicas /ue se utili#an para resolver este problema= K M#ltipro$ramacin: la CP9 hace otras tareas mientras espera6

2A

K Strippin$: el fichero se divide en tro#os $ se reparte entre varios discos4 de modo /ue todos los discos puedan estar mandando datos a la ve#6 1sta t:cnica necesita /ue la "estin de los accesos a disco sea m(s sofisticada6 K "iscos RAM: se tiene memoria &. confi"urada para actuar como un disco6 1l acceso es r(pido4 lo caro es la memoria &.6 2iene el inconveniente de /ue la memoria &. es vol(til6 K Cach6 de disco: se tiene memoria &. confi"urada para tener p("inas de datos ;sectores o blo/ues< del disco6 1l "estor de ficheros mira primero en la cach: a ver si est( el sector /ue se desea leer o escribir4 $ slo si no lo encuentra es cuando va a disco6 Por el principio de localidad de las referencias4 ha$ una "ran probabilidad de /ue lo /ue se necesita est: $a en la cach: al ir a buscarlo6 &cceso a los datos 1n este apartado se muestra4 mediante un ejemplo4 /u: partes del softPare $ del hardPare est(n involucradas en una operacin de acceso a disco6 Supon"amos /ue un pro"rama de usuario ha solicitado escribir en el fichero te)to el contenido de la variable c4 cu$o tama5o es de 7 b$te6 Prite;Nte)toN4c47< c= UPV 76 1l pro"rama pide al sistema operativo /ue escriba el contenido de c en el fichero te)to6 26 1l sistema operativo pasa el trabajo al "estor de ficheros6 C6 1l "estor de ficheros comprueba /ue las caracter-sticas l"icas del fichero son coherentes con lo /ue se /uiere hacer= el fichero est( abierto para escritura4 el usuario posee los permisos oportunos4 etc6 >6 1l "estor de ficheros busca en la '&2 la posicin f-sica del sectorJblo/ue /ue recibir( el b$te6 D6 1l "estor de ficheros se ase"ura de /ue el sectorJblo/ue se encuentra en un (#ffer de entradaJsalida en memoria &.4 $ escribe el b$te UPV en la posicin correspondiente en el (#ffer6 @6 1l "estor de ficheros dice al procesador de entradaJsalida dnde se encuentra el b$te en memoria &. $ cu(l es su destino en el disco6 E6 1l procesador de entradaJsalida espera a /ue el controlador est: disponible $ pone el dato en el formato del disco6 ?6 1l procesador de entradaJsalida env-a el dato al controlador del disco6 B6 1l controlador del disco indica al dispositivo /ue mueva la cabe#a a la pista4 espera hasta /ue el sectorJblo/ue est: bajo ella $ le manda el b$te4 /ue es escrito bit a bit6 'icheros desordenados 1n un fichero desordenado4 tambi:n denominado fichero heap4 los re"istros se colocan en el fichero en el orden en /ue se van insertando6 Cuando lle"a un nuevo re"istro4 se inserta en el 8ltimo blo/ue del ficheroL si el fichero est( lleno4 se le a5ade m(s espacio6 1sta or"ani#acin hace /ue la insercin sea mu$ eficiente6 Sin embar"o4 cuando se trata de acceder a un re"istro del fichero4 es necesario reali#ar una b8s/ueda lineal recorriendo todos los blo/ues del fichero uno tras otro4 hasta encontrar 27

el re"istro deseado6 1sto hace /ue las b8s/uedas de re"istros en los ficheros desordenados sean mu$ lentas6 Si lo /ue se desea es obtener todos los re"istros del fichero present(ndolos en un determinado orden ;se"8n el valor de al"uno de sus campos<4 es necesario reali#ar una ordenacin e)terna si el fichero completo no cabe en memoria principal= se van le$endo los re"istros4 se escriben de forma ordenada en un fichero temporal en disco $4 finalmente4 se accede a este 8ltimo fichero para leer los re"istros una ve# ordenados6 Para eliminar un re"istro es necesario traer a memoria principal el blo/ue en el /ue se encuentra4 despu:s se marca el re"istro como borrado $4 por 8ltimo4 se vuelve a escribir el blo/ue en el mismo lu"ar en /ue se encontraba6 1l espacio /ue ocupaba el re"istro borrado no se reutili#a4 lo /ue hace /ue empeoren las prestaciones4 por lo /ue4 cada cierto tiempo4 habr( /ue reali#ar una reor"ani#acin del fichero para recuperar este espacio6 Para modificar un re"istro tambi:n es necesario traerlo a memoria principal $ actuali#arlo6 Si el re"istro modificado cabe en el blo/ue en el /ue se encontraba4 se reescribe el blo/ue en su sitio6 Si el re"istro modificado ha aumentado su tama5o de modo /ue no cabe en el blo/ue4 ha$ /ue borrar el re"istro ori"inal $ a5adir el re"istro modificado al final del fichero6 0os ficheros desordenados son los m(s adecuados cuando se trata de car"ar "randes cantidades de datos4 $a /ue la insercin es mu$ eficiente al no tener /ue reali#arse nin"8n c(lculo para determinar la posicin /ue debe ocupar el re"istro en el fichero6 'icheros ordenados 1n los ficheros ordenados4 los re"istros se encuentran ordenados f-sicamente se"8n el valor de uno o varios campos6 & este campo o campos se les denomina campos de ordenacin6 Cuando se trata de buscar un re"istro en un fichero ordenado4 se puede utili#ar una b8s/ueda binaria slo cuando se busca por el campo de ordenacin6 Si la b8s/ueda se reali#a a trav:s de cual/uier otro campo4 se debe hacer una b8s/ueda lineal6 Si se /uiere leer el fichero ordenadamente4 la operacin ser( mu$ eficiente si el orden esco"ido es el del campo de ordenacin6 Si el orden de lectura es sobre cual/uier otro campo4 es preciso reali#ar una ordenacin e)terna6 Para insertar un re"istro ha$ /ue encontrar su posicin en el fichero se"8n el orden establecido4 hacer hueco $ escribir6 Si ha$ espacio suficiente en el blo/ue correspondiente4 se reordena el blo/ue $ se escribe en el fichero6 Si no ha$ espacio en el blo/ue4 habr( /ue mover al"8n re"istro al si"uiente blo/ue6 Si este 8ltimo blo/ue no tiene espacio suficiente para estos re"istros4 habr( /ue mover al"unos re"istros al blo/ue si"uiente4 $ as- sucesivamente6 1sto hace /ue la insercin de un re"istro pueda ser mu$ costosa6 9na solucin consiste en tener un fichero desordenado de desborde4 en donde se van reali#ando todas las inserciones6 Cada cierto tiempo4 el fichero de desborde se me#cla con el fichero ordenado4 de modo /ue as- las inserciones son mu$ eficientes6 1sto perjudica a las b8s/uedas4 $a /ue si el re"istro no se encuentra mediante b8s/ueda binaria en el fichero ordenado4 ha$ /ue reali#ar una b8s/ueda lineal en el fichero de desborde6 Cuando se trata de eliminar un re"istro4 ha$ /ue encontrarlo $ marcarlo como borrado6 Como en los ficheros desordenados4 cada cierto tiempo se debe reali#ar una reor"ani#acin del fichero6 Para modificar un re"istro ha$ /ue encontrarlo $ actuali#arlo en caso de /ue /uepa en el blo/ue en el /ue se encontraba6 Si el re"istro actuali#ado $a no cabe en su ubicacin4 ha$ /ue borrarlo4 hacer hueco e insertarlo6 Si en la actuali#acin se modifica el campo de ordenacin4 entonces es mu$ probable /ue 22

ha$a /ue cambiar el re"istro de lu"ar para mantener el orden= habr( /ue borrarlo4 hacer hueco e insertarlo de nuevo6 0os ficheros ordenados no se suelen utili#ar como ficheros de datos en los SG+%6 'icheros dispersos 1n los ficheros dispersos4 la direccin de cada re"istro se calcula aplicando cierta funcin sobre uno o varios de sus campos4 denominados campos de dispersin6 & la funcin se le denomina f#ncin de dispersin6 0os re"istros de este tipo de ficheros parece /ue han sido distribuidos de forma aleatoria por el mismo4 por lo /ue a estos ficheros tambi:n se les denomina ficheros aleatorios o ficheros directos6 1l acceso a los datos es mu$ r(pido slo si se busca con la condicin de i"ualdad sobre el campo de dispersin6 0a funcin de dispersin se debe esco"er de modo /ue los re"istros /ueden distribuidos uniformemente en todo el fichero6 0a t:cnica m(s popular consiste en utili#ar el resto de la divisin entera= se toma el valor de un campo4 se divide entre un valor determinado $ se utili#a el resto de la divisin entera para obtener la direccin en disco6 !tra t:cnica es el ple$ado6 Consiste en tomar distintas partes del campo de dispersin $ aplicarles al"una funcin aritm:tica6 Por ejemplo4 si el campo de dispersin es el %3I4 se pueden tomar sus d-"itos por parejas $ sumarlos6 Si el campo tiene caracteres4 se puede tomar su valor &SCII para aplicar la operacin aritm:tica6 1n realidad4 la funcin de dispersin produce un n8mero de blo/ue relativo6 1n una tabla /ue se encuentra en la cabecera del fichero se convierte este n8mero en la direccin del blo/ue en el disco6 1l problema /ue presentan la ma$or-a de las funciones de dispersin es /ue no "aranti#an direcciones 8nicas4 de modo /ue varios re"istros se asocian a una misma direccin de blo/ue6 Si a un blo/ue se asocian m(s re"istros de los /ue realmente caben4 se producen colisiones /ue ha$ /ue resolver6 0os re"istros /ue se destinan a un mismo blo/ue se denominan sinnimos6 Ha$ varias t:cnicas para "estionar las colisiones= K "ireccionamiento a(ierto! Cuando se produce una colisin4 el sistema hace una b8s/ueda lineal a partir del blo/ue al /ue iba destinado el re"istro para encontrar un hueco donde insertarlo6 Si se lle"a al final del fichero sin encontrar hueco4 se contin8a la b8s/ueda desde el principio6 K Encadenamiento! 1n lu"ar de buscar un hueco libre4 lo /ue se hace es disponer de una serie de blo/ues como (rea de desborde6 Cuando se produce una colisin4 el re"istro se sit8a en el (rea de desborde $ mediante un puntero en el blo/ue colisionado4 se apunta a la direccin del blo/ue de desborde $ la posicin relativa del re"istro dentro del blo/ue6 &dem(s4 todos los re"istros /ue han colisionado en un mismo blo/ue se van encadenando mediante punteros6 K "ispersin m8ltiple! 1sta t:cnica de resolucin de colisiones consiste en utili#ar una se"unda funcin de dispersin cuando la primera ha producido una colisin6 1l objetivo es producir una nueva direccin /ue no provo/ue colisin6 3ormalmente4 la se"unda funcin da una direccin de blo/ue situada en un (rea de desborde6 &un/ue la dispersin es el m:todo de acceso directo m(s r(pido a trav:s del campo de dispersin4 no es mu$ 8til cuando tambi:n se /uiere acceder al fichero a trav:s de otro campo6 Fa /ue la ma$or-a de las funciones de dispersin /ue se utili#an no mantienen el orden entre los re"istros4 tampoco es 8til cuando se /uiere leer los re"istros ordenadamente6

2C

+uscar un re"istro a trav:s de un campo /ue no es el de dispersin es tan caro como buscar un re"istro en un fichero desordenado= es preciso reali#ar una b8s/ueda lineal6 Para borrar un re"istro ha$ /ue eliminarlo del blo/ue en el /ue se encuentra6 Si el blo/ue tiene una lista de desborde4 se puede mover un re"istro de la lista al blo/ue6 Si el re"istro a borrar est( en la lista de desborde4 slo ha$ /ue eliminarlo de ella6 1n este caso4 ser( necesario mantener una lista enla#ada de posiciones de desborde no utili#adas6 Si al actuali#ar un re"istro se modifica el campo de dispersin4 es mu$ probable /ue el re"istro ten"a /ue cambiar de posicin4 por lo /ue habr( /ue borrarlo e insertarlo de nuevo6 !tra desventaja de la dispersin es /ue el espacio de almacenamiento es fijo4 por lo /ue es dif-cil /ue el fichero se e)panda o se comprima din(micamente6 Si el fichero tiene blo/ues $ en cada uno caben re"istros4 como m()imo se podr(n almacenar re"istros6 Si ha$ menos de re"istros4 /uedar( espacio sin utili#ar6 Si ha$ m(s de re"istros4 habr( muchas colisiones $ esto har( /ue el acceso sea m(s lento4 $a /ue habr( lar"as listas de desborde6 1n este caso4 puede ser preferible ampliar el espacio de almacenamiento $ cambiar a otra funcin de dispersin4 lo /ue implica /ue habr( /ue redistribuir todos los re"istros ;reor"ani#ar el fichero<6 Fa /ue el espacio de almacenamiento es fijo4 a este tipo de dispersin se la denomina dispersin est/tica6 Ha$ varios es/uemas /ue tratan de remediar esta situacin= la dispersin din/mica $ la dispersin e7tensi(le4 /ue almacenan una estructura de acceso adem(s del fichero4 $ la dispersin lineal4 /ue no necesita dicha estructura6 1stas t:cnicas aprovechan el /ue las funciones de dispersin dan como resultado un valor entero no ne"ativo /ue4 por tanto4 se puede representar como un n8mero binario6 0os re"istros se distribu$en entre los blo/ues teniendo en cuenta los primeros bits de este n8mero4 /ue se denomina valor de dispersin6 %ispersin din(mica Cuando se utili#a esta t:cnica4 el n8mero de blo/ues del fichero no es fijo4 sino /ue crece $ disminu$e conforme es necesario6 1l fichero puede empe#ar con un solo blo/ue $ cuando :ste se llena4 se toma un nuevo blo/ue6 0os re"istros se distribu$en entre los dos blo/ues teniendo en cuenta el primer bit de sus valores de dispersin6 0os /ue tienen un A van a un blo/ue $ los /ue tienen un 7 van al otro6 &dem(s4 se va formando un directorio con estructura de (rbol binario /ue tiene dos tipos de nodos= K 3odos internos4 /ue "u-an la b8s/ueda6 2ienen un puntero i#/uierdo correspondiente al bit A $ un puntero derecho correspondiente al bit 76 K 3odos hoja4 conteniendo el puntero al blo/ue de datos6 Para hacer una b8s/ueda se puede almacenar el directorio en memoria4 a menos /ue sea mu$ "rande6 Si no cabe en un blo/ue4 habr( /ue distribuirlo en dos o m(s niveles6 Cada nodo interno puede tener tambi:n un puntero al padre6 Se pueden utili#ar representaciones especiales de (rboles binarios para reducir el espacio necesario para los tres punteros ;i#/uierdo4 derecho $ padre<6 1n "eneral4 un directorio de niveles puede necesitar hasta accesos a blo/ue para alcan#ar un re"istro6 Cuando un blo/ue se llena4 se Nparte en dosN $ los re"istros se redistribu$en se"8n el si"uiente bit de su valor de dispersin6 1n este caso4 el directorio se e)pande con un nuevo nodo interno6 0os niveles del (rbol binario se e)panden din(micamente ;nunca habr( m(s niveles /ue n8mero de bits ha$ en el valor de dispersin<6 2>

Si la funcin de dispersin distribu$e los re"istros uniformemente4 el (rbol estar( e/uilibrado6 Cuando un blo/ue se vac-a4 o si el n8mero de re"istros en dos blo/ues vecinos cabe en un solo blo/ue4 el directorio pierde un nodo interno $ los dos nodos hoja se combinan formando uno solo6 %e este modo los niveles del (rbol pueden disminuir din(micamente6 %ispersin e)tensible 1n la dispersin e)tensible el directorio es un vector de direcciones de blo/ue4 donde es la profundidad "lobal del directorio6 1l entero formado por los primeros bits del valor de dispersin es el -ndice /ue indica en /u: entrada del vector se encuentra la direccin del blo/ue /ue contiene al re"istro6 Puede haber varias entradas en el directorio con los primeros bits en com8n ; < apuntando al mismo blo/ue cuando los re"istros /ue van a parar a ellas caben en dicho blo/ue6 Cada blo/ue tiene una profundidad local ;/ue se almacena con :l<4 /ue especifica el n8mero de bits /ue tienen en com8n los valores de dispersin de los re"istros /ue en :l se encuentran6 1l valor de puede incrementarse o disminuirse en una unidad cada ve# /ue se necesita doblar o disminuir a la mitad el n8mero de entradas en el vector directorio6 1s necesario doblar el directorio si un blo/ue con profundidad local 4 i"ual a la profundidad "lobal 4 se llena6 1l directorio se disminu$e a la mitad si dWXN t$peQNYZ)AAAAZtEDN[para todos los blo/ues despu:s de borrar al"8n re"istro6 Como mucho4 son necesarios dos accesos a blo/ue para lle"ar a cual/uier re"istro ;acceso al directorio $ acceso al blo/ue /ue contiene el re"istro<6 Comparando entre la dispersin din(mica $ la e)tensible4 en la dispersin din(mica el directorio es una estructura enla#ada4 mientras /ue en la e)tensible es un (rbol perfecto4 por lo /ue se puede e)presar como un vector6 1n la dispersin din(mica el directorio crece m(s lentamente4 mientras /ue en la e)tensible va doblando su tama5o6 Sin embar"o4 $a /ue en la dispersin din(mica los nodos deben almacenar punteros a los hijos4 su tama5o debe ser m(s "rande /ue en la e)tensible ;al menos el doble de "rande<6 Por lo tanto4 el directorio de la din(mica ocupar( m(s espacio en memoria6 &dem(s4 si el directorio se hace lo suficientemente "rande como para necesitar memoria virtual4 la dispersin e)tensible ofrece la ventaja de /ue se puede acceder al directorio con no m(s de un fallo de p("ina6 Fa /ue la dispersin din(mica utili#a una estructura enla#ada para el directorio4 puede /ue se produ#ca m(s de un fallo de p("ina al moverse por el mismo6 %ispersin lineal 1l objetivo de la dispersin lineal es /ue el fichero pueda crecer $ disminuir sin tener /ue utili#ar un directorio6 &s- se ahorra el tiempo e)tra /ue los anteriores tipos de dispersin necesitan para acceder al directorio6 Supon"amos /ue un fichero empie#a con blo/ues4 numerados 4 $ utili#a la funcin de dispersin 4 a la /ue se denomina funcin inicial 6 Cuando ha$ colisiones se utili#an listas de desborde4 una lista para cada blo/ue6 &dem(s4 despu:s de una colisin4 uno de los blo/ues del fichero se parte en dos $ no es necesariamente el blo/ue en el /ue ha ocurrido la colisin6 Por ejemplo4 se produce la primera colisin6 Se inicia una lista de desborde asociada al blo/ue colisionado $4 adem(s4 el primer blo/ue del fichero4 el blo/ue 4 se parte en dos blo/ues= el ori"inal ;blo/ue < $ uno nuevo al final del fichero ;blo/ue <6 0os re"istros del blo/ue ori"inal se distribu$en entre los dos blo/ues utili#ando una funcin de dispersin diferente 6 9na propiedad clave de ambas funciones $ es /ue los re"istros /ue iban a parar al blo/ue con la funcin 4 ir(n a parar al blo/ue o al nuevo blo/ue con la funcin L esto es necesario para /ue la dispersin lineal funcione6 Conforme se van produciendo m(s colisiones4 se van partiendo blo/ues en orden lineal Cuando un blo/ue se parte4 los re"istros de su lista de desborde ;si la tiene< se redistribu$en en blo/ues del 2D

fichero utili#ando la funcin 6 3o se utili#a directorio4 slo es necesario un valor para determinar /u: blo/ues se han partido6 Para acceder a un re"istro con valor de dispersin 4 primero se le aplica la funcin a L si 4 entonces ha$ /ue aplicar la funcin a por/ue el blo/ue ha sido partido6 &l principio vale cero4 indicando /ue la funcin se aplica a todos los blo/uesL crece linealmente conforme se van partiendo los blo/ues6 Cuando 4 todos los blo/ues ori"inales se han partido $4 entonces4 la funcin /ue se aplica a todos los blo/ues es 6 1n este momento4 se pone otra ve# a cero $ si se producen nuevas colisiones4 se utili#ar( una nueva funcin 6 1n "eneral4 se utili#a una secuencia de funciones 4 donde Hace falta utili#ar una nueva funcin cuando todos los blo/ues 4 se han partido en dos ;entonces se pone a cero<6 0os blo/ues /ue se han partido en dos se pueden recombinar si la car"a del fichero disminu$e por debajo de un cierto umbral6 1n "eneral4 el factor de car"a del fichero se puede definir como 4 donde es el n8mero de re"istros en el fichero4 es el n8mero de re"istros /ue caben en un blo/ue $ es el n8mero de blo/ues /ue est( ocupando el fichero6 0os blo/ues se combinan de forma lineal $ se decrementa de modo apropiado6 &"rupamiento Hasta ahora se ha supuesto /ue todos los re"istros de un fichero son del mismo tipo6 1n muchas aplicaciones e)isten relaciones entre los re"istros de varios ficheros distintos6 1stas relaciones se pueden representar mediante campos conectores6 Por ejemplo4 en el re"istro de un empleado aparece un campo conector cu$o valor indica el cdi"o de la oficina a la /ue pertenece6 1n el fichero de las oficinas4 los re"istros tendr(n un campo /ue ser( el cdi"o de oficina6 Cuando se /uiere acceder a los campos de dos re"istros relacionados4 por ejemplo4 a los datos de un empleado $ los datos de su oficina4 se debe acceder primero al re"istro del empleado $ utili#ar el campo conector para obtener el re"istro con el /ue se relaciona en el fichero de las oficinas6 %e este modo4 las relaciones se est(n representando mediante referencias l$icas entre re"istros de distintos ficheros6 !tro modo de representar las relaciones es mediante referencias f&sicas= los re"istros relacionados se almacenan juntos en el mismo fichero6 1sta or"ani#acin es apropiada cuando se espera utili#ar mu$ a menudo una determinada relacin en el acceso a los datos4 $a /ue implementarla f-sicamente puede aumentar la eficiencia del sistema al acceder a los re"istros relacionados6 Por ejemplo4 si se /uisiera acceder con frecuencia a una oficina junto con los empleados /ue trabajan en la misma4 ser-a conveniente poner el re"istro de cada oficina junto con los re"istros de todos sus empleados conti"uos en el disco4 en un mismo fichero6 Fa /ue los re"istros de todos los empleados de una misma oficina se encuentran f-sicamente juntos4 $ a continuacin del re"istro con los datos de su oficina4 el campo /ue hace referencia a la misma en los re"istros de los empleados no es necesario6 Para poder distin"uir los re"istros de un fichero en el /ue se ha utili#ado el a"rupamiento4 ha$ /ue a5adir un campo a cada re"istro en donde se indi/ue su tipo ;suele ser el primer campo<6 2ambi:n es posible utili#ar el a"rupamiento en ficheros cu$os re"istros son todos del mismo tipo6 Por ejemplo4 en un fichero de empleados se puede tener los re"istros de los empleados a"rupados por puesto de trabajo= todos los empleados con un mismo puesto est(n conti"uos f-sicamente6 %el mismo modo /ue antes4 el campo /ue hace referencia al puesto se puede eliminar4 pero ha$ /ue incluir un re"istro con el nombre del puesto delante del "rupo de empleados6 Cuando se utili#a el a"rupamiento4 se favorecen los accesos a trav:s de la relacin en la /ue se basa dicho a"rupamiento4 pero se penali#an los accesos a trav:s de cual/uier otro campo6 Fa /ue :ste es un fichero ordenado ;aun/ue de un modo especial<4 tiene las mismas ventajas e inconvenientes /ue los ficheros ordenados6 2@

ndices 0os -ndices son estructuras de acceso /ue se utili#an para acelerar el acceso a los re"istros en respuesta a ciertas condiciones de b8s/ueda6 &l"unos tipos de -ndices4 los denominados caminos de acceso secundario4 no afectan al empla#amiento f-sico de los re"istros en el disco $ lo /ue hacen es proporcionar caminos de acceso alternativos para encontrar los re"istros de modo eficiente bas(ndose en los campos de inde)acin6 Ha$ otros tipos de -ndices /ue slo se pueden construir sobre ficheros /ue tienen una determinada or"ani#acin6 1n "eneral4 todas las or"ani#aciones de ficheros descritas en los apartados anteriores se pueden utili#ar como caminos de acceso secundarios6 Sin embar"o4 los tipos de -ndices /ue m(s se utili#an son los /ue se basan en ficheros ordenados ;-ndices de un solo nivel< $ las estructuras en forma de (rbol ;-ndices multinivel4 (rboles + $ (rboles +,<6 &dem(s4 los -ndices se pueden construir mediante dispersin u otras estructuras de datos6 ndices de un solo nivel 0os -ndices de un solo nivel est(n ordenados $ son al"o similar al -ndice de palabras de un libro en donde cada palabra viene acompa5ada de una lista de n8meros de p("ina en donde aparece la palabra6 Para hacer una b8s/ueda se puede recurrir al -ndice o bien hacer una b8s/ueda lineal a lo lar"o de todo el libro6 9n -ndice de un solo nivel es un fichero ordenado cu$os re"istros tienen dos campos= el campo sobre el /ue se define el -ndice denominado campo de inde7acin ;un campo de los re"istros del fichero de datos< $ una direccin de blo/ue en disco6 0os valores del -ndice est(n ordenados4 de modo /ue se puede utili#ar la b8s/ueda binaria6 Ha$ varios tipos de -ndices de un solo nivel= -ndices primarios4 -ndices de a"rupamiento e -ndices secundarios6 ndices pri1arios Si un fichero est( ordenado por un campo clave4 el -ndice /ue se define sobre este campo es un -ndice primario6 9n -ndice primario es un fichero ordenado cu$os re"istros son de lon"itud fija $ tienen dos campos= el campo de ordenacin del fichero de datos ;ha$ un valor 8nico de este campo para cada re"istro< $ un puntero a un blo/ue del disco ;una direccin de blo/ue<6 1l campo de ordenacin se suele denominar clave6 Ha$ una entrada ;re"istro< en el -ndice por cada blo/ue del fichero de datos6 Cada entrada tiene el valor de la clave del 8ltimo re"istro del blo/ue $ un puntero a dicho blo/ue6 9n -ndice primario es un ejemplo de -ndice no denso= ha$ una entrada por cada blo/ue de disco del fichero de datos4 $ no una entrada por cada re"istro6 9n -ndice denso contiene una entrada por cada re"istro del fichero de datos6 1l fichero en donde se encuentra el -ndice necesita muchos menos blo/ues /ue el fichero de datos por/ue ha$ menos entradas /ue re"istros en el fichero de datos4 $ por/ue sus re"istros son m(s pe/ue5os /ue los del fichero de datos6 Por lo tanto4 una b8s/ueda binaria sobre el -ndice visita menos blo/ues del disco /ue una b8s/ueda binaria sobre el fichero de datos6 9n problema importante con los -ndices primarios ;como con cual/uier fichero ordenado< es la insercin $ el borrado de re"istros6 %e hecho4 es incluso m(s "rave4 $a /ue hacer una insercin en el fichero de datos ;/ue es un fichero ordenado< re/uiere el movimiento de re"istros en el fichero de datos $4 adem(s4 ha$ /ue tocar el -ndice4 $a /ue4 se"uramente4 el movimiento de re"istros en el fichero de datos cambia el 8ltimo re"istro de al"unos blo/ues $4 por tanto4 ha$ /ue actuali#ar el 2E

-ndice6 Se puede utili#ar un fichero de desborde desordenado para reducir este problema6 !tra posibilidad es utili#ar una lista enla#ada de re"istros de desborde4 como en la dispersin6 0os re"istros de cada blo/ue $ su lista enla#ada de desborde se pueden ordenar para mejorar el tiempo de acceso6 1l borrado de re"istros se puede "estionar mediante el uso de marcas de borrado6 Sobre un fichero ordenado por clave slo puede definirse un -ndice primario6 ndices de agrupa1iento Si un fichero est( ordenado por un campo no clave4 un -ndice /ue se define sobre este campo es un -ndice de a"rupamiento6 Si los re"istros de un fichero est(n ordenados se"8n un campo no clave ;no ha$ un valor 8nico para cada re"istro<4 a ese campo se le llama campo de a$r#pamiento6 Se puede crear un -ndice distinto4 un -ndice de a"rupamiento4 para acceder m(s r(pido al fichero a trav:s de dicho campo6 9n -ndice de a"rupamiento es4 tambi:n4 un fichero ordenado con dos campos= el campo de a"rupamiento por el /ue est( ordenado el fichero $ un puntero a un blo/ue de disco4 por lo /ue tambi:n es un -ndice no denso6 Ha$ una entrada en el -ndice por cada valor distinto del campo de a"rupamiento4 $ el puntero se5ala al primer blo/ue /ue contiene un re"istro con dicho valor6 3tese /ue la insercin $ el borrado de re"istros si"uen dando problemas4 $a /ue es un fichero ordenado f-sicamente6 1sto se puede subsanar si se reserva un blo/ue entero para cada valor distinto6 Si hacen falta m(s blo/ues para un valor4 se a5aden $ se van enla#ando6 1sto hace /ue la insercin $ el borrado sean m(s simples6 Sobre un fichero ordenado por un campo no clave ;campo de a"rupamiento< slo se puede definir un -ndice de a"rupamiento6 ndices secundarios Si un fichero est( desordenado4 cual/uier -ndice de un solo nivel /ue se defina sobre :l es un -ndice secundario6 2ambi:n es un -ndice secundario todo a/uel /ue se define sobre un campo de un fichero ordenado /ue no es el campo de ordenacin6 9n -ndice secundario tambi:n es un fichero ordenado con dos campos= el campo de inde)acin ;cual/uier campo del fichero de datos /ue no es el de ordenacin< $ un puntero a un blo/ue o un puntero a un re"istro6 Pueden definirse muchos -ndices secundarios sobre un mismo fichero6 9n -ndice secundario definido sobre un campo clave ;un campo con valores distintos para cada re"istro< necesita una entrada por cada re"istro6 1l puntero puede ser al blo/ue en el /ue se encuentra el re"istro4 o bien4 al re"istro en s-6 9n -ndice de este tipo es un -ndice denso6 9n -ndice secundario es m(s "rande /ue un -ndice primario4 $a /ue tiene ma$or n8mero de entradas6 Sin embar"o4 la mejora /ue se introduce en el tiempo de b8s/ueda para un re"istro cual/uiera es ma$or para el -ndice secundario /ue para el primario4 $a /ue ha$ /ue hacer una b8s/ueda lineal en el fichero de datos si el -ndice secundario no e)iste6 Si un -ndice primario no e)iste4 se puede hacer una b8s/ueda binaria sobre el fichero de datos ;m(s r(pida /ue la lineal<6 2ambi:n se puede crear un -ndice secundario sobre un campo no clave6 1n este caso4 puede haber varios re"istros con el mismo valor en el campo de inde)acin6 Ha$ varios modos de implementar un -ndice de este tipo=

2?

K Incluir una entrada en el -ndice por cada re"istro ;varias entradas tendr(n el mismo valor<4 por lo /ue ser( un -ndice denso6 1l al"oritmo de b8s/ueda binaria debe ser modificado6 K 9tili#ar re"istros de lon"itud variable en el -ndice4 con un campo /ue contiene una lista de punteros6 1n el -ndice ha$ una entrada por cada valor distinto del campo de inde)acin4 junto a una lista de punteros a todos los blo/ues /ue contienen re"istros con dicho valor6 1n este caso4 tambi:n ha$ /ue modificar de modo apropiado el al"oritmo de b8s/ueda binaria6 K 9tili#ar re"istros de lon"itud fija en el -ndice4 con una entrada para cada valor del campo de inde)acin4 pero crear un nivel e)tra de indireccin para manejar punteros m8ltiples6 1n este -ndice no denso cada puntero se5ala a un blo/ue de punteros a re"istrosL cada puntero a re"istro de ese blo/ue apunta a uno de los re"istros del fichero de datos con el mismo valor del campo de inde)acin6 Si los punteros a re"istros no caben en un solo blo/ue4 se puede usar una lista enla#ada de blo/ues6 1l acceso a trav:s del -ndice re/uiere un acceso adicional a blo/ue debido al nivel e)tra introducido4 pero los al"oritmos para buscar en el -ndice $ los de insercin de nuevos re"istros en el fichero de datos son bastante simples6 &dem(s4 los accesos /ue tienen condiciones de b8s/ueda complicadas ;sobre varios campos< se pueden reali#ar trabajando sobre los punteros $ no sobre los re"istros4 siempre /ue ha$a un -ndice secundario por cada uno de los campos implicados en la condicin6 1sta es la t:cnica m(s utili#ada6 3tese /ue un -ndice secundario proporciona un orden l$ico de los re"istros se"8n el campo de inde)acin6 Si accedemos a los re"istros en el orden de las entradas del -ndice secundario4 los obtenemos en el orden del campo de inde)acin6 Por lo tanto4 no ha$ /ue hacer una ordenacin e)terna para leer ordenadamente se"8n dicho campo6 ndices multinivel 0os -ndices /ue se han descrito hasta ahora son ficheros ordenados en los /ue una b8s/ueda re/uiere apro)imadamente accesos a blo/ues de disco4 siendo el n8mero de blo/ues /ue tiene el -ndice6 1s el lo"aritmo en base dos por/ue en cada paso del al"oritmo se reduce a la mitad el tro#o del -ndice en el /ue se va a se"uir buscando6 .ediante los -ndices multinivel se pretende reducir mucho m(s el tro#o del -ndice sobre el /ue se"uir buscando4 en concreto4 se /uiere dividir el tama5o no entre dos4 sino entre el n8mero de re"istros del -ndice /ue caben en un blo/ue6 %e este modo4 se reduce el espacio de b8s/ueda mucho m(s r(pidamente6 Si el n8mero de re"istros del -ndice /ue caben en un blo/ue es 4 entonces el buscar en un -ndice multinivel re/uiere apro)imadamente 4 /ue es mucho menor si 2XN t$peQNYZ)AAAAZtEDN[6 9n -ndice multinivel est( formado por un fichero -ndice4 al /ue se denomina primer nivel o nivel base del -ndice6 1ste primer nivel es un fichero ordenado con un valor distinto del campo de inde)acin en cada entrada6 Por tanto4 se puede crear un -ndice primario sobre el primer nivelL este -ndice constitu$e el se"undo nivel del -ndice multinivel6 Fa /ue el se"undo nivel es un -ndice primario4 en :l se tiene una entrada por cada blo/ue del primer nivel6 Como todas las entradas de ambos niveles tienen el mismo tama5o ;son re"istros de tama5o fijo siempre i"uales<4 en un blo/ue caben siempre el mismo n8mero de entradas= 6 Si el primer nivel tiene entradas4 ocupa blo/ues4 /ue es el n8mero de entradas /ue se necesitan en el se"undo nivel6 1l proceso se puede repetir sobre este nivel4 si es necesario6 1l tercer nivel4 /ue es un -ndice primario sobre el se"undo nivel4 tiene una entrada por cada blo/ue del se"undo nivel4 por lo tanto4 el n8mero de entradas del tercer nivel ser( 6 3tese /ue se necesita un tercer nivel slo si el se"undo nivel ocupa m(s de un blo/ue6 1ste proceso se puede repetir hasta /ue todas las entradas de al"8n nivel /uepan en un solo blo/ue6 Cada blo/ue reduce el n8mero de entradas del nivel anterior por un factor de 4 por tanto4 un -ndice multinivel con entradas en el primer nivel tiene apro)imadamente niveles4 donde 6 2B

1ste es/uema multinivel se puede utili#ar sobre cual/uier tipo de -ndice4 sea primario4 de a"rupamiento o secundario4 siempre /ue el primer nivel ten"a valores distintos en el campo de inde)acin $ entradas de tama5o fijo6 Cuando el -ndice del primer nivel es denso4 se puede saber si e)iste un re"istro con un valor dado en el campo de inde)acin ;test de e)istencia< sin tener /ue acceder al fichero de datos4 cosa /ue ha$ /ue hacer siempre en un -ndice no denso6 Por lo tanto los -ndices multinivel reducen el n8mero de accesos a blo/ue cuando se busca un re"istro a partir del valor de su campo de inde)acin6 Pero todav-a si"uen los problemas en inserciones $ borrados sobre los -ndices4 $a /ue todos ellos ;todos los niveles< son ficheros ordenados6 Para mantener las ventajas /ue presentan los -ndices multinivel $ reducir los problemas de las inserciones $ borrados4 los dise5adores adoptan a menudo un -ndice multinivel /ue deja espacio en cada uno de sus blo/ues para insertar nuevas entradas6 1sto es lo /ue se denomina un -ndice multinivel din(mico $ se suele implementar mediante estructuras de datos denominadas (rboles + $ (rboles +,6 *rboles + $ (rboles +, 0os (rboles + $ los (rboles +, son casos especiales de (rboles de b8s/ueda6 9n (rbol de b8s/ueda es un tipo de (rbol /ue sirve para "uiar la b8s/ueda de un re"istro4 dado el valor de uno de sus campos6 0os -ndices multinivel de la seccin anterior pueden considerarse como variaciones de los (rboles de b8s/ueda6 Cada blo/ue o nodo del -ndice multinivel puede tener hasta valores del campo de inde)acin $ punteros6 0os valores del campo de inde)acin de cada nodo "u-an al si"uiente nodo ;/ue se encuentra en otro nivel<4 hasta lle"ar al blo/ue del fichero de datos /ue contiene el re"istro deseado6 &l se"uir un puntero4 se va restrin"iendo la b8s/ueda en cada nivel a un sub(rbol del (rbol de b8s/ueda4 $ se i"noran todos los nodos /ue no est:n en dicho sub(rbol6 0os (rboles de b8s/ueda difieren un poco de los -ndices multinivel6 9n (rbol de b8s/ueda de orden es un (rbol tal /ue cada nodo contiene como mucho valores del campo de inde)acin $ punteros=

donde 4 cada es un puntero a un nodo hijo $ cada es un valor de b8s/ueda proveniente de al"8n conjunto ordenado de valores6 Se supone /ue todos los valores de b8s/ueda son 8nicos6 9n (rbol de b8s/ueda debe cumplir4 en todo momento4 las si"uientes restricciones= 76 %entro de cada nodo= 6 26 Para todos los valores del sub(rbol al /ue apunta 4 se tiene= para 4 para $ para 6 &l buscar un valor siempre se si"ue el puntero apropiado de acuerdo con las condiciones de la se"unda restriccin6 Para insertar valores de b8s/ueda en el (rbol $ eliminarlos4 sin violar las restricciones anteriores4 se utili#an al"oritmos /ue no "aranti#an /ue el (rbol de b8s/ueda est: e/uilibrado ;/ue todas las hojas est:n al mismo nivel<6 1s importante mantener e/uilibrados los (rboles de b8s/ueda por/ue esto "aranti#a /ue no habr( nodos en niveles mu$ profundos /ue re/uieran muchos accesos a blo/ues durante una b8s/ueda6 &dem(s4 las eliminaciones de re"istros pueden hacer /ue /ueden nodos casi vac-os4 con lo /ue ha$ un desperdicio de espacio importante /ue tambi:n provoca un aumento en el n8mero de niveles6 1l (rbol + es un (rbol de b8s/ueda4 con al"unas restricciones adicionales4 /ue resuelve hasta cierto punto los dos problemas anteriores6 1stas restricciones adicionales "aranti#an /ue el (rbol siempre estar( e/uilibrado $ /ue el espacio desperdiciado por la eliminacin4 si lo ha$4 nunca ser( e)cesivo6 0os al"oritmos para insertar $ eliminar se hacen m(s complejos para poder mantener estas CA

restricciones6 3o obstante4 la ma$or parte de las inserciones $ eliminaciones son procesos simples4 se complican slo en circunstancias especiales= cuando se intenta insertar en un nodo /ue est( lleno o cuando se intenta borrar en un nodo /ue est( ocupado hasta la mitad6 9n (rbol + de orden se define del si"uiente modo= 76 0a estructura de cada nodo interno tiene la forma=

donde 6 Cada es un puntero a un nodo interno del (rbol $ cada es un puntero al re"istro del fichero de datos /ue tiene el valor en el campo de b8s/ueda o de inde)acin6 26 %entro de cada nodo se cumple= 6 C6 Para todos los valores del campo de inde)acin del sub(rbol al /ue apunta 4 se cumple= para 4 para $ 4 para 6 >6 Cada nodo tiene4 como mucho4 punteros a nodos del (rbol6 D6 Cada nodo4 e)cepto la ra-# $ las hojas4 tiene4 al menos4 punteros a nodos del (rbol6 1l nodo ra-# tiene4 como m-nimo4 dos punteros a nodos del (rbol4 a menos /ue sea el 8nico nodo del (rbol6 @6 9n nodo con punteros a nodos4

C7

2. I) 3iste1as de bases de datos


IV Sistemas de bases de datos

1n este cap-tulo se presenta un an(lisis de los modelos de datos $ se definen los conceptos de es/uema $ estado de una base de datos6 Se trata la ar/uitectura de los sistemas de bases de datos $ la independencia respecto a los datos6 2ambi:n se definen los distintos len"uajes /ue proporcionan los SG+% $ se estudian varias clasificaciones de estos sistemas6 Se comentan las funciones de los SG+% $ los mdulos de softPare /ue los componen6 .odelos de datos 9na de las caracter-sticas fundamentales de los sistemas de bases de datos es /ue proporcionan cierto nivel de abstraccin de datos4 al ocultar las caracter-sticas sobre el almacenamiento f-sico /ue la ma$or-a de usuarios no necesita conocer6 0os modelos de datos son el instrumento principal para ofrecer dicha abstraccin6 9n modelo de datos es un conjunto de conceptos /ue sirven para describir la estructura de una base de datos= los datos4 las relaciones entre los datos $ las restricciones /ue deben cumplirse sobre los datos6 0os modelos de datos contienen tambi:n un conjunto de operaciones b(sicas para la reali#acin de consultas ;lecturas< $ actuali#aciones de datos6 &dem(s4 los modelos de datos m(s modernos inclu$en conceptos para especificar comportamiento4 permitiendo especificar un conjunto de operaciones definidas por el usuario6 0os modelos de datos se pueden clasificar dependiendo de los tipos de conceptos /ue ofrecen para describir la estructura de la base de datos6 0os modelos de datos de alto nivel4 o modelos concept#ales4 disponen de conceptos mu$ cercanos al modo en /ue la ma$or-a de los usuarios percibe los datos4 mientras /ue los modelos de datos de bajo nivel4 o modelos f&sicos4 proporcionan conceptos /ue describen los detalles de cmo se almacenan los datos en el ordenador6 0os conceptos de los modelos f-sicos est(n diri"idos al personal inform(tico4 no a los usuarios finales6 1ntre estos dos e)tremos se encuentran los modelos l$icos4 cu$os conceptos pueden ser entendidos por los usuarios finales4 aun/ue no est(n demasiado alejados de la forma en /ue los datos se or"ani#an f-sicamente6 0os modelos l"icos ocultan al"unos detalles de cmo se almacenan los datos4 pero pueden implementarse de manera directa en un ordenador6 0os modelos conceptuales utili#an conceptos como entidades4 atributos $ relaciones6 9na entidad representa un objeto o concepto del mundo real como4 por ejemplo4 un empleado de la empresa inmobiliaria o una oficina6 9n atri(#to representa al"una propiedad de inter:s de una entidad como4 por ejemplo4 el nombre o el salario del empleado6 9na relacin describe una interaccin entre dos o m(s entidades4 por ejemplo4 la relacin de trabajo entre un empleado $ su oficina6 Cada SG+% soporta un modelo l"ico4 siendo los m(s comunes el relacional4 el de red $ el jer(r/uico6 1stos modelos representan los datos vali:ndose de estructuras de re"istros4 por lo /ue tambi:n se denominan modelos orientados a re$istros6 Ha$ una nueva familia de modelos l"icos4 son los modelos orientados a o()etos4 /ue est(n m(s pr)imos a los modelos conceptuales6 0os modelos f-sicos describen cmo se almacenan los datos en el ordenador= el formato de los re"istros4 la estructura de los ficheros ;desordenados4 ordenados4 etc6< $ los m:todos de acceso utili#ados ;-ndices4 etc6<6 C2

& la descripcin de una base de datos mediante un modelo de datos se le denomina es0#ema de la (ase de datos6 1ste es/uema se especifica durante el dise5o4 $ no es de esperar /ue se modifi/ue a menudo6 Sin embar"o4 los datos /ue se almacenan en la base de datos pueden cambiar con mucha frecuencia= se insertan datos4 se actuali#an4 etc6 0os datos /ue la base de datos contiene en un determinado momento se denominan estado de la (ase de datos u oc#rrencia de la (ase de datos6 0a distincin entre el es/uema $ el estado de la base de datos es mu$ importante6 Cuando definimos una nueva base de datos4 slo especificamos su es/uema al SG+%6 1n ese momento4 el estado de la base de datos es el Nestado vac-oN4 sin datos6 Cuando se car"an datos por primera ve#4 la base datos pasa al Nestado inicialN6 %e ah- en adelante4 siempre /ue se realice una operacin de actuali#acin de la base de datos4 se tendr( un nuevo estado6 1l SG+% se encar"a4 en parte4 de "aranti#ar /ue todos los estados de la base de datos sean estados v(lidos /ue satisfa"an la estructura $ las restricciones especificadas en el es/uema6 Por lo tanto4 es mu$ importante /ue el es/uema /ue se especifi/ue al SG+% sea correcto $ se debe tener much-simo cuidado al dise5arlo6 1l SG+% almacena el es/uema en su cat(lo"o o diccionario de datos4 de modo /ue se pueda consultar siempre /ue sea necesario6 &r/uitectura de los sistemas de bases de datos Ha$ tres caracter-sticas importantes inherentes a los sistemas de bases de datos= la separacin entre los pro"ramas de aplicacin $ los datos4 el manejo de m8ltiples vistas por parte de los usuarios $ el uso de un cat(lo"o para almacenar el es/uema de la base de datos6 1n 7BED4 el comit: &3SISP& C ;&merican 3ational Standard Institute - Standards Plannin" and e/uirements Committee< propuso una ar/uitectura de tres niveles para los sistemas de bases de datos4 /ue resulta mu$ 8til a la hora de conse"uir estas tres caracter-sticas6 1l objetivo de la ar/uitectura de tres niveles es el de separar los pro"ramas de aplicacin de la base de datos f-sica6 1n esta ar/uitectura4 el es/uema de una base de datos se define en tres niveles de abstraccin distintos= 76 1n el nivel interno se describe la estructura f-sica de la base de datos mediante un es0#ema interno6 1ste es/uema se especifica mediante un modelo f-sico $ describe todos los detalles para el almacenamiento de la base de datos4 as- como los m:todos de acceso6 26 1n el nivel concept#al se describe la estructura de toda la base de datos para una comunidad de usuarios ;todos los de una empresa u or"ani#acin<4 mediante un es0#ema concept#al6 1ste es/uema oculta los detalles de las estructuras de almacenamiento $ se concentra en describir entidades4 atributos4 relaciones4 operaciones de los usuarios $ restricciones6 1n este nivel se puede utili#ar un modelo conceptual o un modelo l"ico para especificar el es/uema6 C6 1n el nivel e7terno se describen varios es0#emas e7ternos o vistas de #s#ario6 Cada es/uema e)terno describe la parte de la base de datos /ue interesa a un "rupo de usuarios determinado $ oculta a ese "rupo el resto de la base de datos6 1n este nivel se puede utili#ar un modelo conceptual o un modelo l"ico para especificar los es/uemas6 0a ma$or-a de los SG+% no distin"uen del todo los tres niveles6 &l"unos inclu$en detalles del nivel f-sico en el es/uema conceptual6 1n casi todos los SG+% /ue se manejan vistas de usuario4 los es/uemas e)ternos se especifican con el mismo modelo de datos /ue describe la informacin a nivel conceptual4 aun/ue en al"unos se pueden utili#ar diferentes modelos de datos en los niveles conceptual $ e)terno6

CC

Ha$ /ue destacar /ue los tres es/uemas no son m(s /ue descripciones de los mismos datos pero con distintos niveles de abstraccin6 0os 8nicos datos /ue e)isten realmente est(n a nivel f-sico4 almacenados en un dispositivo como puede ser un disco6 1n un SG+% basado en la ar/uitectura de tres niveles4 cada "rupo de usuarios hace referencia e)clusivamente a su propio es/uema e)terno6 Por lo tanto4 el SG+% debe transformar cual/uier peticin e)presada en t:rminos de un es/uema e)terno a una peticin e)presada en t:rminos del es/uema conceptual4 $ lue"o4 a una peticin en el es/uema interno4 /ue se procesar( sobre la base de datos almacenada6 Si la peticin es de una obtencin ;consulta< de datos4 ser( preciso modificar el formato de la informacin e)tra-da de la base de datos almacenada4 para /ue coincida con la vista e)terna del usuario6 1l proceso de transformar peticiones $ resultados de un nivel a otro se denomina correspondencia o transformacin6 1stas correspondencias pueden re/uerir bastante tiempo4 por lo /ue al"unos SG+% no cuentan con vistas e)ternas6 0a ar/uitectura de tres niveles es 8til para e)plicar el concepto de independencia de datos /ue podemos definir como la capacidad para modificar el es/uema en un nivel del sistema sin tener /ue modificar el es/uema del nivel inmediato superior6 Se pueden definir dos tipos de independencia de datos= K 0a independencia l$ica es la capacidad de modificar el es/uema conceptual sin tener /ue alterar los es/uemas e)ternos ni los pro"ramas de aplicacin6 Se puede modificar el es/uema conceptual para ampliar la base de datos o para reducirla6 Si4 por ejemplo4 se reduce la base de datos eliminando una entidad4 los es/uemas e)ternos /ue no se refieran a ella no deber(n verse afectados6 K 0a independencia f&sica es la capacidad de modificar el es/uema interno sin tener /ue alterar el es/uema conceptual ;o los e)ternos<6 Por ejemplo4 puede ser necesario reor"ani#ar ciertos ficheros f-sicos con el fin de mejorar el rendimiento de las operaciones de consulta o de actuali#acin de datos6 %ado /ue la independencia f-sica se refiere slo a la separacin entre las aplicaciones $ las estructuras f-sicas de almacenamiento4 es m(s f(cil de conse"uir /ue la independencia l"ica6 1n los SG+% /ue tienen la ar/uitectura de varios niveles es necesario ampliar el cat(lo"o o diccionario4 de modo /ue inclu$a informacin sobre cmo establecer la correspondencia entre las peticiones de los usuarios $ los datos4 entre los diversos niveles6 1l SG+% utili#a una serie de procedimientos adicionales para reali#ar estas correspondencias haciendo referencia a la informacin de correspondencia /ue se encuentra en el cat(lo"o6 0a independencia de datos se consi"ue por/ue al modificarse el es/uema en al"8n nivel4 el es/uema del nivel inmediato superior permanece sin cambios4 slo se modifica la correspondencia entre los dos niveles6 3o es preciso modificar los pro"ramas de aplicacin /ue hacen referencia al es/uema del nivel superior6 Por lo tanto4 la ar/uitectura de tres niveles puede facilitar la obtencin de la verdadera independencia de datos4 tanto f-sica como l"ica6 Sin embar"o4 los dos niveles de correspondencia implican un "asto e)tra durante la ejecucin de una consulta o de un pro"rama4 lo cual reduce la eficiencia del SG+%6 1s por esto /ue mu$ pocos SG+% han implementado esta ar/uitectura completa6

0en"uajes de los sistemas de "estin de bases de datos 0os SG+% deben ofrecer len"uajes e interfaces apropiadas para cada tipo de usuario= administradores de la base de datos4 dise5adores4 pro"ramadores de aplicaciones $ usuarios finales6 C>

0en"uaje de definicin de datos 9na ve# finali#ado el dise5o de una base de datos $ esco"ido un SG+% para su implementacin4 el primer paso consiste en especificar el es/uema conceptual $ el es/uema interno de la base de datos4 $ la correspondencia entre ambos6 1n muchos SG+% no se mantiene una separacin estricta de niveles4 por lo /ue el administrador de la base de datos $ los dise5adores utili#an el mismo len"uaje para definir ambos es/uemas4 es el len$#a)e de definicin de datos ;0%%<6 1l SG+% posee un compilador de 0%% cu$a funcin consiste en procesar las sentencias del len"uaje para identificar las descripciones de los distintos elementos de los es/uemas $ almacenar la descripcin del es/uema en el cat(lo"o o diccionario de datos6 Se dice /ue el diccionario contiene metadatos= describe los objetos de la base de datos6 Cuando en un SG+% ha$ una clara separacin entre los niveles conceptual e interno4 el 0%% slo sirve para especificar el es/uema conceptual6 Para especificar el es/uema interno se utili#a un len$#a)e de definicin de almacenamiento ;0%&<6 0as correspondencias entre ambos es/uemas se pueden especificar en cual/uiera de los dos len"uajes6 Para tener una verdadera ar/uitectura de tres niveles ser-a necesario disponer de un tercer len"uaje4 el len$#a)e de definicin de vistas ;0%V<4 /ue se utili#ar-a para especificar las vistas de los usuarios $ su correspondencia con el es/uema conceptual6 0en"uaje de manejo de datos 9na ve# creados los es/uemas de la base de datos4 los usuarios necesitan un len"uaje /ue les permita manipular los datos de la base de datos= reali#ar consultas4 inserciones4 eliminaciones $ modificaciones6 1ste len"uaje es el /ue se denomina len$#a)e de mane)o de datos ;0.%<6 Ha$ dos tipos de 0.%= los procedurales $ los no procedurales6 Con un LM" proced#ral el usuario ;normalmente ser( un pro"ramador< especifica /u: datos se necesitan $ cmo ha$ /ue obtenerlos6 1sto /uiere decir /ue el usuario debe especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la informacin re/uerida6 1stos len"uajes acceden a un re"istro4 lo procesan $ bas(ndose en los resultados obtenidos4 acceden a otro re"istro4 /ue tambi:n deben procesar6 &s- se va accediendo a re"istros $ se van procesando hasta /ue se obtienen los datos deseados6 0as sentencias de un 0.% procedural deben estar embebidas en un len"uaje de alto nivel4 $a /ue se necesitan sus estructuras ;bucles4 condicionales4 etc6< para obtener $ procesar cada re"istro individual6 & este len"uaje se le denomina len$#a)e anfitrin6 0as bases de datos jer(r/uicas $ de red utili#an 0.% procedurales6 9n LM" no proced#ral se puede utili#ar de manera independiente para especificar operaciones complejas sobre la base de datos de forma concisa6 1n muchos SG+% se pueden introducir interactivamente instrucciones del 0.% desde un terminal o bien embeberlas en un len"uaje de pro"ramacin de alto nivel6 0os 0.% no procedurales permiten especificar los datos a obtener en una consulta o los datos /ue se deben actuali#ar4 mediante una sola $ sencilla sentencia6 1l usuario o pro"ramador especifica /u: datos /uiere obtener sin decir cmo se debe acceder a ellos6 1l SG+% traduce las sentencias del 0.% en uno o varios procedimientos /ue manipulan los conjuntos de re"istros necesarios6 1sto libera al usuario de tener /ue conocer cu(l es la estructura f-sica de los datos $ /u: al"oritmos se deben utili#ar para acceder a ellos6 & los 0.% no procedurales tambi:n se les denomina declarativos6 0as bases de datos relacionales utili#an 0.% no procedurales4 como SG0 ;Structured Guer$ 0an"ua"e< o G+1 ;Guer$-+$-1)ample<6 0os len"uajes no procedurales son m(s f(ciles de aprender $ de usar /ue los procedurales4 $ el usuario debe reali#ar menos trabajo4 siendo el SG+% /uien hace la ma$or parte6

CD

0a parte de los 0.% no procedurales /ue reali#a la obtencin de datos es lo /ue se denomina un len$#a)e de cons#ltas6 1n "eneral4 las rdenes tanto de obtencin como de actuali#acin de datos de un 0.% no procedural se pueden utili#ar interactivamente4 por lo /ue al conjunto completo de sentencias del 0.% se le denomina len"uaje de consultas4 aun/ue es t:cnicamente incorrecto6 0en"uajes de cuarta "eneracin 3o e)iste consenso sobre lo /ue es un len$#a)e de c#arta $eneracin ;>G0<6 0o /ue en un len"uaje de tercera "eneracin ;CG0< como C!+!0 re/uiere cientos de l-neas de cdi"o4 tan solo necesita die# o veinte l-neas en un >G06 Comparado con un CG04 /ue es procedural4 un >G0 es un len"uaje no procedural= el usuario define /u: se debe hacer4 no cmo debe hacerse6 0os >G0 se apo$an en unas herramientas de mucho m(s alto nivel denominadas herramientas de cuarta "eneracin6 1l usuario no debe definir los pasos a se"uir en un pro"rama para reali#ar una determinada tarea4 tan slo debe definir una serie de par(metros /ue estas herramientas utili#ar(n para "enerar un pro"rama de aplicacin6 Se dice /ue los >G0 pueden mejorar la productividad de los pro"ramadores en un factor de 7A4 aun/ue se limita el tipo de problemas /ue pueden resolver6 0os >G0 abarcan= K K 0en"uajes de presentacin4 como len"uajes de consultas $ "eneradores de informes6 0en"uajes especiali#ados4 como hojas de c(lculo $ len"uajes de bases de datos6

K Generadores de aplicaciones /ue definen4 insertan4 actuali#an $ obtienen datos de la base de datos6 K 0en"uajes de mu$ alto nivel /ue se utili#an para "enerar el cdi"o de la aplicacin6

0os len"uajes SG0 $ G+1 son ejemplos de >G06 Ha$ otros tipos de >G0= K 9n $enerador de form#larios es una herramienta interactiva /ue permite crear r(pidamente formularios de pantalla para introducir o visuali#ar datos6 0os "eneradores de formularios permiten /ue el usuario defina el aspecto de la pantalla4 /u: informacin se debe visuali#ar $ en /u: lu"ar de la pantalla debe visuali#arse6 &l"unos "eneradores de formularios permiten la creacin de atributos derivados utili#ando operadores aritm:ticos $ tambi:n permiten especificar controles para la validacin de los datos de entrada6 K 9n $enerador de informes es una herramienta para crear informes a partir de los datos almacenados en la base de datos6 Se parece a un len"uaje de consultas en /ue permite al usuario hacer pre"untas sobre la base de datos $ obtener informacin de ella para un informe6 Sin embar"o4 en el "enerador de informes se tiene un ma$or control sobre el aspecto de la salida6 Se puede dejar /ue el "enerador determine autom(ticamente el aspecto de la salida o se puede dise5ar :sta para /ue ten"a el aspecto /ue desee el usuario final6 K 9n $enerador de $r/ficos es una herramienta para obtener datos de la base de datos $ visuali#arlos en un "r(fico mostrando tendencias $ relaciones entre datos6 3ormalmente se pueden dise5ar distintos tipos de "r(ficos= barras4 l-neas4 etc6 K 9n $enerador de aplicaciones es una herramienta para crear pro"ramas /ue ha"an de interface entre el usuario $ la base de datos6 1l uso de un "enerador de aplicaciones puede reducir el tiempo /ue se necesita para dise5ar un pro"rama de aplicacin6 0os "eneradores de aplicaciones constan de procedimientos /ue reali#an las funciones fundamentales /ue se utili#an en la ma$or-a de los pro"ramas6 1stos procedimientos est(n escritos en un len"uaje de pro"ramacin de alto nivel $ C@

forman una librer-a de funciones entre las /ue esco"er6 1l usuario especifica /u: debe hacer el pro"rama $ el "enerador de aplicaciones es /uien determina cmo reali#ar la tarea6 Clasificacin de los sistemas de "estin de bases de datos 1l criterio principal /ue se utili#a para clasificar los SG+% es el modelo l"ico en /ue se basan6 0os modelos l"icos empleados con ma$or frecuencia en los SG+% comerciales actuales son el relacional4 el de red $ el jer(r/uico6 &l"unos SG+% m(s modernos se basan en modelos orientados a objetos6 1l modelo relacional se basa en el concepto matem(tico denominado NrelacinN4 /ue "r(ficamente se puede representar como una tabla6 1n el modelo relacional4 los datos $ las relaciones e)istentes entre los datos se representan mediante estas relaciones matem(ticas4 cada una con un nombre /ue es 8nico $ con un conjunto de columnas6 1n el modelo relacional la base de datos es percibida por el usuario como un conjunto de tablas6 1sta percepcin es slo a nivel l"ico ;en los niveles e)terno $ conceptual de la ar/uitectura de tres niveles<4 $a /ue a nivel f-sico puede estar implementada mediante distintas estructuras de almacenamiento6 1n el modelo de red los datos se representan como colecciones de re"istros $ las relaciones entre los datos se representan mediante conjuntos4 /ue son punteros en la implementacin f-sica6 0os re"istros se or"ani#an como un "rafo= los re"istros son los nodos $ los arcos son los conjuntos6 1l SG+% de red m(s popular es el sistema I%.S6 1l modelo )er/r0#ico es un tipo de modelo de red con al"unas restricciones6 %e nuevo los datos se representan como colecciones de re"istros $ las relaciones entre los datos se representan mediante conjuntos6 Sin embar"o4 en el modelo jer(r/uico cada nodo puede tener un solo padre6 9na base de datos jer(r/uica puede representarse mediante un (rbol= los re"istros son los nodos4 tambi:n denominados se"mentos4 $ los arcos son los conjuntos6 1l SG+% jer(r/uico m(s importante es el sistema I.S6 0a ma$or-a de los SG+% comerciales actuales est(n basados en el modelo relacional4 mientras /ue los sistemas m(s anti"uos estaban basados en el modelo de red o el modelo jer(r/uico6 1stos dos 8ltimos modelos re/uieren /ue el usuario ten"a conocimiento de la estructura f-sica de la base de datos a la /ue se accede4 mientras /ue el modelo relacional proporciona una ma$or independencia de datos6 Se dice /ue el modelo relacional es declarativo ;se especifica /u: datos se han de obtener< $ los modelos de red $ jer(r/uico son nave"acionales ;se especifica cmo se deben obtener los datos<6 1l modelo orientado a o()etos define una base de datos en t:rminos de objetos4 sus propiedades $ sus operaciones6 0os objetos con la misma estructura $ comportamiento pertenecen a una clase4 $ las clases se or"ani#an en jerar/u-as o "rafos ac-clicos6 0as operaciones de cada clase se especifican en t:rminos de procedimientos predefinidos denominados m:todos6 &l"unos SG+% relacionales e)istentes en el mercado han estado e)tendiendo sus modelos para incorporar conceptos orientados a objetos6 & estos SG+% se les conoce como sistemas o()eto%relacionales 9n se"undo criterio para clasificar los SG+% es el n8mero de usuarios a los /ue da servicio el sistema6 0os sistemas mono#s#ario slo atienden a un usuario a la ve#4 $ su principal uso se da en los ordenadores personales6 0os sistemas m#lti#s#ario4 entre los /ue se encuentran la ma$or parte de los SG+%4 atienden a varios usuarios al mismo tiempo6 CE

9n tercer criterio es el n8mero de sitios en los /ue est( distribuida la base de datos6 Casi todos los SG+% son centrali;ados= sus datos se almacenan en un solo computador6 0os SG+% centrali#ados pueden atender a varios usuarios4 pero el SG+% $ la base de datos en s- residen por completo en una sola m(/uina6 1n los SG+% distri(#idos la base de datos real $ el propio softPare del SG+% pueden estar distribuidos en varios sitios conectados por una red6 0os SG+% distri(#idos homo$6neos utili#an el mismo SG+% en m8ltiples sitios6 9na tendencia reciente consiste en crear softPare para tener acceso a varias bases de datos autnomas pree)istentes almacenadas en SG+% distri(#idos hetero$6neos6 1sto da lu"ar a los SG+% federados o sistemas m#lti(ase de datos en los /ue los SG+% participantes tienen cierto "rado de autonom-a local6 .uchos SG+% distribuidos emplean una ar/uitectura cliente-servidor6 9n cuarto criterio es el coste del SG+%6 0a ma$or parte de los pa/uetes de SG+% cuestan entre 7A6AAA $ 7AA6AAA euros6 0os sistemas monousuario m(s econmicos para microcomputadores cuestan entre 7AA $ C6AAA euros6 1n el otro e)tremo4 los pa/uetes m(s completos cuestan m(s de 7AA6AAA euros6 Por 8ltimo4 los SG+% pueden ser de propsito $eneral o de propsito espec&fico6 Cuando el rendimiento es fundamental4 se puede dise5ar $ construir un SG+% de propsito especial para una aplicacin espec-fica4 $ este sistema no sirve para otras aplicaciones6 .uchos sistemas de reservas de l-neas a:reas son SG+% de propsito especial $ pertenecen a la cate"or-a de sistemas de procesamiento de transacciones en l&nea ;!02P<4 /ue deben atender un "ran n8mero de transacciones concurrentes sin imponer e)cesivos retrasos6 'unciones de los sistemas de "estin de bases de datos Codd4 el creador del modelo relacional4 ha establecido una lista con los ocho servicios /ue debe ofrecer todo SG+%6 76 9n SG+% debe proporcionar a los usuarios la capacidad de almacenar datos en la base de datos4 acceder a ellos $ actuali#arlos6 1sta es la funcin fundamental de un SG+% $ por supuesto4 el SG+% debe ocultar al usuario la estructura f-sica interna ;la or"ani#acin de los ficheros $ las estructuras de almacenamiento<6 26 9n SG+% debe proporcionar un cat(lo"o en el /ue se almacenen las descripciones de los datos $ /ue sea accesible por los usuarios6 1ste cat(lo"o es lo /ue se denomina diccionario de datos $ contiene informacin /ue describe los datos de la base de datos ;metadatos<6 3ormalmente4 un diccionario de datos almacena= o o o o o 3ombre4 tipo $ tama5o de los datos6 3ombre de las relaciones entre los datos6 estricciones de inte"ridad sobre los datos6 3ombre de los usuarios autori#ados a acceder a la base de datos6 1s/uemas e)ternos4 conceptual e interno4 $ correspondencia entre los es/uemas6

o 1stad-sticas de utili#acin4 tales como la frecuencia de las transacciones $ el n8mero de accesos reali#ados a los objetos de la base de datos6 &l"unos de los beneficios /ue reporta el diccionario de datos son los si"uientes= C?

o 0a informacin sobre los datos se puede almacenar de un modo centrali#ado6 1sto a$uda a mantener el control sobre los datos4 como un recurso /ue son6 o 1l si"nificado de los datos se puede definir4 lo /ue a$udar( a los usuarios a entender el propsito de los mismos6 o 0a comunicacin se simplifica $a /ue se almacena el si"nificado e)acto6 1l diccionario de datos tambi:n puede identificar al usuario o usuarios /ue poseen los datos o /ue los acceden6 o 0as redundancias $ las inconsistencias se pueden identificar m(s f(cilmente $a /ue los datos est(n centrali#ados6 o Se puede tener un historial de los cambios reali#ados sobre la base de datos6

o 1l impacto /ue puede producir un cambio se puede determinar antes de /ue sea implementado4 $a /ue el diccionario de datos mantiene informacin sobre cada tipo de dato4 todas sus relaciones $ todos sus usuarios6 o o o Se puede hacer respetar la se"uridad6 Se puede "aranti#ar la inte"ridad6 Se puede proporcionar informacin para auditor-as6

C6 9n SG+% debe proporcionar un mecanismo /ue "arantice /ue todas las actuali#aciones correspondientes a una determinada transaccin se realicen4 o /ue no se realice nin"una6 9na transaccin es un conjunto de acciones /ue cambian el contenido de la base de datos6 9na transaccin en el sistema inform(tico de la empresa inmobiliaria ser-a dar de alta a un empleado o eliminar un inmueble6 9na transaccin un poco m(s complicada ser-a eliminar un empleado $ reasi"nar sus inmuebles a otro empleado6 1n este caso ha$ /ue reali#ar varios cambios sobre la base de datos6 Si la transaccin falla durante su reali#acin4 por ejemplo por/ue falla el hardPare4 la base de datos /uedar( en un estado inconsistente6 &l"unos de los cambios se habr(n hecho $ otros no4 por lo tanto4 los cambios reali#ados deber(n ser deshechos para devolver la base de datos a un estado consistente6 >6 9n SG+% debe proporcionar un mecanismo /ue ase"ure /ue la base de datos se actualice correctamente cuando varios usuarios la est(n actuali#ando concurrentemente6 9no de los principales objetivos de los SG+% es el permitir /ue varios usuarios ten"an acceso concurrente a los datos /ue comparten6 1l acceso concurrente es relativamente f(cil de "estionar si todos los usuarios se dedican a leer datos4 $a /ue no pueden interferir unos con otros6 Sin embar"o4 cuando dos o m(s usuarios est(n accediendo a la base de datos $ al menos uno de ellos est( actuali#ando datos4 pueden interferir de modo /ue se produ#can inconsistencias en la base de datos6 1l SG+% se debe encar"ar de /ue estas interferencias no se produ#can en el acceso simult(neo6 D6 9n SG+% debe proporcionar un mecanismo capa# de recuperar la base de datos en caso de /ue ocurra al"8n suceso /ue la da5e6 Como se ha comentado antes4 cuando el sistema falla en medio de una transaccin4 la base de datos se debe devolver a un estado consistente6 1ste fallo puede ser a causa de un fallo en al"8n dispositivo hardPare o un error del softPare4 /ue ha"an /ue el SG+% aborte4 o puede ser a causa de /ue el usuario detecte un error durante la transaccin $ la aborte antes de /ue finalice6 1n todos estos casos4 el SG+% debe proporcionar un mecanismo capa# de recuperar la base de datos llev(ndola a un estado consistente6 CB

@6 9n SG+% debe proporcionar un mecanismo /ue "arantice /ue slo los usuarios autori#ados pueden acceder a la base de datos6 0a proteccin debe ser contra accesos no autori#ados4 tanto intencionados como accidentales6 E6 9n SG+% debe ser capa# de inte"rarse con al"8n softPare de comunicacin6 .uchos usuarios acceden a la base de datos desde terminales6 1n ocasiones estos terminales se encuentran conectados directamente a la m(/uina sobre la /ue funciona el SG+%6 1n otras ocasiones los terminales est(n en lu"ares remotos4 por lo /ue la comunicacin con la m(/uina /ue alber"a al SG+% se debe hacer a trav:s de una red6 1n cual/uiera de los dos casos4 el SG+% recibe peticiones en forma de mensajes $ responde de modo similar6 2odas estas transmisiones de mensajes las maneja el "estor de comunicaciones de datos6 &un/ue este "estor no forma parte del SG+%4 es necesario /ue el SG+% se pueda inte"rar con :l para /ue el sistema sea comercialmente viable6 ?6 9n SG+% debe proporcionar los medios necesarios para "aranti#ar /ue tanto los datos de la base de datos4 como los cambios /ue se reali#an sobre estos datos4 si"an ciertas re"las6 0a inte"ridad de la base de datos re/uiere la valide# $ consistencia de los datos almacenados6 Se puede considerar como otro modo de prote"er la base de datos4 pero adem(s de tener /ue ver con la se"uridad4 tiene otras implicaciones6 0a inte"ridad se ocupa de la calidad de los datos6 3ormalmente se e)presa mediante restricciones4 /ue son una serie de re"las /ue la base de datos no puede violar6 Por ejemplo4 se puede establecer la restriccin de /ue cada empleado no puede tener asi"nados m(s de die# inmuebles6 1n este caso ser-a deseable /ue el SG+% controlara /ue no se sobrepase este l-mite cada ve# /ue se asi"ne un inmueble a un empleado6 &dem(s4 de estos ocho servicios4 es ra#onable esperar /ue los SG+% proporcionen un par de servicios m(s= 76 9n SG+% debe permitir /ue se manten"a la independencia entre los pro"ramas $ la estructura de la base de datos6 0a independencia de datos se alcan#a mediante las vistas o subes/uemas6 0a independencia de datos f-sica es m(s f(cil de alcan#ar4 de hecho ha$ varios tipos de cambios /ue se pueden reali#ar sobre la estructura f-sica de la base de datos sin afectar a las vistas6 Sin embar"o4 lo"rar una completa independencia de datos l"ica es m(s dif-cil6 &5adir una nueva entidad4 un atributo o una relacin puede ser sencillo4 pero no es tan sencillo eliminarlos6 26 9n SG+% debe proporcionar una serie de herramientas /ue permitan administrar la base de datos de modo efectivo6 &l"unas herramientas trabajan a nivel e)terno4 por lo /ue habr(n sido producidas por el administrador de la base de datos6 0as herramientas /ue trabajan a nivel interno deben ser proporcionadas por el distribuidor del SG+%6 &l"unas de ellas son= o o Herramientas para importar $ e)portar datos6 Herramientas para monitori#ar el uso $ el funcionamiento de la base de datos6

o Pro"ramas de an(lisis estad-stico para e)aminar las prestaciones o las estad-sticas de utili#acin6 o Herramientas para reor"ani#acin de -ndices6

o Herramientas para aprovechar el espacio dejado en el almacenamiento f-sico por los re"istros borrados $ /ue consoliden el espacio liberado para reutili#arlo cuando sea necesario6 Componentes de un sistema de "estin de bases de datos >A

0os SG+% son pa/uetes de softPare mu$ complejos $ sofisticados /ue deben proporcionar los servicios comentados en la seccin anterior6 3o se puede "enerali#ar sobre los elementos /ue componen un SG+% $a /ue var-an mucho unos de otros6 Sin embar"o4 es mu$ 8til conocer sus componentes $ cmo se relacionan cuando se trata de comprender lo /ue es un sistema de bases de datos6 9n SG+% tiene varios mdulos4 cada uno de los cuales reali#a una funcin espec-fica6 1l sistema operativo proporciona servicios b(sicos al SG+%4 /ue es construido sobre :l6 K 1l procesador de cons#ltas es el componente principal de un SG+%6 2ransforma las consultas en un conjunto de instrucciones de bajo nivel /ue se diri"en al "estor de la base de datos6 K 1l $estor de la (ase de datos es el interface con los pro"ramas de aplicacin $ las consultas de los usuarios6 1l "estor de la base de datos acepta consultas $ e)amina los es/uemas e)terno $ conceptual para determinar /u: re"istros se re/uieren para satisfacer la peticin6 1ntonces el "estor de la base de datos reali#a una llamada al "estor de ficheros para ejecutar la peticin6 K 1l $estor de ficheros maneja los ficheros en disco en donde se almacena la base de datos6 1ste "estor establece $ mantiene la lista de estructuras e -ndices definidos en el es/uema interno6 Si se utili#an ficheros dispersos4 llama a la funcin de dispersin para "enerar la direccin de los re"istros6 Pero el "estor de ficheros no reali#a directamente la entrada $ salida de datos6 0o /ue hace es pasar la peticin a los m:todos de acceso del sistema operativo /ue se encar"an de leer o escribir los datos en el buffer del sistema6 K 1l preprocesador del LM" convierte las sentencias del 0.% embebidas en los pro"ramas de aplicacin4 en llamadas a funciones est(ndar escritas en el len"uaje anfitrin6 1l preprocesador del 0.% debe trabajar con el procesador de consultas para "enerar el cdi"o apropiado6 K 1l compilador del L"" convierte las sentencias del 0%% en un conjunto de tablas /ue contienen metadatos6 1stas tablas se almacenan en el diccionario de datos6 K 1l $estor del diccionario controla los accesos al diccionario de datos $ se encar"a de mantenerlo6 0a ma$or-a de los componentes del SG+% acceden al diccionario de datos6 0os principales componentes del "estor de la base de datos son los si"uientes= K Control de a#tori;acin6 1ste mdulo comprueba /ue el usuario tiene los permisos necesarios para llevar a cabo la operacin /ue solicita6 K 1rocesador de comandos! 9na ve# /ue el sistema ha comprobado los permisos del usuario4 se pasa el control al procesador de comandos6 K Control de la inte$ridad! Cuando una operacin cambia los datos de la base de datos4 este mdulo debe comprobar /ue la operacin a reali#ar satisface todas las restricciones de inte"ridad necesarias6 K Optimi;ador de cons#ltas! 1ste mdulo determina la estrate"ia ptima para la ejecucin de las consultas6 K +estor de transacciones! 1ste mdulo reali#a el procesamiento de las transacciones6 >7

K 1lanificador *sched#ler,! 1ste mdulo es el responsable de ase"urar /ue las operaciones /ue se reali#an concurrentemente sobre la base de datos tienen lu"ar sin conflictos6 K +estor de rec#peracin! 1ste mdulo "aranti#a /ue la base de datos permanece en un estado consistente en caso de /ue se produ#ca al"8n fallo6 K +estor de (#ffers! 1ste mdulo es el responsable de transferir los datos entre memoria principal $ los dispositivos de almacenamiento secundario6 & este mdulo tambi:n se le denomina $estor de datos6 esumen 9n modelo de datos es un conjunto de conceptos /ue se utili#an para describir el es/uema de una base de datos4 la operaciones para manejar los datos $ el conjunto de re"las de inte"ridad6 Ha$ tres cate"or-as principales de modelos de datos= modelos conceptuales4 modelos l"icos $ modelos f-sicos6 1s importante distin"uir entre el es/uema ;descripcin de una base de datos< $ la base de datos en smisma6 1l es/uema no cambia a menudo4 en tanto /ue la base de datos cambia cada ve# /ue se insertan4 eliminan o modifican datos6 0a ar/uitectura de los sistemas de bases de datos establecida por &3SI-SP& C utili#a tres niveles de abstraccin= e)terno4 conceptual e interno6 1n el nivel e)terno4 el es/uema consta de las distintas visiones /ue tienen los usuarios de la base de datos6 1n el nivel conceptual4 el es/uema es la visin com8n de la base de datos6 1specifica el contenido de informacin de la base de datos independientemente de las consideraciones de almacenamiento6 1n el nivel interno4 el es/uema es la visin /ue el ordenador tiene de la base de datos6 1specifica cmo se representan los datos4 en /u: orden se almacenan los re"istros4 /u: -ndices $ punteros se han creado $ /u: es/uema de dispersin se ha utili#ado4 si es el caso6 2odo SG+% /ue separe los tres niveles deber( tener correspondencias entre los es/uemas para transformar las peticiones de los usuarios $ los resultados4 de un nivel al si"uiente6 0a ma$or-a de los SG+% no separan los tres niveles por completo6 0a independencia de datos hace /ue cada nivel de la ar/uitectura sea inmune a los cambios en los niveles de debajo6 0a independencia de datos l"ica se refiere a la inmunidad de los es/uemas e)ternos frente a los cambios en el es/uema conceptual6 0a independencia de datos f-sica se refiere a la inmunidad del es/uema conceptual frente a los cambios en el es/uema interno6 9n len"uaje de base de datos consta de dos partes= un len"uaje de definicin de datos ;0%%< $ un len"uaje de manejo de datos ;0.%<6 1l 0%% se utili#a para especificar el es/uema de la base de datos4 las vistas de los usuarios $ las estructuras de almacenamiento4 mientras /ue el 0.% se utili#a para leer $ actuali#ar los datos de la base de datos6 0os SG+% se pueden clasificar de acuerdo con el modelo l"ico /ue soportan4 el n8mero de usuarios4 el n8mero de puestos4 el coste $ la "eneralidad6 0a clasificacin m(s importante de los SG+% se basa en el modelo l"ico4 siendo los principales modelos /ue se utili#an en el mercado el relacional4 el de red4 el jer(r/uico $ el orientado a objetos6 0os SG+% son sistemas inform(ticos mu$ complejos formados por una serie de componentes4 cada uno de ellos con una funcin espec-fica6 &dem(s de estos mdulos4 los SG+% cuentan con una serie de herramientas /ue a$udan al administrador de la base de datos a manejar el sistema6 >2

4. ) l 1odelo relacional
V 1l modelo relacional

1n este cap-tulo se presenta el modelo relacional4 /ue es el modelo l"ico en el /ue se basan la ma$or-a de los SG+% comerciales en uso ho$ en d-a6 1n primer lu"ar4 se trata la descripcin de los principios b(sicos del modelo relacional= la estructura de datos relacional $ las re"las de inte"ridad6 & continuacin4 se presenta un tratamiento detallado del (l"ebra relacional4 /ue es un conjunto de operaciones para manipular la estructura de datos relacional $ especificar consultas de datos6 1l (l"ebra relacional es un len"uaje procedural4 mientras /ue el c(lculo relacional4 /ue tambi:n se estudia en este cap-tulo4 es un len"uaje e/uivalente no procedural6

Introduccin 1s una buena justificacin para estudiar la teor-a /ue ha$ tras el modelo relacional4 la /ue da Hern(nde# ;7BBE<= N.uchas disciplinas ;$ sus metodolo"-as de dise5o asociadas< tienen al"8n tipo de base terica6 0os in"enieros industriales dise5an estructuras utili#ando teor-as de la f-sica6 0os compositores crean sinfon-as utili#ando conceptos de teor-a de la m8sica6 0a industria del automvil utili#a teor-as de la aerodin(mica para dise5ar automviles con menor consumo6 0a industria aeron(utica utili#a las mismas teor-as para dise5ar alas de aviones /ue redu#can la resistencia al viento6 1stos ejemplos demuestran /ue la teor-a es mu$ importante6 0a ventaja principal de la teor-a es /ue hace /ue las cosas sean predecibles= nos permite predecir /u: ocurrir( si reali#amos una determinada accin6 Por ejemplo4 sabemos /ue si soltamos una piedra4 caer( al suelo6 Si somos r(pidos4 podemos apartar nuestros pies del camino de la teor-a de la "ravedad de 3ePton6 0o importante es /ue siempre funciona6 Si ponemos una piedra plana encima de otra piedra plana4 podemos predecir /ue se /uedar(n tal $ como las hemos puesto6 1sta teor-a permite dise5ar pir(mides4 catedrales $ casas de ladrillos6 Consideremos ahora el ejemplo de una base de datos relacional6 Sabemos /ue si un par de tablas est(n relacionadas4 podemos e)traer datos de las dos a la ve#4 simplemente por el modo en /ue funciona la teor-a de las bases de datos relacionales6 0os datos /ue se sa/uen de las dos tablas se basar(n en los valores coincidentes del campo /ue ambas tienen en com8n6 9na ve# m(s4 nuestras acciones tienen un resultado predecible6 1l modelo relacional se basa en dos ramas de las matem(ticas= la teor-a de conjuntos $ la l"ica de predicados de primer orden6 1l hecho de /ue el modelo relacional est: basado en la teor-a de las matem(ticas es lo /ue lo hace tan se"uro $ robusto6 &l mismo tiempo4 estas ramas de las matem(ticas proporcionan los elementos b(sicos necesarios para crear una base de datos relacional con una buena estructura4 $ proporcionan las l-neas /ue se utili#an para formular buenas metodolo"-as de dise5o6 Ha$ /uien ofrece una cierta resistencia a estudiar complicados conceptos matem(ticos para tan slo llevar a cabo una tarea bastante concreta6 1s habitual escuchar /uejas sobre /ue las teor-as >C

matem(ticas en las /ue se basa el modelo relacional $ sus metodolo"-as de dise5o4 no tienen relevancia en el mundo real o /ue no son pr(cticas6 3o es cierto= las matem(ticas son b(sicas en el modelo relacional6 Pero4 por fortuna4 no ha$ /ue aprender teor-a de conjuntos o l"ica de predicados de primer orden para utili#ar el modelo relacional6 Ser-a como decir /ue ha$ /ue saber todos los detalles de la aerodin(mica para poder conducir un automvil6 0as teor-as de la aerodin(mica a$udan a entender cmo un automvil puede ahorrar combustible4 pero desde lue"o no son necesarias para manejarlo6 0a teor-a matem(tica proporciona la base para el modelo relacional $4 por lo tanto4 hace /ue el modelo sea predecible4 fiable $ se"uro6 0a teor-a describe los elementos b(sicos /ue se utili#an para crear una base de datos relacional $ proporciona las l-neas a se"uir para construirla6 1l or"ani#ar estos elementos para conse"uir el resultado deseado es lo /ue se denomina dise5o6N 1l modelo relacional 1n 7BEA4 el modo en /ue se ve-an las bases de datos cambi por completo cuando 16 '6 Codd introdujo el modelo relacional6 1n a/uellos momentos4 el enfo/ue e)istente para la estructura de las bases de datos utili#aba punteros f-sicos ;direcciones de disco< para relacionar re"istros de distintos ficheros6 Si4 por ejemplo4 se /uer-a relacionar un re"istro con un re"istro4 se deb-a a5adir al re"istro un campo conteniendo la direccin en disco del re"istro6 1ste campo a5adido4 un puntero f-sico4 siempre se5alar-a desde el re"istro al re"istro6 Codd demostr /ue estas bases de datos limitaban en "ran medida los tipos de operaciones /ue los usuarios pod-an reali#ar sobre los datos6 &dem(s4 estas bases de datos eran mu$ vulnerables a cambios en el entorno f-sico6 Si se a5ad-an los controladores de un nuevo disco al sistema $ los datos se mov-an de una locali#acin f-sica a otra4 se re/uer-a una conversin de los ficheros de datos6 1stos sistemas se basaban en el modelo de red $ el modelo jer(r/uico4 los dos modelos l"icos /ue constitu$eron la primera "eneracin de los SG+%6 1l modelo relacional representa la se"unda "eneracin de los SG+%6 1n :l4 todos los datos est(n estructurados a nivel l"ico como tablas formadas por filas $ columnas4 aun/ue a nivel f-sico pueden tener una estructura completamente distinta6 9n punto fuerte del modelo relacional es la sencille# de su estructura l"ica6 Pero detr(s de esa simple estructura ha$ un fundamento terico importante del /ue carecen los SG+% de la primera "eneracin4 lo /ue constitu$e otro punto a su favor6 %ada la popularidad del modelo relacional4 muchos sistemas de la primera "eneracin se han modificado para proporcionar una interfa# de usuario relacional4 con independencia del modelo l"ico /ue soportan ;de red o jer(r/uico<6 Por ejemplo4 el sistema de red I%.S ha evolucionado a I%.SJ e I%.SJSG04 ofreciendo una visin relacional de los datos6 1n los 8ltimos a5os4 se han propuesto al"unas e)tensiones al modelo relacional para capturar mejor el si"nificado de los datos4 para disponer de los conceptos de la orientacin a objetos $ para disponer de capacidad deductiva6 1l modelo relacional4 como todo modelo de datos4 tiene /ue ver con tres aspectos de los datos= K K K 1structura de datos6 Inte"ridad de datos6 .anejo de datos6 1structura de datos relacional >>

1n este apartado se presenta la estructura de datos del modelo relacional= la relacin elaciones

De-iniciones in-or1ales 1l modelo relacional se basa en el concepto matem(tico de relacin4 /ue "r(ficamente se representa mediante una tabla6 Codd4 /ue era un e)perto matem(tico4 utili# una terminolo"-a perteneciente a las matem(ticas4 en concreto de la teor-a de conjuntos $ de la l"ica de predicados6 Una relacin es una tabla con columnas y filas ! 9n SG+% slo necesita /ue el usuario pueda percibir la base de datos como un conjunto de tablas6 1sta percepcin slo se aplica a la estructura l"ica de la base de datos ;en el nivel e)terno $ conceptual de la ar/uitectura de tres niveles &3SI-SP& C<6 3o se aplica a la estructura f-sica de la base de datos4 /ue se puede implementar con distintas estructuras de almacenamiento6 Un atributo es el nombre de una columna de una relacin! 1n el modelo relacional4 las relaciones se utili#an para almacenar informacin sobre los objetos /ue se representan en la base de datos6 Una relacin se representa grficamente como una tabla bidimensional en la que las filas corresponden a registros individuales y las columnas corresponden a los campos o atributos de esos registros6 0os atributos pueden aparecer en la relacin en cual/uier orden6 Por ejemplo4 la informacin de las oficinas de la empresa inmobiliaria se representa mediante la relacin !'ICI3&4 /ue tiene columnas para los atributos !num ;n8mero de oficina<4 Calle4 &rea4 Poblacin4 2el:fono $ 'a)6 0a informacin sobre la plantilla se representa mediante la relacin P0&32I00&4 /ue tiene columnas para los atributos 1num ;n8mero de empleado<4 3ombre4 &pellido4 %ireccin4 2el:fono4 Puesto4 'echaZnac4 Salario4 %3I4 !num ;n8mero de la oficina a la /ue pertenece el empleado<6 & continuacin se muestra una instancia de la relacin !'ICI3& $ una instancia de la relacin P0&32I00&6 Como se puede observar4 cada columna contiene valores de un solo atributo6 Por ejemplo4 la columna !num slo contiene n8meros de oficinas /ue e)isten6 !'ICI3& !num Calle !D !E !C !> !2 1nmedio4 ? &rea Poblacin 2el:fono 'a)

Centro Castelln B@> 2A7 2>A B@> 2A7 C>A

.o$ano4 sJn Centro Castelln B@> 27D E@A B@> 27D @EA San .i"uel4 7 Villarreal B@> D2A 2DA B@> D2A 2DD

2rafal"ar4 2C Grao Castelln B@> 2?> >>A B@> 2?> >2A Cedre4 2@ Villarreal B@> D2D ?7A B@> 2D2 ?77

P&"#!I&&" >D

1num 3ombre &pellido %ireccin 1027 &melia Pastor .a"allanes4 7D Castelln 1GCE Pedro Cubedo +a$arri4 77 Villarreal 1G7> 0uis Collado +orriol4 CD Villarreal 1&B ita enau Casalduch4 C2 Castelln 1GD Hulio Prats .elilla4 2C Villarreal 10>7 Carlos +ae#a Herrero4 D7 Castelln

2el:fono B@> 2?> D@A

Puesto %irector

'echaZnac Salario %3I

!num

72J7AJ@2 CAAAA CB>C22721 !D

B@> DCD @BA

Supervisor 2>JCJDE

7?AAA C?E@@@2CR !C

B@> D22 2CA

&dminist6 BJDJEA

72AAA 2>CB722C0 !C

B@> 2DE DDA

Supervisor 7BJDJ@A

7?AAA CB2CC7BA' !E

B@> D2> DBA

%irector

7BJ72JDA 2>AAA 2D@>>CABR !C

B@> 2>E 2DA

Supervisor 2BJ2J@E

7?AAA CBDD27CC2 !D

Un dominio es el conjunto de valores legales de uno o varios atributos ! 0os dominios constitu$en una poderosa caracter-stica del modelo relacional6 Cada atributo de una base de datos relacional se define sobre un dominio, pudiendo haber varios atributos definidos sobre el mismo dominio 6 0a si"uiente tabla muestra los dominios de los atributos de la relacin !'ICI3&6 3tese /ue en esta relacin ha$ dos atributos /ue est(n definidos sobre el mismo dominio4 2el:fono $ 'a)6 Atri(#to Nom(re del "ominio "escripcin !num 39.Z!'ICI3& Posibles valores de n8mero de oficina "efinicin C caracteresL ran"o !7-!BB Calle 3!.ZC&001 3ombres de calles de 1spa5a 2D caracteres >@

&rea

3!.Z& 1&

3ombres de (reas de las poblaciones de 1spa5a 2A caracteres 7D caracteres B caracteres B caracteres

Poblacin 3!.ZP!+0&CI!3 3ombres de las poblaciones de 1spa5a 2el:fono 39.Z210Z'&R 'a) 39.Z210Z'&R 38meros de tel:fono de 1spa5a 38meros de tel:fono de 1spa5a

1l concepto de dominio es importante por/ue permite /ue el usuario defina4 en un lu"ar com8n4 el si"nificado $ la fuente de los valores /ue los atributos pueden tomar6 1sto hace /ue ha$a m(s informacin disponible para el sistema cuando :ste va a ejecutar una operacin relacional4 de modo /ue las operaciones /ue son sem(nticamente incorrectas4 se pueden evitar6 Por ejemplo4 no tiene sentido comparar el nombre de una calle con un n8mero de tel:fono4 aun/ue los dos atributos sean cadenas de caracteres6 Sin embar"o4 el importe mensual del al/uiler de un inmueble no estar( definido sobre el mismo dominio /ue el n8mero de meses /ue dura el al/uiler4 pero s- tiene sentido multiplicar los valores de ambos dominios para averi"uar el importe total al /ue asciende el al/uiler6 0os SG+% relacionales no ofrecen un soporte completo de los dominios $a /ue su implementacin es e)tremadamente compleja6 Una tupla es una fila de una relacin! 0os elementos de una relacin son las tuplas o filas de la tabla6 1n la relacin !'ICI3&4 cada tupla tiene seis valores4 uno para cada atributo6 0as tuplas de una relacin no si"uen nin"8n orden6 El grado de una relacin es el nmero de atributos que contiene ! 0a relacin !'ICI3& es de "rado seis por/ue tiene seis atributos6 1sto /uiere decir /ue cada fila de la tabla es una tupla con seis valores6 1l "rado de una relacin no cambia con frecuencia6 La cardinalidad de #na relacin es el n8mero de t#plas 0#e contiene! Fa /ue en las relaciones se van insertando $ borrando tuplas a menudo4 la cardinalidad de las mismas var-a constantemente6 Una (ase de datos relacional es #n con)#nto de relaciones normali;adas! De-iniciones -or1ales 9na relacin definida sobre un conjunto de dominios consta de= K Ca(ecera: conjunto fijo de pares atri(#to:dominio

donde cada atributo corresponde a un 8nico dominio $ todos los son distintos4 es decir4 no ha$ dos atributos /ue se llamen i"ual6 1l "rado de la relacin es 6 K C#erpo: conjunto variable de t#plas6 Cada tupla es un conjunto de pares atri(#to:valor=

con 4 donde es la cardinalidad de la relacin 6 1n cada par se tiene /ue 6 0a relacin !'ICI3& tiene la si"uiente cabecera= >E

\;!num=39.Z!'ICI3&<4 ;Calle=3!.ZC&001<4 ;&rea=3!.Z& 1&<4 ;Poblacin=3!.ZP!+0&CI!3<4 ;2el:fono=39.Z210Z'&R<4 ;'a)=39.Z210Z'&R<]6 3iendo la siguiente una de sus tuplas: \;!num=!D<4 ;Calle=1nmedio4?<4 ;&rea=Centro<4 ;Poblacin=Castelln<4 ;2el:fono=B@> 2A7 2>A<4 ;'a)=B@> 2A7 C>A<]6 ste con*unto de pares no est5 ordenado6 por lo 0ue esta tupla / la siguiente6 son la 1is1a: \;Calle=1nmedio4?<4 ;'a)=B@> 2A7 C>A<4 ;Poblacin=Castelln<4 ;!num=!D<4 ;2el:fono=B@> 2A7 2>A<4 ;&rea=Centro<] Gr(ficamente se suelen representar las relaciones mediante tablas6 0os nombres de las columnas corresponden a los nombres de los atributos $ las filas son cada una de las tuplas de la relacin6 0os valores /ue aparecen en cada una de las columnas pertenecen al conjunto de valores del dominio sobre el /ue est( definido el atributo correspondiente6 Propiedades de las relaciones 0as relaciones tienen las si"uientes caracter-sticas= K Cada relacin tiene un nombre $ :ste es distinto del nombre de todas las dem(s6

K 0os valores de los atributos son atmicos= en cada tupla4 cada atributo toma un solo valor6 Se dice /ue las relaciones est(n normali;adas6 K K K K 3o ha$ dos atributos /ue se llamen i"ual6 1l orden de los atributos no importa= los atributos no est(n ordenados6 Cada tupla es distinta de las dem(s= no ha$ tuplas duplicadas6 1l orden de las tuplas no importa= las tuplas no est(n ordenadas6 2ipos de relaciones 1n un SG+% relacional pueden e)istir varios tipos de relaciones4 aun/ue no todos manejan todos los tipos6 K Relaciones (ase! Son relaciones reales /ue tienen nombre $ forman parte directa de la base de datos almacenada ;son autnomas<6

>?

K 2istas! 2ambi:n denominadas relaciones virtuales4 son relaciones con nombre $ derivadas= se representan mediante su definicin en t:rminos de otras relaciones con nombre4 no poseen datos almacenados propios6 K Instant/neas! Son relaciones con nombre $ derivadas6 Pero a diferencia de las vistas4 son reales4 no virtuales= est(n representadas no slo por su definicin en t:rminos de otras relaciones con nombre4 sino tambi:n por sus propios datos almacenados6 Son relaciones de slo de lectura $ se refrescan peridicamente6 K Res#ltados de cons#ltas! Son las relaciones resultantes de al"una consulta especificada6 Pueden o no tener nombre $ no persisten en la base de datos6 K Res#ltados intermedios! Son las relaciones /ue contienen los resultados de las subconsultas6 3ormalmente no tienen nombre $ tampoco persisten en la base de datos6 K Res#ltados temporales! Son relaciones con nombre4 similares a las relaciones base o a las instant(neas4 pero la diferencia es /ue se destru$en autom(ticamente en al"8n momento apropiado6 Claves Fa /ue en una relacin no ha$ tuplas repetidas4 :stas se pueden distin"uir unas de otras4 es decir4 se pueden identificar de modo 8nico6 0a forma de identificarlas es mediante los valores de sus atributos6 9na s#perclave es un atributo o un conjunto de atributos /ue identifican de modo 8nico las tuplas de una relacin6 9na clave candidata es una superclave en la /ue nin"uno de sus subconjuntos es una superclave de la relacin6 1l atributo o conjunto de atributos de la relacin es una clave candidata para si $ slo si satisface las si"uientes propiedades= K Unicidad: nunca ha$ dos tuplas en la relacin con el mismo valor de 6

K Irred#ci(ilidad *minimalidad,: nin"8n subconjunto de tiene la propiedad de unicidad4 es decir4 no se pueden eliminar componentes de sin destruir la unicidad6 Cuando una clave candidata est( formada por m(s de un atributo4 se dice /ue es una clave comp#esta6 9na relacin puede tener varias claves candidatas6 Por ejemplo4 en la relacin !'ICI3&4 el atributo Poblacin no es una clave candidata $a /ue puede haber varias oficinas en una misma poblacin6 Sin embar"o4 $a /ue la empresa asi"na un cdi"o 8nico a cada oficina4 el atributo !num s- es una clave candidata de la relacin !'ICI3&6 2ambi:n son claves candidatas de esta relacin los atributos 2el:fono $ 'a)6 1n la base de datos de la inmobiliaria ha$ una relacin denominada VISI2& /ue contiene informacin sobre las visitas /ue los clientes han reali#ado a los inmuebles6 1sta relacin contiene el n8mero del cliente Gnum4 el n8mero del inmueble Inum4 la fecha de la visita 'echa $ un comentario opcional6 Para un determinado n8mero de cliente Gnum4 se pueden encontrar varias visitas a varios inmuebles6 %el mismo modo4 dado un n8mero de inmueble Inum4 puede /ue ha$a varios clientes /ue lo ha$an visitado6 Por lo tanto4 el atributo Gnum no es una clave candidata para la relacin VISI2&4 como tampoco lo es el atributo Inum6 Sin embar"o4 la combinacin de los dos atributos s- identifica a una sola tupla4 por lo /ue los dos juntos son una clave candidata de VISI2&6 Si se desea considerar la posibilidad de /ue un mismo cliente pueda visitar un mismo inmueble en >B

varias ocasiones4 habr-a /ue incluir el atributo 'echa para identificar las tuplas de modo 8nico ;aun/ue :ste no es el caso de la empresa /ue nos ocupa<6 Para identificar las claves candidatas de una relacin no ha$ /ue fijarse en un estado o instancia de la base de datos6 1l hecho de /ue en un momento dado no ha$a duplicados para un atributo o conjunto de atributos4 no "aranti#a /ue los duplicados no sean posibles6 Sin embar"o4 la presencia de duplicados en un estado de la base de datos s- es 8til para demostrar /ue cierta combinacin de atributos no es una clave candidata6 1l 8nico modo de identificar las claves candidatas es conociendo el si"nificado real de los atributos4 $a /ue esto permite saber si es posible /ue apare#can duplicados6 Slo usando esta informacin sem(ntica se puede saber con certe#a si un conjunto de atributos forman una clave candidata6 Por ejemplo4 viendo la instancia anterior de la relacin P0&32I00& se podr-a pensar /ue el atributo &pellido es una clave candidata6 Pero $a /ue este atributo es el apellido de un empleado $ es posible /ue ha$a dos empleados con el mismo apellido4 el atributo no es una clave candidata6 0a clave primaria de un relacin es a/uella clave candidata /ue se esco"e para identificar sus tuplas de modo 8nico6 Fa /ue una relacin no tiene tuplas duplicadas4 siempre ha$ una clave candidata $4 por lo tanto4 la relacin siempre tiene clave primaria6 1n el peor caso4 la clave primaria estar( formada por todos los atributos de la relacin4 pero normalmente habr( un pe/ue5o subconjunto de los atributos /ue ha"a esta funcin6 0as claves candidatas /ue no son esco"idas como clave primaria son denominadas claves alternativas6 Por ejemplo4 la clave primaria de la relacin !'ICI3& es el atributo !num4 siendo 2el:fono $ 'a) dos claves alternativas6 1n la relacin VISI2& slo ha$ una clave candidata formada por los atributos Gnum e Inum4 por lo /ue esta clave candidata es la clave primaria6 9na clave a)ena es un atributo o un conjunto de atributos de una relacin cu$os valores coinciden con los valores de la clave primaria de al"una otra relacin ;puede ser la misma<6 0as claves ajenas representan relaciones entre datos6 1l atributo !num de P0&32I00& relaciona a cada empleado con la oficina a la /ue pertenece6 1ste atributo es una clave ajena cu$os valores hacen referencia al atributo !num4 clave primaria de !'ICI3&6 Se dice /ue un valor de clave ajena representa una referencia a la tupla /ue contiene el mismo valor en su clave primaria ; t#pla referenciada<6 1s/uema de una base de datos relacional 9na base de datos relacional es un conjunto de relaciones normali#adas6 Para representar el es/uema de una base de datos relacional se debe dar el nombre de sus relaciones4 los atributos de :stas4 los dominios sobre los /ue se definen estos atributos4 las claves primarias $ las claves ajenas6 1l es/uema de la base de datos de la empresa inmobiliaria es el si"uiente= !'ICI3& P0&32I00& ;!num4 Calle4 &rea4 Poblacin4 2el:fono4 'a)< ;1num4 3ombre4 &pellido4 %ireccin4 2el:fono4 Puesto4 'echaZnac4 Salario4 %3I4 !num< I3.91+01 ;Inum4 Calle4 &rea4 Poblacin4 2ipo4 Hab4 &l/uiler4 Pnum4 1num4 !num< DA

I3G9I0I3!

;Gnum4 3ombre4 &pellido4 %ireccin4 2el:fono4 2ipoZpref4 &l/uilerZma)<

P !PI12& I! ;Pnum4 3ombre4 &pellido4 %ireccin4 2el:fono< VISI2& ;Gnum4 Inum4 'echa4 Comentario<

1n el es/uema4 los nombres de las relaciones aparecen se"uidos de los nombres de los atributos encerrados entre par:ntesis6 0as claves primarias son los atributos subra$ados6 0as claves ajenas se representan mediante los si"uientes dia$ramas referenciales! P0&32I00& !'ICI3& I3.91+01 I3.91+01 I3.91+01 VISI2& VISI2& = Oficina a la 0#e pertenece el empleado!

P !PI12& I! = 1ropietario del inm#e(le! P0&32I00& !'ICI3& I3G9I0I3! I3.91+01 = Empleado encar$ado del inm#e(le! = Oficina a la 0#e pertenece el inm#e(le! = In0#ilino 0#e ha visitado el inm#e(le! = Inm#e(le 0#e ha sido visitado!

" continuacin se 1uestra un estado 7instancia8 de la base de datos cu/o es0ue1a se acaba de de-inir. !'ICI3& !num Calle !D !E !C !> !2 1nmedio4 ? &rea Poblacin 2el:fono 'a)

Centro Castelln B@> 2A7 2>A B@> 2A7 C>A

.o$ano4 sJn Centro Castelln B@> 27D E@A B@> 27D @EA San .i"uel4 7 Villarreal B@> D2A 2DA B@> D2A 2DD

2rafal"ar4 2C Grao Castelln B@> 2?> >>A B@> 2?> >2A Cedre4 2@ Villarreal B@> D2D ?7A B@> 2D2 ?77

P&"#!I&&" 1num 3ombre &pellido %ireccin 2el:fono Puesto 'echaZnac Salario %3I !num

D7

1027 &melia Pastor

.a"allanes4 7D Castelln

B@> 2?> D@A

%irector

72J7AJ@2 CAAAA CB>C22721 !D

1GCE Pedro

Cubedo +a$arri4 77 Villarreal

B@> DCD @BA

Supervisor 2>JCJDE

7?AAA C?E@@@2CR !C

1G7> 0uis

Collado +orriol4 CD Villarreal

B@> D22 2CA

&dminist6 BJDJEA

72AAA 2>CB722C0 !C

1&B

ita

enau

Casalduch4 C2 Castelln

B@> 2DE DDA

Supervisor 7BJDJ@A

7?AAA CB2CC7BA' !E

1GD Hulio

Prats

.elilla4 2C Villarreal

B@> D2> DBA

%irector

7BJ72JDA 2>AAA 2D@>>CABR !C

10>7 Carlos +ae#a

Herrero4 D7 Castelln

B@> 2>E 2DA

Supervisor 2BJ2J@E

7?AAA CBDD27CC2 !D

I#'% (& Inum Calle I&7> 1nmedio4 72? I0B> iu 1bre4 2> &rea Centro Poblacin 2ipo Hab &l/uiler Pnum Castelln Casa @ @AA CDA CAA C2D DDA >AA P>@ P?E P>A PBC P?E PBC

onda Sur Castelln Piso > Grao Castelln Piso C Se"orbe Casa C Vinaro# Piso D

IG> Sorell4 D IGC@ &licante47 IG27 San 'rancisco4 7A IG7@ Capuchinos4 7B PROPI !"RIO

afalafena Castelln Piso >

D2

Pnum 3ombre &pellido %ireccin P>@ P?E P>A PBC &mparo 'elip .anuel !biol &sensi 2>4 Castelln &v6 0ibertad 7D4 Vinaro#

2el:fono B@> 2CA @?A B@> >DA E@A

&lberto 1strada &v6 del Puerto D24 Castelln B@> 2AA E>A Folanda obles Pur-sima >4 Se"orbe B@> E7A >CA

I#$%I&I#O Gnum 3ombre &pellido %ireccin GE@ GD@ GE> G@2 Huan &na 1lena &licia 'elip +arcel >E4 Castelln 2el:fono 2ipo &l/uiler

B@> 2?2 D>A Piso CED

Gran"el San afael >D4 &lma#ora B@> DD7 77A Piso CAA &baso .ori 3avarra E@4 Castelln &llo#a >D4 Castelln B@> 2AD D@A Casa EAA B@> 22B D?A Piso DDA

)I3I!" Gnum Inum 'echa GD@ GE@ GD@ G@2 GD@ Comentario

I&7> 2>J77JBB mu$ pe/ue5o IG> 2AJ7AJBB mu$ lejos IG> 2@J77JBB I&7> 7>J77JBB no tiene saln IGC@ 2?J7AJBB

e"las de inte"ridad 9na ve# definida la estructura de datos del modelo relacional4 pasamos a estudiar las re"las de inte"ridad /ue los datos almacenados en dicha estructura deben cumplir para "aranti#ar /ue son correctos6 &l definir cada atributo sobre un dominio se impone una restriccin sobre el conjunto de valores permitidos para cada atributo6 & este tipo de restricciones se les denomina restricciones de dominios6 Ha$ adem(s dos re"las de inte"ridad mu$ importantes /ue son restricciones /ue se deben DC

cumplir en todas las bases de datos relacionales $ en todos sus estados o instancias ;las re"las se deben cumplir todo el tiempo<6 1stas re"las son la re$la de inte$ridad de entidades $ la re$la de inte$ridad referencial6 &ntes de definirlas4 es preciso conocer el concepto de n#lo6 3ulos Cuando en una tupla un atributo es desconocido4 se dice /ue es n#lo6 9n nulo no representa el valor cero ni la cadena vac-a4 :stos son valores /ue tienen si"nificado6 1l nulo implica ausencia de informacin4 bien por/ue al insertar la tupla se desconoc-a el valor del atributo4 o bien por/ue para dicha tupla el atributo no tiene sentido6 Fa /ue los nulos no son valores4 deben tratarse de modo diferente4 lo /ue causa problemas de implementacin6 %e hecho4 no todos los SG+% relacionales soportan los nulos6 e"la de inte"ridad de entidades 0a primera re"la de inte"ridad se aplica a las claves primarias de las relaciones base= nin$#no de los atri(#tos 0#e componen la clave primaria p#ede ser n#lo! Por definicin4 una clave primaria es un identificador irreducible /ue se utili#a para identificar de modo 8nico las tuplas6 Gue es irreducible si"nifica /ue nin"8n subconjunto de la clave primaria sirve para identificar las tuplas de modo 8nico6 Si se permite /ue parte de la clave primaria sea nula4 se est( diciendo /ue no todos sus atributos son necesarios para distin"uir las tuplas4 con lo /ue se contradice la irreducibilidad6 3tese /ue esta re"la slo se aplica a las relaciones base $ a las claves primarias4 no a las claves alternativas6 e"la de inte"ridad referencial 0a se"unda re"la de inte"ridad se aplica a las claves ajenas= si en #na relacin ha al$#na clave a)ena< s#s valores de(en coincidir con valores de la clave primaria a la 0#e hace referencia< o (ien< de(en ser completamente n#los6 0a re"la de inte"ridad referencial se enmarca en t:rminos de estados de la base de datos= indica lo /ue es un estado ile"al4 pero no dice cmo puede evitarse6 0a cuestin es ^/u: hacer si estando en un estado le"al4 lle"a una peticin para reali#ar una operacin /ue conduce a un estado ile"alI 1)isten dos opciones= recha;ar la operacin4 o bien aceptar la operacin $ reali#ar operaciones adicionales compensatorias /ue condu#can a un estado le"al6 Por lo tanto4 para cada clave ajena de la base de datos habr( /ue contestar a tres pre"untas= K K o Re$la de los n#los: ^2iene sentido /ue la clave ajena acepte nulosI Re$la de (orrado: ^Gu: ocurre si se intenta borrar la tupla referenciada por la clave ajenaI Restrin$ir: no se permite borrar la tupla referenciada6

o 1ropa$ar: se borra la tupla referenciada $ se propa"a el borrado a las tuplas /ue la referencian mediante la clave ajena6 D>

o An#lar: se borra la tupla referenciada $ las tuplas /ue la referenciaban ponen a nulo la clave ajena ;slo si acepta nulos<6 K Re$la de modificacin: ^Gu: ocurre si se intenta modificar el valor de la clave primaria de la tupla referenciada por la clave ajenaI o Restrin$ir: no se permite modificar el valor de la clave primaria de la tupla referenciada6

o 1ropa$ar: se modifica el valor de la clave primaria de la tupla referenciada $ se propa"a la modificacin a las tuplas /ue la referencian mediante la clave ajena6 o An#lar: se modifica la tupla referenciada $ las tuplas /ue la referenciaban ponen a nulo la clave ajena ;slo si acepta nulos<6 e"las de ne"ocio &dem(s de las dos re"las de inte"ridad anteriores4 los usuarios o los administradores de la base de datos pueden imponer ciertas restricciones espec-ficas sobre los datos4 denominadas re$las de ne$ocio6 Por ejemplo4 si en una oficina de la empresa inmobiliaria slo puede haber hasta veinte empleados4 el SG+% debe dar la posibilidad al usuario de definir una re"la al respecto $ debe hacerla respetar6 1n este caso4 no deber-a permitir dar de alta un empleado en una oficina /ue $a tiene los veinte permitidos6 Ho$ en d-a a8n e)isten SG+% relacionales /ue no permiten definir este tipo de restricciones ni las hacen respetar6 0en"uajes relacionales 0a tercera parte de un modelo de datos es la de la manipulacin6 Son varios los len"uajes utili#ados por los SG+% relacionales para manejar las relaciones6 &l"unos de ellos son proced#rales4 lo /ue /uiere decir /ue el usuario dice al sistema e)actamente cmo debe manipular los datos6 !tros son no proced#rales4 /ue si"nifica /ue el usuario dice /u: datos necesita4 en lu"ar de decir cmo deben obtenerse6 1n este apartado se presentan el (l"ebra relacional $ el c(lculo relacional4 definidos por Codd como la base de los len"uajes relacionales6 Se puede decir /ue el (l"ebra es un len"uaje procedural ;de alto nivel<4 mientras /ue el c(lculo relacional es un len"uaje no procedural6 Sin embar"o4 ambos len"uajes son e/uivalentes= para cada e)presin del (l"ebra4 se puede encontrar una e)presin e/uivalente en el c(lculo4 $ viceversa6 1l (l"ebra relacional ;o el c(lculo relacional< se utili#an para medir la potencia de los len"uajes relacionales6 Si un len"uaje permite obtener cual/uier relacin /ue se pueda derivar mediante el (l"ebra relacional4 se dice /ue es relacionalmente completo6 0a ma$or-a de los len"uajes relacionales son relacionalmente completos4 pero tienen m(s potencia /ue el (l"ebra o el c(lculo por/ue se les han a5adido operadores especiales6 2anto el (l"ebra como el c(lculo son len"uajes formales no mu$ Nami"ablesN6 Pero se deben estudiar por/ue sirven para ilustrar las operaciones b(sicas /ue todo len"uaje de manejo datos debe ofrecer6 &dem(s4 han sido la base para otros len"uajes relacionales de manejo de datos de m(s alto nivel6 DD

*l"ebra relacional 1l (l"ebra relacional es un len"uaje formal con una serie de operadores /ue trabajan sobre una o varias relaciones para obtener otra relacin resultado4 sin /ue cambien las relaciones ori"inales6 2anto los operandos como los resultados son relaciones4 por lo /ue la salida de una operacin puede ser la entrada de otra operacin6 1sto permite anidar e)presiones del (l"ebra4 del mismo modo /ue se pueden anidar las e)presiones aritm:ticas6 & esta propiedad se le denomina cla#s#ra= las relaciones son cerradas bajo el (l"ebra4 del mismo modo /ue los n8meros son cerrados bajo las operaciones aritm:ticas6 1n este apartado se presentan los operadores del (l"ebra relacional de un modo informal6 0as definiciones formales pueden encontrarse en la biblio"raf-a /ue se comenta al final del cap-tulo6 Primero se describen los ocho operadores ori"inalmente propuestos por Codd $ despu:s se estudian al"unos operadores adicionales /ue a5aden potencia al len"uaje6 %e los ocho operadores4 slo ha$ cinco /ue son fundamentales= restriccin4 pro eccin4 prod#cto cartesiano4 #nin $ diferencia4 /ue permiten reali#ar la ma$or-a de las operaciones de obtencin de datos6 0os operadores no fundamentales son la concatenacin *)oin,4 la interseccin $ la divisin4 /ue se pueden e)presar a partir de los cinco operadores fundamentales6 0a restriccin $ la pro$eccin son operaciones #narias por/ue operan sobre una sola relacin6 1l resto de las operaciones son (inarias por/ue trabajan sobre pares de relaciones6 1n las definiciones /ue se presentan a continuacin4 se supone /ue $ S son dos relaciones cu$os atributos son &Q;a 4 a 4 6664 a < $ +Q;b 4 b 4 6664 b < respectivamente6 Restriccin = _H1 1 condicin 0a restriccin4 tambi:n denominada seleccin4 opera sobre una sola relacin $ da como resultado otra relacin cu$as tuplas son las tuplas de /ue satisfacen la condicin especificada6 1sta condicin es una comparacin en la /ue aparece al menos un atributo de 4 o una combinacin booleana de varias de estas comparaciones6 *e1plo 2.1 !btener todos los empleados con un salario anual superior a 7D6AAA euros6 P0&32I00& _H1 1 salario[7DAAA 1num 3ombre &pellido %ireccin 1027 &melia Pastor .a"allanes4 7D Castelln 1GCE Pedro Cubedo +a$arri4 77 Villarreal 1&B ita enau Casalduch4 C2 B@> 2DE Supervisor 7BJDJ@A 7?AAA CB2CC7BA' !E D@ B@> DCD @BA Supervisor 2>JCJDE 7?AAA C?E@@@2CR !C 2el:fono B@> 2?> D@A Puesto %irector 'echaZnac Salario %3I !num

72J7AJ@2 CAAAA CB>C22721 !D

DDA Castelln 1GD Hulio Prats .elilla4 2C Villarreal 10>7 Carlos +ae#a Herrero4 D7 Castelln *e1plo 2.2 Obtener todos los in1uebles de Castelln con un al0uiler 1ensual de .asta +49 euros. I3.91+01 _H1 1 poblacinQUCastellnV &3% al/uiler`QCDA Inum Calle I0B> &rea Poblacin 2ipo Hab &l/uiler Pnum CDA CAA C2D P?E P>A PBC B@> 2>E 2DA Supervisor 2BJ2J@E 7?AAA CBDD27CC2 !D B@> D2> DBA %irector 7BJ72JDA 2>AAA 2D@>>CABR !C

iu 1bre4 2> onda Sur Castelln Piso > Grao Castelln Piso C Se"orbe Piso C

IG> Sorell4 D IGC@ &licante47 Pro/eccin

= aa 4 6664 a b 0a pro$eccin opera sobre una sola relacin $ da como resultado otra relacin /ue contiene un subconjunto vertical de 4 e)tra$endo los valores de los atributos especificados $ eliminando duplicados6 *e1plo 2.+ !btener un listado de empleados mostrando su n8mero4 nombre4 apellido $ salario6 P0&32I00& aenum4nombre4apellido4salariob

DE

:. )I Plani-icacin6 diseo / ad1inistracin de bases de datos


Captulo anterior: D - V 1l modelo relacional Captulo siguiente: E - VII %ise5o conceptual de bases de datos6 .odelo entidad-relacin VI Planificacin4 dise5o $ administracin de bases de datos 1n este cap-tulo se comentan las fases principales del ciclo de vida de un sistema de informacin $ se ve cmo se relaciona esto con el desarrollo de aplicaciones de bases de datos6 %espu:s4 se describen las tareas /ue se deben reali#ar en cada etapa del ciclo de vida de una aplicacin de bases de datos para /ue se produ#ca un sistema /ue funcione correctamente6 Por 8ltimo4 se presenta todo el personal responsable de la planificacin4 dise5o $ administracin de una base de datos6

Introduccin Se inicia este cap-tulo con al"unos p(rrafos de Hern(nde# ;7BBE<4 en donde se justifica la importancia del dise5o de bases de datos= N&l"unas de las personas /ue trabajan con SG+% relacionales parecen pre"untarse por/u: deber-an preocuparse del dise5o de las bases de datos /ue utili#an6 %espu:s de todo4 la ma$or-a de los SG+% vienen con bases de datos de ejemplo /ue se pueden copiar $ despu:s modificar4 para /ue se adecuen a cada caso particular4 e incluso las tablas de esas bases de datos de ejemplo se pueden cortar $ pe"ar en una nueva base de datos6 &l"unos SG+% tienen NasistentesN4 herramientas /ue "u-an al usuario a trav:s del proceso de definicin $ creacin de tablas6 Sin embar"o4 esas herramientas no sirven para dise.ar una base de datos4 tan solo a$udan a crear las tablas f-sicas /ue se incluir(n en la base de datos6 0o /ue la ma$or-a de la "ente no parece entender es /ue esas herramientas se deben utili#ar desp#6s de 0#e se ha a reali;ado el dise.o l$ico de la (ase de datos6 0os asistentes $ las bases de datos de ejemplo se suministran para minimi#ar el tiempo /ue lleva implementar la estructura f-sica de la base de datos6 0a idea es /ue si se ahorra tiempo en la implementacin de la estructura de la base de datos una ve# se ha reali#ado el dise5o l"ico4 habr( m(s tiempo para centrarse en la creacin $ construccin de las aplicaciones /ue se utili#ar(n para trabajar con los datos de la base de datos6 Por lo tanto4 la ra#n para preocuparse por el dise5o de las bases de datos es /ue es crucial para la consistencia4 inte"ridad $ precisin de los datos6 Si una base de datos est( mal dise5ada4 los usuarios tendr(n dificultades a la hora de acceder a ciertos tipos de informacin $ e)iste el ries"o a5adido de /ue ciertas b8s/uedas puedan producir informacin errnea6 La informacin errnea es< pro(a(lemente< el peor de los res#ltados de #n mal dise.o de la (ase de datos! 1#ede reperc#tir m# ne$ativamente a la empresa # or$ani;acin propietaria de los datos! %e hecho4 si los datos de una base de datos van a influir en la "estin del ne"ocio4 si van a servir para decidir las actuaciones de la empresa4 la base de datos de(e ser una preocupacin6 Vi:ndolo desde una perspectiva diferente4 la base de datos es como una casa /ue /ueremos /ue nos constru$an6 ^Gu: es lo primero /ue ha$ /ue hacerI %esde lue"o4 lo /ue no vamos a hacer es buscar a un constructor /ue ha"a la casa sobre la marcha $ como :l /uiera6 Se"uramente4 buscaremos D?

primero a un ar/uitecto /ue dise5e nuestra nueva casa $ despu:s haremos /ue el constructor la edifi/ue6 1l ar/uitecto e)presar( nuestras necesidades en una serie de planos4 anotando todos los re/uisitos de los diversos sistemas ;estructural4 mec(nico $ el:ctrico<6 %espu:s4 el constructor pondr( los materiales necesarios4 tal $ como se indica en los planos $ en las especificaciones6 Volviendo a la perspectiva de las bases de datos4 el dise5o l"ico corresponde con la fase de elaboracin de los planos ar/uitectnicos4 $ la implementacin f-sica de la base de datos es la casa $a construida6 1l dise5o l"ico describe el tama5o4 la forma $ los sistemas necesarios para la base de datos= contiene las necesidades en cuanto a informacin $ modo de operacin del ne"ocio6 %espu:s4 se constru$e la implementacin f-sica del dise5o l"ico de la base de datos mediante el SG+%6 Si pensamos en un sistema relacional4 una ve# creadas las tablas4 establecidas las relaciones $ los niveles de inte"ridad necesarios4 la base de datos est( finali#ada6 &hora $a se pueden crear las aplicaciones /ue permiten interactuar con los datos de la base de datos4 $ podemos estar se"uros de /ue estas aplicaciones proporcionar(n la informacin oportuna $4 sobre todo4 la informacin correcta6 Se pueden hacer malos dise5os4 pero una base de datos bien dise5ada contendr( informacin correcta4 almacenar( los datos m(s eficientemente $ ser( m(s f(cil de "estionar $ de mantener6N Ciclo de vida de los sistemas de informacin 9n sistema de informacin es el conjunto de recursos /ue permiten reco"er4 "estionar4 controlar $ difundir la informacin de toda una empresa u or"ani#acin6 %esde los a5os setenta4 los sistemas de bases de datos han ido reempla#ando a los sistemas de ficheros en los sistemas de informacin de las empresas6 &l mismo tiempo4 se ha ido reconociendo la "ran importancia /ue tienen los datos /ue :stas manejan4 convirti:ndose en uno de sus recursos m(s importantes6 1sto ha hecho /ue muchas empresas ten"an departamentos /ue se encar"uen de "estionar toda su informacin4 /ue estar( almacenada en una base de datos6 &parecen los papeles de administrador de datos $ administrador de la (ase de datos4 /ue son las personas encar"adas de supervisar $ controlar todas las actividades relacionadas con los datos de la empresa $ con el ciclo de vida de las aplicaciones de bases de datos4 respectivamente6 9n sistema de informacin est( formado por los si"uientes componentes= K K K K K 0a base de datos6 1l SG+%6 0os pro"ramas de aplicacin6 0os dispositivos f-sicos ;ordenadores4 dispositivos de almacenamiento4 etc6<6 1l personal /ue utili#a $ /ue desarrolla el sistema6

0a base de datos es un componente fundamental de un sistema de informacin6 1l ciclo de vida de un sistema de informacin est( li"ado al ciclo de vida del sistema de base de datos sobre el /ue se apo$a6 &l ciclo de vida de los sistemas de informacin tambi:n se le denomina ciclo de vida de desarrollo del soft-are6 0as etapas t-picas del ciclo de vida de desarrollo del softPare son= planificacin4 recoleccin $ an(lisis de los re/uisitos4 dise5o ;inclu$endo el dise5o de la base de datos<4 creacin de prototipos4 implementacin4 prueba4 conversin $ mantenimiento6 1ste ciclo de vida hace :nfasis en la identificacin de las funciones /ue reali#a la empresa $ en el desarrollo de DB

las aplicaciones /ue lleven a cabo estas funciones6 Se dice /ue el ciclo de vida de desarrollo del softPare si"ue un enfo/ue orientado a funciones4 $a /ue los sistemas se ven desde el punto de vista de las funciones /ue llevan a cabo6 Por esta ra#n4 el an(lisis estructurado hace :nfasis en los dia"ramas de flujo de datos4 si"uiendo el movimiento de los datos a trav:s de una secuencia de transformaciones4 $ refinando :stas a trav:s de una serie de niveles6 0o mismo ocurre en el dise5o estructurado4 /ue ve a un sistema como una funcin /ue se descompone sucesivamente en niveles o subfunciones6 Concentr(ndose en las funciones se infravaloran los datos $4 en especial4 la estr#ct#ra de los datos /ue son manipulados por las funciones6 1l resultado es /ue estos sistemas tienen valor durante poco tiempo en relacin con las necesidades de los usuarios a lar"o pla#o6 1sto sucede debido a /ue al poco tiempo de haber instalado un sistema4 las funciones implementadas son en realidad un subconjunto de las funciones /ue los usuarios realmente desean6 Casi inmediatamente4 los usuarios descubren una "ran variedad de servicios adicionales /ue /uisieran incorporar al sistema6 1stas necesidades causan problemas a los sistemas obtenidos con un dise5o orientado a funciones4 puesto /ue este dise5o puede re/uerir una revisin importante para acomodar las funciones adicionales6 1n contraste4 el enfo/ue orientado a datos centra el foco de atencin en el an(lisis de los datos utili#ados por las funciones6 1sto tiene dos ventajas6 0a primera es /ue los datos son una parte considerablemente m(s estable /ue las funciones6 0a se"unda ventaja es /ue la propia estructura de un es/uema de base de datos re/uiere de un an(lisis sofisticado de los datos $ de sus relaciones6 9na ve# /ue se ha$a construido un es/uema para la base de datos /ue sea l"ico4 podr-an dise5arse tantas funciones como fuera necesario para sacar provecho del mismo6 Sin embar"o4 sin un es/uema tal4 la base de datos slo podr-a ser 8til para una 8nica aplicacin6 Por lo tanto4 el enfo/ue orientado a funciones puede ser bueno para el desarrollo a corto pla#o4 pero pierde su valor real a lar"o pla#o6 9sando un enfo/ue orientado a datos4 los datos pasan a ser los cimientos sobre los cuales se puede construir una "ran variedad de funciones diferentes6 Por lo tanto4 en este cap-tulo se van a estudiar cada una de las etapas del ciclo de vida de desarrollo del softPare desde la perspectiva del desarrollo de una aplicacin de bases de datos4 si"uiendo un enfo/ue orientado a datos6 Ciclo de vida de las aplicaciones de bases de datos 0as etapas del ciclo de vida de una aplicacin de bases de datos son las si"uientes= 76 26 C6 >6 D6 @6 E6 ?6 Planificacin del pro$ecto6 %efinicin del sistema6 ecoleccin $ an(lisis de los re/uisitos6 %ise5o de la base de datos6 Seleccin del SG+%6 %ise5o de la aplicacin6 Prototipado6 Implementacin6 @A

B6

Conversin $ car"a de datos6

7A6 Prueba6 776 .antenimiento6 1stas etapas no son estrictamente secuenciales6 %e hecho ha$ /ue repetir al"unas de las etapas varias veces4 haciendo lo /ue se conocen como ciclos de realimentacin6 Por ejemplo4 los problemas /ue se encuentran en la etapa del dise5o de la base de datos pueden re/uerir una recoleccin de re/uisitos adicional $ su posterior an(lisis6 & continuacin4 se muestran las tareas m(s importantes /ue se reali#an en cada etapa6 76 Planificacin del pro$ecto 1sta etapa conlleva la planificacin de cmo se pueden llevar a cabo las etapas del ciclo de vida de la manera m(s eficiente6 Ha$ tres componentes principales= el trabajo /ue se ha de reali#ar4 los recursos para llevarlo a cabo $ el dinero para pa"ar por todo ello6 Como apo$o a esta etapa4 se necesitar( un modelo de datos corporativo en donde se muestren las entidades principales de la empresa $ sus relaciones4 $ en donde se identifi/uen las principales (reas funcionales6 3ormalmente4 este modelo de datos se representa mediante un dia"rama entidad-relacin6 1n este modelo se tiene /ue mostrar tambi:n /u: datos comparten las distintas (reas funcionales de la empresa6 0a planificacin de la base de datos tambi:n inclu$e el desarrollo de est(ndares /ue especifi/uen cmo reali#ar la recoleccin de datos4 cmo especificar su formato4 /u: documentacin ser( necesaria $ cmo se va a llevar a cabo el dise5o $ la implementacin6 1l desarrollo $ el mantenimiento de los est(ndares puede llevar bastante tiempo4 pero si est(n bien dise5ados4 son una base para el personal inform(tico en formacin $ para medir la calidad4 adem(s4 "aranti#an /ue el trabajo se ajusta a unos patrones4 independientemente de las habilidades $ la e)periencia del dise5ador6 Por ejemplo4 se pueden establecer re"las sobre cmo dar nombres a los datos4 lo /ue evitar( redundancias e inconsistencias6 Se deben documentar todos los aspectos le"ales sobre los datos $ los establecidos por la empresa como4 por ejemplo4 /u: datos deben tratarse de modo confidencial6 26 %efinicin del sistema 1n esta etapa se especifica el (mbito $ los l-mites de la aplicacin de bases de datos4 as- como con /u: otros sistemas interact8a6 2ambi:n ha$ /ue determinar /uienes son los usuarios $ las (reas de aplicacin6 C6 ecoleccin $ an(lisis de los re/uisitos

1n esta etapa se reco"en $ anali#an los re/uerimientos de los usuarios $ de las (reas de aplicacin6 1sta informacin se puede reco"er de varias formas= K 1ntrevistando al personal de la empresa4 concretamente4 a a/uellos /ue son considerados e)pertos en las (reas de inter:s6 K !bservando el funcionamiento de la empresa6 @7

K 1)aminando documentos4 sobre todo a/uellos /ue se utili#an para reco"er o visuali#ar informacin6 K K 9tili#ando cuestionarios para reco"er informacin de "randes "rupos de usuarios6 9tili#ando la e)periencia ad/uirida en el dise5o de sistemas similares6

0a informacin reco"ida debe incluir las principales (reas de aplicacin $ los "rupos de usuarios4 la documentacin utili#ada o "enerada por estas (reas de aplicacin o "rupos de usuarios4 las transacciones re/ueridas por cada (rea de aplicacin o "rupo de usuarios $ una lista priori#ada de los re/uerimientos de cada (rea de aplicacin o "rupo de usuarios6 1sta etapa tiene como resultado un conjunto de documentos con las especificaciones de re/uisitos de los usuarios4 en donde se describen las operaciones /ue se reali#an en la empresa desde distintos puntos de vista6 0a informacin reco"ida se debe estructurar utili#ando t6cnicas de especificacin de re0#isitos4 como por ejemplo t:cnicas de an(lisis $ dise5o estructurado $ dia"ramas de flujo de datos6 2ambi:n las herramientas C&S1 ; Comp#ter%Aided Soft-are En$ineerin$< pueden proporcionar una asistencia automati#ada /ue "arantice /ue los re/uisitos son completos $ consistentes6 >6 %ise5o de la base de datos 1sta etapa consta de tres fases= dise5o conceptual4 dise5o l"ico $ dise5o f-sico de la base de datos6 0a primera fase consiste en la produccin de un es/uema conceptual4 /ue es independiente de todas las consideraciones f-sicas6 1ste modelo se refina despu:s en un es/uema l"ico eliminando las construcciones /ue no se pueden representar en el modelo de base de datos esco"ido ;relacional4 orientado a objetos4 etc6<6 1n la tercera fase4 el es/uema l"ico se traduce en un es/uema f-sico para el SG+% esco"ido6 0a fase de dise5o f-sico considera las estructuras de almacenamiento $ los m:todos de acceso necesarios para proporcionar un acceso eficiente a la base de datos en memoria secundaria6 0os objetivos del dise5o de la base de datos son= K epresentar los datos /ue re/uieren las principales (reas de aplicacin $ los "rupos de usuarios4 $ representar las relaciones entre dichos datos6 K Proporcionar un modelo de datos /ue soporte las transacciones /ue se va$an a reali#ar sobre los datos6 K 1specificar un es/uema /ue alcance las prestaciones re/ueridas para el sistema6

Ha$ varias estrate"ias a se"uir para reali#ar el dise5o= de abajo a arriba4 de arriba a abajo4 de dentro a fuera $ la estrate"ia mi)ta6 0a estrate"ia de a(a)o a arri(a parte de todos los atributos $ los va a"rupando en entidades $ relaciones6 1s apropiada cuando la base de datos es simple4 con pocos atributos6 0a estrate"ia de arri(a a a(a)o es m(s apropiada cuando se trata de bases de datos complejas6 Se comien#a con un es/uema con entidades de alto nivel4 /ue se van refinando para obtener entidades de bajo nivel4 atributos $ relaciones6 0a estrate"ia de dentro a f#era es similar a la estrate"ia de abajo a arriba4 pero difiere en /ue se parte de los conceptos principales $ se va e)tendiendo el es/uema para considerar tambi:n otros conceptos4 asociados con los /ue se han identificado en primer lu"ar6 0a estrate"ia mi7ta utili#a ambas estrate"ias4 de abajo a arriba $ de arriba a abajo4 con un es/uema de divide $ vencer(s6 Se obtiene un es/uema inicial de alto nivel4 se @2

divide en partes4 $ de cada parte se obtiene un subes/uema6 1stos subes/uemas se inte"ran despu:s para obtener el modelo final6 D6 Seleccin del SG+% Si no se dispone de un SG+%4 o el /ue ha$ se encuentra obsoleto4 se debe esco"er un SG+% /ue sea adecuado para el sistema de informacin6 1sta eleccin se debe hacer en cual/uier momento antes del dise5o l"ico6 @6 %ise5o de la aplicacin 1n esta etapa se dise5an los pro"ramas de aplicacin /ue usar(n $ procesar(n la base de datos6 1sta etapa $ el dise5o de la base de datos4 son paralelas6 1n la ma$or parte de los casos no se puede finali#ar el dise5o de las aplicaciones hasta /ue se ha terminado con el dise5o de la base de datos6 Por otro lado4 la base de datos e)iste para dar soporte a las aplicaciones4 por lo /ue habr( una realimentacin desde el dise5o de las aplicaciones al dise5o de la base de datos6 1n esta etapa ha$ /ue ase"urarse de /ue toda la funcionalidad especificada en los re/uisitos de usuario se encuentra en el dise5o de la aplicacin6 Habr( al"unos pro"ramas /ue utilicen $ procesen los datos de la base de datos6 &dem(s4 habr( /ue dise5ar las interfaces de usuario4 aspecto mu$ importante /ue se suele i"norar6 1l sistema debe ser f(cil de aprender4 f(cil de usar4 ser directo $ estar Ndispuesto a perdonarN6 Si la interface no tiene estas caracter-sticas4 el sistema dar( problemas4 sin lu"ar a dudas6 E6 Prototipado 1sta etapa4 /ue es opcional4 es para construir prototipos de la aplicacin /ue permitan a los dise5adores $ a los usuarios probar el sistema6 9n prototipo es un modelo de trabajo de las aplicaciones del sistema6 1l prototipo no tiene toda la funcionalidad del sistema final4 pero es suficiente para /ue los usuarios puedan utili#ar el sistema e identificar /u: aspectos est(n bien $ cu(les no son adecuados4 adem(s de poder su"erir mejoras o la inclusin de nuevos elementos6 1ste proceso permite /ue /uienes dise5an e implementan el sistema sepan si han interpretado correctamente los re/uisitos de los usuarios6 !tra ventaja de los prototipos es /ue se constru$en r(pidamente6 1sta etapa es imprescindible cuando el sistema /ue se va a implementar tiene un "ran coste4 alto ries"o o utili#a nuevas tecnolo"-as6 ?6 Implementacin 1n esta etapa se crean las definiciones de la base de datos a nivel conceptual4 e)terno e interno4 ascomo los pro"ramas de aplicacin6 0a implementacin de la base de datos se reali#a mediante las sentencias del len"uaje de definicin de datos ;0%%< del SG+% esco"ido6 1stas sentencias se encar"an de crear el es/uema de la base de datos4 los ficheros en donde se almacenar(n los datos $ las vistas de los usuarios6 0os pro"ramas de aplicacin se implementan utili#ando len"uajes de tercera o cuarta "eneracin6 Partes de estas aplicaciones son transacciones sobre la base de datos4 /ue se implementan mediante el len"uaje de manejo de datos ;0.%< del SG+%6 0as sentencias de este len"uaje se pueden embeber en un len"uaje de pro"ramacin anfitrin como Visual +asic4 %elphi4 C4 C,,4 Hava4 C!+!04 'ortran4 &da o Pascal6 1n esta etapa4 tambi:n se implementan los men8s4 los formularios @C

para la introduccin de datos $ los informes de visuali#acin de datos6 Para ello4 el SG+% puede disponer de len"uajes de cuarta "eneracin /ue permiten el desarrollo r(pido de aplicaciones mediante len"uajes de consultas no procedurales4 "eneradores de informes4 "eneradores de formularios4 "eneradores de "r(ficos $ "eneradores de aplicaciones6 2ambi:n se implementan en esta etapa todos los controles de se"uridad e inte"ridad6 &l"unos de estos controles se pueden implementar mediante el 0%% $ otros puede /ue ha$a /ue implementarlos mediante utilidades del SG+% o mediante pro"ramas de aplicacin6 B6 Conversin $ car"a de datos 1sta etapa es necesaria cuando se est( reempla#ando un sistema anti"uo por uno nuevo6 0os datos se car"an desde el sistema viejo al nuevo directamente o4 si es necesario4 se convierten al formato /ue re/uiera el nuevo SG+% $ lue"o se car"an6 Si es posible4 los pro"ramas de aplicacin del sistema anti"uo tambi:n se convierten para /ue se puedan utili#ar en el sistema nuevo6 7A6 Prueba

1n esta etapa se prueba $ valida el sistema con los re/uisitos especificados por los usuarios6 Para ello4 se debe dise5ar una bater-a de tests con datos reales4 /ue se deben llevar a cabo de manera metdica $ ri"urosa6 1s importante darse cuenta de /ue la fase de prueba no sirve para demostrar /ue no ha$ fallos4 sirve para encontrarlos6 Si la fase de prueba se lleva a cabo correctamente4 descubrir( los errores en los pro"ramas de aplicacin $ en la estructura de la base de datos6 &dem(s4 demostrar( /ue los pro"ramas NparecenN trabajar tal $ como se especificaba en los re/uisitos $ /ue las prestaciones deseadas NparecenN obtenerse6 Por 8ltimo4 en las pruebas se podr( hacer una medida de la fiabilidad $ la calidad del softPare desarrollado6 776 .antenimiento

9na ve# /ue el sistema est( completamente implementado $ probado4 se pone en marcha6 1l sistema est( ahora en la fase de mantenimiento en la /ue se llevan a cabo las si"uientes tareas= K .onitori#acin de las prestaciones del sistema6 Si las prestaciones caen por debajo de un determinado nivel4 puede ser necesario reor"ani#ar la base de datos6 K .antenimiento $ actuali#acin del sistema6 Cuando sea necesario4 los nuevos re/uisitos /ue va$an sur"iendo se incorporar(n al sistema4 si"uiendo de nuevo las etapas del ciclo de vida /ue se acaban de presentar6 %ise5o de bases de datos 1n este apartado se describen con m(s detalle los objetivos de cada una de las etapas del dise5o de bases de datos= dise5o conceptual4 dise5o l"ico $ dise5o f-sico6 0a metodolo"-a a se"uir en cada una de estas etapas se describe en los tres cap-tulos /ue si"uen a :ste6 %ise5o conceptual 1n esta etapa se debe construir un es/uema de la informacin /ue se usa en la empresa4 independientemente de cual/uier consideracin f-sica6 & este es/uema se le denomina es0#ema concept#al6 &l construir el es/uema4 los dise5adores descubren la sem(ntica ;si"nificado< de los datos de la empresa= encuentran entidades4 atributos $ relaciones6 1l objetivo es comprender= @>

K K K

0a perspectiva /ue cada usuario tiene de los datos6 0a naturale#a de los datos4 independientemente de su representacin f-sica6 1l uso de los datos a trav:s de las (reas de aplicacin6

1l es/uema conceptual se puede utili#ar para /ue el dise5ador transmita a la empresa lo /ue ha entendido sobre la informacin /ue :sta maneja6 Para ello4 ambas partes deben estar familiari#adas con la notacin utili#ada en el es/uema6 0a m(s popular es la notacin del modelo entidad-relacin4 /ue se describir( en el cap-tulo dedicado al dise5o conceptual6 1l es/uema conceptual se constru$e utili#ando la informacin /ue se encuentra en la especificacin de los re/uisitos de usuario6 1l dise5o conceptual es completamente independiente de los aspectos de implementacin4 como puede ser el SG+% /ue se va$a a usar4 los pro"ramas de aplicacin4 los len"uajes de pro"ramacin4 el hardPare disponible o cual/uier otra consideracin f-sica6 %urante todo el proceso de desarrollo del es/uema conceptual :ste se prueba $ se valida con los re/uisitos de los usuarios6 1l es/uema conceptual es una fuente de informacin para el dise5o l"ico de la base de datos6 %ise5o l"ico 1l dise5o l"ico es el proceso de construir un es/uema de la informacin /ue utili#a la empresa4 bas(ndose en un modelo de base de datos espec-fico4 independiente del SG+% concreto /ue se va$a a utili#ar $ de cual/uier otra consideracin f-sica6 1n esta etapa4 se transforma el es/uema conceptual en un es/uema l"ico /ue utili#ar( las estructuras de datos del modelo de base de datos en el /ue se basa el SG+% /ue se va$a a utili#ar4 como puede ser el modelo relacional4 el modelo de red4 el modelo jer(r/uico o el modelo orientado a objetos6 Conforme se va desarrollando el es/uema l"ico4 :ste se va probando $ validando con los re/uisitos de usuario6 0a normali;acin es una t:cnica /ue se utili#a para comprobar la valide# de los es/uemas l"icos basados en el modelo relacional4 $a /ue ase"ura /ue las relaciones ;tablas< obtenidas no tienen datos redundantes6 1sta t:cnica se presenta en el cap-tulo dedicado al dise5o l"ico de bases de datos6 1l es/uema l"ico es una fuente de informacin para el dise5o f-sico6 &dem(s4 jue"a un papel importante durante la etapa de mantenimiento del sistema4 $a /ue permite /ue los futuros cambios /ue se realicen sobre los pro"ramas de aplicacin o sobre los datos4 se representen correctamente en la base de datos6 2anto el dise5o conceptual4 como el dise5o l"ico4 son procesos iterativos4 tienen un punto de inicio $ se van refinando continuamente6 &mbos se deben ver como un proceso de aprendi#aje en el /ue el dise5ador va comprendiendo el funcionamiento de la empresa $ el si"nificado de los datos /ue maneja6 1l dise5o conceptual $ el dise5o l"ico son etapas clave para conse"uir un sistema /ue funcione correctamente6 Si el es/uema no es una representacin fiel de la empresa4 ser( dif-cil4 sino imposible4 definir todas las vistas de usuario ;es/uemas e)ternos<4 o mantener la inte"ridad de la base de datos6 2ambi:n puede ser dif-cil definir la implementacin f-sica o el mantener unas prestaciones aceptables del sistema6 &dem(s4 ha$ /ue tener en cuenta /ue la capacidad de ajustarse a futuros cambios es un sello /ue identifica a los buenos dise5os de bases de datos6 Por todo esto4 es fundamental dedicar el tiempo $ las ener"-as necesarias para producir el mejor es/uema /ue sea posible6 @D

%ise5o f-sico 1l dise5o f-sico es el proceso de producir la descripcin de la implementacin de la base de datos en memoria secundaria= estructuras de almacenamiento $ m:todos de acceso /ue "aranticen un acceso eficiente a los datos6 Para llevar a cabo esta etapa4 se debe haber decidido cu(l es el SG+% /ue se va a utili#ar4 $a /ue el es/uema f-sico se adapta a :l6 1ntre el dise5o f-sico $ el dise5o l"ico ha$ una realimentacin4 $a /ue al"unas de las decisiones /ue se tomen durante el dise5o f-sico para mejorar las prestaciones4 pueden afectar a la estructura del es/uema l"ico6 1n "eneral4 el propsito del dise5o f-sico es describir cmo se va a implementar f-sicamente el es/uema l"ico obtenido en la fase anterior6 Concretamente4 en el modelo relacional4 esto consiste en= K !btener un conjunto de relaciones ;tablas< $ las restricciones /ue se deben cumplir sobre ellas6

K %eterminar las estructuras de almacenamiento $ los m:todos de acceso /ue se van a utili#ar para conse"uir unas prestaciones ptimas6 K %ise5ar el modelo de se"uridad del sistema6 %ise5o de aplicaciones 1n este apartado se e)aminan los dos aspectos del dise5o de las aplicaciones= el dise5o de las transacciones $ el dise5o de las interfaces de usuario6 %ise5o de transacciones 9na transaccin es un conjunto de acciones llevadas a cabo por un usuario o un pro"rama de aplicacin4 /ue acceden o cambian el contenido de la base de datos6 0as transacciones representan eventos del mundo real4 como re"istrar un inmueble para ponerlo en al/uiler4 concertar una visita con un cliente a un inmueble4 dar de alta un nuevo empleado o re"istrar un nuevo cliente6 1stas transacciones se deben reali#ar sobre la base de datos para /ue :sta si"a siendo un fiel reflejo de la realidad6 9na transaccin puede estar compuesta por varias operaciones4 como la transferencia de dinero de una cuenta bancaria a otra6 Sin embar"o4 desde el punto de vista del usuario4 estas operaciones conforman una sola tarea6 %esde el punto de vista del SG+%4 una transaccin lleva a la base de datos de un estado consistente a otro estado consistente6 1l SG+% "aranti#a la consistencia de la base de datos incluso si se produce al"8n fallo4 $ tambi:n "aranti#a /ue una ve# se ha finali#ado una transaccin4 los cambios reali#ados por :sta /uedan permanentemente en la base de datos4 no se pueden perder ni deshacer ;a menos /ue se realice otra transaccin /ue compense el efecto de la primera<6 Si la transaccin no se puede finali#ar por cual/uier motivo4 el SG+% "aranti#a /ue los cambios reali#ados por esta transaccin son deshechos6 1n el ejemplo de la transferencia de fondos entre dos cuentas bancarias4 si el dinero se e)trae de una cuenta $ la transaccin falla antes de /ue el dinero se in"rese en la otra cuenta4 el SG+% deshar( la e)traccin de fondos6 1l objetivo del dise5o de las transacciones es definir $ documentar las caracter-sticas de alto nivel de las transacciones /ue re/uiere el sistema6 1sta tarea se debe llevar a cabo al principio del proceso de dise5o para "aranti#ar /ue el es/uema l"ico es capa# de soportar todas las transacciones necesarias6 0as caracter-sticas /ue se deben reco"er de cada transaccin son las si"uientes= @@

K K K K K

%atos /ue utili#a la transaccin6 Caracter-sticas funcionales de la transaccin6 Salida de la transaccin6 Importancia para los usuarios6 'recuencia de utili#acin6

Ha$ tres tipos de transacciones= K 1n las transacciones de rec#peracin se accede a los datos para visuali#arlos en la pantalla a modo de informe6 K 1n las transacciones de act#ali;acin se insertan4 borran o actuali#an datos de la base de datos6 K 1n las transacciones mi7tas se me#clan operaciones de recuperacin de datos $ de actuali#acin6 1l dise5o de las transacciones utili#a la informacin dada en las especificaciones de re/uisitos de usuario6 %ise5o de interfaces de usuario &ntes de implementar los formularios $ los informes4 ha$ /ue dise5ar su aspecto6 1s conveniente tener en cuenta las si"uientes recomendaciones= K 9tili#ar t-tulos /ue sean si"nificativos4 /ue identifi/uen sin ambi"Sedad el propsito del informe o formulario6 K K K K K K K K K K %ar instrucciones breves $ f(ciles de comprender6 &"rupar $ secuenciar los campos de forma l"ica6 Hacer /ue el aspecto del informe o formulario sea atractivo a la vista6 9tili#ar nombres familiares para eti/uetar los campos6 9tili#ar terminolo"-a $ abreviaturas consistentes6 Hacer un uso ra#onable $ consistente de los colores6 %ejar un espacio visible para los datos de entrada $ delimitarlos6 Permitir un uso sencillo $ adecuado del cursor6 Permitir la correccin car(cter a car(cter $ de campos completos6 %ar mensajes de error para los valores Nile"alesN6 @E

K K K

.arcar los campos /ue sean opcionales6 %ar mensajes a nivel de campo para e)plicar su si"nificado6 %ar una se5al /ue indi/ue cu(ndo el informe o formulario est( completo6 Herramientas C&S1

Cuando se hace la planificacin de la base de datos4 la primera etapa del ciclo de vida de las aplicaciones de bases de datos4 tambi:n se puede esco"er una herramienta C&S1 ;Computer-&ided SoftPare 1n"ineerin"< /ue permita llevar a cabo el resto de tareas del modo m(s eficiente $ efectivo posible6 9na herramienta C&S1 suele incluir= K 9n diccionario de datos para almacenar informacin sobre los datos de la aplicacin de bases de datos6 K Herramientas de dise5o para dar apo$o al an(lisis de datos6

K Herramientas /ue permitan desarrollar el modelo de datos corporativo4 as- como los es/uemas conceptual $ l"ico6 K Herramientas para desarrollar los prototipos de las aplicaciones6

1l uso de las herramientas C&S1 puede mejorar la productividad en el desarrollo de una aplicacin de bases de datos6 F por productividad se entiende tanto la eficiencia en el desarrollo4 como la efectividad del sistema desarrollado6 0a eficiencia se refiere al coste4 tanto en tiempo como en dinero4 de desarrollar la aplicacin6 0a efectividad se refiere al "rado en /ue el sistema satisface las necesidades de los usuarios6 Para obtener una buena productividad4 subir el nivel de efectividad puede ser m(s importante /ue aumentar la eficiencia6 &dministracin de datos $ de la base de datos 1l administrador de datos $ el administrador de la base de datos son las personas o "rupos de personas encar"adas de "estionar $ controlar todas las actividades /ue tienen /ue ver con los datos de la empresa $ con la base de datos4 respectivamente6 1l administrador de datos es /uien entiende los datos $ las necesidades de la empresa con respecto a dichos datos6 Su trabajo es decidir /u: datos deben almacenarse en la base de datos $ establecer pol-ticas para mantener $ "estionar los datos una ve# ha$an sido almacenados6 9n ejemplo de tal pol-tica ser-a una /ue estableciera /ui:n puede reali#ar /u: operaciones sobre /u: datos $ en /u: circunstancias6 0a persona ;o personas< /ue se encar"a de implementar las decisiones del administrador de datos es el administrador de la base de datos6 Su trabajo es crear la base de datos e implementar los controles necesarios para /ue se respeten las pol-ticas establecidas por el administrador de datos6 1l administrador de la base de datos es el responsable de "aranti#ar /ue el sistema obten"a las prestaciones deseadas4 adem(s de prestar otros servicios t:cnicos6 1l administrador de datos jue"a un papel m(s importante /ue el administrador de la base de datos en las si"uientes etapas del ciclo de vida= planificacin de la base de datos4 definicin del sistema4 recoleccin $ an(lisis de los re/uisitos4 dise5o conceptual $ dise5o l"ico de la base de datos6 1n el resto de las etapas es donde el administrador de la base de datos tiene el papel m(s importante= @?

seleccin del SG+%4 dise5o de las aplicaciones4 dise5o f-sico4 prototipado4 implementacin4 conversin $ car"a de datos4 prueba $ mantenimiento6 esumen 9n sistema de informacin es el conjunto de recursos /ue se utili#an para reco"er4 "estionar4 controlar $ divul"ar la informacin dentro de una empresa u or"ani#acin6 %esde los a5os setenta los sistemas de bases de datos han ido reempla#ando a los sistemas de ficheros en los sistemas de informacin de las empresas4 de modo /ue :stos constan de los si"uientes componentes= la base de datos4 el SG+%4 los pro"ramas de aplicacin4 los e/uipos inform(ticos $ el personal /ue utili#a $ /ue desarrolla el sistema6 0a base de datos es uno de los componentes principales de un sistema de informacin4 por lo /ue el ciclo de vida de un sistema de informacin est( inherentemente li"ado al ciclo de vida de la base de datos sobre la /ue se apo$a6 0as etapas de este ciclo de vida son= planificacin de la base de datos4 definicin del sistema4 recoleccin $ an(lisis de los re/uisitos4 dise5o de la base de datos4 seleccin del SG+%4 dise5o de aplicaciones4 elaboracin de prototipos4 implementacin4 conversin $ car"a de datos4 prueba $ mantenimiento6 1n el dise5o de una base de datos se debe reali#ar un modelo de datos /ue a$ude a entender el si"nificado de los datos $ /ue facilite la comunicacin en cuanto a los re/uisitos de informacin6 0a primera etapa es el dise5o conceptual4 en donde se constru$e un es/uema de la informacin /ue maneja la empresa4 independientemente de todas las consideraciones f-sicas6 %espu:s viene el dise5o l"ico4 en el /ue el es/uema anterior se transforma se"8n el modelo de base de datos /ue se va$a a utili#ar para implementar el sistema6 Por 8ltimo4 en la etapa del dise5o f-sico4 se produce una descripcin de la implementacin de la base de datos en memoria secundaria6 1l dise5o de las aplicaciones4 una fase /ue se debe llevar a cabo en paralelo con el dise5o de la base de datos4 est( compuesta por dos actividades= el dise5o de las transacciones $ el dise5o de las interfaces de usuario de informes $ formularios6 0as herramientas C&S1 permiten /ue el desarrollo de los sistemas de informacin se realice de modo eficiente $ efectivo6 0a administracin de datos consiste en la "estin de los datos como recurso4 mientras /ue la administracin de la base de datos es la "estin de la base de datos f-sica6

@B

;. )II Diseo conceptual de bases de datos. 'odelo entidad< relacin


VII %ise5o conceptual de bases de datos6 .odelo entidad-relacin 1n este cap-tulo se presenta una metodolo"-a para el dise5o conceptual de bases de datos /ue se basa en el modelo de datos m(s popular en la actualidad4 el modelo entidad-relacin6

Introduccin Para la introduccin a este cap-tulo se toman al"unos p(rrafos del te)to de +atini4 Ceri $ 3avathe ;7BB><6 N1l dise5o de bases de datos es el proceso por el /ue se determina la or"ani#acin de una base de datos4 incluidos su estructura4 contenido $ las aplicaciones /ue se han de desarrollar6 %urante mucho tiempo4 el dise5o de bases de datos fue considerado una tarea para e)pertos= m(s un arte /ue una ciencia6 Sin embar"o4 se ha pro"resado mucho en el dise5o de bases de datos $ :ste se considera ahora una disciplina estable4 con m:todos $ t:cnicas propios6 %ebido a la creciente aceptacin de las bases de datos por parte de la industria $ el "obierno en el plano comercial4 $ a una variedad de aplicaciones cient-ficas $ t:cnicas4 el dise5o de bases de datos desempe5a un papel central en el empleo de los recursos de informacin en la ma$or-a de las or"ani#aciones6 1l dise5o de bases de datos ha pasado a constituir parte de la formacin "eneral de los inform(ticos4 en el mismo nivel /ue la capacidad de construir al"oritmos usando un len"uaje de pro"ramacin convencional6N N0as 8ltimas dos d:cadas se han caracteri#ado por un fuerte crecimiento en el n8mero e importancia de las aplicaciones de bases de datos6 0as bases de datos son componentes esenciales de los sistemas de informacin4 usadas rutinariamente en todos los computadores a666b6 1l dise5o de bases de datos se ha convertido en una actividad popular4 desarrollada no slo por profesionales sino tambi:n por no especialistas6 & finales de la d:cada de 7B@A4 cuando las bases de datos entraron por primera ve# en el mercado del softPare4 los dise5adores de bases de datos actuaban como artesanos4 con herramientas mu$ primitivas= dia"ramas de blo/ues $ estructuras de re"istros eran los formatos comunes para las especificaciones4 $ el dise5o de bases de datos se confund-a frecuentemente con la implantacin de las bases de datos6 1sta situacin ahora ha cambiado= los m:todos $ modelos de dise5o de bases de datos han evolucionado paralelamente con el pro"reso de la tecnolo"-a en los sistemas de bases de datos6 Se ha entrado en la era de los sistemas relacionales de bases de datos4 /ue ofrecen poderosos len"uajes de consulta4 herramientas para el desarrollo de aplicaciones e interfaces amables con los usuarios6 0a tecnolo"-a de bases de datos cuenta $a con un marco terico4 /ue inclu$e la teor-a relacional de datos4 procesamiento $ optimi#acin de consultas4 control de concurrencia4 "estin de transacciones $ recuperacin4 etc6 Se"8n ha avan#ado la tecnolo"-a de bases de datos4 as- se han desarrollado las metodolo"-as $ t:cnicas de dise5o6 Se ha alcan#ado un consenso4 por ejemplo4 sobre la descomposicin del proceso de dise5o en fases4 sobre los principales objetivos de cada fase $ sobre las t:cnicas para conse"uir estos objetivos6N EA

N%esafortunadamente4 las metodolo"-as de dise5o de bases de datos no son mu$ popularesL la ma$or-a de las or"ani#aciones $ de los dise5adores individuales conf-a mu$ poco en las metodolo"-as para llevar a cabo el dise5o $ esto se considera4 con frecuencia4 una de las principales causas de fracaso en el desarrollo de los sistemas de informacin6 %ebido a la falta de enfo/ues estructurados para el dise5o de bases de datos4 a menudo se subestiman el tiempo o los recursos necesarios para un pro$ecto de bases de datos4 las bases de datos son inadecuadas o ineficientes en relacin a las demandas de la aplicacin4 la documentacin es limitada $ el mantenimiento es dif-cil6 .uchos de estos problemas se deben a la falta de una claridad /ue permita entender la naturale#a e)acta de los datos4 a un nivel conceptual $ abstracto6 1n muchos casos4 los datos se describen desde el comien#o del pro$ecto en t:rminos de las estructuras finales de almacenamientoL no se da peso a un entendimiento de las propiedades estructurales de los datos /ue sea independiente de los detalles de la reali#acin6N .etodolo"-a de dise5o de bases de datos 1l dise5o de una base de datos es un proceso complejo /ue abarca decisiones a mu$ distintos niveles6 0a complejidad se controla mejor si se descompone el problema en subproblemas $ se resuelve cada uno de estos subproblemas independientemente4 utili#ando t:cnicas espec-ficas6 &s-4 el dise5o de una base de datos se descompone en dise5o conceptual4 dise5o l"ico $ dise5o f-sico6 1l dise5o conceptual parte de las especificaciones de re/uisitos de usuario $ su resultado es el es/uema conceptual de la base de datos6 9n es0#ema concept#al es una descripcin de alto nivel de la estructura de la base de datos4 independientemente del SG+% /ue se va$a a utili#ar para manipularla6 9n modelo concept#al es un len"uaje /ue se utili#a para describir es/uemas conceptuales6 1l objetivo del dise5o conceptual es describir el contenido de informacin de la base de datos $ no las estructuras de almacenamiento /ue se necesitar(n para manejar esta informacin6 1l dise5o l"ico parte del es/uema conceptual $ da como resultado un es/uema l"ico6 9n es0#ema l$ico es una descripcin de la estructura de la base de datos en t:rminos de las estructuras de datos /ue puede procesar un tipo de SG+%6 9n modelo l$ico es un len"uaje usado para especificar es/uemas l"icos ;modelo relacional4 modelo de red4 etc6<6 1l dise5o l"ico depende del tipo de SG+% /ue se va$a a utili#ar4 no depende del producto concreto6 1l dise5o f-sico parte del es/uema l"ico $ da como resultado un es/uema f-sico6 9n es0#ema f&sico es una descripcin de la implementacin de una base de datos en memoria secundaria= las estructuras de almacenamiento $ los m:todos utili#ados para tener un acceso eficiente a los datos6 Por ello4 el dise5o f-sico depende del SG+% concreto $ el es/uema f-sico se e)presa mediante su len"uaje de definicin de datos6 .odelos de datos 9n modelo de datos es una serie de conceptos /ue puede utili#arse para describir un conjunto de datos $ las operaciones para manipularlos6 Ha$ dos tipos de modelos de datos= los modelos conceptuales $ los modelos l"icos6 0os modelos concept#ales se utili#an para representar la realidad a un alto nivel de abstraccin6 .ediante los modelos conceptuales se puede construir una descripcin de la realidad f(cil de entender6 1n los modelos l$icos4 las descripciones de los datos tienen una correspondencia sencilla con la estructura f-sica de la base de datos6 1n el dise5o de bases de datos se usan primero los modelos conceptuales para lo"rar una descripcin de alto nivel de la realidad4 $ lue"o se transforma el es/uema conceptual en un es/uema E7

l"ico6 1l motivo de reali#ar estas dos etapas es la dificultad de abstraer la estructura de una base de datos /ue presente cierta complejidad6 9n es0#ema es un conjunto de representaciones lin"S-sticas o "r(ficas /ue describen la estructura de los datos de inter:s6 0os modelos conceptuales deben ser buenas herramientas para representar la realidad4 por lo /ue deben poseer las si"uientes cualidades= K K K K E7presividad= deben tener suficientes conceptos para e)presar perfectamente la realidad6 Simplicidad= deben ser simples para /ue los es/uemas sean f(ciles de entender6 Minimalidad= cada concepto debe tener un si"nificado distinto6 'ormalidad= todos los conceptos deben tener una interpretacin 8nica4 precisa $ bien definida6

1n "eneral4 un modelo no es capa# de e)presar todas las propiedades de una realidad determinada4 por lo /ue ha$ /ue a5adir aserciones /ue complementen el es/uema6 1l modelo entidad-relacin 1l modelo entidad-relacin es el modelo conceptual m(s utili#ado para el dise5o conceptual de bases de datos6 'ue introducido por Peter Chen en 7BE@6 1l modelo entidad-relacin est( formado por un conjunto de conceptos /ue permiten describir la realidad mediante un conjunto de representaciones "r(ficas $ lin"S-sticas6 !ri"inalmente4 el modelo entidad-relacin slo inclu-a los conceptos de entidad4 relacin $ atributo6 .(s tarde4 se a5adieron otros conceptos4 como los atributos compuestos $ las jerar/u-as de "enerali#acin4 en lo /ue se ha denominado modelo entidad%relacin e7tendido6

=igura :.1: Conceptos del modelo entidad%relacin e7tendido! ntidad Cual/uier tipo de objeto o concepto sobre el /ue se reco"e informacin= cosa4 persona4 concepto abstracto o suceso6 Por ejemplo= coches4 casas4 empleados4 clientes4 empresas4 oficios4 dise5os de productos4 conciertos4 e)cursiones4 etc6 0as entidades se representan "r(ficamente mediante rect(n"ulos $ su nombre aparece en el interior6 9n nombre de entidad slo puede aparecer una ve# en el es/uema conceptual6 Ha$ dos tipos de entidades= fuertes $ d:biles6 9na entidad d6(il es una entidad cu$a e)istencia depende de la e)istencia de otra entidad6 9na entidad f#erte es una entidad /ue no es d:bil6 Relacin 7interrelacin8 1s una correspondencia o asociacin entre dos o m(s entidades6 Cada relacin tiene un nombre /ue describe su funcin6 0as relaciones se representan "r(ficamente mediante rombos $ su nombre aparece en el interior6 E2

0as entidades /ue est(n involucradas en una determinada relacin se denominan entidades participantes6 1l n8mero de participantes en una relacin es lo /ue se denomina $rado de la relacin6 Por lo tanto4 una relacin en la /ue participan dos entidades es una relacin (inariaL si son tres las entidades participantes4 la relacin es ternariaL etc6 9na relacin rec#rsiva es una relacin donde la misma entidad participa m(s de una ve# en la relacin con distintos papeles6 1l nombre de estos papeles es importante para determinar la funcin de cada participacin6 0a cardinalidad con la /ue una entidad participa en una relacin especifica el n8mero m-nimo $ el n8mero m()imo de correspondencias en las /ue puede tomar parte cada ocurrencia de dicha entidad6 0a participacin de una entidad en una relacin es o(li$atoria *total, si la e)istencia de cada una de sus ocurrencias re/uiere la e)istencia de4 al menos4 una ocurrencia de la otra entidad participante6 Si no4 la participacin es opcional *parcial,6 0as re"las /ue definen la cardinalidad de las relaciones son las re$las de ne$ocio6 & veces4 sur"en problemas cuando se est( dise5ado un es/uema conceptual6 1stos problemas4 denominados trampas4 suelen producirse a causa de una mala interpretacin en el si"nificado de al"una relacin4 por lo /ue es importante comprobar /ue el es/uema conceptual carece de dichas trampas6 1n "eneral4 para encontrar las trampas4 ha$ /ue ase"urarse de /ue se entiende completamente el si"nificado de cada relacin6 Si no se entienden las relaciones4 se puede crear un es/uema /ue no represente fielmente la realidad6 9na de las trampas /ue pueden encontrarse ocurre cuando el es/uema representa una relacin entre entidades4 pero el camino entre al"unas de sus ocurrencias es ambi"uo6 1l modo de resolverla es reestructurando el es/uema para representar la asociacin entre las entidades correctamente6 !tra de las trampas sucede cuando un es/uema su"iere la e)istencia de una relacin entre entidades4 pero el camino entre una $ otra no e)iste para al"unas de sus ocurrencias6 1n este caso4 se produce una p:rdida de informacin /ue se puede subsanar introduciendo la relacin /ue su"er-a el es/uema $ /ue no estaba representada6 "tributo 1s una caracter-stica de inter:s o un hecho sobre una entidad o sobre una relacin6 0os atributos representan las propiedades b(sicas de las entidades $ de las relaciones6 2oda la informacin e)tensiva es portada por los atributos6 Gr(ficamente4 se representan mediante bolitas /ue cuel"an de las entidades o relaciones a las /ue pertenecen6 Cada atributo tiene un conjunto de valores asociados denominado dominio6 1l dominio define todos los valores posibles /ue puede tomar un atributo6 Puede haber varios atributos definidos sobre un mismo dominio6 0os atributos pueden ser simples o compuestos6 9n atri(#to simple es un atributo /ue tiene un solo componente4 /ue no se puede dividir en partes m(s pe/ue5as /ue ten"an un si"nificado propio6 9n atri(#to comp#esto es un atributo con varios componentes4 cada uno con un si"nificado por smismo6 9n "rupo de atributos se representa mediante un atributo compuesto cuando tienen afinidad en cuanto a su si"nificado4 o en cuanto a su uso6 9n atributo compuesto se representa "r(ficamente mediante un valo6 0os atributos tambi:n pueden clasificarse en monovalentes o polivalentes6 9n atri(#to monovalente es a/uel /ue tiene un solo valor para cada ocurrencia de la entidad o relacin a la /ue pertenece6 9n EC

atri(#to polivalente es a/uel /ue tiene varios valores para cada ocurrencia de la entidad o relacin a la /ue pertenece6 & estos atributos tambi:n se les denomina m#ltival#ados4 $ pueden tener un n8mero m()imo $ un n8mero m-nimo de valores6 0a cardinalidad de un atributo indica el n8mero m-nimo $ el n8mero m()imo de valores /ue puede tomar para cada ocurrencia de la entidad o relacin a la /ue pertenece6 1l valor por omisin es 6 Por 8ltimo4 los atributos pueden ser derivados6 9n atri(#to derivado es a/uel /ue representa un valor /ue se puede obtener a partir del valor de uno o varios atributos4 /ue no necesariamente deben pertenecer a la misma entidad o relacin6 Identi-icador 9n identificador de una entidad es un atributo o conjunto de atributos /ue determina de modo 8nico cada ocurrencia de esa entidad6 9n identificador de una entidad debe cumplir dos condiciones= 76 26 3o pueden e)istir dos ocurrencias de la entidad con el mismo valor del identificador6 Si se omite cual/uier atributo del identificador4 la condicin anterior deja de cumplirse6

2oda entidad tiene al menos un identificador $ puede tener varios identificadores alternativos6 0as relaciones no tienen identificadores6 >erar0ua de generali,acin 9na entidad E es una "enerali#acin de un "rupo de entidades E < E < !!! E 4 si cada ocurrencia de cada una de esas entidades es tambi:n una ocurrencia de E6 2odas las propiedades de la entidad "en:rica E son heredadas por las subentidades6 Cada jerar/u-a es total o parcial4 $ e)clusiva o superpuesta6 9na jerar/u-a es total si cada ocurrencia de la entidad "en:rica corresponde al menos con una ocurrencia de al"una subentidad6 1s parcial si e)iste al"una ocurrencia de la entidad "en:rica /ue no corresponde con nin"una ocurrencia de nin"una subentidad6 9na jerar/u-a es e7cl#siva si cada ocurrencia de la entidad "en:rica corresponde4 como mucho4 con una ocurrencia de una sola de las subentidades6 1s s#perp#esta si e)iste al"una ocurrencia de la entidad "en:rica /ue corresponde a ocurrencias de dos o m(s subentidades diferentes6 9n s#(con)#nto es un caso particular de "enerali#acin con una sola entidad como subentidad6 9n subconjunto siempre es una jerar/u-a parcial $ e)clusiva6 .etodolo"-a de dise5o conceptual 1l primer paso en el dise5o de una base de datos es la produccin del es/uema conceptual6 3ormalmente4 se constru$en varios es/uemas conceptuales4 cada uno para representar las distintas visiones /ue los usuarios tienen de la informacin6 Cada una de estas visiones suelen corresponder a las diferentes (reas funcionales de la empresa como4 por ejemplo4 produccin4 ventas4 recursos humanos4 etc6 1stas visiones de la informacin4 denominadas vistas4 se pueden identificar de varias formas6 9na opcin consiste en e)aminar los dia"ramas de flujo de datos4 /ue se pueden haber producido previamente4 para identificar cada una de las (reas funcionales6 0a otra opcin consiste en entrevistar a los usuarios4 e)aminar los procedimientos4 los informes $ los formularios4 $ tambi:n observar el funcionamiento de la empresa6 E>

& los es/uemas conceptuales correspondientes a cada vista de usuario se les denomina es0#emas concept#ales locales6 Cada uno de estos es/uemas se compone de entidades4 relaciones4 atributos4 dominios de atributos e identificadores6 1l es/uema conceptual tambi:n tendr( una documentacin4 /ue se ir( produciendo durante su desarrollo6 0as tareas a reali#ar en el dise5o conceptual son las si"uientes= 76 26 C6 >6 D6 @6 E6 ?6 Identificar las entidades6 Identificar las relaciones6 Identificar los atributos $ asociarlos a entidades $ relaciones6 %eterminar los dominios de los atributos6 %eterminar los identificadores6 %eterminar las jerar/u-as de "enerali#acin ;si las ha$<6 %ibujar el dia"rama entidad-relacin6 evisar el es/uema conceptual local con el usuario6

76 Identificar las entidades 1n primer lu"ar ha$ /ue definir los principales objetos /ue interesan al usuario6 1stos objetos ser(n las entidades6 9na forma de identificar las entidades es e)aminar las especificaciones de re/uisitos de usuario6 1n estas especificaciones se buscan los nombres o los sinta"mas nominales /ue se mencionan ;por ejemplo= n8mero de empleado4 nombre de empleado4 n8mero de inmueble4 direccin del inmueble4 al/uiler4 n8mero de habitaciones<6 2ambi:n se buscan objetos importantes como personas4 lu"ares o conceptos de inter:s4 e)clu$endo a/uellos nombres /ue slo son propiedades de otros objetos6 Por ejemplo4 se pueden a"rupar el n8mero de empleado $ el nombre de empleado en una entidad denominada empleado4 $ a"rupar n8mero de inmueble4 direccin del inmueble4 al/uiler $ n8mero de habitaciones en otra entidad denominada inm#e(le6 !tra forma de identificar las entidades es buscar a/uellos objetos /ue e)isten por s- mismos6 Por ejemplo4 empleado es una entidad por/ue los empleados e)isten4 sepamos o no sus nombres4 direcciones $ tel:fonos6 Siempre /ue sea posible4 el usuario debe colaborar en la identificacin de las entidades6 & veces4 es dif-cil identificar las entidades por la forma en /ue aparecen en las especificaciones de re/uisitos6 0os usuarios4 a veces4 hablan utili#ando ejemplos o analo"-as6 1n lu"ar de hablar de empleados en "eneral4 hablan de personas concretas4 o bien4 hablan de los puestos /ue ocupan esas personas6 Para liarlo a8n m(s4 los usuarios usan4 muchas veces4 sinnimos $ homnimos6 %os palabras son sinnimos cuando tienen el mismo si"nificado6 0os homnimos ocurren cuando la misma palabra puede tener distintos si"nificados dependiendo del conte)to6 3o siempre es obvio saber si un objeto es una entidad4 una relacin o un atributo6 Por ejemplo ^cmo se podr-a clasificar matrimonioI Pues de cual/uiera de las tres formas6 1l an(lisis es subjetivo4 por lo /ue distintos dise5adores pueden hacer distintas interpretaciones4 aun/ue todas i"ualmente v(lidas6 2odo depende de la opinin $ la e)periencia de cada uno6 0os dise5adores de ED

bases de datos deben tener una visin selectiva $ clasificar las cosas /ue observan dentro del conte)to de la empresa u or"ani#acin6 & partir de unas especificaciones de usuario es posible /ue no se pueda deducir un conjunto 8nico de entidades4 pero despu:s de varias iteraciones del proceso de an(lisis4 se lle"ar( a obtener un conjunto de entidades /ue sean adecuadas para el sistema /ue se ha de construir6 Conforme se van identificando las entidades4 se les dan nombres /ue ten"an un si"nificado $ /ue sean obvias para el usuario6 0os nombres de las entidades $ sus descripciones se anotan en el diccionario de datos6 Cuando sea posible4 se debe anotar tambi:n el n8mero apro)imado de ocurrencias de cada entidad6 Si una entidad se conoce por varios nombres4 :stos se deben anotar en el diccionario de datos como alias o sinnimos6 26 Identificar las relaciones 9na ve# definidas las entidades4 se deben definir las relaciones e)istentes entre ellas6 %el mismo modo /ue para identificar las entidades se buscaban nombres en las especificaciones de re/uisitos4 para identificar las relaciones se suelen buscar las e)presiones verbales ;por ejemplo= oficina tiene empleados4 empleado "estiona inmueble4 cliente visita inmueble<6 Si las especificaciones de re/uisitos reflejan estas relaciones es por/ue son importantes para la empresa $4 por lo tanto4 se deben reflejar en el es/uema conceptual6 Pero slo interesan las relaciones /ue son necesarias6 1n el ejemplo anterior4 se han identificado las relaciones empleado $estiona inm#e(le $ cliente visita inm#e(le6 Se podr-a pensar en incluir una relacin entre empleado $ cliente= empleado atiende a cliente4 pero observando las especificaciones de re/uisitos no parece /ue ha$a inter:s en modelar tal relacin6 0a ma$or-a de las relaciones son binarias ;entre dos entidades<4 pero no ha$ /ue olvidar /ue tambi:n puede haber relaciones en las /ue participen m(s de dos entidades4 as- como relaciones recursivas6 1s mu$ importante repasar las especificaciones para comprobar /ue todas las relaciones4 e)pl-citas o impl-citas4 se han encontrado6 Si se tienen pocas entidades4 se puede comprobar por parejas si ha$ al"una relacin entre ellas6 %e todos modos4 las relaciones /ue no se identifican ahora se suelen encontrar cuando se valida el es/uema con las transacciones /ue debe soportar6 9na ve# identificadas todas las relaciones4 ha$ /ue determinar la cardinalidad m-nima $ m()ima con la /ue participa cada entidad en cada una de ellas6 %e este modo4 el es/uema representa de un modo m(s e)pl-cito la sem(ntica de las relaciones6 0a cardinalidad es un tipo de restriccin /ue se utili#a para comprobar $ mantener la calidad de los datos6 1stas restricciones son aserciones sobre las entidades /ue se pueden aplicar cuando se actuali#a la base de datos para determinar si las actuali#aciones violan o no las re"las establecidas sobre la sem(ntica de los datos6 Conforme se van identificando las relaciones4 se les van asi"nando nombres /ue ten"an si"nificado para el usuario6 1n el diccionario de datos se anotan los nombres de las relaciones4 su descripcin $ las cardinalidades con las /ue participan las entidades en ellas6 C6 Identificar los atributos $ asociarlos a entidades $ relaciones &l i"ual /ue con las entidades4 se buscan nombres en las especificaciones de re/uisitos6 Son atributos los nombres /ue identifican propiedades4 cualidades4 identificadores o caracter-sticas de entidades o relaciones6 E@

0o m(s sencillo es pre"untarse4 para cada entidad $ cada relacin4 ^/u: informacin se /uiere saber de 666I 0a respuesta a esta pre"unta se debe encontrar en las especificaciones de re/uisitos6 Pero4 en ocasiones4 ser( necesario pre"untar a los usuarios para /ue aclaren los re/uisitos6 %es"raciadamente4 los usuarios pueden dar respuestas a esta pre"unta /ue tambi:n conten"an otros conceptos4 por lo /ue ha$ /ue considerar sus respuestas con mucho cuidado6 &l identificar los atributos4 ha$ /ue tener en cuenta si son simples o compuestos6 Por ejemplo4 el atributo direccin puede ser simple4 teniendo la direccin completa como un solo valor= USan afael >D4 &lma#oraVL o puede ser un atributo compuesto4 formado por la calle ;USan afaelV<4 el n8mero ;U>DV< $ la po(lacin ;U&lma#oraV<6 1l esco"er entre atributo simple o compuesto depende de los re/uisitos del usuario6 Si el usuario no necesita acceder a cada uno de los componentes de la direccin por separado4 se puede representar como un atributo simple6 Pero si el usuario /uiere acceder a los componentes de forma individual4 entonces se debe representar como un atributo compuesto6 2ambi:n se deben identificar los atributos derivados o calculados4 /ue son a/uellos cu$o valor se puede calcular a partir de los valores de otros atributos6 Por ejemplo4 el n8mero de empleados de cada oficina4 la edad de los empleados o el n8mero de inmuebles /ue "estiona cada empleado6 &l"unos dise5adores no representan los atributos derivados en los es/uemas conceptuales6 Si se hace4 se debe indicar claramente /ue el atributo es derivado $ a partir de /u: atributos se obtiene su valor6 %onde ha$ /ue considerar los atributos derivados es en el dise5o f-sico6 Cuando se est(n identificando los atributos4 se puede descubrir al"una entidad /ue no se ha identificado previamente4 por lo /ue ha$ /ue volver al principio introduciendo esta entidad $ viendo si se relaciona con otras entidades6 1s mu$ 8til elaborar una lista de atributos e ir elimin(ndolos de la lista conforme se va$an asociando a una entidad o relacin6 %e este modo4 uno se puede ase"urar de /ue cada atributo se asocia a una sola entidad o relacin4 $ /ue cuando la lista se ha acabado4 se han asociado todos los atributos6 Ha$ /ue tener mucho cuidado cuando parece /ue un mismo atributo se debe asociar a varias entidades6 1sto puede ser por una de las si"uientes causas= K Se han identificado varias entidades4 como director4 s#pervisor $ administrativo4 cuando4 de hecho4 pueden representarse como una sola entidad denominada empleado6 1n este caso4 se puede esco"er entre introducir una jerar/u-a de "enerali#acin4 o dejar las entidades /ue representan cada uno de los puestos de empleado6 K Se ha identificado una relacin entre entidades6 1n este caso4 se debe asociar el atributo a una sola de las entidades $ ha$ /ue ase"urarse de /ue la relacin $a se hab-a identificado previamente6 Si no es as-4 se debe actuali#ar la documentacin para reco"er la nueva relacin6 Conforme se van identificando los atributos4 se les asi"nan nombres /ue ten"an si"nificado para el usuario6 %e cada atributo se debe anotar la si"uiente informacin= K K K 3ombre $ descripcin del atributo6 &lias o sinnimos por los /ue se conoce al atributo6 2ipo de dato $ lon"itud6 EE

K K K K K

Valores por defecto del atributo ;si se especifican<6 Si el atributo siempre va a tener un valor ;si admite o no nulos<6 Si el atributo es compuesto $4 en su caso4 /u: atributos simples lo forman6 Si el atributo es derivado $4 en su caso4 cmo se calcula su valor6 Si el atributo es multievaluado6

>6 %eterminar los dominios de los atributos 1l dominio de un atributo es el conjunto de valores /ue puede tomar el atributo6 Por ejemplo el dominio de los n8meros de oficina son las tiras de hasta tres caracteres en donde el primero es una letra $ el si"uiente o los dos si"uientes son d-"itos en el ran"o de 7 a BBL el dominio de los n8meros de tel:fono $ los n8meros de fa) son las tiras de B d-"itos6 9n es/uema conceptual est( completo si inclu$e los dominios de cada atributo= los valores permitidos para cada atributo4 su tama5o $ su formato6 2ambi:n se puede incluir informacin adicional sobre los dominios como4 por ejemplo4 las operaciones /ue se pueden reali#ar sobre cada atributo4 /u: atributos pueden compararse entre s- o /u: atributos pueden combinarse con otros6 &un/ue ser-a mu$ interesante /ue el sistema final respetara todas estas indicaciones sobre los dominios4 esto es todav-a una l-nea abierta de investi"acin6 2oda la informacin sobre los dominios se debe anotar tambi:n en el diccionario de datos6 D6 %eterminar los identificadores Cada entidad tiene al menos un identificador6 1n este paso4 se trata de encontrar todos los identificadores de cada una de las entidades6 0os identificadores pueden ser simples o compuestos6 %e cada entidad se esco"er( uno de los identificadores como clave primaria en la fase del dise5o l"ico6 Cuando se determinan los identificadores es f(cil darse cuenta de si una entidad es fuerte o d:bil6 Si una entidad tiene al menos un identificador4 es f#erte ;otras denominaciones son padre4 propietaria o dominante<6 Si una entidad no tiene atributos /ue le sirvan de identificador4 es d6(il ;otras denominaciones son hi)o4 dependiente o s#(ordinada<6 2odos los identificadores de las entidades se deben anotar en el diccionario de datos6 @6 %eterminar las jerar/u-as de "enerali#acin 1n este paso ha$ /ue observar las entidades /ue se han identificado hasta el momento6 Ha$ /ue ver si es necesario reflejar las diferencias entre distintas ocurrencias de una entidad4 con lo /ue sur"ir(n nuevas subentidades de esta entidad "en:ricaL o bien4 si ha$ entidades /ue tienen caracter-sticas en com8n $ /ue realmente son subentidades de una nueva entidad "en:rica6 1n cada jerar/u-a ha$ /ue determinar si es total o parcial $ e)clusiva o superpuesta6 E6 %ibujar el dia"rama entidad-relacin E?

9na ve# identificados todos los conceptos4 se puede dibujar el dia"rama entidad-relacin correspondiente a una de las vistas de los usuarios6 Se obtiene as- un es/uema conceptual local6 ?6 evisar el es/uema conceptual local con el usuario

&ntes de dar por finali#ada la fase del dise5o conceptual4 se debe revisar el es/uema conceptual local con el usuario6 1ste es/uema est( formado por el dia"rama entidad-relacin $ toda la documentacin /ue describe el es/uema6 Si se encuentra al"una anomal-a4 ha$ /ue corre"irla haciendo los cambios oportunos4 por lo /ue posiblemente ha$a /ue repetir al"uno de los pasos anteriores6 1ste proceso debe repetirse hasta /ue se est: se"uro de /ue el es/uema conceptual es una fiel representacin de la parte de la empresa /ue se est( tratando de modelar6 esumen 1l dise5o de bases de datos se descompone en tres etapas= dise5o conceptual4 dise5o l"ico $ dise5o f-sico6 1l dise5o conceptual es el proceso por el cual se constru$e un modelo de la informacin /ue se utili#a en una empresa u or"ani#acin4 independientemente del SG+% /ue se va$a a utili#ar para implementar el sistema $ de los e/uipos inform(ticos o cual/uier otra consideracin f-sica6 9n modelo conceptual es un conjunto de conceptos /ue permiten describir la realidad mediante representaciones lin"S-sticas $ "r(ficas6 0os modelos conceptuales deben poseer una serie de propiedades= e)presividad4 simplicidad4 minimalidad $ formalidad6 1l modelo conceptual m(s utili#ado es el modelo entidad-relacin4 /ue posee los si"uientes conceptos= entidades4 relaciones4 atributos4 dominios de atributos4 identificadores $ jerar/u-as de "enerali#acin6 1n la metodolo"-a del dise5o conceptual se constru$e un es/uema conceptual local para cada vista de cada usuario o "rupo de usuarios6 1n el dise5o l"ico se obtiene un es/uema l"ico local para cada es/uema conceptual local6 1stos es/uemas l"icos se inte"ran despu:s para formar un es/uema l"ico "lobal /ue represente todas las vistas de los distintos usuarios de la empresa6 Por 8ltimo4 en el dise5o f-sico4 se constru$e la implementacin de la base de datos sobre un SG+% determinado6 Fa /ue este dise5o debe adaptarse al SG+%4 es posible /ue ha$a /ue introducir cambios en el es/uema l"ico para mejorar las prestaciones a nivel f-sico6 Cada vista de usuario comprende los datos /ue un usuario maneja para llevar a cabo una determinada tarea6 3ormalmente4 estas vistas corresponden a las distintas (reas funcionales de la empresa4 $ se pueden identificar e)aminando los dia"ramas de flujo de datos o entrevistando a los usuarios4 e)aminando los procedimientos4 informes $ formularios4 $ observando el funcionamiento de la empresa6 Cada es/uema conceptual local est( formado por entidades4 relaciones4 atributos4 dominios de atributos4 identificadores $ puede haber tambi:n jerar/u-as de "enerali#acin6 &dem(s4 estos es/uemas se completan document(ndolos en el diccionario de datos6 +iblio"raf-a 0os aspectos sobre el modelo entidad-relacin en donde se incorporan caracter-sticas del modelo entidad-relacin e)tendido4 como las jerar/u-as de "enerali#acin4 se tratan mu$ bien en los te)tos de +atini4 Ceri $ 3avathe ;7BB>< $ Connoll$4 +e"" $ Strachan ;7BB@<6 1stos 8ltimos son los /ue mejor presentan la metodolo"-a del dise5o conceptual4 proporcionando todo tipo de NtrucosN para identificar cada uno de los componentes de un es/uema conceptual6 EB

?. )III Diseo lgico de bases de datos


VIII %ise5o l"ico de bases de datos 1n este cap-tulo se describen los pasos para llevar a cabo el dise5o l"ico6 Fa /ue a/u- se trata el dise5o de bases de datos relacionales4 en esta etapa se obtiene un conjunto de relaciones ;tablas< /ue representen los datos de inter:s6 1ste conjunto de relaciones se valida mediante la normali#acin4 t:cnica /ue se estudia al final del cap-tulo6 Introduccin 1l objetivo del dise5o l"ico es convertir los es/uemas conceptuales locales en un es/uema l"ico "lobal /ue se ajuste al modelo de SG+% sobre el /ue se va$a a implementar el sistema6 .ientras /ue el objetivo fundamental del dise5o conceptual es la complecin $ e)presividad de los es/uemas conceptuales locales4 el objetivo del dise5o l"ico es obtener una representacin /ue use4 del modo m(s eficiente posible4 los recursos /ue el modelo de SG+% posee para estructurar los datos $ para modelar las restricciones 0os modelos de bases de datos m(s e)tendidos son el modelo relacional4 el modelo de red $ el modelo jer(r/uico6 1l modelo orientado a objetos es tambi:n mu$ popular4 pero no e)iste un modelo est(ndar orientado a objetos6 1l modelo relacional ;$ los modelos previos< carecen de ciertos ras"os de abstraccin /ue se usan en los modelos conceptuales6 Por lo tanto4 un primer paso en la fase del dise5o l"ico consistir( en la conversin de esos mecanismos de representacin de alto nivel en t:rminos de las estructuras de bajo nivel disponibles en el modelo relacional6 .etodolo"-a de dise5o l"ico en el modelo relacional 0a metodolo"-a /ue se va a se"uir para el dise5o l"ico en el modelo relacional consta de dos fases4 cada una de ellas compuesta por varios pasos /ue se detallan a continuacin6 K 76 26 C6 >6 D6 @6 E6 K ?6 Construir $ validar los es/uemas l"icos locales para cada vista de usuario6 Convertir los es/uemas conceptuales locales en es/uemas l"icos locales6 %erivar un conjunto de relaciones ;tablas< para cada es/uema l"ico local6 Validar cada es/uema mediante la normali#acin6 Validar cada es/uema frente a las transacciones del usuario6 %ibujar el dia"rama entidad-relacin6 %efinir las restricciones de inte"ridad6 evisar cada es/uema l"ico local con el usuario correspondiente6 Construir $ validar el es/uema l"ico "lobal6 .e#clar los es/uemas l"icos locales en un es/uema l"ico "lobal6 ?A

B6

Validar el es/uema l"ico "lobal6

7A6 1studiar el crecimiento futuro6 776 %ibujar el dia"rama entidad-relacin final6 726 evisar el es/uema l"ico "lobal con los usuarios6

1n la primera fase4 se constru$en los es/uemas l"icos locales para cada vista de usuario $ se validan6 1n esta fase se refinan los es/uemas conceptuales creados durante el dise5o conceptual4 eliminando las estructuras de datos /ue no se pueden implementar de manera directa sobre el modelo /ue soporta el SG+%4 en el caso /ue nos ocupa4 el modelo relacional6 9na ve# hecho esto4 se obtiene un primer es/uema l"ico /ue se valida mediante la normali#acin $ frente a las transacciones /ue el sistema debe llevar a cabo4 tal $ como se refleja en las especificaciones de re/uisitos de usuario6 1l es/uema l"ico $a validado se puede utili#ar como base para el desarrollo de prototipos6 9na ve# finali#ada esta fase4 se dispone de un es/uema l"ico para cada vista de usuario /ue es correcto4 comprensible $ sin ambi"Sedad6 76 Convertir los es/uemas conceptuales locales en es/uemas l"icos locales 1n este paso4 se eliminan de cada es/uema conceptual las estructuras de datos /ue los sistemas relacionales no modelan directamente= 7a8 Eliminar las relaciones de m#chos a m#chos< sustitu$endo cada una de ellas por una nueva entidad intermedia $ dos relaciones de uno a muchos de esta nueva entidad con las entidades ori"inales6 0a nueva entidad ser( d:bil4 $a /ue sus ocurrencias dependen de la e)istencia de ocurrencias en las entidades ori"inales6 7b8 Eliminar las relaciones entre tres o m/s entidades< sustitu$endo cada una de ellas por una nueva entidad ;d:bil< intermedia /ue se relaciona con cada una de las entidades ori"inales6 0a cardinalidad de estas nuevas relaciones binarias depender( de su si"nificado6 7c8 Eliminar las relaciones rec#rsivas< sustitu$endo cada una de ellas por una nueva entidad ;d:bil< $ dos relaciones binarias de esta nueva entidad con la entidad ori"inal6 0a cardinalidad de estas relaciones depender( de su si"nificado6 7d8 Eliminar las relaciones con atri(#tos< sustitu$endo cada una de ellas por una nueva entidad ;d:bil< $ las relaciones binarias correspondientes de esta nueva entidad con las entidades ori"inales6 0a cardinalidad de estas relaciones depender( del tipo de la relacin ori"inal $ de su si"nificado6 7e8 Eliminar los atri(#tos m#ltieval#ados< sustitu$endo cada uno de ellos por una nueva entidad ;d:bil< $ una relacin binaria de uno a muchos con la entidad ori"inal6 ?7

7-8 Revisar las relaciones de #no a #no4 $a /ue es posible /ue se ha$an identificado dos entidades /ue representen el mismo objeto ;sinnimos<6 Si as- fuera4 ambas entidades deben inte"rarse en una sola6 7g8 Eliminar las relaciones red#ndantes6 9na relacin es redundante cuando se puede obtener la misma informacin /ue ella aporta mediante otras relaciones6 1l hecho de /ue ha$a dos caminos diferentes entre dos entidades no implica /ue uno de los caminos corresponda a una relacin redundante4 eso depender( del si"nificado de cada relacin6 9na ve# finali#ado este paso4 es m(s correcto referirse a los es/uemas conceptuales locales refinados como es/uemas l"icos locales4 $a /ue se adaptan al modelo de base de datos /ue soporta el SG+% esco"ido6 26 %erivar un conjunto de relaciones ;tablas< para cada es/uema l"ico local 1n este paso4 se obtiene un conjunto de relaciones ;tablas< para cada uno de los es/uemas l"icos locales en donde se representen las entidades $ relaciones entre entidades4 /ue se describen en cada una de las vistas /ue los usuarios tienen de la empresa6 Cada relacin de la base de datos tendr( un nombre4 $ el nombre de sus atributos aparecer(4 a continuacin4 entre par:ntesis6 1l atributo o atributos /ue forman la clave primaria se subra$an6 0as claves ajenas4 mecanismo /ue se utili#a para representar las relaciones entre entidades en el modelo relacional4 se especifican aparte indicando la relacin ;tabla< a la /ue hacen referencia6 & continuacin4 se describe cmo las relaciones ;tablas< del modelo relacional representan las entidades $ relaciones /ue pueden aparecer en los es/uemas l"icos6 7a8 Entidades f#ertes! Crear una relacin para cada entidad fuerte /ue inclu$a todos sus atributos simples6 %e los atributos compuestos incluir slo sus componentes6 Cada uno de los identificadores de la entidad ser( una clave candidata6 %e entre las claves candidatas ha$ /ue esco"er la clave primariaL el resto ser(n claves alternativas6 Para esco"er la clave primaria entre las claves candidatas se pueden se"uir estas indicaciones= K K 1sco"er la clave candidata /ue ten"a menos atributos6 1sco"er la clave candidata cu$os valores no ten"an probabilidad de cambiar en el futuro6

K 1sco"er la clave candidata cu$os valores no ten"an probabilidad de perder la unicidad en el futuro6 K K 7b8 ?2 1sco"er la clave candidata con el m-nimo n8mero de caracteres ;si es de tipo te)to<6 1sco"er la clave candidata m(s f(cil de utili#ar desde el punto de vista de los usuarios6

Entidades d6(iles! Crear una relacin para cada entidad d:bil inclu$endo todos sus atributos simples6 %e los atributos compuestos incluir slo sus componentes6 &5adir una clave ajena a la entidad de la /ue depende6 Para ello4 se inclu$e la clave primaria de la relacin /ue representa a la entidad padre en la nueva relacin creada para la entidad d:bil6 & continuacin4 determinar la clave primaria de la nueva relacin6 7c8 Relaciones (inarias de #no a #no! Para cada relacin binaria se inclu$en los atributos de la clave primaria de la entidad padre en la relacin ;tabla< /ue representa a la entidad hijo4 para actuar como una clave ajena6 0a entidad hijo es la /ue participa de forma total ;obli"atoria< en la relacin4 mientras /ue la entidad padre es la /ue participa de forma parcial ;opcional<6 Si las dos entidades participan de forma total o parcial en la relacin4 la eleccin de padre e hijo es arbitraria6 &dem(s4 en caso de /ue ambas entidades participen de forma total en la relacin4 se tiene la opcin de inte"rar las dos entidades en una sola relacin ;tabla<6 1sto se suele hacer si una de las entidades no participa en nin"una otra relacin6 7d8 Relaciones (inarias de #no a m#chos! Como en las relaciones de uno a uno4 se inclu$en los atributos de la clave primaria de la entidad padre en la relacin ;tabla< /ue representa a la entidad hijo4 para actuar como una clave ajena6 Pero ahora4 la entidad padre es la de Nla parte del muchosN ;cada padre tiene muchos hijos<4 mientras /ue la entidad hijo es la de Nla parte del unoN ;cada hijo tiene un solo padre<6 7e8 =erar0#&as de $enerali;acin! 1n las jerar/u-as4 se denomina entidad padre a la entidad "en:rica $ entidades hijo a las subentidades6 Ha$ tres opciones distintas para representar las jerar/u-as6 0a eleccin de la m(s adecuada se har( en funcin de su tipo ;totalJparcial4 e)clusivaJsuperpuesta<6 76 Crear una relacin por cada entidad6 0as relaciones de las entidades hijo heredan como clave primaria la de la entidad padre6 Por lo tanto4 la clave primaria de las entidades hijo es tambi:n una clave ajena al padre6 1sta opcin sirve para cual/uier tipo de jerar/u-a4 total o parcial $ e)clusiva o superpuesta6 26 Crear una relacin por cada entidad hijo4 heredando los atributos de la entidad padre6 1sta opcin slo sirve para jerar/u-as totales $ e)clusivas6 C6 Inte"rar todas las entidades en una relacin4 inclu$endo en ella los atributos de la entidad padre4 los atributos de todos los hijos $ un atributo discriminativo para indicar el caso al cual pertenece la entidad en consideracin6 1sta opcin sirve para cual/uier tipo de jerar/u-a6 Si la jerar/u-a es superpuesta4 el atributo discriminativo ser( multievaluado6 9na ve# obtenidas las relaciones con sus atributos4 claves primarias $ claves ajenas4 slo /ueda actuali#ar el diccionario de datos con los nuevos atributos /ue se ha$an identificado en este paso6 C6 Validar cada es/uema mediante la normali#acin 0a normali#acin se utili#a para mejorar el es/uema l"ico4 de modo /ue satisfa"a ciertas restricciones /ue eviten la duplicidad de datos6 0a normali#acin "aranti#a /ue el es/uema ?C

resultante se encuentra m(s pr)imo al modelo de la empresa4 /ue es consistente $ /ue tiene la m-nima redundancia $ la m()ima estabilidad6 0a normali#acin es un proceso /ue permite decidir a /u: entidad pertenece cada atributo6 9no de los conceptos b(sicos del modelo relacional es /ue los atributos se a"rupan en relaciones ;tablas< por/ue est(n relacionados a nivel l"ico6 1n la ma$or-a de las ocasiones4 una base de datos normali#ada no proporciona la m()ima eficiencia4 sin embar"o4 el objetivo ahora es conse"uir una base de datos normali#ada por las si"uientes ra#ones= K 9n es/uema normali#ado or"ani#a los datos de acuerdo a sus dependencias funcionales4 es decir4 de acuerdo a sus relaciones l"icas6 K 1l es/uema l"ico no tiene por/u: ser el es/uema final6 %ebe representar lo /ue el dise5ador entiende sobre la naturale#a $ el si"nificado de los datos de la empresa6 Si se establecen unos objetivos en cuanto a prestaciones4 el dise5o f-sico cambiar( el es/uema l"ico de modo adecuado6 9na posibilidad es /ue al"unas relaciones normali#adas se desnormalicen6 Pero la desnormali#acin no implica /ue se ha$a mal"astado tiempo normali#ando4 $a /ue mediante este proceso el dise5ador aprende m(s sobre el si"nificado de los datos6 %e hecho4 la normali#acin obli"a a entender completamente cada uno de los atributos /ue se han de representar en la base de datos6 K 9n es/uema normali#ado es robusto $ carece de redundancias4 por lo /ue est( libre de ciertas anomal-as /ue :stas pueden provocar cuando se actuali#a la base de datos6 K 0os e/uipos inform(ticos de ho$ en d-a son mucho m(s potentes4 por lo /ue en ocasiones es m(s ra#onable implementar bases de datos f(ciles de manejar ;las normali#adas<4 a costa de un tiempo adicional de proceso6 K 0a normali#acin produce bases de datos con es/uemas fle)ibles /ue pueden e)tenderse con facilidad6 1l objetivo de este paso es obtener un conjunto de relaciones /ue se encuentren en la forma normal de +o$ce-Codd6 Para ello4 ha$ /ue pasar por la primera4 se"unda $ tercera formas normales6 1l proceso de normali#acin se describe en el apartado E6C6 >6 Validar cada es/uema frente a las transacciones del usuario 1l objetivo de este paso es validar cada es/uema l"ico local para "aranti#ar /ue puede soportar las transacciones re/ueridas por los correspondientes usuarios6 1stas transacciones se encontrar(n en las especificaciones de re/uisitos de usuario6 0o /ue se debe hacer es tratar de reali#ar las transacciones de forma manual utili#ando el dia"rama entidad-relacin4 el diccionario de datos $ las cone)iones /ue establecen las claves ajenas de las relaciones ;tablas<6 Si todas las transacciones se pueden reali#ar4 el es/uema /ueda validado6 Pero si al"una transaccin no se puede reali#ar4 se"uramente ser( por/ue al"una entidad4 relacin o atributo no se ha incluido en el es/uema6 D6 %ibujar el dia"rama entidad-relacin 1n este momento4 se puede dibujar el dia"rama entidad-relacin final para cada vista de usuario /ue recoja la representacin l"ica de los datos desde su punto de vista6 1ste dia"rama habr( sido validado mediante la normali#acin $ frente a las transacciones de los usuarios6 @6 %efinir las restricciones de inte"ridad ?>

0as restricciones de inte"ridad son re"las /ue se /uieren imponer para prote"er la base de datos4 de modo /ue no pueda lle"ar a un estado inconsistente6 Ha$ cinco tipos de restricciones de inte"ridad6 7a8 "atos re0#eridos! &l"unos atributos deben contener valores en todo momento4 es decir4 no admiten nulos6 7b8 Restricciones de dominios! 2odos los atributos tienen un dominio asociado4 /ue es el conjunto los valores /ue cada atributo puede tomar6 7c8 Inte$ridad de entidades! 1l identificador de una entidad no puede ser nulo4 por lo tanto4 las claves primarias de las relaciones ;tablas< no admiten nulos6 7d8 Inte$ridad referencial! 9na clave ajena enla#a cada tupla de la relacin hijo con la tupla de la relacin padre /ue tiene el mismo valor en su clave primaria6 0a inte"ridad referencial dice /ue si una clave ajena tiene un valor ;si es no nula<4 ese valor debe ser uno de los valores de la clave primaria a la /ue referencia6 Ha$ varios aspectos a tener en cuenta sobre las claves ajenas para lo"rar /ue se cumpla la inte"ridad referencial6 76 ^&dmite nulos la clave ajenaI Cada clave ajena e)presa una relacin6 Si la participacin de la entidad hijo en la relacin es total4 entonces la clave ajena no admite nulosL si es parcial4 la clave ajena debe aceptar nulos6 26 ^Gu: hacer cuando se /uiere borrar una ocurrencia de la entidad padre /ue tiene al"8n hijoI ! lo /ue es lo mismo4 ^/u: hacer cuando se /uiere borrar una tupla /ue est( siendo referenciada por otra tupla a trav:s de una clave ajenaI Ha$ varias respuestas posibles= o Restrin$ir: no se pueden borrar tuplas /ue est(n siendo referenciadas por otras tuplas6

o 1ropa$ar: se borra la tupla deseada $ se propa"a el borrado a todas las tuplas /ue le hacen referencia6 o An#lar: se borra la tupla deseada $ todas las referencias /ue ten-a se ponen4 autom(ticamente4 a nulo ;esta respuesta slo es v(lida si la clave ajena acepta nulos<6 o 2alor por defecto: se borra la tupla deseada $ todas las referencias toman4 autom(ticamente4 el valor por defecto ;esta respuesta slo es v(lida si se ha especificado un valor por defecto para la clave ajena<6 o No compro(ar: se borra la tupla deseada $ no se hace nada para "aranti#ar /ue se si"ue cumpliendo la inte"ridad referencial6 C6 ^Gu: hacer cuando se /uiere modificar la clave primaria de una tupla /ue est( siendo referenciada por otra tupla a trav:s de una clave ajenaI 0as respuestas posibles son las mismas /ue ?D

en el caso anterior6 Cuando se esco"e propa"ar4 se actuali#a la clave primaria en la tupla deseada $ se propa"a el cambio a los valores de clave ajena /ue le hac-an referencia6 7e8 Re$las de ne$ocio! Cual/uier operacin /ue se realice sobre los datos debe cumplir las restricciones /ue impone el funcionamiento de la empresa6 2odas las restricciones de inte"ridad establecidas en este paso se deben reflejar en el diccionario de datos para /ue puedan ser tenidas en cuenta durante la fase del dise5o f-sico6 E6 evisar cada es/uema l"ico local con el usuario correspondiente

Para "aranti#ar /ue cada es/uema l"ico local es una fiel representacin de la vista del usuario lo /ue se debe hacer es comprobar con :l /ue lo reflejado en el es/uema $ en la documentacin es correcto $ est( completo6 Relacin entre el es0ue1a lgico / los diagra1as de -lu*o de datos 1l es/uema l"ico refleja la estructura de los datos a almacenar /ue maneja la empresa6 9n dia"rama de flujo de datos muestra cmo se mueven los datos en la empresa $ los almacenes en donde se "uardan6 Si se han utili#ado dia"ramas de flujo de datos para modelar las especificaciones de re/uisitos de usuario4 se pueden utili#ar para comprobar la consistencia $ completitud del es/uema l"ico desarrollado6 Para ello= K K Cada almac:n de datos debe corresponder con una o varias entidades completas6 0os atributos en los flujos de datos deben corresponder a al"una entidad6

0os es/uemas l"icos locales obtenidos hasta este momento se inte"rar(n en un solo es/uema l"ico "lobal en la si"uiente fase para modelar los datos de toda la empresa6 ?6 .e#clar los es/uemas l"icos locales en un es/uema l"ico "lobal 1n este paso4 se deben inte"rar todos los es/uemas locales en un solo es/uema "lobal6 1n un sistema pe/ue5o4 con dos o tres vistas de usuario $ unas pocas entidades $ relaciones4 es relativamente sencillo comparar los es/uemas locales4 me#clarlos $ resolver cual/uier tipo de diferencia /ue pueda e)istir6 Pero en los sistemas "randes4 se debe se"uir un proceso m(s sistem(tico para llevar a cabo este paso con :)ito= 76 26 C6 >6 D6 @6 evisar los nombres de las entidades $ sus claves primarias6 evisar los nombres de las relaciones6 .e#clar las entidades de las vistas locales6 Incluir ;sin me#clar< las entidades /ue pertenecen a una sola vista de usuario6 .e#clar las relaciones de las vistas locales6 Incluir ;sin me#clar< las relaciones /ue pertenecen a una sola vista de usuario6 ?@

E6 ?6 B6

Comprobar /ue no se ha omitido nin"una entidad ni relacin6 Comprobar las claves ajenas6 Comprobar las restricciones de inte"ridad6

7A6 %ibujar el es/uema l"ico "lobal6 776 &ctuali#ar la documentacin6 B6 Validar el es/uema l"ico "lobal 1ste proceso de validacin se reali#a4 de nuevo4 mediante la normali#acin $ mediante la prueba frente a las transacciones de los usuarios6 Pero ahora slo ha$ /ue normali#ar las relaciones /ue ha$an cambiado al me#clar los es/uemas l"icos locales $ slo ha$ /ue probar las transacciones /ue re/uieran acceso a (reas /ue ha$an sufrido al"8n cambio6 7A6 1studiar el crecimiento futuro

1n este paso4 se trata de comprobar /ue el es/uema obtenido puede acomodar los futuros cambios en los re/uisitos con un impacto m-nimo6 Si el es/uema l"ico se puede e)tender f(cilmente4 cual/uiera de los cambios previstos se podr( incorporar al mismo con un efecto m-nimo sobre los usuarios e)istentes6 776 %ibujar el dia"rama entidad-relacin final

9na ve# validado el es/uema l"ico "lobal4 $a se puede dibujar el dia"rama entidad-relacin /ue representa el modelo de los datos de la empresa /ue son de inter:s6 0a documentacin /ue describe este modelo ;inclu$endo el es/uema relacional $ el diccionario de datos< se debe actuali#ar $ completar6 726 evisar el es/uema l"ico "lobal con los usuarios

9na ve# m(s4 se debe revisar con los usuarios el es/uema "lobal $ la documentacin obtenida para ase"urarse de /ue son una fiel representacin de la empresa6 3ormali#acin 0a normali#acin es una t:cnica para dise5ar la estructura l"ica de los datos de un sistema de informacin en el modelo relacional4 desarrollada por 16 '6 Codd en 7BE26 1s una estrate"ia de dise5o de abajo a arriba= se parte de los atributos $ :stos se van a"rupando en relaciones ;tablas< se"8n su afinidad6 &/u- no se utili#ar( la normali#acin como una t:cnica de dise5o de bases de datos4 sino como una etapa posterior a la correspondencia entre el es/uema conceptual $ el es/uema l"ico4 /ue elimine las dependencias entre atributos no deseadas6 0as ventajas de la normali#acin son las si"uientes= K K K 1vita anomal-as en inserciones4 modificaciones $ borrados6 .ejora la independencia de datos6 3o establece restricciones artificiales en la estructura de los datos6 ?E

9no de los conceptos fundamentales en la normali#acin es el de dependencia f#ncional6 9na dependencia funcional es una relacin entre atributos de una misma relacin ;tabla<6 Si e son atributos de la relacin 4 se dice /ue es funcionalmente dependiente de ;se denota por < si cada valor de tiene asociado un solo valor de ; e pueden constar de uno o varios atributos<6 & se le denomina determinante4 $a /ue determina el valor de 6 Se dice /ue el atributo es completamente dependiente de si depende funcionalmente de $ no depende de nin"8n subconjunto de 6 0a dependencia funcional es una nocin sem(ntica6 Si ha$ o no dependencias funcionales entre atributos no lo determina una serie abstracta de re"las4 sino4 m(s bien4 los modelos mentales del usuario $ las re"las de ne"ocio de la or"ani#acin o empresa para la /ue se desarrolla el sistema de informacin6 Cada dependencia funcional es una clase especial de re"la de inte"ridad $ representa una relacin de uno a muchos6 1n el proceso de normali#acin se debe ir comprobando /ue cada relacin ;tabla< cumple una serie de re"las /ue se basan en la clave primaria $ las dependencias funcionales6 Cada re"la /ue se cumple aumenta el "rado de normali#acin6 Si una re"la no se cumple4 la relacin se debe descomponer en varias relaciones /ue s- la cumplan6 0a normali#acin se lleva a cabo en una serie pasos6 Cada paso corresponde a una forma normal /ue tiene unas propiedades6 Conforme se va avan#ando en la normali#acin4 las relaciones tienen un formato m(s estricto ;m(s fuerte< $4 por lo tanto4 son menos vulnerables a las anomal-as de actuali#acin6 1l modelo relacional slo re/uiere un conjunto de relaciones en primera forma normal6 0as restantes formas normales son opcionales6 Sin embar"o4 para evitar las anomal-as de actuali#acin4 es recomendable lle"ar al menos a la tercera forma normal6 Pri1era -or1a nor1al 71=#8 9na relacin est( en primera forma normal si4 $ slo si4 todos los dominios de la misma contienen valores atmicos4 es decir4 no ha$ "rupos repetitivos6 Si se ve la relacin "r(ficamente como una tabla4 estar( en 7'3 si tiene un solo valor en la interseccin de cada fila con cada columna6 Si una relacin no est( en 7'34 ha$ /ue eliminar de ella los "rupos repetitivos6 9n "rupo repetitivo ser( el atributo o "rupo de atributos /ue tiene m8ltiples valores para cada tupla de la relacin6 Ha$ dos formas de eliminar los "rupos repetitivos6 1n la primera4 se repiten los atributos con un solo valor para cada valor del "rupo repetitivo6 %e este modo4 se introducen redundancias $a /ue se duplican valores4 pero estas redundancias se eliminar(n despu:s mediante las restantes formas normales6 0a se"unda forma de eliminar los "rupos repetitivos consiste en poner cada uno de ellos en una relacin aparte4 heredando la clave primaria de la relacin en la /ue se encontraban6 9n conjunto de relaciones se encuentra en 7'3 si nin"una de ellas tiene "rupos repetitivos6 3egunda -or1a nor1al 72=#8 9na relacin est( en se"unda forma normal si4 $ slo si4 est( en 7'3 $4 adem(s4 cada atributo /ue no est( en la clave primaria es completamente dependiente de la clave primaria6 0a 2'3 se aplica a las relaciones /ue tienen claves primarias compuestas por dos o m(s atributos6 Si una relacin est( en 7'3 $ su clave primaria es simple ;tiene un solo atributo<4 entonces tambi:n est( en 2'36 0as relaciones /ue no est(n en 2'3 pueden sufrir anomal-as cuando se reali#an actuali#aciones6

??

Para pasar una relacin en 7'3 a 2'3 ha$ /ue eliminar las dependencias parciales de la clave primaria6 Para ello4 se eliminan los atributos /ue son funcionalmente dependientes $ se ponen en una nueva relacin con una copia de su determinante ;los atributos de la clave primaria de los /ue dependen<6 !ercera -or1a nor1al 7+=#8 9na relacin est( en tercera forma normal si4 $ slo si4 est( en 2'3 $4 adem(s4 cada atributo /ue no est( en la clave primaria no depende transitivamente de la clave primaria6 0a dependencia es transitiva si e)isten las dependencias 4 4 siendo 4 4 atributos o conjuntos de atributos de una misma relacin6 &un/ue las relaciones en 2'3 tienen menos redundancias /ue las relaciones en 7'34 todav-a pueden sufrir anomal-as frente a las actuali#aciones6 Para pasar una relacin de 2'3 a C'3 ha$ /ue eliminar las dependencias transitivas6 Para ello4 se eliminan los atributos /ue dependen transitivamente $ se ponen en una nueva relacin con una copia de su determinante ;el atributo o atributos no clave de los /ue dependen<6 =or1a nor1al de (o/ce<Codd 7(C=#8 9na relacin est( en la forma normal de +o$ce-Codd si4 $ slo si4 todo determinante es una clave candidata6 0a 2'3 $ la C'3 eliminan las dependencias parciales $ las dependencias transitivas de la clave primaria6 Pero este tipo de dependencias todav-a pueden e)istir sobre otras claves candidatas4 si :stas e)isten6 0a +C'3 es m(s fuerte /ue la C'34 por lo tanto4 toda relacin en +C'3 est( en C'36 0a violacin de la +C'3 es poco frecuente $a /ue se da bajo ciertas condiciones /ue raramente se presentan6 Se debe comprobar si una relacin viola la +C'3 si tiene dos o m(s claves candidatas compuestas /ue tienen al menos un atributo en com8n6 esumen 1l dise5o de bases de datos consta de tres etapas= dise5o conceptual4 l"ico $ f-sico6 1l dise5o l"ico es el proceso mediante el /ue se constru$e un es/uema /ue representa la informacin /ue maneja una empresa4 bas(ndose en un modelo l"ico determinado4 pero independientemente del SG+% concreto /ue se va$a a utili#ar para implementar la base de datos e independientemente de cual/uier otra consideracin f-sica6 0as dos fases de /ue consta el dise5o l"ico son la construccin $ validacin de los es/uemas l"icos locales para cada vista de usuario4 $ la construccin $ validacin de un es/uema l"ico "lobal6 Cada una de estas fases consta de una serie de pasos6 9n paso importante es la conversin del es/uema conceptual a un es/uema l"ico adecuado al modelo relacional6 Para ello4 se deben hacer al"unas transformaciones= eliminar las relaciones de muchos a muchos4 eliminar las relaciones complejas4 eliminar las relaciones recursivas4 eliminar las relaciones con atributos4 eliminar los atributos multievaluados4 reconsiderar las relaciones de uno a uno $ eliminar las relaciones redundantes6 0os es/uemas l"icos se pueden validar mediante la normali#acin $ frente a las transacciones de los usuarios6 0a normali#acin se utili#a para mejorar el es/uema4 de modo /ue :ste satisface ciertas restricciones /ue evitan la duplicidad de datos6 0a normali#acin "aranti#a /ue el es/uema ?B

resultante est( m(s pr)imo al modelo de la empresa4 es consistente4 tiene la m-nima redundancia $ la m()ima estabilidad6 0as restricciones de inte"ridad son las restricciones /ue se imponen para /ue la base de datos nunca lle"ue a un estado inconsistente6 Ha$ cinco tipos de restricciones de inte"ridad= datos re/ueridos4 restricciones de dominio4 inte"ridad de entidades4 inte"ridad referencial $ re"las de ne"ocio6 Para "aranti#ar la inte"ridad referencial se debe especificar el comportamiento de las claves ajenas= si aceptan nulos $ /u: hacer cuando se borra la tupla a la /ue se hace referencia4 o cuando se modifica el valor de su clave primaria6 +iblio"raf-a 1l dise5o de bases de datos relacionales es un tema de consenso4 coincidiendo la ma$or-a de autores en las tres etapas de dise5o conceptual4 dise5o l"ico $ dise5o f-sico6 Sin embar"o4 los pasos de /ue consta cada una de estas etapas $ la terminolo"-a utili#ada no es mu$ uniforme6 1ste cap-tulo se ha elaborado si"uiendo los pasos /ue se especifican en el te)to de Connoll$4 +e"" $ Strachan ;7BB@<4 combinado con la terminolo"-a de +atini4 Ceri $ 3avathe ;7BB><6

BA

. I@ Diseo -sico de bases de datos


IR %ise5o f-sico de bases de datos

1n este cap-tulo se describe la metodolo"-a de dise5o f-sico para bases de datos relacionales6 1n esta etapa4 se parte del es/uema l"ico "lobal obtenido durante el dise5o l"ico $ se obtiene una descripcin de la implementacin de la base de datos en memoria secundaria6 1sta descripcin es completamente dependiente del SG+% espec-fico /ue se va$a a utili#ar6 1n este cap-tulo se dan una serie de directrices para esco"er las estructuras de almacenamiento de las relaciones base4 decidir cu(ndo crear -ndices $ cu(ndo desnormali#ar el es/uema l"ico e introducir redundancias6 Introduccin 1l dise5o de una base de datos se descompone en tres etapas= dise5o conceptual4 l"ico $ f-sico6 0a etapa del dise5o l"ico es independiente de los detalles de implementacin $ dependiente del tipo de SG+% /ue se va$a a utili#ar6 0a salida de esta etapa es el es/uema l"ico "lobal $ la documentacin /ue lo describe6 2odo ello es la entrada para la etapa /ue viene a continuacin4 el dise5o f-sico6 .ientras /ue en el dise5o l"ico se especifica /u: se "uarda4 en el dise5o f-sico se especifica cmo se "uarda6 Para ello4 el dise5ador debe conocer mu$ bien toda la funcionalidad del SG+% concreto /ue se va$a a utili#ar $ tambi:n el sistema inform(tico sobre el /ue :ste va a trabajar6 1l dise5o f-sico no es una etapa aislada4 $a /ue al"unas decisiones /ue se tomen durante su desarrollo4 por ejemplo para mejorar las prestaciones4 pueden provocar una reestructuracin del es/uema l"ico6 .etodolo"-a de dise5o f-sico para bases de datos relacionales 1l objetivo de esta etapa es producir una descripcin de la implementacin de la base de datos en memoria secundaria6 1sta descripcin inclu$e las estructuras de almacenamiento $ los m:todos de acceso /ue se utili#ar(n para conse"uir un acceso eficiente a los datos6 1l dise5o f-sico se divide de cuatro fases4 cada una de ellas compuesta por una serie de pasos= 2raducir el es/uema l"ico "lobal para el SG+% espec-fico6 %ise5ar las relaciones base para el SG+% espec-fico6 %ise5ar las re"las de ne"ocio para el SG+% espec-fico6 %ise5ar la representacin f-sica6 &nali#ar las transacciones6 1sco"er las or"ani#aciones de ficheros6 1sco"er los -ndices secundarios6 Considerar la introduccin de redundancias controladas6 1stimar la necesidad de espacio en disco6 %ise5ar los mecanismos de se"uridad6 %ise5ar las vistas de los usuarios6 %ise5ar las re"las de acceso6 .onitori#ar $ afinar el sistema6 2raducir el es/uema l"ico "lobal 0a primera fase del dise5o l"ico consiste en traducir el es/uema l"ico "lobal en un es/uema /ue se pueda implementar en el SG+% esco"ido6 Para ello4 es necesario conocer toda la funcionalidad /ue :ste ofrece6 Por ejemplo4 el dise5ador deber( saber= Si el sistema soporta la definicin de claves primarias4 claves ajenas $ claves alternativas6 Si el sistema soporta la definicin de datos re/ueridos ;es decir4 si se pueden definir atributos como no B7

nulos<6 Si el sistema soporta la definicin de dominios6 Si el sistema soporta la definicin de re"las de ne"ocio6 Cmo se crean las relaciones base6 1. Disear las relaciones base para el 3G(D espec-ico 0as relaciones base se definen mediante el len"uaje de definicin de datos del SG+%6 Para ello4 se utili#a la informacin producida durante el dise5o l"ico= el es/uema l"ico "lobal $ el diccionario de datos6 1l es/uema l"ico consta de un conjunto de relaciones $4 para cada una de ellas4 se tiene= 1l nombre de la relacin6 0a lista de atributos entre par:ntesis6 0a clave primaria $ las claves ajenas4 si las tiene6 0as re"las de inte"ridad de las claves ajenas6 1n el diccionario de datos se describen los atributos $4 para cada uno de ellos4 se tiene= Su dominio= tipo de datos4 lon"itud $ restricciones de dominio6 1l valor por defecto4 /ue es opcional6 Si admite nulos6 Si es derivado $4 en caso de serlo4 cmo se calcula su valor6 & continuacin4 se muestra un ejemplo de la definicin de la relacin I3.91+01 con el est(ndar SG026 C 1&21 %!.&I3 pnum &S V& CH& ;D<L C 1&21 %!.&I3 enum &S V& CH& ;D<L C 1&21 %!.&I3 onum &S V& CH& ;C<L C 1&21 %!.&I3 inum &S V& CH& ;D<L C 1&21 %!.&I3 calle &S V& CH& ;2D<L C 1&21 %!.&I3 area &S V& CH& ;7D<L C 1&21 %!.&I3 poblacion &S V& CH& ;7D<L C 1&21 %!.&I3 tipo &S V& CH& ;7< CH1CT;V&091 I3 ;U&W4UCW4U%W4UPW4UVW<<L C 1&21 %!.&I3 hab &S S.&00I32 CH1CT;V&091 +12_113 7 &3% 7D<L C 1&21 %!.&I3 al/uiler &S %1CI.&0;@42< CH1CT;V&091 +12_113 A &3% BBBB<L C 1&21 2&+01 inmueble ; inum I39. 3!2 39004 calle C&001 3!2 39004 area & 1&4 poblacion P!+0&CI!3 3!2 39004 tipo 2IP! 3!2 3900 %1'&902 UPW4 hab H&+ 3!2 3900 %1'&902 >4 al/uiler &0G9I01 3!2 3900 %1'&902 CDA4 pnum P39. 3!2 39004 enum 139.4 onum !39. 3!2 39004 P I.& F T1F ;inum<4 '! 1IG3 T1F ;pnum< 1'1 13C1S propietario !3 %10121 no action !3 9P%&21 cascade4 '! 1IG3 T1F ;enum< 1'1 13C1S plantilla !3 %10121 set null !3 9P%&21 cascade4 '! 1IG3 T1F ;onum< 1'1 13C1S oficina !3 %10121 no action !3 9P%&21 cascade <L 2. Disear las reglas de negocio para el 3G(D espec-ico 0as actuali#aciones /ue se reali#an sobre las relaciones de la base de datos deben observar ciertas restricciones /ue imponen las re"las de ne"ocio de la empresa6 &l"unos SG+% proporcionan mecanismos /ue permiten definir estas restricciones $ vi"ilan /ue no se violen6 Por ejemplo4 si no se /uiere /ue un empleado ten"a m(s de die# inmuebles asi"nados4 se puede definir una restriccin en la sentencia C 1&21 2&+01 de la relacin I3.91+01= C!3S2 &I32 inmueblesZporZempleado CH1CT ;3!2 1RIS2S ;S101C2 enum ' !. inmueble G !9P +F enum H&VI3G C!932;c<[7A<< !tro modo de definir esta restriccin es mediante un disparador ; tri$$er<= C 1&21 2 IGG1 inmueblesZporZempleado !3 inmueble '! I3S1 249P%&21 &S I' ;;S101C2 C!932;c< ' !. inmueble i _H1 1 i6inumQI3S1 21%6inum<[7A< +1GI3 P I32 N1ste empleado $a tiene 7A inmuebles asi"nadosN !00+&CT 2 &3S&C2I!3 13% B2

Ha$ al"unas restricciones /ue no las pueden manejar los SG+%4 como por ejemplo Ua las 2A=CA del 8ltimo d-a laborable de cada a5o archivar los inmuebles vendidos $ borrarlosW6 Para estas restricciones habr( /ue escribir pro"ramas de aplicacin espec-ficos6 Por otro lado4 ha$ SG+% /ue no permiten la definicin de restricciones4 por lo /ue :stas deber(n incluirse en los pro"ramas de aplicacin6 2odas las restricciones /ue se definan deben estar documentadas6 Si ha$ varias opciones posibles para implementarlas4 ha$ /ue e)plicar por/u: se ha esco"ido la opcin implementada6 %ise5ar la representacin f-sica 9no de los objetivos principales del dise5o f-sico es almacenar los datos de modo eficiente6 Para medir la eficiencia ha$ varios factores /ue se deben tener en cuenta= 1rod#ctividad de transacciones! 1s el n8mero de transacciones /ue se /uiere procesar en un intervalo de tiempo6 Tiempo de resp#esta! 1s el tiempo /ue tarda en ejecutarse una transaccin6 %esde el punto de vista del usuario4 este tiempo deber-a ser el m-nimo posible6 Espacio en disco! 1s la cantidad de espacio en disco /ue hace falta para los ficheros de la base de datos6 3ormalmente4 el dise5ador /uerr( minimi#ar este espacio6 0o /ue suele suceder4 es /ue todos estos factores no se pueden satisfacer a la ve#6 Por ejemplo4 para conse"uir un tiempo de respuesta m-nimo4 puede ser necesario aumentar la cantidad de datos almacenados4 ocupando m(s espacio en disco6 Por lo tanto4 el dise5ador deber( ir ajustando estos factores para conse"uir un e/uilibrio ra#onable6 1l dise5o f-sico inicial no ser( el definitivo4 sino /ue habr( /ue ir monitori#(ndolo para observar sus prestaciones e ir ajust(ndolo como sea oportuno6 .uchos SG+% proporcionan herramientas para monitori#ar $ afinar el sistema6 Ha$ al"unas estructuras de almacenamiento /ue son mu$ eficientes para car"ar "randes cantidades de datos en la base de datos4 pero no son eficientes para el resto de operaciones4 por lo /ue se puede esco"er dicha estructura de almacenamiento para iniciali#ar la base de datos $ cambiarla4 a continuacin4 para su posterior operacin6 0os tipos de or"ani#aciones de ficheros disponibles var-an en cada SG+%6 &l"unos sistemas proporcionan m(s estructuras de almacenamiento /ue otros6 1s mu$ importante /ue el dise5ador del es/uema f-sico sepa /u: estructuras de almacenamiento le proporciona el SG+% $ cmo las utili#a6 Para mejorar las prestaciones4 el dise5ador del es/uema f-sico debe saber cmo interact8an los dispositivos involucrados $ cmo esto afecta a las prestaciones= Memoria principal! 0os accesos a memoria principal son mucho m(s r(pidos /ue los accesos a memoria secundaria ;decenas o centenas de miles de veces m(s r(pidos<6 Generalmente4 cuanta m(s memoria principal se ten"a4 m(s r(pidas ser(n las aplicaciones6 Sin embar"o4 es aconsejable tener al menos un DM de la memoria disponible4 pero no m(s de un 7AM6 Si no ha$ bastante memoria disponible para todos los procesos4 el sistema operativo debe transferir p("inas a disco para liberar memoria ; pa$in$<6 Cuando estas p("inas se vuelven a necesitar4 ha$ /ue volver a traerlas desde el disco ; faltas de p/$ina<6 & veces4 es necesario llevar procesos enteros a disco ; s-appin$< para liberar memoria6 1l hacer estas transferencias con demasiada frecuencia empeora las prestaciones6 C1U! 0a CP9 controla los recursos del sistema $ ejecuta los procesos de usuario6 1l principal objetivo con este dispositivo es lo"rar /ue no ha$a blo/ueos de procesos para conse"uirla6 Si el sistema operativo4 o los procesos de los usuarios4 hacen muchas demandas de CP94 :sta se convierte en un cuello de botella6 1sto suele ocurrir cuando ha$ muchas faltas de p("ina o se reali#a mucho sPappin"6 Entrada>salida a disco! 0os discos tienen una velocidad de entradaJsalida6 Cuando se re/uieren datos a una velocidad ma$or /ue :sta4 el disco se convierte en un cuello de BC

botella6 %ependiendo de cmo se or"anicen los datos en el disco4 se conse"uir( reducir la probabilidad de empeorar las prestaciones6 0os principios b(sicos /ue se deber-an se"uir para repartir los datos en los discos son los si"uientes= 0os ficheros del sistema operativo deben estar separados de los ficheros de la base de datos6 0os ficheros de datos deben estar separados de los ficheros de -ndices 0os ficheros con los diarios de operaciones deben estar separados del resto de los ficheros de la base de datos6 Red! 0a red se convierte en un cuello de botella cuando tiene mucho tr(fico $ cuando ha$ muchas colisiones6 Cada uno de estos recursos afecta a los dem(s4 de modo /ue una mejora en al"uno de ellos puede provocar mejoras en otros6 +. "nali,ar las transacciones Para reali#ar un buen dise5o f-sico es necesario conocer las consultas $ las transacciones /ue se van a ejecutar sobre la base de datos6 1sto inclu$e tanto informacin cualitativa4 como cuantitativa6 Para cada transaccin4 ha$ /ue especificar= 0a frecuencia con /ue se va a ejecutar6 0as relaciones $ los atributos a los /ue accede la transaccin4 $ el tipo de acceso= consulta4 insercin4 modificacin o eliminacin6 0os atributos /ue se modifican no son buenos candidatos para construir estructuras de acceso6 0os atributos /ue se utili#an en los predicados del _H1 1 de las sentencias SG06 1stos atributos pueden ser candidatos para construir estructuras de acceso dependiendo del tipo de predicado /ue se utilice6 Si es una consulta4 los atributos involucrados en el join de dos o m(s relaciones6 1stos atributos pueden ser candidatos para construir estructuras de acceso6 0as restricciones temporales impuestas sobre la transaccin6 0os atributos utili#ados en los predicados de la transaccin pueden ser candidatos para construir estructuras de acceso6 2. scoger las organi,aciones de -ic.eros 1l objetivo de este paso es esco"er la or"ani#acin de ficheros ptima para cada relacin6 Por ejemplo4 un fichero desordenado es una buena estructura cuando se va a car"ar "ran cantidad de datos en una relacin al iniciali#arla4 cuando la relacin tiene pocas tuplas4 tambi:n cuando en cada acceso se deben obtener todas las tuplas de la relacin4 o cuando la relacin tiene una estructura de acceso adicional4 como puede ser un -ndice6 Por otra parte4 los ficheros dispersos ;hashin"< son apropiados cuando se accede a las tuplas a trav:s de los valores e)actos de al"uno de sus campos ;condicin de i"ualdad en el _H1 1<6 Si la condicin de b8s/ueda es distinta de la i"ualdad ;b8s/ueda por ran"o4 por patrn4 etc6<4 la dispersin no es una buena opcin6 Ha$ otras or"ani#aciones4 como la IS&. o los (rboles +,6 0as or"ani#aciones de ficheros ele"idas deben documentarse4 justificando en cada caso la opcin esco"ida6 4. scoger los ndices secundarios 0os -ndices secundarios permiten especificar caminos de acceso adicionales para las relaciones base6 Por ejemplo4 la relacin I3.91+01 se puede haber almacenado en un fichero disperso a trav:s del atributo inum6 Si se accede a menudo a esta relacin a trav:s del atributo al/uiler4 se puede plantear la creacin de un -ndice sobre dicho atributo para favorecer estos accesos6 Pero ha$ /ue tener en cuenta /ue estos -ndices conllevan un coste de mantenimiento /ue ha$ /ue sopesar frente a la "anancia en prestaciones6 & la hora de seleccionar los -ndices4 se pueden se"uir las si"uientes indicaciones= B>

Construir un -ndice sobre la clave primaria de cada relacin base6 3o crear -ndices sobre relaciones pe/ue5as6 &5adir un -ndice sobre los atributos /ue se utili#an para acceder con mucha frecuencia6 &5adir un -ndice sobre las claves ajenas /ue se utilicen con frecuencia para hacer joins6 1vitar los -ndices sobre atributos /ue se modifican a menudo6 1vitar los -ndices sobre atributos poco selectivos ;a/uellos en los /ue la consulta selecciona una porcin si"nificativa de la relacin<6 1vitar los -ndices sobre atributos formados por tiras de caracteres lar"as6 0os -ndices creados se deben documentar4 e)plicando las ra#ones de su eleccin6 :. Considerar la introduccin de redundancias controladas 1n ocasiones puede ser conveniente relajar las re"las de normali#acin introduciendo redundancias de forma controlada4 con objeto de mejorar las prestaciones del sistema6 1n la etapa del dise5o l"ico se recomienda lle"ar4 al menos4 hasta la tercera forma normal para obtener un es/uema con una estructura consistente $ sin redundancias6 Pero4 a menudo4 sucede /ue las bases de datos asnormali#adas no proporcionan la m()ima eficiencia4 con lo /ue es necesario volver atr(s $ desnormali#ar al"unas relaciones4 sacrificando los beneficios de la normali#acin para mejorar las prestaciones6 1s importante hacer notar /ue la desnormali#acin slo debe reali#arse cuando se estime /ue el sistema no puede alcan#ar las prestaciones deseadas6 F4 desde lue"o4 la necesidad de desnormali#ar en ocasiones no implica eliminar la normali#acin del dise5o l"ico= la normali#acin obli"a al dise5ador a entender completamente cada uno de los atributos /ue se han de representar en la base de datos6 Por lo tanto4 ha$ /ue tener en cuenta los si"uientes factores= 0a desnormali#acin hace /ue la implementacin sea m(s compleja6 0a desnormali#acin hace /ue se sacrifi/ue la fle)ibilidad6 0a desnormali#acin puede hacer /ue los accesos a datos sean m(s r(pidos4 pero ralenti#a las actuali#aciones6 Por re"la "eneral4 la desnormali#acin de una relacin puede ser una opcin viable cuando las prestaciones /ue se obtienen no son las deseadas $ la relacin se actuali#a con poca frecuencia4 pero se consulta mu$ a menudo6 0as redundancias /ue se pueden incluir al desnormali#ar son de varios tipos= se pueden introducir datos derivados ;calculados a partir de otros datos<4 se pueden duplicar atributos o se pueden hacer joins de relaciones6 1l incluir un atributo derivado depender( del coste adicional de almacenarlo $ mantenerlo consistente con los datos de los /ue se deriva4 frente al coste de calcularlo cada ve# /ue se necesita6 3o se pueden establecer una serie de re"las /ue determinen cu(ndo desnormali#ar relaciones4 pero ha$ al"unas situaciones mu$ comunes en donde puede considerarse esta posibilidad= Com(inar relaciones de #no a #no! Cuando ha$ relaciones ;tablas< involucradas en relaciones de uno a uno4 se accede a ellas de manera conjunta con frecuencia $ casi no se les accede separadamente4 se pueden combinar en una sola relacin ;tabla<6 "#plicar atri(#tos no clave en relaciones de #no a m#chos para red#cir los )oins! Para evitar operaciones de join4 se pueden incluir atributos de la relacin ;tabla< padre en la relacin ;tabla< hijo de las relaciones de uno a muchos6 Ta(las de referencia! 0as tablas de referencia ; loo9#p< son listas de valores4 cada uno de los cuales tiene un cdi"o6 Por ejemplo puede haber una tabla de referencia para los tipos de inmueble4 con las descripciones de estos tipos $ un cdi"o asociado6 1ste tipo de tablas son un caso de relacin de uno a muchos6 1n la relacin I3.91+01 habr( una clave ajena a esta tabla para indicar el tipo de inmueble6 %e este modo4 es mu$ f(cil validar los datos4 adem(s de /ue se ahorra espacio escribiendo slo el cdi"o $ no la descripcin para cada inmueble4 adem(s de ahorrar tiempo cuando se actuali#an las descripciones6 Si las tablas de referencia se utili#an a menudo en consultas cr-ticas4 se puede considerar la introduccin de la descripcin junto con el cdi"o en la BD

relacin ;tabla< hijo4 manteniendo la tabla de referencia para validacin de datos6 "#plicar claves a)enas en relaciones de #no a m#chos para red#cir los )oins! Para evitar operaciones de join4 se pueden incluir claves ajenas de una relacin ;tabla< en otra relacin ;tabla< con la /ue se relaciona ;habr( /ue tener en cuenta ciertas restricciones<6 "#plicar atri(#tos en relaciones de m#chos a m#chos para red#cir los )oins! %urante el dise5o l"ico se eliminan las relaciones de muchos a muchos introduciendo dos relaciones de uno a muchos6 1sto hace /ue apare#ca una nueva relacin ;tabla< intermedia4 de modo /ue si se /uiere obtener la informacin de la relacin de muchos a muchos4 se tiene /ue reali#ar el join de tres relaciones ;tablas<6 Para evitar al"unos de estos joins se pueden incluir al"unos de los atributos de las relaciones ;tablas< ori"inales en la relacin ;tabla< intermedia6 Introd#cir $r#pos repetitivos! 0os "rupos repetitivos se eliminan en el primer paso de la normali#acin para conse"uir la primera forma normal6 1stos "rupos se eliminan introduciendo una nueva relacin ;tabla<4 "enerando una relacin de uno a muchos6 & veces4 puede ser conveniente reintroducir los "rupos repetitivos para mejorar las prestaciones6 2odas las redundancias /ue se introdu#can en este paso se deben documentar $ ra#onar6 1l es/uema l"ico se debe actuali#ar para reflejar los cambios introducidos6 ;. sti1ar la necesidad de espacio en disco 1n caso de /ue se ten"a /ue ad/uirir nuevo e/uipamiento inform(tico4 el dise5ador debe estimar el espacio necesario en disco para la base de datos6 1sta estimacin depende del SG+% /ue se va$a a utili#ar $ del hardPare6 1n "eneral4 se debe estimar el n8mero de tuplas de cada relacin $ su tama5o6 2ambi:n se debe estimar el factor de crecimiento de cada relacin6 %ise5ar los mecanismos de se"uridad 0os datos constitu$en un recurso esencial para la empresa4 por lo tanto su se"uridad es de vital importancia6 %urante el dise5o l"ico se habr(n especificado los re/uerimientos en cuanto a se"uridad /ue en esta fase se deben implementar6 Para llevar a cabo esta implementacin4 el dise5ador debe conocer las posibilidades /ue ofrece el SG+% /ue se va$a a utili#ar6 ?. Disear las Aistas de los usuarios 1l objetivo de este paso es dise5ar las vistas de los usuarios correspondientes a los es/uemas l"icos locales6 0as vistas4 adem(s de preservar la se"uridad4 mejoran la independencia de datos4 reducen la complejidad $ permiten /ue los usuarios vean los datos en el formato deseado6 B. Disear las reglas de acceso 1l administrador de la base de datos asi"na a cada usuario un identificador /ue tendr( una palabra secreta asociada por motivos de se"uridad6 Para cada usuario o "rupo de usuarios se otor"ar(n permisos para reali#ar determinadas acciones sobre determinados objetos de la base de datos6 Por ejemplo4 los usuarios de un determinado "rupo pueden tener permiso para consultar los datos de una relacin base concreta $ no tener permiso para actuali#arlos6 .onitori#ar $ afinar el sistema 9na ve# implementado el es/uema f-sico de la base de datos4 se debe poner en marcha para observar sus prestaciones6 Si :stas no son las deseadas4 el es/uema deber( cambiar para intentar satisfacerlas6 9na ve# afinado el es/uema4 no permanecer( est(tico4 $a /ue tendr( /ue ir cambiando conforme lo re/uieran los nuevos re/uisitos de los usuarios6 0os SG+% proporcionan herramientas para monitori#ar el sistema mientras est( en funcionamiento6 B@

esumen 1l dise5o f-sico es el proceso de producir una descripcin de la implementacin de la base de datos en memoria secundaria6 %escribe las relaciones base $ las estructuras de almacenamiento $ m:todos de acceso /ue se utili#ar(n para acceder a los datos de modo eficiente6 1l dise5o de las relaciones base slo se puede reali#ar cuando el dise5ador conoce perfectamente toda la funcionalidad /ue presenta el SG+% /ue se va$a a utili#ar6 1l primer paso consiste en traducir el es/uema l"ico "lobal de modo /ue pueda ser f(cilmente implementado por el SG+% espec-fico6 & continuacin4 se esco"en las or"ani#aciones de ficheros m(s apropiadas para almacenar las relaciones base4 $ los m:todos de acceso4 bas(ndose en el an(lisis de las transacciones /ue se van a ejecutar sobre la base de datos6 Se puede considerar la introduccin de redundancias controladas para mejorar las prestaciones6 !tra tarea a reali#ar en este paso es estimar el espacio en disco6 0a se"uridad de la base de datos es fundamental4 por lo /ue el si"uiente paso consiste en dise5ar las medidas de se"uridad necesarias mediante la creacin de vistas $ el establecimiento de permisos para los usuarios6 1l 8ltimo paso del dise5o f-sico consiste en monitori#ar $ afinar el sistema para obtener las mejores prestaciones $ satisfacer los cambios /ue se puedan producir en los re/uisitos6

BE

19. @ (ibliogra-a
Captulo anterior: B - IR %ise5o f-sico de bases de datos R +iblio"raf-a

C6 +atini4 S6 Ceri4 S6+6 3avathe ;7BB><6 "ise.o Concept#al de Bases de "atos! Un enfo0#e de entidades%interrelaciones6 &ddison-_esle$ J %-a# de Santos 26 Connoll$4 C6 +e""4 &6 Strachan ;7BB@<6 "ata(ase S stems! A 1ractical Approach to "esi$n< Implementation and Mana$ement &ddison-_esle$ Se"unda 1dicin en 7BB?6 C6H6 %ate ;7BBC<6 Introd#ccin a los Sistemas de Bases de "atos Volumen I4 Guinta 1dicin6 &ddison-_esle$ Iberoamericana Se)ta 1dicin en 7BBD ;en in"l:s4 por &ddison-_esle$< 6 1lmasri4 S6+6 3avathe ;7BBE<6 Sistemas de Bases de "atos! Conceptos f#ndamentales Se"unda 1dicin6 &ddison-_esle$ Iberoamericana 2ercera 1dicin en 7BBB ;en in"l:s4 por &ddison-_esle$< .6H6 'olO4 +6 doellicO ;7BB2<6 'ile Str#ct#res Se"unda 1dicin6 &ddison-_esle$ G6_6 Hansen4 H6V6 Hansen ;7BBE<6 "ise.o Administracin de Bases de "atos Se"unda 1dicin6 Prentice Hall .6H6 Hern(nde# ;7BBE<6"ata(ase "esi$n for Mere Mortals &ddison-_esle$ %evelopers Press

B?

Вам также может понравиться