Diseño de Bases de Datos - Problemas Resueltos

250

Click here to load reader

description

En el libro mediante una colección de 50 problemas se ponen en práctica los conceptos teóricos sobre metodologías de desarrollo de Bases de Datos, análisis conceptual utilizando el modelo E/R, diseño lógico empleando el modelo relacional, teoría de normalización de relaciones y Bases de Datos distribuidas. Cada capítulo incluye una introducción con una panorámica de los aspectos teóricos requeridos para poder resolver los problemas propuestos.

Transcript of Diseño de Bases de Datos - Problemas Resueltos

Page 1: Diseño de Bases de Datos - Problemas Resueltos

ESQUEMACONCEPTUAL

t•

Page 2: Diseño de Bases de Datos - Problemas Resueltos

1217?~-_314049596672~~

9096

ICAPfTUI..O 1: DISEÑO CONCEPTUAl,: MODELO E1R .INTRODUCCIÓN ....................................................................................PROBLEMA 1: HABITANTES y MUNICIPIOS .PROBLEMA 2: CURSOS DE FORMACiÓN .PROBLEMA 3: CAMPEONATO DE AJEDREZ .PROBLEMA 4: ENERGíA ELÉCTRICA ..PROOLI!MA 5: CONFLICTOS BÉLICOS ..PROBLEMA 6: GESTlé)N I)E NÓMINAS ..PROBLEMA 7: ENTORNO DE EJRe'UClóN .PROBLEMA 8: ORGANIZACIONES NO GUBERNAMENTALES ..PROBLEMA 9: ADMINISTRACiÓN I)E FINCAS ..PROBLEMA 10: VENTA DE COCINAS .PROBLEMA JI: ALQUILER DE VEH íCULOS .PROB).EMA 12: EMPRESA NUMISMÁTICA ..

XIIIPRRFACJO , .

XIPRÓIJOGO oo ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• , •••••••••••

,INDICE

••••••••••••••••••••••••••••••••••••••••••••••

Page 3: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••••••••••••••••••••••••••

487fNDJCE AI,FABÉTIC() .

485,

l\lllliIO(;RAFIA .._ .

483

459

459460469

BASES DE DATOS DISTRIBUIDAS ..PROBLEMA 1: BDD SOCIEDADES MÉDICAS .PROBLEMA 2: BDD UNIVERSIDAD CARLOS 111. ..PROBLEMA 3: BDO SERVICIOS INFORMÁTICOS ..PROBLEMA 4: BOD OFICINAS DEL INEM ..

CAPÍTUI.() 5: DISEÑO CON HERRAMIENTAS CASE ..INTRODUCCiÓN .CASO PRÁCTICO 1: BASURA ESPACIAL ..CASO PRÁCTlCO 2: SEGUROS DE AU'rOMÓVIL .

APÉNDI(:E: I.ISTA DE ACRÓNIMOS Y Ar~REvIAl'URAS .

429429440443447452

DISTRJBULDAS .CAPÍTULO 4: DISEÑO .)E BASES I)E nvros REI.ACIONALES

PROBLEMA I0 .405418

PROBLEMA 9 .

fNDICE IX(lRA MA

CAPÍTUI.O 3: NORMALIZACiÓN DE REI.ACIONES........................... 313INl'RODUCCIÓN 313PROBLEMA t 325PROBLEMA 2.......................................................................................... 338I')R()BLBMA 3 1 ••• ,................................................................... 345PR()OLEM¡\4.......................................................................................... 351PROBLEM/\ 5.......................................................................................... 3(..,7PROl3LEMA 6.......................................................................................... 373PROBLEMA 7 383PROBl ...HMA H.......................................................................................... 391

247252258266274281287292298305

,PROBLEMA 1: ('URSOS DE FORMACION .PROBLEMA 1: CAMPEONA'r() DE AJEDREZ ..PROBLEMA 3: ENERGíA ELÉCTRICA .PROBLEMA 4: CONFLIC'rOS BÉLICOS ..PROBLEMA 5: GES"rIÓN DE NÓMINAS .PROBLEMA 6: ENTORNO DE EJECUCIÓN ..PROBLEMA 7: ORGANIZACIONES NO GUBERNAMENTALES .PROBLEMA 8: ADMINISTRACIÓN DE FINCAS ..PROBLEMA 9: GESTIÓN DE HOSPITALES ..PROBLEMA 10: OLIMPIADAS DE INV1ERNO ..

REI ,ACIONAI"ES 247

143

143151159168179190201212223232

2.1. MODELADO REI.ACIONAL .PROBLEMA 1: ALOJAMIENTOS RURALES ..PROBLEMA 2: AVES .PROBLEMA 3: PINACOTECAS .PROBLEMA 4: CASOS DE CORRUPCIÓN ..,PROBLEMA 5: COMISARIA ..PROBLEMA 6: CAMINO DE SANTIAGO ..PROBLEMA 7: PROYEC1'OS DE INVES1'IGACIÓN ..PROBLEMA 8: NAVES ESPACIALES RELACJONAL .PROBLEMA 9: EMPRESA DE l'RABAJO TEMPORAL ..PROBLEMA 1 (): F()ND()S BIBLIOGRÁFICOS ..

2.2. TRANSFORMACI()N DI<:f!:SQUEMAS FJR A ESQUEMAS

125

125INTROOUCCIÓN .

1031 11117

PROBLEMA 13: PARQUES NATURALES ..PROBLEMA 14:GESTIÓN DE HOSPlTALES .PROBLEMA 15:OLIMPIADAS DE INVIERNO .

CAPÍTULO 2: OISEÑO I.ÓGICO: MODELO RELACIONAL .

VIII DISeÑO DE BASES DE DATOS: PROBI.EMAS RESUELTOS

Page 4: Diseño de Bases de Datos - Problemas Resueltos

Asimismo, me siento orgulloso de mi antigua ulumnu tic la I'acultad delnlonnáticu de la Universidad Politécnica de Madrid y uhnra compañera. PalomaManfncz, por '11 capacidad para abordar la coordinación de esta obra cumpagimimlola

•marco.

Por otra parte, e!' muy grato para mí tener la oportunidad de prologar este librorealizado por un grupo de discípulos de mi gran amiga, In profesora doña Adoraciónde Miguel, que tan inesperadamente nos dejó. Con esta obra queda patente que suequipo sigue vivo, continuando su dedicación y esfuerzo y en la dirección que ella les

/)isc'lio de Bases di' Datos: Problentas Resucttos se presenta en el panoramaeditorial corno un instrumento de valiosa ayuda tanto para los estudiantes deInformática como para los profesionales del desarrollo de software que pretendandominar las diversas técnicas requeridas para el Diseño de Bases de Datos. Sus más de50 problemas con su respectiva solución comentada lo convierten en un auténticomanual de auto-aprendizaje de esta disciplina y que complementan a otras obrasdedicadas a los aspectos más teóricos del diseño de Bases de Datos en mayor medida.En definitiva, es éste un libro para trabajar con él en el que se esclarece la praxis. demodo que el lector puede ir adquiriendo un mayor grado de dominio en cada una desus técnicas de una forma amena y sencilla.

'"PROLOG()

••••••••••••••••••••••••• •••••••••••••••••••••

Page 5: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••••••••••••••••••••••••••Dar a conocer el soporte que pueden ofrecer las herramientas CASE en eldesarrollo de bases de datos .

- Abordar la resolución de los problemas de una forma comprensiblejustificando en todo memento las decisiones de diseño.

_ Emplear unos principios metodológicos que ayuden a los analis:a~ ydiseñadores de bases de datos a elaborar esquemas conceptuales y lógicosintentando perder la mínimn semántica.

_ Proporcionar una colección de problernas que sirva al lector para poner enpráctica los conceptos teóricos de análisis. diseño e implementación de basesde datos.

La obra se centra en el diseño de bases de datos desde un punto de vistaeminentemente práctico. Nuestra experiencia docente en la universidad. ha puesto demanifiesto la dificultad a la que se enfrentan los alumnos cuando realizan tareas deanálisis y diseño de bases de datos. Por ello, los objetivos que nos hemos propuesto alescribir este libro son:

PREFACIO

Madrid. 20 de septiembre de 2000

Antonio de Amesrua

Por último. no quisiera finalizar estas líneas sin hacer una pequeña rnenci6n alprofesor don Isidro Ramos, quien desde el Mediterráneo siempre ha tendido la manogenerosa, confiando y apoyando a este grupo que se siente en deuda con él.

con las nuevas responsabilidades del área de Lenguajes y Sistemas Infonnáticos delDepartamento de Informática de la Universidad Carlos IU de Madrid, así corno otrotipo de responsabilidades recientemente adquiridas que se desprenden de su nuevacondición de madre, Enhorabuena.

1)RA MilXIJ DISEÑO DE BASES IJE DA'I OS: I'ROBI.Et-.'lAS RESUfil,TOS

Page 6: Diseño de Bases de Datos - Problemas Resueltos

Es/e libro constituye el complemento teárico a los canüulos 1, 3, 4.v 5ele la presente obra, ya que presenta COII detalle el concepto demodelo de da/os, una metodologia de desarrollo de bases de datos. elmodelado conceptual utilizando el modelo E/R, las reglas detrunsfonnacián de esquemas conceptuales (1 esquemas relacionales. la,

De Miguel. A., Piauini, M. y Marcos. E. (1999). Diseño de bases de datosrelacionales. Ed. Ra-Ma, Madrid.

Este libro constituye el complemento teórico al capítulo 2 de Lapresente obra. ya que presenta los conceptos fundamentales de latecnología de bases de datos, analizando en profundidad el modelorelacional y el lenguaje SQL

De Miguel, A. y Piattini, M. (1999). Fundamentos y modelos de bases de datos.2' ed. Ed. Ra-Ma, Madrid.

OTRAS OBRAS RELACIONADAS

La audiencia a la que va dirigida el libro es muy amplia: alumnos de lasasignaturas de Diseño de Bases de Datos en facultades, escuelas universitarias yescuelas de formación profesional, así como profesionales informáticos que trabajenen el área de bases de datos (analistas, programadores, etc.).

ORIENTACIÓN A LOS LECTORES

Finalmente, el último capítulo incluye dos casos prácticos completos resueltoscon dos herramientas CASE comerciales. Para el primero de ellos se ha utilizado laherramienta CASE ERwin y para el segundo la herramienta Designer 2000 de Oracle.En ambos casos se realiza el desarrollo completo de una base de datos desde la fase deanálisis hasta la implementación en un Sistema de Gestión de Bases de Datoscomercial. El objetivo de estos casos prácticos es mostrar la potencialidad de lasherramientas CASE para ayudar en el desarrollo de Bases de Datos.

El capítulo dedicado a las Bases de Datos distribuidas contiene una introducciónen la que se describen las características y arquitecturas de las Bases de Datosdistribuidas así como los algoritmos de diseño de este tipo de Bases de Datos. Semuestran 4 ejercicios de diseño en los que se construyen los esquemas defragmentación y asignación a partir de las especificaciones del problema

dependencias, cálculo de formas normales y algoritmos de análisis y síntesis, y en unconjunto de 10 ejercicios. Los ejercicios 3, 4, 5 y 6 también fueron propuestos en ellibro Diseño de Bases de Datos Relacionales y aunque se indicaban el resultado finalde la solución no se desarrollaron por completo. Por ello, aprovechamos aquí parapresentar las soluciones completas.

PREFACtO XVe RA MA•••••••••••••••••••••••

El capítulo dedicado a la Nonnalizución de relaciones se estructura en unaintroduccióu tcóricn en la que se mucxtran muy brevemente aspectos del cálculo de las

El capítulo de Diseño Lógico contiene una introducción a modo de recordatoriodel modelo relacional y su notación, reglas de transformación de un esquema E/R a unesquerna relacional y álgebra relacional. A continuación. existen dos bloques deproblemas. El primero engloba 10 ejercicios prácticos de modelado relacional en losque se obtiene el esquema lógico estándar de la BD (grafo relacional) él partir de unconju.l~to de supuestos semánticos que describen el problema junto con el script decreacion de la BI) en SQL-92. Aderruix. se muestran varias consultas CII S(~L-1.)2 yálgebra relacional. El segundo bloque lo forman 10 problemas (cuyos enunciados seresolvieron en el capítulo de Diseño Conceptual) en los que se obtiene un esquemarelacional a partir de un esquema E/R.

Dos de los ejercicios de este capítulo. exactamente los problemas 2 y 14, yafueron propuestos en los apéndices del libro Diseño de Bases de Datos Relacionales,pero no se desarrollaron las soluciones.

El capítulo de Discñ« Conceptual contiene una parte introductoria en la que serecuerdan brevemente los conceptos teóricos y notación del modelo E/R, así cornoalgunas guías metodológicus para la elaboración de las soluciones él los casospropuestos. El resto de este capítulo lo forman 15 ejercicios desglosados cn variospasos; en cada uno ele los cuales se estudiará un conjunto de supuestos scnuinricos quedarán lugar él un suhcsqucma ElR tic [orm a que se irán añadiendo elementos ulsubes.qucrna obtenido cn el paso anterior y así sucesivamente hasta completar elestudio de todos los supuestos semánticos contemplados en el enunciado delproblema. Supondremos ~ue el enunciado constituye una descripción correcta (y casisiempre completa) del Universo del Discurso.

El libro está estructurado cn cinco grandes bloques: Diseño conceptual. DiseñoLógico, Teoría de la Normalización, Bases de Datos distribuidas y Casos Prácticoscornpletos desarrollados con herramientas CASE. La razón de esta división viene dadaporque creernos que esta estructura es la que mejor se ajusta a las fases rnetodológicasy aspectos cruciales (Iel Diseño de Bases de Datos.

CONTENIDOS

Algunos de los ejercicios propuestos provienen de prácticas y exámenespropuestos en nuestras asignaturas de Bases de Datos de las titulaciones de IngenieríaTécnica en Informática de Gestión e Ingeniería Informática de la Universidad Carlos111 de Madrid. en la que los autores son profesores. La idea fue elaborar un texto quefuera el complemento práctico a los libros Diseño de Bases de Datos Relacionales deAdoración de Miguel. Mario Piattini y Esperanza Marcos y Fundamentos y Modelasde Bases de [Jatos de Adoración de Miguel y Mario Piauini. ambos publicados en estamisma editorial.

f) HA MAXIV DISEÑO DE liASES I>F: ()ATOS: PROBI.EMAS RESUELTOS

t •••••••••••••••••••••

Page 7: Diseño de Bases de Datos - Problemas Resueltos

~••••••••••••••••••••••••••••••••••••••••••••••

En la primera propuesta del Modelo E/R, Chcn (1976), se distinguen tan sólo tresclases de objetos: entidades, atributos e interrelaciones. El modelo que se utilizará enla fase de modelado conceptual en los ejercicios de este libro es el modelo ElRextendido que añade al modelo básico un conjunto de constructores que ayudan arecoger mayor semántica del universo del discurso (cardinalidades mínimas ymáximas en las interrelaciones, generalizaciones. dependencia en existencia y en

A. ALGUNAS HEURÍSTICAS PARA LA IDENTIFICACIÓN DE LOSOIS'I'JNrros CONSTRUC1'()RRS

La elaboración de un esquema ElR que recoja la semántica de un determinadoUniverso del Discurso es un proceso creativo para el que no existe un procedimientodefinido. Sin embargo, sí es posible seguir una serie de recomendaciones o heurísticasque nos ayuden en el diseño. Estas recomendaciones no son reglas que siemprefuncionen sino que en algunos casos son adecuadas y en otros no.

Guías metodológicas para abordar la resolución de los problemas

INTRODUCCIÓN

-DISENO CONCEP"rUAL: MODELO E/R

CAPÍTULO 1

Madrid. septiembre de 2000

Los autores

Por último, nos resta agradecer a la editorial Ra-Ma, en especial a José LuisRamírez, su inestimable ayuda.

Deseamos expresar nuestro agradecimiento a nuestras familias y amigos que hansoportado pacientemente nuestras horas extras de trabajo y que nos han ofrecido entodo momento su apoyo incondicional.

Parte del material de esta obra se ha desarrollado en el marco del proyecto'rlc 1999-0215 (PANDORA: Plataforma CASE para el Aprendizaje y Desarrollo deBases de Datos y su Enseñanza vía Internet) subvencionado por la CICYT. Por ello.desearnos mostrar nuestro agradecimiento a la CICYT por la subvención concedida.

También deseamos agradecer a Antonio de Arnescua el apoyo recibido parallevar a término este trabajo así corno a nuestros compañeros del Departamento deInformática de la Universidad Carlos Ill, y a Juan de Dios García y Carmen Sánchczpor su colaboración en la preparación inicial del libro.

Este libro se comenzó unos meses antes de que falleciera Adoración de Miguel.catedrática y responsable del grupo de Bases de Datos Avanzadas del Departamentode Informática de la Universidad Carlos 111de Madrid. Durante todos los años quehemos trabajado juntos, Adoración no sólo nos ha transmitido conocimientos teóricos,inquietudes científicas e interés por la enseñanza, sino también unos valores humanosde gran significación para nosotros. Su gran perseverancia tanto en la labor docentecomo en la investigadora y la coherencia dernostrada a 10 largo de su actividadprofesional han sido para todos nosotros un estímulo que esperarnos no desaparezcanunca de nuestras vidas.

TESTIMONIO DE RECONOCIMIENTO

teoría de la normalizacián y herramientas CASE para el desarrollo debases de datos.

ORA MAXVI DISEÑO DE BASES DI.!DATOS: PROBLEMAS RESUELTOS

Page 8: Diseño de Bases de Datos - Problemas Resueltos

Un constructor que amplia la semántica recogida en una interrelación es larestricción de cardinalidad. Se definen las cardinalidades máximas y mínimas de lase~ltidadcs que particip.an en una interrelación como el número máximo y mínimo deejemplares de una entidad que puede relacionarse con un único ejemplar de la otra. uotras entidades que participan en la interrelación. De Miguel el al. (1999).Gráficamcruc. las restricciones de cardinalidad se representan por una etiqueta, (0, I ).

Finalmcnre. las interrelaciones representan asociaciones del mundo real entreuna () más entidades, Las interrelaciones se caracterizan por su nombre, el grado(número de entidades que participan en la interrelación), el tipo de correspondencia(número máx imo de ejemplares de una entidad asociados él una combinación deejemplares de las otras entidades en la interrelación, que puede ser IóN). Así. en elejemplo de la figura 1.2 se observa que el tipo de correspondencia de la interrelaciónParticipar es l:~,. es decir. un :n~plead{) participa como máximo en un proyecto y enun proyecto participan corno maximo N empleados. Al igual que en las entidades sede~omina . ejemplar: de la interrelación a cada combinación de ejemplares de' lasentidades Interrelacionadas que constituyen una ocurrencia en la interrelación.

Las entidades pueden clasificarse por la fuerza de sus atributos identificadores. esdecir, por su dependencia o no dependencia respecto a otras entidades. Las entidadesfuertes. tienen existencia propia, es decir, poseen identificadores internos quedeterminan de manera única la existencia de sus ocurrencias. Las entidades débilespueden serlo por dos motivos: bien porque su existencia en la SD depende de unaentidad fuerte. bien porque requieran para su identificación de los atributosi~enlificadores (algunas veces llamados atributos externos) de otra entidad, porejemplo, no poseen atributos identificadores internos que permitan la identificación decada una de sus ocurrencias y requieren la presencia de atributos externos. En elprimero de los casos se habla de Dependencia en Existencia y en el segundo deDependencia en ldentificocián',

También es posible recoger otras restricciones semánticas sobre los atributosaparte de las ya mencionadas de atributos Identificadores Principales y Alternativos.Asl, hablamos de atributos obligatorios/opcionales (si un atributo debe tornar o no unvalor), atributos univaluadoslmultivaluadas (si un atributo torna un único valor ovarios). atributos derivados (si su valor se obtiene a partir de otros elementos delesquema ~JR). atributos compuestoslsimples (dependiendo de si un atributo es o no unagregado de otros atributos). /\ su vez, estas restricciones se pueden combinar entre sí(p~eden existir en un esquema EfR atributos multivaluados simples opcionales,univaluados compuestos opcionales, rnultivaluados obligatorios. multivaluadoscompuestos. etc.)

CAPfTUlO 1:DISb~O CONCEIYfUAl: MODELO EJR Jo R...·MA

Figura 1.1. Representación de dominios

Notación adoptada en este libroD cMPL~Al)O

ESlado Civil

EstadosCiviles

o Estado Civil

identificación, etc.). ReaJmente no se trata de un único mod~lo. sino dc una familia ded los dado que cada autor lo especializa y le añade distintos constructores. La

descripción completa de este modelo se encuentra en De Miguel el al. (1999). En esteapartado se expondrán brevemente cuáles son los cons~ructores de los que consta elrnodclo ElR extendido con el fin de facilitar la comprensión de los problemas.

Las entidades son los objetos principales sobre los que dehc. recogerseínformacién y gcneralmente denotan person.as, lugar~s, cosas o eventos de Interés. La:entidades aparecerán reflejadas en el enunciado habitualmente como nombres. A cad,una de las posibles ocurrencias (cada persona, lugar, cosa o evento concreto) de laentidad se le denomina ejemplar.

Los atributos se utilizan para detallar las entidades asignándoles propi~dadesdescriptivas tales como nombre, color y peso. ~~isten dos .ti~os ~e atributos:identificadores Y descriptores. Los primeros se utlJ¡z~n para ~I~tlng~l~rde. maneraúnica cada una de las ocurrencias de una entidad (dlstln~ulendose entreIdentificadores Principales e l~J~nt(fic(/dores A.lternativ~S), nllen.t~as que .I{~~descriptores se utilizan para describir. una ocu~encla de .entldad. ~o s~)I~es pos~bespecificar atributos en la entidades sino también en las Interrel~clon~s (en este casosólo tiene sentido hablar de atributos descriptores y no de Identificadores). Losatributos también aparecerán reflejados en el enunciado. generalmente, como

nombres.

En relación con los atributos también existe el concepto de dominio (conjunto devalores sobre los que se define el atributo). Aunque ~e .pueden representarexpHcitalnente en los esquemas ElR (como se mues~ra en el slg.ulentc apartado do.n~ese reflejan las notaciones) en los problemas de este libro se co~slder~rá que el dominiotoma el mismo nombre que el del atributo. Por ejemplo, la enl1.d~d~;vtPLEADO.p~ed;tener el atributo "Est.ado Civil" definido sobre el dominio Estados Clv~les(compuesto por los valores Soltero. Casado, Viudo, Divorciado) y cuyas dos posiblesrepresentaciones en el esquema EIR se muestran en la figura 1.1.

o RA·M"2 DISEÑO DE BASES DE DATOS: PROBLEMAS RESUELTOS

•••••••••••••••••••••••••••••••••••••••••••••••

Page 9: Diseño de Bases de Datos - Problemas Resueltos

, 011:" llt"¡ht,,, 1<',llIl:<:llIn.:' .It- t:<lIIhnahdad ,,'11 ((1, N"III,I. (l. Nunn), (N"III" NI. (N",,,,. N/IIII!)

•••••••••••••••••••••••••••••••••••••••••••••••

En el ejemplo de la figura 1,3 se muestra una generalización total. es decir noex!~ten EMf'Lt'AD()S que no sean ni INGENIEROS, ni SI!CRE7í\/?/OS' ni7'ECNI('?S; además. es una generalización exclusiva. es decir, un EMPLEA/JO o esINGENIER() o SECRETARIO (l TÉC'NIC'(), pero no puede ser varias cosas a la vez.

Existen otras restricciones semánticas relacionadas con las generalizaciones comoson la totalidad/parcialidad Y la exclusividudlsolapamiento, Si las ocurrencia s de lossubliP?s de una generalización cubren al supertipo (es decir, no hay ocurrencias en elsuperupo que no pertenezcan a ninguno de los subtipos) entonces se trata de unagenerali~aci<Ín total y en caso contrario parcial, Por otro lado, si puede haberocurrcn:"ls, que pertenezcan a más de uno de los subtipos entonces se trata degencrahza~lones con solapamiento; en caso de que los subtipos sean disjuntos se hablade generalizaciones exclusivas,

Figura 1.3. Ejemplo de generalización

f:.:xpl'l'icnc.:ia Ailt,s- f.J(l"lcrh:nciuf_" pecia I¡«(:'ú

Tf!.C'NI(,()Sh('KFrARIOINGENIJo.RO

EMI'I.F.AI)( I

De ..cripcién-Puesto

NI)n\hrr·EnIJ'I)j r~C'1:IÓn-Farn ¡llar

N··En<p

ldcntificarnos que EMPLEADO es una generalización de INGENIEROS/~'(.'RETAI(/() y T6CNIC(), Entonces redistribuimos los atributos entre las entidades:Situamos el identificador "N'l-Erup" y los descriptores genérico); "Nombrc-Emp""D~recci6n-Fa~iliar", "Fecha-Nacimiento", "Descripción-Puesto" y "Salario" en I~ent~da<.lsupertipo EMPLEAD(), ponemos el descriptor específico "Especialidad" en laentidad INGENIERO; ponernos el descriptor específico "Pulsaciones" en la entidad:E'~RETARIC: Y,. ~?rúltimo, ponemos los descriptores específicos "Experiencia" yAños-Experiencia en la entidad TÉCNICO, La figura 1,3 muestra el esquema E/R

resultante,

(c~n idenficador "N°-Elnp" )' descriptores "Nombre-Emp", "Fecha-Nacimiento", "Sa­lario", "Pulsaciones"), TECNICO (con identificador "N°-Et11P" y descriptores"Nornbre-Emp' . "Experiencia", ..Años-de-Experiencia ").

CAP!TULO l : DISEÑO CONCEPTUAL: MODELO EIR sOkAMA

- ---------

En cuanto n las generalizaciones, nos proporcionan un mecanismo de ab,stracciónque permite especializar una entidad (que se denonlin,ará supenipo) ~n subtipos. o loque es igual. generalizar los subtipos en el superupo. ,Oc esta lorma. vernos unconjunto de ocurrencias de una entidad como ocurrencias de otra entidad (COl110sucede también en las jerarquías "es_un" de la~ redes semánticas). Por ejemplo, una. HA' 1" d"Persona" es un "Animal" y un "Reptil" es un "Animal"; en este caso, ru111a pue econsiderarse el supertipo y "Persona" y "Reptil" son subtipos de "Animal", Lasocurrencias o ejemplares de "Persona" lo son también de "Animal" e igual sucede conlas de "Reptil".

Podren1os identificar generalizaciones si encontramos una serie ~e ~tributo~comunes a un conjunto de entidades, Esta situación se da con frecuencia SI se estarealizando un proceso de integración de vistas, De Miguel el al. (1999), Est~satributos comunes describirán al supcrtipo y los atributos particulares permaneceránen los subtipos, Puede ocurrir que los subtipos no ten~an atribulOS, propios: en esecaso, sólo existirán subtipos (aun cuando por recoger mejor la senlán~lca, esto~ puedanreflejarse) ~i éstos van a participar en interrelaciones (aparte de las InterrelaCiones enlas que participe el supcrtipo).

Por cjcmplu, supongamos las siguientes entidad~s id~I~,lificuda:~eon IIn ~nivers()del discurso ele una empresa: I:;MPI.J~AI)V (con idenuñcedor N -Emp y losdcscri ptOI es "Nombrc-Emp". "Di rccción-Fam iliar", "Fecha- Nucimiento". "Dcscri p­

ción-Puesto", "Salario", ..l~)(periencia .. l. INGI{NIERO (con iclentilicador "N°-Emp" ydco;criptorc" "Nombre- EI11p", "Di rccción-Faml liar", "Espcciul idud" l, S/:'( 'RE7/\ RIO

En los enunciados, la aparición de verbos podrá indicarnos, en algunos casos. laexistencia de una interrelación en el esquema E/R.

Figura 1,2, Ejemplo de CClrdÍl,,/lidodes niinimas y máximas

tll.l) en PRUYecrO IIIJlca 4UI' un ~JCnlplar de I~I éllliJ:oJ/ ,\II'L&II)() c.,lá rd.I<"'",t<~1 <1111l'en' () un ejelllpl:u de 1..cnud ..J I'RO)'f'C-1V <,, la IIlll',rd:",i.in /'"rlw'/",r.

(I.Nl en b,\II'/.I:II/)() lIluic .. que .111 ~jCllllllllr de la 1.'lIlulllJI 'OY/;(TO c,I(1 rc1aCIII1HUlu l."" UII<ICImoí, cjcmpl~rc' de lacllud:..1J:f>II'/J0\/)() en 1.IIIIII'II~hll'"m/'"!110/N".

I'ROyEl-IX) Et.11'1.EAI)()

I:N

(1.1). (D.N) o (I.N)!. situada en la línea que conecta la entidad con el rombo querepresenta el tipo de interrelación (ver figura 1.2).

() RA·MA~ DISENO I>E LIASES DE DATOS: PROULEMAS RESUEI.TOS

Page 10: Diseño de Bases de Datos - Problemas Resueltos

I F.n el MndL'lo Relacionaí, Clave 1'(1mari a

• Entidad (fuerte)

ENTIOAD I• Entidad débil

-

I RNTII)AD _]

• Identificador Principal (IP)'

~ con~i~uaci~n se mues~a~ las convenciones seguidas en los problemas para larepresentación grafica de los distintos constructores de un diagrama E/R.

Notaciones

Al~n cuando la. nominalización puede resultar útil en un proceso de diseñoconlple~o, en especial para tratar de reducir el grado de una interrelación muycompleja ~ para encontrar elementos de interés para el sistema que inicialmente no sehabían tenido en cuenta, en nuestro caso. evitaremos las nominalizaciones que no see~cuentran presentes en los enunciados o que no resultan evidentes en el Universo delDiscurso.

Lo habitual es no tener problemas en la diferenciación entre entidades eint~rrelaciones .. Las interrelaciones asocian una o varias entidades, mientras que lasentl~ade.s n~., Sin enlb~rgo, en cuaJ~uier interrelación puede realizarse un proceso denominalización. Por ejemplo, mediante una nominalización puede convertirse "loshombres se casan con mujeres" en "los hombres y mujeres forman matrimonios". Así,se ha sustantivado una interrelación y al introducir un nuevo concepto, se haconvertido en una entidad.

Entidades vs. interrelaciones•

e~tida~ EMPLEADO. En el ejemplo "Un profesor se caracteriza por su nombre, DN1,dirección y los campus en los que imparte docencia"; en este caso el atributo"~ampus" también podría. s~r un atributo multivaluado de la entidad PROFESOR pero~I cXIste~ sup~e.stos adicionales en el universo del discurso que nos indicaninformación adicional para describir un campus y además se relaciona con otrasentidades (por ejemplo, DEPARTAMENTO, AVLARIO, etc.) entonces debe reflejarsecomo una entidad.

CAPíTULO 1: DISEÑO CONCEPTUAL: MODELO EIR 7ORA·MA

••••••••••••••••••••••••

Entidades vs. atributos mullivaluudos

En este aspecto existen discrepancias. Ilay propuestas que .prclicrcn incorporar enlos esquclllas H/R un atributo multivaluado cOlnn. una enllda~ y otras pre~erenrepresentarlo corno un atributo. En nuestro caso, COI~IIH.ler~lld.cncla tic que el alr,lbutosea simple 1) compuesto. si se sabe que tendrá un numero IlIn.llado.y no muy elevadode ocurrencias. entonces formará parte de la entidad que descri he (siempre y cuando elconcepto que representa no esté relaci~nado con otras entidadc« del e~qu:IlIa. EIR~:Unejemplo puede ..el' "De un ernpl~ado I~tere~~ al~acenar su ,~Nl. nOlnb.r~, d~recclon yteléfono ...": en e ...te ceso el atributo Teléfono es un atributo rnultl\aluado de la

Por ejemplo, en el supuesto "los Almacenes se localizan e~ Ciudades". ~i existealguna información descriptiva sobre el Estado y la Población de .Ias Clud~des.entonces Ciudad debería clasificarse corno entidad. Si sólo se. necesl,,~ el atributo"Nombre Ciudad" para identificar una ciudad, entonces deberla claSIficarse corno

"tributo.

Por otro lado, podría ocurrir que aún teniendo un concepto para el que sólo existeun Identificador Principal. éste se relacione con más de una en~ldad. En es~ cas~podría aparecer corno una entidad en el. esquema E/R. En .el cJ.elnplo ~nlenor, SIexistiera 011'0 supuesto "los proveedores llenen asignados vanas ~Iudades , ento~cespodría dejarse Ciudad como entidad relacionada .con las entidades Almacén yProveedor o bien dejarse corno atributos en ambas entidades.

las entidades pOSl'1'1linjonnacián descriptiva y los atributos /la

Los atributos no tienen existencia por sí mismos sino que tienen sentido en cuantoa que pertenecen a una determinada entidad o inlerrelac~ón. Una e~tida~ ~ebe e~t~rcaracterizada por algo más que su Identificador Pn_nclpal.. SI existe Intormaclo~descriptiva sobre un concepto u objeto, entonces deb:na claslfi:arse ~orno entidad. SIsólo se necesita un identificador para un objeto, el objeto deben a clasificarse como unatributo. Así,

Entidades vs. atributos

Aunque es sencillo definir los constructores de entidad. atributo e interrelación,no es tan sencillo distinguir su papel en el modelado de 81). ¿Qué es lo qu_c~ace queun concepto sea un atributo. una entidad o una interrelación?; en este cas~ ~Inlcalnentese podrá recurrir también a una serie d~ heurísticas q~e nos ayuden a d.ccldlr :ntre unode los constructores que pueden reflejar la semántica de un detcrlTllnado concepto.Algunas de ellas se describen a continuación.

ECCIÓN EN'fRE VARIOSB. ALGUNAS HEURÍSTICAS PARA LA ELCONSTRUCTORES

o RA·MIIh DISEÑO DE BASES DE DI\TOS: PKOBLEMAS RESUeLTOS

••••••••••••••••••••••

Page 11: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••••••••

• Jerarquía solapada y total

Jerarquía solapada y parcial (sin ninguna restricción)•

N.. IlIhrc1)(l"liJlll'

• Dominio

Interrelación con dependencia en Identificación

Interrelación con Dependencia en Existencia•

• Interrelación

CAPíTULO 1:DISEÑOCONCEI'TUAL: MODELOElR 9ORAMA

11'".,1 t-hllkl" RclallCIl1al. Clave All~.'n~liva 'ti" :,'n' 01,'" "iv""lún•••••••••••••••••~••

IEtiquetnAtributo Dcrivado\•

,,,Q

Atributo Opcional•

Atributo Multivaluado COlnpucsto•

• Atributo

rldcnti ficador Altemat ivo (1A) I•i

ORA MA¡¡ DISEÑODE BASES I)E DATOS: PROBLeMAS RESUELTOS

I• Atributo Multivaluado •

t• Atributo Compuesto

Page 12: Diseño de Bases de Datos - Problemas Resueltos

..E~1aaproximacién se urili71lr:Íen el PIirner ejercicio de este terna.

4. En este último paso se refina el esquema JlIR del paso anterior estudiando lasposibles redundancias siempre y cuando existan ciclos con interrelaciones

3. Utilizando la matriz de entidades se construye un primer esquema ElR con lasentidades, atributos, interrelaciones y sus tipos de correspondencia. A esteesquema se le añaden las cardinalidades mínimas y máximas.

En la elaboración de esta matriz es posible detectar interrelaciones que noaparecen explícitamente representadas en el enunciado y que, sin ernbargo,podría resultar interesante que se recogieran en el esquema EIR. Este tipo deinterrelaciones se detectan, generalmente, por sentido común, aunque seríanecesario siempre validarlas con el usuario.

Las entidades son EJ. E2, ..., lEN Y las interrelaciones son 1l. 12..... IN. Cornola matriz es simétrica. las celdas que aparecen con una cruz se correspondencon interrelaciones que ya están especificadas en la otra mitad de la matriz. Elsfrnbolo -- en una celda indica que no existe interrelación entre las dosentidades referenciadas. Además. habría que indicar los tipos decorrespondencia de cada interrelación. Por ejemplo, 11 podría ser unainterrelación 1:N. Es importante destacar que esta matriz no recoge lasinterrelaciones de grado superior a dos.

EN...

E2

El

El E3 ENE2

2. Construir una Matriz de Entidades en la que las lilas y las columnas sonnombres de entidades y cada celda puede contener o no nombres deinterrelaciones. Esta matriz tiene el siguiente aspecto:

l. Estudiar el enunciado que describe el Universo del Discurso y elaborar doslistas; una con los candidatos a ser entidades y otra con las posiblesinterrelaciones junio con su tipo de correspondencia (1: l. I :N, N:M). Además,se especificarán aquellos conceptos dudosos que no se sabe cómo representar(si corno entidad o como interrelación).

metodología de realización de un esquema conceptual que tiene en cuenta estosaspectos constaría de los siguientes pasos":

•••••••••••••••••••••••o R....M¡\ CI\PITULO 1:DISeÑOCONCEPTUAL: MODELO fJR II

A veces también se suele recurrir a otro tipo de herramientas que nos ayudan adetectar infonnación que no aparece explícitamente representada en el enunciado yque resultan tic gran utilidad a los diseñadores inexpertos. Así, una propuesta de

En nuestro caso se identificarán todos los elementos (entidades, atributos,interrelaciones, cardinalidades, etc.) por cada conjunto de supuestos semánticosanalizados. Ello puede irnplicar que algunos conceptos se representen en los primerospasos con determinados constructores y que posteriormente, en sucesivos pasos, losnuevos supuestos semánticos analizados nos proporcionen información adicional quemodifique alguno de los constructores seleccionados. Por ejemplo, podría ocurrir queun deterrninado concepto se representara en una primera aprox imación corno unatributo y que según se avanza en el análisis de los supuestos del enunciado sedescubra que debe representarse corno una entidad.

Una aproximación utilizada habitualmente en la construcción de esquemas EIR esidentificar primero las entidades, luego las interrelaciones y por último los atributos delas entidades e interrelaciones.

A fin de faci litar la comprensión de las soluciones propuestas a los problemas demodelado, cada problema se desglosará arbitrariamente en varios pasos. En cada pasose estudiará un conjunto de supuestos semánticos que darán lugar a un subesqucmaE/R. En cada paso se irán añadiendo elementos al subesquema obtenido en el pasoanterior y así sucesivamente hasta completar el estudio de todos los supuestossemámicos contemplados en el enunciado del problema. Supondremos que elenunciado constituye una descripción correcta (y casi siempre completa) del Universodel Discurso.

Cómo se estructuran los problemas

• Jerarquía exclusiva y total

• Jerarquía exclusiva y parcial

10 DISEÑO DE BI\SES DE I)I\1'OS: PROBLEMAS RESUELTOS•••••••••••••••••••••••

Page 13: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••••••••••••••••••••••••••

• Una PERSONA sólo puede tener un cabeza de familia y un cabeza de familiapuede serlo de varias PERSONAS

interrelación C.F. (1 :N) entre PERSONA y PERSONA

• Un MUNICIPIO puede tener muchas VIVIENDAS y una VIViENDApertenece a un solo MUNICIPIO.

• interrelación Está_En (N: 1) entre MLINICIPIO y VIVIENDA

interrelación Habita (1 :N) entre P/~RSONA y VIVIENDA

• Una VIVIENDA puede ser PROPIEDAD de muchas PERSONAS (supuestolegal)

interrelación Propiedad (M:N) entre PERSONA y VIVIENDA

• En una VIVIENDA pueden HABI1'AR muchasPERSONAS (supuesto lógicodel Inundo real)

B) Supuestos no dados en el enunciado:

interrelación Empadronada (1 :N) entre PERSONA y MUNICIPIO

• Una PERSONA está empadronada en un único MUNICIPro.

(interrelación C.F. (?:'?) entre PERSONA y PERSONA)

• Las PERSONAS dependen del cabeza de familia

(interrelación Propiedad (?:N) entre PERSONA y VIVIENDA)

• Cada PERSONA puede ser PROPIE'fARIA de más de una VIVIENDA

(interrelación Habita (1 :?) entre PI~'RSONA y VrVIENf)A)

• Cada PERSONA sólo puede HABrrAR en una VIVIENDA

A) Supuestos dados en el enunciado:

• 20 paso: Construir una matriz Entidades/Entidades para representar todas lasinterrelaciones junto con su tipo de correspondencia. Para ello. iremos analizandolos supuestos semánticos explícitamente representados en el enunciado, así comolos que están implícitos o son de sentido común.

Familia, pues en realidad es también una Persona. Dejaremos la clasificación deeste concepto para el siguiente paso.

CAPíTULO 1: I)ISEÑO CONCEPTUAL: MODELO FJR 13e RA·MA

MUNICIPIO

VIVIENI)/\

PERS()NA

Habita entre PERSONA y VIVIENDA

Empadronada entre PERSONA y MlJNICII"/O

Propiedad entre PERSONA y VIVIENf)A

¿CABEZA DE FAMILIA?

Las entidades e inrcrrelaciones anteriores están explícitamente representadas en elenunciado. En principio. no sabemos cómo representar el concepto Cabeza de

Interrelaciones:Entidades:

• I'" paso: Elaborar las listas de conceptos candidatos a ser entidades einterrelaciones e indicar también los conceptos que no se sabe cómo catalogar. Laslistas obtenidas son:

Para la resolución de este ejercicio se seguirán los pasos indicados al final de lasección 3 de la introducción. en la que se exponía una guía metodológica paradiseñadores inexpertos.

Discusión del enunciado

Supongamos el siguiente universo del discurso sobre municipios. viviendas ypersonas. Cada persona sólo puede habitar en una vivienda y estar empadronada en unmunicipio. pero puede ser propietaria de varias viviendas. Nos interesa tambiénconocer las personas que dependen del Cabeza de Familia (C.F.). Se indicarán lossupuestos semánticos que se consideren oportunos para justificar todas las decisionesde diseño.

Enunciado

PROBI~EMA 1: HABll'ANTES yMUNICIPIOS

semánticamente equivalentes. Existe redundancia en un esquema E/R cuandola misma semántica se recoge de manera duplicada. por lo que ese esquemapodría representarse manteniendo la misma semántica con menos elementos.En general, puede haber redundancia cuando existen ciclos en un esquemaFJR (varias entidades unidas por varias interrelaciones relacionadassemánticamente formando un ciclo). En este caso. habría que comprobar sieliminando una interrelación, la semántica representada en ella puedeobtenerse mediante las interrelaciones restantes. Para ello. hay que estudiardetalladamente las cardinalidades de las interrelaciones y hacer lacomprobación tanto en un sentido como en el otro. Este proceso se describe enDe Miguel et al. (1999). Se mostrará algún ejemplo en los ejercicios de estecapítulo.

o RA.M/\12 DISEÑO DE BASES Oc DATOS: PROBLEMAS RESUE1.TQS

Page 14: Diseño de Bases de Datos - Problemas Resueltos

1 SUpOllCIll0S que las personas habitan en l0' IIIUIlICiplOSen los que están empadronadas.,

• 5° paso: Análisis de redundancias. Cumo existen dos ciclos en el esquema ElRhay que estudiar si existe alguna interrelación redundante, es decir, si hay algunainterrelación cuya sernántiea pueda obtenerse a partir de las otras interrelaciones.

El prirner ciclo lo constituyen las interrelaciones Propiedad, Está_En yEmpadronada. La primera condición para saber si tenemos un ciclo en el quehaya alguna interrelación susceptible de ser redundante es que las tresinterrelaciones estén semánticamente relacionas. En este caso la interrelaciónPropiedad no es semánticamente equivalente a Está_En y Empadronada, puestoque el poseer o no una vivienda no influye en si la persona reside en el municipioen el que se encuentra la vivienda.El segundo ciclo lo constituyen las interrelaciones Habita, Está_En y Empadro­nada. En este caso las tres interrelaciones están semánticamente relacionadas",Veamos si alguna de estas interrelaciones es redundante:

Interrelación Habita: Si intentamos eliminar la interrelación Habita debe serposible obtener su semántica a partir de Está_En y Empadronada; así, si que­remos obtener las personas que habitan en una determinada vivienda, a partir deEstá_En se obtiene el municipio en el que se encuentra la vivienda y con lainterrelación Empadronada se obtienen las personas que habitan en ese muni­cipio. pero no sabernos las personas que habitan en la vivienda sino las quehabitan en todas las viviendas del municipio, Por ello, la interrelación Habita nose puede eliminar,

Figura 1.6. Esquema E/R con restricciones de cardinalidad

N: I

( 1.1) (O.n)

MUNICIPIO( 1,1)

I :N

( 1.1)(1).0)(0,0)

PERSONA(1.0)

( 1.1) I:NIN(0.0)

La figura 1.6 muestra el diagrama FlR con las cardinalidades máximas y míni­mas.

• Interrelación Está_En: Una VIVIENDA está en un único MUNICIPIO yen unMUNICrPIO hay, como mfnimo, una VIVIENDA

• Interrelación Empadronada: Una PERSONA está empadronada COrnomínimo en un MUNICIPIO (y corno máximo también) yen un MUNICIPIOcomo mínimo está empadronada una PERSONA.

• Interrelación Propiedad: Una PERSONA puede que no sea propietaria deninguna VIVIENIJA y una VIVIENDA puede que no sea propiedad de ningunaI'ERS()NA (una vivienda podría ser propiedad de una empresa, por ejemplo).

• Interrelación Habita: Una PERSONA habita como mínimo en una VrVIENDAyen una VIVIENf)A puede que no habite ninguna PERSONA.

• Interrelación C.F.: Una PERSONA tiene obligatoriarnente como mínimo unaPERSONA que es Cabeza de Familia y una PERSONA que es Cabeza deFamilia puede que no tenga ninguna persona a su cargo.

• 4" paso: Análisis de las cardinalidades mínimas. Hasta ahora se han estudiado sólolas cardinalidades máximas de las interrelaciones. A continuación, se estudiaránlas cardinalidades mínirnas.

Figura /.5. Yersián preliminar del esquema ElR

N'I

VIVIENDA

I :N

PERSONA

I:NI :N

• 3" paso: Obtener una versión preliminar del esquema E/R. En la figura 1.5 semuestra una primera versión del Esquema fJR correspondiente a los supuestosmencionados.

Figura / .4. Mutri; de entidades/entidades

PERSONA MUNICIPIO I'IVII:N/)AI'rH.WJNA e.•.(I NI Rmpad ro ....d. (1:N) lI.bllo (1 NI

I'nlpiedad(N MI

IoIUNICIPIO . t:'la E.., (N 11

VIVIf.NOA

La matriz obtenida se muestra en la figura 1.4.

o RII·Mi\14 DISEÑO DE !JASES DE DATOS: PROBLEMAS RESUELTOS•••••••••••••••••••••••

Page 15: Diseño de Bases de Datos - Problemas Resueltos

~••••••••••••••••••••••••••••••••••••••••••••••

..La empresa organiz« cursos internos de /01'1I/(I("i611 de los que se deseaCOIlO('er el códigQ de Curso. el nombre, 111/0descripríán, el IIlílllero de horasde duracián y el coste del curso ...

Discusión del enunciado

Un mismo empleado puede ser docente en una edición de un curso y alumno enotra edición. pero nunca puede ser ambas cosas a la vez (en una misma edición decurso o lo imparte o lo recihe).

De los empleados se desea almacenar su código de empicado, nombre yapellidos. dirección. teléfono, Nlr (Número de Identificación Fiscal), fecha denacimiento, nacionalidad, sexo, firma y salario. así corno si está o no capacitado paraimpartir cursos.

Los cursos se imparten por personal de la propia empresa.

Un mismo curso tiene diferentes ediciones. es decir. se imparte en diferenteslugares. fechas y con diferentes horarios (intensivo. de mañana o de tarde). En unamisma fecha de Inicio sólo puede impartirse una edición de un curso.

Un curso puede tener corno prerrequisiro haber realizado otrots) previamente, y, asu vez la realización de un curso puede ser prcrrequisito de otros. Un curso que es unprerrcquisito de otro puede serlo de forma obllgatoria o sólo recomendable.

La empresa organiza cursos internos de formación de los que se desea conocer elcódigo de curso, el nombre, una descripción, el número de horas de duración y el costedel curso.

El departamento de formación de una empresa desea construir una base de datospara planificar y gestionar la formación de sus empleados.

Enunciado

PROBLEMA 2: CURSOS DE FORMACIÓN

Toda la semántica del problema ha sido reflejada. y no ha sido necesario realizarsupuestos adicionales.

SUPUESTOS SEMÁNTICOS COMPLEJ\lfENTARIOS y SEMÁNTICA NOREFLEJADA

~O:.::R~A.!:!MA::._ ~C'!.!/\~l'j:.:.1!.:lI:..::1.0~1: DISEÑO CONCEPTUAL: MODEI_O EIR 17

¡:igura /.7. Esquema ElR sin redundancias

N: 1( I.n)

VIVIENDA

(O.n)( 1.1)

1:N

(0.11 )(0.11)

PERSONA

1:N(1.1) (0.11)

Interrelación Está_En: Si intentamos suprimir la interrelación Está_En debe serposible obtener su semántica a partir de las interrelaciones Habita y Empadro­nada. Para conocer las viviendas que se encuentran en un determinado rnunieipio.a partir de Empadronada obtenemos todas las personas empadronadas en esemunicipio y mediante la interrelación Habita obtenemos las viviendas en las quehabitan esas personas (pues una persona obligatoriamente debe habitar en unavivienda); de esta terma. sabremos las viviendas de ese municipio. En el otrosentido de la interrelación Está_En, para conocer en qué municipio está unadeterminada vivienda. a partir de Habita obtenemos las personas que habitan enella: sin embargo, puede ocurrir que en una determinada vivienda no habite nadie(cardinalidad mínima O). por lo que no podemos alcanzar la interrelaciónEmpadronada entre persona y municipio. Así. la interrelación Está_En no esredundante.Interrelaciún Empadronada: Si eliminamos la interrelación Empadronada.debería ser posible obtener su semántica a partir de Habita y Está_En. Para cono­ccr el municipio en que está empadronada una persona, mediante Habitaobtenemos la vivienda en la que habita esa persona y con la interrelación Está_Enobtenernos el municipio en que se encuentra la vivienda: Por ello. conocemos elmunicipio en que está empadronada esa persona. En el otro sentido de lainterrelación l<:tnpHdronada, debe ser posible conocer las personas empadronadasen un determinado municipio: mediante la interrelación Está_En conocemos lasviviendas de ese municipio y 11 partir de Habita sabernos todas las personas queviven en esas viviendas. conociendo así todas las personas empadronadas en elmunicipio. Consecuentemente. la interrelación Empadronada se puede clirninurdel esquema ElR sin perder semántica.

El esquema ~jRdefinitivo se muestra en la figura 1.7.

ORA·MA1(> DISEÑO I)I! BASE.'; DE DA'I OS: PROBLEMAS RESUEI.TOS

Page 16: Diseño de Bases de Datos - Problemas Resueltos

"Los cursos SI' ;/l1/1t1rl(!1Iflor personu! de la propia empresa .. ,

"/)1' los cmpleadav .\1' deseo alnmccnur Sil ('(ídigo de empleado, nombre )'apellidas, direccián. 'eléf(/I,o. NI1- (Número de klentificacián Fiscal). fechade nacimiento. nacumalidad .. \e\r>,firma y salario. así C(//I10 si está o no(;ul'(/C;la(/(/para imparnr curso» ."

PAR1'E 3

Figura 1.9

td_Edición

Fecha

CURSO

oz... "::J -oo .- cI <U Uo ... o. 'o.-tlJ . .o 'C u ...~ u e=8 c: -e '" '".. 5 oU Z Cl U (O.n) N:M

La semántica anterior se refleja en el esquema de la figura 1.9.

Puesto que en una misma fecha sólo puede comenzar una única edición delmismo curso, será suficiente con la fecha (junto con el código del Curso) para poderidentificarla. Por lo tanto, una eDICIÓN será una entidad débil que tendrá unadependencia en identificación con respecto a CURSO. Las cardinalidades con respectoa CURSO serán (1,1), ya que toda edición lo es de uno y sólo un curso (además, todadependencia en identificación ha de tener, evidentemente, cardinalidades (1,1) conrespecto a la entidad regular). La cardinalidad máxima de una edición con respecto aun curso será 11 (puesto que puede haber distintas ediciones de un mismo curso). Encuanto a la mínima, será O si pueden existir cursos de los que no se hayan impartidoediciones, y I si todo curso ha de tener al menos una edición. Hemos elegido lacardinalidad menos restrictiva, esto es, 0, para permitir que la empresa pueda tenerplanificados distintos cursos de los que todavía no se haya celebrado ninguna edición.

CAPíTULO 1:DISEÑO CONCEPTUAL: MODELO EfR 1<)ORA MA

~ •••••••••••••••••••••••'.

'111,'/lt \(1 "

"(111 /lIi~/I'11 ('lIr.\1I tiene dirl!/I'IlI(!.~ edic;olll!s, es decir. .H' unparte 1'11

dl/I'/I'lIlt ~ lugures, fechas v con dift're/lll's horarios (;IIII'/I.\;VO, d.' ",(~ii~,!,aotic tarde J. EII /I/UI 111;.\111(1[ech« de inicio sélo {JI/(!I/e muiarurs« I/I,a edlcián de

Figur« 1.8

Obligatorio....._~I

CURSO

N:M(O,n)

Por otra parte, el atributo que indica la obligatoriedad ha de tigu.rar el~ lainterrelación. Y no en la entidad, ya que no es propio del curso el ser oblt.g?tono orecomendable, sino de un curso con respecto a otro del que es prcrrequisno. Lasconsideraciones anteriores aparecen en el esquema de la figura 1.8.

••

"Un curso puede tener co/no prerreqlllsllo haber realizado .o~r()(s)prev;'"l1enle, y. a Sil vez/a realizacíén de un curso puede ser prerreqlllsllo deotros. Un curso que es IIn prerreqll;s;lo de otro puede serlo de [ormaobligatono o sólo reco/llel/dable. "

Parece evidente a partir de los primeros párrafos que. cad,~ :urso de formaciónserá una entidad: un CURSO tiene un "Código" que I~Iden~lf~(;a, y lend~á cornotrib t S el "Nombre" (el cual consideralnos que además es úmco, es decir, es una n u o. "O .Ó "identificador alternativo), una "Descripción", el número de horas de uraci n y su"Coste". Para modelar que un curso puede ser prerreq~i.sito de o~ros no pode.mosutilizar un atributo, ya que un curso puede ser prerrequisuo de v~nos. La forma dercprcsentarlo es Inediante una interrelación refl~xiva en ~a enttda~ CURSO. Lascardinalidades mínimas y máximas en ambos sentidos de la Interrelación son (ü.n), locual signi fica que:

Un curso puede ser prerrequisito de ninguno o de varios otros cursos.

Un curso puede tener corno prcrrequisito haber cursado previanlente ninguno ovarios cursos.

ORA-MAIR DISEÑO Oc RASESDE DATOS: PKOBLEMAS RESUELTOS

~•••••••••••••••••••••

Page 17: Diseño de Bases de Datos - Problemas Resueltos

• ESIIles ¡"i porque ~tl los requisitos se nos indica que la cap~cílac~ón depende úl~ic;lI1lenledelempleado p"t.lría pl;rnlcar~c una ,ampliación del problema ~rmitiendll que dicha cap~cl~a~~o~~_ependl~r:1nu ",1(1 t.lt'I"lIlpkmlu "1141 lalllhlén de cada CUfl;\1 CC~decir. que un empleado eSIUVlcr.1capacitado par,l. Figura 1./2

~•••••••.•••••••••••••••••••••••••••••••••••••••NI

NOCAPACITADOCAPACITADO

(1),1)(0.1)

EMPLEADO

I{exdl,¡,in }

(l,n) ....-------,

N:M

Podernos ampliar la solución anterior, dividiendo la interrelación Participa endos interrelaciones, Imparte y Recibe. corno muestra la figura 1,11. De esta maneraresolvernos que en una edición deba haber un docente y, al menos, un alumno, Lacardinalidad máxima de Imparte sería I si un curso lo imparte una única persona O Nsi suponemos que lo pueden impartir más. Sin embargo, seguirnos sin resolver elhecho de impedir que empleados no capacitados puedan impartir cursos, y ademáshemos añadido un problema que con la sol ución de la figura J.IO teníamos resuelto:que en una misma edición un mismo empleado participe como docente y comoalumno. Esto no se resolvcría mediante una restricción de exclusividad (enEMPLEADO), ya que significaría que un empleado o siempre es alumno, o siempre esprofesor, pero no que pueda ser unas veces alumno y otras profesor, pero siempre endistintas ediciones de cursos.

Figura /.//

N:M

( I.n)

EMPLEADO

111,11 1

NM

• Que en una edición deba haber al menos un alumno y un docente (la solución sóloexige que haya un participante)

CAPíTULO 1: OISIiÑO CONCEPTUAL: MODELO EIR 214) RA-MA

Que un empleado no capacitado para impartir cursos no pueda participar en unaedición COIIlO docente

La solución más sencilla (figura 1.10) sería modelar la participación de losempleados en las ediciones de los cursos mediante una intcrrel.ación .~art~c~pa ~?t~~EMPLEADO y EI)ICIÓN. Dicha interrelación tendría un atributo Parttcipacron.cuyos posibles valores serían "Docente" y "Alumno", Esta solución recoge que en uncurso un ernpleado sólo puede participar como docente o corno alumno, pero ~o ~omoambas cosas a la vez. Sin embargo esta solución no recoge las SIguientescaracterísticas:

Figura I.JO

I'I>ICION HMI'LEADO

El esquema modelado hasta ahora ha sido bastante sencillo, Sin embargo. ~aramodelar toda la scuuintica asociada al hecho de que los empleados participen(impartan o reciban) cn la\ ediciones de los cursos, tenemos va~ia<;posibili~ades. Encualquier caso. tendremos una entidad EMPLEAlJO. con un conjunto de atributos, delos cuales "Código de Empleado" será identificador principal, y "NIF' identificadoralternativo, Además de otros atributos, como el "Teléfono", "Fecha de Nacimiento","Nacionalidad", eic., existirá un atributo que especificará si un empleado está o no"Capacitado" para impartir cursos".

A continuación ofrecemos distintas posibilidades para modelar la participación delos empleados en las ediciones de los cursos, y veremos ~as ventajas y desventajas decada una de ellas (por claridad, en estas figuras no se Incluyen los atributos de lasentidades):

..UII /ni,~III(1empleado puede ser docente en U/la edicián de 1111 curso yalll/l1lto 1'11 otra edicián. pero 1IIIIIca puede ser ambas cosas a la III'Z (ell IIlIa

misma I,¡/ici/ÍII de rursu o lo importe () lo recibe), ..

ORA M.o.20 DISr:ÑO OE BASES OH DATOS: PROBLHMAS RESUELTOS

Page 18: Diseño de Bases de Datos - Problemas Resueltos

El campeonato se desarrolla a lo largo de una serie de jornadas (año. ITIes.día) ycada partida tiene lugar en una de las jornadas aunque no tengan lugar partidas todaslas jornadas.

Tanto jugadores corno árbitros se alojan en uno de los hoteles en los que sedesarrollan Laspartidas, se desea conocer en qué hotel y en qué fechas se ha alojadocada uno de los participantes. Los participantes pueden no permanecer en Villatortasdurante todo el campeonato. sino acudir cuando tienen que jugar alguna partidaalojándose en el mismo o distinto hotel. De cada hotel, se desea conocer el nombre. ladirección y el número de teléfono.

Todo participante participa en al menos una partida.

Cada partida se identifica por un número correlativo (Cód_P), la juegan dosjugadores y la arbitra un árbitro. Interesa registrar las partidas que juega cada jugadory el color (blancas o negras) con el que juega. Ha de tenerse en cuenta que un árbitrono puede arbitrar a jugadores enviados por el mismo país que le ha enviado a él.

Cada país se identifica por un número correlativo según su orden alfabético einteresa conocer además de su nombre, el número de clubes de ajedrez existentes en elmismo.

Los países envían al campeonato un conjunto de jugadores y árbitros, aunque notodos los países envían participantes. Todo jugador y árbitro es enviado por un únicopaís. Un país puede ser representado por otro país.

Ningún árbitro puede participar corno jugador.

En el carnpeonato participan jugadores y árbitros; de ambos se requiere conocerel número de asociado, nombre, dirección, teléfono de contacto y campeonatos en losque han participado (como jugador o como árbitro). De los jugadores se precisaademás el nivel de juego en una escala de I a LO.

El club de Ajedrez de Villatortas de Arriba, ha sido encargado por la FederaciónInternacional de Ajedrez de la organización de los próximos campeonatos mundialesque se celebrarán en la mencionada localidad. Por este motivo. desea llevar a una basede datos toda la gestión relativa a participantes. alojamientos y partidas. Teniendo encuenta que:

Enunciado

PROBLEMA 3: CAMPEONATO DE AJEDREZ

CAPITULO 1:DISEÑO CONCEPTUAL: MODELO I'/R 23ORA·MA•••••••••••••••••••••••

Se ha considcrudu el nombre dcl curso corno un identificador alternativo .•

SUI'UES'r()S SEMÁN,.,IC()S COMI'LEMEN1'ARIOS y SEMÁN1'ICA NOREFI,EJ"ll"

Figura Ll l

NO eAPAcrr AOOI·C'.:II.,()j...--.41 EDICIÓN

ji). 1 )

(exclulión}1

u.")

tt',n)

(1 1,

CUKSO

!'1M(n.lI)

Hemos elegido la opción de la figura 1.12 porque, COIno hemos visto. es la quemás semántica recoge. La figura 1.13 muestra el esquema definitivo.

Propuesta de solución

Una mejora a la solución de la figura 1.1J sería añadir una jerarquía de em­pleados (CAPAC'ITADOS y NO_CAPAC/7'ADOS. o únicamente CAPACITADOS) enla que el atributo discriminante fuera "Capacitado", y dos interrelaciones. Imparte yRecibe. Con esta solución. que se muestra en la figura 1.12, resolveríamos los dosaspectos que no se recogían con la solución de I~ .figura 1.10'. pero se.g~~lnos sinresolver el impedir que un mismo empleado participe en la rmsrna edición cornoalumno y como docente. ya que en la interrelación Recibe particip~n tanto .I~sempleados capacitados como los no capacitados. Para resol:erlo deben.alnos eXI.glrque una ocurrencia de la interrelación Recibe no apareciera en la interrelaciónImparte y viceversa. es decir, una restricción de exclusión. Esta notación procede delos modelos de objetos. y puede consultarse en De Miguel el al. (1999).

22 DISEÑO DE BASES 1>1'. DATOS PROBLEMAS RESUELTOS•••••••••••••••••••••••

Page 19: Diseño de Bases de Datos - Problemas Resueltos

••••••

NI

fU n,PAIS

.n.,.ARBITROJl:GADORI I "

tU ti1" l'1'... ,t '1uf',r..

1'/1RTI('II'/lNTI:

NI

La figura 1.14 refleja las consideraciones anteriores.

Como un país puede ser representando por otro país se creará una interrelaciónre~cxiva Representa cuyas cardinalidades son (0,1) para reflejar el hecho de que unpal~ puede o no ser representado por otro. y (O.n) pues un país podría representar avanos países,

.La entid~d PAís se relaciona con la entidad PARTICIPANT/::, por lo que se crearáuna interrelación .E~vía que tiene corno cardinalidades asociadas a PAÍS (O.n), ya queen ~l t~xto se Ind.tca que puede haber países que no envíen participantes. Lascardlnalt.dades asociadas a PARTICIPANTE son (1,1) porque todos los participantes~on envl~~os .por un y sólo un país. Habría sido más complejo representar estaInt~rrelaclon SI no se hubiera introducido la jerarquía de participantes, pues se habríatenido que establecer al nivel de los subtipos, duplicándose esta interrelación.

Se crea un lluevo tipo de entidad PAís cuyo identificador principal es un númerocorrelativo según un orden alfabético que no podernos representar en el esquema peroque debernos tener en cuenta a efectos de implementación. PA!S tiene otros dosatributos más, "Nombre". que además de obligatorio se considera identi ficador alter­nativo y "N_Club".

"Cada país se identifica por 11/1 lIú/flero correlativo según su ordenalfabético e interesa conocer además de Sil nombre, el IItí/llero de clubes deajedrez existentes en el mismo. "

('APITULO t: DISEÑO CONCEPTUAL: MODEl.O ElR 25ORAMA

"/..11\ 1)lII\e~ envian al cumpemuuo 1111 conjunto de jll~(ld()rt'.1 v árbttros.IIII/U/'It' 110todos 101 paises t'/lI';11I1 particip(/II/es. Todo jugador y árbitro I!~

l'III'U/t!O 1'01'11111;"iclIl'l"\ (111 ptlfl 1'lIetll' ser rf'pre.\'f'lItculn 1/lIr otro paú •..

El haber reflejado el anterior supuesto como una generalización 110S permitereflejar esta nueva especificación en la cual se aclaran cuáles son las propiedades de laJerarquía anterior. Las personas que participan dentro del mismo campeonato son ojugadores o árbitros y sólo pueden actuar corno tal, por lo que la generalización esexclusiva. puede suponerse además que es total por conocimiento del universo dediscurso,

"Ningún árbitro puede participar COIIIO jugador ."

En este primer supuesto aparecen dos entidades: A/?BITRO y J(JCADO/(: quecomparten muchos de . us atributos, por lo que puede pensarse en abstraer ambasentidades a un supertipo PI\RTICIPAN1'E del cual éstas serían subtipos, Loe¡atributoscomunes son: número de asociado ("N_Sucio"), que actúa corno ideruificador princi­pal, "Nombre", "Dirección' y "Teléfono". que se consideran atributos obligatorios y,por ultimo, para recoger los distintos campeonatos en los que han participado tantojugadores corno árbitros, se crea un atribulo "Campeonato". que será multivaluado,opcional y compuesto por "Nombre' del campeonato y "Tipo" (árbitro o jugador). Sepodría haber considerado "Campeonato" como un tipo de entidad. de esta forma sepodría guardar mas información acerca de éstos pero al leer todo el enunciado nosdamos cuenta de que no precisamos mayor detalle. El subtipo JUGAI)OR tendrá unatributo propio denominado "Nivel" de juego.

..ElI el campeonato purticipan jllf.(ador('s y árbitros; de ambas se requiereconocer el IllÍ/nero de asociado, nombre, direccián, teufono di' (OIlIIlCIO yca/I/peollatos en los que /1(111 participado ((;(I/nojugador (i ('0//111 árbitro]. Delos jugadores se precisa adenuis el nlvel di'juego ('1/ Hila cscalu de I el 10, ..

PARTE I

Discusión del Enunciado

De cada partida se pretende registrar todos los movimientos que la componen, laidentificación dc movimiento se establece en base a un número de orden dentro decada partida: para cada movimiento se guardan la jugada (5 posiciones) y un brevecomentario realizado por un experto.

Cada partida se celebra en una de las salas de las que pueden disponer los hoteles,se desea conocer el número de entradas vendidas en la sala para cada partida. De cadasala, se desea conocer la capacidad y medios de que dispone (radio, televisión,vídeo ...) para facilitar la retransmisión de los encuentros. Una sala puede disponer devarios medios distintos.

e RA·MA24 DISFÑO DI,. IIASFS DE DATOS: PROFll.EMAS RESUhLTOS

Figura 1.14

t •••••••••••••••••••••••••••••••••••••••••

Page 20: Diseño de Bases de Datos - Problemas Resueltos

. Dependiendo de la mlonnucion que se quicru recoger acerca de la~ jornada .. dell"nlpl'OIl,llo 1l'lldr~'llI(I' un lluevo upo de entidad }(JRNAI)¡\S que reflejara 111'

.'~lInll'lllllll'llhl' dl'll¡lIl1)1t'llIlaIO ha)a (1 110 p:ulida" \) un llUl'VO alrioU(I) "Jornada"

..(~'I( (//11111'111/(//(1JI' tlrxrtrrnllu (( /0 IU/',litl 11,' 1/1//1.\"'I'It' tll' jornoda» ((//70, ///1',1,

dtu¡ \ ,tilia partit!« //1'1/(' /lIglIl "/1 unu d,' 111.1jIJ/'II/II/tI.I' 111(///(/11' /1" It'lIg(//I

/II.I!II/lltlllt'/t/1 mdav las jnrnadu-; ..C0I11~)los participantes se alojan en uno () varios hoteles durante el campeonato,-lue no es obligatorio que permanezcan en él durante lodo cl campeonato. se crearáentidad HOTEl. cuyo identificador pnncipal será "Nombre" y corno atributosmanvox se presentarán "Dirección" y "Teléfono". y 0;1.' relacionarán II(rr/~'L y~77('IPI\N7'/~' mediante una interrelación Aloja cuya" cardinalidades al>ociada ..n IO,n) y (1.11), rl"peclivalllt!llle. ('011 la cardinalidad lllínillla O pala I/()'I}I '1.'

Figun¡ 1.15

"Tanto jugadores ('01110 árbitros se alojan el/ 11110ele los hoteles en los que ledesarrollun 1(/,1 partidas, .\I! desea conocer el/ qué hotel _I' en qué [echav ,11' haalojado cada 1111(1 de 10,1' participantes. /..(/~ participantes pueden /111

Iler/lUIIII'C,'r en Yillatortas durante lodo el ('(/1/11'(,0111"11, :';1111 acudir cuandotienen que jugar alguna partido alojándose en el /IIi,IIIIO o distinto hotel. D«cada "01('(, .1'" '/",11'11 conocer 1'1 IIIIII/hre, la dlrrccián v el número dI'h'h:jlIlIO. "

el'" I "-nas.

PAR IIDA

I I 111

,1\" \1

Una posibilidad alternativa para recoger el anterior supuesto habría sitio tratar de.iderar una interrelación ternaria, pero la semántica, en especial la referente ainalidades, se refleja con mayor precisión, en este caso mediante interrelaciones

, I I II ' •

ÁI<BII ROJl'(jAI)( 11<

Se ha de tener en cuenta que el modelo FJR no controla la re-u icciun de que un.ro no puede arbitrar a jugadores de su mismo paí-; y tampoco que I(), vulorc-, dellULO "Color" sean distiruo« para jugadores que devarrollen la misma panilla, pero-or este hecho debernos de ignorarlo sino que la guardaremos para contemplarlo ennplementación, pues se trata de supuestos semánticos que el modelo E/R no c'IZ de recoger.

f'AkTICIPANTlé

'- ,,,....,IIJ~" '''JI :>. ... I..~ I "1"""

J ! 4D, I1II,."l, 1 \. j¡,¡ ,

Q, ~I

I i 11.

IIO!'!'I. '.

La <cuuimicu anterior aparece reflejada 1.'11el e-quema de la figura 1.15,Una partida de ajedrez la juegan dos jugadores)' la arbitra un árbitro, hecho que.presenta mediante dos interrelaciones binarias. ya que existen dos asociacionesntas, Juega y Arbitra. La interrelación Juega tendrá como cardinalidades aso­lS a PII/?1·II)A (2,2) Y las asociadas a .I(fCAD()R serán (I.n). Además. para saberqué color ha participado cada jugador en las distinta» partidas disputadas, ten­lOS un atributo obligatorio "Color" en la interrelación, cuyo dominio estará com­to de dos valores, blanco y negro, La interrelación Arbitra tendrá corno curdinali-,-s (1, 1) para la entidad I'ARTII)A y (Ln) para la entidad ARHITR().

('111110 rcvtricciún adicional deducida de la irucrprctución del Universo deDi'l'urso se iícbcrfu asegurar que la lecha de salida sea mayor que la de cntruda y queI\)~periodo, de tiempo no se solapen entre sí.

Se añade la entidad PAR1'JDA con identificador principal "C6d_P··. numero-lativo. propiedad que no se puede reflejar en el esquema E/R pero que se debe- en cuenta cuando se implemente la RD.

contemplará que en un momcmo dado puede que no existan participante .. ulojndos enel mismo. Adcmus, la ... cstanciuv de un parucipantc pueden ser intcnuitcntcx, con loruul la imcrrclucion PO!\CC UO), arributus muhivaluados, "F_Enlrada" y "F Salida", querccogcnin csrc supuesto. Para reflejar las mstancias acuralcs, en las cuales,cvidcmcmcmc 110 hahn¡ una fecha de sulidu. el atributo "(,),aliua", será opcional.

"Cada parud« \t' ldentific« flor 11/1 II/íllll'r" rnrrclativo (('"d_P), la jl/"!.!I'"dO,1 Jllgado/'es v 1(/ arlntra 11/1arbitro. /JIII'fl'l(I n'glllfar la» I',,,,,t/II.I qi«:lul!grt «uda jugadl/r \ el color (/)IUII('''.I 01/",11,.(/.1) ('111/ 1'/(/11(' jll('gll. 1(" d('tenerse ,'1/ 1'111'''/(/«(11('un árbitro "11 //II"t/(' arburur a ¡IIgf/(IIIr(,'1 ,'/II';"¡/,/\ P"!el "';,1'/1/1/ fI(/r.~'I'{(' 1,' hu /'11";(1(10 1/ l'.""T'III" /)(/rl;(';/II//1I1' partiripa en all/II'I/IIS 111/<1purtid«. "

t \1'111 1() 1 DISI,NO CO:-1CI ITII' \1.: I\IOI>I·LO I'¡R ~7R' \1\• K \ '"-ISEÑO DI· 13/\';l:.'; 1>1'nATO"' PROOLLI\IAS RESllJ lOS

~••••••••••••••••••••••••••••••••••••••••••••••

Page 21: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••••••••••••••••••••••••••

/\glupalllo, lus distinta:; soluciones parciulc« ubtcnidns en la liguru 1.17.Por ultimo. se rcprcscnumi la entidad M()VIMII:N1'() dependiente de cada PAN

rl)A que detallará el dcxurrollo de la mismu. Según se muestra en el enunciado, paraidentificación de cada movimiento xcrá necesario el identificador principal de PANfI)A. por lo que tendremos una iruerrclucióu en iucnlificaciún dt:lllllninada ('unsta.

Propuesta de solución

','¡gllra /,1 ()"De cada partldu ,\1' fll'I'I('''¡(t' /(',~i,III'III uulo« /(1, 1110 "lIlli('1I1I1,1 11'11' /11('(I/II/UJlI 1.'11, /0 it/elllll;('(/";Iill de movimicntn ~I' ('.11,,1>/1'('(' ('11 /111\·(' (' 1111IIlí",,'/,1/

de onlrn drntr» tll' ,'(11/(1 purtida: /'III'U rtul« 11/(/1';111;('11111 ,\l' guurilnn /1/IIIMIU/U (.'i¡/(/,\j¡'!tJIII'I) v 1111/t1'("'I' {"I//lt'II/U/'I(I 1'C'II/i:!I(/1J //1/,. 1111('XIJI'I'IIJ."

\1( >VI:'l II:NTO

II.n I

'1

\ 11111\.·llft~1,1 \1 ..,

La otra intcrrclacrón que upurccc en este párrafo asocia la entidad SIl 1J\ con\R'fll)A y posee un atributo ..Entrada ....· que indica el número de cntradus que se hanndido para una determinada punida. Una restricción que se deberá tener en cucntu-stcriormentc pura I¡¡ implementación de este esquema cs que el valor tic e,te atributo, puede exceder al del aforo () capacidad de la sala. Las cardinalidadc- asociada-, von.1) para la entidad PAlrrl/)A y ( l.n) pura SAI..A. E~ta ulrimu cardinalidad mínima.liga a que s610 tengamos información de aquellas salas que se utilizan en elmpeonato aunque el hotel pudiera tener más,

1\( 1.1 •

1'\¡¡!lI),\I 1.111

('".1 l'I l. 1•

111111,1,1.1La iutcrrclacion I)ispulu' tille a~(lcia H()T/~·1. y SA/.A. C0I111'lllad" unrcnnnnentc

r ser una iruerrclackin CI1 cxistcncra. Il'ndní corno cardinulidudcv (ü.n) y (1,1 l..pcctivameruc. Recogiendo con la curdinulidud miniuia () <.¡L1C puede haber 1t(\1~'k'~e no drspongan dé ,ala y ,tilo tengan lu función de alojar participantes.

Aparece en este púnufo una 1l1lC\ a entidad S,\[j\. cuya existencia depende ¡k'lel al que pcrtcncvca, por lo que sl'rá una entidad débil y que '1' rcluciouuni COII

)'1'1·:1. mediante una interrelación en existencia. (\II11() en la" e~pcl'it'it:aci()I1l'~ dello no aparece ninguna caructcrísticu de .:ada :-ala que pueda ejerce: las luhurcs deruificador principal. se uñadc a los atributos de ésur, que 'ion "Capacidad" ylcdiux". un "C'úd_Sala", EllIlrihllhl "Medios" es multivuluado y opcionnl. ya que ena sala pueden existir. 1) 110,tli:-lintos 11Iedi\)~uudiovisualcx.

I 1 I I

111111 1"Cud« partula '/' / clrln, /'/1 1/11" d.. /", ,1"1t,, tlt' /1/' /III{' puedcII .1"/11111.-1 /,,'Ito/C//',I, '1' dcw« cono« ,'/ {'/ nutncn» tic l'II/r"t!II\ ICII.lI//tI' 1'11 /" \(111/ 1''''/'C/II/" p(IIIir/lI. /)(' «ntlu sulu, .11' .11'\1'" « anocor lu 1''''I(II'idod Y mvdio» d, ,/1/1't1iSI'IIIII' t nuho, /e//'\'I\;oll. vulco...) /'1/1'(/ k« ilitur la r..transtnisurn d« /",I'IIC'I<'/IIHII. Una suln pur.h: (/,,'/'""1''' el,' \',"'1",1 IIU'.I;o" disunto» "

El esquema de la figura 1,16 refleja los comcnturios anteriores.cxraría compuesto pilr tres atributos. "Arlo", "Mes" y "Día". que recogerá sólo innación acerca oc los ola, en que se han celebrado pan idas, Se iomani e-tu últimaión, ya que en el enunciado no ve referencia a las jornadas en que no hay punulas1que el 'l'IClna de inlonuación contempla s610 lux jornada, donde éslas C\I'11.'11

~, ,,\ ~ .:..(':.:.,\~I'.'.!.IT,lIl() 1. I>ISI,NO ('0\( '1'I'rt'i\1 , ~1()1>"1.() f'JI~ 2')It\ \1\

Page 22: Diseño de Bases de Datos - Problemas Resueltos

Una red está compuesta por una serie de líneas, cada línea se identifica por unnúmero secuencial dentro del número de red y tiene una determinada longitud. Lamenor de las líneas posibles abastecerá al menos a dos subestaciones.

La energía sobrante en una de las redes puede enviarse a otra red. Se registra elvolumen total de energía intercambiada entre dos redes .

Una red de distribución se identifica por un número de red y sólo puede tener unaestación primaria como cabecera. La propiedad de una red puede ser compartida porvarias compañías eléctricas, a cada compañía eléctrica se le identifica por su nombre,

Cada día, los productores entregan la energía producida a una o varias estacionesprimarias, las cuales pueden recibir diariamente una cantidad distinta de energía decada uno de estos productores. Los productores entregan siempre el total de suproducción. Las estaciones primarias se identifican por su nombre y tienen un númerode transformadores de baja a alta tensión y son cabecera de una o varias redes dedistribución

Existen productores básicos de electricidad que se identifican por un nombre. delos cuales interesa su producción media, producción máxima y fecba de entrada enfuncionamiento. Estos productores básicos lo son de una de las siguientes categorías:Hidroeléctrica, Solar, Nuclear o Térmica. Dc una central hidroeléctrica o presa nosinteresa saber su ocupación, capacidad máxima y número de turbinas. De una centralsolar nos interesa saber la superficie total de paneles solares, la media anual de horasde sol y tipo (fotovoltaica o termodinámica). De una central nuclear, nos interesa saberel número de reactores que posee, el volumen de plutonio consumido y el de residuosnucleares que produce. De una central térmica, nos interesa saber el número de hornosque posee, el volumen de carbón consumido y el volumen de su emisión de gases.

Por motivos de seguridad nacional interesa controlar el plutonio de que se proveeuna central nuclear, este control se refiere a la cantidad de plutonio que compra a cadauno de sus posibles suministradores, (nombre y país), y que porta un determinadotransportista (nombre y matrícula), ha de tenerse en cuenta que el mismosuministrador puede vender plutonio a distintas centrales nucleares y que cada porte,(un único porte por compra), puede realizarlo un transportista diferente.

Se pretende llevar a cabo un control sobre la energía eléctrica que se produce yconsume en un determinado país. Se parte de las siguientes hipótesis.

Eounciado

, ,PROBLEMA 4: ENERGIA ELECTRICA

CAPrTUI.O 1: DISEÑO CONCEPTUAL: MODELO EIR 31••••••••••••••••••••••••

•••

•pais.En cuda partidu uno de los jugadores juega con blancas y el otro con negras.

Secucncialiuad del código de país.

Secuencialidau del código de partida.

Sccucncialidad del número de movimiento dentro de cada partida.

No se ha podido reflejar:

Un árbitro no puede arbitrar partidas en las que participen jugadores de su mismo•

Se ha supuesto quc no hay más participantes que árbitros y jugadores.•

SUPUES'fOS SEMÁNTICOS COMPLEMENTARIOS y SEMÁNTICA NOREFLEJADA

En la solución obtenida, hay ciclos. pero no son sClnánticaJuentc equivalentes.

Figura 1.17

1 N

In..n..JJ.

,L-_--'C--__'_'< l.",(Inl • --'

:.. ~_~ l'Akll1M ~

"'.1I'g

11."1

t 1.111 "

(.11.1 'ii

¡.\RBrntt)

11'.1111' t I

j I ,.

"1

JO DISEÑO DE BASES DE DATOS: PROIlLEMAS RESUELTOS

•••••••••••••••••••••••

Page 23: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••

El enunciado nos dice que debernos controlar la cantidad de plutonio compradapor una central nuclear, por tanto esta cantidad debe ser un atributo propio de lainterrelación ternaria, Además parece" claro, aunque no lo diga explícitamente elenunciado, que cada central nuclear puede comprar cantidades distintas o iguales en

FiRU/,(/ /,/8

SIJMINIS'I'KADOR

11.11)

TRANSPORTISTA

( 1.11)

PIUllll""

NIICI I:AR11,11) ,..--------,

N:M

El plutonio que una determinada central nuclear compra a un suministrador es• obvio que puede ser transportado C0l110 mínimo por un transportista y corno máxirno

por n, Un suministrador y un mismo transportista pueden suministrar plutonio a variascentrales nucleares (cardinalidad máxima 1/) y como mínimo a una, pues si nosuministraran a ninguna esa ocurrencia no intervendría en la interrelación. Por último,una central nuclear que, recibe el plutonio transportado por un transportista, puede

, habérselo comprado (en la misma o en diferentes ocasiones) a uno o a variossuministradores, por lo que las cardinalidades rnínima y máxima respectivamente deesta interrelación en el extremo de la entidad SUMINIS7'RADOR son 1 y 11.

Las centrales nucleares compran plutonio a suministradores, el cual estransportado por distintos transportistas, Esta frase nos induce a pensar en laposibilidad de introducir una interrelación ternaria Compra entre las entidadesNUCLEAR, SUMINISTRADOR Y TRANSPORTIS7'A, Pasemos a analizar lascardinalidades de los tipos de entidad que intervienen:

La lectura de este párrafo nos obliga a introducir dos nuevas entidadesSUMINISTRADOR y TRANSPORT1S1'A, De los atributos de cualquiera de Las dosentidades se puede considerar el "Nombre" como identificador principal, pues comoDO se nos dice nada en contra podemos suponer que éste es único,

CAPíTULO 1: DISEÑO CONCEPTUAL: MODELO EJR 1~

•••••••••••••••••••••••

"1'111' niotivos de .1/fgllJ'iclllellllll'illllllll/llert.iSII controlar el /111110/1;0 ele que .1'1'

1//111'('(' 111111/'I'II/I'IIIIII/('/('(/r, 1',1(1' ('(111/1'111Si' refiere (1 111cantidad de 1'/111011;1/

"111' ('II/I//,/'a (1 ('(11/(( 11110de ,~II,\ posihles suministradores, (/111111/)/,1' y (/111.1'), Yqu« pou« 1111dc!I('r"';IIII1/11II'II/I.I'(/I/I'/i,w(/ [nombre .v matricula}, Ita di' 1('111'1'.1'('1'11 ,'l/t'I/(1I 1/"1' L'/ 11';.1'/11(/ suministrador puede vender plutonio ti distintos1'1'1111'1111',1IIII,,/,'are.l' v que cada porte. (1In único porte ()or compra), pueden« di, 1111" 1111/ relll vportlstu di/ere lile, ..

En este primer párrafo se identifica inicialmente el tipo de entidad PR()IJUC-7'OR, cuyos atributos son "NOI11brc·'. "Producción Media", "Producción Máxima" y"Fecha Inicio", El atributo "Nombre' identifica a cada productor según el enunciado,por lo que lo consideramos corno identificador principal. Los productores pueden serde distintas categorías. esto sugiere introducir una jerarquía donde el supertipo seráPROI)UCTO/? y los subtipos PRESA. SOLAR, NUCLEAR y 7'ÉRMICA, De todos losatributos de cada uno de los subtipos es de interés mencionar el atributo "Tipo" delsubtipo S()LAR. este atributo estará definido sobre un dominio compuesto por losvalores -cfotovoltaica, termodinámica>, de manera que no podrá tornar ningún otrovalor. no tiene la suficiente entidad para considerarle corno atributo discriminante deuna jerarquía.

.. ¡';_ti,I'I('/I prnductorcs lnisicos ell' electricidad qlle St' identifican par 11/1

1111/11/11'1'. d« IIIS cuales ;'111'1'1'.1'0 Sil produccián Inedia. produccián nuixima v[echa dI' entnuia 1'11[uncioncnniento. I::.'S(OS productoreshdsiros /0 .1'(//1 de una, .dI' /II.V slguicntrs rategorias: l lldroelcctricn, Solar. Nuctcar o Térmica. Veuuu central lüdroeíéctrica (1 presa l/OS interesa saber Sil ocupacián,capnrulad nui cim« .1' número de turbinas. /)1' I/IIU central solar 1(lIS interesa,1(/111'1'la ,I/II/I'/jich' /II/a/ de 11(1111'/1'.1' soiares. la media (//111111de hnras de ,1'(11Ytipo ((0/(1\'11/11111'(/ 11 tennmthuimira}. De 11110 central IIII(,/I.'ar, IltI,V i/l/{'rI'SII

saher el número de reactores que posee, el I'o/IIII/ell de pluunuo ('IIIl.\'IIIlIido ve/ lit' rrsiduos nucleares qu« produce. De IlIla central térmica, nos interesasaber el IIlílllero de hornos que posee. e/ 1'011l1l1ellde carbán CIIIISII/nitl(/ )' el1'0/11/11('" ".1'11 ('I/';I'IIÍ" de 811\('.1', ..

PARTE I

Discusión del enunciado

En cada zona de servicio se desea registrar el consumo medio y el número deconsumidores finales de cada una de las siguientes categorías: particulares, empresas einsti luciones,

Una subestación es abastecida sólo por una línea y distribuye a una o varias zonasde servicio. a tales efectos, las provincias (código y nombre). se encuentran divididascn tales zonas de servicio, aunque no puede haber zonas de servicio que pertenezcan amás de una provincia. Cada zona de servicio puede ser atendida por más de unasubestucién.

()1lA,MA32 DISEÑO I>E IlASI,S DE DA rOS, PROBL.RMAS RESUELTOS

Page 24: Diseño de Bases de Datos - Problemas Resueltos

Por último. debernos introducir UII nuevo tipo de entidad C'()MPAÑIAELÉC7 RIC'A. para reflejar que toda red debe ser propiedad de al menos una compañíaeléctrica y lo reflejaremos a través de la interrelación Pertenece. cuyo tipo de

Cada estación primaria es cabecera de una o varias redes de distribución, por loque debernos introducir un nuevo tipo de entidad RED que se interrelaciona con,ESTAC/ON PRIMARIA mediante la interrelación Cabecera. Cada estación primaria escabecera de una o varias redes de distribución, por lo que es claro que lascardinalidades mínima y máxima de la interrelación en el extremo del tipo de entidadRED serán 1 y n respectivamente, Por otro lado cada red sólo puede tener una estaciónprimaria como cabecera, lo que nos indica que la cardinalidad máxima de lainterrelación en el extremo de este tipo de entidad es l. y por tanto la correspondenciasera I :N. Si suponemos que una red puede no tener ninguna cabecera. considcrarfamosla cardinalidad mínima del tipo de entidad ES7'A.C/6N PRIMARIA O. si por elcontrario suponemos que toda red debe tener corno cabecera a al menos una estaciónprirnuria, la cardinalidad mínima sería 1,Nosotros hemos optado por esto último.

..UII(I red de distrtbuciún se identlfir« por 1111 III¡/I/ero de red y ,lCi/o puedetener una cstacián primaria CO/110 cabecera. Lo propiedad de 11/1(1 red puedeser compartida pOI' varias compañias eléctricas, o cada rompañta eléctrica.se le identifica por SlIlIo/II1Jre, ..

,En cuanto a los atributos del tipo de entidad FSTACION P/?IMARIA. "Nombre" y

"Transformadores", el primero es el identificador principal de la entidad, pues sesupone único, el segundo debe almacenar ,,1número de transformadores en el rango debaja a alta tensión,

En cuanto a las cardinalidades mínima y máxima de esta interrelación en elextremo de la entidad ES7'ACI()N PRIMARIA el enunciado nos dice que deben ser I y11 respectivamente. Cada estación puede recibir energía de varios productores. lo cualnos indica que la cardinalidad máxima en el extremo de PRODUCTOR es 11, encambio, en cuanto a la cardinalidad mínima, si suponemos que toda estación deberecibir la producción de al menos un productor. la cardinalidad mínima será l, si por elcontrario suponemos que puede darse el caso de que en una estación primaria noreciba energía de ningún productor en una fecha determinada, la cardinalidad mínimasería O. Nosotros hemos optado por esta última suposición en el intento de reflejar elcaso más genera 1.

En es le párrafo se introduce una nueva entidad ESTACI6N PRIMARIA que serelaciona con PRODUCTOR a través de la interrelación Entrega. puesto que losproductores deben entregar la energía producida a las estaciones primarias. Ademáslas cantidades se entregan diariamente y pueden ser distintas. por lo que lainterrelación Entrega debe tener dos atributos "Cantidad" y "Fecha". este últimomultivaluado. pues cada productor puede entregar cantidades distintas o iguales a unamisma estación primaria en distintas fechas.

. -CAPITULO 1: DISENO CONCUPTUAL: MODELO ElR .15ORA,"'.

•••••••••••••••••••••••,

..Cndu tifo, los proclllC'/ort',1 C'lI/l'e1!tllI /a ('lIerRftJ IlflJ/~II(,;clCI (1 111111(1 V(I!íClS, ' , rias ICI~ (,1I1I/¡'~ IJII(·tll'lI recibir diariamente 1/110 1'(IIIt/dad('SIClCIIIIII!.\prima ,o" , •

disnnta de cado UII() elee,\IO~productores. Los ~r(IlI~I('IOft'S('/lIr~'R~"1siempreel /11//11 ele Sil flrodllcciólI, La» e~/(/('i(lIlI'S¡lrt/IUlflll\ :~e Idell/ifi( lI~l,por su

nmnbrr v tienen 1111 IlIíllll'fO de Ifllll.'ifoflllodores de I1l1JCIel (//1(/ tension v SOIl.t. , " ,f,- 1"'(' ,. ",""1"" ,"1'114" tlt' ti; vu ihucián. r'

I)AR1'1~2

Figura 1.19

SlIMINI!>' RAIX)R

lI.nl•Nt)nlhrc

·1RANSI'ORTISTA1,,, I

ire' RC.K,:'tuOi Rl"\iUUi\ flullllll" (',11 ""O I".tn,.~c.;a...c'"N.M:I'

ll·RMI( t\

111.1 I

Corno siempre que nos enfrentamos ante in~errelacio~l,CSternar,i,a~:de?en;~~ hacerun análisis para ver si podemos descolnponer la interrelación tcrnuna en ~Inallas comose muestra en la figura 1,18 (ver figura en lu página anterior). pero es evidente que, no~e recoge' la misma semántica (no podría por ejemplo deternlinarse, qu~ Ira,n~P?rtlstaha realizado el porte de una determinada compra), No obstante las curdln,lltdadesn:áxirna~ de los tipos de entidad i~vol~cr~dos en la interrelació~ ternaria~sa~<;ícorno losatributos presentes en la interrelación, indican que no puede dcscOlnponc, ,

El resultado de todas las consideraciones hechas en esta primera parte queda

reflejado en la figura 1.19.

distintas fechas, luego se debe introducir un atributo multivaluado "Fecha" en la mis­ma interrelación,

() MII·MII34 DIS¡¿ÑO Dh fiASES DE DATOS: PROBLEMAS RESUELTOS

~••••••••••••••••••••••

Page 25: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••••••••••••••••••••••••••

1,¡,,'lIlI 1,21

/flN \l' 11

I I ,111

I 'III"~~::·~·:~~'"iC1J,I..".('411.' ...... ·"'[

e 1.. 11.'1\ \>11.11"

r,.!::=::::!= =i1.--.J-o N 11I'\~'Ii! 1""-11

N

MI "L._,,;;;.:;:. __ .t......W«I

En estu última parle se pueden distinguir claramente cuatro tipos de entidadesrmis tiuu«. SUBESTAC.'I()N, ZONA y IJI<OVINCIA, LINl::;A será un tipo de entidaddébil con respecto a RElJ, pues una línea existe en función de que exista la red que laincluye, l.a interrelación Compone entre estos dos tipos de entidades será dede.pendencia en identificación, pues parece claro que el identificador principal deLINEA está constituido por un número Il1ás el número de red en el que se incluye lalínca: el tipo de correspondencia será I:N pues una red se compone de varias líneas(cardinalidad máxima 11) y corno mínimo podernos suponer que de una (cardinalidadmínima 1).

..EII rada :'0/111 de servicio ,1(' desea 1('Mi~/,or el ('OIISIIIIIO medio v I'III/;I/f(!/'ode consumidores [inules de ctulu 11110 de las .fiJ(IIIt'II/es categorias:panicuiares. I'/ll{)/'("'CI' I! ;11.1'///1/('/(1//('1, ..

,Ollas de servicio que pertenezcan {/ mds de una provincia, Cada "Olla deservicio puede ser atendida por más de I/lla suhestacián. ..

~O:..::R::.:/I..;;M:.:;A~ ...:(.:.;'''I'IrULO 1: DISEÑO rONCIiI'TlJAL: ]\1101>1'1.0 EIR 31

.. {/IIO \I//lI'I'/IU ián C'\ 1/"111/('(11111.ltÍlo 1"" /11111 hncu .1' II/I/IIIII/\'(' a /1/1(/ (/

1'1/111" ;(/11(/' di' .11''''/1';0, (/ /0/('\ t~/¡'(/()I,/11,1 provinclav (cfÍdigll" nomhre), se"111111'/1/1'111/ dividula» 1'/1 talr» ;(JII(/~ de sorvicio. 111/111/'"' /11/ {I/'I'de hube

"/11111 red (',lItÍ ('IIIII{I/('S/(/ IJI'" /1111/serie de lineus. rudu ltnea le iC/('/I/ifll'l/ por1111 ¡";"/I'¡O ,\('/'//('/u'ial dentro del 11/;1111'1'0 de red v /11.'/1(' 1111(/ dotermintulaIIII/gi/I/d, {.(/ 11/('''0), de 10.1 I(,,('OS posihles IIhIlS/('C'I'I'/; al 1111'/111,\ (/ dosII/h/'I/IU /I/III'S. "

PAR'rE 3

Figura 1.20

.,----- ....,1 CII\1PANIA .. - ''''''''''11.' rL.r'~Ji!'''''''''R'''''e=-''

, ..~f I.n.

N\I

II,n.t 1,111

\ "UI JI

..."

Todo lo expuesto en esta parte queda reflejado en la figura 1,20,

1\ diferencia de lo que sucedía en la interrelación l~ntrl'g;1en la que era precisoiutroducir el atributo multivaluado "Fecha" para diferenciar entre diferentes entregas,en este caso, el atributo "Volumen" tiene carácter acumulativo, por lo que no es preci­so diferenciar 10:-' <.1 ilcrentes envíos de energía entre redes,

Este párrulu 110S indica la necesidad de introducir una interrelación reflexivaEnvía en el tipo de entidad I<El), En principio, si una red dispone de excedente deenergía ~e la puede enviar a otra red (cardinalidad mínima O) 1) a otra u otras redes(cardinalidad máxima /1). En el sentido contrario las cardinalidades son también (O.n),ya que una red puede no recibir energía (1 bien recibirla de cualquier número de redes,Además se debe registrar la cantidad de energía intercambiada entre dos redes, por 10que debernos introducir un atributo "Volumen" en la interrelación Envía.

"1'// 1"Ierglit sohrante en /11111de las redes /IIII'tll' cuviurse 11otru rrt] SI'registra ('/1'01111/1('/1 /(//01 ¡f(, cncrgu: interccnnbind« 1.'/1/1"1' dos rnlc», ..

correspondencia es N:M, pues una compañía eléctrica puede compartir la propiedad devarias redes. Además suponernos que al menos cualquier compañía es propietaria de almenos una red.

1(, I>ISI 0\:01>1' II,'<;I'S 1)1' II¡\TOS: I'ROIIII:M¡\<; RI'SlIFI.TOS

Page 26: Diseño de Bases de Datos - Problemas Resueltos

,•• Que la energía sobrante de una red no se envíe a sí misma.

No se puede recoger el siguiente supuesto seruántico:

• Se ha supuesto que cada red debe estar compuesta de al menos una línea.

• Se ha supuesto que toda red debe tener como cabecera al menos a una estaciónprimaria.

• Se ha supuesto que toda compañía eléctrica debe ser propietaria de al menos unared.

• Se ha supuesto que una estación primaria puede no recibir energía de ningúnproductor.

• Se ha supuesto que el atributo "Transformadores" del tipo de entidad ESTACIÓNPRIMARIA es un atributo multivaluado que recoge todos los posibles tipos detransformadores de cada estación.

SUPUESTOS SEMÁNTICOS COMl>t.RMENT ARIOS y SEMÁNTICA NOREFLEJADA

r'igurcl 1.22

•Il)N,I\

Ilntl~Url(~llJ"

1,1111"\'\11\ 1';III.."III(r,(',111,)1'''1

I ,.1. I ~l ."

(],nl

'·N

tu.! ) ~lJML'III.sTRAIX)KId UrIC''''

.IJl1l''''f A ) 1I---jQ N ljftCa,." \\ ,,'1ft

1+'::.:'·::..' ---<rMJ\tr-50PURT'\ I t\,

.......

" ,

~

11.1O. .,

NIl' ... '"," l'•.

'.N

CAPITULO 1: DISEÑO CONcevruAL: MODELO EIR 39ORA·MA

•••••••••••••••••••••••

La rigura 1.22 agrupa las soluciones parciales anteriores.

Propuesta de solución

Todo lo analizado en esta parte aparece representado en la figura 1.21 (ver figuraen la página anterior).

Cerno último punto. el enunciado nos dice que las provincias están divididas enzonas de servicio. esto significa que debemos introducir una nueva interrelación SeDivide entre las entidades ZONA YPROVINCIA. Cada zona de servicio corresponde auna única provincia. pero cada provincia será dividida en varias zonas. por lo que eltipo de correspondencia será I:N.

De las zonas se dese" almacenar el consumo medio y el número de cnnslllnidoresñnalcs, que pueden ser particulares. empresas e instituciones. por tantO este atributotornará varios valores (17 instituciones. 400.000 particulares y 35 empresas. porejemplo). por lo qué lo se podría definir como multivaluado. sin embargo, dado quesiempre tomani tres valores, una alternativa más simple es considerarlo corno unatributo cornpuesto. Además se debe introducir un nuevo atributo "Cód Zona" C0l110

identificador principal de la entidad ZONA.

Las subcstacioncs distribuyen a una o varias zonas de servicio. lo que nos indica,que debernos crear una interrelación Distribuye entre SUBESTACION Y ZONA. contipo de correspondencia N:M, pues cada zona de servicio puede ser atendida por másde una subcstación. Las cardinalidades mínimas y máximas de esta interrelación encada uno de sus senridos ~0f1 respectivamente I Y11.

Aunque no se nos dice nada al respecto. debemos suponer un atributo "Número,

de Suhestación" corno identificador principal de la entidad SUBESTACION.

, ,Existe otra interrelación Abastece entre LINEA Y SUlJESTACION. Cada línea al

menos abastece a dos subestaciones, carecerían dc sentido líneas que no tuvieran almenos dos subcstacioncs (principio y fin). por tanto las cardinalidades mínima ymáxima de esta üucrrctación en el extremo de la entidad SUBESTACI6N serán 2 y 11

respectivanlcntc. Además cada subestación es abastecida por una única línea, lo queindica que las cardinalidades de la interrelación en el sentido contrario son siempre 1,y por lo tanto el tipo de correspondencia será I:N.

311 D IS EÑU 01; 11AS 1;S DI: 1>A'I~'(!:;lS,,-:~rl{~(~)B:!.!L~E~·"'::.:lA~S::...R~¡.;~:S.!!··U:!.!E;!;L:..:T.:..:():::.S __.;.':..:;K::.!II~~~'A

•••••••••••••••••••••••

Page 27: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••••••••••••••••••••••••••

En el primer párrafo se define qué es un conflicto bélico, cómo se identifica y quéinformación se necesita guardar. Es bustunte claro que CON,FL/G'1'O es una entidadque se identifica por un código numérico que üamaremos "Código", aunque en unprincipio podríamos pensar en el atributo "Nombre" corno AIP. En el enunciado senos aclara que se prefiere un código numérico para identificar cada conflicto, ya queasr se asegura su invariabilidad, por lo que el "Nombre" sería íderuificador alternativo.

"Se entiende por co/~/lit't(Jcualquier lucha armada que afec:« (1 UI/O () "liriospaises y en el cual se produzcan muertos y/o heridos. Todo conflicto seidentificará por UII IU/II/hreque habitualmente hará referencia a la zona oC{!II.~aque provoca el conflicto. aunque dado que este nombre puede cambiarcon el paso del tiempo, dentro tic la BD cada conflicto se identificarámediante 1111 código numérico sin significado alguno. Para cada conflicto sedesea recoger los países a que afecta. así como el luÍ/nero de muertos vheridos contubilitiulos has/a el JlIO/Ilt'I/lO. .. _

PARTE I

Discusién del enunciado

Con diversos fines, los líderes polfticos dialogan con las organizaciones: se desearecoger explícitamente esta información. As! para cada líder se recogerán aquellasorganizaciones con que dialoga y viceversa.

De las organizaciones mediadoras se recogerá su código, su nombre, su tipo(gubernalnental, no gubernamental O internacional), la organización de que depende(una como máximo), el número de personas que mantiene desplegadas en cadaconflicto y el tipo de ayuda que presta en cada conflicto que será de uno y sólo uno delos tres tipos siguientes, médica. diplomática o presencial.

Cada división la pueden dirigir conjuntamente un máximo de tres jefes militares,aunque cada jefe militar no dirige más de una división. A cada jefe militar se leidentifica por un código, además se recoge el rango que éste posee, y dado que un jefemilitar no actúa por iniciativa propia sino que siempre obedece las órdenes de unúnico líder político de entre aquellos que lideran aJ grupo armado al que el jefepertenece. se registrará el líder político al que obedece.

Los líderes políticos se identifican por su nombre y por el código de grupoarmado que lideran. Además se recoge una descripción textual de los apoyos que ésteposee.

suministrar. Se mantiene el número total de armas de cada uno de los diferentes tiposde armas suministrado por cada traficante a cada grupo armado.

~O~MA:;:.;:.!M.::..A ~('~;\I'ITIILO 1:DISEÑOCON('hP1'lJAL: MODEl.O FJR -1 I

I.()~uaficantcs de urmas sutninistrun diferentes tipos de afina a los gruposunnudos. De cada tipo de armas se recoge un nombre y un indicador tic su capacidadde~trucliv¡¡. De cada lruficantC se recoge un nombre. los diferentes tipos de arma quepuede suministrar y cantidad de armas de cada uno de lo" tipos de arma que podría

De cada grupo armado se recoge el código que se le asigna y un nombre. Cadagrupo armado dispone de al menos una división y es liderado por al menos un líderpolítico. Las divisiones de que dispone un grupo arn~ado se numerancOllseclllÍvéllnente Y se registra el número de barcos. tanques, aviones y hombres deque dispone. asitnislno se recoge el número de bajas que ~léltenido., Para los gruposarmados se recoge el número de bujus corno suma de las haJas producidas en todas sus

di visil )lles.

En los conflictos intervienen diversos grupos armados (al menos dos) y diversasorganizaciones mediadoras (podría no haber ninguna). Los mismos grupos armados yorganizaciones Inediadoras pueden intervenir en diferentes conflictos. 'ratito losgr~pos annados COIno las organizaciones mediadoras podrán entrar y salir delconflicto. en ambos casos se recogerá tanto la fecha de incorporación como la fecha desalida. l'enlporalmente, tanto un grupo armado corno una organización mediadorapodrían no intervenir en conflicto alguno.

Los c\lIlllictos pueden ser de distintos tipos según la causa que lo ha originado,clasifieíllldosc. a lo sumo, en cuatro grupos: territoriales, religiosos, ccon<Ílnicos oraciales, en cada uno de estos grupos se recogerán diversos dau». En los conflicto!'territoriale~ se recogerán las regiones afectadas. en los religiosos las religionesafectadas. en l()~econótnicos las materias primas disputadas y en los raciales las etnias

enfrentada ..,

Se entiende por conflicto cualquier lucha afinada que afecte a uno o varios paísesy en cl cual se produzcan muertos y/o heridos. Todo conflicto se identilicará po~ unnombre que habituahnente hará referencia a la zona o causa que provoca el conflicto.aunque dado que este nombre puede cambiar con el paso del tiempo, dentro de la BDcada conflicto s , identificará mediante un código numérico sin significado alguno.Para cada conflicto se desea recoger los países a que afecta, así corno el número demuertos y heridos contabi 1 izados hasta elll10lncnto.

Una organizaci6n internacional pretende realizar un segnill/icntCl de los conflictosbélicos que se ploduccn en todo el mundo. Para ello creará una SD que responderá al

siguiente análisis:

Enunciado

,PROBLEMA 5: CONFLICTOS BELICOS

-lO nlSLNO 1>11I/\"ES DE I)¡\ lOS' "ROIII.EMflS RI·.SlIl:I.TOS

Page 28: Diseño de Bases de Datos - Problemas Resueltos

El tipo de entidad CHUP() ARMA/J() se identificará por un "Código", el "Nom­brc", suponiendo que este es único, será un atributo alternativo y los líderes políticosse podrían considerar corno un atributo multivaluado, pero si leernos el problema hasta

..De cada grupo armado se recoge el cádigo que se le asigna y un nombre.Cada grupo armado dispone de al IIlel/OS una divisián y es liderado por almenos 1111 lider politico. Las divisiones de que dispone UII grupo armado senumeran consecutivamente y se registm el número de barcos, tanques,aviones y hombres de que dispone, usimismo se recoge el número de bajasque I/(I tenido, Para los grupos armados se recoge el númera de bajas comoSI/lila de las bajas producidas 1'11 todas SII,I' divisiones. ..

Las cardinalidades de CONFLlcro en la interrelación Media son O para lamínima. ya que en las especificaciones se expone que puede haber conflictos en losque no participe ninguna organización, y 11 porque no existe limitación en el númerode organizaciones que intervienen en un conflicto .

También se indica en el texto que en un conflicto participan al rnenos dos gruposarmados. con lo que la cardinalidad mínima de CONFLICTO en la interrelaciónInterviene es de 2 y la máxima de 11.

Para contemplar el hecho de que tanto un (jRUP() ARMAI)O como una,ORGANIZACION pueden no participar en un conflicto de forma temporal, pondremosla cardinalidad rnínima de ambas a cero. La cardinalidad máxima será 11 en las dosentidades.

Cada una de las interrelaciones poseerá dos atributos multivaluados, "Fd.Cont","F,F.Cont". "Fil.Media". "F.F.Media", que nos indican las fechas de entrada y desalida en los conflictos de los grupos armados y las organizaciones mediadoras,,respectivamente. Se puede observar que las fechas de fin de las intervenciones, tantode los grupos armados corno de las organizaciones, son atributos opcionales. ya quepuede darse el caso de no haber acabado COII la intervención.

Como se indica en el texto, en los conflictos pueden intervenir, además de losgrupos armados, organizaciones mediadoras. los cuales se considerarán como tipos deentidad que se interrelacionan con "Conflicto" .

"EIl los conflictos imervienen diversos grupos armados (al menos dos) .1'diversas organizaciones mediadoras (podrta no haber lIinglllla). Los mismosgrllp<ls armados y organitaciones mediadoras pueden intervenir elldiferentes conflictos. Tonto los grupos armados COIIIO las organizacionesmedindoras podrán entrar y salir del conflicto. en (1II1VOS caso se recogerátan/o la fecha de incorporacián COI"O la fecha de salida. Temporalmente.tanto 1111 gl1ll10 armado COIIIO 1/11(1 organiracián mediadora podriau nointervenir e" cOl/flicltl alguno ...

PARTE 2

CAPíTULO l: DISEÑO CONCEPTUAL: MODELO EJR ~.~ORA·MA•••••••••••••••••••••••

I;¡gll ra t.:3

1,..,..~. 1'11'" I

Mr\f 11\1

~"'_"- ....

El esquema de la figura 1.23 refleja las consideraciones anteriores.

En el segundo párrafo se presenta una clasificación de los conflictos en variostipos, consideraremos esta clasificación como una jerarquía total y exclusiva. Elsupertipo será la entidad C'ONFLICTO, mientras que los subtipos serán las entidadesTERRIT()RIAL. REI,IC;IC)SC),F.C'()NC)MICO y RACIAL. Estos subtipos tendrán losatributos o características de C'()NI·-L1C'T(), pero además, "Región", "Religión","M.Prilnu" y "Etnia". respectivamente, que serán atributos multivaluados e indicaránen cada caso lus regiones, religiones, materias primas o etnias afectadas en dichoconflicto.

..Los conflictos pueden ser de distintos tipos según la calisa que lo haoriginado. clasificándose, a (o sumo, en cuatro grupos: territoriales.religiosos, econániicos o rucia les, ('11 cada LI/IO de es/os grupo» SI! recogerándiversos da/os. El/ (os conflictos territoriales se recogerán (as regionesafectadas. el/ los religiosos (as religiones afectadas, en (os econámicos (asmaterias primas disputadas y el/ los raciales (as etnias enfrentadas. ..

Si se siguen leyendo las especificaciones del problema se observará que no sevuelve a mencionar ninguna característica de país y por lo tanto se puede concluir queno es importante como entidad. Por lo que elegimos la segunda opción mencionada.Los números de "Muertos" y "Heridos" serán atributos obligatorios del tipo de entidadCONFLICtO, cuyo valor por defecto sería cero.

• Representar "País" como un atributo rnultivaluado.

,• Pensar en PAIS corno un tipo de entidad que se relaciona con CONFLICTO

mediante la interrelación denominada Afectar.

Como un conflicto puede afectar a varios países se podrían considerar dosposibilidades de modelado:

42 DISHÑO DE BASES DE DATOS: PROBLEMAS RESUELTOS• ••••••••••••••••••••••

Page 29: Diseño de Bases de Datos - Problemas Resueltos

Esta interrelación ternaria tendrá un atributo. "N° Armas", que indicará la curui-Figura 1,24 dad de, armas suministradas de cada tiPll por un suministrudor a los distintos grupos

•••••••••••••••••••••••••••••••••••••••••••••••

Figur« 1,25

IKAH('AN 1b11,111

(l,")

N,MN ~11)"U'III'U ..1t,1

f 1.....

f_, Alllla..

III~>,\R,\l¡\')!t!!¡' tiRITO AK\ll\rXlfl.a1.1...l .

ti.",

En la frase "Los traficantes de afinas suministran diferentes tipos de arma a losgrupos arruados' se presenta una relación entre tres tipos de entidad. TRAFICAN7-E,TIPO ARMA Y GI?UP() ARMA/)O, por lo que tenemos una posible interrelaciónternaria, Para hallar las cardinalidades fijamos dos entidades y vernos COI1 cuántosejemplares de la otra entidad está relacionado, por ejemplo, fijamos las entidadesGRUP() ARMA/)() y 'tIPO I)E ARMA, lo que significa que para un determinadogrupo armado que posee un tipo de arma SI.: la han podido suministrar I Ó 1I traficantes.El resto de las cardinalidades se hallarían de forma análoga y también serían (J. n).Podría haber dudas con la cardinalidad siguiente: un traficante que tiene un tipo dearma puede suministrárxclu ti varios grupo» armados (cardinalidad (O.n) que reflejaríalas posibilidades de suministro), sin embargo, la anterior semántica se estarárecogiendo con unu interrelación binaria explícita Puede Suministrar que se analizaráposteriormente. Se tiene por tanto que la semántica de la interrelación Suministraconsidera únicamente los sumi nistros cfcct ivos, por lo que su cardinal idad es ( l.n).

"Lo,1 trnjicautes de al'/Illl~sununlstran diferentes 1IJ1(}Sde (11'11/0(1 los JlI'IIP(I\armados. De cada "t"! de (lI'I"lI,\ se n','oRt' 111/ 1I011l/¡re \' 1111 indicador de ,111

ropacidad destructiva. DI' rada IICl/il'(/IIIt' se recoge 111/ nombre, 101dijercntes tipos de (11'111/1 qn« (/lIt'd,' vununistrut r ((lI//Ic/IIC/ di' /11'/1/(/.1 de cada111111 de los tipos de armu 11'1(' podrta vuministrar. Si' mantiene el número totalde lIr/lI(l~ de cado 111/0 de 10,1diferente tipos eleannas suministrado por cadatruticunte /1 cada 1(1'11(111nrnuuln. '.

PARTE 3

.:;n:.::M.::.'..::'I~I\ _:_ __ __:C~.APiTULO1: DISf.ÑO CONCEPTUAL: MODEl.O FJR -15

,I III

"

.'t,1fIi

1:.nl t4.,11

1I ni ltl "'

t .~ " , ...,,1.,

.'l(t.\'Irr,II/\C 14"

--

Aunque aparezca el número de bajas por cada división. en el enunciado seespecitica que uunbién se desea conocer el número de bajas en total para cada grupoarmado. y para reflejarlo consideraremos un atributo derivado (que se indica en lafigura 1.24 COI' 1) 1) en 1:1 entidad CUUPO ARMA/)(), 1,,:.1figura 1.24 muestra elesquema correspondiente a los supuestos anteriores,

Por otro lado. detectamos la entidad déhil /JIV/S/()N que depende enidcnt ificación de (jI? Ul't) 1\ I?MA[)( J, es decir, cada ejemplar de f J/ V/SI()N seidentifica por el código del grupo armado al que pertenece y un número correlativo(que en el esquema E/R 110 podernos representar. ni siquiera con un dominio, pero quedebernos especificar 11 efectos de una posterior implementación), Todos los atributosque posee la entidad I)IVISI(JN son ohligatoriox.

La cardinalidatllnínilna de (iRUP() ARMAI)(J en esta interrelación es l. al tener¡II meno» un lulci polnicu que lo lidera y su cardinalidad máxima es 11. ya que 110 setiene ninguna rexu icciún acerca del número de lideres políticos a<;tX:lados a un grupo, .armado en concreto, La' cardinalidudcv asociadas a LI/)/:'R p(JLrrIC() podrfan ser Ila mínima y " la máxima :-i se considerara que ,,610 querernos en la BO aquelloslíderes que se relacionen con algún grupo armado. COI no es el caso.

el final se comprobará que se necesita corno tipo de entidad. ya que se relaciona conmás entidades.

~~ IlISI'NOIlI, Il¡\SES 1)1, 1),\ lOS I'i{OB!._1 :.:E~M::.:fI~:-'....:.K::.I::.:;,S:.:.l:.:.IE::.;I.:..:.T.:..:()::..:S _

Page 30: Diseño de Bases de Datos - Problemas Resueltos

En este párrafo se indican los atributos de la entidad O/?C,ANIZACIÓN, el AIPserá "Código", un atributo alternativo "Nombre" y un atributo "Tipo" cuyos valorespueden ser gubernamental. no gubernamental o internacional. Este ÚltiIT10atributo sepodrla haber pensado como una clasificación de ()RGANIZAC/()N. es decir tina

"De las organizaciones mediadoras le recogerá su código. Sil nombre, Sil

tipo igubernumental, 110 gubernameuta! o internacional). la orgunizacián deque depende (1111(1 COJIIO JII1Íxi,IlO), el IlIíl1lerO de personas que mantienedesplegadas en cada couflicto y el tipo de ayuda que presta el! cada conflictoque será de 11/10 y ,\(510 111If) de 10.( tres tipos siguientes, médica, dipltnnática oIIt'esellcial. "

PARTES

Figura /.26

U.I' ...(.... Avil)IK:\ T.,nquc~HClIIJbn.'"

DIVISiÓNIN

N l)ay 0-11;=====' =I.'="==:::;-¡Id 1)1\'\100,..-------

I.N

( 1,1) r--_~(I,II

( ).!0!,1GRUPOARMADOIhj",JEFEMII.ITAR

(l .n), 1.1 I

I'N

(1,11'

--oO.Ap"Y'"(1,1, I I

C,.h~" . I 1r>F.RPOLlTNr.lll~r\:~t--l:,;~;;;;;;;;;~I.N

Siguiendo con el estudio de cardinalidades la interrelación Obedece, que asocialas entidades JEFE MILITAR Y LíDER POLíTICO, tendremos (1,1) para JEf-EMILITAR, ya que siempre obedece órdenes de UI1 Ifdcr político y (O,n) para el otro tipode entidad porque no todos los Hderes políticos tienen el poder necesario para darórdenes. La figura 1,26 muestra el esquema correspondiente a la semántica anterior.

C'¡\P(TlJI.O 1: DISeÑO CONCEPTUAL: MODELO E/R 47ORA·MA

•••••••••••••••••••••••

Las cardinalidades asociadas a J ¡':;I"L~MI LI7i\R en la intei relación I)iri~e, que•surge con la entidad I)IVIS/()N, son (0.1) Y en el sentido contrario de (1 ,~) ya que se

especifica en cl texto que una división la pueden dirigir corno máximo tres jefesmilitares.

La entidad .IEFf: MILI7AR tiene corno AIP un "Código" y un atributo obligatorio"Rango" ,

Aparece un nuevo tipo de entidad JE/7E MILITAR Ydos nuevas interrelaciones,•una con l)IVISI()N para saber qué jefes militares dirigen cada una de las divisiones y

otra COII titn:« ['()Lí7JC() para conocer de quién recibe órdenes cada jefe militar,

"Cada divisuin 111I,,((.!e/('II dirigir conjuntamente 1111 máximo de tres jeJe,fmilitares. aunque cada jefe mtlitur no dirige más de una division. A cada jefemilitar se le identifica por UII rádigo. además SI! recoge el rango que éS11'

posee y dado que 11// jefe militar 110 actlÍa por iniciativa propia sino quesiempre obedece [(1,1 árdenes de UII único líder político de entre aquellos quelideran al grul'(I Orillado al que el jefe pertenece, se registrará el lídernolitic» al (/U<' obedece. "

Estc párrafo es el que confirma la existencia del tipo de entidad Lfl)ERrouitco. Pero adcmús, se añade que este tipo de entidad es débil respecto a laentidad GRIJI"() ARMAI)O. por lo que se debe añadir al esquema, También se añadiráque la interrelación Lidera es en idcntiflcución.

. ..(/1/(' ('SIl' 1/(1,11'(',

"Los ltdercs politicos se identifican por su nombre y pllr 1'1cfÍdi~() de grupo!1/'1I1(/tllI qu« lideran. AtI('/lIIÍJ SI! /'('(,O~I! Iflla descripciá» textuu! de los (/POVOS

PAR'rl~ 4

Para reflejar el tipo de arruas que posee cada traficante y qué cantidad PuedeSuministrar (es decir, su stock) sc creará una interrelación binaria entre estos dostipos de entidad y se indicará con un atributo, "Ex. Arma' en dicha interrelación, la in­formación sobre el stock de cada traficante. La scmánt ica anterior se refleja en lafigura 1,25 (ver figura en la página actual),

Como identificadores principales de las dos nuevas entidades. TRA/:ICANTE y7'IP() ARMA. se tendrán los nombres. suponiendo que éstos son únicos. Además, en laentidad 7'JP() ARMA se tendrá otro atributo "Indicador" que informará de la capacidaddestructiva de cada ejemplar de dicha entidad. y que se supone un valor ohhgutorio.

armados. Este atributo nos da una pista sobre la no utilización de interrelacionesbinarias en lugar de la anterior interrelación ternaria para considerar este supuesto. yaque no serían semánticamente equivalentes,

~(> DISI:ÑO (lE IlASI'.S 1)1' DATOS: PROBLEMAS ReSlIELTOS

•••••••••••••••••••••••

Page 31: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••1:¡XllltI 1.17

•••••••••••••••••••••••••

EnunciadoUna empresa decide informaii/ar su nómina. Del resultado del análisi« realizado.

se obtlcncn la" siauicntcs informaciones:-

PROBLEMA 6: (;ESTIÓN DE NÓMINAS

I NSecuencialidad del número de divi'lión oc un grupo armado .•

I I n)SUPUESTOS SEMÁNTICOS COMPI ,E l\1ENTARIOS y SEMÁNTICA NOREFLEJADA

,.,v...,....~ tlr.1\M"" ..,,,,. ,u '"

1"...

•I rt' lMi\IKAklt-

1'....lit ... 1

kl\(',,'111 , ,

I I t "1), I I (",JI

tC ••

,N

tltn.ctl.n)

111.1 \NM

h' 1,,'~I

IN

Para recoger que los Hdcrcs políticos pueden mantener conversaciones con lasorguni7.aciones mediadoras Y viceversa, crearemos una nueva interrelación paracOlnpletar el esquema, que se muestra en la figura 1.27.

"('011 div ('I'\lIS );11('.'. 1111tidcn: IloIÍli('o., dil/logo/l CO/l 111.,Ol'/oIIIII/:lIC/lll1t": SI!cI¡'.'¡'o rc« o,l:('r (!l/llíci/(/I/J('/I/t' ¡·,/a II/{onl/ar;fÍ/I. A ,í 11(1111cad« lidl'" .,¡.I¡'¡'''/o:('/I;I/ 1111"(,11<1\ ol'g¡lIl1:a( /1111<" ('01111"t! dialoga \' d( ('I'(·"a ..

, "R••,:...'. 11 ,.11,11",lo(

1>, (.101."1'(1 ,\I<~t.\I)()

• 1.1 I

El que dentro de un ¡;ontlicto una organiza¡;ión sólo pueda prestar un tipo deayuda. Silllplirica la solución. Una hipótesis ITlÚS general supondría bien tener queintroducir un atributo 111l1ltivaluauo. bien añadir una nueva entidad y proJllocionar lail1terrelal.:ilÍlI Media a un gradll superior a dtl~.

1I 111

( ...t, t". ( ......... " • ..t••

" "'I'anlhién se desea guardar inforrnaciún sobre las unidac'e- que oespliega en cada

conllicto. que se representará corno atributO de la irnerrclación "'lcdin al igual que eltipo de ayuda que se definirá dentro de un dominio cuyos valores serán los tipos deayuda expuestos en el párrafo.

Id I ¡J.-¡

,,

,1 11

C0l110 aparece en el texto que una organ izución puede depender de otra, se rcndraen el CSqUCI11U una interrelaci6n rcücxivu, Depende. cuyas caruinalidaocs son (0, 1)para representar este hecho y (ü.n) para recoger que una orgunización puederepresentar a cero o varias organi7aciones.

No es difícil determinar que los ciclos producidos no son semánticamenteequivalentes. por lo que no SI! tiene redundancia.

Figura 1.28

Agrupamos las distintas soluciones parciales obtenidas en la figura 1.28.

•,jerarquía. pero se puede prescindir de ella. ya que los subtipos ni tienen atributospropios ni se relacionan con otras entidades. con lo que se recoge la misma semánticadefiniendo un dominio para este alrihuto.

Propuesta de solución-IX IlISEÑOI)I' IlI\SI;_<; IlE nATOS. "ROBI I·.MAS RESUEI ros

(' KAM" • ~C:.:::A!.!.p..!.í·.!..:rU~I!:::-O~I:..2:1J~I~S~E~Ñ~O~C~O::!!N::!:C~cPT~I:!!JA~L!:.!:.!M~O~D~EL~O'::!....!:tJ~R~~.W

Page 32: Diseño de Bases de Datos - Problemas Resueltos

"SII// ;/1I1()~ propio, rll' UII ' '(/- /" {', , .I/I.~ 1 /('1111/1' 1" 1/01/111111l' Il/gl('SII 10/111 /'c'/'I';/¡it/o/IU' ,:' ('III/llt'IU/1I \' ('1 tI¡',W'/I('1111I 1111111 III"h'II(/I/. 1,11di,\'liIlC'Ílíll ('1111'1' do,111\1I/ICllllh', de luí/l/;II '1 . / • / '/'1 ' ' ,11 ,\(' IU/'II, (/1 I'IIII/S l l' 1I1('¡frllll/(' C'llIlíllll.'r(l c/c' 11Il/lr/culo" ,'/II/"c,(/tll:. 1111'(/((11111'el c'}('II'ic;1I Ji,'cal \' 1I1;11I1'/'1I (/c· IIIC',\' (11que {1I'/'{t'III.'C'I'\ (UI/ 1/1/ 11/11111'1'1)dI.' ( ./ 1 1 '"

1/11'11 C'/I l' C'Olll 11' \'1/1'111,' jll.l'lIlh'I/lIII'\ dI! "';/11//1(/1", /h"lu, ,'I'lIi'1/1I1111<'.\. "

1)<: e,te ...upueslo se oOlienen los ;¡lribulo~ "Nolllhrc" y "Sc(lc" d' l' ~ 'd' d/1//', \/f/i\M/;N7' ."..... , c a enll <1

I .' (J, La Sede se consluera COlll0 un :,Ilnouto Inultivalu'ldo pues, 1\lIle \"lrto~ v' I ' di' " ''1 ,', ,1 ore). y e enunCIado nn ~(!ucsprt'ntle que leng~1 alrioulns propios yl" .L l\)Il<;ldl'rar~L' por lanto una entidad propia.

"1),- UII ¡{('flllr/U/llt'IIIO ~t' II/el/lliell,' ('1 IUI/I/bre \' 'licia 111111di' '11.\ pIJ.I'ihlel,,·dC·I...

'\ ~\II~ ¡~~rt~Utl,)'"t~~'I:l.Cllli~~d !:ft.!PI.I~~\/)() ..:1 "N" de .~all íeula". cl "Nonlhrc", 1.'111" . ~ l. N ~~ H IJII' . lo... Dalos tle ( lienta C'llrncnte ) el "Por,'enlaje de Relen­

,11111 • 1:1~dl!nllllcad."r dl' la enlidad 1:',\1PI.E,\/J(). corllo se e~lahlece en el enunciado., l'l _atnhlltll "Nulllero ue i'vlatrícula". 110 el alrihuto "NIF". que aun siendo11"l\ltltcador de la entidad no es identilicaúnr principal. '"1l1 idenlificador alternalivo.

1'aru 1e:-tll ver lit... curdi nal idadcx de la anterior inrci relación precis~lIn()s considerar'11) 'UPUl· ...tO ,CIlI;1l11ICn ('·lllnpll.'lllenlario. Sc sup"lldr;,í que pUl'dc haher c1eparlanlclllos111 l'(llpk':ldll"¡: por l·IClllplo. un depaJ'lallltlllo r<':t'ién t'l'l'at!o al cual 'Hin no :--c le haya,"I!!I\,uln pCr"lll1al. aunque IUl puede hahl'r l'lllpl('ad()~ :-oindepallanlclllo,

1)/:'/'AR'fi\M/:NT(J tiene una interrelación N:M (Trabaja) con EM{-'LEA/)O' l'11Incion" no podrfu considerarse corno una entidad propia ~il1o C0l110 un alributo' d~

",la interrelación. pues no posee I11Ú... propiedades que el propio identificador, Si elnu-mo empleado pudiera trabajar con distintas tuncioucx en el mismo departamento,h..bna de e.I~lplcar!.e U." atributo multivuluudo. lo Cual tcudríu implicaciones en la11;"I~llIl'Illal'I()11al relacl,onaL pues entonces, el atribulo "Función" debería pasar a fl)r-111:11parle de la cl~)\'c pnmanu de la correspondiente relación.

P(ldna pl'lI.,ar,e que "Departamento" "'C trutu de 1111 atributo multivaluado. xinl'lllh.lr!!1l ~o e\ a.,í. darlo que. 111anICndrí~~una relación N:tvl con F.MPLEAI)(). lo quenu ¡;\ posible. ya que 10'\ arributos mulrivaluadov maruicncn una relación I:N con lacuud.ul a la que pertenece». Además, en el ...iguicnic pún afo del enunciado. se danprnpicdadc-, adicionales de los depanamcmos. por lo que definitivamente se trata de1111,' cntidnd C(l11 iuformación propia.

. "Datos de Cuenta ('orricl1~e" llO se trata como entidad. pues aunque posee varios,llllhl,ll~l" (h¡¡nl.!l~. '~Icllrs~' ) numero de cucmu). Iodo, junios compondrían Sil únicoulcntificadru principal. Se trata por turno de un atnbutu compuesto u partir de lo.,,llllhlllO ..."Bunco". "Sucursal" y "Número de ('IICnl,,".

__ ('\I'IIIIIC'!__!?I\I':>'_(I('(IN< 1I'II,\I..r.I()l)I·.l.lJl:J~ 5'.. \ \1 \

••••••••••••••••••••••••••

I

ESlc p'írr'Ifo dc),(,'nhc b¡i~icall1cntl! propiedades acerca de IllS elllplcadll .... ;llIn((lll''ucd<.:~ de~c<.:;ar...c Illle' a... cnt idadc... candidala~. /)/:'P¡\ 1<71\¡'vlF.N·/YJ, /)tI ·r().) 1JI'(I/:N'/i\ ('()/(I</L:'Nl'/ ~ /,(/{\I(·I(JN.

"A ('lit/O l'II/{llelldo ,\/' f¡' 11\/,111/11 11111I1;III('/'O ti" 1111111';('111111'11 1.'1111111/1<'11/0¡/e SIl

;'1('(/rl,o/'oc;úII 11 la ('/lII'I'I'SII, y Ir~/I' (',\ el IlI;I/II'1'1I lisa do 11 1'(1'('/rlV ;lIr~'nll~,\ di';¡II'"rijil'o(';líll. I\¡/I'IIU;,I. 1'(' I'I',II;"II'UII (·1 NIF c/I'I /!/lT(lIt'lIdll, ","111)/,(', 11/11/11.'111de"UI/,I, I'II/'('("(/U;,' '/1' /,1'1,'1/(';111/ 11111'0111/(';1:/11111, t1ullls ¡f¡- 1:"1'11111 1'111.,.11.'111" 1'" la(/"t: SI' 11' ;III{/'(',\(/ ,'1 t1ill('IO Iblllll'(I, ,~t1('t1r,ul .1' 11t/IIH'f'1J I~I.' (,III'/I/tI>, \'

dl'I'(I/'IOI/le/llo,I 1'/1 los t/III' Irolllyo, l//I 1.'/111,11'1111(1IIIII'dl' rrohlljl/l ",11 l"~~'II','(/<,/,urrCIIIII'/lIIIS \' ('11 ,'otlo 1/11(/ tic I'I/I/S Irlllllljord ('1//1 11/111 fill/I'llí/l tlllllll/tI.

Hu este párrafo uunbiéu se intuye la mtcrrclucióu existente entre la~ dll\ cmidadv ...tcctadas t¡Ul' dCI101l1inan:1l10\ I~('('ihl', 1.::1 he<.:hll de l.lu,,: ti un enlplcado SI.: le enlrl'~1I1'Illcnos 1111 jUl'ltil'i<.:antc de nOlllina plldna illdllcil a pl.:n:-ar que la cardinalidad I~línllnac ...ta inl<.:rrcla<.:ión l'S linO .... in \'n1hargn, por cOlloci!llicntll uel d\!I11inl{l tic dl~<':UI\\'

hcn10S que un clllplt'ado rccién Clll1lt atado no recihiriÍ ha:-.la .fina.I!!:--de ...11.pl'llllCI !lIC', trahajo llillg.Úl1 ju:-.liricallle dc 1lIlIl1in,I. pl1r lo que e:;la cardInalIdad Il1lnlll\:I c:-. .ccrll1 cuanto a la cardinalidad l1"I\ill1a, \.'n prlncipiu no se atinna nada. pcro ,uponlclldllC~l"'On1¡_isgeneral) apoyunulI ,'on l1uc'aro eonocinlÍcnlo del dl'IUinill. dI.' di",cu:;"pllnellllls qul.' :<e trala dc 11. La ... cartllnalidades del ~)Ir~)exlrell10 de la Inl<.:rr~lal·I\)I~(.'cibc (1,1) "'1.' dctlu<.:cn lanlhiél1 dt' nueslro conOCImiento acerca d<.:1dOn111l1l1dlscurso. No parece lóg.ico que \'urins cnlpleados recihan el lui!'o.nlo jusli lican.lc dI.'Sn1ina. ni que haya ju ...tilil·allte., d<.: nÓlnina que no sea~ rct:~hJd(ls ~lIr nll1~UI~npleado, Se Iiene, por lanlO, quc un ell1pleado puede reclolr vart(l~ Ju),11fit:unte:< tk:1I11Ínay que lodo ju,tificunte de nón1ina lo rc<.:ihc 11110 y sólllun enlpleadl1.

I:'M /'/.1-:1\ 1)( J )l'OIIlP tale ... su[vu

l'inucs tan sólopueden couxidcruo-c

S<.: reconocen I'OIlIl) l'nliuade~ 11I.ís-srtncwm: tn: N()MIN/\. [)e 11111111CI1til1.' xe (Iponga alguna inlununción poxrerior.

La entidad t'¡Il11jidala /1//:') ,e ha deducido tic la inlormación que diclalllina 1"iodicidud de recepción de lo-, ju ...tilicantl'" de nomina. !\Iín es prellt;.ll\~r() e ...ruhlcccrtratamiento de la dimcnxión temporal. pero la inclusión de una entidad para lo!'>ses parece una solución cOlllpleja y de hería evitarse sa~\'o quc, fuera l'~trit'laluente:csario. Aparentemente IlO aporta nada. y como se \'~ra poslcftnrtllcntc. el IUC... e...l JI.' las propiedades de I(I~J( IST/F/C'¡\rV'/,/:'S Dl: N()!VI/¡V/\. por lo que tal \ l'l ...ele tan sólo de UI1atributo de cxtu entidad.

11e1110en que UI1 empleado pierda Sil condicié» de perceptor de nomi na. seiinarín cl corrcxpoiulicntc ejemplar de la entidad EM/'LEA/)(). El inconvcrucute c:-.se perdería la inluunución de 10:-' empleados que ya 110 l'"iÍn en activo. ()tra.,mauvas povihlex ...011. mcluit un atl ibuto de l·:-.Iado (¡II.:li\1I 1) (10). c\)II,ldl'ral umbo ..IS de empleados corno parle de una jerarquía (11:empleados. 11 bien 1~lalltcllcl unaparalela con ..inulur e...uucuu a qUl' CI1I1ten)!a la illrOn11a<.:iúll referente ,1 1<1'

picado, dado, de haju,

I( \ \ I ,i}1~1:..\¡\)IJI 1I,\,">I'.~1)1'1J,\ 11)">I'I« llll.!:~ \~ 1<1"HILI IO::.~__

~••••••••••••••••••••

Page 33: Diseño de Bases de Datos - Problemas Resueltos

1'//),1 I.JIU( )R/IL no ve trata realmente de una entidad: parece que aunque elplOpOS1l1l de este Si,tcrna de Info/'nlat:i\ín ~ea rCl'ogc1. al 111ellOS cn pane. viua"1,loor:lle" I.':-.Ie Cl111t'c.:ptl1no está clarall1cl\ll' uctíniuo y adll1ile diver<;a~ interprc­I;lcionc" ¡,Qué t', una \'iua lahoral? Desde ulla per:-.pectiva alllpli<l. una vida laboral\~'ría loún aquello ljuc le acaece él un elllpleadl), pero no interesa recog.er todo lo que le,ucede a UI1 clnpleaúo, taD s(Ílo aquello que resulta de intel'l!s para los propósitos delSi"tenla de Inlo/'nlaei<Ín (la gestión de las nlÍlninu~), Adelll,í ... de csta consideraciónl'\lIHU entidad, \'iúa lahural puede interprelarst' eUlnn infonuación de contexlo, de estaIUrllla, el ~'onccptll dc vida laboral -:erviría :-.inlplelllentc para úelilnitar el nlaren1c'llIporal en que UIl clnpleado puede recibir juslilicunte1> de ntllllina,

!:'1I4l'RI:S¡1 puede ser dexechada. dado que lo tille interesa a este Sistema deluformaciun no e, recoger empresas en general, sino recoger tan sólo los datosreferentes a una y sólo una empresa (la propia empresa), por lo que en el caso derecoger una entidad I::MPRESA, ésta contcndrfu tan s610 un ejemplar que estaríadcscribicmlo ;t la propia empresa. lo cuul curccc de interés y tan sólo complicarfa elesquema de d.uos resultante y las aplicucioncx desarrolladas sobre el mismo. Espreferible vupnnci que lCld:J la intonnación presente cu la RI) est.:í referida a la propia\'lIlpre:o:a ) omitir e:-.I¡,entidad. Dicho de otru numera. la empresa en que se desarrollal'l Si'I~'IlI:1 de lnlurntnciún e-, parte del contexto del mismo.

l.n e\te pnmer párrafo pueden detectar-e la\ viguicntc-, entidades candidatas:I,A!I'L/~tll)(), j{ISJ1FI('AN71~ 1)1:.'NCJAIIN/\. vio: I.AJJ{)RAL, 1:.'MPRESA y NII:;S.pero I ,H i"" de ella ...no llegarán a tener J¡J conxidcración de cnt idade~ reales, Así. pordiler,\).., motive», que <e explican a continuación, se de-echaron c,\11PRESA, \1/1)/\I,Af/()J</IJ,) A./I:'S,

",\ ,(/.10 ""/f,f"(lda 't' fl' cntrrgun multipic» 11/\1///('1111/1'.\ cll' 1/11/1111/(/ (/ 111ftllgoti" ,,, , hf" !"f>"ruf I'//Iu ('11111/1'.'11 I ClI//II'IIIII IU/OIIII'/I,I/II(¡IIC'I/(t', ..

Discusión del enunciado

__ _.:(.:..'I\.::.l'l'Itll() 1 1l1'>t.Nl)('O[\C'I'I'rlIAI .. MODI',I () 1'11< '\1H \ ". \

En d<.:lel'lIlÍlIaua ... f..:chu", lJue ,e dehen recoger, c:..d;¡ elenH':fllll de cu,tc Sl' liquida':011 cargo :l V:H io" :Ipuntc\ l'lll1tahles (clÍdign y ctll1tieJad) y ~I ulla tl variustrallsferencias hancarru', de la' que "1.' recogcn Ini'odatos de euent:1 ellrricrnc (hallen,:-.u\:ursal y nÚIl\erll d~' Clll'nt<l) )' la eanliúatl, Pllr caúa apunle contahle y trlln,l'erenclahancalÍa "l' Plfl'dcfI hquid:1f \ :11'111'ek'lllcnt\)~ de coo.;lC,

Enlre los elenlel1lo:-. de co:-.tc se eSlablece una jerarquía, en el senlido tic que UI1

,:lel11cnto de coslc pu<.:ue t'ontener :1 011'0" elell1cl1ll)$ lk' (,;oslc, pero 1111 elenlcnlO de.:oste s610 pucde e~tar cOl1tel1ido en, a In SlJlnn, otro elcnlcnlo de cosle,

;e inlpula éll lnenn~ a unIl1putárse le vari as Iínea:-.,jescripeión y un saldo,

De cara a la c.:Ol1tahilidad dc la cn1rrcsa, catla línea dc un juslific.:anle dc nlilllinaclenlenlO tic t:llste, Al Inislll() elelllcnto de co:-.tc puedenPara eada elelllenln de co:-.le, se recoge un código, una

'roda Hlleu de ingre:-,o de un Ju,tilícante de nÓlllina re"ponúc a un lInleo t:onccPln'clriouti \ o, En un Ini'1110 ju..,t í licante. puede haher \'arias línea:-. que re"ponúan al11ismo coneeplo retnhuti\'o, 1)1.' lo, eonecptos rctrihuti\ os :"e Illantienc UIl códIgo )'Jna descripción,

Cada justificante de nómina cunstu de varias línca:-. (al mcnus L1IHIde ingl'l':-'Cls) y'au" linease identifica por UIl numero de línea del correspondiente ju-tificuutc. tinaíllca ruede corresponder a un in~re~o II a un descuento. En :1I\1h~,\ ca\o" se lec.:lIg~ la-antidad que corresponde a la líncu ten poxitivo s! se muu de IIn mgrcs» (len ncgauv».i -e trata de UIl descuento): en el cavo tic 10:-'descuentos, se recoge la ha,e 'lIhle la.uul se aplica y el porcentaje que se aplica para el cálculo de é:-.lo:o.,

Son datos propios de un justificante de nómina el ingreso total percibido plll', elmpleado y el descuento total aplicado. La distinción entre dos jusnlicantc» de ,l1Úllllnae hurá, además de mediante el nÚlIlCI'O de matrícula del empleado. mediante eljercicio riscal y número (1<.:mes al que pertenece y con un número de orden en el casole varios justificantes de nómina recibidos el mismo IIICS,

De un departamento ...e mantiene cl nombre y cada UII<Ide :-.us posibles xcdc-,

A cada empleado se le asigna un numero de uiatrfculu en el nuuncnto tll' 'uicorporación a la empresa, y é-ac e), el número usado .1 elecl~l' intelnll\, delcntificaciún Además, <e regl'lran el N1F del empleado. nombre. nUIIIl.'11lde hijov,orcemajc de retención para Hacienda. dato, de cuenta corriente en la que <e leigresa el dinero (banco, ...ucur ...al y número de cuenta) ) dcpartumcntuv en lo ... que'abaja, Un empleado puede uubuj.u en varios dcpartameruo ...y en cada UIlO de ello:"'abajará con una función dixtimu.

A cada empleado se le entregan múltiples justificantes de nómina a lo largo de suIda laboral en la empresa y al meno-, uno mensualmente.

I IlISE;\;UI>E BI\SI'~<; IJI' 1);"I11:-' l'lHHll.l',l\lAS ¡{EStll'l lOS

El e~tahle\:iI11icnto de este Inan:o tenlpnral induciría a restricciones sobre laillfnrlllaei<in adlnisihle en la eXlensi\'lIl del esqucllla, Si n()~ f1janl0s en este conlextoIl'lllpor:J1. ¡,qué slIccdl'ní cuando un elnplea(lo se juhile y fintllice su vida lah(1ral?Jlo~ihlcnlcnle Cl':-e :-iU pcrecpcicín dc n<)lninas. lo cual nos llevaría u replantearnos el\lgnifieadu de la cntid,ld f.'MPI,/~/\/)(). ¡,Qué va a contener esa entidad? ¡,clnpll'adost'lI ~eneral () Solilllll'nle elnr>le~ldns ren.:eptores de lI\ílllinas'! 'rodas eSlas cuestiones y111;~tlee~1>~'IlHíl1lic(), hahrran dI.' aclararse reviSallthl la lnrOrlll¡¡ci<Ín dispunihle dcl1I1I1\'e1'SOde discul Sil y los reyuerillliento:-. dl'l Sisleln:1 de InfonllaeitÍn, realilandopo\ihlcll1l'nle un ;lnÍllisi1> nl:'t~ pfofulldo del presentado cn el enunciado dc esteprnhk'lIla POI \lnlplifil',lr, CIl lu :-'OIUl'l\ln pr ,'pul'\ta, ~e cOII"idera que lu entiúadf \f!'f,/'.'/I/)() l'ílllllenL' 'cilo elllpleauo:o. [lCll'(.'ptlln::-. tll' I1Clflllll,l: por lanl" \,'11 el

•••••••••••••••••••••••••••••••••••••••••••••••

Page 34: Diseño de Bases de Datos - Problemas Resueltos

Dada la anterior interrelación. puede señalarse ahora que los atributos "IngresoTotal:' y "Descuento Total" en la entidad JUSTIFICAN7'E DE NÓMINA son de-

Figura 1.30

DESCUENTOIN(lRIiSIl

m.1

Id_line.

ICl,I

1I

1.1'1

O,I,!- -,

La interrelación Consta entre las entidades NÓMINA Y LfNEA DE NÓMINA essimilar a la que se da entre una factura Y sus líneas de factura o entre un pedido Y suslíneas de pedido. por ejemplo, se trata de una agregación todo-par~e, En, estainterrelación se tiene una dependencia en identificación, por lo que la en~ldad LINEADE NÓMINA es débil respecto a la entidad JUSTIFICAN7'E DE NOMINA Y suidentificador principal estará compuesto por el identificador principal de JUSTIFI­CANTE DE NÓMINA junto al atributo "Número de Línea" (que tiene numeraciónconsecutiva dentro del mismo justificante de nómina).

Se puede distinguir una nueva entidad ÚNEA DE NÓMINA con un atributo "N°de Línea" Y otro atributo "Cantidad", Las líneas de nóminas serán de dos clases,ingresos Y descuentos, Y podría pensarse en diferenciar estas clases mediante unatributo que indicara la clase de Hnea de que se trata; sin embargo, dado que en el casode los descuentos se tendrían las propiedades "Base" Y "Porce~taje", es preferibleintroducir una jerarquía Y considerar a estas clases como subtipos de LINEA DENÓMINA,

CAPíTULO 1: DISEÑO CONCEPTUAL: MODELO ElR SS••••••••••••••••••••••

"Cada justificante de náiuina C()II.~/(I de varias lineas (111 /l1('1I0S /11111 deingresos¡ y cad« linea ,1'1.' identiflc« por /1/1 número de 1(111'(1 dell'O/'l'I'.I,/lIl/lllil'IIII' [ustijirunt» U,,(/ lineu puede corresponder 11 /111 ;1181'1'.1'11o 11

11/1 tll'S('U(·/I/II. r:1I ambo» ('11.1'11,1', .\'1' recoge la ranüdad que corresponde a 111I{II('/I ('11 positivo 1I se II'UI(/ de /111 ingreso o ('11 negativo si ,1(' trata de UII

descuento): e" el cusn ele IO,f descuentos, se recoge 1(1hase sobre la cual se1If1li('(/ y ('1porcentaje que le aplica para el cálculo ele éllo,f ...

PARTE 2

Figura 1.29

f\t' .. I"'tl" NI!

'"

, • .1'1

El resultado de todas las consideraciones real izadas en esta parte se presenta en elesquema mostrado en la figura 1,29,

El atributo "Ejercicio" permite la distinción del mes a lo largo de diversos años,en C~IS(lde ~~e el ~nunciado no introdujera este atributo se requeriría establecer unanl~nera de dl.lerenclar los meses ti lo largo de los años: entonces, o bien se incluye esteatributo O bien se establece algún convenio. como enumerar los meses consecuti­vamente a partir de un determinado año (por ejernplo, 1900), La inclusión del atributo"Ejercicio" permite, además, diferenciar el número del Ines dentro del año.

, Dado que la, identificación de un justificante de nómina se realiza a partir delnumero de matrícula del empleado que la recibe, la interrelación Recibe es en!dent!ficaci6n Y, p~lr tanto la entidad lIJSTII''JCAN7"E I)/~ N(lMINA es débil Y suidentificador principal engloba ti tocios los atributos del justificante que se empleancorno parte de la identificación: "Ejercicio", "Mes" Y "Número de Orden" junto con el"Número de Matrícula" del empleado.

En este apartado se introducen los atributos "Ingreso Total", "Descuento Total","Mes" y "Número de Orden" de la entidad JUS71FICANTE DE NÓMINA.

5.¡ DISENO DE BASES DE DATOS: I)ROflLEMAS RESUEI.TOS

~•••••••••••••••••••••••

Page 35: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••

Se obtiene UII'I nueva entidad 1'1?ANS¡,'f.RI~N('/A, con atributos "{ 'ódigo" (seprecisa para diferenciar las distintas transferencia .. entre sf, por lo que se considerarácorno identificador principal), "Cantidad" y "Datos de Cuenta Corriente" que a su vez

Figura 1,32

.~

r'------'-., ",11APUN"rti('(),NTAIlI.F. I

«tl't.ll$." I~ 11('\."'0 'S.lldor...h. 41 () (__.~t II,.'..r'---'-___Jc,"~= ELf.MfNTO Ct)STP.

INM tU.11 tn.1I1

II,n'(".-dl,",'" t+;ullkl.",1

4

8..•••

..El/ detenninadus [echas, 411e se deben recoser. cada eleiuenta de coste .I1!liquida CO/l cargo a varios apuntes contables «('(id;,,?oy cantidad) y (1 una ti

varias transferencias bancarias. de las que SI' recogen 10.\ tialOS de cuentacorriente (banco, sucursal y número de cuenta) y la cantidad. Por elidaapunte contable v transferencia bancaria se pueden liquidar varioselementos de coste, ..

PARTE 4

Figura 1,31

('tJ~("F.PT(). Rl-:.'" UI;'''('' 1t:...'1TC)

IN__ .

l.Lt--J.'''IIo'T() ruvrt. IINf~ ..\,-l----'---', 11,.'~--<:::-

UDaestructura arborescente propia de las jerarqufas implosión-explosión. El tipo de lainterrelación es I:N y las cardinalidades son (0, 1) Y (O,»), es decir, un hijo sólo puede

, tener un padre, mientras que un padre puede tener varios hijos, Se supone que unelemento de coste no puede contener a ningún antecesor suyo, pues en otro caso no setendrá un arbol, sino un grafo,

El resultado de todas las consideraciones realizadas en esta parte se presenta en lafigura 1,31,

CAP('llll.O r- DISEÑO CONCEPTUAL: MODELO ElR 57

~••••••••••••••••••••••La jerarquía que el enunciado señala que existe entre los elementos de coste, se

'rata en realidad ele una interrelación reflexiva en esta entidad, Refleja el tfpico caso de

"('0,111',

"/:,'1(1'1' los /'/('/lU'/lIII.I' de coste se establece 11/10 jerurqui«, 1'11 1'1sontido de11111' UII elemento de coste puede contener el otros elementos de coste. pero 1111

(,!t'/I'I'II/0 di' coste ,w¡ff/ ¡JlIl'dl' estar contenido en. 11 lo .\'1111'11, otro elcniento de

Surge aquí una nueva entidad ELEMENTO DE COSTE con atributos "Código","Descripción" y "Saldo", Se supone que el atributo "Código" es el identificador prin­cipal.

Se tiene una interrelación Imputa entre las entidades ELEMEN7'O I)E COS1'E y,LINEA (esta interrelación afecta a ambos subtipos de la jerarquía de líneas, por lo quese establece sobre el supcnipo). Se trata de una relación N:M en la que se fuerza unacardinalidad rnínima uno en el extremo del elemento de coste, por ejemplo toda línease imputa al menos a un elemento de coste.

"De cara a la cnntahllidnd de la empresa. cada linea de 1111 justificante deIIá/l'¡III/ se imputa al menos II un elemento de coste, Al IIli.5/110 elemento de('0,111.' pueden imputársele varias lineas. Para cada elemento de coste . serecoge 1111 I'(ítlij(o, 1111(1 descripclán y WI saldo ."

Se distingue una nueva entidad CONC'EPT() R/~'7'RIJJ{J7'JV(),con atributos"Código" y "Descripción"; podría haberse considerado como atributo multivaluado sino dispusiera de atributos propios, Se supone el atributo "Código" como el iden­tificador principal de cstu entidad,

El subtipo .fN/~'ASI)E INGRESO tiene una interrelación I:N (Responde) con la•entidad (.'()NCEPTO RETRIBUTIVO que no tiene la entidad LINEAS DE

I)ESC.:U/:.'N1'O,lo que apoya la decisión de reflejar la jerarquía de líneas de maneraexplícita,

"Toda linea de ingreso de U/Ijustificante de námin« responde (/ 11/1 ,íllicoconcepto retributivo. E/I UII mismo justificante, puede haber varias lineas querespondan al 1/';,\'//10 concepto retributivo. De los conceptos retributivos semantiene 111' cádigo .Y una descripci/m. "

PARTE 3

El resultado de todas las consideraciones realizadas en esta parte se presenta en lafigura 1,30 (ver figura en la página anterior),

rivados, pues su cálculo puede realizarse a partir de la cantidad que figura en las líneasque componen cada justi ficante.

La jerarquía existente en la entidad LíNEA DE NÓMINA es total, dudo que todalínea es bien una línea de ingreso o bien una de descuento. y exclusiva, dado que sólopuede ser de uno de los dos tipos,

1) RA,MA51l DISEÑO DE BASI'~<;nE »A'I OS; I'ROBI,EMAS RESUELTOS

Page 36: Diseño de Bases de Datos - Problemas Resueltos

••

La unidad básica de acceso a los subsistclnas es el denominado perfil de acceso.Un usuario tendrá acceso a todos los subsistelnas H los que permiten acceder losdistintos perfiles de que disfruta (al menos uno). Un perfil permite el acceso de almenos un subsistema y para cualquier subsistema habrá siempre un perfil que permita

acceder al mismo.

Una empresa decide crear un único entorno de ejecución que controle laseguridad de acceso para todas sus aplicaciones infonnáticas. Para ello consideraconveniente dividir sus aplicaciones en subsistemas funcionales especializados Yestablecer el control de acceso al nivel de estos subsistemas. Se desarrollará un motorde ejecución que. tornando como parámetros los contenidos de la SO. controlará laejecución de los slIbsistelnas Y el acceso a los mismos. Este motor se hará cargotambién de la navegación dentro de los subsistemas. Profundizando en este enfoque.se establecen los siguientes requisitos:

Enunciado

PROBLEMA 7: EN'rORNO DE EJECUCIÓN

•Secuencialidad del número de línea del justiticante.

La cantidad en las líneas de ingreso se expresa corno un número positivo y en laslíneas de descuento COI110 un número negativo.

• Un ernpleado no puede recibir nóminas tras la extinción de su vida laboral.

• El que cada empleado reciba al menos un justificante de nómina cada mes.

• El que haya al menos una línea de ingresos en cada justificante.

• Secuencialidad del nLÍmero de orden del justificante.

No se pueden recoger en el esqllelna ElR los siguientes supuestos selnánticos:

• Se ha supuesto que puede haber dcpartarnentos sin empicados, por ejemplo. undepartulnento recién creado al cual aún no se le haya asignado personal.

• Se ha supuesto que un elemento de coste no puede contener ningún antecesor

suyo.

SUPUESTOS SEMÁN'fICOS COMPLEMENTARIOS y SEMÁNTICA NOREFI,EJADA

En la solución obtenida, no es preciso realizar análisis de redundancias, pues no

se han producido ciclos.

OR...·M"CAPÍTULO 1: DISEÑO CONCEPTUAl.: MODELO ElR 59

••••••••••••••••••••••

Figura / .33

.. t,

...... ,..""..

.1 lo

( "" .... 1

f _1A.f

, .... f'"

...._"";:;P-:G~=~"~h_j~~"".--~'''~~I~'''''~'~-~''~'J~... e-__ "

I~

...,,,~,",oN(-----lJ[_"AIC1""fI¡Wl".

"""<*-~-_..

Agruparnos las distintas soluciones parciales y se obtiene el esquema ElR de la

figura 1.33.

Propuesta de solución

El resultado de todas las consideraciones realizadas en esta parte se presenta en la

figura 1.32 (ver figura en la página anterior).

No sería posible modelar esta interrelación ternaria corno relaciones binarias,dada la existencia del atributo "Fecha" que afecta por igual a los cjemplares que se

cOlnbinan de las distintas entidades,

La relación existente entre las entidades TI{ANSF/~RENC/A. APUNTECON7'AJJLE y ELEMEN7'O DE COS7'E, se rnodelará con una interrelación ternariaLiquida que posee además un atributo propio "Fecha", el cual es rnultivaluado Ypermitirá distinguir las liquidaciones que afecten al mismo elelnento de coste,transferencia Yapunte contable, Nótese córno a partir del conocimiento del dominio dediscurso, se deduce que la cardinalidad máxima en apunte contable es uno, porejemplo cada elemento de coste y transferencia que se liquidan se hace con cargo a un

único apunte contable,

es un atributo cOlnpuesto de "Banco", "Sucursal" Y "Número de Cuenta", Además,existe la entidad APUN7'E CONTABLE con los atributos "Código" y "Cantidad", en laque se supondrá quc el atributo "Código" es el identificador principal.

1)RA·Mi\

S8 DISEÑO DI'. BASES DE DATOS: PROBLEMAS RESUELTOS

•••~~ ••~ ••••••••••••••

Page 37: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••• '

"(..111 1'1'1111111111('11(111 1'(1/11//111'\1<11 1"'/ 1 01/11 1111'S: '(ld" 1'('/11""" ('lIdrll /111

,IIII/I/)/ (/U" 1'<'/1111111 (','/11111" '10.1 .. 1/)111/111 hll tI(, 1'/I/fl/'o,,,\1' ,,/1 11/.(:/1111/

1"',,'a/lCI.I ,,/ ""I/lII/('IIIIIro( I/I/I'de 11'/ (,//I/,I"lIclo ,'11 (//111111111 11'/1/1111/11 /), ftll

\ ,'/llIlIltI\ 1 /011//111,'\ \l' /lIII/lIII/H' 111111/11';11 "" ,(Í(/¡,l(lI \' IlIltI dl'l( I/fl' I,í/l ..

PAR'rE 2

Fi~lIr(/ /.3-1

1'1)1'1-.• I t ,1

," .."t ,¡n,'" \ Il" 1\.:...."'"o oI~ ".,.t.., !Ir I 1" •

El resultado de todas las considertlciones realizadas en esta parle ~e pre~enla en lafigura 1.3·l_

1:11 c-ae piirralo ...e C...uiu dando !tI' atrihutos de la, elltlda(k';o, I'F-:RI'/L \ SL'R\/S·Tf ,.(,\. alllhJ' uencn corno uu rhuu» un "Código" > una ..De...cnpcion .. y v: supone enalllha, que el "(·odigo" es el IdenlilreauClr principal. La cnltdad SLIHS/.\"fEflf¡\ lcntlnaadcltlás un atrihulo "Ventana dl' Arranque" que servirfa para de~crihir la \'cnlalla cnque arranca cada subsiSlClntl,

"1>.. los I)('rli/I'I d" (U'('(',W/. 11/ /1111/1111 11"t' d« /0.1' .I'U"S;.I'Il'/I/ilS. w· nuuuirne 1(11

"i(lIgo l' una dl'\IIII'('io/l, {)(' /111 suhsistcmas. .It· nunülene. tull'llllÍ.\, /111,'/111111111'11 lu 11111' <I/I(IIU'II ..

,

De e-te párrafo se obtienen los atributos de la entidad USLJAR/O, se decideemplear el "ONr" corno identificador principal, mientras que el atributo "Teléfono"puede considerarse corno un identificador alternativo. Se considerará "Terminales"corno un atributo rnultivaluudo.

..lu: cada 1IIIIIIr/(I \(' /lItlllll('/lI' {,ll)NI. nombre. le(éj(J/III 1 tvrnunules ell ,/ue

uaha¡« ."

I 11una lectura altcmuuvu de este primer párrafo. podria huhcrsc pencado queupmecran la" tres cntidudc ... anlL'1iorcs y entre éstas una sola inrcrrelucrón terna: iuAccede. E...ra alternativa, sin cmluu go, puede desecharse. ya que la relación entrelJS(I/II</() y SUHSI.'i7·Ffl(,\ II() es directa, srno que tiene a /)F;/?/o'/L como elementointermedio. por ejemplo el usuario accede " aquellos subsistemas cuando se lo permiteelüos) pcrfiltes) de que disfruta.

perfile' que no tengan usuanos (por generalidad). Por tanto. las entidade .. candidatasUSU¡\RI(). /'ERI-'/L } S(JLJS/S1 t'A4A xon enridadcs reales

t \I'II111C) I IHSE¡\;O('Cl"C'II"ll',\1 1I.1()[JI·lol-:JR1\1

Fn e...tc p~rrahl puctlen dl'tel'tar:-.c las silluiente~ enlidadc:-. calldidalas; SiIHSISTF·,,(,1. /'/'U/'// y I/Sil/IN/(), ¡\ln,i ...1I1Ptl(·111pll....C esta illlrllduCIl'lldilllntllllll'rrelacillll¡\l'('C!dl' l'l1lrc I'/:I<I:/L ) 'i(I/lS/S//'.f1(". d.: la cual ,e l'~l:ín plop\\rc.:illllanuo lasc.lldil1;tlldade' 111111ln,,".Pl'lll 110 la ...IIl,iXlIlIa" (POI lo que '>l' ha dl' "'''poller el Ctl'O 1l1ásgl'lll'I¡II). '\dl.III;I ....:-.ellene olla 111lCIIChlclon ()isf.·ula cntrl·{/.'i(I,IU/() V l'I.I?/·ll.dc lacual "l' dan ILI' cardinalrdalle ... del u'lIa1'10 re"pecto dc !t,... Pl·rt tlc .... en el '>entrdoCOllt1¡IIIIl. l1ahn:lno ...de reali lar 1<1...upllsleitÍn de que \ ario" U\U¡III0\ pucden conlpanir.••• ".".".' .1"... n'il1ih.l'.n.r.Il'.I ...¡....~.IC.UC; ;e_

,.,

.¡¡

"1.11 "III1Jad 11ú.,,('a tlt' lI(t ('\(' " It" 1,,1,,;IIt'/IIt1S t'1 ,'1 ¡/t'/lO/llllllltlo I'l'rfil dt'tI< ,t',,' ('11 11\11111';0le/l'/ni a,'( ( ,ti ti ''',/tI~1,1\ ~1I/"I\II'I/Il'1 .. Itll (/lIt' /'t""I;II'1I

,1< «(''/('1 1,,1 '/;,I;,lItJI 1't'1'/'/"1 .1(' (/'11' d,,(nllll (al /l1,'/H" 11110) tlll /ll'/filIU'IIII1II' el (I('('('\/} dt.' a/ ""'/l/JI 1111 1I1¡'11~1,,"((1 _\' //11111 (I/"It,llll'/' 11<1>.\;Ilell'O

!Jahfl/ ",,'1111'1'('1111/1(',lil III/i' /'('111111'1 ,,(" ,·tlc, tlI/lIIIIII" ..

PAKTI': 1

l)isclIsiún del enunciado

La" aCl iones pueden ser de uos llpl1\, de íuncron ;. de llamudu La ... aCl'ione<; defunción ejeculan una función interna del propio entorno ¡de la quc ,e ha L1cguardar elnlll1lhrc). I.a:-. :Il'<.:ioncs de llalnada invocan una única ventana,

I.a :tLlI\aLilln LIt' un cnnllollle11l' CllllHl consecuencia la cjccucion de L11"1única<ll'CIOIl(1111..10 control elceutara una uccrón al meno ...). l lna aCl:l(i11requiere ...icmprc unconuol que pueda cjccut.u la. De la ...llI'CIOIlC\ "'1.' In¡II11Icll('clcllthgo \ 1;1 de ...c.:lÍpclon.

l.o-. controles pueden ser de dll!-. lipo!-o:hotune o ítcm-. de mcnu. Para soportar lac~llllclura )l....irquica de menús. de un IICln de menú pueden dcpcudci 011'0' ítcms. pero110 puede daro;c la situación de que el mismo ítem dependa dc \ ari()~ úcms, En I()\ítcms rlc menú se ha de mantener fnr'l.(lSalnCnle el texto que se \'i'lIalil.ar:í en pantalla.De lo!-ocontroles de tipo botón xc 11I;IIltic11Cel nombre del icono que opcionulmcnte se

vi~LI"li/ala.

1.u... vcnumu» esuin cllnlpllc'I,I'" ptH cunrrolc ...: toda \'l'ntalla ICIHh.t UI1cuntrol quepermita ccrrurlu. Todo control ha UCClllplcar ...e en alguna ventana y cl Ini"'111ocontrolpuede ser empleado en di tinta' ventauav. De lao; ventana ... \ conlrole ... se mantienetal11hi011un c.:odigll ) una de L·ripc.:ion.

De lo~ pcrl ile' U~ acceso, In l11is1I10qUC de los ~uh:-.isl~l\la .... se 111i1IlIICneunc(iuI).!o y una dcscnpción. De los suh"i~ll'11UI"" se nl~1111ICIlC.adL·ln¡Í:-..la \'C11lal1~1en la

que ¡II rnnr:i.

I)~ cada u...uano "e manucne ~I IJNI. nnmhrc, teléfono )' icrnunalcs en que

Irahaja.

- - --- -- - - _--M \ \1,\

Page 38: Diseño de Bases de Datos - Problemas Resueltos

"UI (/('ti,'(/ciÚ/I elt' 11/1 ('011/1'(/1 tiene 1'(/1111/ consoruenria {II ejccurián de /1/111

1;/1;("(1"CC;ÓIl (uu!« control <,),'clltaf'ti /1/111 (I('ciríll a/ "Iellos), UI/a (/C(;ÓIlrequiere siempre 11/1 (1/IItr"{ que (/111'(/0 ejecutarla. {)I! las (ICI';Olles SI!

111(111/;1'111' el CÓI/¡!-I1I v [a ({("W'I'I(1C';f¡", ..

PARTE 3

Figura 1,35,,

I:N

ITEt-! BOl 01\(11,11

'1 C\t(l

CON I ROt('"tligo

• I .n I

,1

( 1.IJ

~------L....¡.O,nl 11\

El resultado de todas las consideraciones realizadas en esta parte se presenta en lafigura 1.35,

~O~RA~.:!:M~" CAPI I U1.0 I DISEÑO CON,EI'r t1AL: MODELO E/R (•.'

••••••••••••••••••••••

NUl'\'alll~'lIte i"p~l1'l'CC ¡Iqllí unu estructura jcnirquicu arborescente en el caso deIlcn)~ de IIlCll'-I, Para recoger la misma se emplea tilla interrelación reflexiva Depende,el ,ipu (!l' ~'~ta intc: rell1ciúlI l'~ I:N y las cardinalidades son (ü.l ) Y (0,11).es decir. UIl

hIJO SI)I" puede tcnct UIl padre, mientras que UII padre puede tener varios hijo", Paracviuu Ciclos, e~ ]lll'ci'lll':-.igil que un ítem de menú no pueda depender de SI mismo nide ninuiiu allle(.'l'~"1 ,"\'Oe-

Estas cntidadc- se relacionan con la entidad C(JNJ'U()L mediante tinainterrelación Es-Un. por ejemplo ¡,e trata de una jerarquía que es total (no hay otrostipos de couunlc-) y exclusiva (un ítem de menú I1l1 ¡;~un botón ni \ iccvcrsu).

Se Introducen aqui tlo" clase ...de controles. los botones y lo~ ítcms de menú, querequieren rcxpccuvamcnte las entidades /J()T()N e ÍJ'EA1, Los itcms tienen a "Texto"COI1I(l atribulo cspccffico. mientras que los botones tienen el atributo "IC(.1I10" quecontiene el nombre del fichero con la imagen que opcionalmente se visualizará,hay que destacar que este atributo admite nulos, pues aquellos botones que norequieran que -e \ ixualice un icono no tendrán un valor en este atributo,

"{.III' 1'''II{1I1/('1 pueden \('/ de c/II,I tipo»: hotoncs l' (/1'/1/1 di' /111'1111, /'011/

111('111(111 lo ,'\(/ /('1111'(/ ./e/(;II/IIII'I/ de IlIt'/lIís, de 111/ 1/,'/11 de 1111'1/11puvdc«¡{I'I'I"I",'/ 11/1'11\/11'/11,1, /'('1'1' 1111()/I,'d,' darse lu ,11/11111;1/11 dI' '1/1" l'I/I/I~II/11 /11'111

¡{"{"'lIdll d,' 11//111\ I/(,II/,~ {;'/I {II,I (/('1111 tl« 1111'11/; \1' ha d« 1/11111/,'//('/

!11/;fl\flllll'II/I' ('1 /('1/11 I{III' 1(' visuah zurtl en puntulla. ni' /0,1 cnutroles de //(111

botan \( 11/1111111'11,' (,{IIIIII/II/I' I/{'{ it ano <//1(' tlll( /11110(1111'111" 11' 1/I/lII{¡:al'lI, "

Al aparecer V/;'{\'T;\NA COIIIO una entidad. se debería replantear la necesidad delatributo "Ventana de Arranque' que aparece en la entidad SlJIJS1S7'f:/v/,\ y preguntar­se si no se trata realmente de una interrelación entre estas entidades, Efcctivumeutc,lodo suhsistcma dchena arrancar en una ventana, y la misma ventana podría emplearsecorno punto de arranque de diversos subsistemas (no se afirma nada en contra). Porello, se introduce 1" intct relación Arranca.

Se IICnl' una imcnciucron Compuesta entre c'ta' enudadcs I:U) a, cardutnlidadev,c deducen del enunciado, en purucular. el hecho de que toda ventana ucnc un controlque pcrmue ccrrurla no' l"ta mdicundo que cualquier vcntuna nene l'01110 unnimo unbotón. precrsamcnte el que permite cerrarla, En este ca-o. el sentido de la Irasc nupretende que haya diferentes tipos de controles; corno se vera más adelante. 10\controles se podrán distingurr entre <.( por la acción que realizan Centre otras cosa~cerrar la ventana). pero no procederá introducir un tipo especial de control paracualquier acción que éstos puedan realizar. Si se hubiese introducido el subtipo de loscontroles que cierran una ventana. al darnos cuenta de lo anterior. debería eliminarse.

Se pueden distinguir dos nuevas entidades VliNTANA y ('ON7'/(()L: la), dosentidades tienen l(l~ mismos atributos. "Código" y "Descripción" y se entiende que enambas cntidadcv "Codigo" es el ulenrificador principal.

__ ';_;'~ ,11M1.2 DISI:NCl 1)1 IlJ\SI'S ni' 1),\ 1OS I'KOIILEM,\S RESl'I-J lOS

•••••••••••••••••••••••

Page 39: Diseño de Bases de Datos - Problemas Resueltos

No se ha podido recoger en el esquema IcJR el siguicnu' <upuc-ao selnanltco,I)rnpursta de solución

¡\~Illpand\l la<; di"tlnta' 'OlllCI\IIIC\ p<lIl'lulc\ se ohuenc ell"lJlIcllla E/R mostrado

en la IICllla I \7 .

•••••••••••••••••••••••••••••••••••••••••••••••

• Se supone que un ítem de menú no puede depender de él mismo ni de ningúnantecesor suyo,

• Se ha supuesto que UII perfil perrmta el acceso a vario' subsistemas y que a unsubsrsterna puedan acceder varios perfiles,

• Se ha supuesto que varios usuarios puedan tener el misnu I pcrf I de acceso.

• Se ha ...upucxío que val i\)~sLibsl:-.tClna~puedan arrancar en la misma ventana.

• Se ha supuesto que la misma vcntuna pueda ser invocada pOI varias acciones dellamada

SUPUES'ros SEI\'IÁN'rICOS COI\'IPL,EMEN'rl\l{IOS y SEI\'IÁN'rICA N()REFLE.I/\f)A

Aunque existe un Ciclo en el e-quema ElR entre Invocu, Compuesta ) Ejecuta,euas irucrrciacronc- no xon \Cnl<íIlIICUllll'ntC equivalentes . lo que signdll:a que Iltl

existe redundancia en el e-quema. la scnuinticu representada PI" la mterrclación In­voca e\ diferente de la representada pur Compuesta y Ejecuta. la de Compuesta dr­ferente a la de Invoca y Ejecuta. y la de Ejecuta diferente a la de Invoca y CIlOl-

puesta,

Figuru 1,37

"

,u lo'

I,",'..,~....._r¡roL

'11." v..<,1. ,

", .~"_1' _.*' , ,."-~-I\~"-'~ [,~",::-~~---'l

!I,11

,,

"

rw"ol f';o ... , ...... ("., l. ,......... 1 ........

I_t 1 . "'" - ~ -- '-' I '"_~ -._ ..).. \c'IH ~,....--,--,\t ,te"" oC( _.. .J,.·..ot, - "', P')I' Q J -~. ",..,1

~ L,., _ _,jI

-

1'- ...I.~.l':\I'ITULO1: I>ISFÑOl'ONCI::IYIIIALMODELO E/K 115

•"1

..•,I

Figura 1,3ó

I ( N( ION

i'1 I •

\(tl(,'

I '1

-1 -1.1-'--~---I-"~~LlI.IIMIIII\.'t.)'1 ••1K=-~.)~lIr•• 1 ~

'. ,1 1, \1 '1 \'1\

e .... h "' __ ~f",.."I "

Se introduce aquí. nuevamente. una jerarquía con los <uhupr» l,/.J\MADA yfilN('/()N lit:I supcrtipo ¡\('C'/()N: c-ru Jerarquía es total ) e,'I\clu~I~'a, La" íunciones

do irih t "N"lllllrc" que puede con ...iderarse como Identlltcador uncmanvolen ran un a I u (1 " ' , ' 'd 1 'o, 1 ¡'C/NC'/()'N Por el contrario la, Ihllnadas no llenen atributos propios y,e a entlual '.' ' , ,

sin elnhargo, tienen una interrelación I:N I~voea con ventana que pennllc que en cadaacción de IbulIad" se refleje la ventana que esta IfI\'OCll.

El re~lllla(h) de todas las cnnsidcraci\)ne~ realizadas en esta parte xc presenta en la

ti!!ura 1..16,

1'('111'11111,

Se tiene una nueva entidad A('('/(jN con atribulos "Código" y "~c~cripción",NUC\'jllllClllC, el identificador pnncipal ...era "('ódigo", Se tiene, adcn1a~, una nueva_ I ' '1' ')11 l :N EJ'ecuta que relaciona la~ acciones con los controles que lasInClr~,ICll ' , I 'o

ejecutan. Se tiene carLlll1alidau 1l1ínl1na I en auibos extremos de la mtci re ¡¡CIOn,

"/~I' 1Ii'/'i(J1I1'.~pueden ,H'I' di' 11(1' //1'1/,\, de ,filll/'/fl/l " tic 1I/1I//(/(ltI, l.II,\

ac ( I/lItI'S tic [uncion {:je('II/lltI 1111(/ /IIIIC'I/ltI ;1I((-/1/(1 dl'l "1'111'/11 ('''(/1/110 (de ,1(1'/111' le' /UI de guardar 1'IIIII/lIhll' J, / ÁIS (1('( ionev efe llanuulu //11'11111/1 1111/111///('(/

..

I R.-\.~'A1>1 1)1""1'11>III n,\"1 'i DI D-\ ros' I'ROIIII:C\l \S ItI.SLlI'I TOS - -- -- - - ------ _--

Page 40: Diseño de Bases de Datos - Problemas Resueltos

.. /.111 (1111la riado 1 Ion / rohlljlltlllr(' 1 I/"f' ((1/)/ 1111 /1/1 Iucld« l' I/I",,//{rn ("/1'/111

cargc: en la (/SOC;UCII)/1. Se desea (1/111/11"1'11'1/' ia cantulad (/111'él/o,1 pagan 11 luH'~/lncllld vocia! \ ('/ '''11/0 {'ur t/,'I(/(I tI('/R/'''' qu« ,I'e /1.'.1 c/,'W'UI'II/IL"

..tll\ trabnjadorcs de 1',11"1 orgoll/"lu·rolll'.1 pueden wr ¡J" dOI 11/1/11"

asalurindos \""0/1111111/((11. "

En cuanto a los atributos "Cuota Mensual" y "Aportación Anual", los pOdCI110Sconsiderar corno atributos de la interrelación Está_Fornlada pues, si los considera­mos como propios de la entidad S()('/(J, no ,,\C recogerían las cuotas rncnsualc-, yaportaciones anuales realizadas a las distinta» asociaciones de las que se puede sersocio. Además. el atribulo "Aportación Anual" lo podemos considerar corno derivado,pues se puede calcular mediante una función de la cuota mensual.

.ocasiones.

Entre las entidades ¡\S()C'/AC/()N y S()('/(), existe una interrelaciónF..stá_Furmada, UII SOClIl debe pertenecer por lo mcuo« a una asociación. por lo que lacardinalidad mínuna es l. adclll,i)\, en principio el enunciado nu nos dice nada encontra de que una persona pueda ser 'ocio de vallas asociaciones. por lo tanto lacardinalidad máxima e" /l. Por otro lado una asociucron puede estar formada por UIlO ovarios socios. por lo que la interrelación Eshí Formada es N .M. Además e-rainterrelación tiene un atributo propio UF_Alta" que almacena la fecha en la que un so­cio es dado de alta en una avociación determinada. Supondrernos por simplicidad quesólo interesan los datos de los SOCIOS actuales, por tanto, un socio sólo tendrá unaúnica fecha de alta. aunque se hubiera dado de baja y vuelto a apuntar en diferentes

De entre todos los atributos que se desea almacenar para el tipo de entidadSOCIO, el "I)NI" se puede considerar COIIIOidentificador principal.

Primeramente podernos distinguir la~ entidades ASOC'/AC'/()N y SOCIO. De losatributos del primer tipo de entidad, se puede tornar el "C'I F" corno identificadorprincipal, pues se supone que éste es único para cada asociación, además podernossuponer que no existen dos asociaciones con la misma denominación, por lo que elatributo "Denominación" puede ser identificador alternativo.

"ne/ol OI(l(/I/C '''II,'~ \l' dcsc« 11/11111(1'11'",\// ('/F, dL'III1II1/1I1ICirill. direccián \(1101'IIICIII, 1/1 ttp¡ I""II/"~I\III, illll'.I//II' ¡¡)/I, dcvarmllo .. 1. /In ,'01110 11 C,\/(I

dc« lurutla de UII/II/lld publu:« 1'11' 1'/ 10111I1I/L'1I0 de/I/I(('1I111 ..

"Cllda a.HICllI('¡tÍlI ('\(tÍ [armada l'"! IO( IlI~ dr ln« que It I're("/lu conocersunN/. nombre, direrrum. provine la. 1,'("0 de 0/((/ en lu e/lll( lucióll. la cuotamensual COII que colaboran .1 la 0/")/ tariún anual <//11' realizan (que W'

ohterulrií muhipticundo la CIIO(O mensual pOI /0.1 mese» del (liio)".

PARTE 1

Discusión del enunciado

CAPITULO l' Illsr,Ño CONCcf'rUAL' MODELOElR 67-----_••••••••••••••••••••••

Las asociucroncs llevan a cabo proyectos a los que están asignados sustrabajadores. Un trabajador puede trabajar en diferentes proyectos de un mismo país,De cada proyecto se desea almacenar su número de idcntificaciún dentro tic laasociación. en qué país xc lleva él cabo y en qué zona de éste, asr corno el objetivo quepersigue y el número de beneficiarios ti los que afecta. Un proyecto se compone a su\"C7. de subproyectos (que tienen entidad de proyectos).

Un socio no puede ser trabajador de la asociación.

Cada trabajador se identifica por su DNl, tiene un nombre y una fecha de ingreso.

Los voluntarios trabajan en la organización desinteresadamente, siendo precisoconocer su edad, profesión y las horas que dedican a la asociación a efectos de cálculode estadísticas.

Los axalanados son trabajadores que cobran un sueldo y ocupan cierto cargo en laasociación. Se desea almacenar la cantidad que éstos pagan a la seguridad social y eltanto por ciento de IR PF que se les descuenta.

Los trabajadores ele estas organizaciones pueden ser de dos tipos: asalariados yvol untar ios.

Cada asociación l~st:l formada por socios de los que se precisa conocer su DNI,nombre, dirección, provincia, fecha de alta en la asociación, la cuota mensual con quecolaboran y 1,1 aportación anual que realizan (que se obtendrá multiplicando la cuotamensual por I()~1l1CSeSdel año).

De las asociaciones se desea almacenar su Clf , denominación, dirección yprovincia, su tipo (ecologista. integración, desarrollo- ..), así C0l110 si está declarada deutilidad pública por el Ministerio del Interior.

La coordi nudora nacional de Organizaciones No Gubernamentales (ONG' s)desea mantener una base de dato" de las asociaciones de este tipo que existen ennuestro país. Para ello necesita almacenar información sobre cada asociación, lossocios que las C0l11pOnCn, los proyectos que realizan y los trabajadores de las mismas.

Enunciado

PRC)8LElVtA 8: ORGANIZACIONES NO GUBERNAlVll<:NTAI ..ES

• Cualquier ventana tiene entre sus controles uno cuya acción asociada es lacorrespondiente acción de cerrarla.

h6 DISF\lO m- fiASES DI" DATOS PROBLEMAS RESlrEL-1 OS

•••••••••••••••••••••••

Page 41: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••••••••••••••••••••••••1'11 la' a,oli..cioncx trabujan tanto \ uluntario ...corno ...,¡¡Iallado'_' ) ha} que tener

en cuenta que un '{ll'IO un puede ...er un Iraoaj<ldor, E, .. cxcluxion nos obliga a..

..UII IIIII( 11/('111111'1 11,'1'1/11 11 cabo /1111"'" 10\ 11 111,11/'11' ('1/1111 tI,l/gIIIU//I" ~1I1

/TII/lIljlu/ore,l. Un uuhujadot (/III'tll' 1/0/I(I}lIr ('11 Jilclt!IIICI 1'''/\'I'(ltJ~ dt' 1111",/(1110 pai«. Lh' {'(/(/II (111111'1/0 Il' deveu 0111/(1('('11(/1 \11 /IIí/II('((I di'"Ie/llt{tcc/('uí/l dC'lllltI ¡fc' (11 (/\lII'/(I<ltÍlI, 1'11que pai» ~C' I/c">1I 11 «/¡'(I v 1'11 «111'

/,'lgIIl'1/ 1,38

PARTE 2

,IOCIO,

1 1

,\~O(1\( lO\¡I\,~,t.....

. ,I•." . ! " Por último, en la solucum de la figura 1.3X, un trabajador 110 puede ser socro de

ninguna asociación. Si queremos que xe permita, la jerarquía de PART/C'/PANl'J-.. nodeberla ser exclusiva y además las Interrelaciones Trabaja y a.:st:í_Formada deberíanser exclusivas para impedir que en una misma asociación una persona trabaje y sea

\, .,.',"

Figllra 1,39I~,',,, 1.1..1 '·II,..~t,,, fI,,,," ... ' ......

TR '\IlAJAD(11{"'1.

.1 ,

M)( H'... 'I,.h '1,1lit \11\1 \IMII(

I ...

,"",ti' "',

I n

\1)("10",,,( 1",1(1\

l'"

N \1

, I.~)~t~'ahajadorL's d~ la..., a~'~l'i¡¡L'i()Jles pueden ser de un, upos, avaluriados y\'ol,unl.Il,~(,lS,~quf.sc e~ta c'\tahlec,It,.'ndo una clasificacion de truhajadores que obliga auuroducii ur"I,Jcr<lrqula total y '111 solapamiento entre el tipo de entidad TRABAJA.I)()!?, que actua como xupertipo, y lo, tipos de entidad ,ISAUIRltll)O v VOLL!NTA.¡<I(). que actúan corno suhlipp" De cualquiera de lo, xubripr», dcl"inidos se deseaalmacenar el I)NI 1 L. 1" h d ',. .' e nomrn e) a ce a (' Ingreso, por lo que é~t()\ serán atributos(.:(l,1l1U,nC~propios del supcrtipo 7'R, IIIAJA I)()R. siendo el "DNr" el identificadorprincipal. En, cuanto a los atributos de cada uno de In... subtipos, IllCIlCi<Í1lespecial~le~'C~'L'c,l a~nhll1:1"~~a~l" de la cntid~d \!()I.UNTAI</(): cualquiera que sea el tipo deCIJlI,d.l~1 en 1: I que se incluya. este atributo debe ser siempre derivado de la fecha de'llaClllllt',lll0 (pues :~e pllC'd~ calcular en función de ésta), lo que n()~llevuría en el casode considerarlo, a introducir la lecha de nacimiento l'OIIlO atributo,

, introducir una nueva jerarquía /'/\RTfC'fPt\Nl'E donde esta enudad actúa corno~lUlper1:lpoy 7RABAJAf)OR y S()('/() corno subtipos. Esta jcrurquía será lOla,1(pues noexisten mas tipos de participantes) y sin solapamiento (para cxigtr la exclusividad): alesublecer esta jerarquía, los atnhutos "DNI" y "Nombre", que son comunes a SOC'I()y. TRABAJA/)()R, pasan a ser atributos del <upertipo I'ART/('//'/tN7'F.,t

Adenuis defini rCJ110S una in tel re Inc Ión Trabaja entre AS()( 't /t (,'1()N YTRABAJAI)()/? 1:N, suponiendo que ningún trabajador. aunque xca voluntario, puedetrabajar en más de una asociación. Todas lux consideraciones relativas a esta primeraparte aparecen reflejadas en la figura 1,3K (\ el' figura en la página anterior),~,, Para modelar que un trabajador no puede ser un socio, se podría haber pensado enDO construir la jerarquía PAJ<TICIPAN'! E, sino en una interrelación exclusiva. c()~o semueslra en la figura 1,39. pero entonces no habría forma de reflejar que un SOCIOnopuede trabajar en la asociación, pues con esto lo que se representaría, es que por cada'asociación o bien trabajan trabajadores o bien está formada por SOCIOS,pero no por,, ambos a la vez,

" {I /11\lIt /111111 /'1/1" (' ,\('/ tt uhujculen: dI' /11 11,\11//1/('/11/1"

"/.111 voluuuu mv Ir(/¡'ClJ,1I1 en /u orX'"It::uc;ún tI('I/lIII'rt'I(/¡/CI/""//((', siendo/111'1/1(1 ,.11"(1,1'/ 1// edad, /,ralt'l/úll v las horus 1/111'dctluun u /UI/I(/, iacián a..fl','IIII di' (U/CII/O dt' ,'\Iud,II;I'(/1

"("11/0 uututunt.» 11' ulcutttu « /'I'/' \11 /)NI, 11('111' 1111 1I11/l/hu' 1 111111 techa dt,/1If.i/'/'III,

<:1\1'111'1.01: DISEÑO COKCEI'lll\1 'vIOlJEI () !-JI{ /,"

Page 42: Diseño de Bases de Datos - Problemas Resueltos

,

.viceversa.• J labría que comprobar que los subproycctos de un mismo proyecto se realizan en

el misrno país en el que se realiza el proyecto.

• Tampoco se puede reflejar el hecho de que todos los proyectos asignados a untrabajador sean del mismo país.

•..,

• El atributo "Tipo" se puede describir como un domimo que agrupa a todos lostipos de ONG's (ecologista, integración ... ). De igual forma se ,puede considerar la"Entidad Pública" corno un dominio que permite los valores SI o NO.

• Se ha supuesto que un trabajador asalariado en ningún caso puede ser voluntario y

,SUPUES'rOS SEMÁNTICOS COMPLEl\1EN'rARIOS y SEMANTICA NOREFLEJADA

Figura 1.41,,,

, I,011

1"".,-, ,.,Illt.·' .1

'''' ,'ú",•.,.

1 .. ,

" \1

'.'".1 I","~"'''''' I&I'II'II~SS IRPI

TRABAJA()OR SO("IO•I !l'

1 ,

1

, 1,1"

'1 I!

La figura 1.41 muestra la solución definitiva.

Propuesta de solución

CAPíTU1.0 l.DISEÑO C'ONCcl'TUAL: MODEl.O EIR 71

••••••••••••••••••••••

Por otra parte. si rOnCI110S una interrelación rernaria entre 1'UA/J¡\JA{)()R /'Aís y/'N(»'I~( 'TO, podría pensarse que podelnos reflejar que un trubajador solo trabaja enPIO)'t'l'hIS de un determinado par". pero I,IS curdinulidudc- admiridu .. 110 lo permiten (loqUl' lelll'ja l"ta intcr relación c~ que IIn proyecto asignado U lIl1 trabajador se lleva acnho en IIn paí" y no que todos lo, proyectos asrgnadnv a '''1 nusmo trabajador selleven a cabo en un 1111,'''111 pal\l,

Se podría haber pensado inicialmente. sin tener en cuenta la entidad débil, enestablecer una interrelación ternaria entre AS()('/¡\('I()N, TRi\BA.lllf)OR yI'U() )'!:..("/'(), pero al "el' cada trabajador)' cada proyecto de una única asociación no esIII'Cl:'al io. Si además tenernos en cuenta la dependencia en identificación de/'R()'EC1'() con respecto a ASOCI/\C/()N, esta solución carece por completolit' sent ido,

¡"ig ura / ..JO

I ,

1" l.

L """1"",,,1(1

1 ,''- •• '"' ')10

-o 4.,... o

o ,..1.... ,.... ,..

()1 , • ....I l.,

I "I!.I ,,1

1'1" I',',h

Todo lo expuesto hasta ahora queda reflejado en la figura l,oHI.

Un pro) celo se puede componer de subproycctos que tienen cmidad eje proyectos.L'~ decir todo subproyecto e" un proyecto, por lo que pOdl.'1l10S establecer unainterrelación reflexiva Compuesto. I:N con PR()/F.C·TO, puesto que cada subpro­yccio (en el caso en que lo sea) dehe serlo de un único proyecto.

Se incluye en esta palie UI1 nUl'VI\ tipo de entidad I'/?() )'/:('7 O, De cada proyecto~t'dL'~L'a:III11aCCI1UI el numero de Identificación dentro de la :I'llciacitÍl1 que lo lleva acaho, por tanto PR()'F.,C'·r() e~ una entidad débil COIl respecto a IIS()C'/AC'/ÓN, quei.'~tar¡í relacionada con ella a través de la dependencia en identificación I:N Lleva. Sisupoucuu» que toda asociación debe llevar a cano ul menos un proyecto. lacardinalidad mínima será 1, en otro cai'>Ola cardinalidad mtnima será O. nosotroshemos optado por la pri mera suposición, Por otro lado parece lógico pensar que cadaproyecto es asignado u una única asociación (cardinalidad mínuna 11.

~"I/(/d« este. (/.\1COIIIO el objeuvo qlle persigue, .\ el "IÍII'er(l de heneficiarios(l lo« que afecta LI" provecto Il' compone a JlI \ ('~ de ~lIh"f()"I'Cl0J (que11<'1/,'11 entidad dI' provecto»¡ ''.

7() IHSI''\C) nI- H \SF~ DI Dt\TOS,I'R()[lII'\[AS RESl'EI:_::Ic_:.'(:::.)S:.._ _

••••••••••••••••••••••••

Page 43: Diseño de Bases de Datos - Problemas Resueltos

'. \UII'tll~~II la rC;lliJ,ld1t",I~1IIIlt." !!"'I'" ,lIhr~ 1.. , 4UI'~l.IblÍ¡¡ 4UC~ll"rd:" ln~:'::~laclnn.'.' •• ".".'1.'. '.' ¡,¡a.'l. ,.".n.n,.".n.u~••

Se detectan COIllll pO~lhlcs entidades ;\/)MINISTI?A/)()!< y C'()Ml]NII)AI) I)EVE('IN()S, No es ne¡;e ...ariH una cnl1dad l' II~MA rl1C~;t(lque se trala de gc ...tlonar "o10 la

"La Iinnu ,i('1I1'1'(";''' tlI)('!illdol , i iul« '1I1e1 de ('//0\ ('/I,,.,·e tll' adllll/llllrcl(ll)/'

de 11/111 (/ nlfís r'f/lllllllllhllll'S dI' 1'(" i"CI,\ pOI /" ,/'IC' ('11/1/ (1 (/ ('lu/a 11110de ellas

II"ns hanorarlos (l/HUI/es. Ulla (1II/IlI1Ihlll(/ d(' Vl!cillo.\ ('~ /otl'sriolla(/cr /"" 1111

,¡"ir'(/IU/¡lIillISrI'IU[O/ (NII/I1/¡I'I', I>NI l' N" ci,' ('IIII'~I/I/III),"

PARTE 1

Discusión del enunciado

En cuanto a lo!' apuntes relativos <1 lo' gas[\)" se llenen los inlporteS_~luc cobran la'empresas contratadas por cada COll1ull.ldad de "ccin?". Las conl~a~las eohr~ln ..susrecibos (Número de recibo. fecha e importe) cargando los en la cuenta de «Ida

comunidad.

Es necesario alrnaccnar dos tipos de.; contabiiidad'' de cada comunidad de vecinos.

Por un lado. aunque es ..:1 banco ul que emite los recih()~ .de lux c.l~ola... decOJllunidad ti los distintos propictarios, 1:1auruiuistrador gU4lrda IJlforn1aclo11 sobrediches recibos que ...e ingresan en las cuentas bancarias de las cOlllunldadl· .....esdecir. el nÚITlCrO de recibo. fecha. unportc y 'i¡ se hu podido cohra~ () no. listaúltima inforn1aC1<ín es irnponuntc para realizar a final de cada tnrnesire unarelación de impagiulo ....

apuntes (ingresos y gastos) para la

I t 'ari os vocalesCada comunidad de \Cl'1110' tiene adelnas un prcsu en e y \ .(nombre. apellidos y propiedad de la que son dueños) ele~ldOs entre 10~OS lo'ipropietario ....que se encargan de tratar dlreetalnentc con el adllllnl"trador los distintos

problemas que pudieran surgu

En cuanto a la contahilidad. cada cOlllunidad de vecinos llene una cuenta en unbanco. De los di ...tintos bancos se almacena el código de banco, el nOll1hr; y un~persona de contacto, mientras que para una cuenta ,b¡~nc~n~ ~e guarda un c~)dlgo decuenta (que consta de un código de sucursal. dos dlglto~ de _co~trol Y,u.n numero. d~

, cuenta) y un saldo. Para identificar una cuenta es nccesano añadir al código de CU( nta! el código del banco en el que se encuentra.

horario (en caso de que esté en uso): SI es una oficina se guardará la actividad a la que

se destina.

••••••••••••••••••••••••SI 1,1 \ 1\ ienda l'., particular se guardara el nÚ111l'n1tic hahitaclone~ de quc dispone:

...1 l':-'UII Inl'all'ollll'l~ial "l' alinaccnar;í el lipo dc COll1l'lcio quc \t' de"arrolla en él y el

SI el ('lo(1let;1I jI' no hahila en su propiedad enl(HICC~ se neccsitan SlIS tlnl()S(11l1nlhll'. apl·lIidos. dirccClon y teléfont) de <:ont"clu) as¡ COl110los del inquilino que lahahit¡1 IIHlll1hle. apellidu, y Il'lélnnll dc conlactu), en (aso tic qlle esté hahitada lapropiedad, Si l'l pl<lpictario hahlta e11 la propiedad súlo ~OJl neccsarios sus dalns(1I11111hl~":lpeIl1dn" tt·!t:lnno de contaclo).

De cada comurudad de vecinos gestionada por la firma de ahogado, interesaalmacenar UIl código identificador . su nombre, calle. código postal)' población. Cadacomunidad ,'OII',ta de una serie de propiedades que pueden ser de tres tipos (viviendaparticular. local comercial y oficina). Cada propiedad se caracteriza por un número deportal, planta y letra. un nombre y apellidos del propietario con su dilección completa(que puede ser c-ta u otra) y UIl teléfono de contacto, un porcentaje de participación enlos ga~tns de la COllll111idad así corno lo" datos de la cuenta bancaria en la que elpropietario desea 'l' le domicilie el pago de los recibos

I)e \.1' Cl1lll1,·,;I\ que tienen contratadas las distinta ...comumdudcx de \'t','111P:-' (porejemplu, lbcrdrolu, Uruún F'·III"H. ()TIS. ctc.) !'>c guarda "u nombre. CIF. direccron,teléfono ) UII,l persona de contacto. Además. interesa tener c'tas compañra-, agrupadasen distinto' "'ctOI C\ (Iu«, ,cguruJad. asccnvorc-. eu., l.

La firma tiene varios ahogados y cada UIlO de ellos ejerce de administrador de una\) Inás comunidades de vccino-. pOI lo que cobra a cada una de ellas 11110'i honorariosanuales. Una cumunidad de vecinos es gestionada por un único administrador(Nombre. I)NI y N" de (:olcgiado). Las funciones de un administrador. sobre tus queCII cxtc raso iutcrcxa guardar infonuaciúu, consisten en llevar la cuntubilidnd de lacomunidad. g~·,tl(lnalld() Il),~ recibos que pagan lo, vecinos mensualmente. así t'OIIlOIn~ P"!!O\ " I;I~ distil1ta~ compuñías que proporcionan algún servicio a la comunidad(1iIIlpil'¡ a. a~~'enS()1c-, 'l'gtu idad. IU/. ctc.i.

Unu firma de abouado-, dedicada u la administración de finca' desea tener una~

hase de duu» para facilitar la gt'''liún de la información de ...us clientes. es decir. de lasdisiinta« coruunidadcs de vecinos que administra. La información que debe contener laBD concierne a los a-.pcctos que se describen a continuación.

Enunciado

I)I~()RI,1~j\ltA9: ADl\1INIS'l'RACIÓN DE "~IN('AS

• Con nuestro diseño no podernos obligar a que un SOCIO de una asocíución nopueda llilhilJal en olla,

_ __ "HI\M\72 Ill.\f->\U l>l II.\SI S ni Il \ lOS, PR( HII I'MAS KESI"I~I:~L:..!.r.:.:()c:.:s _

.-----------"

Page 44: Diseño de Bases de Datos - Problemas Resueltos

l.ox ainbuto ...de la entidad I'R()PIF.{JAI) ~lIl1 "Porta!". "Planta". "Letra", "Porcentajc" (que representa la pauicrpncrón en lo, ga\tns de la comunidad que no es 'gualpara totla, la' propiecladl· .... pUl." depende dc su tanlaño) ) "N° ('ul'lIta". La entidad/JROPIl:.I)¡\!) es una entidad débil pues t'atla proplcdad requicre para ...u iUl'lltifit"ll'llIrIel "Cúdi¡!.I1de ('ollllJnidad" a la que pertenece. es decir, el portal. planta y letra tll' una

En estos supuestos semánticos se indica que existe la entidad denominadaPROPIEl)AD que engloba las viviendas particulares. los locales comerciales ) lasoficinas que forman cada comunidad de vecinos. Identificamos, además, lainterrelacion Consta entre CO!vfUNI!)AI) !)F. VECINOS Y I'R(}PIEI)AD de tal formaque una propiedad pertenece a una única comunidad y una comunidad consta de unapropiedad corno mírumn.

"("IC/a comunidad C(I/I.I/tl de 1111(1seru: (h' />rllllledllde,l- que JI//et/('I/ ,11'" di' tres11¡1t1l tviviend« panicular. local comen: ial y O);CIII(/). Cada proptrdad seramcteriza pOI UII /uí/III'ro dI' portal, planta v le/ro, 111/nomln c v aprllutosdel propietario COII 1'11 dtreccián completa (</111'puede ser ést« 11otra¡ l' UII

/el¿/ol/o ele COI/I(/( 10, 11/1 porcentaje ele purticipacum 1'11 los gasto« de lacomunidad así CO/II11los datos de la cuellTa bancaria en la que el propietariodesea se le domicilie el pago de los recibos ...

r..n este párrafo se rndicu que 10-; atributos de la entidad ('()AfUN/()A() /JI:VECINOS son "C'ódlgo de Comuuidad" (como identificador principal de la entidad),"Nombre", "(':1111.'''."Código Postal" y "Pohlación".

"D« cada COI/IIUdc!lId ele l'eCI/1/)1 ,1<1'.\/;011(/(/(/ flor la firma de ahogadosinteresa almacenar 1111 código idenuiic ador .. 1// nombre, calle, ('(;(/¡gopostu! rpoblacurn. "

PARTE 2

Figura 1.-12

o--f.. «)"1 1\ 11) \11 "i­

"t.(.'IS()"j

..'

t 1 I I

tl;'"I~+I''''I~

, I

El esquema EfR correspondiente a esta primera parte se muestra en la figura 1.-12.

e ,\I'ITl'IJ) 1. DISEÑOCONl'LP11 Al 1\10011.11E/R ,~ORA M 1

••••••••••••••••••••••

Tmuhién aparece la intcn clacirut Cuntrata entre las cutuludcx C(J!vII./NII)AI) !)F.I'/:('/N(JS y ('()Afl>¡\ÑIA con cardinalidades ¡I,N) a cadu lado. de tal manera 411l' unacomunidad de vecinos puede tener contrutadax varias cllrnpallra' (puede que no tenganrn~lfna al pJlllcrp'o) ~ una cornparila pueue ...cr cOlltratada por una () \':lriasl (11l1UnIU,ldl" ue \ eCl11l1\

- , . .comparua pertenece iI un umco sector,

Este supuesto semántico concierne a las empresas que prestan sus servicios a lasdistintas comunidades de vecinos. Así. se distingue la entidad COMPAÑÍA cuyosatributos son "CII'" (que es el identificador principal de la entidad), el "Nombre"."Dirección", "Pcrvona de Contacto". "Teléfono" y "Sector" al que pertenece. "Sector"c' un atributo univ aluado de la entidad COM PAÑí, puesto que suponemos que una

"D« lell ('/III,rc.l'lI.\ C¡IIC tic ncu ('0111rutadas las dis: I/IIl1S COI/IIIII idtules de1'('1 inos (1'"'' ejemplo. lberdrola, Unián !-1!1I0W/. ()f'IS, ('1(',) ~e guarda .1/1

nombre, CtF. direccum. Il!lé/ollo v 111111persona de contacto. Además,illlC'II.'WI ICI/er estas cmnpañia« agrupadas I!II dl\/II1If).~ vectores (/11:.

segurulad. ti,\( ,'11 lores, etc.}. ..

EII estos ~1f1)lIC\II)'scmánticc», <;e mencionan lo, recibos de la comunidad quepagan lo-, vccmo-, a\f COrno lo~ pago" que !'.e realizan a las compañías que ofrecendi-almos servicios a las comunidades. Estos conceptos se detallarán con SUPUCqOSadicionales en la Parte'

"La.1 [une III/U" de 1/11udminrvnulor. .\(1)1(' 1(11'qt«: ('/1 elle ('(/.10 interesaguardar iniornuu ItÍlI. CiJIII/\(t!1I ('11 llevar la cnntuhilidm! de ItI comunidad,1!('.I/lllIllI/ld" 101 recibos /(1/(' l'at:111I 111,\vrcino 11I(''''ltll/¡,II'IIII', asi {'O/1I0 10.1

paglli (1 /lI.I' distintas COIIII)(l/iíll.1 /III!! proporcionan algún servicio a lacomunldtul tlininie:a. aSI"'1I lores, seeuridad, 11/7.,etr.). "

Tamhiéu ve disungue un atributo en la inrerrclacrón (;c!>li()na, los "Honoranos"que cobra cada adnunistrador a cada comunidad de vecinos que gestiona. Por último,el identificador principal de la entidad ('(JMUNl!)AD 1.>/:'VECINOS puede ser el"Núm Colegiado": el resto ue atributos de esta entidad serían el "')NI" (que se defi­nirá corno idertillcador alternativo) v el "Nombre" .•

firma en cuestión dedicada a la administración de fincas, es decir. sólo habría unaocurrencia de exta entidad. Con el fin de reflejar la semántica de que un abogadoejerce tic administrador de una () varias comunidades de vecinos se requiere lainterrelación I:N binaria Gestionll cuyas cardinalidades indican que una comunidadde vecinos c!> gestionada por un único udministrudor y un administrador puedegc-;tionar (l bren ninguna o bien variux comunldades de vecinos.

74 OISE~() nI- B.'\<;I$ n,. DATOS: PROBLP\I,\<; I<ESUELTOS••••••••••••••••••••••••

Page 45: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••••••••••••••••••••••••••

J.'lgu/a 1 -1 ~

1 e ~ 11('OMI1«'1,11

'lile IN,'\ I\II'~I.>\1',\1<11('1 1 AI<

o O~lIl"

l,n(,,"uhl

1." ( tlnl.h.:lil

I'Ir!.:",', 1\'111',\lr'\flllutln I'kllllllntl

, 1,'" ,,1 1,

,(1 11III I I

t lit

--o (lid JI(,'I••I

~!'7"__ I!J:'~.~1 -. --O J)ll"luj.'lt\n

-o (,,11e(', I\JI '<111,\11111\ H 'IN()S

(',\J ("¡llllUllttl.tll

El esquema EIR correspondiente a esta segunda parte se muestra en la figura1.43.

Se modelarán los presidentes y vocales de la" comunidades de \ ecinos cornointerrelaciones, A<;Í, eXI\IC la Interrelación Presidente entre ('()A1UNII)AD (>/:VECIN()S) PROPIE(>AI> tic ral forma que una comunidad de vecinos tiene una únicapropiedad cuyo propietario e-, presidente y para una determinada propiedad puede quesu propicuu io sea ti no presidente de una comunidad de vecinos. También existe 1.1irucrrelación Yucal cuyas curdiualidudcs indican que una comunidad de vecinos tienevarios vocales (como mínimo unoj y que una determinada propiedad puede que sea Iltlvocal de una comunidad de vecinos. Además, las interrelaciones Presidente y Vocalson exclusivas pues si una propiedad figura corno presidente no puede figurar C0l110

vocal y \ icev ersa,

(' \1'1rULO L IllSEKO ('ONCI-IYIU/\L M()[)fl () foil<

"( 'II,I{/ rtll/l/(/I/,{lId ti" 1'('1'/1/111 /I{'III' (/I ,{/ {'II/t/l' /11/ /'" '\ i1, l'

(1111/11 '1", "1,('IIi,{11I l' /'1'''/11 '1 1 / 1 ( C(1/ { 1'(/I'/fll' l'tI('{/le,I'(( (fc 11' (/ 1/11(' ~IIII It ,- ) I '110,1 1"(/IIII'I(/1I0,~, l/lit. 1(' ('II( '{Ir'" I ' l. (( 1/0,1 (' ('g/c (11 {'f/l/t' 11It/IIS

,,111/ I t' 11111t//' (/ir '('/ '/lIldlll 1111 t/II/I/I/III 1"'oh/('II/{/I ,/ ( '"llIllIt' (111/ c'l (/t!//I/l1/1

qlll I/II( 1i'1'tI11 IlIrXlr ...

l:~IC supUc~tn concierne '1 1) l' '1 .. I ' , • l ~ IpOS (e propled;JtI~, , b" 1d 1l1;¡cenar I"fnnn'ICi(í" S, d' 'l' . C:S \() le os que se desea. ." ,e IS Ingul'n tre,> tipO"" " l' ' , .IOlal cOlnerclal y oficina) ca(l' " . (e proplcl,ldes (\'Ivlenda particular:

· a ul)a ¡;on atrrbutos e"pe ,'f" ' r 'lreo;;tIpO..,de entidades para c:)(J¡¡II o de ro i' .' c_' IC<:S" or el~o, sc requieren\upertlpo PR()PIEI) \1> L. dI' d P p cddd que 10fllldlan Ulla Jerarquía con el.. . -, . ,.1 entl a \I/IIIE'NI> 1 P \RT . , ..Nulncro de Habitaciones", la elllidu I ()FI l. I~ l LA/( IIClle el atributoIIdaeJ /.()e'AL ('()l\IFRC'/AI ¡' I (. . e/NA lI~ne el atnhulo "Aclividad" y la en­rio" ' lene os dtrrhutos opclonale~ "Tipo ('tllllcrcio" y "Hora-

"S/ la 111'/"1111,( {', /'(II((c U//l1 '1 glilllr!CIIl/ "/11/;111"/'(1 •11111'111/,,: 1/ {',\ /111 10l'CII (: 111 • • l sr ul. d, /¡lIhl/lle'((111", tiC' {/lte

II cr« la I'f' 111/1(/('('1/ " '1 /l/¡',\(Ir/'ollll ('1/ el l' r! horan 1 (" / U/{,I { "/JlI ( {' ('(lIII"I'('i(l qu« W'

( e /1 ( aso { e que ('\(1' ,,11 t:»! .. ,gUllrllllra/1I 1I('(jl'¡IIad a /1/ qiu: ,1'(' tlt',I'/iJltl. ..' 1i,'1I , ,11 ('1 //1111"//('11/11 ,I'I!

"S/ 1'/ /1/'1I/'/('/rl/fO 11(1 /'"hl(l/ ,'1/ 1/1 l' , I I I( 1 '1 u'« {/{ ('II/(/II( f'l 1,' 1/ • II/{/III'/,(', II/N'//I.lfll, dl/t'{ ('(UI/ 'l'l;r / ,,{, "1(/(1// 1/11 la/os

I 1 «( ¡III(II cu: cont,« 'lo I II/I{/'II /JIII qu« lu II(/hllll (1111111/1,.(. a/, '11 / l" t/ll , /111/11 (IS dr!

'/ . I I1 01 1 11' ('1(11/11 dC' ('1/111 1 I )qtu«, /1' ,ahilada la /1/(1!1/('dllt! 'ji'l ' :, 1 1 o). en caso de. ,. ( !,IO{'/t'llIno /¡uhíla -n 1 J 1

\/11/ nc« cvaru»; 111' "0111\(//(/Jllh,., '11' 1 1" (ti I'rll/'/t'(/al wíloe, (//J, IlIOS. te 1:/tI(/(J {{(, 1'(lI/I(/c III) •..

t-.lodel·11'111 I l" .· ' t; OS (l~ ("1(10; de propicrar " , ,

:lInhUlo\ cOlnpuC"'IO..,Corno l l' .. ' ,¡¡110, e IllqUtllllO eje una propiedad cornoatri] ' . 11 .1 pi Ople( ad slelnpre tiene , .

UIl arn lUlO obltcalorio (onnado p l' "N h ',: l' IIn plOplclano, se necesita. '11', ' ~" • ( I oln re Prol)Ict;¡rr 1" ( " . ,apc It 0\ del plnplel'lnn) "T'I:f dc C .. (qU( conucno el nombre y,'," • , eCOl1t1 C(OIlI<lCfO y ..[)' .... " .. e 'cron ('~ a su vez un al ribUlo ope') . I " Ir eel Ion , 1'..1alnbuto "Di rec .

• ,1 ,1 1\ 11.1 que no tcnúra valor si el ' .propll'U:tu: tcndrti un valor ~il'l 1'1'(11) '1' " I h' (, propletano habita en su

, 1<.;,1110 la Ita en otra vivienda.

• I:n l'IHIIIlO iI lo, dutc», de] IlIquilino. ulili¿arCIlH)\ .', ,(pu~~ puede que la propIedad no 1(.'",' ilinc .': IIn .ttnbulo l(llllplleSto opCionalI ilino" ga InquI rno) lormado 1)) I ' hIIqUI 1110 (que contIene cl nurnh ' ,. 'l' '. or o..,,Iln utr», "Numhrelo" re) .11" Itdu' t.Iellnqutlll)O) v "Tclctonn de Cornac-

1>,11;1reflejar 10\ d;¡I()~ delIllO\(¡¡IUII :1 l'O1l1iIlli~ll'J(\1I

--_ ---- __ - - --_.c::..:...~

u&.:lcnnill:.lU;¡propieuau pueden repetirse en distintas .' ,que ex ucccsarin añadir el "Códizo de e ". (.~.t:onlulllda~es de vecinos,una Plopieu¡¡d e- olllunldad.1 esros atnbutos para

Page 46: Diseño de Bases de Datos - Problemas Resueltos

F;~lIr(1 /,..J..J

, .

,,', "\,,, ,, .f.)

o!-r_ O!--I<»,

-c.- .;:,..._·=r-I=5 i)

".. "". .

'I!' l· I",\",'1\•ev

O' ,.-J-_-, ".,-JI"".

,o I~'·I~_...,__..

~)~ • ,.! l." ",! •I o '..¡¡,o.

l .\11 ...¡II -, ti ••\'1"',,, -(). "'1 jI

'~""'!'-- .....-<> r.. •

:V

, " ..... "

El esquema E/R correspondiente a esta parte se muestra en la figura 1,44,

En relación con los gastos de las comunidades. se necesita la entidad RE('IR()- ,COI\1PANIA cuyos atributos son "Número Recibo" (identificador principal), "Fecha"e "Importe". Para saber a qué compañía pertenece cada recibo se requiere la

-; -"interrelación Emite entre (_-()/WPAN/A y R/~('IIJ() C()MPAN/A de tal manera quc unrecibo corresponde a una única compañía y que una compañía puede emitir variosrecibos, Por último, la interrelación Se Carga entre Rt.'C/B() ('()MPAÑÍII y CUEN7Adenota en qué cuentas se cargan los distintos recibos que emiten las empresas (unrecibo se carga en una única cuenta y en una cuenta se pueden cargar varios recibos).

"FII C/lCIIIIOo lo: UI'IIII/e,\ ,eIOIIl'(I,\ 11 los 1!1I11(/.1 11' tienen 10.\ 11I1/,orle,1 queC"h/CIII las ('/1111/('.1(/\ ,(lII/I'llIa,/(I\ /Ii'/ cadu camunulad di! I,(,CIIII/.\. La«(,(III1f1añíCl~ ('''0/'(/'' "CH n'l ibas (Numero di' 1ectbo. [erhu t' III1J1orll'l

careándolos t'" lo (IU'1I111 di' cada (,OIlIIlIlIl/lId"

Podría pensarse que es necesaria una interrelación Se Ingresa entre las entidadesCUENTA y RECIBO CUe)TA C()MUNIDAD, pero esta interrelación es redundantepuesto que esta información puede obtenerse a través de las interrelacionesCorresponde y Controlada,

____ eAPI rri,o 1, IllShÑO CONCEI'I lIAI.. MODEL.O F.IR 71)OR...·M~ _

•••••••••••••••••••••••

En cuanto a la gestión de lo... recibos, en este párrafo se distingue la entidadRECI/Je) (_'IJ(}rA (_'(JA11IN/DAIJ correspundicnte a las cuantías que pagan lo~rrllpietarill' de 1:ls cnlnllllidade~ de vecinos: esta entidad t~~ne J¡?S all'i~ut(\:-; "Nún1en~Recibo" (como identificador principal), "Fecha", "Impone y "I~~ladl) (p.u a suhei SI

se ha cohrado \l no). Pala ,al)l'r ,1 qué propiedad pertenece cada recibo se IlCCC:\lllI lailllclll'lncioll (.'nl'l'cspolldc entre I'!?()/'IE/)A/) Y RF.('/Jl() ('IJ()Ti\ ('()M1IN//)A[)l'lIya:-. c¡lIdinalidudes indican que UIl determinado ,recibo, corresponde ti una únicarl'l)pil'rlad y que a una [1I0picdatl le corresponden vanos rec ibox.

, F 1 11(1 ,'\(II u» 0111,,,(','1111/ el/JI 1I1"'~de ,IPIIIIII'I 1'lIgr,'\,,\ l' ~II.I/'" J P,'IO lal ontalululcul dI' , ,lcI<I ""/III1/II.1<1d dI! \'('1'1/10.1. P"r 1111lado. '11111<//1<','.1 ('1 "11111'111'1 1/111' 1'1I111e 101 H'( ti"" .Ir 111.\ CIII'/lIS de (,(//IIII1II1/atl 11 "," ~¡'\llll/(/\prol,il'l,1I10\, <,1lI,hlll/llllrat/o/ guard« rnfonnacion sobr« dtcho« re( Ibo;, que\1' 11I1:/'t'\11/11.'11 {¡H ,1I1'/I/{l1 banciu ias de la-; camuniduilrs, es decir. I'I/IIIIIU'/'I>de recibo. [crh«. 11111/1)/'/1.' y SI ,le "a podido cobrar f) 110 E.\IO última1lIjon/lal'itÍlI t',\ importuntr para realizar a [inal de ('lIdtl trunrstre /lIU/

rclcu ItÍlI di' 1/l1"Il~CII/()I''.

Paru ":tlIHl":<:' qué cuenta t icnc cada comunidad de vecino- xc necesita lamtcrrclacron ('ulllrubula entre ('()A11/¡V/[),\/) /J/:. \'/:(_'/¡V()S )' CI/LN7,\ cuyascardinalid"llk'~ dcnoum que una comunidad tiene una única cuenta asociada )' que unadcterminuda cuenta CIlIIC"flondl' a una única comunidad de vecinos

En c-ae supuesto ,'t'ln{l1l1il:o se indica que !>e necesitan la:-. eruidadcs RANC(J y('I'E¡V1A, La entidad UAIV('() tiene los atributos "Código Banco". "Nombre" y "Per­sona de Contacto". La cntldad ('I/E¡V"/i\ es una entidad débil pues una cuenta necesitael código de banco en que se ellcuentra para su identificación; por ello, el identificadorprincipal de ('I/E¡V'li\ es la concatenación de los atributos "Su,cursar', "()C". ~<.lígllOdecontrol), "Número" y "Código Banco", Además, la entidad (l/ENI,\ también contie-ne el atributo "Saldo"

"Ln ,111111/11 a la (/'/llalllllC/ad, "1/(/0 canunudud de \'CI/lIII\ I;I'/lt' 11/111(111'/11(1

1'/1 /111 /'tlIII ti I),'!ln d/IIIIII'/\ banco» se 1I/II/LlC{'/lC/('1 I'o/hlt0 d,' hO/lCO, el/I,II/I/',t' 1 11110//,'1 '0/111 d« (0/11111 lo, 1/1I1.'/l/ra\ 1/111' {'(IIt1 111111,'I/,'/lltI /111111'(11/11

't' guau/u 1111("dIgo dI' (11('/1/(1 tuuc tO/I,\/(1 ti" 11/1 (o,lIgo d« II((U/IU/, dOI

dll!l/{I\ de ("11//11/ " 1111numero de ('111'/1/11) \ 101 saldo. Puro Id('II/Iti(',/I 111111

'l;t'lIltI l'\ 111" ,'1,1/'10 aiuultr 11/ ('(Jdi~o de (111'111111'/(odl,l!o dl'//IIII/I'O t'1! 1'/ (/IIt'

Il' ( 11('lIt'II//'/

PARTE 3

7ll 11I\U;¡() DI- 1l!,\I'S L'''' I),'TOS. PIH)IILEMAS RESIIEl ro~s ~.):..::Rc::A...::M::.;!.\

•••••••••••••••••••••••

Page 47: Diseño de Bases de Datos - Problemas Resueltos

~•••••••••••••••••••••••••••••••••••••••••••••••

Otra posibilidad es mantener también una jerarquía de cuenta" entre las cuentasbancarias de las comunidades y la~ cuentas de los propietarios. C0l110 se muestra en lafigura 1.47, Así, la entidad supertipo scrfu (-UENTA con "Cód Cucrua" cornoidentificador principal (formado por "Código Banco", "Sucursal", "De" y "Número").Los subtipos serían las entidades CUENTA ('()MlJN/[JA[J que contiene el atributo"Saldo" y "Cuenta Propietario" que no tiene atributos propios. En este caso, se elimi­nada el atributo "N° Cuenta' de la entidad /'/«)/'IEDAD y se definiría una nuevainterrelación denominada Es De cnuc la~ entidades PR()P/E/)AD y C'IJJ:_'N1i\ /'/(().PIETAR/(), de tal forma que una cuenta de propietario pertenece a una únicapropiedad y una propiedad tiene una única cuerna de propietario,

Fivura /,46

.... l...... , ,,.4.lf~'f

j (1 ".,

('> O[T ~

1, "I[ -...._".\'.".'_.I'_;V"1_ ,"~II

I\,,,,,"~~...¡,.. ( ,~("t ..

(1 "

'\\

\ "',, .., '.,.. ....

"." ......... 10,

0--1

...... , 1-,U I"'~""l'"

I tI,

'Ioo.'lll.'c,,,,,"··I\

k)tIW'cl.'I\e'''''' '.11'\1'

,---' , I1 ,..¿;: o l·......

7"y_y,,...9~--"•r-,

______________ ( l\rfTUl () 1:nlSi!Ño CONCEPTIIAL: lo.10DELOF./R 3J_QRA·MA

•,

lixistcn otra' posibilidades de modelado de algunos "'UI~u~sto<;semánticos de esteC¡I<;O Por ejemplo. en la:- entidades R/~C~/R() C'()tl1PAN/A. i. I?EC'/RO, (:~?~AC'()/'.1UN/I>A/) se ob-crvu que existen tres atributos comunes r Número Recibo", l-e­cha" e "lrnportc"): esto nos indica que sería posible definir una jerarquía total yexc lusi va cuyo supcrt ipo fuese la ent idad REC'/H() y cuyos subtipos f~esen RI;;('/IJO('()ftt/P,\ÑI,\ y 1?/;('/lJ() ('l/()7,\ ('()A1UNIIJ/\/J, C0l110 muestra la Iigura 146, Laentidad 1</:'(,iU() ('(JM/'I\Ñ/~\ no tendría atributos propio« y la entidad I?I::('IIJO('l/(),Ii\ ('(J/ll1INII);\/J contcndrfu el atributo "Estado", Estus entidades subtipomantcndr mn las 111isIIHIS intcrrclacroncs que las definidas en el esquema E/R propuestocomo xulu, ion. ,'PillO Sl' pueden observar eu la figura 1,4h,

Figura /,45

"."~!I 11.. , "1,

10'1 ... ,\1\11'1',1'\11'1' I \It l -~.11

,C"IIII",f-_..•", ,

/' "'11 ()11' , .. '( ~

, ,_, , +! t'"" , +

,1"""";/1 ~

" -,r, '". ,/'ti, "._- .",

\ l. , ,,

, '"~ '1' 'r'[ "'" '

" ,,~~ "'.

,'," , ,., , .., ,

"," ,.....-

..........

{j".•'I'!.- " '" "~ - , "., 1" ',', I

(j ti, tI' j , ,!

O II'H ,,!. +

I I .... " 01. , ....

. r /-,<~' .", ~' .....,..,.'111''' ","' .." ,_,,,,-O, '," /, "'"'\''',, ... ''','/

/..j,~""" "'-'" .

<>¡ _,o 1 .. '.1'..', 1"

, ', ,'. .

,-<;".

I r"<) """'10 ",,,1 '

- ,-

'-4 1\1' ',11 ., 1,',11 ".

,"//

"/ • 1 .,-7-" " _.

<:» ,..~."..'. ,-,

, t .- 1:~. ,E~ l',ell.'1! ,,'11 -,-

ro4 " , .

.' v t !

'"o o

_()I ,

"11 ~__ l( n" " ..':"

\1 "', .. , .. " ....

(1,

1:1C~qUI!111UFJR final \C mue-ara en 1a figura 1,45,

Propuesta de solución

( RÁ '1/\XII 1l1"1 [\'() 111 1\ \~I "1_11 11,\ 100;' I'KOBl I'MAS RI-.SliELTOS

Page 48: Diseño de Bases de Datos - Problemas Resueltos

)1,' Ill'l1l' "dl'1I1;1' IIl1a IIl1l'rrl,·I.I~11111 1 N Fahril'u ('lItlC l·...t:I\ do\ l·nllt!,uJe:--. "1

IIP"lIl'III<I, '1l1c' lI¡dl! r"hlll,':ll1ll' de IlIuchlL" dI,' 1,"11.111,11" l', ]11114"\' lahrk'¡) 111111,'hlc\ 111,'

En l'~It'pnmcr párrafo se I'CL'IIIH1CCllinicralmeutc la~ cntidadc«, 1''AB/?/('A,fl/7'E \o\/1 1:I1I.1~.In, lahncnntc ucnen una "'CrIL'ue utrihuto-, que '011 "Nombre" "I)ircl'l'irill:'\ "Ielcrollo", l'SI~' uhimo se Irala de UI1 utrihutn multivnluado. pues ~111 fabricantePIII"!.: tener I'ano, numcrox de l(.'lé"\lIl\)~. l', tiL' suponer l]1I1.' dns Iuhricanres no puedeniL'lk'l ..:1uusmo 1l0111hrl·. por 1I1 que :--1..' empleara el alrihllltl "Nombre" t'OIl\(1 ldcrultl­,':.dlll prilll'lp:d de 111\ di~llllll), e.lcll\plarl·s de 1.'\1;1 l'1I1i¡!;ld. adl.'lll;í~ plI<.:de t.1111hil'll'"II(~"l'I~CtlllC I()~ lahfleall(l'S IlO l'\llllP:1I1l'll dil'l·l'l'llll1. pOI I() l]Ul' l'l aU ihulo "I)lIl'C\ 11111 pllt'd~' \1'I,e l'OIIlIlUll Idl'IIlilJ~':ldlll "lll'l 11;111\\1,

"//11\ un« '1'/1,' ,/, /(/1>11<<1111(" d,' 11111"/'/' , .1" < o, /1111 /)¡" lid" 1,11'/1< "/1/(' ,,'

.11\/""'" .1,' 1111"0'/1/"" 11/'" "1/"" ' .. /1 \ una "'/11' 10/1 .1,' //11///"1';' dI' /"/el""o.("'/1111//<1 el,' "/1,,, tubru « 1111;'" 111111'/-/'" d« ''''///11. /'I/I//II,,/,It d« "0'/1/11

/1<'11< una ,/t /'T/II;lIl1dillc//,'a, /0/ drtrrmnunk» '0/'1/, /111,/\ duucnsrour-; "lItI",(,/I/( //0 ,Ii".' /lIr~o}, \ {I/I('d, 'I'II\' , 11//0 de lu» "t:II/I'lIf," "lI(('t:(I,.,~/\('1,,111\"11/('\' 1/11I"hlt, alt t» , 11111('/'/" h,\iO pan«! \ 1'11, 111/('10. /)(' /0' 1I11/('II/¡.,

f'oJo, ;11/('1 ,"O "11>1'1' /11 aluu « ,,¡('n' ,,/ vurl« \ 1" lu» ,'//( 1/{II'/III' ;///1'/'(',"(/

"11",, ,1/1 /i"" ttnurmn! ,1 lI~/"""'I(1d(l¡. "

l' \ R l'l' 1

Discuskin del enunciado

('ada 1.'0Cill;1 pueden coruprarlu UIHI () \'ar,,'~ chcurc .... ) el 1111"1110 el icntc puede,,'lnpl"l I'ari,¡o.,,'ocin,J" I)c un cliente no~ 11\1<':II,'...a xu NIF. '11 nomhr«. dirección y11111,'(\numc, (1 .11,' 1~' k'lnl1l1,

('ada cocma la dehe montar al 111CII<,""un 1111l111ad\11. y \,'1111i~lnl) montador puedeuronrar varias cocinas. 1)1.' un montador 1l0~ interesa su NII'. nombre. dirección, único11l111H:1'<1dl' tel':fell)(l y el número de cocin.rx qut' ha monuulo.

(·.ld.1l'Ol'lna la puede vender un único dr-tnhurdor CI1 una determinada 1\:<.:h.1devcniu. i1U 1rq U 1,' l·at.la dixrribuidor puede vender varia ... cocinav, lJI1 disrrihuidor puede,,'dl'l una L'CH;iIHI a otro, paraque éstep"l,'da venderla.

Un'! l'\)I, 111.1 1,1 componen una '1:111,' de muehle-, tlt' l'OCII1:1 de tll ...unto upu, l'ada

11tuchlc IIl' l'lIllll.l '010 pod r" Ionn.u P,lIlt' U<.:una UIIII.:.I cocin.i De una COLIIUl no,11Il'II.";1,,,hel e 1 nutucro JI.' mueble que la l,'0I1I)10l1l'l1. a'l 1.:'011111cuúntos tic ello, h.l)

.11,' l.lda Ilpo

('aua 'ahncallll' puede trahnjur con vurros drxtnburdorcx y carla di-tribuidor11.lh,q.1 al 11IL'no, COII un tahrrcnnte. r)l' un dl\ll1hlllt!Or 'L' UI~pOl1e del lit1111brc..llIecl, ion) 111101rl'lal'lon de numen» de 11.'!t'lolHl

C \1'1111(11 PI\I\()(I)i\:(II'1l \1 ~lflllLI()I:/R ~1\ \1'

•••••••••••••••••••••••••

Hay una ~l'rÍl' tll' ,'ahl il';lnle\ de 11I1Il'hle~de cucin», [)I.: l:ad~ luhricuutc \C dixpuncJc un nombre. una dirección y uua rclacrón de I1Ullll'I()~ Út' 11.'1151'01111,l'ada 11I1l1de clhlsi';lhrica varil1~ 11luehk'l\ tll,' (:'(I\'lIla. lfn Il1l1l'hlt, tll' L'Ol'IIHI li!':IIC IllIa dell'lIllill:ld" lil1~'a,

.111 delel nlil1:tdll l..'olclI. IIl1a' dlllll,'II~I()nC~ dadas (alltlHl '1 altl) '1 lalgo). y pl.l\.'dc 11,'111..'1

1111:1 tlt· 1,1\ ,igllll.'l1ll'~ l':tll'gull;" l'\l'hIY\'1I1l'~: IIHII,·hk' allo, IIHll·hll.' h"jll. palll'l ,'111,'11111,'1':1 I)e 111\ IIl1ll'hl\', halO' IlIlcrC~:t ,ahcl la ,dllll;1 ,(lhlc cl 0.,111,'111 \ dI.' 1,1'

,·lIlI1I1CI.I' 1I11l·I'l".1'ah\.: 1 '11 111'(1(1llarlllolo aglollll'I"ldo I

Una l'llIprt'\a dedil'ada a I'Cl1l11'ICi:lli/:II' cocina-, desea <l1I111I.:nlal su control ,11(1I'C

rquello- elementos que le a 11'<.:1un. Del resultado del all;íli,i~ quc rcali/a obtiene la~.iguicrucs inlurtnacioncs

Enunciado

,l'I"UES'f()S Sf~t\1\'\"rl('()S ('()t\II'I,E\IE1'\T¡\I~I()S" SE:\It\N ru. \ vo:tJo:FI ,Jo:J ¡\1),\

1 ;1;/1/11 1 -li'

,

<:« ~II.,,':.~~Jj• •,

, I

,, ,¡, •••

Iw_~ ...., 1'• •

,, .",,,,,,,... ,,.1

• •

~

1< \ "-1,PI\I·\() Ill: 11.\<'1S11111\ 1Il\ l'i{OIIlI"\I'\\ I{I \111·110:-'

t ••••••••••••••••••••

Page 49: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••••••••••••••••••••••••••

)l' lil'lIC tilla iJlIl'rr\.'laclon I:N Vende l'nln: la~ l'lIlidade ... ('()('/N1i 1/, 111'/1// 111)(J/' "l" ,. '1' .' . . I )l' . . 1, ~S.I Illtcnt .11,:11)11lll.'JIl' un atnhuto plUpll1 que l'~ la "Fecha dc VellI S\.' !I\'IIC .Idcln:.í" olra inlerrel;H:llÍn r\.'llc:-.iv·1 N'~l ('''de "1) l' l'd' 1/1/\/1<1/111 • , ,. . ... ... .1 en I .ttI I 11)()R, dU1It11ll' 110 ....c UIl'C en el CIIlIIIl'latlo pUl·tle SUpoJler-;e que UI1,IIIIIlll\lllI J'Ul'lk'll'lc'r '. l' 1 1• 1 ' • ~ lC!'oIOI1\." a \'unn, ll~tn 1llIl (lre\ \ qUl' l'l Illi~lnll u''''lnhuitlorI ,tu " Il',lhlr lL'\1I1I1C\ t.Ic \ ario ...di"lnhllid(\J't:, .

"Clltlo ,'u, 11111'(J II/Ic'd,' "1'1111"1 /11/ ';,1;('1/ t!;"r¡¡'l/itl(l1 ,'11 111111.1"("111111111<111

I"'/II~ dI' 1·,'11(1/.(111111/1/,'ClII/(/ IIII(,.,I>UII/OI /II/I'dl' l't'/ldl'l 1111'111.\('(//';/1111. //1/,I1.'II/h/l/l/ol' PUI'rI,' C'I'tll'I'UIIII 'lit 1/1(/ el /1(/,,,. /)(//1/ (//1/' ('."1' /I//,'do 1'/'//(/1'1'/(/. "

"'l' uiuoducc una nueva cnudud (·(J('/N.\ que mauucne una uucrrelución I:N( "nl_pune l'~1J11.1cnlidad ,\/{ 'F.HL/:·, JlO todo Il1lK'ble fllnnarú p.lrtc de una cocina. car­hn.dldaJ ITllnlnl.1 O. rcro ~íIOt.lu cocina la l'o(npondrá al nlCllO ... un 1l1lIchlc::. cardillali­,,1 1111JII1na 1. Para di~poner UL' un idcnlificador prineipall'l1 la l'nlidau ('()CINA. re.",11110"; IJllroJ~It.'lr el alrihUlO "Cót.ligo", adCl11ü'" dc C...lc alnpulll. e~la enlidad lien:los.~lIIL'llIl'" .:11nhulo.... "'l_J'vl uchlc\", ..N_All(\~" . "N_Rajo...... "N _Enc ilile ras .. \'\ P;¡nc'IL'~ . IOJlh ellos son cnk'ulables ¡j partir de lo~ Inucblc, qu<.: COlllrl)JlCn cad:," 111,1.pUl cl1(1 ,e tratan ((lIno alribulos dcrivado,.

"/ 11(/ ,,1, 1I1t/ lo '1'11111/'1/,'// 111111\,'111 .t" 11111";'/", el,' , 11//1111.I, '/1111//(1/ /11'".",d,/ ¡III/I !>Ie''/, , IIC IIIU \1'/"/'1''/11111'"1/111 pur¡« el.. 11//(/ 1111/111 C/I'IIIII /Ji' 11/111'''' //111 11.. ' 111(1'/""1 ,,'/,," '-/111/111('1(1 .tI' 11111['1>1,', ,/1/,' /11 , ""1/'''//('11 1/\1 ('1111/11

, 1I/1IJ1", d, ,1111,\ "u, d,' ,,,,/(/ (//'(1

l' \Irl Jo. !

l: itt //111 I.'¡,'\

Tr.___.!.-l-~1>,1, .,.,1'1 11{IHljI",11

il______ ~X) tI,·, 'h'

l ••

" l' \" I I11 \JC I\J l. I1 .....' 1'.11 k: \

{ \1'11111I1 111\1\( J c 11\( I 1'11 \1 \1()11I101 iR s,i- --\1\

I'.nlr\.' 111\ lahlic:IIIIC:-' \' \IISlIihuldllrc,. eXiste ulla inlcrIchlCIÚn 'I'rahaja. 1'\1,111l1l'11'l'la¡:ioll c' tll' tipO N.1\1: ad\.'llla~ 1.:01110tod(\ t.Ilslllhuidol dchl' 11ah~lial al 111\.'1111'CIlI1 llll t'ahlicanle :-.c lÍl'IIL' ull.ll·;¡rdlll.llidad 11IInlllla 1,

Podría pen~ar"'e, dado qlll' las l'ntiJade," FAIJRI('¡\N7'l-,' \. ¡)/.\TR11J1'//)()/<:onlpart,'J1 lo). Ini","\(,~ alrihulo l'llll la ... 111i ...lna, t.'¡II¡lclcrí~lil'a ..., qllc L'Xi...ll' un.1~cnl'rali7.ación de alllha:. (·Jllluad\.' y que é~ta:-. d(\~ l·J11idac..lcs no ,tlJI sino "'UPllpns deJI la cnliJad qUL' podrril 11:1I11ar'l' 1:',\1PR I:.S/\: C...la ~\.'nL'ra Iil aci6n ral\'cc ca I'l'l'l' ( urnlcré:-. ~I1 estc L'a~ll, ya 4uc l'~,1 cntuJad 1111~ería In:ís que UIl concl'J11n anificlalnlcnll':slablecido quc C¡¡ll·l'l.'ría tll' tilia tll' la ... plllpiedat.lt.'s esenciales de la~ l'nl Id:Jdc~. la Ul'.ratarsc dc ohiclc)~ L1l.' IIIIL'rC::-.para I(I~ pr()prisil()~ del :-.islclnu. No inll'rl'-;an I:I~:Inprcsa~ l'11 :-'1 nll llla', ~illo lan ~(llo ll4uellas qu!..' puedall s\'r lahri<.:aJ11C\ t)

lislrihuiLlol'il!o. PI)! \' tI' 111111i \ \1•.\l' rL·l.;l1a'l.<Ic),lu ¡.!cll\.'rali/aclúlI.

Sc tiene un u II11C\;1cnudad /}/.~IN/ni 'II)()/( ~ una mtcm-lacion Trabaju ,·,HI l••IItidad rARR/(·,\fo,'ll. lo'> alllhuto ...c..Ic1)1\/ R¡RI 'II)()N. de J1lanCra ,iolil.lr.1 In qlll')a ...uba l'on la enlidad ¡.\UNI( \.V·I1.:.,cr:.ín .. "'IlI11pr,· ... "I)ircl'l'illll" ~ "'IL'léfl\J1O" 1.'1)11"" l11iSI1I(I' caracterí'lll'¡¡'" qut.' Il'l1í¡¡1I ~J1 /'-,\UN/C AN7'1:,

(",/,/ ,0/'I/.cllll,· /I/I'·.lc 1/1/1'/11111 C(l/l suru» cll'I/II'"I.I,,/,·, , ,'1,/"

,[1\(/,¡/'II/c!1/1 (I,t/'II(tI o/ 1//,111/\ ,"11 ItI/ /O/'II( 011(, 1)(' 1/11 ./I\(III'//ld", ",/1\/10'111' .l1·[II,'"""C'. dllc', 11"11 \ 1111'1rrlm ron d,' 111111/. /'(1\ 1/' (""'1"/1" "

l.n lualllo ;1 la cnudad \/1 'l-Bl l.. note ...e la JI ...une ron en \ ario ... lipo ... que dc l·...I.1. hace. l'I\I1'ldcrarcnlll'" que l' ...I:I 1.1.I...il icución da lugar .1 una jCI urquui \.jUL' "'L'I;r 101." ~cclu ...ivn en la que el "UpClllpll -cru 1.. cnridad ¡\ll't:UL/:·. micntra ... quc lo, ...ubupo ...:rall la-, cntidadc-, /-./'1/('1,\.1/:/( ..\. ,\ll'I:·UI./: ,\/.T(). ¡\ti'FUI.!:' HA}() y l'rI,V/:L. C'adano de 10\ L'j\'lllplalc~ de ¡\Ji ,~nl./: tiene unas caructcnsuca ...que "L'r:ín L'OI1\UII\'" .1.ialquicra de IIIS xubtipo-, )' que con ...iuuirtin por tanto lo., aiributo-, del <upeu ipo. ""-ndr.i asi l(l~ amhut.» "Linea". "Color", ",\ncho", "Alto .. y "Largo". Dado que <e re­uicrc un identificador en l.''''a entidad )' ninguno de los atributos. ni lIin~lIJ1;1 ,'11111·inacióu de é~tcl,> idcntiticu lll1l\l\l'~III\l'IIIC a l(l~ di\'cl'~lI' cjcrnplarc ...de 1\11/1:81.1:. 'l'

11roducc UII urributo "('('HII)1p" (jUl' ...l'r:.í el identificador principal de c,ta entidad. 1:11u.1I11p a Ill~ 'UhllllCJ'. Il'lIdl\'llI0'" que I~I('IIIIdad /:·N('/!JI¡".'I~/\ tiene UI1 ~lIrihlllll "'I'IPII"ll\'lldlllllilll(Il'lll1tCl1lIJa 1~11I'Illpdll'" \:1101','\ ~ qUl' la cuud.rd ,\/III,/lII·,IJ.\.I() liL'lll'llll,

tribuí« que S,·I.I 1:1",\11111.1"

Il·ln.1. pomlremo-, l'arLlIIl<llldaJ nunuua l . ahora bien. ~i ...uponcnu» qUI' podcnu»,111'1' fahlll:anll':-' de muchlc-, de cocina n:¡!i:-.lrados que 1I11 tahriqucn IlIUl·h1L:~. 111que\dlla "ucl'dl'l pOI Clel1lrhl \1 <e Il·~I ...11aran 111, l'ablll:<ll1ll· ... ante ... de qlll' l·,lo ...I1PI.·I.II,111.1 prucluc u 'l' pOllIl,1 "'IIPIlIII.·r l.lIdlnalrdad 1111111111:1O. \111(.111111... CI1 IIlIe ...1I111...1) plll la prlllll'I<1 tll' la ... 11Plll\lll·... Plll coniru. IIlJo mueble lo debl' 1.11111\. .11 UI1

-rcrrnin.ulo r.lhnl·,lIl1l· ~ 110 ...e l'OIK ibc que ha~ a mueble ...no labnc ..J", plll n.uhc, pClI

que 1;1lartllllaltdad 1111111111.1'l'I.1 1

Il \1\mxtxt im II\,I,IH P\lc.~ l'I~IIIIII~I\"!(I,IIIII):-'

Page 50: Diseño de Bases de Datos - Problemas Resueltos

Surge una nueva entidad M()N'/i\/)()!< con una interrelación N:M Monta conla entidad CO('INA. esta interrelación tiene cardinalidad rninimu 1 en ambosextremos. Son atributos UC un montador el "Nombre", el "NIF". la "Dirección", el"Teléfono" y el "Número de Cocinas". éSle último scrfu un atributo derivado, pues es­te dato esta implícitamente presente en la imcrrelación Monta. además considera­remos COl1l0 identificador pri nci pal de e~la entidad el "N 1F" y COl110ident ificador es

"Cado cocilla la debe montar al IIII'III1I 1111montador, y e/ 1//;\/1/(1 montadorpuede montar varias cocinas. DI' 1/11 IIIOII/(/(Ior 1I0.~ interesa su NI F, 1I011l1>re,dirección, único IlIíl/Jero de leléfollo \' ('1 /llinJero de cocinas que IraIIIOII/odo. "

PARTE 3

Figura 1.51

COCINA

(0.:-: I

e..:dcIN 1:N

((J. 1 )10, I )

DISTKIIlUI nOR

Esta mtcrrclación ternaria puede sirnphficarsc en dos interrelaciones binaria,dando lugar a las interrelaciones presentes en la figura 1 51, el hecho de que la mismaentidad DISTRIBUIDOR aparezca dos veces en la Interrelación ternaria no influye enel proceso de su simplificación. Debería asegurarse además mediante una restricciónque no se puede reflejar en el esquema E/R que siempre que haya ejemplares en lainterrelación Cede debería haber ejemplares en la interrelación Recibe. dado que enotro caso podría haber cocinas cedidas por un distribuidor pero no recibidas porningún otro

pueden ceder varias. Además, cada distribuidor que cede y cada cocina cedida sólopuede cederse exactamente a otro distribuidor (uno y sólo uno). Por último. por cadacocina y cada distribuidor que la recibe sólo se la puede haber cedido exactamenteotro distribuidor.

CAPÍl ULO 1 DISENO CONCEPTUAL: MODELO ElR Xi-----'ORA MA

••••••••••••••••••••••••

La lectura que de l·...tu interrelación ternaria se reahzu e\ que plll cada disu ihuidorqur cede \ l::lda dl..;1Iibuidor que recibe se cede una cocina corno mínimo. pero se

Figura 1.50

II N

(11111\'\

1 1 11)

1.1 I

IJI~TRllllII J)Of{11, 1,

Con la antcllol inrcrrcluciou Cede se rcgistranan tan sólo las cesiones entredi ...trihuidorc-. \111 tener en cuenta qué cocina ha "ido cedida en cada cesión, dado queel enunciado no dice nada al respecto, se ha optado por esta solución a fin desimplificar: <rn embargo, si "e quisiera captar mayor semántica y reflejar en cadacesión la cocina ccdid u, xe tendría que establecer la interrelación ternaria presentadaen la figura 1.50.

l'lgll/(/ /.-19

LN

¡: 'Tnl.1IU. 1)d)

N:M

10.'11I)IS I'RIIHIII )()I{

___."' Dircccion

N I ncuucra

IU.nl

\11'1 111L\ (1)(1\;·\

111. 1 , /-_,L___ .J..__-',1'"

I Lnl

\1111

El resultado de rodas las consideraciones realizadas en esta parte se presenta en lafigura 1.-19.

~ñ IlIS1.:':() 1)( flA~I~1I1 1),\ IO.".I'K(HII.I·M,\S KI'SlIr.1 I()S

•••••••••••••••••••••••

Page 51: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••

Vemos que en la "'\lhICI\1l1 llhtenlJa aparece un ciclo, Icalilan10s un análisr- deredul1thlnCliI para C0l11plPhal que 11\1hay ninguna inlcn'claci{nl redundante, lu cual resultuclaro, pues la :-;cln;ínlic¡¡ Il'c(1)::!Ída en cada una de las interrelaciones es diferente de laobteruda a lo largo del ciclo, L'I ¡¡ni!,.'n~'aso dudoso se presenta con la intcnl'la!,.'i<Í1l 'I' r aha­ja, de la l ual pouría pt:I1~;lf~l'que l'-; r,;-dundantc. "in embargo. e-ro nO e~ a-;í. Y¡I que eldiqnOllllh 11 que \ ende una cocina puede no trabajur con el [abricunte (porque le hayaSido cedida por otro quc "'1 trahaFI con el fabncantc), I'nl tanto. no hay ningunaintcrrclac HIn redundante

Agrupal110'" las disllnta, "'lllucione'< parciales obtenidas en la figura 1.5ol.

Propuesta de solución

Se regl~lrana ti" pala cada vcntu, ti compra. el dl'iUlhllll.lOI. la l'(lCllI;1 y l.ltent~ ...quc rmci v icuen CIlIIIO IXIIII\. ip.uuc-, adenIa ... dado que la .. f~l.ha ...de \ cntu ) de COIl1)!' acoincidrrlan se tendría para las compras l'~le dato corno Illlllnl1al'illn athLIOllal Si a"" Itlníciéramos. resultaría la intcrrclacióu ternaria presente en la figura 1,5:\, Aunque en estasolución no se recogería. al 111'':110<;l'xplícltarnentc en el csquernu E/R, el hecho de que uncliente puede comprar varias cocinas (,11mismo o a diferentes di!-'Iribuil.lurcs) que SI serefleja en el enunciado. Por este motivo. optamos por la primera solución y no rundir esa~

interrelaciones.

Figll ru 1.53

l 1 1I N'II-

t l. N)

I I II , 1, I )

IIIS IRIBI IIII1K

\ cut..1

I I N

Puede observarse .... In embargo. que la interrelación Compra entre C'()CINA yCUENTI: e<; semántican1l'nte cOlllplclllcntaria de la Interrelación Vende entreCOCINA y n/STRI8{JI[)()R, y que aunque por el enunciado no sería ec;lrtctamentcpreciso, podría recogerse mayor __cmánticu tratando de fundir estas dos interrclaciollc'oen una úniea il1ten'elacitílllcmaria <figura 1.5:\).

(.,PIII'LO I DISEN() ('O"CI 1'11I,\L. I\I()[)..LOI·JR XI)-----------'- -----

""1111/ I 'i2 •

•••••••••••••••••••••••••

IIII'NI!

I Lm

\I1l~1 \lIOK

El resultado de todas las c()n~idcracloncs realizadas en c~ta parte, se presenta en

la tigur ¡¡ I ..'i2.

Del enunciado se desprende que hay una interrelación N.M Compra con laentidad ('()('/IV¡\.la cual tiene carúin:¡lidad mínima 1 en alllho, extremos

Aparece una nueva cnudad ('LI/-~N'IE con atnbl1t()~ similatex la entidadA/(>N'I,\n()u. puede pensarse aquí nuevamente en una g,cnl'lali¡aCIÚn similar a la queplanleaharl111S con FAURICANTF. y /)/STR/IJUIL)()R. pero se rechaza por motivos...imitares.

"Cadu ,'nI 1/111pued« ,\('1 ('tI,n/'nulll 1101' "/111 1I ,'(11/0\ (/11'/111',1, \ ('1 '/11.\1111)

cliente plII'dl' ('()II'f)/,(1/ ,'orUI,1 ,'(/ci/lOS, 1)1' 1111 (/i,'IIII' /1(11 1/11"1/',\(/ ,111 NIF,"(1,,11'/'1', t!I/','(','i/l" \ lí,"('(I numrrn elt' fl'lcl;/III1, .,

alternauvo- la "Dirección" y el "l'eléfono". En este caso. "Teléfono" no es un atributomultivaluado. puc, por cada montador solo ,1.: nene un uruco numero de teléfono,

X~ IlISI1\() 1>1 11"SI'" DE D' ros I'KOIlII'\I ,'> KI.Sll'[ T()~..:<;:.___

Page 52: Diseño de Bases de Datos - Problemas Resueltos

Cada cliente puede ...el .1\ alado por otro cliente. extamov ame una interrelaciónreflexivu. cuyas cardinalidades mimma )' máxima serán O) l en este sentido, E" mus.

Entre las entidades C'LI/!NTE y RESERVA existe una interrelación Realiza. Co­mo los clientes pueden realizar varías reservas. y no se nos dice nada en contra de quelos clientes puedan no realizar runguna. las cardinalidades mínima y máxima de lainterrelación en el extremo de la entidad reserva serán. respectivamente, () y n. Encuanto " las cardinalidades ele la entidad cliente y, por tanto del tipo decorrespondencia de la mtcrrrclación. todavía no tenemos suficiente infounación paradilucidarlas.

Del análisis del primer párrafo se pueden distinguir dos tipos de entidad,CLIENTE y RESERVA. De los atributos de la entidad CLIENTE se puede tornar elcódigo ("Cód_Cli") como identificador principal y el "DNI" corno identificadoraltematí \'0.

"["/1 ileternunado cliente IHlt'tlt' tener t'1I 1I11 1I101l1C/I/O ciado 11"I'lIa.l variasreservas. De cada I'lí('III(' tI' desea uhnnrenar Sil DNI, nombre, direccián vtetéfono. Además dos clientes se diferenrian por 1111 códígOlíll/('(J. "

"Cada cliente 171/(,(/{' ser 11I-akula flo/' otro cliente de la empresa. ..

PARTE 1

Discusión del enunciado

Cada reserva se realiza en una determinada agencia.

Todo coche tiene siempre asignado un determinado garaje que no puede cambiar.De cada coche se requiere la matrfcula, el modelo, el color y la marca.

No se mantienen los datos de reservas anteriores.

Es importante registrar la fecha de inicio y final de la reserva, el precio delalquiler de cada uno de los coches. los litros de gasolina en el depósito en el momentode realizar la reserva. el precio total de la reserva y un indicador de si el coche o loscoches han sido entregados.

Una reserva la realiza un unico cliente pero puede involucrar a varios coches.

Cada cliente puede ser avalado pOI ouo cliente de la empresa.

Un determinado cliente puede tener en un momento dado hechas varias reservas.De cada cliente se desea almacenar su I)NI, nombre, dirección y teléfono. Además dosclientes se di Icrencian por un código unico .

e <\riTlIl.O 1. DISI:'510CONCt'l' 1IIAL: MOllI'I.0 EfR 'JI

••••••••••••••••••••••

Se de ...ea diseñar una base de dato, sobre la información de la ... reservas de unacmpre ...a dedicada al alquiler de autornóvilc-, teniendo en cuenta que.

Enunciado

PR()I~I.EMA11: ALQUIIJI~R DE VEHÍCUI,OS

Por último, no figuran supuestos semánticos en el enunciado que no se hayanpodido recoger.

• Se ha supuesto que todo fabricante produce al menos un mueble.

• Se ha supuesto que no hay muebles cuyo fabricante se desconozca.

• Se ha supuesto que en las cesiones entre distribuidores no interesa recoger lacocina cedida.

• Se ha supuesto que todo rnontador ha montado al menos una cocina.

• Se ha supuesto que todo cliente ha comprado al menos una cocina.

SUPUEST()S SEl\-lÁNTIC()S COMI)I,EMENTARI()S y S":I\-IÁNTICA N()REFI,EJADA

"'iRII/'(/ 1.54

........ '..o" \ ,'\l .....~'"

I v, I~.I "L'11 I t ti, I

,,\",.,1..,· 1111'" .'I! I¡'¡, ,..'

T 1 ~:'l ",

I ,\llkll'\""1

,"1"•

\11 1'" ,~. n 1....1••••) ',.\ ....,)'

'JlI DISI-.ÑODE BASES DEDATOS' PROBLEMAS RESIIELTOS ___::Q:..::R::::A::::.M~A

~ ••••••••••••••••••••••

Page 53: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••••••••••••••••••••••••••

!.'¡J.iIIl'O 1,56

___ ..L.':":", "1

[ ('()('I~I,,]

(f 1,l.

rn. n)lUt:-'1 E I :"

0'11

"--1(1 I ,

11 1I I',c....", r[ll

._~-----------------~.ü 111

1 ,

I ,,,\l'

111.111

'".tll 111I

Todo lo descrito en esta segunda parle aparece reflejado en la figura 1,56,

En cuanto a los atributos de la entidad I?!~'S":RVA,como en el enunciado no senos dice nada acerca de corno se identifican In" distinta" reservas, podernos considerarun atributo código de reserva "('úd_R" como identificador principal. El precio dealquiler de cada coche "P_i\lquiler" debe ser un atributo propio de la interrelaciónInvolucra, Por último, el precio total ele la reserva "Precio , T" será un atributo deriva­do calculable a partir del precio de alquiler de cada lino de los coches involucrados enla reserva,

Por otra parte, C01110 una reserva puede involucrar a varios Loches, tenemos UII

nuevo tipo de entidad C()CH!~', que se relaciona COII RESERV,\ mediante interrelaciónInvolucra, con cardinalidad máxima 11, Además. parece logico pensar que cadareserva involucra corno rnfnimo a un coche (cardinalidad mmima l l. Por otro lado, uncoche e"tá involucrado en una uruca reserva (recordemos que no se almacena lahistoriJ de reserva ...l. con lo que la~ canlmahdadcx mnuma ~ máx irna de la entidadR/:.,\L:.I<\'A con respecto a ('()('I!F son I )' 1. rcspccrivameruc. Por todo ello, el tipo decorrespondencia de la mtcrrelacrón Involucra c" 1'N, En el l a~o en que se preci ...araalmacenar la historia dc la" reservas, esta interrelación 'cría N:~1 e incluiría [o-,atributos "I-"_I"' y "F_F" como atributos mulrivaluados (el primero "ería obligatorio).

( AI'Ill.1l.0 1 DISENO CON(,I,P1 tJ¡\l.: MODFl o E/R '>1

,,

lJll:1 I'CSl'IV¡1 c-, rcali¡ada por un único cliente. esto significn que la~ cardinalidadesntinimu v uulxima de la intcrrclncion Realiza en el extremo de 1,1 entidad ('LIENTE(que al1l~' 1111~l'COI1IlClan) son l y 1, respectivamcntc, y, por In tanto el tipo deL()lle~pllndcnl'ia de la interrelación Realiza e~ 1:N,

..No VI'/1/(1//(;"11('1111/\ d% \ dI' /1',1,''''(1,\ nnterinres. ..

"(111(1 r,'\('/1'(/ ItI rratr:a 1111 IÍ/I;CO clsente pero puede mvolucrur n 1'(1/"",\

cO( hes. ..

"1:.\ ;1I1{'OII(//I(" 1I'~I,II"",.{n [echa de inicio vfinul de la reserva. el prerio delalquiler de cuda U/lII de 10,1 coche», los 1;/1'0.1 de gasolina ,"1 ~'Idef'lÍ.~;(()1'11 elI/lO//lC/I(" tic realiza¡ {ti reserva. el precio total de la reserva v 1111indicadorde li el t aclu: (! 11/1' ('II( ""1' han VIlI(/ entregado», ..

PARTE 2

Figura 1,55,

IN

11) 1)

\'111"<'11 In, 11)

1 I~.. "

1)11 \;111'1

KI.~IR\ \

rod<l~I:I~convrdcractone« hechas hasta el momento quedan reflejadas en la figura1,55,

puede avalar corno mínimo a () clientes y COIIlO máximo 41 11, pucs elno impone ninguna restricción, Por lodo ello el tipo de correspondencia

un clienteenunciadoserñ I:N,

'12 I>I<;I'NO 111' Il \SI,S 111 1),\ I(lS I'_I{OIlII'\'IAS RESI'EI.T;_::0.c:.S _

Page 54: Diseño de Bases de Datos - Problemas Resueltos

1oda la sernántica del problema ha sido reflejada, y no ha Sido necesario realizarsUPUCSH1\ adicionales,,

StJPtJEST()S SEMÁN'rl('()S COMPI"I<:MENTA({IOSy SEMÁN'I'IC¡\ NOREFI.EJAI)"

Figura 1.515

I t.,1I ,1 IN ,I--"~

(()('H~.

.U.l

1I n'N 11,

' .... 1 '"

," T

I ,.

La figura 1,58 muestra el esquema definitivo,

Propuesta de solución

Todas estas consideraciones aparecen reflejadas en la ti gura 1,57,

Como cada reserva se realiza en una agencia, entre las entidades RESERVA YAGENCIA podernos crear una Interrelación Realiza, cuyo tipo de correspondencia esI :N, pues cada reserva se reahzu en una única agencia (cardinalidades mínima ymáxuna I y I para la entidad RI:S'~RVA). pero en una misma agencia se puedenrealizar varias reservas y, en particular ninguna (cardinalidade~ mínima y máxima O yTI para la entidad ACEN(.'/¡\ l,

___ CAPITUI.O 1. DISEÑO CONCI'fJTUAI.. MODELO f'll{ 'J~•••••••••••••••••••••••

/1~lIr(/ t. ')7

\1,,,1, 1..

( IX "'I,.\k\ll

11 .. I

I !t I

" j," 11

I~

,1 l'

¡"I ..;.••I ,

I ,"it' ti

~ntre las entidades ('()CHI:' y Gi\/iA.lE existe una interrelación que denominare­mos ¡\signa. Un coche siempre cxtá asignado a un único garaje, e~ll1 significa que lascnrdinalidades mínima y máxima de la enudad (i¡\RAJE serán 1, Sin embargo. ungaraje puede albergar como mínimo a un coche (cardinalidad mínitua 1) Y corno máxi-1110 a 11 (cardinalidad rnáx ima 11), pOI' 1(1tanto el tipo de correspondencia para la in-tt'ITclaeion ¡\signa será I:N,

En cuanto a los atributos de la cntidad ('()CH E, supondremos =Matrfcula" cornoidentificador principal.

1)('1 aniilisis de esta última parte ~e deduce la existencia oc do:-, IHI!.!va~entidades,(JARI\JE y AGI:'N('/i\, De cualquiera de estas dos entidades. C\lI110 no se nos dice nadaal respecto, supondremos un código corno identificador principal. "C'ód_(," y"Cód_A", para (¡ARA.! E Y AGf.'NCIA, rc.:-,pccti\'arnenlc.

"('(111" n'lc'n'il \" rruli:« ('11 1111(/dc'It'f/IlIl/tUIt, UgC:Il!'ICl,"

"/l1I,fel',

"T"dll I'IIC lu: 1;('lIt' 11('1I1()/t' 1I\I,~lllldtl 1111d<:II'I""lIl1ll1lo ,~IIIrIJt'qu« /111 (IIlt·d,.

,""111>1111. 1¡,' cad« t 1)( hr 1,' 11'((/11"1 l' (11 1111111iculu, e! IIH/lh'/II, el 11I1t" 1 lu

PAR'rE -'

_'J-l_ IlI\I'NO III B/\SIS PI flA-IOS.PI{Ofll I'MASR¡'SlII::II (",,)S:....__ ---

•••••••••••••••••••••••

Page 55: Diseño de Bases de Datos - Problemas Resueltos

"Iklll"":l qll~1:" \:""'111,', PU"l"'" \"'h,'I'" ,1 ",,"'" .lIliulllll'lll<: ll;¡,illL;¡hlc" UIIII.·:II,Wlllcalnla(\"',lll.!lll'" l'll.l (Il."'-' *1'I\.lt III ,1..., 1;11111\11\,1, Illllll", t ;ttllll.llll' ",Il' ell.)1 ,~. \1\'h:1 a 1111;'~'f¡ll)tll"'1\ 111<:llll\.·I.I.1

J~la I<:l.h,l. q"~c' 11110,k 1", ,."Ole' Ill,¡' (1111111111." ," IIl1l'l).) (',"1',11. a, 1'-'", \luv HIICIIlI ('<ln"'1 \ .Iclllll. 1 \lra,lIdlll;¡n:ln"'nlc Ru,·"a (,""C'\'~~I"II Sin

("(\.11111•••••••••••••••••••••••

i\ '1Illl'i1110. los ejcnlplarc\ podl ;ín \lT \ l·ndulo ... a el iente\. ('ada cJel11plar puuraser \ CIl<lido COI110 Illáxilllll a un el ientl·. ~ no ,e adl11llen devoluciones. InlCrL'...aconocer la fecha y el prL'cio de venta. y dl:l cliente cstalllOS interesados en \U nOlllhrc,dirección, ll'léfono y el nlílnerll dI: t:Olllpra' que 111).. ha realizado.

'foll() ejclnplar se clll'ontra¡¡j en Ull ~~lad(1 dc cOllservaclón delell11inado, Éste, ~il1enlharl!o .. n;) tiene por qué coincidir exaCl;lInCl1le con los especifícados anlerillrn)ente.sino q~cpuede neecsitar un pequeiio ajuslc (indicado por los signos '+' y .-') y Ullcomentario (por ejell1plo. Be . "Pe4uelill)!olpc el1 el horde"),

La empresa tendrá ejemplares concretos de monedas, que se idenrificarún por elcódigo de 1,1moneda más un número con elutivo. I.\)~ejemplares podrán h~ll~er ~Id()adquiridos a proveedores o COl1sc~lIida, plH cualquier otro Ille.dlo (adquirida .. vnmercadillos. regaladas. IIcg¡ltla~ a nuestro POUl'I 1)\)1el uso cnlldILlIl\)~ ele) Aunquee~13nl\IS uucrcsado ...en almacenar ("il'lllPll' qUl' IOl'ol1o/l'HI11\),) el precio y la lecha deadquivrcron del eJelllp[¡II, ~nl() c:.lalno\ inll',e,adll'" el1 la procedclll'ia de aque~lo!'> qllefueron ad4uinJo<; a pro\'eedore~. de lo ...que no, íl1tL'rt'<;aconnct'r \tI 1I0lnhre. dlrel'Llnny teléfontl de t:ontaclo.

Las monedas. en función de su e-rado de conscrv ación. tcndnin un precioaproximado. Un estado de conservación \1.' identifica por sus iniciales (I~(~,MB~'.EBe, SC.',etc..)'" y tiene un nombre y una descripción. lntcrcsa almacenar el precioestimado de una moneda según su estado de conservación.

• Una descripción, que podremos utilizar para especificar los distintos motivos oleyendas que aparecerán en la moneda.

Una moneda se acuñara de acuerdo ,1 UI1 ÚI1I1.;O 11111ldc\) troquel. S111embargo.para UI1 1111'1110molde pOUrlJIl obtener-e UI'"1l10' upo .. de 111011etla... Esto ocurrirá en elcaso de que por causa de rotura- en el troque]. defectos tic aCUllaCIOl1,o cualquier ouucircunstancra. un conjunto de 1110neU,I\ prc curen alglin upo de \ anamc re-pecto ,titroquel original. Solamente e ...tarno-, uuerc ado" en aquellax \ uriumes que apar~l'l'nrecogida" en los catálogos uuhzudos por In.. cnlccClllni"ta". Toda moneda (incluidaslas variantes cutalozadas) se identificará por un código único, y tendrá cornocaracterísticas propias si es \l 110 variante y. en ca ...o de serlo. una descripción del error

d I~que presenta la 1l10nC a .

(' \1'11 1'1 () 1 1)I~t-N()CON<' 1'P1I'AL' ~1(Jf)l't() EJK 'J)

1.. 1'", \'1\'111111" 1111111".1\'1.. ,,',,<1 ..,1 u'"e,p\Jntli"'lIl~ •• 1", I'..,lllll:" .. ' 11I"lIl't1.., ti\: i l'e,<!J,I~ quec""I,'I/:II"" ".1<1111:11"'" p.IIIII de 1')!I\), /\111)(1111'PUl'U"1I 1c'lIlT ""11111<" 1111'"'"' ¡!I':thud", l'lI '1I Il1lcnor,""1' 1,11.lllIl'lIll: Idl'lIlllil'.lhk, Iklll"'I1 d,· 1)1\,.1"1"... y:l MI \','1 t11'llllla, dé 1", """I:'I'"ndll'nll'~ ,11 alllell"lIIl<l<h'l" .h· n'''II<''',I'. d<'lllll'''''' \ :11," dl' IIliJII'" q\ll' 'c :Il',"1aroll h:I~I:1 "~'l'1111"'10 al1"

11 "'""1111' 1'1 ,'.1'" lila, 11.lh,lll.11 C' 1(11" 1.,111:1:til" \l' 1~':lIkt; 1111IllOldl' 11\1,,\1' 1'.11:1'''1 11111\kl\l Iladll111,1'1.1'I"l' ",11' .I1·1" .1<' 111111/,11,,", IHI,·tI" "CI" 1" 11"<.','1) 111111,"111" :111" ,,' Il':" ','l' "lO" de 1111If)old.·, n que"" 'o,' "',11In' 11111,1.'1111111'111 "1"1111'111 ,'11 l'l ,II\(' 1'1111 n" M' !l':III/\) 11111):\111111\1111<.'del ""'lklll'\111"'1'\111111"111":11.1 IIIOI),'d.1 ,k ~(lI'I' , 111"'1111:"'1ut' al :l1l\) "l!lIICI1ll' 'l' .IlIII"" l."" d", "".Idl'~ dl'IIIII\", '

Ik "l'l "" ,u,,''' ,""llIdll LI'II 1'1 ell' 1"""1111¡;.lllllI1 .1" la "') '1"<.' """r,' .)1.1.),"11,1<,,"1 de 1.111U'llt'(ltI l~lll lll"I~'f 11'111:1\1.1' \, .If.ll Il"I\1 1\,.,1,

1 I ...1.1 .. ,11,1 1111'I\'II~' 1'111 tl'l, '.," 1111.11t1, l i .1111,1\.'11. '1lltl 'Illl' Pllt'llt" , ..., 1;,1111111,,\ tI t,II'I"l'\ ..1II .1\ ¡•.I~I'1'1 ,•••••••••••••••••••••••

• I)('telllllll'ld", 1III1I1eU<l(n. 111cIOruicho, lo" Ilnquelc' rOI1 quc o,;¡: aCllñ.ll1) llcnen,nllrll1alnll'llll' .1 <11111'10 lados dc la lecha anterior. un par de e"lrellas cn CII)O

interillr ...c glilha ell dilllilllll11~ caracleres la fecha (habilu<llinente. la de acuñaCión).No eslall1n~ tan Il1ll·I~'...ad()~ en conocer el núnlero de eSlrella ...que contiene <.:on10la cilra quc aparece grahada en ('11",' \ (caso de exislir!.

• FI <líio. gr¡lhado ell l'araClere, \ l'lhles. y que no liel1L' por qué L'llinCldll con el dcal'Un<lLHIn

l\jll\t;llIdll"'l' ti lo~ autcnorcx modelos, se realizaran moldcx 11 u oquclc ... quescrvuun (1:11<1 1;1:tt'Ull"l'ioll de 1;ls I1H)l1eda~11 Un molde l',larú itk'nlillL'ado pOI unClllligo. vvndra l'al al'tl'll/adll por un ;11;0 de acuñación. y CSlHIlH)S intcrcsudc», enahllarl'n;1I dl'tl'lllIlnada\ l·¡lIa(·tl·ll ....il·a' que pueden apan'cl'I lO no) grahadas en el1111'1110:

Exixtcn 1111)(1\.'1,1\ de monedas, identificados por un c1iLli1:!ll.) curactcri/udos poruna serie de proprcdudcs, que hanin 4l1C un modelo sea idcntificahlc externamente porlo:>l·iudadanns'll. lalc~ C\)111I1 el valor lucial. la unidad monetaria (pe ...eta-, euros. ctc.),di.imctro, peso en gr¡lIllll, y uua descripción. l lahrá de cxpccificarsc. udcuuix, el metaln merulcs que ~e emplearán para cada modelo, así COJl10 la proporción de éstos y, en sucaso. la le)' del mismo (por ejemplo. plal;\ de l):2S).

1)IIRII(),,\. "\ \. l'lllpn";¡ dl·lheau.1 ;¡ 1.1cumpru-vcntn de Illall·n.1I trkuéhco ynunuvnuuicu. ha u~ll\ll\l(l dl·'¡lIl1lll.u una ha,~ de dato, para 11-:\al lIll 111I:I(1rC(1111101de'u Tl~¡;lllIO. 1',11 una pumcra l.a'~ -c contemplarán únicamente la, Illonl'd", c'pallola\,dl·.i'IIIUOpara l11Li,adclnnrc la parte Iilurélic« ) la arupliacion a material de otros paísesTra ... una convcrviciún COI1 cl dueño de la empresa ) la lectura de divcr-,o ... libros ypubhcuciom..·' e...pcci,lIl/ado\. h~TlII), ohtcnid« la ...iguicntc inlonnnción:

Enunciado

PR()BIJ~~MA 12: I~MPRESA NUMISMÁTICA

) I kA MA'Jr, 111')1:\0111 11\\1<;1)111\11)\ l'IHIIIII\l,\SKI'SII:l r()s

Page 56: Diseño de Bases de Datos - Problemas Resueltos

Con rC,pl:cIO al ¡:;S71\1)() CI1cl qlle \e 1'1ICdl'nencontrar 1:1';nl()ncda~, decidirnosrnotlclarlo COlll0 1111.) enlidad por d()~ I1H1IIVOS: ell prÍll1cr lugar, una 1l10llCUa cal<llug:ldaen delcllnl nau\) e~tad\) (ielle \111pi e,'H) ;'1'1 ox i rllad(), con In que dicho prT,' io ~l'ría1111atrrhulo que depende no ~()II\ tll' 1111:.1IlHlltl'da, sino de ul1a 111011,'d" en un e,ladodelcnninadll. [.:n segundo lugar, lo ...plnplos cil'lnplares C\lllcreto~ ue rllonedas (1<1\moneda' "reales" que l'Orllpr;lnHl~ \ Vel1delllos) <;e encucnlran en un l"lado

Todo eje/Ilfllar .,1' ell('(Jllll'ClrlÍ ('11 11/1 <'S(lIdo de COIISI'n'(lc;,íll dt,(t'nllillllt/o.Ésle, ~ill el/¡hargu, /1O rit'lIt' (1'1/ qué ({I/I/ridir eX(/C/lllllf'/lI(' ('0/1 losespecificados (1T/(I'riorlllt'lltt', silltl '/1It' 1//II'dl' II(,CI',lilClr /111 I't'qlle"o ajllsre(illt/icarlu flor los :;iglll/I 'T' l' ' " \' UII I'''II'('II(II/'i" (flor c'jt'l/lfllo. He '-,"1'CC/III'/la glllpi' "/1 ('1 h"rrle" J. "

UI ellzpresa /elll/rú ejl'lIll'llIre.\ ('Ollt're((l1 dI' 11I01ledclS, cllle le ;c/I'lIli{iclIrá"por el código de la IIZO//('Clt,IIItÜ "" ",i,llt'ro ('orrel(l(;\'o. { ... I

"UII numcdas. C'II.lUIICllII' ch' ~II ('\(.ICI" ell' I ')/IIt'n'C(ricí/l, tendnin 1111I",'('ioaproximado. ¡I'I estad» de ('0/1 \('1\'lit ion le ulenufi.:« /,,1/' ,HI.I I/II( iales (BC',~fBC, 1:8C', SC, 1'(('.. J, \. (1I'lIe 1111 II(JlII/JI ¡> , IlIla delcrtpl';ón. III(ere.l(/all//Cu'ellar el precio ('{(;I/I/u/o d( 1/110 I/Iolledll tl'(!1Í1I Sil el/(lela di'c'0// sen '(1('1cJlI.

A continuación pasaremos a modelar las monedas en sí. Tal corno se nosespecifica en el enunciado, roda moneda :-.~'acuña utilizando un determinado molde otroquel, el cual se basa, ti su vez, en un modelo. Tendremos por tanto una interrelaciónSigue entre M()/})I!. y Me)/)/:'L(), y una interrelación Acuña entre M()NI:'/~/\ yMOLDF., De cada moneda catalogada (que pUCUl' o no ser variante del molde original!tendremos distintos ejemplares concrctuv, los cuales. scgtin nos dice el cnunci.ulo.necesitan para su Idenlificación del crxligo de la moneda, Esto nos especificaclaramente una interrelación con Dependencia en Identificación entre fl,1()NF./),\ yEJEMPL¡\!<.

('/111 numcd« H' "<ll/iCl/tÍ dr lit 11"1./" u 11111I111e'O mold« ti troquel. S,,,rrnburuo. para 1'" 1111\1110 1/101.1,' I",dllal/ O!l("II('I.\(' C"~(IIIIII,1 /I/ICII C/('monedu l. f:Xl11 ocurriui ,'1/ ('/11/.10 d,' qu« 1111/'Causa de III(Unll ('11 el troque].d,'Ji'c(os de CI('uiicl('irÍlI, 11 t uulqut«¡ utr« , inunstanciu. 1111 conjunto tlemonedas presenten. algún (11'0 de \'(/riCI/IIt' respecto al/roquel original.Solamente estamos interesadas en uuuellns \'II/'ltl//(eJ qu« aparecen recogidas1'11 los catálogos tuilitiulos por 10,1 c nlrrrionistas. Toda moneda tinciuidasIIIS variantes catalogadas¡ se itle/l(i/;I"'lcí ,U¡r/III código IÍlliC(I, y tendrá comocaracterísticas propias si es ti /11' I'ariall(e y. en CII\O de .1'1'1'10, 1111(1

descripción del error t/II<' presenta la II/III/edct, ..

(.111(/ ell';rl'lpc/(í", qu« podre/TI"\ utilmu par« I"p('('/I;car 101 eI,IIII/(O; I/IO(/!'OlCI It'l 1'11t/a.1qlle aput cccrun 1'/1 111 111"//(,""

en CI/I'O interior se graba en 1I;IIIiIlU/O,\ caracteres la fecha (habitualmente, lade (/c'llIlaciríll l. No {'S/(""OI (all interevados 1''' conocer el I/lílllt'ro de estrellasqu« contiene COI/lOla cifra qUI' aparee t' 'traJ¡ada ('" ('11tH (CII.I'O de 1'.li~II"),

("/\1'1'1 ur.() 1, IJISI,ÑU CONCEPTUAl.. MUDI:LO E/K 9')oRA·M.'

••••••••••••••••••••••

1)1'/I'II/II"luIUI 1/III/lI'rlII.' (o, "'('1"1 elhh(l, 111" Irollu<'le,1 ""/1 l/lit' .Ie (/('II/illlll

110'/1,'11, /1/11'11111//11,'/11,' U II/IIh", lodol de 10/i'I"'(/ (1IIIt'l'¡III. 11//P"I dI' "Irrellell

1.'1(/1111, ~/lIhcrdll ,'" 1"1/11('/1'1'1'1!';,,!llcs, l' 1111(' /111 (11'//1' "0/ '1111: 1'0;//1'1'/" (tI//

,,1 tf" (/,'IIIi(/,;,;"

"AjUS/';lIdo,H! ti 1"" Cllllenore,l /lICldelo,l. se reali:arúlI lr/o/de,1 (/ trtlqueles qU('.1<,/'1'11'11/1!I"/,(/ 1(1 lIno/,/( hi" de' las /llulu'das. {.I/1 I1lo[dl' e.\/ard ull'llIiJicat/o ptlr11/1 (',ie/iK", I c,,,¡frcí c(/rel. rer;~acl() por 11/1 {lil0 de ll( ",¡<lei/i/l, v l'sr,IInns//lrt'n'"oc/nl /'/1 {/ll/llI('I'/llIr r/I'II'I/I/i/llldas l'ara('lert:~I/('a~ l/UI' 1111t'e/en1,11'111'1''-1'1'(" /Ir! J Q/UJ¡,UIIlI ('/1 1'11111 ~lIur

PARTE 2

Figura 1.59

LI!}'.........,...()~__ (_I-I.n.,)~1ETAl.

(O.n)

l\olmhrc( ..d,!!..

En el primer párrafo podernos detectar claramente la existencia tic una entidadM(){)EL() de moneda. que tendrá corno identificador principal "Código", y cornoatributos "Valor Facial", "Unidad Monetaria", "Diámetro", "Peso" y "Descripción".Para poder almacenar el metal o metales con que se fabricarán las monedas que siganese modelo, podrfamos pensar en un atributo multivaluado o bien en crear una nuevaentidad M/:"/i1L rclaciouada con M()[JEL(), Hemos optado por esta segunda opciónporque supondremos que en un futuro se añadirán nuevos atributos a la entidadt\1/:'1'AL. De n10<l'1 que crearemos una entidad METAL. y 1;.111tOla "Proporción" comola "Ley" de un metal en un molde loro,modelaremos COnlO atributos de la interrelaciónentre ambas entidades. Las cardinalidades máximas son bastante evidentes, En cuantoa las mlnimas, parece claro que un modelo necesita al menos un metal (cardinalidadmínima I l, mientras que hcnu», considerado que podernos tener almacenados metalesque no formen palie de ningún modelo (cardinalidad mínima O). Las consideracionesanteriores se reflejan en el esquema de la figura 1,59,

"F ",lft'lI 1110,/('/11,1 de 11I0Ilt',/¡I\, Idt'II(Ifi('(/e/OI por 1111II/e/lgo, l' rum« r"I/:"e/t1.1

1'11/ 11110 I,'I/t' d« l'IIII/It'e/tle/t'I, '1111' /ICIIIIII que un "I/It/,./O ~I'O ulrntifu ahl«,'IIc'I/IIII",'''(, P"! /01 I 1lI"tI"OIl,)\ , (aJ.'I "11110 r! 1'''/0/ 1,1t ItI/ /0 unuku!11"111,'(,,1/,, {/','I('(tll, ,'/1/01, 1.'((' 1, duunctro, {'t'ltI ('JI ~nll"(l1 1 /I11t1 .1,',1(,1/1,,'1011,

110/,,0 di' ",I{'I"'ljl('cI/ IC, tulemtis, ('1 metal " metulev que It' emplcurun paracada IIlodelo, av «ontn la proporcuín ele tlII,H 1, en I/C C(lICl, la Ic'" del IlIiH"O

(plll cjanpto. plata d« 925 J, "

PARTE I

Discusión del enunciado

ORA·MA'JI! IlISI''=O 1)1',B,\SI'S 1)" D..\ lOS I>ROBLEMt\S RI-:SUEI.TOS•••••••••••••••••••••••

Page 57: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••El atrihulo de ('L/ENT/:' "Nlínl C'0l11pras" e, un alribulo dcrivatlo.

Por lo tanto, el CSQUC111Udefinilivo quedaría l'1l1l10se n111e~lra en );.1 fIgura I 62. Enel caso d(,' los clientc~ y prnvcetlorcs ~e ha aj¡adillo un "('{Ídi~()" COUIO idcnLitic,ldorprincipal

Propuesta de sc)lución

Sin embargo, podría pensarse en agrupar a la~ cntidade-, ['J«()v/:'F..r)()J< yeL/EN7'!:' mediante una generalización. De hecho, en el enunciado podcn1os ver queambos cOlllparten los ITIislTIOSatributos, exceplo el alnbulo "Núrnero tle C'olnpra..,",que e~ propio de los clienles.

Figura 1.61

[}'JI.I\IPl \l{ JIII.n)

'1"1'"

111. t )11). 1 )

('III:NtlI'IH )Vt·l.l)(ll{

Por último. nos ralla por representar las ventas y compra ...de ejcmplare-, ele monc­das por parle de los proveedores y (;licI11C~, respectivamente. En principio, podríamosrepresentarlo como se muestra en la figura 1.61 (no se han incluido los atributos), esdecir, limitarnos literalmente a la.~especificaciones del enunciado.

"'"11/ \11111, 111.1 cjemptar«, podnin .11'1 vcndulu» 11 CIIt'II/('I. Cadu eje/lIl'/at'podrá ser vendido 1'1111111 IlliÍ.\ill/O a 11111'1"'/1/1'. " "" se admiten t!e\·o/UI'/OIl".I·.Interesa conocer la [echa v el pr« 1(1 dI' \·"II/tI, \ del cliente I'SIIIIIIIII

interesados 1'11 S/I 1l0IlIIJre, direccián. lI'I/!"1111 l' 1'1 IIlí"Il'rl) di> compras que110\ ha t eulitnd«). "

"l.", l'jl'/"I,laTt'.1 pndran hube¡ srdo adqturuío» 11fI/I'I't'L't/"/'c'.1 1) '·Ol/.'I'g/llllll\1'''/ cualquu: 0//11 II/("It(l (11.1'11111'11"" ,." 1I1('/( (1I1t/lI>I, /I'glllotlOI, /ll'glldll' ti

1III1'\//(/ I,"tlt" 1"1/ "1 /1\,' rutuluuu), "/1. J. 1\1I/lI/u(' "HIUIIO, mtetrvado» ('"IIIIII</{·,'III// (\11'/"1'''' (/IIC {II , 1>1/1);"'11//10' I1'1prc« lO 1 la [crtu: d,' adquts« 11)"

de! ejemplar. "i/.. ("/(1/1111' uueresadov ,'11 la proccdenctn de 111/11('/101 (I"~'1;'('/('" adquiruln, ti 1'/'''' ,·"tlO/('I. el,' It" qt« "'" III/l'/{'III '"1101'1'/ 111nmnhrc,ti" ,." ián .\. /,'I,:{(l1I1I ti.. 1 ""/1/1 tn.

PARTE J

CAI'II 111() 1 i)ISEr';O(,'ONCEI'TUAL.MOI)!,l.O F)1l 101~) K \...:."~.\ _

•••••••••••••••••••••••flgllra I.(JO

'11 1 \1I \'\

"",,-Q !I h'1",.. ,,"ltl\'

'\1, '1,.1., ," \.I ",lo",

"1

\"1' \.111" .... " ..8" .... l ;, .•h,hl"

I •h,' 1 .11.11,1 t,l., • "1'\ ... ,1 f"j

""( , .. , t

--0"'1=,,1 .. ,(In' ",1,\11(' ~-,()I"l"I' '"

+ , .tt, Ulll'o-1" "4 1'"...1 1,1'" o

t .h ". -lw_................I

, 1,

... 1

\ h

IL1I~II'I ~MJ 11-- ------(oo,

'.1 t tl '" '1.11o

I ,1 I 11 1'1 I

dcteuninado. el cual qUI/~1 IlceC"IC ver ajustudo hacia arriba ti hacia abajo Es decir./,STA/)() particrpa en uo'\ 1I1Icnclacillne", una con, / 1:1\ 11I()ne~a~, C(~I1(;rela~IfJt.·I\//'[_'\HI, \ lltra con 1,1\ l\111neU:1\ calaIO~;lda\ (fI./()¡\[·nAl. Adcnui-. e0I111) lacnud.id LST,\/)() 1.:11I1Il'lIdl,1(lClIrrCnCHI\ para los c-aado- "(/h/~,~(/II'I, 111.:,1l~,I(lgado' tic1,1' moncda-. IIl'l'C'llarl'll1ll' "lIn;Il'l'II,U el "AllI"IC" que modificará 1.:'1c-audo de ,unejclllplar. ('l)n"'lul'I.lIl10'" que t.1I11n(."ll' atributo l'01110el que cnnucne una dc-cnpcionacial "Inri" dcl C:'lado dI' 1" 1110nCU:l C"('olllenlario" I deben 'CI aUI huu» de lainterrelación Est" I':n, que relaciona LJI,,\/I'/..AN con t.S7,\/)(),

En cuanto a lü\ cartllllalrdauc" podernos comentar que ..e ha convrdcrado que la\mlnimas de la..; iutcrrclucioucv que enlazan f;S7,\n() con FJI:'/'./Pl./\R J uouen» son() porque 110 Il'nCI110' plll qué tener a lmacenada informución uccrca del valor de.1 • ,1 edu- (111' 1)llr supuesto CJ'cIlInlarcs) en alzuuos cslad¡)~ (de hecho, esuCll'rlllll1aua~ 111\111l u' , • .' t··::- . .. .habitual que para monedas tic reciente acuñación sólo xe eo.;rC(;1I1~UCll preciosaproximudo-, para 11)1)l1c(l;" en l'o.;la¡]o S('): Con respecto.<I las ca~·~Ir~l;¡lId,,~.C~,de unr::.!/:·,W/'/AJ( (;(111respecto a r:;.)'7'¡I/)(), c-, C\ idcruc que un ejcmplm se L:lIC()lltl.II,1 en unúnico csuido. I leI11()~cnnsidc: ¡¡dll. ad":lllá" que conocemos el C~l,~dotic lodos llLK:s~r()Sejemplares (cardinalidud nunima 11. aunque también scriu perfectamente admisiblel;ab~'I'I() modclud« con una cardinalidad minima O. es decir, dando a entender que detlcll:nllllladll~ cjcmplurc- no (;1l1l01'CIllOS su estado (por crcmplo. porq.ul' nuestracruprcsa no di\I')()llga tll' un l",,,dor), Fu este tiltimu caso, o.;l'rí¡.¡lila, apropiado t¡ue el

.. .1 I .. 1 t " l' propiedad del ejemplar Y' IlO de la uucrrcla-"CnlllelllarrO acerca uc e\I.ll n ucra 111d ..u. -r- ,ciun, La figura I,()() mucxtra el c'lJUl'IlHI que refleja la scnuinucu urucnor.

_-H \ \IA

Page 58: Diseño de Bases de Datos - Problemas Resueltos

• Personal de conservación: mantiene y conserva un área detcrmmada del parqueCada uno lo realiza en una especialidad delcrn1Ínada (limptcza, caminos ... )

• Personal de gestión: registra los datos de los VIsitantes del parque y estándestinados en una entrada del parque (las entradas se idcnt ifican por un n 1'1mero).

• Personal de vigilancia: vigila un área determinada del parque que recorre en unvehículo (tipo y matrícula).

Del personal del parque se guarda el ONI, número de seguridad social, nombre,dirección, teléfonos (domicüio, móvil) y sueldo. Se distinguen los siguientes tipos depersonal:

En cada úrea for7,OS3nll:nle residen especies que pueden ser de tres tipos:vegetales, animales y minerales. Cada especie tiene una denununacrón Científica, unadenominación vulgar y un número inventariado de individuos por área. De las especiesvegetales se desea saber si tienen floracion y en qué periodo se produce ésta; de lasanimales se desea saber su tipo de aluncntación (herbívora, carnívora u omnívora) ysus periodos de celo: de las minerales se desea saber si se trata de cristales o de rocas,Además, interesa registrar qué especies sirven de alimento a otras especies, teniendoen cuenta que ninguna especie mineral se considera alimento de cualquier otra especiey que una especie vegetal no se alimenta de ninguna otra especie.

Un parque natural se identifica por un nombre, fue declarado en una fecha, secompone de varias áreas identificadas por un nombre y caracterizadas por unadeternlinada extensión, Por motivos de eficiencia se desea favorecer las consultasreferentes al número de parques existentes en cada comunidad y la superficie totaldeclarada parque natural en cada CA.

Una cornunidad autónoma (CA) puede tener varios parques naturales. En todacomunidad autónonla existe uno y sólo un organislno responsable de los parques. Unparque puede estar compartido por más de una comunidad.

La ministra de Mcdio Ambiente ha decidido crear un sistema de informaciónsobre los parques naturales gestionados por cada comunidad autónoma. Después derealizar un detallado análisis, se ha llegado a las siguientes conclusiones:

Enunciado

PROBLEMA 13: PARQUES NATURAL¡':S

• Deberíamos exigir que el atributo opcional que recoge la "Descripción del Error"sea obligatorio en el caso de que la moneda sea variante.

~O..::RA:::.:.::.::M,:!..' __:..IAI'¡ nu.o I OISENOCONCEI'rt!AL: l\10DELO F)R 1111

• 1'11 el l'sqllenHI no p(ldl.'nl0~ representar que un ejemplar adquirido por un cliente110 puede ,el dl.'\'lll:lto.

• '-;l' 'UPlltll' que tildo 1I10ldl.'ucuñu al menos un tipo de moneda,

,l'()MPLI~M ..:Nrr¡\ltl()S y SI,:MANTIC¡\ NOSUPlJES'r()S SI~MÁN'rl('()S

I~}1:FI,EJ ¡\ I)A

Figur« 1,62

N'M o1 11 In11. i:d~'"

l'" \I.\rIUlllt.g-1)~'I.'IJ't:~I\I\1:111\1 \1( ¡NI·.DA ,·sTADO N(ll,\hrl.'

( 'C.JI}I(

0\"( IIP('ll)l\

(O.nl

I'I\.'l Ul_Arrt,'t

'.JIe .",1)"\

I 1 1I

\o~o_ \~IO"O~O~'1111 tI ... 11"0 MOIIlL

1e'l~_I:>I,dl~'O',\. (1(X1"n O

11.11J

NIr'\1'lllhr\.'

~~1( 'fl\ll~'"

I 1 1I\.lhll I.l'~ I I .n !l ItI,l~tJ \10[)1-1 () MFIAl

1)¡;'II1Clf,'i''':,,1 l>rI.1p()r.:i ón

I~"I ,p...IIIO

~I

(().oo,Comcntano

AJ,,\je

(D,n I

NI

I l.,,,I () 111

IJ LI,''''pl,u

1 N Pro"".¡()-~1 '\.'1. t,.lU-~

111 1

1 N

111.1 I

f'RIl\ 1 1 1')(IR 1"1 11-i' n-

o ti 1 I1(1 1 I

•••••••••••••••••••••••J ••••••••••••••••••••••

Page 59: Diseño de Bases de Datos - Problemas Resueltos

En cuanto a las Interrelaciones. entre las entidades PERSON/1L y PA I?QLIENArURAL existe la imcrrclnción N:M Trabaja cuyas cardinalidades indican que unadeterminado empleado trabaja en UI\ (1I1ic~)parque natural y en un parque naturaltrahajan varios empleados (corno mínimo lino). La interrelación I:N Conserva entreÁREA y C()NSEI<VA('ICjN refleja que UII empleado de conservación está a:>lgnado aun único área y que L11\ área está conservada pOI LIno o varios empleados deconservación. La intcrrclacron I:N ViJ.\ila cutre ARIi¡\ y VI(jll AN('IA denota que unempleado de vigilancia controla una única área y que un arca es controlada por uno ovarios empleados de Vigilancia.

T¡1I11bién existe una generalizaciol1 iotaí y exclusiva entre los empleados. Así, sedistinguen las entidades C'()NSER\,AC·IC)¡V. VIGILANCIA, IN\-t_'STICiAI)()R y G/:-S-, .TIC)N para los distintos tipos de personal El subtipo CONSER\',\C/C)N se caractenzapor el atributo "Especialidad" (representa la función que hace el empleado): el subtipoVIGIlANCIA posee los atributos "Tipo" y "Matrícula" (datos del vehículo queconduce): el subtipo INVES7-IGADOI? posee el atribulo "Titulación' y, por último. elsubtipo GESTIÓN no posee atributos propio" pues la entrada del parque a la que estánasignados será una nueva entidad, corno se estudiará a continuación-

En relación con los empleados que trabnjan en los parques naturales ~c necesita laentidad PERS()NA L caracterizada por lo~ nu ibuu» "DN 1"' (identificador principal)."NSS" (rultnero de la seguriduu social que por ser único para cada empleado seconsidera idcnt ificador alternativo). "Nombre", "Dirección". "Sueldo" y cl atribulomultivaluado y opcional "Teléfonos" (pues un empleado puede tener más de unteléfono).

Personal i/lvestigador: Tiene UIIIl I;III/O('ióll qUI! Ira de recogerse y puedenrealizar tincluso conjulltellnente) proyectos de investigación sobre 11110

d"tennillada especie ."

Personal de conservaciólI: manuene v CO/lsen1a UII área de/enninada delparque. Cada 11110lo realiza e/l 11/11/ l!spt'(,lalidad de/erllli/lado (linlpieZlI,caminos. __J

Personal de vigilancm: vigila II/l rin'a determinuda del parque que recorre1'1111/1vehiculo (Iipll) 1I11111'ít'ula)

Personal de geHIII/I' /'egll/rCl los duto» de I(I~ \I.\II(III/e~ del parque y estándel/I/lodor en 1111(1entrada del parqu« (1a.1 r',lIra¡{a.1 se utentiflran por unIIIII/lero).

"Del perso/lal del parqllt' H! guarda el IJNI, IlIíl/lerO de seguridad social.nombre. dirercián. /eléjilllo\ tdomiciua. IIl(íl'll) \' .111I'ldo. Se disunguen los.I/Rltle/l/I'I tipo» de personal.

PAR1'E 3

~O~R~.\~"~,, .:.(·"-'...f'lTlJLO I DISEÑOCONCI:PTIJAL: I\IODELOElR 1()7

••••••••••••••••••••••

Fi~lIl(1 l.ó./

."

•I! •..66,"

.. ,o,¡,,-_.... \'1;1\1 \1 \11.11\'

\1 "~.",,, " ,

..... llt>o. ",i); ,

1 1" I I '.'

,1'

I ,

,

El esquema F/R couespnndicnte a 10<; supuestos semánucos anteriores se muestraen la figura 1.64.

Para reflejar qué especies sirven de alimento a otras especie!' se requieren dosinterrelaciones. La interrelación reflexiva N:M Come relaciona la entidad ANIMALconsigo misma, de tal forma que una determinada especie animal puede servir dealimento a varias y una especie animal puede alimentarse, a su vez. de varias especiesanimales, Por otro lado. también existe una relación de alimento entre lasespecies animales y vegetales representada por la interrelación Se Alimenta; unaespecie animal puede alimentarse de varias especie!': vegetales y una especie vegetalpuede servir de alimento a varias especies animales.

Lax especies ,c clasifican en vegetales, anunalcs )' rninei ales: a..,1.se tienen lascnudadcs ANIA/AI, VECifrAL y A1/NfRAL 4uC son subripo- excluvivos de la entidadI:SP/:,(·IE. 1.,1 entidad AN/ft,/AL posee COII\() atributo- propiox "Aluncntación"(representa el tipo de ahmcntacrón de la especie). "Fecha liucio" ~ "Fecha Fin" (fe­cha, que representan el comienzo ) el final del periodo de celo de la especie): laentidad \'EG El AL se caracteriza por los atributos "Floración" (indica si la especievegetal tiene floración () no) y "Fecha Inicio" y "Fecha Fin" (atributos opcionales querepresentan el pcnodo de floración en caso de que lo haya): por último. la entidadMINERAl. contiene el atributo "Tipo" que puede tornar los valores cristal o roca.

interrelación contiene el atributo "Individuos" que representa el número inventariadode cada especie en cada úrea del parque natural.

10(1 DISt-.ÑO ni flA'\t:S 111"n/\ lOS' rKOALI::M ...S RF.SllELTOS

•••••••••••••••••••••••

Page 60: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••••••••"[,/\ (I/lJjalllll'II/'" IIrgcUII:IIII t'\( 11/\1'"11',\ 01/1111'/111', ('" IUI "('/IIC 11/" " (1 111/',/'11 clel'Tllllllllcll/\ tlíl/\ dI' 111 H'IIIIIIIII l' 11 111111"/)/'11 c1"'t'IIlIlIll/clo ,\ /'\111,\

,'\( 111',\1111/('.\1'111'.1/' (11'11.1" C110/("/11'1 11\1/(/111,' clt'l fllln/IIC'"

Como se mencionó en la parte '\ uunhiéu se almacenarán los registros de losvisitante" en las entradas de los parqlles. 1.;1 intcrrclución N:M Registra entreENTRAI>¡\ y VISITAN7/'; recoge esta inluuunción (la interrelación contiene el atributomultivaluado "Fecha Registro" para indicar que un mismo visitante puede registrarseen la misma entrada en di:-.tintas ()etl~illneS 1.

Por otro lado. también xc tiene la mtcrrelaciún N:M Aloja entre \'ISI1'r\IV7 E yALOJAA-fIEN7'() para almacena: la~ estancia .. de determinados \ isitantcs. Al igual queocurría en la interrelación Visita. también se requieren lo, atributos multivaluados"Fecha Llegada". "Fecha Salida" y "Hubitación" (un visitante puede alojarse en elmismo alojamiento en distintas fechas y 1'11 \ arias habituciuncs l.

Aunque descota tic forma implícita en el cnunciudo. 'l' requiere la interrelaciónN:M Visita entre vtsn sur« y f'/\J<Q/JI' N,\ I L'RAL pala recoger la, \ i:,il:.l' alparque. Puesto que un visitante puede \ ivitar valla, vece ...el mismo parque natural seha añadido en la interrelación el atnbuto 111UItI\ uluado "Fecha Visita" para poder di ...-tinguir las ocurrencias de la interrelación.

Se necesitan ahora la entidad V/SI7¡\NTI:' caracterizada por los atributos "DN!", ,(identificador principal). N()MHNE. I)/RI·;(·(·I()N y PNOf-¡:;S/()N y la entidad /\L()-

JAM 1EN1'() con los utribuu» "Nombre ,. (idcnti ficador princi pul). "Capacidad" y"Categoría", La intcrre lución 1:N Dispone entre ('ARQU F.' NA 7'U I<AL y ALC).IAM II~N­T() recoge los alojamientos de lo~ que consta un parque natural Además, C~ una de-pendencia en existencia,

.. / '11 visitante (L>¡V/, 11(11111>1'1', domic ;111/ , l,r"fi',";líll) debe 111";01'\1' dentro delos alojamientos de 411e dispone e/ purqiu', ti.IIIIS tienen 11110 capacidadtunitad« v '/I'/U!II una c!e/I'nllillclda l,I/I'II"r(II".. '

bstc 'UPUC\to no' uulu a lo" alllnulo, de la enudad I'R()} EC""(). el atnbuio"Nombre" es el identificador principal y 1(1\ umburos descriptivo- son "Presupuesto" y"Fecha Inicio" y "Fecha Fin" para reflejar el COII1I1!n7() y el final del periodo ticrealización.

"UII ",.O)·('('/(I JI! ;IIII.',I/I.rIIIC'/Óll 111'11/' //11 111I',llIplll' sto \ 1/11 ¡Jel iodo d"",tlti-oc ¡tÍlI"

PARTE ~

_ I:..:'AI'11LlI () I IlISENO('01'1('1-.1>1111\1 ,1\10l>1:('() "'iR 11l'l

I";~IIIII /.(1')

•••••••••••••••••

l'K,"'t't 11.

, .;. \,, ""

\11,1I-\\;( 1\!I ...I

,;0 I~,",,,,l, .. ,,',' \ ,,1

M·,4 ¡¡¡¡c ...

,11 ,

I "l. \" \"

'"n" l' I • 1

"1""1'\

". I ~"l

La figura 1,(1'\ mucvtru el C\qUCIlHI E/R corrc..;pnntlicnte ¡¡ los supuestos

al1teriOl1l1elltc dC~i.'1 itl)".

Aunque detlllircl1\o, dl.!'pué, la entidad PR()Y:~Lr,()' eSlu(~i~rel,1\~\ ahora lainlcrrelacion tcrll¡llla Rcaliz'l entre I:SPEC'If.·. PROl I:C1() e IN\ ~:S11(jAI)()R querefleja la partlClpacllÍn de l0' emplcadov tic invc<;tigaelllll en diverso- pn1y.cctO\c,tudlando di ...unu» e,pl'cIC\ I ,1'" cartllnalidadc... Indican que un dClcrllllna~oIII\e ...tlgadol en UII PIO\l't't\) puede l'''ludiar \u,ria\ .l',pec!l·\, una detcll1\lnuda espccreen un proyecto puede ser e ...tudiadu por vanos 1~\'cslIgad(\le ... ~. por ulurno. unae...pccic puede ...cr e'llullada pOI un IlI\C,tl¡!ador en divcr-o- proycltll v.

Por ultuno ....e ncce ...ita la entidad F.IV1·UA{)A para poder recoger la' cl,ltrad<l' queposee un dctenninado parque natural. a,j como las entradas l}U~ucncn a"'lgl,:<1u:,,,,losclllplcauos de gc ...ti\ln, La entidad f.NTUAI'>A llene corno umco a~nbu~~) Número1~lIlrada" <identificatlor principal) y está relacionada con 1'¡'U{]l'E NAI1JI?¡'I. me­diantc la ímerrclacuin I:N (-h,y (una entrada pertenece a un unico parque ~' ~n parquetiene varia" clll¡auaS), AdclIl<ís. existe la inlerrelación 1: I Controla entrc I:NlI<AI)A Ycrsrto» para rl'l1cjar que UIl cmplcudo tic gestión cOlltrol.a una única entrada ~I:Iparque y que una detel'lninada entr:lda tiene aS,i~nad(l un único cll1pleado de gesuon(SUp(\lll'nl(l~ que hay IIn único clnpleado de gcsuon en cada entrada).

----" l( \ ",\

l(l~ IlISI,I\I()llI'!I'\'I1 ,111 1l\ICl:' l'IH)IIII-~1.\SRES~:l.T(._:_)S..:_' -- - -- __ .- - - - - - - - - - -

_______ '.._l~ ..._

Page 61: Diseño de Bases de Datos - Problemas Resueltos

Una Ctllllp'lñia ascgllladora de tipo sanitario desea diseñar una SD parainformatizar parte de su ge<;tión ho:-pitaluria En una pruncra fase sólo quierecontemplar 10<;\Igulcntc\ ,",uput:\tos scmániicov

Enunciado

PROBLEMA 14: GESTIÓN DE HOSPITAI,ES

No han sido necesario «upuesios adicionales.

SUPUESTOS SEMÁNTICOS COIVIPLEMENTARIOS y SEMÁNTICA NOREFLEJADA

Figura 1.67

'",.I1't.". ¡..

'o. ,... c>-1L",........,.J-0 I '"••

U "'._"

_ .. " .,j " ••,..

,'¡'I I ,1.... h. ".~"

..""....".",( ...,,.. __ _...__l.---,

1" ,

.. 'ot::::F-§'"I'!1(" '-, '1 " ...,t.

""-o. ..~+~.x.._J..)

'.,

I f, ...

.... J ... '....... '

••......... ..--...1.......,..---~...I

',\11· ,

'",..'..

'".,"

"O ...

La figura 1.67 muestra el esquema E!R completo.

Propuesta de solución

e R 0\ ~" o __ _ •...:(.::..!. t_:c' Pc..:1...:.T::;U,!::L::;O...!I_.:_!éD::.:tS:.::E:!.Ñ:.:O:...C~'O~N;C,!::t~ty.:..TI~J !.,!A.:.:.I....:.M=O.:,:D::::E.:::L::;O...::EI::.;R:::........:.I.:..:..I t

••••••••••••••••••••••

1'.11 e 1ciclo ent re las mtc: rl'l;lel(lIl('~ Visita. Hay y Rc~ist ra sí existe redundancia,puc- la ,cllI<Ínliea rccogrda t:1I la interrelación Visita puede obtenerse a través de las¡ntl'llclacillnt:' Ila) y Registra Se deja al lector corno elclI:iclo su comprobación

Isn cuanto a las íntcrretacioncs Dispone, Aloja y Visita ocurre algo similar (elque UII visltanle acuda a un parque no implica que vaya a alojarse en algún

Cstahlec 111\ie111o ).

Observando la figura 1.66, existen tres ciclos que hay que analizar con el fin dedt:tectar posibles redundancias. En el ciclo compuesto por las interrelaciones Disfruta,Aloja y ()rgani7..a no existen reuundant:ias. pues las interrelaciones no estánsemánticamente relacionadas (el que un visitante se aloje en el parque no implica quevaya a realizar excursiones y viceversa).

r"i}!.ura 1.66

I ,., l. 11,..,.11"

1__'101'1\\

.. I

, I ,,,...

'.t ..A 1" , ....o" ,

I \Kl)t I( ,. ...... ,11 H'"

I "

I tul. l.•• r

... ¡,¡ I I!

El esquema E/R corrcspondiente a esta parte se mue-ira en la figura 1.66.

Por úlrimo. la interrelación Disfruta refleja lus excursi()lIc~ que realizan losvisitante« de los parques. Un uetenninado visitante puede que no realice ningunaexcurvión y una excursión puede ser realizada por vanos \ isitantc-.

Para almacenar la infonnaclón de las excursiones se ha creado la entidad1:',\'('(IR'i/()N con los atributos "C\ídigo Excursión", "Vehículo" (para indicar si es apie (l en "ehículo), "Día" y "IIOla". La 1I1Icrrehlclón Organiza entre AL()JAMIENTOy r:;«('IIRS/()N recoge que un alojalnicnto puede organiL¡1I o no excursiones Y que unaexcursión puede ser orgCllli/aJa por vanos alojalnicntos.

,---- _-- -----111) IlI\I.'Olll O\'iI.SDI-I>AIOS I'K081I.M¡\SRt·SI'EI ro,;

J.~.~~~~••••••••••••••••

Page 62: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••

Una P(jLI7~\ la modelaremos mediante una entidad. Además, puesto que cadaasegurado que cubre una póliza se identifica por IIn número correlativo incorporado alnúmero de póliza, tenernos un claro ejemplo de dependencia en identificación entrePÓLIZA \ AS/::GUFU\DO, Por ser una dependencia en identificación, las cardinalida­des de la' interrelación entre ASl:.GURJ.\D() y P()LIZA serán (1, 1), Esto nos implicaque cada asegurado sólo puede estar en una póliza o, para ser más exactos. significaque cada ocurrencia de ASI:~GURAI)() está relacionada con una ocurrencia dePÓLIZA, Puesto que cada asegurado se identifica con un número correlativo añadidoal de la póliza, podría ocurrir que una misma persona apareciera varias veces endistintas pólizas. aunque como ocurrencias de ASEGUI?¡\I)() distintas, Para poderrecoger adecuadalnenle esta cit cunstancia dcbcrfurnox añadir supuestos nuevos, o bienmodificar los existentes, Por ejemplo, se !lndlÍa plantear a la compañíu de scguro« queidentificara a cada asegurado por S\I I)N 1, con lo cual desaparecería la dependenciaanterior. y no duplicaríanlo!'- la lntonnacion de un ascgurudo que estuviera cubierto porvarias pólizas.

"(//111 (lIi(i:(I, que s« ie/I'/tllll('1I ('11/ 1/lI/I/IIIle/o tll' (I¡jIt:CI «'(ld_PI, 1/('/11' I'c,l'llH

1/11I/'lIllIS que. "///'/;'11';(1/11, /1111I11,'/('\(1 ",1/"'( Ili"II/ l' 1(111'1(' IIglll(1(1I1 hO)(1 1'///<lIIII>,e .1(' da/o,' de ,1(j/i:11 (l)t1/",_"J. 1'/111I",/t-I/ll/IIII' (/1'(///(11 asegurudr»,I()~cuales se ldenujican por 1I11/1I;1I1('/III'I)" ..lativo (NIIIII). añadido (/1códIgode la páii:«. y tienen 1111nomhrel NA J, 1('1(la di' 1I(/("ullú.'II/(l1 FN), err. "

PARTE 2

Figura /,68

PROPI() (:()NCER'f ADC)

'---<) 'ripo_H

(O, I )(J, I )P Ts

HOSPII Al,---------,0-- ....Cod H

I--oN 11'- __ ..,-__ ....Jt--0 Nunl_C

propio no puede ser concertado y viceversa, es decir. que ambos tipos son exclusivos,y que además no hay ningún otro tipo oc hospital que nos interesa almacenar, Lomodelaremos por tanto COl110una jerarquía exclusiva y total. tal y corno se muestra enla figura 1,68. Se ha añadido el utributo Tipo de Hospnal (,'l'ipo_H"). que no apareceen el enunciado. y que nos perrruurá identificar el upo de hospital de qUI! se trate,

I Af'ITtll1) 1 ItISI',NO CON(T.PTLIt\l.: lvl()DELO I-JR I1 \t¡ RA .::,:.M,'-'..' _

LI l'llIlnCI~ld() "0' dice que los hospitales pueden xer de dos tipo". y qUI: existen"lgUIH1~ auihuu» que "UIl comunes a iodos los hospitales) otros que son propios dedeterminado tipO de huxpital Este es el típico ejemplo que pllUeI1111\modelar mediante1111<1IcrarUllla I'~"\'''''l· d ·dul'il e del CllulH.:iacln, '! a'ií In SUI,olldreIl1l1", que un ho\pital.' .

"Lo, hnXf1l1o/I'X tit' ,111 rrt! pueden wr pr(lpiol (1 conreruulos. adema» dl' 11110.'

dato» ,'(//111111,'1' (/ /nrln.1 ('1/01 ((JI/lO S/)/I el ('ljdi.~1} ele }tI/S(11Ial (Ct«! H), ,1/1

1/11/1//11'1' (N 1{j, I/IÍ//II'/'I) dr {'(lI/IIIS (NIHII_CJ. ('11'" cunnd» 1'/ hospilal es(Jrll/J/1I s,' tirncn (11/0,1 (',I(lfl'/Jil'IJI ('(1/1111('/ (l1't',I'II(III('I/O (1'). tipo de sct viri«(7:\'), ,'f( "

PARTJ;: I

Discusión del enunciado

Lo, 111éul¡;O', que se Identifican por un código «('od_~1l, tienen \111 nombre(N_l\1), teléfonos de contacto, etc. Interesa conocer las áreas a las que está adscrito unmédico, Existe una dependencia jerárquica entre médicos de forma que un médicotiene un único jefe.

Exixrcn ¡íll'a" idcntihcudu« por un código (('oú_i\l y con oatlls sobre susuperficie (S). número de habitantes (NUM_II). etc, Lo!' hospitales concertado, tienenque estar asignados ti una única área. que no puede cambiar, nucntru-, que lo'> propiosno e<¡l;in a~ig.lladn, a ¡Ílea,

Interesa sah('1 en qué hospitales han estado (o csuin) hoxpi tal izados los ase­gurados. el médico que prescribió la hospitalización. así COl110las fechas de inicio (FI)'! de fin (f-FI de 1:1 nusma,

Los asegurados cubiertos por una misma póliza pueden ...er de distintascategorías. Mientras los asegurado", de primera categoría t¡\ IC') pueden serhospitalizados e cualquier hospital. los de segunda categoría tAle) sólo pueden serhospitalizados en hospitales propios, Aunque las otras categorías no tienen derecho ahospitalización, en la BD se guardan todos los asegurados sea cual "ca su cutcgorla.

Una póliza. que -c identifica por un numero de pÚlil~.({'oo PI. uene variosatributos que, 1.'11 pi incipio. no uucrcxa especificar y que se agrupan bajo el nombre dedatos de póliza (Dato,,_P lUna pól i I.a cubre a varios asegurados. 10<; cuales seidentifican por un número corrclauvo (Num), añadido al código de la póliza. y tienenUI1 nombre (]\;¡\ l. fecha oc nacimiento (FN), etc,

Los hospitales de ~Úred pueden ser propios o concertados; además de UllOS datoscomunes a todos ellos corno son el código de hospital (CodH), su nombre (N_H),numero de camas INUIII e). etc .. cuando el hospital es propio se tienen otroscspccít reos 1:011111el ple ...upuesto I P). tipo de scrv icio (l'S). etc.

11~ I HSrNO 1\1 11/\<;I'~ 111'1),\'1OS PI{()flll'Mt\S R¡':SI '1',1.r(lS~ __

Page 63: Diseño de Bases de Datos - Problemas Resueltos

I.a ... arca\ talllhicn e",'all Il'lat:iollad ......con los l11édicos, ltn /'.I/:/JI('() ...cra unaentluJd qUl' Il'llIlrá una intel re I<lclon Il.!tlex 1va Jefe que no ... Pl'rllllllI;i 1ecog~'f que 1111

nlcdl«(l tcnga un unlco Icle (C¡lIdlllalld,ldc\ 0,1). Y que un Illcuico pueda 'l'l Jefe d...

El :\RL/\ la IlI(ldclan':1l10~ LnnlO una entidad. tIlIC estará rclaeiunaua, tal COl1l0 no\Indica el enunciado. con ho<;pitale ... l'Ollccrtados. Supondrel11os que rlll.!de haher úreas~In ho~pitales tcardinalldad 111ll1ill1aO), rcro tal COI110IIOS exigen los requi:'ltos. todoho~pital cOllcertado ha de e~tar a,igllHtlll aUlla LÍnica área. En l'l esquellla conceptual110 PUdClllO'" recoger quc esta aSI)!rH,ciúlI 110 pueda call1hinr, ya 'lile para ello C()NCF:.R7'\I)(J dl.!hcna scr una cl1lid:HI lh:hil. ,'o"a que 110 liclle dl'llIasiado "'l'ntll)o.

"1:,.\1111'/1 área«. id,'/lIif;t'(Il/(H l"!' 11/1 ('"digo (('ud_A) \' CO/l da!IJI sobre 111

"'1'1'rii«! e ,S). /1 lí "'I! ro ti(' habi 1111/1<'.\ (N [//11_' /), l' le Los hospi tal e \concertados tienen 1/111' estar asignado: 11 11110 única áreu, (/"1' /lO pl/edl'

«(/1/'/"(11', mientras 111Ii'111.1' prOI'/II.1 /lO e,lltÍ/Iasignados a (Ín!(I~,..

"L(l1 medico». qur se tdcntitinm pur 11/1 código (C'(ld_M), tienen 1111 /I()/I/II/'I'

(N_/11J, tetéfon»« ele cOl/laCIII, ('1(. lntrresa conocer las cÍre(ll a 1/1.\ que estáadscrito (111 médico. Exivu: una dependencia jerárquica entre mrdico« el,.10111/(/ l/l/e 1111II,étli,'o I;el/l' 11" '¡II/eo 1elt' ..

PAR'rE 5

Adcnui-. como en los rcquixito- se no ...dice que estamos intcrcvados en conocerlos hospitales en que han cvtado ingresados los asegurado, (e, decir. ljuerclllo,almacenar un histórico). :-.erá imprescindible que las techas de ingreso y de alta delhospital. modeladas COI110atributos de la interrelación, sean atributos multivaluados,ya que un asegurado puede ingresar en UIl mismo hospital prescrito por el mismomédico en distintas fechas. Supondremos, sin embargo, que este Laso no puede dar-een un IlIisJlIO día. es decir .....upondrcmos que un asegurado no puede ingresar en UI1

mi...mo hospital prescrito por el mismo médico más de una VCL el mismo oía. Adcmá-.la fecha tic alla sera UIl atributo opcional. yu que no tornará ningún valor hasta que elasegurado no vea dado de alta en el hospital. Sería necesario controlar que la fecha ocalta de un a...cgurado sea posteuor a la de ingreso. Esto, sin embargo. no podcmovreflejarlo en el esquema PJR

asegurados de primera categoría, pero el razonamiento es equivalerue en ambo'casos) Cada interrelación ternana no puede sustituirse por tres binarias, ya tIue norecogeríamos la semántica completa que nos especifica el enunciado: por ejemplo,podríamos saber en qué huvpitalc» ha estado mgresado cada asegurado y qué médicosle han pre'c.:rito ingresos (cada uno oc estos daros con una de las intcrrelacionc-,binanas), sin embargo 1111podríamo« saber qué médico les prescribió calla ingreso encada hospital. Las cardinalidades en todos lo~ casos serán (1.11), y¡¡ que no cxixte en elenunciado ninguna restricción que n()~ impongu participaciones máximas de ningunade las eruidades. Por ejemplo, dado un asegurado ingresado por prescripción de unmédico. puede haberlo sido en vanos hospitales,

('"pi 11.11() 1: Ill\I".ÑOCONCI1'1111\1 t-l0DEI(J rJR 11'•••••••••••••••••••••••

1\ ~nnlllllr¡ICilíll IlllldclarCIII\l~ 10,\ illt!rl'~(I~ oc I()~ :tscplll:td(\~ ~'1l los hnspitalc~,Lo:> lequi,\llll\ ~'\Jlel:lricLlIl ljue l0' illgll'~O~ de lo, a'l'gurauos CII In" hll~pilales ,onrre\Clllo, plll Illeulcos. l:.sto podenln:- Il\odl'larlo Illediantl' una IIl1enclal'ion ternaria(l'n le.lltdad .,1111 d\)~ intl'rrl'lal'lone\ tl'rlHlna" en una parllt:lpan 11), ho'pitale<; prupios) 1", "'l'¡!UI ¡Hlo' UC 'l');ullda l',lIcgolla y Cn la (ltra lodo, lo, hn\pitale<; ) l{l~

"III/t'I"WI sall,.! <'/1 ,/lIt' hl/lI'"(I/t', hllll e,Hado (o 1',\1(11/) h(l,lplIlIl':IIt/O,\' 1(1"1II,'gllJ'(lI/fI , ('/ /I](1(/i( (/11"" prclI'I'I11/(i la hl/l/';llIl;:lI( ;,'", ,111 ((//11(1 la,l /I'I'hll,1dI' I/llr,r> (FI) \' d,'fi/l ,,. F) d,' lo 11,1111111, ..

Figura /.ó9

NlÍnJNaId Asea,- ,

ASK(,lJRADO P()LIZA

( 1, 1 I

('ud P r):II,"_1'

1 ,11)

(O. 11ro, 1 )

1\2C1\ 1 ('

Dejaremos de lado de momento la~ hospitalizaciones de los a~l'guradlls. ya que se1I0!'! uclururá en el párrafo siguiente. J nos centraremos ahora en la distinción entretipo" oc ,,\egllrauo. ('OIlHJ vcmn-, en cl enunciado, In~ a-cgurudo« pueden ser dedi<.linta\ categorías, hecho que modelaremos mediante otra jerarquía. Parece deducirsede lo-, requisitos. al igual que en el caso de 10'- hospitales. que IIn asegurado no puedepertenecer a IllLÍSde una categoría (no existe solapamiento). Sin embargo, el enunciadotambién nox indica explícitamente que existen otras categorías, por lo tanto lajerarquía 110 será total. La figura l,(llJ recoge In semántica anterior.

"Lo.' avcguradn» (lIhli'IIIH pOI una ''''\I''III/(íli~(I PII('J,'/1 srr ti" '/11/11111/.1

'/lI,'g(l"'II~. AI"'/III(/1 10.1/I.'I'g'II,II/OI d" prunera (tllegolltl lA IC') 1'11/''/''/1 se"1)\1I/11/11:lldfl.~ ('/1 ("/la/,,'II{'I 110,\'(>110/, los de segund« categnun (Al(,) lO/O11/1,'11"/1.1(" hll,\llil(¡/I~a"I/,1 ,'/1 hlllllll/l/¡',I II/(lP'O,I, AIII/(I"I' /1/,\ (1111/1 ('lI/t')io/'las

no tienen derech« a 110,11';/11/;:11/,;0/1, 1'/1 1/1 81) s,, guurdun todos losasegurados se« ('11(1/"('(1 .1'1/ (,IIII'gll/lú, ..

PARTE 3

() RA·M..,11 I 1H\IÑO 1)"', 1l,\,~ES DE DA ros I'ROIlLt:t-1¡\SRESUELTOS.:.:.:_-----

~••••••••••••••••••••••'

Page 64: Diseño de Bases de Datos - Problemas Resueltos

Cudu federación puede udmuusu.n una serie de cxuununc« de esquí. y todaestación se adrnirustrurá al menos por una Icdcrucrón. aun cuando puede haber e...ta­cione-, tic esqui Jthninl"trada'i l'onJunt¡lIllente por varias fedcrucioncs. Una e ...taciou de

•••••••••••••••••••••••

Exi-aen una serie de Icderacroncx de esqur, cada una de las cuales tiene unnombre y un número de federados (el) la" federaciones se federan los esquiadores atítulo individual). Por IIn acuerdo existente entre 1"" distintas fedcraciuncs. n(1 "epermite que ningún esquiador se federe en dos Icdcrucioncs distintas, 'I'ampoco seadmite que participen esquiadores (ni a título indivldual ni fonnundo parte de unequipo) que no e-aén lcdcrtulus.

LlI\ juegos !>c componen de una scnc de pi ucha- , en cada una de la ... cualc ...intervienen una serie de partiCipante" Cudu p'll trcipante en una prueba puede intcrv c­oir a utulo indiv idual (exquiudoi individual 1 (1 bien tormundo parte de un equipo. encuyo caso el participante será el equipo (no el esquiador). De cada csquindor(indiv idual () de equipo) ..e desea tener el T)NI. el nombre )' la edad. A cadaparticipante en una prueba (esquiador indl\ «Iual ti equipo participante) se le asigna uncódigo de pan ieipación dentro de la prueba (nombre de la prueba )' un númerosecuencial l. De cada equipo se manuene un nombre. un entrenador. los esquiadoresque lo componen y el número de éstos. l~1que un equipo participe en una prueba nosignifica que lodos los esquiadores que lo componen intervengan en la misma. l lnesquiador que forma parte de un equipo, no podrá cambiarse a otro ni actuar a títuloindividual mientras duran los Juegos. Tampoco un esquiador individual podrá pasar aformar parle de un equipo.

Con10 parle de la organización de las próximas olimpiadas de invierno, se decidela creación de un sistema de información para realizar la gestión de las pruebas deesquí. Del análisis realizado se obtiene la siguiente infoonaciún:

Enunciado

PROBLr~MA 15: OLIMPIADAS DE INVIERNO

• Tampoco se puede recoger que 1:1atnbuto "NUln" de la entidad ASEGUt<AD() seaun número correlativo.

• No xc puede recoger que la fecha de <lila de 1111 a'\egurauo sea posterior a la deIngrc ...o.

• No <e puede recoger que un hn,pnall'\llIeerHldll no puede camhrar el área a la quee ...t.í a~ign¡¡d().

SUPUEST()S SEMÁNTICOS COl\1PI.EMENTARIOS y SEMÁNTICA N()REFLEJAL)¡\

('1\1'111'1 () 1 IlIS'I·.ÑO(.'ll:-1CI·.I'ltIAI. 11-1(1)1:.1.0 I-iR 11'

~••••••••••••••••••••••1 11 Num

~\S 1-(¡!IR1\ I)() 1 --P()I.lZA

(I.111 ,L(1,11.--- .__

NI

11\ 1 I (11.1 ) ('"d ,\ .1111 11Ale N \\

( 1.111

, I.n 1 I I l''J \1

l'1 1.111

"1 \1 l'\H:DI('()1" 11 L..,-r---r~.-'"

1 1 "'

t 1.11) tll.II't I '1)¡".III

PKOPIO

I l 111

.;1--<11'1"' 11.n 1,1'"

11) 1 1l'

, 1.nl

.--------,~-(',,''_"I-I()SPIT i\L 1-..<: N 11

h o._-y""-.::;:::::-----------------'\----,,...--J--c N,"n <-

l.a Ii!!ura 1.70 Inueslra la solución completa del ejercicio.,

Propuesta (le soluciún

vario, (o ninguno, nledl¡lIl1C canlinalidadc, ü.n). La entidad ¡\1¡";/)/C'() llene un nuibutoIllulti\alllado "'1\'1':10110". que podríalllll'i hubcr modelado de otra manera. pOI ejemplomediante una entidad rl'lacillnad¡1 (.'011 la entidad AIÉI)J('() 1.'011tipo de corre-pon­dcncI<1 N 1\1 (111 cu.rl .. ignificuna que un II11,nll) tcl¿lono podrían clllllpanirlo variosIlICUICO..1 La ad,cn pClún de lo, nledlco, a la' urca- la rC~llgelll(l, mediante lainlclrclacllín ,\d-;criICl l.a-, c.lrdillalluade .. clegula- uhligall a que tOUll mcdicu e..tead ..crito al IIICnO\ a un arca, ~ que toda área esté adscrua al meno .. a UII médico Ocigual forma podt 1<11110'haber decidido que no fuera obligatorio que toda arca tuv lera almenos un médico } todo médico estuviera asignado al menos a un área, para ello lascanlinalidadc\ nlínillla, de la interrcluciún Adscrito scrfan O

1_16_ l_ll_SI'_':_(II_)I 1\ \'01 'i 11112;.\ I~ I'H(lB!.0I¡\~ HI·.SlIl-.LTOS_- -- -- -- -- -- - ~.,~

-

Page 65: Diseño de Bases de Datos - Problemas Resueltos

•¡'igura, / 7/

11)' 11'(1, ..,,,I~I·.-

Il'IlIt'II,,,I\.(>-'"I......o- j ,:'-t. _

1"1- _- _-!, I '

, I ' --_-1(111'1

(1 n • I !I

"

IlN,.--r""IÍi'!(I.'~ l-\()I ¡·\ll·'K

ht..JC> -'-c;ZZ::¡II\!'ls:%lI

--

Sin duda, habría distintas poslhilidade, de recoger esta sClnántica, pero una fonnaelegante y sencilla sería repre~entarlos por separado, construyendo dos jerarquías. Unade ellas recogería los participantes, divididos entre aquellos que son participantesindividuales (l'_/ND/V//JUAL) y los que son equipos participantes (P_EQUIP(», Laotra recogería a [os esquiadores, dividido~ entre los que únicamente pueden participarcorno individuos (E_INIJ/V/DUAL) y los que :-;(110 pueden actuar en equipo(E_EQUIP(»), También lendrell10s una entidad EQUIPO. que almacena los equipos,identificados por un "Nombre". Entre las entidades se establecen distintas interrelacio­nes que reflejan In sClnúntica del enunciado, Así. tendremos una interrelación Tienecon una dependencia en cxi~tencia entre IlIs equipos y los equipos participantes, y otraEs entre los esquiadores individuales Y aquellos que son rarticipalllc~, Tambiénexistirán interrelaciones entre In~ c~qlliadorcs que lorman parte de equipos y 6...los(tanto L:Un los equipos en "í como con I()~que son parucipames). De esta íormupodemos recoger tanto lo~ c"quiildIHC' que componen loe; equipos (rnediunic laInlcrrelacion Conlput'stol corno la alincacion del equipe en cada prueba. es decir, lo!>e~quladurcs que efcctivanll:J1le tornan parte en esa prueba (mediante la inrerrelacionForma_Parte), Podría plantear-e que la interrelación entre los equipos )' losesquiadores de equipo también presentara una dependencia en existencia. La figura1.71 muestra el esquema realizado hasta ahora,

A partir del primer supuesto podernos detectar la existencia de dos conceptosdislintos. pero ITIUy relacionados: por una parte, los eSlIuiadores y, por otra, In"participantes en las pruebas. Los esqulatlorcs serán deportista" que tornan parte en losjuegos, bien inolvidualtncnte, O bien tonnandn equipo con otros, Los participantesserán equipos o esquiadorc ...indiv iduulcs 1I11cpall1t'lpan en cada una de las prueba" Ec;necesano distinguirlos, ya que, por ejemplo. un esqurador puede actuar comoparticipante en varias pruebas De Igual forma. habrá equipos que podrán actuar COlnOparticipantes en distinta ... pruebas y CU) a cOlnpoc;ición será diferente en cada una de

ellas,

, -ORA MA C,,,I'ITUI.O 1 IllSl:-,NOCONCEl'rUAL: MODELO EfR 11'1.==:.:--------------

••••••••••••••••••••••

"L»¡ J,u'gll' \(' 111111/"'/1('11 d{' IIl1a serie dr /I/l/C/UI', 1'11("ada 11/11/ el,' la' cuales//lIe/l 1/'11,'11 111111 \('/'I{, el,' parliciplL/IICS. Cae/a /1ltrl/l'i[J/Ilr1t' 1'11 IIIIU prllchlll'III'lft' /1I/,,,,,,',,il (1 /I'/Ido i"díl'irlllfl/ ¡('\I/I/i,te/or //lIlíl idual, () IJlI'" Iorl/llllle/oI,I/n,' tfc 1111 "l/lIiflll, 1'11 l'U'11 C(lS(I 1'1 /)arcl<'iflIlIlCr' .H'nl 1,1 1''[III/)O (1111 1,1/',\(II,;"tflll) /)(' 1"d" I!\(/II/llelnr (illr/iI'idlllll /) de "l/lIil'lI) St' de,'I'tl 1('/1<'1 el/)NI, 1'/ /1111111111' \ /a I'dlld ti I'arlll /"/'-/I('i[llllll<' e/l II/1U 11/1I"ha (l'SlIIlItU/OI11I,(II,id,IIlI/l ('l/llipo 11I1I/il'IIlIlItlC) ,\(' le ilsiM'UI 1111 ('/ltligll de I'lIr/irll'I/('itill.!('ltlI" el,' /" 1'/'1(,'(111 (IIOIIIIJ, l' de 111 /)/,III'f¡" " 1111 111;/11('''(/ \I'(III'III'ill/), />1' ('(ldllt (/1111'0 11' 1I11111/h'nl' 1111 Il/IIII/JI'C, 1111 {'IllrI'/ladol, /0,1 {'SlllIitU/III'<',\ 1/11l' /0

{'/lI/lI"IIII'II " ,,/ III¡IIII'/''' .1,' ¡II((I\ 11 (/111' 1111 /'I/lIi/l(/ I'(II/irllll' ,'/1 11/111 IJI 11('11111111

'1""llir I1 ,/IIt' IlIdll,\ /0,1 I',IIIIIII/(/orr'\ '11Il' /(1 ,'Olllfl,I/I('11 1111"11"'11,1:011 ('" 1111I/1.\/lUI (111 ,','1111111,1/11 '/111' I'IIIIIU /'/11/" de 11/1 1'1/11//'", 111>/"11/1'1; 1'/llIllllalvl' 11

1111" /lt 111/11/1/ ti IllItllI llIllil'ltllU¡/ 1I111'lIll'a,\ cI,,,,," 1".\ JlIl'go, I IIIIIIU/( 11 11/1

, \/111/'1///1' 111,(1l Irllllt/l'"rI/"I1 1','\111 11 II,n/ulr IllIrll' d,' 1111('(/111/'"'"

I)iscusión del enunciado

(. uda PI uchu se identifica por un nombre. será de un tipo (fl)Jld\l. ,,1:110111, salto .. .l,tcndra una ...lechas prevI~la" de reillilucióJI Y se reglslran' el participante vencedor y eltiempo empleado pOI éste.

La reali7aciún de cada prueba se dCS:JITllllarú a )(1 "11 ¡,!,O de varias jornadas en tinaserie de pi,ta:-- de tina única estación. Los equipos o l:,ql1iadt)re~ individuales podránconlp":lir en dilcl"cl1tes pruebas y en distintas pistas. Para cada participante en unaPI ucha (equipu \l C~4l1iador individuan se registrará la fecha (1 fcchas en que participa,el til'lnpn ~'Inl lC<I¡Jo y la posición obtenida: en el caso de equipos, estos datos seobtiencn tic IIls cnrre,pnndielltes a cada uno de los csquiadorc- del equipo que hanintervellidlll'll la pruebn.

Dcnuu Ik'l ,,\ll'lna. cada pistu ,e identil1ea a paitu del coth!!.lI de 1" e,t¡lllÓn dec-qu: Y un IlUllh!1I1\l'lllenclal Se con ...ideran talllhicll ('OIlU) p, ...t;" (para la rcalllacionde prueba ...de 1.lIl!0 rl'corrido) a vanus de estas p,o;las (,ienlprc de 1" 1111...,11;1 e,t;,clúnlque pOI su' caral'tel i-..IIC.I\ hvicu ... pudieran cnluzar-e. ,\.,1. por CJClllplo, la p, ...tu diezest.lria cOlnpll~"ta por la... p,<;ta...JOS) cuatro. Se requiere, para poder planificar laspruebas. mantener e ...ta utilización cOlnbinada de la, pistas. Para cada pista semantiene también su lonuiiud en kilólIlelros y xu grado de dificultad (en la escala azul,,.verde. roja y negra).

C<;4uí <e Ilk'nlific<I por IIn codrgo, tiene un nOlTIbre, unas per~()na" de contacto, unaduccción. UII icléfon« v un nU111Cf\1total de kilómetros ('\quiahlc~. <I,í corno la" pistas

de la\ que dl"'I)I,"~'

II~ 1,1,,'l\(IP11l\SI\111 lJ,\IOS I'I{(HHI:~I,\SKI:Sl'I'LT\)S _:'R\'tA-------------

r~~~~••••••••••••••••••

Page 66: Diseño de Bases de Datos - Problemas Resueltos

••••

"1 ,1 / ('(I/',II,'i,íll el,' , /ldl/ /"'111'1>(1 11' "C'\(" /11//01 ,í a 111 /Ol'XII ti" \'11/11/1 11I/IIOi/II,1

,'11 1/1/11 S,'fll' tic /1/'/1/1 de 1111(11//1" el 1'11/11"''', ',,1\ 1"/111//1'1 11 "1(/111111"1/"1111.1",dIlU/I'1 "lIdr"" e1/111/'1'/1/ 1'/1 dl/,'/('/ff,'1 1,/11/'/11/\ I ,'/1 tll"lIlIell //I.\It/V.

"II1e1 1 elrllI P"I'''' '/"1111" ('11 11/'" /'/111'/111 (1'1/11//'" (1 ('1'/1111111", IlIdll"dtUI/) ,,,'n'g/,-/n'''; [" /1'1 "u " 1",111/1 ('1/ '/1/1 //11/11' '/'11, 1'/ lí"/II/,I) CIIII,I,'otlr! l' /11

1,,"1' "'" "/'lr/llc1o ,,,,./, ell" el,' ,"(IIIP'" ,'lltll tI/lllIl \1' "","',,,'" ti. /111•••••••••••••••••••••

PAR'rE ...

Figuru /.73

4"r.ld.,lh1I"U¡:ltUJ

( 1.n

....·n"~'l l"(, •• ,1' 1...... u 1,L'I."'"

,"• .' I ",1

.t 1"''''lO.

M~·r,.\ I

Medianil' la inrcrrclución reflexiva Cllnti('lll' rccogerelllos quc una pista puedeestar compucxtu por otras. Sin embargo. no es posible recoger en el esquema que todasellas pertenezcan a la misma estación. El atributo que almacena si una piSla es o nocompuesta sera dcri vado. ya que l'~calculable, I-n cuanto al al ri huto "Longi tud", quecontiene In ... kilómetros de la pixta. también ,cn¡ calculado. aunque ,,610 en el caso delav pl,ta\ compuc-ras UC olra .... 111 cual 1:1I1l!l0lll pod~!n()\ le,og_t:l1o en el esquema. Eldonunio ul'l atributo "Grado Dif" c:-.l:lr(\ Itl1l11aUO '01(1 pllr Il)~ cuatro valores pcrmui­dos (verde. azul, rojo) negro). La tl~unl I 7' IIHI('~lla el esquema correspondiente "esta parle

.,estacion.

Emrc 1;1\ fedcrucione ... ) la ... e,>tallone' hahní una intcrrclución N:~1 Admin. querecoja que ícderacion o tcdcracione ....nímuusuun lada estución. Por otra parte. entre laestación y la ...pistas que tiene, existe una dependencia en idcntificución. ya que para laídemificación de una piSI:J ,e necesita el código de la estación. El atributo que recogelos kilómetros csquiable ...de una e!>lacilÍn <crá calculado a partir de la" longitudes delas pistas que la componen. y el atributo que almacena las persona" de contacto scnimultivaluado. para permitir que pueda existir más de una persona de con tacto en cada

de lu IIJ1VIIUI estacián¡ (/II/! P"! ,111,1 rnractrrisuca» ¡(\lCII,\ pudieran enlatnrsr.A,\I, flor I!jl'/lIplo, /11 /'(\/11 ¡/'I'- ,'IIIII'UI C'/I/I//"/e'I/1I /'01 I(I~/",IIII~ d/)I v (1/011'11,

,\c /,'(/11;(,1'(', /'"1'(/ poder /I"I/Jlttl (11 1." /1111,·/1111, 11111/11"111'/('l/ti I/lIli:u('iúlI

,'0111111111/(/(1de 1111 1".<1111, Para Cl/dl//III'eI 1/' 111111111"11" tamluc» .<1/ ""lgl/11I1 ('11

1.t1""",// ,/1 v 1111/1'11'/"de e/lli, 1/IIIId (e'lI tll ,'\( alu " "fl/, \ crdc, 1'''/'' l' ""1110),"

_-:('1\1'11111 () 1 IlIS".Nc)('ONC!'I"Tl 1\1: ).Ion!'! () E/R I~IGR ....MA

/), //1/11 eI,'/IIII,'/II", (,(1,111 /"lleI 1(' ir/ell".I;( 1111 ",1/"1' rI,'/ ,"cI/I':" el,' /11 ,'11,"/1111

,J, ",/"/ I "" 1111111'", 1,',11,'11' 11/1 lie I IIII"eI.'IIIII 1(1111/".'/1 , 1111111/''''11111'111'(/ lu

~••••• ' •• ' .... ' • ('e' ."¡/IIe '¡"~e¡"e''. '¡".

"( 'IIe/O /I'tI,'/II' 11111pl/ed,' '1/I"liIIlS/11I1 1111" scru: rll' 1'1/,1('1"/1"1 rle ('11/"', \' ""/U{'1/(IIII1// ,\1' ,III/11;1I1,1(1'II/rI (11 IlIc'lIlI,l /'01' 11//11 II,,"'/'(/<,/(ill, 111/11IIIU/I¡/" /"tI'¡/I'

hol,,'/ ,'1(111';11111'1 tll' ('I(/IIt' "t!/I11I1I,V(I'IIt1,,\ "OIf.JI/III1/1I1I"'II' /'rI, 111/'111,1 [cden!• 11111,'1 (11111/,1(,,, //1// dt' "11/'" v,' ',{('/lli1'1'1I /111/ '''' "líd;~II, tirnr '''1 nombre.1111111/"'1'\"""1 d,' 1/1'11111/0, 111111d""I'I'íáll, 1111 /1'/1'/""1' \ "" 1111/"1'111/111111 tic~""I/"'/II/I "11/1//,11,/"1,,111' 11'//11/111 /",11<1,1 el,' /11,1'/'/(' ,hl/'IIII"

Figura 1,72

N, "llhr\.' o---l,'.,"<lO----l........"

I-SQIJAI X)I{J)'\I ...r-__JL---,(11.111

IN

( 1.I,

1,1-.1)I:li A( '1( )N¡";Clmhr,'

N'1111I.'I\'

Este purralo urucamcntc denota la existencia de una mtcrrclución Federa I:Nentre lo, e~quI:Jd(l1 c-, y la, federaciones a I~I\que pertenecen. t\ lcdiantc lascardinalidades (1.1) recogemos que todo esquiador csui federado en una únicafederación y mediante la, cardinalidade~ (O.n) permitimos tener almacenadas federa­ciones de las que 11(1participa ningún esquiador en la\ olimpiadas. La figura 1,72muestra la intcrrclactón Federa entre !"¡'JJERAC/()N v F-SQlJ/AIJ()R,

01' \/111'11 11"" <rn« d« II'rI"/(1t I""C'I rll' C'\I/1I1, cutlu 11/10 dr lu» , IHI/"\ III'/lr' ''''

',IIIII/'/( I 11/1 III,IIU"" d« I,../('I<II/,H (('/1 /(/1 1"rI"lele ,,//11'1 \1' tl'e/C'''''' /"'"\(/1"'''/''11 1 " II/It/" uultvuíuul t. POI ,,/1 al 111'''/'' ('1111,'/1/" ,'/I//C' la» .111/1/11111

/,''/,'/acI''/I,'\, /11' \(' 1'1',""'e' '/11" /1111.1:11/1 ,'\I/IIIellh" \(' /n/I'II' ('/1 e/Ol

tcdcn« '''/1('' '/11/1111111 Tampoc») 11' admnc '/'11' /'(/1'''' '/'('/1 I'\I/IIUIII"I"I (/11 aIIIItI" 11,'/,\ uluu! '" /O/l/IIII"It, (ltll 1(' d« 11" C'(/"'I'0) qu« /111 ('1/ 11 t('d, / «uln»

PAl{'fE 2

1~n 111"1ÑI • 1JI' 1l,·\SI 'i IJI' n \ lOS 1'1{()1l1.1'~I¡\S RESU1:t,TOS

----------------.---

Page 67: Diseño de Bases de Datos - Problemas Resueltos

I~"1 1

,\1 " ¡, I'" > • l."!.,,( I ! l.

l', , .

,.

, '1 ! ,1',' 1"1'\1"

I '11'

, ,H "

.,.1 \1' 1I " I

l ........_

t," ~

~"-

• , "., ¡ It, T L

~ y 1~ ¡~ 1

I ' \. 1'.-, ir¿;¡Ji: elo ,

, 1

;1 ri~lIl':t I 75 1\\lIl>,II';1 1'll'SqUL'III,1dl'finill\\I,

Propuesta de solución

Por "lla parte. Iillnhll;n añadircmo-, cuatro .uubuto-, IlUC\O'" <t la entidad prueba:IIp\' de PIII,'h,," 1!Il11dn, -lulom. ~.tltll. l'k'.). "lcchu-, Pl'l'\ I\la\ dc Rcalizucion" (que

,.-1',1multi , ulu.ulo}, "Panicipuntc Vencedor" ~ "I icmpo !-,rllplcado" 1'01' 0,le. F.'tll~ dos1I1l1l11lh .urihuro-, 'lT:íll dcrivudov. ~ podr.in uuuar \:11111 nulo, :;j que nmc-, dl'

,l'khra ....c !" prueba no icndr.in ninuun \ alor.~

1I11('ITI'LIl'II1I1 F()rllla_Parle. 1)1.' ..:,Ia manera, 111, .unbuu», de Forma Parte comen­\11,\11111, v.rlurc-, p.u a el cavo de Ins c-qui.ulorc-, que !OIIlHIII parte de 1111equipo purti-1.11'.1"1\', \ lo, .urihutos de PNl'FU.\ 10\ valore para el ca,o de 10\ p.uuctpantc-, mdr­Ildu,dc, \l de Cljlllpll I:n el 1.'.1"0 dc ("11\\ 111111110' ,('rall ("Itlllado, a p.uur de I\)~de~Cll'nla Parte Sin t'lnhargo, al Igual que (}l'UIII.Il'lIl'l 1'01'1\ dl' la hlll~IIUd de una prstu,1\1 PUdl'IIHh rcprc-cnt:u cu el e'lfUl'III.1 4U( 1111"Ir rhtuo "eol dcriv udo ,010 entklL'nlllnildu...lil ..." v,

1'''\1'11111l' 1 1>1\1,e JI '()"'( I "'11'. \1 \11>1.11.1() I-IR 12'H \ \, \

•••••••••••••••••••••••••

Corno acabamos dI' decir, 1.'11 los párrafos anteriores aparecen aluunos auinuu»nuevos que dchcrcuu» rl'CI)llcr, r:1l concreto, la fecha \) techas en la:>que puuicipu unparticipante en tilla prueba, l'l ucmp« empleado y la posición obtenida. EIl pnncipto,":1>tUII utribun» I\)~ P()lll'Il\(I~ en la entidad l'AR7'1(,1/'AN·r¡.~ (que, cnmn sahcllHl',eugloba tanto tI pauicipuntc- indivulualcs corno a los que son equipos), Si" l'lllhar!!I',de esta manera no ICCIIl.!l'IIHI\ l'SIlI:-' datos pala lo, esquiadores componentcx de 1111

equipo (en el cnuru iu.ln 'l' nll<; dice que para el caso de 111\ equipos ItlS ualll' ,,'~,¡tll'ul(J1I " punn dl' lo, dI' lo, ("qllladlll'l" que !tI !'orlllan), Una pO~lhlc "'0 11IL11111qll(' t"

l., que ,IP,II\'\'( 1'11 1I 11,1:111'11 7-~ e, 11l('llrpllr:.l 1 c,lt,.. "Irihulo.., 1;lIllhil'll l'll l'

A parur de lo" p"rra!o" .1I11CrlOrc", aparte de alguno- atributo" nuev 0" de In" querablarcmov a continuacron. umcamcnte añadiremos la interrelación 'rienc_l,ugar, quecontendrá la!' pi~la:- en la' que <e celebran las pruebas. No POUCITIO' recoger IJ'estricclón exigida en el enunciado de que una prueba se celebre en pi ...ra...de la mivnuestación. Podría pen-ar ...e en una interrelación ternaria entre las entidades ESli\(~/()¡\.PISTA y PRl 'Enl\ Sin cmbur go, puede verse Iácilmcntc que con la ~l'll\ántica \'1,1,1

rara la" intcrrclaciouc ternanus cxtu no c-, poxihlc.

Fieuru 1,7-/

,,

, ,

, ,"

, '1 .,.'l· 1 J, ..

~-, '_'Ab

L "."" I .;" 1" ,1 J

, ,

~

I

i ud« 1"111'/1" \, 1.1""11/11 " 1'''' 1111""'11/'" \1'/11 ti, 111111/'" r/(I/I'/,·, ,/a/IlIIt,111/111.. 1, undru 11111" [c«ha» 1"'" "111' d« /(',dl,O"II" I '(' 1,,,,:"1',/1,, e!/,,1111' tpun« \ ('lit "'/tll \ , /11"/"/'" ('/lII'I,'a,{ .. 1"'/ ("1< •

, 111'1"\/1(111t111'''"'\ a t 1111(/ 1(/111 .1" /11,\ (,,11/111111/011'\ .1,'/ equi¡») '/'1" 11,,111111''1",,'/11.11' 1''' ,,, /'"11"'"

_---,":..c' \1 \

•••••••••••••••••••••

Page 68: Diseño de Bases de Datos - Problemas Resueltos

t ••••••••••••••••••••••••••••••••••••••••••••••

1'( 1(> I\t,\ I'f{l( '111.1\A 1,( II\1N()

N()1'v1RRI~ ('11IIJ/\I) ('(JI) (iRIII'()J( ) I Juan rvllllllt'f\) 1\ lrnrc, In I Ilo.:! Alicia (rls(llhal I.egallt·, I I.:!O] - - _

I\!.l_a Vallck) I "gane'> 21,lOO,

t Ignacio l.opcz t\ 11l,tllll'\ JII O l 11'11l'l:J1\lanílll'/ /\ 1\'1 H 1'1111

I\"fR()r)ll('( 'I<)N

Rt'cor'daluri" de la estática del '\lude'o Relacional

1-1 ell'l111'I1IClcentral del modelo rclacronal l· ... 1.1 Rel,I\.·lon tilla 1'1'1;1\'11111 tiene UI1

1I'llIh,c. un l'lIl1JUlIl1I de atributos que representan su" rrllfll edude ) IIn conjunto de;I~.I,I' I~Ul',~II\.·lu)en lo-, \'¡¡-",H'C' que cada UIII) de 10\ atnbuto-, tnlHa para cada ek'llll'lllll'\. 1.1 1~1.llIClIl LII]'l,rclal'lolI se representa corno una tahla de d()~ dirnenxiune« (la"','hllllrl"" '011 111.,,JlnhlHI~'de 1.1 relación )' la .. tíl.t;.. "'011la;.. IlirIa!',) con un iinicu valor~ "Id:1 l'clda lI11crst'Cl'!IHl. ,A, continuación :>1' 1IlIIl',t':J un ejemplo de una relaciónk rlt'llllnaU.l /\t.L'I\IN() que CllIlsla d\' In, atrihuu», "Cod mumcuta'' "Nomhr ,"( 111 l: 1" "(', • " - , , I e .

\ ,1\) ou_t!rupo (nombrex de la~ colunmu-, de la 1,101;11, ('ada rila JI' 1'1 lahl'lII11ll·,II"11 't l' , ," • •, 111.1Up.1 LIITTc!<op\lnulCnlca l\l~ dalos de lIll ¡¡lIlIlInl)'

I)ISEÑO LÓGICO: MODEIJ() REI_;ACIONAI_;

('111110 J ,1 hl'IIHI' dicho. en l'l l"lJ"ellla no 'o" puede rl'(.'\igl'r qlle 1111alnbulo pucd.,ser derivado -.11111 \'11 1k'1\'lllllnada' I'l, ....ionc-.

Aunque el e-quema Il·lll¡.!l· que en IIn 11IllI1l1'1IIod ..do un \"lJllI.ldlll 11111\.Illh·llIl· c-,IIltI" ulu.rl \l de equipo. 110 1\'l'O)!l' que ni' pucd.r cumbiar tll' equipo. o qll\' P;I\'" dI'cvquuulor de l'qlllpo .IC'III1I.ldor mdiv ulu.il o JI fe\\""

Lunpocu 'l' Il'l'Ogl' que una 1'''1.1l'lllllpUI"la e'IC IOII1I.Id,1pllr 111'1.1-'dl' la 1111'111,1\',lalil)II, ni que una I1ll1l'l1" 'l·l'l'k,hll' ...1I !,1,la, de 1,11111'111;1 l"I.llI""

El 1"11"1.'111<11111recoge la -ccucnciuhdad del "['\11111\'10 de Panicip.unc"

lPlJES'r()S SI<:l\IÁNTIC()S l'()I\IPLt<:",IENTAI{I()S v SEI\I.Á:'Il'J'I(',\ N()·:FLE.JAI),\

W \ \1 \

Page 69: Diseño de Bases de Datos - Problemas Resueltos

• Borrado/i nodi ficación en cascada (('ASC'A I)E): El horrado (omodificación) de una tupla en la relación padre ocasiona un horrado (omodificación) de todas las tuplas relacionadas en la relación hija (tuplascuya clave ajena coincrda con el valor de la clave primaria de la tuplaeliminada 11 modificada en la relación padre), A«. en el ejemplo anterior de

Además de la integridad referencial que nos permite enlazar relaciones entre sídando lugar a la estructura dc la SD, el modelo relacional permite tambiéndefinir las opciones de borrado y modificación en las claves ajenas. l.xtasopciones indican las acciones que hay que llevar a cabo cuando se produce unborrado o modificación de una lupia en la relación padre referenciada por unarelación hija, Las posibilidades pura una operación de actualización (borrado omodi [icación 1son:

La integridad referencial asegura que Jos empleados de la relaciónEMPLEADO sólo pueden trabajar en departamentos que hayan sido dado, deal la en la relación DEPARTAMf~N"rO,

14 In formát icu13

DEPAR'I'¡\MEN1'()NUMER-O-_-n-E-p,- lNOMI3R.:.::.E__

II Contabilidad~ ....;.----1Marketin

12-3-70 6323'':::''::'::''___ I

FECH J\ _ N..:..,:A:.,::C,-+E=X:..:,T-==.T_Lrc_'_-110-) 1-67 654320-9-68 6577 ---125-(Í-77 64334-5-(Í() 6422J 5-4-72 6321

,

NOt.1BRE DEPARTAMEN1'() SALJ\RI()Pablo Montero 14 220,000

"Beatriz Cristóbal 13 300,000-J. Luis Martín I I l50,()OO-

Almudena López 13 350,000Angel Vallejo 14 400,000-Pedro García I I 200, ()O()

EMPLEAD()

Las claves prirnarius de la relación hija E~tPLbA()O y de la relación padreDEPARTAMEN"IO son "Nombre" y "Númcro jíept", respectivamente. Elatributo "Departamento" de la relacron Efv1PLEADO es una clave ajena quereferencia la relación DEPARTAMENTO, es decir, los valores del atributo"Departamento" deben corresponderse con los valores del atributo claveprimaria "Núrnero_dept" de la relación DEPARTAMENTO, Algunas lupiasde estas relaciones se muestran a conunuación:

DEPA RTA~IENTO (NUM ERO DIi!1T, NC)M BI<1:.1

.Er.fPLFAUO (N()MBRE OEPARTAMENTO, SALARIO, FECllA_NAC, EXT_TELEFé)NICAl

('AI'iTIILO 2' D1Sl',NOLOGI(O: t\10LlELORELACIONAL 1~7___-__~.:...:••••••••••••••••••••••

el La re ...tricción de ohligatoriedud (NOT NULL) permite declarar si uno ovarios atributos de una relación deben tomar siempre un valor, es decir, nopueden tornar valores nulos.

dI La re ...tricción de clave ajena (F()RElGN KEY), también denominada;'I/I'grid(l¡[ 1'(:/('II'"l'i(//, se utiliza para, mediante claves ajenas (conjunto dearnhutos en una relación que es una clave primaria en otra o la mismarclaci!," \ cnla/tll' Icltll'i(Hlt's de una base de datos, La mrcgndad referencial nositldi~':I que lo \'ah\I\.!' de la clave ajenn en la rclucion hijo deben(()! Il'~pnnlk'I'1: COIl In, valore- de la clave primurin CI1 1" reluciun padre \) hicn'l'l 1\111\1, '1 -c admiten nulos, Los atributos que son clave ajena en unaIl'lal.illll 1111lleCl"lt:1I1 tener lo ... IIIIStllO' nombre que lo, atributos de la clave1111111,111:1 con 1" cual cllll' ..e corrc<;pondcn, A cominuacion \C muestra1111 l'll'ltlpl" 11..: uucgridad referencial ((111 la ... rcl.uronc Ft-.1Pl I',/\[)ü y,l' P \ I~t \ \ 11 '\J I t )

b) La restricción UC unu idad (UNIQlJE) nos permite definir claves alternativas(Jo, valores de uno o varios atributos no pueden rcpeurse en diferentes tuplasde una relación 1,

a) l.n icsn icclon de 1/111'(' primnrio (PRIMt'\RY KE'{) permite declarar IInatnbut« CI conjunto de atributos corno la clave pumuria tic una relaciónt identifica uruvucumentc cada tupla de la rclaciún). En el ejemplo mostradoantcnor mcntc de la relación ALlJMN() la clav e pruuaua es el ainbuto"C'\Id_In a t r íc u Ia '.

Por otra parte, lux mecanismos que proporciona el modelo relacional para recogerrcstri: ('II)/I(,~ scnuintiras o de /(.1'1/(/1';0 son:

n) Fn una relación no puede haber do" tuplas iguales (obligatoriedad de claveprimaria),

h) El orden Ul' la~ tupla .. ) el de lo, atributos no c.., relevante.

el Cada atributo sólo puede tornar un único valor del dominio sobre el cual estádefinido (no hay grupos repetitivos).

d) Ningún atributo que forme parte de la clave primaria de una relación puedetomar un valor nulo (regla de integridad de entidad).

Ll modelo rclacional unponc una vcrie de rcvtrtc: /(1//('1 1I111t'l('/I/( l'

Los atributos de la relación se definen sobre dominios formados por un conjuntode valores homogéneos y atómicus Por ejemplo, el dominio del "Cod jnarricula" escódil:!()~, tounudo por el conjunto de cadenas de longitud 3 caracteres, '1umbién esposible definir d(l11111110~por extensión (enumerando lo, poxibles valoree; de loe; queconsta el dominio) u bren indicando un rango de valore ..,

I( \ "A

•••••••••••••••••••••••

Page 70: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••

" Al cUl1lr~"(l'Iu", ~111;" ""Ir,,'<'IIIlll" ued,IT"II\;" "'la' h,,,t,1 "hllr" ,'11la, 'Iul' 'c ,,:~h,.I,.laoper,llllí" lk III'l''',I'''' hun,..III" 1I1,,,hl,,adlll1 " NC) 'c cumpl~ 1,. lHI1JKIHII, en el ':,1'" .k' 1..,dlspalauulc, la aCLlúnc'p,'''lll;IIla \'11d ':U<'II''' Jd J"p¡uadnr 'c cle<.:ul"'"'Inr'~) cU¡lIIdll 'e <U'II('I" laCOOlhllll" "'1'1."< IIIGIJ~

Un csqll~'lna relal:innal Sé rcprescntuní tl\ediunte UIl grafo, cC)Il\lcidn COnl\) graforclacion<ll: h,í\IC¡lIlleIltc, ~(' trata de un gr,lf\) dlrigiulll'lIyo~ Ilodo,\ son las rcl¡u.:innl" úe

Notación

gl l nspnradores ('1'Rl(¡Ci)',Rl Pl)J' ültimo. a veces puede interesar cxpccificu: unaacción di ..tinta del rechazo cuando no se cumple una dctcrminuda restricción-em.imica'". Fn e..c (',1'0, ..e recurre al u...o de los drvparadore« 1) Ingger\ quenos pcnnueu adema-, de uulicar una condición. cxpccrúcu: la acción quequcrenlo~ se IIC\l' ;¡ caho SI la condicion ..e hace vculadcm 1,0<; drxparadorcvpueden rntcrprct,u se como regla .. de tipo evcnto-condrcron-accion tF('A 1 quepueden interpretarse COll10 regtas que especifican que cuando se produce unevento, si se cUlllple una condicion, entonces sc Iral17a una dctenninaclaacción, Los disparadores no están soportados en el SQL-l)2: "in enlbargo,exi,len prouuc!OS relacionales que los soportan aunquc con diferencias l'n eln1odo de funcionanlirnto, En nUCSlro ejelllplo, se poúría tlefinir un dispuradorque "informará al adlninistrador de la BO cuando haya un ell1pleado que ganelnás de -l50.000 pla" y que trabaje en el depanaUlellto oe Markeli ng", ('onlo\'erclno!> Inás adelanle tanlbién son conveniente.. para nlantener algunasrestricciones del eSlJuen1a ElR que no tienen contrapanitla cn el 111odelorelacional.

En la' restriccione-, que involucran algún tipo de subcousulta en la condición(por ejemplo, si ve utiliza alguna función de agregación sobre la~ tuplas de unarelación! puede ocurrir que puedan implementarse COI110 un (:HECK, Sinembargo, es necesario estudiar que la restricción no pueda ser violada enningún caso por cualquiera de las operaciones que puedan realizarse sobre elesqllclna, Por ello, ti veces es necesario irnplemeruurlax corno una Aserción.l lllmnn y Widom ( 1<)97J,

f) Aserciones (ASSER rION)' Otro tipo de restricción. que generaliza alanterior, lo forman la~ aserciones en las que la condición se establece sobreelementos de drxnntas relaciones (por ello debe tener 1111 nombre que laidentifique). Su luncronamienio es idéntico al de las rcstnccrones deverificaciun. La unicn diícrcncm consiste en que las rcstriccionc deverificación n ('IIE('K tienen corno ámbito una única relación, Continuandocon nuestro ejemplo, se podría expeci ficar una aserción para la restricción queestablezca que "no hay ningún empleado que trabaje en el departamento decomabilidad que gane mas de 200,000 ptas."

CA 1'11I I () ~ DI"I \io 1rx del) 1\1()1>r:IOREI..\lIO\;.\1. !:!'Io itA ,.., \

•••••••••••••••••••••••

c) Reslflcciones de ~/criji('(/('i';lI (('HEC'K): En algullo" ca"o:. pueuc ocurrir que,ra necesario especificar una condición que dchen cUlnplir los valores dedetenninados alrihulos de una lelación de la BD aparte de la, re ..lricciones ya\ i\la, de cla\'e prlInaria, unicidad, nhligaloriedau y cla\c ajena, Para ello seuelincn la~ reslriccionc'i uc verificación quc. al igual que la~ ya estudiadas,\il'rnpre llevan illlplícitas un reL'hallll!n caso de quc 110 se cll1l1pla la condiciónl'S)1l'cificada y que lalnhién ~c cOIl1pruchan anh' una inscrcic1n, borrado oIIHldili<.:al'i6n, ('c)lno las rl'sll i('(.'ioncs de vcrificaci6n sienlprc van lIgadas a unlillIt'O l'II.'1I1l'llIo de la BI) (gcIlrlaIIllcntt! una re)¡Il'iún) 1111 l';-. nece,~:Jrio quet\'Il!!'lIl ,111 1I\11I1hre,Por l'jl'rllplo, para la rcl;,¡ción ErvlJ>I.I~I\I)() podría dl'linirsculla rl' ..tl iCCI(1I1'ohre el atl ibuto "Sal al io" yuc c ..tahlet'il'ra qUl' '\'1 rango del",llar ill lit' un clnpleath' ruedc lI\cil'lI entre las I(lO,()O()) 1.., 'i()O.OOOplas, Así.'1 "l' \ a a In\erlar un cnlplcado COll un sueltlo ~upl'rinl a 1.. \ 50().OOO pta~, lallJl1'1al iÚII ...e rech'l/aria

I ,¡¡~ Ilpl'IOnl:' de horrauo y rnodillcu<:ión puedell ser distiIlta~ para unadl'lcnninada clave ajena de una relación: p{lr <.:jelnph), es posihle definir elhorrad,) CII \.'ascada y la I1H)(Jilicacicín restringida,

• Horrudo/rnodificacióu ~'{11lpuesta a un valor por d~'I'~'l'I(l(SE'I' I)!:FAULT):Su funcion.nuicntu l'\ similar al caso anterior. con la excepción de que elvalor ,11 que \C 1)\1111:11 h,\ cluv e~ ajena' rclcrcnciuda .. C~ un valor pordclcctu que 'l' habru cvpccrucado en la dctrnicion de la tablacorre ..pondrcntc. Fn l"tl' l'<I,n, en el ejemplo untcnor. cuando <e horra undctcrnunudo departamento e, poxihle a'lgllal \U\ empleados a undepartamento Iicticio (que debe encontrarse cvutcnremcntc presente en laIl'I,1( ion I)EP t\R 1',\ rvl EN"r() 1,

• Borrado/modificacion con puc:-.ta a nulos (SET \JLILLI: E\ta posibilidadno, permite poner el \ .ilor de la clave ajena rcfcrcuciudu .1 N l J).). cuandose produce el horrado 11 modificación de una t.,pla en 1,1 rclncrón padre,Conunuandu con el ejemplo anterior, el borrado de un departamentoimplic.u ia que todos 10\ empleados que trabajan en él pnsunin a contenerN LJLL en el atributo [)EP AR'I'A MENTO, Evidcntcmcruc. esta opción estápcuuitida siempre } cuando la <.:1<1\ e ajena admira nulos.

• Burrudo/modificuciún rC'll1llgidn (RF.STRICT), l-n cvtc cuso "i existenlupIa, en la rclución hija rclncionadu-, con la tupla de la rclucion padresobre la que se rcali/u I~Ioperación, entonces no se pcnniriní llevar a cabodicha operación. En el ejemplo anterior, no IoC podría borrar undepar uuucnro que tenga cmplcad.», que lrahujl'n en el

Lmpleados y Departamentos. el borrado de un departamento supone unnOt rado de todo-, los empleados que trabajan en él.

I~~ IlI\1 '0 ni 11\\1 S In: n,\ 10\ I'ROIIIII\I \., RISI'EI TOS _

Page 71: Diseño de Bases de Datos - Problemas Resueltos

1'11 \'1 \':I~O IIl' Ijlll' 1:1 illlelll'loIlllllI ,'OIlI\'I1!!;! UII ,lIl1huIII IIIUIII\"IIll'lIlo 111'"-'''"It' 1111'1 1 ' I 1 ' , l \ nn

, '"11\ ""1111 Il'IIIPIII;¡. a tl,II\' tll' 1;1 1('I:lllIllI deh\'la Il1l'!t1l1 uunbicn "1'IllIhullI 1'11 " 1 ' 1 1 ~ " ti \~~

1 IJLIIlP ti. vn .1 1~1I1:1 _ 1 la IIII,'IIL'la'lIll1 \sl<;I(' "IIIIl' \I'NI-NIJI/( I Ii\() tt J" \ I 1( 'I( )\' I I • \

1 1, ' LIIIIIII.'lll' " allll111111 11I1I1(I\:tlllad .. I'UI1II1.I,·1(111 llll,' ren" l'1 11111 1 1 L d ,,",, 01' l,I 1 l' ,1.'1"111" ohl,'l1ld.l' jI'lI 1111 "1'11'111111l'11 ,'Id 1 11111'di' 111, 11 1' , l 1'1" ,1 ", qlle

SI 1,1 IIlk'1I1'JaCI()I\ 1"':111.' utnburo-, e ...lo, pa ...uran ;1 1"1'111.11parte de la rclaclúllIII\ld.l para 1.1 1~..ItTrel'II':lIíll. Por cjcrnpl«, la IIlI<.'lIclacillll IrH'luYt, tiene 1,1 utribuu,\1111111'1,1 p'l'/a, - la relaciun IN('I.IJ YI' crcadu 1'<11':1 \',la IIlll'lrl'hll'llll1 contiene""'111;1' de 1\1, :llllhlll\l~ ,!lIt' toun.m la \ lave prllll:1I 1;1, IIl1a l'OIUIIIIl:1 dellolnll1ad:;\111111'111PII'I,,,"

1I~\\SF()I{" \('I()N 1)1-:IN('EI~RI'.I./\(1()1\FS\1:1\'

\ II'¡('/II, 1\ 1 "//111/11',\/1' \: Se Ilal1,IIIIIII'1I1 cu ,", :11111111111' '111l' 1", ,'lllIljll1l1\'1I (1111ha \1'>1111,1d(' Il'JlII'''I'IlI.l1 1111.unhui» ,\'11111111."111 "III.'IIIII1\k'llIll"lal:i\II1,II), •

\(/';1>/1/111 1)1 1/IIIdo,\: i\lrihIlIO"ClI)O' valun- 'l' obucncn l,'llIllllll."lIllado tic al~líll~all.'lIl" ",hll' \)Inl~ atributos. En la ligur~1 2 1 Id 1'lIlld,ld I<r.I'¡I/?A('lcj,v tiene 1:'1dll'lhUln ,k't'i\ ad\) "[\:unl_lh)ra~" que ......ohlielll' d,' 1" ,1I11l~1de 1:1duración de l(lda~1:" 1,1I'L'", qu\' 111.'111'¡¡'(lCiad"" IIlIa dctcrm inada ll'p;¡raL'1I 111,

It/I I/II/I¡ 11c(" , 1//"1"111/111'1': Atnhut« ,'011 1:11\"1111.<'11'11 dI.' ll'\ll<)llE. E:I au ihuto"N" !-.I'g ~tll.¡al' de 1:1 entidad ()/'I'R,I/<I() IJ'I!,!III:1 21) 1" UII idcnuficador,tll\TIl~11¡\ 11 d...,,!','rano. '

Ide'IIII/IIII'/'" 1',lile I/hll -vtnbuior-, I \jUL' touu.ru 1;11'1.111.' 1'11111,11Id,•

\/,,1>,11,'\ ()/'''t:III",I,,\ \!nhllll" '1111 1 1 1'\()1 "l 11,1 .11"'".'lllllll" l' ••

I'I{()\I:I-J)()I{ l'll\a clave primun., l', 1:1 l·lIl1ld!,'I1.1LIIIII IIl' "('PÚ 1L'l'(lI11hl\)" \'1 '1 n\ ,','dol

1 \1'111 1(i \ 111"",\(, 1(1,.j' <1 ,}I11l11(, 101 \( I()'\,\I ,,,! ."

\ 1111,1 1,'1,11",,1

111'/1)/(/(1\ /'.1111/,,"/11"'/1'\ 1):111111).:.11.r uua IIU':\'.1 ICI:llllllll'II).lll:t\\, 1111111:111<1",1.1LllI1L':lll'II:I\'I,1I1 111: 1:1 LI.I\" 1" 1111:11la 11\' 1;1 1111111:ld 1'11 1:1 qu,: <e ,1111:1el :111i"lIl"muluv aluado nn», L'IIIIIIIIIIIl' d\'1 ,IIIIhullIlIllIlll\'¡)lI:It!\1 1·1I111.,I1'>I'"Il". '1 ,'1 .uubut«1II1I1II\atltl 1111"dlllll<, II'Pl'II,I""I'~, l', 'Ullll':I\I\' 1",ll' ,\111111ela\l' 1"1I1I:llla I'PIl'll'IlIpl .. , ,'11 1.1 11)..'111.1~ 1 1.1 1'l1ll1lad UI (',I,\IIJI() ucn.: el alllhulll 11I1I111\alllad"

1'1(1\\'1'''''' <u 11,111,1111'111.1'11111:1111111111.''''1\'1"\1"11.11 d..,la Itlt'.tl.l 1111;1Il'lalllll,

,1(0111111/1 1'11/\ 1lll/ud"l 1).111 IIII!.II " UII .unbui« de' la 1,'I,IL'IIII1, 1 11 1:1 II!lUI,1 2.1, 1.1, ,

1.'I111dad I (J( (J/'.'() / ()/{,.\ da 111i':1I " IIlIa rl'I<I,'11I11'1'11 el 1111'1111111I1I1I1"L'\ COIl In", .l'(lhlllll1,I~' "Cod "'lllllllllola" "lcc hu 1I11LII'" \ 01111"hll".

t ',tÚ;] .vt nbu«, d,' unu 1.1111"..d ' e Ilal1"IIIIIII,1 ,'11 un .unbui» tie 1.1 lL·I.11.'11111Lle:ltl..a la l.nud,ul. ,11I1)tJlh' 11.1) ti11l' tener ,'11 c ucnta ...u-, dl,11I111" ¡¡('ti,> d,' le'lflCl'I'IIIL'\11,1111"·a...·

('"dd l ntid.«! 1"'1 ""'1",'111.1 1'11< d;lI;1 11I~al ,11111<1 1111,'\" Il·I..,le'" ,11\.' L·I.I\I11I,III,ll·'LII.I,'IIII1I,.ld"1 I'IIIILII'.II ,1l'I,IIIIIHI,HI

: \ '\SF()I{:'\I \('1(''\ 1)1' 1 i\ 1111 \I)F~, \ I'RIHl J'()S"\ I)()"''\I(IS

/11.:/1111 -' I , \11"e IIlel , ,N

, ,( 1

o

•[. ,-, 0

••

'f

l¿ 1 t_>

, , •

'r-, .i/I .¡ I I ,(J

•••••••••••••••••••••••••

ooo•

<>

Q

of___.1 • '''f O,,y e 1' , <:>:

1. • 1 ......-- ~,--

-, \ \ 1

•••••••••••••••••••••

Page 72: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••••••••••••••••••••••••••

/"'1 11/IIJIII,1 /,'\ 1'1'/' lit/Ji 1\ .,\/\1, " 11 , "1 'It'\ ,1, 1(';II(t/. "1/1 r, ,ltll~/' 1/(' el" \r',

¡I,IIJ,/", \ /('( It., (/('/lllt 11')' t II t ,/1/,/,1,,\,,/,1\ 111'" 11,1,. ,'\, \1111. ,·,/llltl,I,)\ f "11

1.1' 111\ 1'111"'1'" ""1"\

/ \1\/('" t'lt, 'l/II,'\ ('\/'(-. ",1,:(1,1",\ \ ('I"t Ilcllt (\ tIc' 1,,\ f '1'('( 'tIIJ~llll'l\ \t

'fll/,'I, "I//rI. ,'1 f,·, 111/'" ti" "'/'< /,/, //, 1(/. '11 /I,V/, /lIIl/d'I< f.., /rUI/" l/U, /////I'/I{"

, 11',/1 /11 \, ~I/n",f" \,,' fuf f 111 /'/'1/'(11/111 "I/If'r l,tll ",/", '/lf/,'II'IIUII II /r>1

,1/""'11/'1 r', 11t/,,/, 1,llId" U/1/1/1I "//</1 ,'I/rl 111(,,/1/1,11//'// /1// "/"'/"/1/11 11/'/< 11.11.

",f" /1, //r' /111 "I/'r'/III,11 \ " '{IIII'/I '<;lIu/,/1I1 /11 (1'( /ru ,'/1 ,/1/" 11' 1/1/, iu ,'1/1'1, 'III/IIII, 11/" /J,' /,,\ 11/" /11/'/0' "/"r 11.1/'.1 1,' rtflll,II,'l/u/I/ ,/1 f)¡V/, /1I1111{1¡.

(" /iu '/"//,/1 U/lit ///11 \ 11 d, 1,/ \, ~lllId"rf \'" l/ti

/'. 1",1" "1"'11/1 '.'/1 \, ,1,'\", ~I'ill./tll 1111 1",1/". 1,,;1111,/, 11/,1,11(11 "'11,'1/

1""1/\ , /'1 /,'( ,", ,1, "'/'1" 11 f', / \ /"'I'I"lellllt. .ulvm«« \,,1,( 1 1,.\ ,,'11/1111'1/1\

'111'/1'/\ 1,,/1/11.1\ ,'1, I '/llc' 'le /",11 ,'11/"(41,1" ,11 /" le/'IIIII(/,"I ,1,' unu11-.','"111111.1,1" "'1"/'1"/11"1 '11"'1"'1"1,, "I/1,'c,'/ 1/' "~/,1/1111"~/111"~/1,/ (",1,1.;",,l. \, "1'.(1'" ".""I,/~ .. .l, /,'\ 1'"."",1"" \ '1'1' \11111111"1""1 .",/,, ""11/111"" \

nuuu ", ,J. 'tlll,/(II.I,,\ ('111/,/('C/f/tl\ ,'1/ e cula "-",,,,'t ton \\1 /1"\1"", \(' 'l'Ilt le

11/"lllí ""11/ /,'\ 11,'1 I,IIII/.'/JII) \ (1 "c"t;" f/~' /" Ilelllll,'III,', (1, \t "I't 1('1' , I'('\-(')l'/II/'/t ,ltl,,\ ('/1 r-C/í/tl Itll','l./ '/f' /('/'1//1/1 "", I'Jltlll t "'1111\ 1,', /11/\ ,/c' 1111"1(' \ 1;/1,/('/(I,I'-e/, 1,lIt 1/" ,'\,1\ Il( "(IIIII,'II!,I\

l a« Itl/t (1\ .I, I</>e/'-(/' /"11 \ttll /ll'lrlt/(/' (1 (~II'II {'tll \,'1/1'\ ,,/,,'/'11/1,/\ fIIIIJI,~

; \/'('t II¡J, ·."f. J \ I ,"11" ,,/11', JIIII< r ' \ I 1,,'(/'1, '\11 j r '//1 1, , I ,/I"l"/( \ \/1// 1,t, I 'l't'l (11111\

11'11..'11(1./'" 11 1111,/ ./1/('I'lilll,/,I" '111'( l' 1/' ",/,,11,1,";"1 \ tl" " .l, u p.u,« 1111/ /)(

It"",1 ;¡'/III,';,I, 11(1\ '1'" 1,', "1..',-, /'1' 1/1,',1\ d« If'llrll"t'tllIJ (1.111,,/11,,\ /'iIJtlllt"'III

,1, 111'" /11\ :,1" ,1\ \ "'\ ;'/"'1,111," ///\;,//1"~//,/,.\ f It "//'1' 1111,111\('11,/,,1,1\ 1/,,)(/\

./ •• 1"11.1,/\ /"" 1,'/1,/ ,1/', 1""1' ,'1/, ",1"',11,'" \ ur, ",/,, 1, I'ellllt 1'.'11

I ti' ¡, /JI/I./( "JII('\ ti, {'I\ /". "II,.IIIJ/tl\ Ir ",II,t.", ~/t J(,~ (1111,1/(;/rJ. /t'( /'(1 d«r t'III.', ,1' " tll tuu. 1~/i~(I/I:,«'Jll(' \ 1,',""/'" 1 \1 1/"\,t:.!,'\/¡", ,',; lill r tIJ~/I{,,111 (¡t'

uu, (1\ ti /11' ;I'(r \t (1.\'t:.llcIIJ tlll j" \1/\ {íJI'I/\ lit /e'/'(II'I/( 1(111 (,(11111\ t/f'tllllfi'I'),

( /1,' /tll'( u \1 cu t u, t, ".-(1 /'(JI \11 1/(1/"1,,,(, I(/('\III,J/II(I/I', 11111/111'_,11, ('II,l.?"cl\(',

'11"I~/e'/I, rl c l. 'tI ./"\('/1/" '.1/1 \ su '//1/1/' 1"", \ \(' /""'(14' II'rll,':(11 ('/1 11/1(1 rl

\(111./\ (11'( .1\ ./, Ir ,'(II',/e I¡'I} ('(It/II ,II-('tl ,1(, J"/)"I"lr ""'/"It"/" "('/11'(11'\(' /)111(1

t ruh ,11 .1/11111/11' /rll<',/I rI,' /1,/,,/1<1, 1,111

I f tull» I {¡"1'ft/le ,1, \"",/\ (11'(,,', ,/f' 1(/'tll(l, 11'/1 ",/"/'", \ ,1",\",. 1",11,""\

c l«« ¡,II "'. (","'\1111\/(;1','\, (le. J I el/(/c!( II.lltl,/\ 1"'" 'fJI "11111('1(1, uu«1", ,1ft ,It "'/1 \ un ',¡II/III"tl ,'" 111,'/111\ IIII/,J,(I,I,,\

t n.¡ ",/"/,,,IIIrl ,,",I",Illt' "'1, \llel Itll,' /1,,\,- ,J, /),t"l\ ""Itl t:. \1"",,11 \/1

tul!« I , /1, J '/"t' ,,' ll« "," ti, "1,,, /./\ ,,'\/\/"11, \ /"'I'f,111 ti' \ ,,'/',llllt /11", \ ,1,'1,,\ /'" ,"'1"/,,,,/, I ti /111,"-,lll{' 'e'll ,/1" ,1,1" conun, I t, /('/\1 ,1, /)111", \,',/, 111", 11/1'\ "t:I"c nt \ "'1""'\/"\ \c 1/1""'1, t,'

,\ ,ollt iuu.u il 111. 'l' dl'\ll i1111"11 hrl,.'\ cmcnn- \·,Ia ... 111,."11't·l." ('IIIJlk'<llldo par:. 1.'110

(,II,.·\lJII1·11I:I I'/R tilll' 'l' IIltlL"lla \'11 1;1 Il,l!lIlo1 2 I ~ qtl\· 'l' 1,.01 Il"PIlIlIk' LOII 1.. ,i¡.'lIll'llll'

.11,."<IIp< IPIl,

I , '1 \ 1>1I \1'1111 rl ' 111'1'111 (lId' I1 \lr 11111111<11 \1 I()' \1

l.", 1I.11'III·I.I'"I1.'

un" 1('1.1'11111

••

l.a, lit.:' rl',l!la' h;.'I',I' 1,.·l1lpl\'.td,l' p.ll.lli:III\lllllll.t1 1111 t:\qll"III.II,.I'llll'pIU.d 1-/1{ 1'11

"<JUl'1l1:l 11'Ial'IIlII:11 '1111

glas de transfoJ'1l1al'Í('1l cll' un csqul'nla I'JI{ a un l'<;quclllaal'iunal

B,N. 1I0Il.Idll 1,.1'1111111"1.1.1 1\1110,

11:1> HIIII.HI" 1,.'llIl11111"1.1;1\.1"11 plll dl'IL·I,.III,

• L.I~ 1,.'1<1\e pi 1111.111'" .11',11,', \'11 vu 111": .rd .. v.

• l.a-, \.1;1\ l', ,tlll·II1.IlI\.I' .ll'al"l\'lIl'll 1I,'!'llIa

• l,a' l'I:I\t', .t.f~'lld' e,I ••1I 1I'J1IL"~'nl.ld.l' en 1I'11a ~ur,i\,. \ 11,.'11,.'1,'11,1..11.. 1.1

rc l.rcion CII la que <ou i l.rv« 1)1I111ana 1I1,·tllallll' tilia 111'...ha.

• 1 ,,\ arribuu», '1lll' plIl'd'·IIIIIIII.t1 \ al.l1l,." 11111(1~ap:II'L'll'lI CI'IIIIII :1.. IL'II'l'II

• l..t , IIJ!l'llIlll'\ 1'.11.11.1 111I(·;.'III1,ld Il'I"I'\'Ilt'i;¡) ....111.

111:1)lI\llll,l' l.tI 1~II.d que ,,,,1.1rcl.u ion \ .1 conunu.« 11111'11,.

1.1 nomlu« de 1:1' r.ihl.r-, 1,.',1.. Il·l"l·'l·III ••d,' l'1I

hUllI'''' \ cu nvgruu 1'1111Il'llI ,'1'.11", l' ,'1 1111111111l' dehUIO' cmrc p.ll \.·nle",

H)) JI), :In:(l' 1~'JII~"t'IlI.l11 I.h (\"llIllIl1l1l.'''' tll' lla\1.: .lJl.:lla, ) en el qlll ap:lIl'l'l'lall

lila, tI~·la, lll'lllll.l' IL'I.ll'I\IlIl·' LIIII 'U\ ,11111111111') 1.1' IL"IIIt.'L'lllIll" de tla\1.: ,111.:11:.

Il",lliCl.lllllL'", tlL' ,·I ••ve pIIIII.lIl". 111I.1,.·ld••J ) ol1h¡1;IIOrll·d ••d 1 ;1' (lll1\I.:IILllIlIl·'

Il!t':.d ••, par •• 1.11~·pl'·"·III.II,.IIIII d~',"1,' ~I.JIII <on

Il , \1 \

Page 73: Diseño de Bases de Datos - Problemas Resueltos

1 ~~\·ttll r,h"~ '111t 1111.1 r )\.'1"..'11,1,'11,1,' '1' I l' 1 1 1.. \ lo 11I 1\ I\.' "1 "t"tlrlt' fl'lr 1\.1 .11.1 r )I,.'I"".I,I\.*llll.1 \.".\ \'\"1\.1., '111\.'IIII'.tJ 11" 1 I 1) I I

• l. \'(""1' ,'11\ 1.\ "'1 '.'I~·lh..I.1 II.t 1 ,,"It' 11tlr 1.1111.1"11111"0111111.1t ),'1"'11,1"1'\'.,"11I Ilfl",.h 1111. '"

--_

1111.1 JIIICIIl'I.lllI'n I:N de f)Cjl"nJL'l1l'ia el! Idelllilio.:al'il'1l1 da IU1!.tr a UII:I

prllpa,!!¡¡l'I~'" dc ,'I:I\L' dc,dc 1.. I'lIliJ"d flll'tll'" la l'lllid"d déhil de (al 10;llla qUl' 1"l'lilldad lIl'h" rcqulcrc ue la "IJve d,' 1", "l1liuad luene para ...u IUl'lllifieal'lóll En laI~gllra 2 1, la depL'lldellChl l' 11 IUC01IIII'<I""1I1I1 dl'nolad:1 por la 11l1l'rn.'laCI,íl1lil' _dC\COnII1IHll' ha ....t· que 1.. 1:1;1\o: 00: RI:Pr\R,\('¡()N ("('od_reparaClón") 'l'prnpa).'III'" la Il'l"ll')11 T¡\RE/\ d\' 1.,J 1\IIIII.ILJlle 1.1elalL' prlll1,lIi,1 til' l',I .. 1I111111;¡eq"'"llll:td" Ihll 1"... ,lInhlJl{l~ "( ·od_rl'p.llo1l inn , "NUIII Inr,';]" 1.. 1 IclaciuJl 'rARI'/:"rllll'I;¡. "",'111;" dI' Jt" "lnhuIU'" "1)1"1 1Il'lltlll" \ "1)llIaCI""" .

1'11.1 111I1'1Il'I.lLII"1 1 .'\J de' l)l'llL'nd"Il",1 l'1I I~\I,II.'II\ la tlngin<l \jUL' 1:1 l'lall' a;l'II ....I'lilp,Ig.ld.1 Ik'"k' la l'lllidau 1Ul'1'le a L.I 1'lIlldad dc),¡(. deh" tCII,'r la Oj1l'iOIl de horrado,'11 ('"",,':ld,1, e'" dl'l'ir, 110 PUl'dl' l·.\I ...lil lIill.!.!UII.1Ol'urrl'lll'l;t IIl' la elllldad hijo qlll' lit)

1"ll' 'l'laCIIII1"u .. ,""1 tilla llI'UI'Il'll,'i" L1L' la l'lIlid"d padrc.

1R \ SF< )I{I\I \( '1()1\ I>E I)EPE 1)1'.1\(,'1\~ E J.. :\ IS'I'''I\<,'I,\ \' J.11)F 'J r11'1( . \ ( '1< ) j\

.\ c ununun, IPIl "'C dt:\l I11"'11 hl\,'\ l'III,'llIl' 101Iran,l, 11IIl,ICII'," dl' 1;" l' \ll'II'1l1Ile, lk'l11I,'\klo 1 IR 1'11 allall,,' 111:1'dl'I.III,llh, 'l' L·I1...1I1·l1lr.,CIII)l' i\111!1I1'1('I,iI. (JI)!)!')I,

'I'ransforlJli1ción de otros rlelllelllos dt'II\lnd('lo I':/I{ extendido

No ha) qlle olvidar c(1I1l0 controlar la\ cardinaliJaUc ... 11l1111111;¡... , Ill:íxillla ... de lauucuclucion para no perder 'l·lll;Ínlll.·:1. E"'IO" ca ...o, ;.,(.irán c ...IUdl;IIH-lo iI nlcoida que\'¡¡~:l1I 'lIrt!iclld'l ell I()~cjercicto ...pr"plll ....h)\.

2. Plllpag¡¡r 1'1 klcnuhc.nlor T'rin"'lp.tI dl',dl'I;J Elllldad que 'l' cncuenuu en el lado1.11.1 ""lid.IO que se cncucnu., 1.'11 el I.I(ID N (prllp:.tgal.lolI dr clave}, ~I I'XI...ten,llrlhlllll\ 1'11 la IIl1l'rrt'lal.'lÚIl. ,·...1" ... 1¡II11hil.'lI se proparagarun. hll ;llI't'IlCla de111101111:1'111111\,1;1('\<1 ¡JI 1'01111111'11111-I¡dlll, .... 11Id,,, que se IIILIIH.'jarán 11de SI CXI...tenjlll ...ihllltl¡ld,·, de que la illll'rrl.·l.'l'iúll cvulucionc IJ I!O :.t unu 111(1:'1rclaruin N:M, esta.,olueloll <ll' pl'opil¡;acioJ1 dI' clave "'CIéi la que ve adopte en 1:1 resolución tic In ...l'1<.'f'l·Il·II.... 1'''lplle~lo ...en C ...te libro PII' ejemplo. 1.'11 la fi¡:lIra 2.1. la uucrrclucirin (':s de. ~ -1'11111.'1"... l'IlIIUadl's 1?/:/',IRtl('I()N ) L()('()A/(}/"()R,I "'l· tranvtoruu¡ en unapflll'.lg'H..ItHl de cluve ("('OU_lol'tllnnIOla") de ...de la rclacillll 1.()('()!\f(JTC)RA hacia larclucion Rf-P,\R¡'\('I()N que con-tanu UI.' lo, -iguicntes atributos. "Cod reparal'ióll1el.I\ e pnm.m.u, r :"\únl_hora\", • Fl'l'h¡¡_lllícln " ..('Iid -'01'01111 llora" (l.·IJ 1 l' ujcna)

1 \1'111 1I)J 1"\1 .\() 101.[( l' \IOPI 11)HI 1 \1 1"'.\1 1¡,- -_-lo: \ \t \

•••••••••••••••• ~

I t 11., I I "ltl,1I 11 II .1" ' ....II\.I ,It"' ~1.1 \.'11 I 1,IIIIII\. 1\.1"11 '" ,11"11.,,.1,,1 1,1 "" "'11 t, .11, I,! I ,1 I,1,,, ,..u, 1\(\1, I 1,1 1<

1, ('Il'ar una IlIll'l" IL'LI,·I,.n pal.1 1.11111,'1r,·I.IllI'", lU) 11 11',11,,"11,'11111,,'11.1 100u.1Iqu,cl dI' la' 1I11'·III'J.I,I"lll" N'\I. lUII 1.1 ...;,JIl'd.IJ de que).I ..-I¡III' 1'11111.111.. dI' 1" I1UCI.,IcloI'llHl 1'\111'1:1101dl'l Id"IIIIII.:ad\11 1'1'I11'lpo1l dI' );, 1'1111"".1 qUl' 'l' l·IllIII·I1II., ,'11 cl laell''\J ...11.' la 1111<.'111'lallllll . .\1 1,1 inll'rr,' I.Il'''"1 Ill'nc "ll'Ihllh" (llllrit ..... 1"1;1 l', 1111.. 'uhh:inllrd/\'":1h'" 1'''1 1""llIplll l' 11 101 11~'II¡;I ],1 1.1 1111l' 1II·I.ICI'·'11 SIIPl'''' isa plldll.lIrall,I"llllloll'l' ,'11 '111:1 11'1:1,'1<'" "III'I'.RVIS \ (11)<1 ,:I;,Il' 1"lIlIall" l', ,'1 alllhlll"'1 )NI oIpll'llIli/' 11'"'" 1111"pel.lIlll .1j111'1It111111'111'1111"llil'" "'111"'1I i""'11 , 11"1.:' 1.1)11...101.I''''llla ...lil' It'''' .Ill1l1llll" "1 ):'-JI ,"1'\', iall/;IlI,," l' 'I'\'llla 1:IIIIIIl'Il/""

'I'I~:\NSF()RI\L\('I(H'I)E I~ I'ERI~I-:I.:\('I()"íESI:\i

1.1111"11'11,', 1Il" ,",11111 1,'11," ,'11 L 111'111.'L 11.1"', ,,'11 1.1' ,.IIt1II1,"III,ld,·, 1111111111."1111;1\1111.10,l'" ,.I!ld 1.ldt, tlt' 1.1 IlIll'II('I .....II'" 1'.11,1 n" !l"""'1 'l'III,'"[II,.' t'l1 1.1Irall,ItIl,IIo1l.lnlt. 1 ...Id' col'''' '1' II.tJl 1',III\I,:llId .. a 11I,'dld'I lJlIl' \ .. \.111 'III~ll·IIIII"·11 h"L'j,'l','I"I'l>, pi \111111..,1'''''

"i i11I'IIIII:II!!\'. ,'11 l' 1 l' ,1~\' de :1111hUII" con UI1:, di IIICII...i, 111 1"IIIP' li.tI (~"·lIl·l.tlllll·nll'•alrlhule> ...41'l' Ut.:IIl'I;III 11','h .. ,. 11111',1' " 111I''I'I·.tlO'"dl' 111'1111'111,1;11111''1 '''" 1I1111l11alll,ld'h""111" unrvalu.uh«. l', 1I'·l\:';II'"\."ltllli.1I 1.1,,'111;11111,.1lk'l UI1I1t.:I'" .1,,1 .11'1 111'e> ,'1111l'lrin d,' UCIl'rl1l1l1:11 cu.ilc-, \all;¡ '':11", .uubuto-, que f"rllll'n 1.1 ,·I.I\l· prun.ma de 1.1rcl.« 11111., 1.. qll,' .1.1 lug,u la IIl1l'II"I,II, H'" Para l'11" h"hr,i que 1',IUlh.1I '1 'l' lrdl.I dIintvrrcl.uionc ...que 1,'l'rC'I'III"11 inl"rJll,Il'I"" 11I'II)liL:' <l 110. I'nr crcmpl ... 1'11 l.r II~ur;¡2.1. Id Illl"II,'I.lll"" Requiere curre r.\R/· \ ~ /II·./?I<:\ ....//I-. \ 1:1 Ill'I1\' d", .lIl1b"I",111l1l11\alu"d", ("1""'11,1 inicr» ti,,," , '1',','11" fil1_II"'" 1 qur no-, indic.m qllc unahcn .. 1I1Íl·IlI;¡ plll'd\' ulill/;II"l' l'll una 1;11,'.1 ele I\'para,i,ill ,'11 .llr'·I,'llll" IlIlcII.I"I, d,'[Il'1I1pI1. 1,,1 11.. 11,11'111',11'11111d,' 1"1:1 1I1l,'l'Icl:I~'IPll d.. 111~ar .. 1.1 rcl.uiou 1~1~()IIII·.RI\'11);1 ,'1:1\,' 1'11111,"1"",la ('"IIJlUI''''' Ih'l 111' .unbuio-, ''l'lld Il'p"I.1ll\1I1") "NUIII t.uc..prnccII"III," tlt' 1 \11'1. \ . ('od 1,,'lrallll,,'I1I;I" Plth':"lkllll' d,> 11/ HU \ \111 ,VI \ \ ,1;¡llIhlllll "I"~h" 1111<.111u,p' l', dl·~II. 1.. 1,,';1. 11,'1'1.111111'''1.1~ I,·,h .. IIl' 1111,1" 11,'1l' 1111111,11'11I11\0C.. 111,·I1I<·,.ld,1 1111'1.. dI' 1,11,'1,1",1<'" 1<1'()1 II'J~I' "Iln 1111"Il,II.1 1I,'llIIIIIII.IlI.1 1111..",·l'Ialllll·III.1 ,,,1,. 1'".11...'1,1 111"'/.11'<' ,'11 1111"1.1Il',1. ,'III"IIC," 1.1,1.1\" d... 1 \RI \ 1111IIIIIIIall" p.III"lk I.t, I,Ill' .!,' 1.11,'1"""1111RI ()1 11 RI

h.I.""IIUII 1 ,1 11,1I"follll,ll 11111,llllllHll'lo 'CI,II'IOll,d de (',1.1 intcu chu'ion J,I luv.rr a UI1¡¡,ela, H'11 \ "il\ 1I "ti,,, l'l,l\c P"II1.1I,1 ,'III\(ICI1I' la lOIIl':"I,'I1.IllOII dI' 1)1\ l""('od c tuvo" 1 1'"I1IU,KHlII, '111 (·1I1h.II)':II. PU,"Ie> 'I"C 1111"1'11'11111/1'".111,1 .. hll'nCI1l!1I,lh', ,,,tltll,,I, lOIIl', 1'11 1111dl'Il'IIIIIII.,d" 111''''0. '1'11:1 111""'.11111 .m.ulu 1111.unhur«'.

"1"',11" l'l:dual'H)n" 1':11.1 "1'1111).:11111,,, 1 '1"1' 1.11111111'111111'111,111:,1',1111' d,' la ,I;)\\.'1111111,11'1,1.

~ \ \1 \1" 1'1'1"'111 HI~I,I'II'I"'~ 1'''''1,11\1\'1<1\11110'

~•••••••••••••••••••••

Page 74: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••

(·;lIdlll.tlldadL·' 11111111II,1\ 1'" 1 ('11 1I11lTIl'laCI\lIIC" :"J 1\.1 ) 1 N (L'\tlu\l'lIdll.ll)lIl'II, .... qllL' ,e llllllnll;11I \'\111 la IC,lfll'Clnn N<) ( NIII 1 l'II.lIl1lo 'C Il':III/.1pi IIp,I~.I'11l11 dI,' ,'1,1\ t' l.

1 ' ....1,·11dIYIlI1.Io; 1'1."1rI,'I,'í llill' , quc 1.', ll\','l',arin conlrolar t'llll 1l1,'1'¡¡1I1"J1(l, ,'\11.'1'111"0111111,\1.,1" 1");'cIClnaL l\lIUI l" 111.',',""1'1,1 e\l;lhlt'cl'r 1" dll~rencl¡¡ Clllr,' el IIlUdcl"Il'I.Il'IOllal ~ h" S(jRJ) L'IIII1t'r\,'I.III" lI"l' lit) illll'lt'lllCJllal1 el I1lodclo relaCional11ll1lpk·lIl. PI.r \'110. 1'\lIlHI <,e ha 1l1CllL'lonad'l 0:11In ... apanado, .II1ICl'lorr' dcdit'adoo; a laIr.II"I"flllacHIIl a) 1l1odclo rl'la"·lllIlal. alll1ylll' aqul ,e hahle dl' (he( J.. \ \ ;¡'lTCillll'"

.111110I1Il'lalli,nll\' d,'1 IllUd"11l rt:lacioual pilra illlplenlenlar ll\,'l101' re'lril~ iOIK·'. l',I",1I1'·l¡¡n....lllll' no ,i"ll1prc ,"1.111 dl'l'0nlhl\', CII 111\ ",[ellla, gl"lllll" de til). lo qllt'Illlphl'a que hay que rO:\,'111111a ull", Inl'dlll, para recoger l:Sd\ rc,lricCII)llt:, trlll'1l'llIpICl. d"p.lIauorc, prt',enll'~ l'1l la 1-11), plol'cuillllCIlIIlS allllaL'cl1ado\. ~1)1lil'ael\llle,l:\Il'II1.1\ ,'I\, ) "1.' dara aquí ,'IlUllll'r;I,11I11 tI..- la .. leslriL'cillll~~ dl' los l'SlIUCllI:I' I-:/R lJlIl'

l.' 1I1'l'l'''"111 \"llIlIl'llIpl:l1' l'lI 10111001I.. f'III'III¡Il'i,in ¡ti IIlotk'ln 1'1,'laciOI1III 11I,'diilllll' ,'111'( J.. 1,.1'l·l\' 111111" 11 dl'paral!ol'l'"

,\lgullos a,"'pc<:tossobrl' la pérdida de serll~¡n(i<:aen I;..¡ trans"ornlaciül1al 1l1odl'Io rrla<:ional

I 11L'I ',1'" vlc uucrrclu ...'ICllIl" ('\1,'111'" ,1', ,',1,1, 'l' 11 :111""1111.1111.'\)1110'l' ha \ 1'10,'11,,1\' 1111'111".Ip.lrl.ld", PL'IO L" n<':l'l",III" ail;.dll 1111c h« J.. que l'lll1lll1l1l'hl' que '1 UIl\'1"1111'1,11.!L· 1.1"llIld,ld 1',1111,'11',1).1 ,'IlUII.IIlI'IIIIClll'I,1 dL' 1111.1IllIl'l'II.'I .. ,'IOII llllollll" 11..)lIlL'd,' 1'.11l11.'1P,II l'lI 11111;':1111.1ClL'11Jrl'II,liI tll' la \llr;1 IIIICJ'll'I.1L 1l)J1.

\111 "lllh;II_!!II, 1', ncccvan« c-tudt,u la, 'drdilla)idadl" 111Íllll1la,) uiaxuna-, l'1I lo,11l" 1,1.11" dl' 1,1 intcrn-laciou para IC;IIII.,lr la tran ...forJlIa..:i6n ,11 relacional sin perdc:-cnuintic«, por ejemplo. CII 1,'1l'a\(1 lit' que alguna cardinalidad 111IIIilllLlsea () 1) en el,;"" (k que alglín ladu (k' la intcrrclacion 1l'llg,1 1.·'lIdill:lIidad (1,11 l~,sla, disrinra-,11I1'lhilid.tlk, ,,' ,"llldiaran 1,'11la rl.'s,IIIICIClIl de lel' problema- J1rnplll·'IU.~ cn vvtc lihro.

requiere h.lel.'l UI1 cxtudro evhauxnv« de 1.1, l.·arJlIlalldilul·' munma-, \ 111;1\1111,1'>paró!Ik\.1I .1,'.lhll 1,1translouu.nron. ~l' IlIo,II.lr.111 la, rl'gla, de 11.l1I,loll1"II..'IÚII para elt'",,,dI' 1.. , II1Il'lll'I;I, 111111."tcrn.u i.l' aunque 111Idll.l l'\ tender 'l' .1 1;1\ dI.' !.!I "dI) 'UpCI iur a -'

1,1 \"."0 ¡!L'l1l'la) de Ir;1I1,loll1lalllill \k' 11l1~lIl'I¡¡L101lé, (élllall,l\ N 1\1 P cvtahlccc1)11l' 1.1Illt\"l'Il'ldl.'inl1 Ja lugar .. IIl1a rclucron luya cluv l' 1" ÍJII.t1i,l l'S la l,'Olll'alL'IIUriú" dc11" Idl·llIi),il'.IJl1n~, Principul« de )¡I' cnud.ulc-, 4111.'rl·l:lI.'I\II1;1. tll el rOl'\) oc 411l' la,l,lIdlll,dldddl', -van ( I,N l. (I.N 1 ~ (I,N 1 110es Ill'rl,'s:1I io IlIllgUI1 mccuuixmo adil'iull(i11';11" llli j)l'ldl'l :o.l'lll;Ínlil\1 L'II Ii! tran-Ionnacrón al rcl.u.ron.rl. La intcirclucion ternariaI'rahaja d,' 1,1 ri¡':lIra 2.) d .. Illgar .1 1111,11..:lal·I~111TR¡\U \JA cuya 1.')01\1.'pnmuriu c-, 1",I'IIL'alL'lIdlll'l1 de I,b LloI\l· ... pnmanu- de ARI::,\ RI-,P\RAC'(ÓN, <)PERt\RIO \1 \RE \ ) qlle ',111 "i\lIlll urc.r. ()j\;(". '('otl_reparaCI\IIl \ "1\1I111 tarea' AtlO:ll1,h:l',l;,t Il'laLIlIII\"ollll":I1C 1:II11hi¿11cl cump, ";o.¡III1I_hura s .

1 \1'111 1el:' 1'1\1 \:c 11 '".11'1' \IC11I11l' KI 1 \( 11" \1 1'lO,

~•••••••••••••••••••••

11;1'1.1 \,'1 111,)llIl'IIIII ,,'11.1 ~l' )¡;¡Il 1l,ll.ldo 1I11'·rJL'l.llllII1C' hlll,III.I' "1 l'l1 l'l ,"qUl'll1;11 11< '" ,'11,11,'1111,1111111,'lIl'1.11.11111\"dl' ):1.ldo "11"'11111 11":111"11,1'. 1,11.11,'111.111.1',l'IL 1 ,,'

'II{,\ NSI"()1(1'1,\ ( '1( 11'I)E IN'rEH REI.,\(. 'I()N ES 1)1,;(;J{ \ I)() SIII· ...H I()J{ ,\ 1)()~

('KI' \ 11' \"\1 R') )( li\ {olllllllal 1.'\1,'111'1\Id,KI gCllI.·rah/l'IIIII('11\'\" (1IIIHI"'"I"I'<':c'lalll.ld,,· ¡\NI) I'\IS 11'''1'1-('1 \11/ \1)(),\;"JI) N()I 1 \IS 1 AI'RI'N)ll/1

( »){

(11)1\1 '.II'H'11I111 i\NI) L\IS 1 ¡\I'RI-.N))II.I\NI) I\!(rr I:.\IS 1 I',SI'!:< 'IAI.II.,\))())1

1.;1\ I'C,IIICI' IlIIl\" '1'11r.uu Il'", de ",la 1il 1;'11/11:11,i.l Ild.ld ~ l'\,' 111'1\ Idad/" 11.1)1.11111"1111'1;lIllhll'111I,1\ l)11l' 1.111111111"11,,,1.'11hlll.1I1,lúnll.II.·lllll ,11 1111,.11'1"1\'1.1I.1'lllal 1 a l'II,lIid.ld

'l' ,'''"1101;1 )11<1111"1"IIt1"1", 11",'1\:11'11," en ,'1 '(1)1l'llIpn ~ "011 1111dl'Pdl;ld,11 lJIII' .111'"

lill.1 11I','IL'I\l11 ,'11 UIl 'Uhlll"l III'L'III: 1,1111"11,'111.'11el '"1','1111'\1 (,111.'111.1' ,'10111"1111<'I1l'l1 1111111.11I(\,' 1111poLi 11.1 1"111011\.11111\," 11111,"1 1,1 !.!,:lh'I.¡)I/.I\,I,1I1 dI.' 1.1 Ilglll.l ~ 1 \,',"'I,d, PUl"~ 110 1'11".1,' h,I""1 \111"1'1'1:111\1 qlll' Ihl '1.',1 111l,'I"'LI.¡(II,ld,' 111.11'1,'11.11/, ,1'1,Lll.lud\l ,,' 11.11.\,'1111,111",'1"'11111"111.111.'1.1,'1\111(J/'/ R I/\/() h.l~ 1)111'1tll/,II .1 1111.1IU'\,'r,'l\lIlL'U L,I ,"11111'\1 ,1111", 1'''u\,1I"1111.' 1'11 \'1\,.1,,' .1" 1.1 1',lIll,IIIII .. I1. l.') .1111""111.11,,11111111.1111,·plll.'dl' 10111.11\ .¡("I':' 11111.1'\ 11\1,,'11;1 IIl'l'l·'.IIIO 11111~1I1ldl'p,lIadol

1.11 1'11;1111",1 1;, ,'\,Iu,,, idold ,,' r,'qUll'r,· 111101;",'ll'II'11 lJlI(, \:11111111111.'11,'qUL' ,i 1111t'11,·11I)11.11j1I,'rit'I1",'I':t 111111,k- 1", 'Uhllp" .....0.:11111111'1,',"" pUl'dc P,'I'lI,'I1,'1,,'1 " h" dl'l1"í ... SI....,. )1I,'rllllll,' ,,,I,IP;lIlli"IlI<1 ';lIllhí':ll ,'o, I1l'l'C"lria una a,l'rciúll '111111;11;1 );1 dI' 1.1..:\elu'I\ld ..d pt'rl1 qll,' dI.' l';lhlda a 1111,'\11' \;')"It" dI') ;,lIihllll, .11'1,11111111.111'"1';lIa 1",1.',1\0' de ,n).Ip.lllllClllo e'II1III1'lh;1I1dll I)u<': la, ul·ul'lencia .... ,·,I.ill 1.'11 111\ ,"hll)'P'adt:l'lIad", P'lI' l'jl.' Inp 111, ,'11 la 11¡':III,1 2 l. la ,'\I..)u ...i\ ¡Jad Clllle / ..\/'/ ('/ l/JI. \/)() \,,\/'R/:,V/)//. pUl'de l'\llllrn)ar'l' 1'11111111;1a'l'rt'illn de la ,i_!:.uil'lIll' 1111111.1

Aunqu, 1.'\1,11.'1111','\ p""htlldad..:, paru lu lr;1I1,IIIIIII..ILIIIII dL' 11.'1:1111"1,1',d 1110''-:)0IL'),IL11111.1)L'1l )0' L,I'O' plllpUC'ln, L'II ",1,' )11\1<1'l.' .ldllplar;1 PIClL'IL'IIIl'IIII'111, 1.1que 'L'dC"Lllh,' a couunu.u-ron \0: \.10:,11,1UII,I 1"lal'HIII 1\111load" 1'111Hlad p.IIII,'IP;IIIIL' l'll 101lCIOIII)III.I (1111;11l·1.1,11111pala el -upcrupo ~ 1111.1p;lIa L·;I(.laUIHl .1,' 1", ,111111)1\1<,1.dI' l,d1.11'111;1que t'1 -upcuip« propagól ,1I IdL'lIlillCad\lI )111111.'1)1<11.1l,ld,1 IIIHI \1.: 1(" ,"hll)\11<,ljll" P,l'dll a 1I)..:1I11I11."1I'l'pOI L'l IlIi,IIIlI idl'lllillldll<ll (l'Ill1l11 L'I.I\l' .111.'11.11) .;, Il·).ILil111l'1l'dJ.1 para L'I 'U)1l'rlipll ppdl:l 1.'1I11te 11,'1 el .llIihlllll L11'l..rilnlllollll": dI.' 1.1 11.·¡¡lIqlllol. P"I"ICIIl)11<'. l'lI 1" IlgUI.1 2 1 1.1 ~~I.'II":10I)J/,ILII1IIL'l1lr<, l'l <upcrup» etl'l l; 1/,le) ~ )",'Uhllpll' / \1'/.( '1,I/./Z \/)() ~ 1/'1</..\ / )// J,I lugar ,1 lit" rL'loI,II'II'" 1.1 1t'1.11.i'll1(H'I:R \R)() L,'llllt'llL' 111' .llIlhu"" 1)'\1 1...1.1\l' prun.m.u. '\"111"1"', '1"',11;1 1101".:-..;_~":t·_I\\'LI;¡1 ~ "1'11''' . 1..llcl,II.'IOII 1 \1').( 1 \LI/ \I)() 11,'11, ...·lIlIll'LI,I\,' prim.ni.¡el .llllhlllo 1)'\ 1 1,'1;1\,' .1J,:1I.11~ ... dcm.r-, 111'111'l'1 .tll ihllh\ propio \111\\ "\1,,'11,'11,1;1".I'nl 11111111111,1 1\'10I,1l'" ·\I'RI·j\.)))/ IIL'I1I,' "'"1110 111111'"..u ihut« ," ...I.I\L' prillldll,l.

"1)1'011",qur 1,lIl1hIL'I\," ,1:1\1.' "11'11:1.

I'H \I\SF()R1'l \('I(),\ 1)1,:(;E'\I'_H,\LIZ \(_'I()I\ES

Page 75: Diseño de Bases de Datos - Problemas Resueltos

1{('l\t ..ilTi(Í1I fI sl'lcl'rilín (a). LXlral' la' lupia, dt.: Uila 1.:I:il'l\ll1 d ..d¡¡ lIll,' ~llli~la"all111,1l'CIlll"":IOI1 ,"p"llrk'ada, Por Cjclllplo, ,"'!t'CCIIlJ1;11 Itl~"lllplL';¡dl" ~'lly;1 F Na~<1111111/)1)72 Lil' la l<lhl .. Il'vlPI.r·,i\I)()·

/ ¡g(/ra :.3 1<1'/'/'('11'1110(';01/ gni/i('lI el!' /0.\ oprrodo¡cs clt'III/~('h/{t rclu¡ ionul

11

Ih 11

~

\ H,,1 h 1

[

al jh~a2 hl

a,' I112

..\ (' I 11 (h~el al h ~ ('11

h~,,1 al h( el.

h, j :l. h 1 ,1h e' a, b (2

u, h. r,

\ H

a~hL

a I~a, h.

"-1 h

~ t vuturuh )011'... ......

,J­I

[J'{j. r. '" (

11

rL'-

1" I t'"\l'( " InrT 'Tui/lit·...

~

\ l·' ,\ I •• \

lo \

h ,\ ,, 'J

I'rtijl'fl.\"/""f

In tcrxeccién (, '\'TE ({SI'.( ''1'«)" 1

Divbi.ín IDI\'ISJ():\'I-\grllpad.ín f(;n(){ l' Il\ )Cit" ..." tranxitiv» (TR:\NSITI \ F ('L( )SIIf{ ,.;)

Cnmbiuacién (.I()! '\ \

("'l1lhlll<l'''''' ()C"lllhi";ll h'l1 :-.i;¡III1<t1t lUlll)111,1i.. ll~l' 1::<11.:1'11;1

St'lll' v 1111It1ill;lt'I\lll

Operadores derivados

'1 11 l nari"\I'u, \., "111. "111.,111111.

1"""" h,n II'Re 111 ( 1,\l·Il.'\.lll,'ll)«<u I\.I.. l"" l\t'l ,1("II()'I"IH STRlt 11<);\ 1

Ilill:t,.i,t, l' I 1I

t '''1'11 I1 '" 11''\ 11 ))I"r,'nd.• ·llIl,t'!.RI '\er,!',,,dlld" .. 1I1,·",m" 1( \1< 1t:SI \:-.PR()IJ[( 1I

Uprrudores primitivo;

(J/'UN \I)(IN":S IJI:'I íl ceu« \ NII \ {'I(I.\' \1

l.u II~lIJ'a 2.2 11111C,II:tl(l~ operadores primuivov y dCII\.rd(" Ikl ¡t1gL'hra rclacionul\ la 1I)!11J'a2 ~ una J L:ple~t'l1talion gráfica de l'.,to, OpCI¡llhlll"

_ ___:(....:..:.!\I_!·II.11 () _. PI'I "01 <Ie.t< 1) \11 1111 I C1101 \1 'I(),\ \1 1'o')

••••••••••••••••••••••••••

~C·II.lI.III,llt\' III~.I CI.l I~ 'lllllll (1,1, 11'1..\ 1\'11...·' \,.'Il ,,·11"11" ...·1 t.I\,,1 ,~·I.,'l,I.1I1.;'¡Il' \'J'"l.ul\ll 1111.11"

1.. 1IIIt'., lit' "¡-Irl 111'11 .'111.11111

tal qUl' ()(I) ,1

() - ()pcradol ,k'l :llgl'hra 1l'1.1":111I1(11 11I1l1t1l1. l'Cln1hin¡¡cltill, ell,1r Rel:tl'I()Il(l·~)I'¡;¡ lal.,) lJUl' ~(' aplll'a eluperador ()

Rl·la.:illllll'Milladn IIl' la n]1,'I,ll'IOII

Una opcracion del algl'hr;¡ IclaclI'll:tll'OIl'I,te en:

L:I' operacronc-, rcl<l':IIII1.cI..:.,l"Pl'l'I.tle.,· restricción. proyercron. lOll1hll1,Il101l \

div ivión.

1.,1'. opcrartonc-, uudicioualc de conjunu», 11111011.uucr-cccion. dill'f,'IILI.1 \producto caneviau, 1,

I.'I~opeuuhu c cltol :tl~·l'hl.c Il'l.ll·lClfl.d 'l' .tplrl.t11 a rclac ronc-, d.uulu ,"111"dtado I1Ue\,!'. 1l'laI..'IClIll" (hll'III,lIlaIIlClltL: ('lIdd UCIIIIICI lIl'ho lljlt:ladcll":' en d",'1(1.,:

En los apartado, lll1l..:rion.:,~c lid ":'IIIIIICldll la parlecvuuicu dcl modcl» t'L'laci(Inalusarcmox uhoru hll'\ ,'III('llIe la dlll:lIl1il'a del l11i'"10 de,dc el punto de \ 1,la (IL'Ihra rclucioual No ,',llld""L'I1Hl' :Iqlll la ,illla:>.l' dt:1 lellgllalc SQI, 1):', puc 1..'11 hhliL'III¡¡, propuL"hl' en cvtc l'<1plllllo 'l' mo-rnuan "('IIIt'Il ....i", para la c icucron 1

ripulucion de una BI) en este 1l'l1gu'lIC, RI..'111ltill1l1S al I.'L't,,( a I)l' ;'vll~lI,'1~ l'i"llilll191 p:lI<IpltlllInul/;1I l'I1C,ltl' a\pl'tto"

,rámica del Modelo Relacional: i\lgehl'a Relacional

Por último. puede mcjorur-,e hl cnlul.ul del dl,cño rc-uhuntc introduciendo ,llra''i,'eiones que IlO fit!uranall vu el cuuucrud, ol'iglllal p":lll que se conxidcrunruadas \) cOI1\el1iCIIIC' (por Cll'lIlpl", rcxtricvionc-, que implican opcuulorc .. deparución de Icchus).

..\11 10111o, dcnv .Ido ...,

Fvcluvr, id.rd entre 1I111'IIl'I,II':101l""

Atribuu», 11l1lh1\aluado-, ohll!.!JI'III1".•

Cai dinalidade 111:1\1111a,conoculu-, en uucrrclu eiones hinariu-, N:r-.t) I'N l'

interrc 1 acionc ...ICrll~UIJ'F.\elu,,, Idad en l." \.!cnl'r:IIII,ll'11l11e"•

11 \ \1 \111S I ''\JCI()(1I\~1~11111\I(I~ I'K(IIHI\l\\IU\I'III()S

••••••••••••••••••••

Page 76: Diseño de Bases de Datos - Problemas Resueltos

...............................................•

1'.".1 el 11rlllll'l ti 1 l, 't 1, 11 \1 tI. PIO) t:llla, lu 1[Clll'lIllI tll' 1111 C'II"l'lIll 1\'I'll'IO'I'11""111\1· 1 ) • . . ' • .".1111 'l "·!-'IIII.1I1 1,,, "~IIIl'IIII.·\ I'a't"

1 '1'1' p,ohk'llla, de 1.':-'11.'capÍlIlI\J 'l' e,lrtH:(llrall l'l1 do, gl':lIlde~ hlo(IUt'~· I)or llll"" \1'> 1110hl('lll' .. 1 . " t

1 '" 1.1l~0 1) )JCl)\O c.'" ú"l'ña, 1111 l·'tJUCI11.1 11.·I.Kinl1al a 1)'lrl'll ,l.' 1111'1'1I.'("'"jlll'l ,.'. • ~~ •

l' Il, ."llll.llIlll (l., )'. JlIIl olro lado. l(l~ fll "hk'nl:l' l'II\,O ohJl'1 i\'11C~ (1)1"11 'r"qlil'llll r '1" . l· , . I . -.' ~ \:t 'l .1<""1.1 .1 )1.1I(lrlC IIlIl· ...ljlll.·,I1i1 E/R (para "'~ qlll' ~l'Illlli¡;II;LI1);" r ,,,1'11.111"01111;1,1011I'I~('I" '11 '1 '1 . 1 1 l' /,. \1:' ' ..., .•. l c.: • p.lr d( ,) I/'X (1\ ( l' / /'(/II,\(fllIlI/lI'11/1/ d,' /1/1 1:l'IIU'/l1I1 l/N

"'. , \11/11'11111II'II/( 11"111/) .

( ',íllll) se ('SI ruct Uran los prOI>'enlaS

1 'ivun¡ ~_5. 1-.)('1111'/" ch IXrll/'IIC'III"

..,\,\1'1

-, L 'JI~

ni s""--,71-,'---,-,-

,'1 A', tl.Hlt' Ir 11)\ I'IJJ\I" \(1 \ 1(1, \III~/I ,1" 11',JI'I ,-

"\

"-_I 11'I• I I1---'" ;"'\ -- =..,

I ".1 '''\,''lhl~' ',1 \1 •, , " ,'. \," "1 j.! , ,

"o '11, I I , " \ \1,. \1 \/(1 \ ", • I I I '\ \ "\ ... , .,, .. j I 1'" \'\ '.- ~ - - -

ciertosa ca<.la

\grupal'ilín (;R()l'P UY); .\~llIp:1 lupl.\, p," valore 1.\ll1llllk'~ de.,lIlhuIO' ~ .Ipllca 1111.1 tune ion de a¡,!,egal.'iol1 (Irl·CUl·,k'I:I. '"111;1. 111<.'tll"... 1d\'''"IIIIIIII. 1 ;1 lí.!.!lIr.. 2 :) muc-uu UIl cjl.'1l1plll.

I)Í\ j...ion 1:) ('''11\11 U) l' una r\.'I.II.'I"" 1.'011lo ... \ ;t!"Il'\ ti l' UII .unhut« tll.· 1<1pi 11111.'1iI1,1" 11111Idl\ 1.11.'11.1,,1qlll' llllll.Ul'ld,1 con I\ldo' 1", \.IIll1l·\ dl' 1", .1111111110'de la,::ulld.1 11.'1.11.'11111(.11\ l\tlr) ....1.' )1Ul'tll' .1.. 1111111.'11111111.ron d.. 1,11"11\1.'1., iou, Jel prlltlU~'hl,.lllL·'I.Llh' \ d~'1.1dill"'·llll..t .

lntvrxeccidn in). (.·I)fl~lruyl' 1111"r~·I.L....ion con :ll)ul.·II.I' rupl,« qlll.' aparezcan CII1.1' do, Icl"I.·IOlIl" l"rl.·I..'III,·..tJ.I'. Par,1 uv.rr C'\I.· Ul'l'I,ld", l', IICl'l""n" que 1,1, do,Il'I.II.·I'>ll,·, l·'Pl·I.IIII.'ad." 11.·lIg.1I1111, Ini'1110' .unhut.», dcllllldo, ",hll' lo, 1111'1111)\,111111111111\.1.1 1I11c",','l'11I1I 'l' puededcfinn en IllIllllllI dl' 1:1UIIII'II \ 1.1dilcll.'lll.l.1

t : \1'111 1'1 ' "I~I \"1 tll,1I " ;\1111111(, 1<11 \1 ·I()\ \1 111• •I \

I1 a:UI ti :!.J ('''1//1'//11/1/0/1 11111/11,ti

a ti "a ti y1) v 1.

/\ H ('

(¡VafUrlll) Join

RI A I1 1{2 A (' Ra ti a x

1) , •¡- a y.. -l' \-\- 1) '/,

1..1 1.·\lIllhlll<lli,in ((-jI l" 1111Pllldull'l 1..1I1l',i;IIHl ,c_;!III1I" de una 1'1.·'111e1.·'11111.1llllhll1aelÚII llalur¡¡II*ll" un I'llId 111.1" l.-arll.·,I:lIIO ,cgllidll I.k· rc-ari ....cI111l p,'r 'gU.tld,,.I

pruycccion. l ln cjcmplo 'l' mue-un en 1.1 Ilgllra 2.4

Cumbinacion I.lojlll \ p.lIl" ,k, 1;1' 1,·I.lll\ll1<:' o.:'Pl'I.·11il.·:ld:I.... LIIl1\tlll~,· 1111.11.1\.11111conc.ucn.uulo , :1.1.11111'1.1,!l' 1.11'1I111l'1,11I.'IallOll Lt1IlI..ld.1 unn d~' 1.1' 1111'1.1'd,'1.');111111,1.'1~I1II"I.· qll\' .1111":1' tllpl .. , \a\I,la)!"1I la l.'IIIHItI.U',n t.l,IJ.1 '-;1 1:1':11111111.11111,'Il.!.u.tldad \ l'11 1,1 1,'I"llllll '1.',1111.1111,''l' \,'11111111,11.,1 ,11111111101..,11111111 -c dl.'llIlIlIlIl.I

>11;11111,11.'1,";nauu.il. "11 1:11. 111nbin.« 111'1C\I\.'I 11.1'l' 111l'11I)l'1I 1", lurl.!'> dl' un.i 11'1.1,'11'"JI. 1101."1"" rcl;II.·IIIII.III." ~"" "11.1 11'1.11.'"11.~"lk ..IlI.·II.IIHlo ...."11 nulo-

.l.tl.·i,lll<:, l',pl'l' 11il.·;\d.l'

Produrto Cartcsiunn (v). " parl 1r ,le' dI" lo.:l"eilll1l." C'I ,,','i ril';ld:I'. 1.('11,11'11\l' un,al..'io" l·\I1II.::II,'II:ll1du \.',111.11111'1.. dc 1.1 pi uucra c on C:ld:1 11I1:JdI.' 1<1' IlIpl:! ....de l.,t!lIl1d,l. 1.;1 rl' 1.11.'i"1 1 1l' '1111,11111.'.. ,1.1 ,klllllLhl ,,,hll' la umon Ik 1(\, alllhll\lI\ ,11.'1:1,01",

.11111110'.

Diferencia (-l' ("'1I\11U\<.· un.i rr lnc ron 1.'''" la, lupia' 1Il' la prinu-ru Il'la,'I'll1 quv,'parl'cl'l1 en la '1.'~'1I1l1" 1',11"1ut rhz.u ",[,' opci ador <'\ 11l'(l',:lrll' que 1.1' ,1",

:11.'1'\11(', l"pl'c!lie:I\LI\ lI:n~an 1", 1111'1111)' :lIrihulll' dl.'linidll' 'I)hr" 111\ Ini'lIl"

\ 1111111 tUl (\'11\1111\1.' 1111.111.·1.lllI'l1 1.1111I"d;" 1.1' 1111'1.1' qlll.· .11'.11"/, .111 \.'11

.lqIlILI.I,h: l••, dI" 1"1.;, II>lll'\ \,"1','1.'111\.'.111;1' 1'.lr.1 "';11 ",11.' l'p,'r.III"1 ,> IK','C',1I1". l.., d,,\ 1I.'I.I'·IIII1l'\ "'1'1','111,.1.1.1' 1,·II~.lIl In' 1111'11111',,111111111" lk·llIlId .. , , .. brc 1.. ,

'111,1\ 11111111111\"

1t ,. ,"1>, ti \ 1PI l ,\ 1)( ) 1

I'rU)l'l'l'iún (Fl ) 1 vu uc 1,1\ .unbuu» o.:'pl.·~llíl'adlh ti" IIl1a 1'1.'1.11.'11111d.III.111111.111"11la, lupia, 11111'11\..111:1'1>111l·I'·llIplu. '1.·lt'\.'l'IIlII:11 11" 11\1111hll.·' 1!L' 1,,\

1''''.11111\de la 1,·1.1~HlIl 1 \11'1 1 \I)()

I ,,\ I \

Page 77: Diseño de Bases de Datos - Problemas Resueltos

1',11Lada :"111:111111'111111I,lh,,,:1I1 1111.1~l'lll' dI' PI'I,,)II:1' que '1: id"nllflL'all 1'<111111

\lIdl~1l lit' 1'1''''''11011. Se Il'qllll'l~ ,'011'1"1'1' l'l 1101111'll' ,'pIl1rk'IO. la dirección y «.'1NII,\llIlqUC en 1111,1I"I,lIlIll'lIlI. 11:lh:lj,'n \:11 ia, p..:,\,II1.I,'. UIIOIJI"I '111101,nlo puede 1I':ahal.tr l'lIOIlI,tI'lj,lIl1il'l1h'

1'11 .IIlllólllllClllll 1111.11"'C IJI.'I1IIII'\1 P"I 1111110111hrc ("Vdl;, -xurora". "1..1' Ro',I'''.

"'l I Ill'I1,' IIn.1 dll,'\'lllll1 un Iclc'flll1l' ~ 1111" (1CI'Ollól de C'llnl;"llIlJuc pertenece .tII'L"""I1:11 del .II"I.11I1I,'nl(\,

1,1 ('t\lIHlllld.ld "L' '\ladrid JI."I.''' &l1.lId,1I mloruurcron ,,,hl\: 1\), aloj.II11LCI1111'

IIII,dl" que 1.'\1'1,'11 \:11 dlc"" comunidad, Para l'lIl1 decide crear una h¡l'l' JI.' 'dal\)' 4U"'llll,lla ... "!.!lIl,·nll· ... l:11I1"dl'lat:1I1l1t".-

"

l.nu nciado

2.1. MOI)ELADO REIJACIONAI.J

••••••••••••••••••••••••••

) InCPlpOIJr 1.. , I'C,llllLI"lle' ,h' 1I,,,.111\1qlll.' 11<1(111Jt:1I1 r,',og,'Po,' "111.'1"''1",'111"

qUe' .¡hol" C, 11\',"",III\1 mclurr 1.'11L'I'''QUl'11101 "'I,I'"'I1,,I'(1'lr cjcmpl«, 111,',11;1111,'.: ...IOI1,', ,Il' \ l'lti i,':1,' IPII1

1,.II1'IIIIlII.llIIIlI d,' 1111,'11,,1,1\.11111," 1 ......\ dl' 1)1.')11'11.1"11'1," en 1·'....1"11' 1.1 \ \ I

11";K'it 111

.11;1 ...1 ......~lInd" 1111,. de "r"hIL'111,1' 'l' .lpll".11;1I1 1,1' IL'~kl' .!L' 11",111,101'111,1\Ion ,le­na, F/R :1 ""pl,'ln;l' l..:laLIIHI:dc' ,"pli",ld:l' ,1l1h'l'IlIrllll'llIl' ~ '1UL' 'oC L'1111111\'1';1I1.1

lIa"'I'1I1 1"1111, ""11 1", Il''lI'cc'i,)jlc'' '1.'11),.I1I,\·a, (1"\' h,l~ 'PIL' (llll"1I11'],,1 ,'n 1111

111;11\'1:"'11111:11

, Rl·.llt/a,itil1 ,k' UI1 ,<111)11111"dl' ""11,"11,,, 1.111111,'11 "()I .'1.' \,1111" en ,tI:"'III,1

'11;11

\ n.rl1/.11 "Id .. 'UPlh:'I" <cmaur 1(11 1.1,'111ti ",',11Id" 1',11.1 1.1' H'I.I' 11111(' l', 1,ll'I11<',

1\1.'\ 1111111;111.1,dI' ,"1.1' iclucumc-; 1.1' ,1.1\1." :111.'11.1:-~ "" "'>lI"'11l1l1dl"I1II."

1(' de hOllad\l \ I1IP,l1li,':I"OI1. "'1 lol1111 1.1' 1"'11 i,"'II'lIl" d,' "hh",llpll,'d:ld ~

.ul,

"1 'tiPI JI \\1' 101 1> \ 1'" 1'1(<11111\1 \\ RI "1 11 1'"

~•••••••••••••••••••

Page 78: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••••••

/II/(/t ,,' ''','/III/Ic 11 [/,,1' /111 ""111/'1" I "11l/u '\111'/'/(1" /.//1

1 1111'1/11'/,1/1/111 d,' '/lII/,lc {" ,/,1< /'<""'11'" " "t /"'/II'""t d,'/

1'" ,tI/l/"III/"/I/"1<",(/\ oo. ,o/, J,¡ftl /"" 1/,,,,/,,

I)t.: cxtc 1111111111p;írr:lrn <e dedlll''' la Ilt','l''';ld:ld de ti"" IIUl'\:1 rl'I¡Il'illll\( IIVII)¡\I),l'u}a cl:l\l' plilllilri:1 '('la l'l e6dl).!o de ;¡clil Idad ("( 'IlUIl:!1l ;\\'11\",

A("I'IVlr>,\I> (l'Cldl~''-/\l'II\', NOlnhn: Arlil, 1)1'~l'flJl(,ll)n, Nl\l'IJ

\ ~ \ I.ISIS I>EI.()S S (11'1'ES'I'()SSEI\tÁNTI ('()S

"/.1' 111":'1""\ 11, .\[,,\ II/f~/(/"llt"'lr', \c' 11.'1111;(/11 11' 111//,,,1,'\ 111,,11111\(.'1111'.(1

fl, :':"'II.~lJ,I'I\ /'111'" 111("\1)(·,1,'\ t \(·'111,'11\11111,b« If IC'{II d« montuuu. (le •. J. /"/11\

"~e1"'/eI,,./," ,,' /", IUI/j, ,111/'"'' u» ",;.1/1:0, E« d,: /11/, /1', suh« «l noml», el, lu'11/11/"",1, /'1 d,'" '1/" 1"" , ([1111"'/,1,' ./i/jlul/,/,/ el, .1" hu ,/, u, "/ud (/ /(11'

'-¡l' d,'\,':¡ IC'c'CI).!l'r,'1 111I1I1,'rntlL' h.lhll:ll'lIlIlc" ,k' qUI' JI'I)\ll1l' c.ul, :dllJ'lIl1il.·1110.P,H'1u,' 1I..:h"I1Il" IIlI¡odlllll 1111 IIlIl'\ CI .11,,1111(11"(\,\IIII,'¡II l l.rhu.," en la 11.'1",'1\111

\ 1 ( ).1 ..\ \ 111N I () \ "III! 1 '1: mucvu a 1.'11la li~\II:1

1)l'hl'lIlil\ ClllhJdl'¡;¡r una rrlación Ht\BI1/\('[()\J, l'ndl'lIlIh IIlIII:!1 l'OlllO eh,tll'1\~"l1dll., 1'1 IIUIl1,'II) ,!L' !1;,hil:ll'¡OIl ("N_~~al1ll¡j") .JUIlI(1l',lil 1.'1nornhn, Ik'l alojamiento.r 1111111puv.lc d¡¡r,c' "1 e:bCl de que Ihl <e tuciluc 1I111l1I1l<tL'II)nac,'rC<I cll' ~i unadl'll'llIHflada .1,1:lh~ld~,iril~,lil.'lle 1,~ai1('l~ nI) y cu.il ('~ 'u pn'l'I<I, P()dCIl1C1~,'C1I1~It,h:r:¡rque1", .tlllhlllll\ Ballll y I'r"l'l\I admiten nulos, , ,

1,,\ 111'11~llllt('IJlt'\ \.' (1It/'II/tIJI ¡'(Ir hulsit,« 1(111," \ \; '/e"c 11 """'1 ti, 1111"1,,,

/I,¡J'//,I. 1""" '''//1/'''"''/1 r] ulojumunto. ,{, '111(' /11'" 11I1"1I1"lIclt,', '/"/''''1,/1/'/' " , , (cid" unu dr csu¡« huhua, III/It", ,/ /"",'1"1 '/1,11/" d, lnnu» 1 «'

1"'" n»

"/'/1'1,,/<1 (//"/,I/llIc'/I/I< {/U/IU;<l1I unu 1<'/11'" .. /"'/ \1""/1 qi«: 1,' 1'/,'11/1111,"//'/,1111"0"'.0:" .l« /,,'/ \(11",( ,\, /,'C/I/I,'n', 11//"" / ,'//1,1/1///1, ''''"/'/, lo, /11,h,.,." 1"/11,1\,,,,,

~ 1 \1' )1111 \111' I~II \C tc ,\ \1 11'\¡ '1 \

•••••••••••••••••••

:IK'lIll" LIIl1\lntll ltlld 1111111"1.1Icl.I,11l1l ,\I.( l.I/\~I"'N'r() dlll1d,' 'lO ,llina'l'II,'tI,1\ aIOI:tlllll'IIIU\ lur:,I('\ d,' I;¡ ('Olllllllld,¡d d(' ~1a(lrld SUll:l\1.' prlll1;lIl:t \\,1,11'1, del allll;lIll1l'llI() (' N""lbll' 1\1\11""). ('lIlhilk'I.IIII1I~ qu\' ,,1 :llrlhu'" Pl'lo,¡lll:t di1I ("('Illllal'lil', PUL'tlVad""11l \;¡J'lll" 11111"..;p:lI:t pVIIIIIlII 1" IHI!-o,htlid;ld ll\' '111'\\' dl' d<: :llla 111111111'\\1alill:tllll"tllil 1.11"'1\011:1 d.: llllll:I,,'I'1 1111 ":I\:¡ 'II¡"

1.1tnd,,, la

"'1 '¡/"/<I/lII,'/I/,' IIII.¡/ " rdcnu¡« d /"'/ /11/ ""'///1/' 1 "\ ill« \11'",,/", .. l.a»1\'(I\f/\ ',«I( ,. 11('llt /lllel ,/tl('( t "I't "11 If,I,'/(I,'" \ II'1"/J,,, \(11,,1 ,1,' r ""(f/. ,,, •

'IFI(',\('I()'\1I)E I.,\S I<I·,I...\('I()"ES B,\Sll',\S

sic)n del enunciado

i\lIllIhll' dl' 1", .,1<'1.11111"11"1-..lJUl' 1ll:IlL'II h,lntl:llltlIlL" dohl," \ Il'.III/.,1,1l'11\Id.III,', \il' "',,dl'II'llIll (l'l nomlu, di' 1.1.K'líl ulud lO, ....·lIdl·J'I'11l1'I

~llIlIhll.' \ dl'\'"I""lll .1" 1.1' .1,11\ u l.u lcv lJIII.' -c II:.tll/,1I1 en l'l .11"10111111111..Jl'II"IIIIII.ldll 1 ,lIlll'II,I'

[11\1.'1i<l1,,1 l'\qlll:llI:¡ rvl.« IlIlIal 111.1"':11'en el 1.1\ .:1:1\LO, prillldll:I'" ,'1.[1 l',alt\'J'nali\" ... ) la, ,'I:lIl'\ ;"<'"11.1\, 1)1' l'\I,[\ uhim.«. "')1"L'IIIC';1I 1,1\ 11111(1,,,d,J¡urr;ldn) fll\1dil ir.u ruu. ~ 1:1,,':11"1111un ,I\IL'ri'l'11 ( • ) 1(1\ l':III1I1'" Ijlll' ,I"l'pl<'1Ivulorc-, nulo" ~ JlIII ulum» uulrc,u \1 t.:\i\ll' ,dgllfl alnhuliI <fUI' ':\'1" ,kllllll."~lIfla IC,11il\'lIin " 1111.1" II1,1l1ll'lIl'l l.llll1<'l.!ndad de 1:1ha,v d,' dalll'• •

101' ;ll'll\ "Jade' 'l' Il",1I/.1I1 UIl dl,l .1 1" ,,'111,111.1.pnr ejemplo. 1.'111,1''''.1 .. \ 111.,.. '1.' praCllca 'l'I1JI.'" ...lIh' 11" IU"\," ~ 'v d,',('.1 ~u.lId.1I\'''.1 1IIIIIrllldcíPII 1\""1.lh,', all:!"l1lha ,'Ilel que 111''l' Pl.llllllll'· nill~lIl1a a,'t" Id,ld

1 ,1I,!!.lUIII\ dl' l',1<1\ .t!OI,IIII1i'IIIIl' 'l' t (',111/.111 .1l11\ 111:1.1," IIIUlt1.1\l'lIluI,1'.Id", pal" hUI.''''p'·IIl', 1'l'lIdl" ""1(1, hllllll.'l:1 dl' 1I111l1l.lIia, l'l, I 1 '1,1'1111:, ,,' Id"I1It1Il.1I1 PPI 1111,'Pdl"" 1 ,.11.' 11111.'1",',lh,'1 cl uomhrc dl' 1.1.!ll'\ 111,,,1"1""111 \ ('1mvvl d(' dllllult:ld lit dllha ",'11\ Id.ld (1 10t,

" :IIIlJdl1l1l.'lIl')'> \1.' .rlqurl.m I1tll h,l¡'il;H:tnll~" y 'l' dl'\l'" l','l1nll', ,11,1111,,,inl"· ... lllfllPillll'11 l'l .II'II.IIIIIi.'I1II1. .1,' que Ilpll (inuí\ íUUJII.". dilhli.'\, Ilpll· ...) l',1,' dI.' (',I;¡-.. h"btl,lllnll"', '1 P"'l.'l·ll' U,III<)dl' h,lIiu \ el 1'11."111

1,,, 1'1 H 1\1" 1'1 1'\1<" I'f{''111111I~ lO \1 11 t'l"

Page 79: Diseño de Bases de Datos - Problemas Resueltos

..En algunos de estos alojamienm-: S(' realizan (/c/ÍI'idadex multraventuraorganizadas para huéspedes isenderismo, bici ..le/a de /nollla/j(l, etc ..},...

\uro~.~as activi~ades se n~alizan un día a la semana, por ejemplo: en la casa "Villa"IK'deI ' s~pract~ca ~endensmo los jueves y se desea guardar esta int'onnación. Pero

iaber algun día en el que no se practique ninguna actividad'',

1111' C~ldHalojalTliento puede proporcionar ciertas actividades Inultillventura '¡dCnlás<1 IlllSl11aacti vidud puede sc' . ". • ( ,111' , • r propuesta por vanos alojamientos, por tanto tenernose crear una nueva relación REALLZA ACTIVIDAD cuya cla e ,.. '

\I\lIlflUesta . l" '. _ • v pnlnana eSlará\('TIVi pOI" as claves pnrnanas de las relaciones ALOJAMIENTO''''~CIÓ dDAJO.Cada una de ellas será a su vez clave ajena que referenciará a I~

n e a cual provienen.

. A~emás, como se desea conocer el núrnero de habitaciones de la~ que const, d,llo,,~rnlento, deberíamos tener un disparador que, cada ve? que Í>C dé d l' a ca adlllllnc u a h bi . , . e a ta o se, n a nación, se 1ncremerue o decremente en uno el valor del . t ib'Junlcro_Hahita ", a n uto

, 'mmuna enSe debería controlar mediante un disparador la cardinalidad\LOJAMIENTO.

I{cglas E<.:A

Si ~e e,lill1ina o se modifica un alojamiento se deben eliminar o modificar toda 'I.IS habitncioues de dicho alojamiento por lo que tanto el borrad '- Is

d'f' .. ' ' ...o cOlno aIlltl r icacron se deben hacer en cascada (B:C,M:C')

Opciones de borrado y modíñcacínn

Figura 2,1,2

B:C.M:C

HARI'I'ACIÓN (Nc/lnhre Aluja, N Habitª, Tipo, Bnño=, Precio=)

,..... ALOJA!\11F.NT() (Nombre Aloja, Dirección, Teléfono, e-- l' ontacto -, Núnlero_Habita)

Corno los alojam,lent.os disponen de una serie de babiraciones y la~ habitacionesdcpend~n de los ,alOJamiento, en el sentido de que para hacer referencia a unahabitación necesrtamos el nombre del aloiarmenro donde Ir' I id..'" b Al"'· J es ti me tll a,orn re_ oja es clave ajena de la relación HABITAC'IC)N que r ,'.ALOJAMIENTO, uc reicrencia a

"Los alojamientos JI' alquilan por hobitaciones v se desea conocer cutintas"ah/I(/CIOfle,1 componen el alojamiento ... ''.

2 1,MODELADO RI!I.ACION/\L 1471(.\ \i \

.•...•.•..•.....••.'••"........

Se deberían controlar mediante un disparador que en un alojamiento trabaje al')$ una persona,

Es necesario controlar que la persona de contacto sea una de las que trabaje en elmiento.

asRCA

Sin embargo, si se elimina una persona que resulta ser una persona de contacto tlllojamiento, no se debe permitir que se elimine el alojamiento, pero como elato "Contacto" admite valores nulos, podernos considerar el borrado con puesta ;1

s (B:N), La modificación puede hacerse en cascada, pues si se modifica 1111,1

ina de contacto en PERSONAL, se debe modificar en ALOJAMJEN1"O (M:('),

Si se elimina un alojamiento de la base de datos, se elimina todo el personal queja en él, en cascada (B:C). Lo nusmo ocurre con las modificaciones (M:C).

ones de borrado y modíñcacíón

Entre las relaciones ALOJAMIEN'rO y PERSONAL. existe un ciclo referencialrnpide la crcaciún de las misma» según las especificaciones del SQL_92, E\ICerna se puede solucionar creando las tablas sin las claves ajenas y posteriormenteulas. corno sc muestra en el script.

Figura 2,1.1

I B:C,M:CPERSONAL (Código P, NombrcP, Dirección. NlF. Nombre Aloja )

UOJAMIEN'ro (Nornbre Alo!,\ Dirección. Teléfono, Contucto=, Número Habita:O:t'.M:C

\demás todo alojamiento tiene una persona de contacto que pertenece al personallojamiento, luego el atributo "Contacto" será clave ajena que refereneiará a;ONAL,

~n un alojamiento pueden trabajar una serie de personas. pero una misma per~Onapuede trabajar en un alojamiento, por tanto debernos introducir un atrihutoibre Aloja" en la relación PERS()NAL, que será clave ajena de esta relación )-ncíará a ALOJAMIENTO.

:n cada alojamiento trabajan una serie de personas. sin embargo. aunque cn unniento trabajen varias personas, una persona sólo puede trabajar en IInnicruo".

(SEÑO DE BASI,S I)r.l)/\TOS: PR()BLI-,M¡\S RESUELTOS

••••••••••••••••••••

Page 80: Diseño de Bases de Datos - Problemas Resueltos

•••••••••• •• ~•••••••••• '•••••••• e ••••••••.• te •••••••

1,

Alojamiento

CREATE TABLE Habitación (Nombre_Aloja Nornbre_ Válido.N_Habita INTEGER(3),Tipo CHAR( 1) NOT NULL,Baño Tipo_Baño,Prccio INTEGER

r:RIMARY KEY (Nornbre Aloja N Habita)l'OREI(iN KEY (NOrllbre~Aloja)' REFERENCES

ON UPDATE CASCADE()N DELETE CASCADE

\LTER TABLE AlojamientoADD FOREIGN KEY (Contactoj RE¡""ERENCES PersonalON DELETE SET NULLON UPDATE CASCADE' ,

l'•

('REATE TABLE Pcrsonal(CódigoP TipuCódigo,Nornbre_P Nornbrc , Válido NC)T NULL,Dirección CHAR(25) NOT NULL,NIF CI'IAR( 10) NOT NULIJ,Norllbrc_Aloja Nornbrc, Válido NOT NlJLL,

PRIMARY KRY «(\Surgo_P),lfNIQUE (NIF),I'OREIGN KEY (NOnlbre_Aloja) REFERENCES AlojanllCrllO

ON UPDA'rE CASCAOEON DELE1'E CASC AOE

CREArs TABLE Alojamiento (Nombrc_Aluja Nombrc_ Válido,Dirección CHAR(25) NOT NULL.Teléfono CHAR (9) NOT NULL.Contacto Tipo_Código,Núrneru_Habita INTEGER NOT NlJLL,

PRIMARY KEY (Nombre_Aloja)l.

('REATE DOMAIN Nombrc_ Válido CHAR(30):CREATE DOMAIN Tipo_Código CHAR(J);('REATE DOMAIN Tipo_Baño CHAR(2)CHECK (VALUE IN ("SI", "NO"»):

SCRIPT EN SQL_92

_:~~'~'::.:.'i\--- 22:.!.,1,1:,MODELADO RELACIONAL 140J

Figura 2./.4

......ACTIVlOA (C6d11!9A'liS Nnmhrc..A"I~ Dcscnpción. Nivel)

REA LIZA ACTIVIDA D i!l/tlmh'·I'...LV.('¡". CódiÍ'tJ Atti" Día_Semana·)...- ....J Il.CM,l

B CM:C'e_A laja)

((1('((1*. Númerl,_Hahi(3)B:N.M-(,

Fi'ALOJAl\U¡':NTO (NIl1Tl~[~ólul~Dircccil\n. Teléfono, Con

I-yr ERSONAL (C(l\ligl,l I~NombrcP, Dirección,NIF. Nombr.

lB CM ('

HABITACiÓN (NllIl'!J(!' Afoitl..N_H~bj.l1jTipo, Baño", Preci

lI:r',M ('

.FO RELACIONAL

Como una misma actividad es realizada por al menos un alojamiento. deberiarno­un disparador para controlar esta cardinalidad mínima.

asECA

Cada vez que se elimine o se modifique una actividad se debe eliminar oficar la tupla correspondiente de la relación intermedia. por tanto el borrado y litficación serán en cascada (B:('.M:C)

ones de borrado y modilicación

Figura 2./.3

R(.M eREALIZA_ACTIVIDAD (Nombre AfIlLII. CódIgo ACliI',Día_Semana*)

r-r-: ____JI B'C~I:C

c:ACTIVIDAD (CÓdig'LA<:Il\'. Numbrc..A<';liv,Descripción. Nivel)

...--"'AWJA!\flENTO ("'¡¡mbre Am Drreccrón, Teléfono. Contacto ". Númeru Habna}

)cbemos introducir el atributo "Día_Semana" en la relación REALIZA_AC1'1-.D, pues en el enunciado se nos dice que se desea guardar la información relativade la semana en que se realiza cada actividad, Además podemos considerar quetributo admite valores nulos. para contemplar la posibilidad de que a una ciertadad propuesta por un determinado alojamiento todavía no se le haya asignadon día,

ISEÑO DE BASES DE DATOS. I'ROHI.EMAS RESUEI.TOS

Page 81: Diseño de Bases de Datos - Problemas Resueltos

. Las zonas de observación tienen un código de zona que es único. También seqUiere saber el nombre de la misma, la comunidad auténoma a la que pertenece laJlrovin . l' . ,, era y e upo (SI es una laguna. un río. una zona costera, etc.). En cada zona se-ncuentra por lo menos un observador, y si existe más de uno en la misma lonapueden ser de distintas asociaciones ornitológica,. Cada observador está asignado aina determinada lona.

Cada una de estas asociaciones consta de un grupo de personas. los observadores,que Son los que realizan los avistamientos de las distintas especies. De los\1hsen:~dores se requiere su código de observador, el DNI. el nombre complcto y laulrecclon. Además un observador sólo puede estar adscrito a un asociación.

Cada especie de ave esta siempre asignada a un sólo grupo ornitológico.

Existen asociaciones omitológicas de las cuales se quiere saber su nombre. lauirección y el teléfono.

Los grupos ornitológicos clasifican las especies según sus sirnilitudesc~lructura~es. por ejemplo, cl grupo de las zancudas se caracteriza por tener patasI~rgasy pICO largo. Por lo tanto guardaremos información acerca de las patas, dedos yprco.

Cada especie de ave se identifica por su nombre científico. Se desea conocer sunombre vulgar y una hreve descripción de las características más importame, que ladiferencian del grupo omitológico al que pertenece.

Se quiere diseñar una base de datos que contenga información sobre lasobservaciones realizadas a distintas especies de aves en la Península Ibérica. Para ello-c han de considerar las sigu ientes cspecificaciones:

Enunciado

PROBLEMA 2: AVES

(nNlI"'h'< AlllJo'(OTlp,,="D"hl<"(HABITACION) )*(n;>ill"'ort'_/\1",.«REALIZA_AC'rIVIDAD)* nC""'glOA,h' (ONIOmo«_Scndcn",,,,' (ACTIVIDAD»)

,Algebra relacional

WHERE A.Nombre_Acliv = "Senderisrno" AND C.Tipo = "Doble"AND

(B.Codigo_Activ = A. Codigo_Acliv ANOB.Nolnbrc_Aloja = C.NoITIbre_Aloja);

2 I MODELADO RELACIONAL I~IR-\ \lA

'••..•••••.....••••.\,•.'......

;ELECT Distinct B.Nonlbrc_Aloja=ROM Actividad A, RealizaActividad B, Habitacion C

lbre de los alojamientos que tienen habitaciones dobles y realizan acti vidadc­enderismo.

( REALIZA_ACTIVIDAD»

ebra relacional

SELECT A.Nolnbre_Activ, A.DescripciónFROM Actividad A, Realiza_Actividad BWHERE NcmbreAloja = "La Huerta" AND

A.Código_Activ = B.Código_Activ:

nbre y descripción de las actividades que se realizan en el alojamientoominado "La Huerta".

5ULTAS

TE TABLE Realiza.Actividad (:ódigo_Activ Tipo..Código.Nombre Aloja Nombre_ Válido.Día_Semana CHA R( 10).\RY KEY (Código_Activ. Nombre Aloja),:GN KEY (Código_Activ) REFERENCES ActividadJN UPDATE CASCADEJN DELETE CASCADE,'GN KEY (Nombre Aloja) REFERENCES Alojamieruo)N UPDATE CASCADE)N OELETE CASCA DE

TE TABLE Actividad (Código Acitv Tipo_Código,Nombre Acr¡v Nornbrc , Válido NOT NULL.Descripción CHAR(50) NOT NULL.:-.livel CHAR(2) NOT NULL,~RY KEY (C6digo_Acitv),K (Nivcl BETWEEN l ANO lO)

(l KA '"SEÑO DE BASES DE DATOS PROBLEMAS RI'_<;UELTOS

•••.•••.....•'.••.•.

Page 82: Diseño de Bases de Datos - Problemas Resueltos

• e e.· .... :.•• "•••••••• e-•••••••Figura 2.1.5

FAC:;PECIE (NQlllhr~ Científico, Nombrc_ Yulgar, Dcscnpcíón, Crlc!ixn_G

lr-------------------_jln.<.MoC

GRUP()_ORNITOLÓGICO (CódIgo y Nombre, Palas •. Dedos+, PICO*)

Aunque cada especie de ave esté asignada a un único grupo ornitológico, en cada~~upo.puede,? estar .incluidas v~ias especies de ave, por 10 tanto el grupo ornitológico( Códlgo_G) sera clave ajena de la relación ESPECIE, que referencia aGRUPO_ORNITOLÓGTCO, como muestra la figura.

"Cada especie de al'e está siempre asignada a un solo grupo ornitológico ".

De la lectura de este párrafo se deduce una nueva relación1.0NA_OBSERVACIÓN. cuya clave primaria será el código de zona ("Código_Z").

ZONA_OBSERVACIÓN (Código Z, Nombre. Comunidad, Provincia, Tipo)

ANÁLISIS DE LOS SUPUES'fOS SEMÁNTICOS

"UIS :(JI/(lS de observucián tienen 1111código de ;;Ollll '1/11.' ('S único. Ttllllbiéll,'1' quiere saber el nombre de la misma, ,(1 COlllllllidac! autánomn a la que!1t'flL'III'C(', ItI provincia y el tipo (~I es I/IU/ la,l(IIIICI, 1/11río, 11"(/ :011(/ COSIera,

)..etc.. .

()RSJ.:RVADOR «(~ódigo Obs, DNJ. Nombre, Dirección)

Debernos almacenar los observadores en una nueva relación OBSERVADOR enla cual el código del observador ("Código_Obs") será la clave primaria y el "DNI:' laclave alternativa

"Cada una de estas asociaciones consta de un grupo de personas, losobservadores, que son los que realiza" los avistamientos de las distintasespecies. De los observadores se requiere su código de observador, el DNI,el nombre completo y la direccián",

ASOCIACIÓN (Nombre Aso, Dirección, Teléfono)

Tendremos una relación ASOCIACIÓN. donde podremos considerar corno claveprimaria el nombre de la asociación.

"Existen asociaciones onlilnlúgicas de las cuales se quiere saber su nombre,la direccién .Y el telefono ".

GRUI>o_ORNrrOLÓGICO (Código G, Nombre, Patas·, Dedos=. Pico")

2.1 MODELADORELACIONAL153

---_._.

.•'•••••.•

Al tener los grupos ornitológicos características que se desean almacenar en 1<1de datos, debernos introducir una nueva relación GRUPO_ORNITOLÓGICO.

j clave primaria consideraremos que es un código de grupo ("Código_G"). L()~uros "Patas", "Dedos" y "Pito" pueden admitir valores nulos para recoger quenas de estas características no son comunes a todas las aves del grupo.«íucirernos además un atributo "Nombre", que contendrá los nombres de 1o,ntos grupos ornitológicos y que puede ser, por tanto, clave alternativa.

"Los grupos ornitológicos clasifican las especies según sus similitudesestructurales, por ejemplo, el grupo de las zancudas se caracteriza por tenerpatas largas y pico largo. Por lo tanto guardare/nos informacián acerca delas patas, dedos y pico ''.

ESPECIE (Nombre Científico, Nombre_ Vulgar. Descripción)

De este párrafo se deduce que podemos establecer una relación ESPECIE, cuya! primaria será "Nombrc_Científico". Podemos tomar "Nombre_ Vulgar" como! alternativa. pues podemos suponer que este nombre es único.

"Cae/a especie de ave ,\1' identifica flor ~IInombre cienttfico. SI' deseaconocer Sil nombre vulgar l' 1111(1 breve deecrípcién de las caractertsticas lila'importantes que la diferencian de! grupo ornttolágico al que pertenece ".

NTIFICACJÓN DE LAS KI<:I,ACJONIo:S RÁSICAS

Diseñar el esquema relacional. Indicar en él las claves primarias. clavesalternativas y las claves ajenas. De estas últimas especificar los modos deborrado y modificación. Marcar con un asterisco (*) los campos que aceptenvalores nulos.

Escribir las siguientes consultas en SQL y en álgebra relacional:

• Nornbre científico y vulgar de las especies observadas por los observadorespertenecientes a la asociación ornitológica "El Petirrojo"

• Se desea conocer el nombre y la zona a la que están asignados aquellosobservadores activos que no han realizado ninguna observación.

También se desea guardar información acerca de la fecha en la que el observadora una determinada especie, teniendo en cuenta que éstos realizan trabajo deJO cada tres días y que además sólo anotan el primer avistamicnto de unaminada especie por día. Esta información es muy imponante para controlar lascíes de aves que existen en la Península y, por tanto, tendremos que guardar lasrvaciones aunque los observadores ya no se encuentren activos.

DISEÑO DE BASES DE DATOS. PROBLEMAS RESUELTOS

zusión del enunciado

Page 83: Diseño de Bases de Datos - Problemas Resueltos

El supuesto de que los observadores sólo realizan el trabajo de campo cada tresd{¡¡~no es relevante para el diseño de nuestra base de datos.

~nc Como se. desea guarda~ la Información aunque los observadores ya no seuentren acuvos, debernos introducir un nuevo atributo "Situación" en la relación

Se desea guardar ~nformacióD acerca de la fecha en la que el observador divisau~ad.etermlnada es.pecle. Un observador puede divisar varias especies y una mismaeS~le puede ser dlvlsa?a por varios observadores, por lo tanto tendremos una nuevar~'acI~n OBS~RVACION, ~uy~ clave primaria será el código del observador( ,C~(hgo_~bS ), :,' nom~re científico de la especie ("Nombre_Científico") y la fechad~.aVistamiento ( Fecha ), pues un observador puede avistar la misma especie endiferentes fechas (los observadores sólo anotan el primer avistarniento de una espe "por día). ele

. "Tamtnéu se (~I!.\eaguardar in/Uf/nación acerca di' la fecha en la 1/11(' elob.w:n'ador divisa 11110 determinada especie, teniendo el/ cuenta que estosreall;;.all.trabajo de campo cada tres días y C¡1It! además sálo anotan el primeravtstamtento de una determinada especie por día. Esta tnformacián er 11111\'

importante para controlar las especies de aves que existen el/ la Peninsula \'por tanto, tendremos que guardar las obsen'aciones aunque los observa­dores ya 110 se encuentren activos ".

Como cada lona de observación tiene asignada al menos un observador,dchcr(arnos controlar esta cardinalidad mínima con un disparador.

Reglas ECA

La eliminación debe ser restringida para evitar que se borren los observadoresque pertenecen a una zona de observación eliminada (B:R). La rnodificaci6n se puedehacer en cascada (M :C).

Opcionesde horrado y modificación

El supuesto del enunciado que comenta que si existe más de un observador en lanusma zona, pueden ser de distintas asociaciones ornitológicas, no es necesariocontemplarlo, pues pueden ser de distintas zonas o de la misma.

Figura 2. J. 7

..... Z()NA_OBSERVACIÓN (Código Z Nombre, Comunidad, PrOVInCIa, TIpo)

OBSERVADOR (Código Obs DNI, Nombre, Dirección, NOllrbre_As¡1',Cód'go_:),------------------- _j B R.M:C

2 I MODEI.ADO kbLACIONAI. 155

\•••••••••••••••••••.~.........

:olno cada observador está asignado a una zona, el código de zona será clavede la relación OBSERVADOR. que referencia a ZONA_OBSERV ACiÓN.

"En cada ZOfla se encuentra por lo /nenos UIl observador y si existe más deuno en la misma ZOlla pueden ser de distintas asociaciones ornitológicas.Cada observador está asignado a una determinada ZOna''.

..-a eliminación de una asociación ornitológica no debe implicar el borrado enda de los observadores pertenecientes a ella, ya que, como se nos dice másnte, estamos interesados en conservar las observaciones aunque desaparezcan losvadores. Por tanto al admitir la clave ajena nulos podemos optar por un borradouesta a nulos (B:N). La modificación puede hacerse en cascada.

ones de borrado y modificación

:omo se muestra en la figura, "Nombre Aso" es clave ajena de la relación~RVADOR, que referencia a ASOCIACiÓN. Esta clave ajena puede admitirpara recoger los casos de los observadores que no tienen asignada ninguna

ación en un momento dado.

Figura 2./.6

B:N.M:COBSERVADOR (Código QhS DNI, Nombre, Dirección, No", re_As"')

ASOCIACiÓN (Nonlbre Aso, Dirección, Teléfono)

• 'i 1Iasoclaccon .

"Cada una de estas asociaciones consta de un grupo de personas. losobservadores. que SOIl los que realizan los avistamientos de las distintasespecies.: Además UIl observador s610 puede estar adscrito a UIl

)i se exigiera que en nuestra base de datos todo grupo ornitológico tuviera als una especie de ave, esta cardinalidad la deberíamos controlar mediante unrador.

lSECA

~l borrado y la modificación de la clave ajena "CódigoG" puede hacerse enda (B:C.M:C), pues si desaparece un grupo ornitológico desaparecerán todas lasies que pertenezcan a él.

ones de borrado y modificación

)ISEÑO DE BASES DI::DATOS' PkOBLEMAS RESUELTOS

Page 84: Diseño de Bases de Datos - Problemas Resueltos

CREATE TABLE Observador (Código_Obs 'fipo_CódigoDNJ CHAR(9) NOT NULL.Nombre CHAR(40) NOT NULL.

Figura 2./.9

--------, S:R.M:(, I [j·R.M:C

8SERVACIÓN( CÓdigo Qb$,Nntnbre Cie,ll/fOc(! Fecha)

)NA_OBSERVACJÓN (Código Z. Nombre, Comunidad, Provincia. Tipo)

B·N.M:CBSERVAOOR(Código Ob$ DNl Nombre. Dirección,Nofllbre_Asff.Cix1igo_Z: Situación¡______________________ J_jiB:R.M:(

CREATE TABLE Zona_Obscrvación (Código_Z Tipo_Código ,Nombre CHAR( 15) NOT NULL ,Ciudad CHAR(20) NOT NULL ,Provincia CHAR(20) NOT NULL. ,Tipo CHAR( 15) NOT NULL,

PRIMARY KEY (Código_Z)1:

RUPO_ORNJTOLÓCJCO:Código G Nombre, Pala);",Dedos", Pico*)CREATE TAa LE Asociación (

Nombre_Aso Nornbre , Válido.Dirección CHAR(50) NOT NULL,Telefono CHAR(9) N01' NlJLL,

PRIMARY KEY (Nombre Aso)) :

,SOClACJON(Nombrc Aso, Dirección. Teléfono)

I:SPECfE( NQmbre C'lentífico,Nombre_ Vulgar Descnpción. CtK/¡gll_G)------------ __J IlC.M (

borrado y la modificación de cualquiera de las claves ajenas debe serjo, pues en el enunciado se nos dice explícitamente que se desean recoger I()~entes aunque el observador ya no esté activo, y esto implica que tampoco seirninar especies con observaciones.

CREATE TABLE Especie (Nombre_Científico Nombre , Válido,Nombre_ Vulgar Nombre_ Válido NOT NULL,Descripción CrIAR( 100) NOT NlJLL,Código_G 'ripo_Código ,

PRIMARY KEY (Nornbre_Científico).UNIQUE (Nombrc , Vulgar),FOREIGN KEY (Código_G) REFERENCES Grupo_Ornitológico

ON UPDATE CASCADEON DELETE CASCADE

IRELACIONAl.

~ de borrado y modificación

ERVADOR(C6digo Ob§ ONl, Nombre, Dirección, NOII¡[1"1'_A.~(/*,CÓdign_Z Situación)

---------,1 S·R.M:(_, I S:R.M·(

,RVACJÓN (Códign Ob:¡Nombre Cielltífico, Fecha)

"ECfE (Nombre Científico Nombre_ Vulgar Descripción. Ccídign_G)CREATE DOMAIN Nombre_ Válido CHAR(60):CREATE DOMAIN Tipo_Código CHAR(5):CREATE DOMA IN Tipo_Situación CHAR(l{)CHECK (VALUE IN ('Activo', 'Inactivo'j);

CREATE TABLE Grupo_Ornitológico (Código_G 'ripo_Código .Patas CHAR(20),Dedos CHAR(20),Pico CHAR(20).

PRIMARY KEY (Código_G)1:Figura 2.J.8

SCRIPT EN SQL_92VADOR, que nos permita saber si un determinado observador está en activo or tanto solo podrá tornar dos valores' Acii ve' o '1nací ive' .

:ÑODE llASES DI DATOS PROBLEMAS RESUI:1. ros2.1.MODELADO RELA( ·IONAl. 157

I •.'••.••••......

Page 85: Diseño de Bases de Datos - Problemas Resueltos

- Diseñe el csquerna relacional. Indique en él las claves primarias, clavesalternativas y las claves ajenas. Oc estas últimas especifique los DIOdos deborrado y modificación. Marque con un asterisco (*) los campos que aceptenvalores nulos.

- Efectuar en álgebra relacional y en SQL las siguientes consultas:

Los pintores pueden tener también uno o varios mecenas que los protegen(nombre, país y ciudad de nacimiento, fecha de su fallecimiento, y fecha en que seinicia y termina el mecenazgo). A su vez un mismo rnecenas puede serlo de variospintores. Se desea recoger la relación que existe entre un pintor y su mecenas.

Los pintores pueden pertenecer o no a una escuela de la que se desea saber sunombre y en qué país y fecha apareció.

Cada cuadro es pintado por un determinado pintor (nombre, país, ciudad, fecha denacimiento y fecha de fallecimiento). Un pintor puede tener a otro como maestro; a suvez, un maestro puede serlo de varios (o de ninguno).

Cada pinacoteca tiene una serie de cuadros de los que se quiere guardar sucódigo, nombre, medidas, fecha en que fue pintado y técnica utilizada para pintarlo.

De cada pinacoteca se desea saber el nombre (que se supone único), la ciudad enla que se encuentra. la dirección y los metros cuadrados que tiene,

El Ministerio de Educación y Ciencia desea mantener información acerca detodos los cuadros que se encuentran en las pinacotecas españolas y toda la informaciónrelacionada con ellos.

Enunciado

PROBLEMA 3: PINACOTECAS

n Nombre. Código Z (OBSERV ADOR) * (I1Cód•EO_Ob,(oSlIua<ll'ln='acl."u·(OBSERVADOR») * nCexhgo_Obs (OBSERVACIÓN))

Álgebra relacional

SqlSELECT Nombre. Código_ZFROM ObservadorWHERE Situación = "activo" AND

Código_Obs NOT TN (SELECT DISTINCT C6digo_ObsFROM Observación);

2.1 MODI::.1.ADORELACIONAL 159

n Nombre Cicnufic«, Nllmhrc_Vulgar (ESPECIE) * n N'>lllbrc_Cielllílic"

«OBSERVACiÓN) * (1tCód.go_Obs (ONtllllhrc .A,<)~'EI peIllTo.lo,(OBSERVADOR»»)

Se desea conocer el nombre y la zona a la que están asignados aqllello~observadores activos que no han realizado ninguna observación.

Álgebra relacional

SqlSELECT DIS1'lNCT E.Nombre_Científico, E.Nolnbre_ VulgarFROM Especie E. Observación Ob, Observador O .,WHERE Ob.Código_Obs = O.Código_Obs AND Ob.NombreCientffico =

E. Nombre_Científico AND O.Nombre_Aso ="EI Petirrojo"

Nombre científico y vulgar de las especies observadas por los observadorespertenecientes a la asociación ornitológica "El Pelirrojo",

ONSULTAS

tEATE TABLE Observación (Código_Obs Tipo_Código ,Nombrc_Científico Nombre , Válido,Fecha DATE,

~MARY KEY (Código_Ohs, NombrcCiernffico. Fecha),)REIGN KEY (Código Dbs) REFERENCES Observador

ON UPDATE CASCADE,)REIGN KEY (Nombre_Científico) REFERENCES Especie

ON UPOATE CASCADE

Dirección CHAR(50) NOT NULL,Nombre Aso Nombre Válido.- -Código_Z Tipo_Código NOT NULL,Situación Tipo_Situación NOT NULL,

JMARY KEY (Código_Obs),.fiQUE (DNI),IRElGN KEY (NombreAso) REFERENCES Asociación

ON UPDA TE CASCADEON DELETE SET NULL,

IREIGN KEY (Código_Z) REFERENCES Zona_ObscrvaciónON UPDATE CASCADE

DISEÑO DE BASES DI: DATOS' PROBLEMAS RESlIl:1.TOS

•••••••••"••.".•.'..... '.

Page 86: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••~ •••••••••

Figura 2.1.10

II:R.MC

CUADRO (CÓdigo ~ NOlnbrc_C, Medrdas, Fecha", Técnicll,No/llbrt'_P)

PINACOTECA (Nombre P,Ciudad_P, Dirección_P, MelrOS_P)

~odelnos suponer que un cuadro no puede estar en varias pinacotecas a la vez, decxta forma podemos introducir "NombreP", como clave ajena en la relaciónCUADRO y evitar los grupos repetitivos que se producirían en el caso de introducir el,ódigo de cuadro como clave ajena de la relación PINACOTECA.

"Cada pmaroteca tiene una serie de cuadros de IOJ que se quiere guardar .1'11

cádigo, nombre, medidas, fecha 1'1/ que fue pintado ." técnica utilizada parapintarlo ."

\ 'lÁLISIS DI<::LOS SUPUI<:STOS SEMÁNTICOS

Tanto PIN"r()R corno ESCUELA y MECENAS hacen referencia a países, paraevitar anomalfus de inserción y modiñcacíon, podría pensarse en crear una relaciónPAIS, con lo que !>ctendría un esquema más normalizado, algo parecido sucedería con1,1' ciudade-, de las cuales habría de registrarse además su dependencia de los países,

MECENAS (Nornbre M, País_M, Ciudad_M, Fecha.Fallecimiento, rccha_Ini*,~ccha_¡';in*)

Se desea recoger todas las características de los mecenas que protegen a losartistas de nuestra base de datos, por lo que debernos construir la relación MECENAS,con clave primaria el nombre C'Nombre jvf") pues, como no se nos dice nada,pOUelT10Spensar que es único. Además, y al igual que en la relación PINTOR. la fechade comienzo ("Fecha_Ini") y la fecha de fin C'Fecha Fin''), pueden admitir valoresnulos,

"/..0.1 puuores pueden tener tambien 1/110 (1 varios mecenas que 10.\ protegen(nombre, país y ciudad de nacimiento, fecha de ~u[allectmtento. y fecha enque se imcia y termina el mecenargo¡ ......

ESCUELA (Nombre E, País_E, Fecha_Aparición)

Esta frase implica la creación de una nueva relación ESCUELA, cuya claveprimaria es el nombre de la escuela C'Ncmbre E"). Podría pensarse en considerar laclave primaria formada por Nombre y País, pues por ejemplo el Impresionismo puedeser francés o inglés, dando lugar al Impresionismo Francés y al Impresionismo Inglés.pero supondremos que en el nombre de la escuela ya almacenamos estas variantes.

_!oH.:..' ~:::.I~::._ __,2!.:..!_1.!!M~(!!.)I)!!I!::!:L~ADO K f-:LACION A L 161

•••••••••• ~ ••••••••

..Los pintores pueden pertenecer o 11(/ {/ tilia escuela de la que se desea sabersu nombre y 1'11 (/1Ié paú v [echa apareció ."

PINTOR (Nombrc_PI, Pafs Pt, Ciudad_Pt, Fccha_N*, f'ccha_F*)

Para conocer al artista que ha pintado cada cuadro debemos construir una nuevaión PINTOR, en la que, como no se nos dice nada en contra, podernos considerarIombre" como único y por tanto clave primaria de la relación.

Si consideramos que la Fecha de Nacimiento ("Fecha_N") y la Fecha decimiento ("Fecha_F") de cada pintor pueden ser desconocidas, estos atributo'ten valores nulos.

"Cada cuadro es pintado por 1111 determinado pintor [nombre, país, ciudad,fecha de nacimiento y fecha de faltecimiento J ...

CUADRO (Código C, NombrcC, Medidas, Fecha*, Técnica)

Tenemos la relación ('UAI)RO en la cual, corno no se nos dice nada, suponcmo­:1 atributo que identifica a cada cuadro es un código de cuadro (..Código_C ....).lás podría ser que no se supiera la fecha exacta en la que fue pintado el cuadro,) que considerarnos que el atributo "Fecha" puede admitir nulos:

"Cada pinucotecu tiene ,",a serie de cuadros de /0.1' que se quiere guardar ,\11

código, nombre, medidas, [eche en que lite puuado l' técnica utilizada parapintarlo. ..

>INACOTECA (Nombre P, Ciudad_P, Dirección_P, Metros_P)

)e este primer párrafo se deduce una relación PIN ..<\COTECA en la que elre ("Nomhre_P") es el atributo identificador principal:

, ..tiene.

..De cada pinacoteca se desea saber 1'1nombre (que se supone único J. laciudad en la que se encuentra. la dirección :v los metros cuadrados que

rTIFICACIÓN DE I,AS RI<:LACIONES BÁSICAS

usién del enunciado

• Pintor que pintó el cuadro llamado "Saturno devorando a uno de sus hijos"yen qué pinacoteca se encuentra.

• Nombre y país de nacnrueruo de los mecenas de pintores pertenecientes ala Escuela de Florencia

ISEÑO [lE BAShS nI-' nA roS PKOBII'MAS KI·$lIEI.TO~S:__ ...::'):.::K::.!'\...::.\I'.

Page 87: Diseño de Bases de Datos - Problemas Resueltos

,IPII~deeleuirse eSI' ' • I ' ,e .1 operen. pues a clave ajena admite valores nulos

No se debe permitir eliminar los pintores pertenccientes ., una escuela desta sc climi d . u , cuan ocum .c e Inlln~ .. e !~base de datos, por tanto el borrado es restringido (B:R)' en~ bio la modlh~aclon de una escuela debe permitir 1<1 rnoditicación en cascada cid lospIntores pertenecientes a ella (M:C), '

Figura 2,1.13

Opciones de borrado y modificacjón

ESCUELA (Nombre .5 Paí,_E. Fecha_Aparicitín)

""NT()R (,Nombro?PI. Paí'_PL CiudadPt, FechaN", Fecha_F·, Numbre_Mac'lro*. NOl1lbre_f.'*)

r-----------------------------------_jl B,N,M e:

Los pintores pueden pertenecer o no a una escuela y no se nos dice nada acerca~eque un ~~,lltorpueda pertenecer a varias escuelas, por lo tanto podemos considerar~ornbre_E corno clave ajena, que admite valores nulos, de la relación pintor quereferencia a ESCUELA, .

..Los pmtores pueden pertenecer o 110 II una escuela de la iJlle se desea sabersu nombre r en qué pats yfecha apureciá, "

, C0l110 un ,~intor puede ser maestro de otro pintor, si elirninamos un pintor, nodcbcr~os permiur que se borre al maestro, por lo tanto 'el borrado es con puesta a nulos(B:N)_I,

Figura 2,1./2

Opciones de borrado y modificación

PINTOR (Nombre Pt. PaísPt, CiudadP; Fecha_N., Fecha_F., NOfl1bre_Maestro*)L-- _j Il:N,r.I:C'

, Todo maestro es ,un pintor y por tanto sus características (atributos) son losnusmos que los del pintor. Estamos ante una relación reflexiva, Introducimos un~tnbuto "N~mbre_Maestro:·. cuyo contenido es el mismo que el del atributoNornbre_Pt . Corno cla~e ajena de la relación PINTOR. que se referencia a sf rnisrna.Además. corno cada pmtor puede o no tener a otro corno maestro el atributo"Nombre_Maestro" puede tomar valores nulos, •

'R~:::M~h-- _llJ~~~~~~~~~~2.1 MODFI.ADO KELAC'IONAI. 163

"~e••••••••••••• '••• '. ~ • ".".-- ......

.,Un pintor puede tener a otro CO/1I0 maestro: (1 su vez. un maestro puedeserlo de varios (o de niIlRlIlIo),"

Se deberla controlar mediante un CHECK, que la fecha de nacimiento de I()~iíntores siempre sea anterior a la fecha de fallecirnienlO .

~estricciones de rechazo

Al igual que en el caso anterior. necesitaríamos disparadores para controlar que:odo pintor tenga al menos un cuadro,

~egLasECA

No se debe permitir eliminar un pintor de nuestra base de datos, mientras existanuadros de ese pintor en alguna de las pinacotecas almacenadas, por tanto el borradolebe ser restringido (B:R), Sin embargo la modificación debe realizarse en cascadaM:C),

Jpcíones de borrado y modificación

Figura 2.1.11

._. PIN'fOR (t-!Qlllbr...J'll'a(s_PL Ciudad Pt, Pl'cha_N*, Fecha_F'")

CUADRO (Código e Nornbre_C, Medidas, Fecha", Técnica, NO,1IiJl'e_P,Nombre Pt;K'K,M:('

Del análisis de esta frase se deduce que un cuadro no puede ser pintado por máse un pintor, por lo que "Nombrc_Pt" es clave ajena de la relación CUADRO, queeferencia a la relación PIN'fOR,

"Cada cuadro es pintado por 1111 determinado pintor (nombre. país, ciudad,fecha de nacimiento y fecha de fallecimiento)."

Deberíamos controlar mediante disparadores, que todo cuadro pertenezca siempreuna pinacoteca,

.eglas ECA

No se permite eliminar una pinacoteca mientras existan cuadros en ella (B:R)demás si modificamos (bien sea por inserción o por actualización) los datos de unainacoteca, deben poderse modificar en cascada lodos los cuadros de laorrespondíeme pinacoteca modificada (M:C),

peiones de borrado y modificación

... DISEÑO DE BASES DE DATOS, PROBLEMAS RESUELTOS

Page 88: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••••

SCR.rPT EN SQL_92

(:REA:E DOMAIN Nombre_ Válido CHAR(40);( RF.Ars DOMAIN Tipo_Código CHAR(5);

('REATE TABLE Pinacoteca (Nombrc_P Nombre VálidoCiudad_P CHAR(20) NOT NuLLDirccción_P Cl-IAR(20) NOT NULL •

Figura 2.1.15

MECENAZGO (Nombre PI, Nombre M, Relación. Fechajni", Fecha_Fin')

Nombre _E· )11 r-..M ('

[n R.M

Lo.: ~ PINTOR (~mhr, ~l. Pa"yL. Cn,dudj'l l'echu_N' . l-'echa_F·. N(lmble_Mtl~,lIro'.ON.\I(

4 ESCUELA (Nombre E. Paí,_E. Fecha_Apanción)

~ I'vIECENASiliombre M País_Iv!. ClUuad_M. FechaFallccirmemoj

I R:I<.M.C .R.R.M.C

n K.•\I eCUAI)RO (C6diso C. Nombre.C, Medidas. Fet'ha·. Técnica. NO/l,bl'('_)'NO/l,br('_ft)

(

PINAC()TF.CA (Nqmnre p.Ciullad_P, DirecciónP. Metros P)

GRAFO REI,ACIONAL

También debe.ríamos controlar con un CHECK que la fecha de inicio delmecenazgo es antenor a la fecha de terminación del mismo,

Deberíamos cont~olar mediante una ASERCIÓN que las fechas de inicio y fin delmecenazgo sean amenores a la fecha de fallecimiento del mecenas.

Restricciones de rechazo

Como se ~~sea guardar la relación existente entre el pintor y su mecenas, nodebernos permiur el borrado en cascada en la relación MECENAZGO cs d Id . . . , el> eClr. ehorr~ o d.e.be ser restringido (B:R). Al no decir el enunciado nada en contra, lamodificación debe hacerse en cascada (M:C) .

Opciones de borrado y modificación

__________________ ~1:J...I MOI)I-'I.i\OO RELACIOi':¡\L 165.1 k"- \tA.

••••••••••••••••••••

Figura 2./.14

11K.M.e n K.M.C'

MECENAS (Nombre M Paf~_M.Ciudud_M, Fecha_Falleclmienlo. Fech:lJJj+,Fecha_Fin*)

_. PINTOR (Nonlbre.,Pt. País..,Pt.CiudadPt, Fecha_N·, FechaF", Nombre_Maestro", Nornbre.E"

Nuestra opción ha sido considerar que un mecenas puede serlo en distinto,eríodos ("Fecha_lni", "Fecha.Fin" atributos de la relación MECENAZGO), pero noe un mismo pintor (clave primaria formada por "NombrePt" y "Nombre jvl").

Además, en un principio se consideró las fechas de inicio y finalización delccenazgo como atributos propios de la relación MECENAS, lo que significa que uncccnas s610 puede serlo en un determinado período. Pero si quisiésemos que1 mecenas lo pudiese ser en distintos períodos de tiempo, deberíamos considerar:echa_lni", "Fecha Fin" corno atributos de la relación MECENAZGO. Es más. '1iponemos que un mecenas puede serlo de un mismo pintor en distintas fecha'.:;echa_lni", "Fecha Fin" deberían formar parte de la clave prirnaria.

Corno se desea guardar la relación existente entre cada pintor y su mecenas,bemos crear un nuevo atributo "Relación" en la relación MECENAZGO.

Como un pintor puede tener a varios como mecenas y además un mecenas puede'Jo de varios pintores, debemos introducir una nueva relación (relación intermedia)ECENAZGO, donde la clave primaria estará formada por las claves primarias de la~aciones PINTOR y MECENAS (HNonlbre_Pt", "Nombre_M"), y de esta formaitar grupos repetitivos en las dos relaciones principales. Cada uno de estos dos-ibutos son clave ajena de sus respectivas relaciones.

..Los pintores pueden II'IIer también "no (1 varios Inecellal que 10l protegen(nombre. país y ciudad de lIa(·IItlleIIlO. fecha de Sil [allecimiento, y fecha 1'11

que se inicia y ler"lIlla el Inecella::.go).A Sil vez 1111 mismo meCell(lf puedeserlo de varios pintores. Se desea recoger la relacián que existe entre 1111

pintor y Sil mecenas ."

Deberíamos controlar mediante una ASERCIÓN que la fecha de aparición de unauela fuese anterior a la fecha de fallecimiento de los pintores pertenecientes a ella.

itricciones de rechazo

...QI.SEÑO DE B/\SES DL, OATOS I'IH)BLEMAS RhSUELTOS

Page 89: Diseño de Bases de Datos - Problemas Resueltos

2. Nombre y país de nacimiento de los mecenas de pintores pertenecientes a laEscuela de Florencia.

SqlSELECT Nombre Pt,Nombre_PFROM CuadroWHERE Nombre_C = 'Saturno devorando a uno de sus hijos';

Álgebra relacional

1. P,intor que pintó el cuadro llamado "Saturno devorando a uno de sus hijos" y en quéptnacoteca sc encuentra ..

CONSULTAS

CREATE Assertion Fecha_MecenazgoCHECK (NOT EXlSTSSELECT" FROM Mecenazgo NATURAL JOIN MecenasWHERE fechafallecimiento» FechaJnil):

);

CREATE TABLE Mecenazgo (Nornbre_M Nombre_ Válido,Nombre_Pt Nombre_ Válido.Relación CHAR(IO) NOT NULL,Fecha_lni DATE,Fecha_Fin DATE,

PRlMARY KEY (Nombre_M, Nombre_Pt),CHECK (Fecha Ini.c Fecha_Fin),FOREIGN KEY (Nombre_M) REFERENCES TO Mecenas

ON UPDA TE CASCADE,FOREIGN KEY (Nombre_Pt) REFERENCES TO Pintor

ON UPDA TE CASCADE

);

Nombre_P Nombre_ Válido,Nombre_Pt Nombre_ Válido,

PRlMARY KEY (Código_C),FORElGN KEY (Nombre_P) REFERENCES Pinacoteca

ON UPDA TE CASCADE.FOREIGN KEY (Nombre_Pt) REFERENCES Pintor

ON UPDATE CASCADE

2.1' MODELADO RELACIONAL 167ORA 'lA

REATE TABLE Cuadro (Código_C Tipo_Código,Nornbre_C Nombre_ Válido NOT NULL,Medidas lNTEGER NOT NULL.Fecha DATE NOT NULL.Técnica CHAR(20) NOT NULL.

REATE ASSERTION Escuela; válidaHECK (Not exists)

( SELECT * FROM pintor NATURAL JOIN EscuelaWHERE Nombre_E<> NULL ANO Fecha> Pccha Nj):

<EATE TABLE Pintor (Nombre Pt Nombre Válido,_ _Pais_pt CHAR(15) NOT NULL.Ciudad_Pt CHAR(20) NOT NULL,Fecha_N DATE NOT NULL,Fecha_F DATE NOT NULL,Nombrc_M Nombrc_ Válido,Nombre E Nombre Válido._ _

<IMARY KEY (Nombre_Pt},HECK ( PechaNcfecha F),)REIGN KEY (Nolnbre_M) REFERENCES Pintor

ON UPDA TE CASCADEON DELETE SET NULL,

)REIGN KEY (NombreE) REFERENCES EscuelaON UPDATE CASCADE

!.BATE TABLE Mecenas (Nombre M Nombre Válido,_ _País_M CHAR(15) NOT NULL,Ciudad_M CHAR(20) NOT NULL,Fecha_Fallecimiento DATE.

!lMARY KEY (Nombre jM)

BATE TABLE Escuela (Nombre_E Nombre_ Válido,País_E CHAR( 15) NOT NULL,Fecha DATE NOT NULL,

JMARY KEY (Nombre E)

Metros_P lNTEGER NOT NULL,lMARY KEY (Nombre_P)

DISENO DI:: BASES DE DATOS: PROBLEMAS RESUELTOS

Page 90: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••••••••••••

~stamos considerando que el atributo "Nornbre" contiene no sólo el nombre sino(JlI1b' I 11' . 'ren os ape Idos del Juez, y suponemos que no hay jueces con exactamente el

. Se p:ccisa una relación JUEZ que recoja la información de los jueces encargados~c.'nvc~lIgar los casos de corrupción, los atributos de esta relación serán "Nombre",[)r~ec,clón","FcchaNac" y "Fccha_Ejer". Si considerarnos que la dirección, fecha der~aCllnlento,y fecha de ejercicio de un juez pueden ser desconocidos, los,orrcspondlentes atributos podrán tornar valores nulos.

•Cada caso es investigado por IIn juez del que se desea saber su nombredireccián. fecha de nacimiento y fecha en que comenzo a ejercer. Una ve~concluida la investigacián del caso el/liten un dictamen que se registrará,"

CASO (Cód, Nombre'. Descripción, Millones')

Para recoger In información acerca tic los distintos casos de corrupción, se crearála relación CASO que tendrá los atributos "Nombre" (nombre del caso de corrupción),Descripción" (descripción del caso) y "Millones" (estimación de millones desviados).

La clave primaria de esta relación es el atributo ("Cód"). El atributo "Nombre"puede tornar v~.lores n~los en el caso de que aún no se le conozca públicamente pornrngu~o, t~mblen podna tornar valores nulos el atributo "Millones" en el caso de quela estimación no se haya podido realizar, por último, supondremos que el atributoDescripción" no tomará valores nulos. Tampoco podrá tomar valores nulos el atributo'(.'00"dado que constituye la clave primaria de la relación.

"1)1.'cada caso de corrupcián se desea saber Sil código, nombre por e/ qUI? sele COIlOrl:, 'lila breve descripción y una estimacián de los millones que SI' handesviado ."

IOEN'fIFICACIÓN DE LAS RELACIONES BÁSICAS

Discusión del enunciado

Diseñe el esquema relacional. Indique en él las claves primarias, clavesalternativas y las claves ajenas indicando las opciones de borrado ymodificación, Marque con un asterisco (*) los campos que acepten valoresnulos.

_ Efectuar en álgebra relacional yen SQL las siguientes consultas:

Implicados (y partidos en que militan) en el caso "XXX".

Casos descubiertos por los periódicos afines al partido "YYY".

Jueces que investigan casos en los que hay implicados miembros del partido"YYY".

2.1' MODELADO RELACIONAL 169I RA \1;\

t •••••••••••••••••••

Nótese que hCII10S supuesto "l -lorencia .. como nombre de escuela

Cada caso de corrupción es descubierto por un periódico (nombre, dirección ~rada) en una fecha determinada, que se desea saber, Cada periódico puede tener 011(1

na afinidad con un partido político (por otro lado un partido político puede tcrll'lfinidad con varios periódicos o con ninguno).

Estos ciudadanos pueden O no pertenecer a un partido político determinado y. ;1

eces, desempeñan un puesto en él. De cada partido quiere conocerse su norllhrc.irección de la sede central y teléfonos,

En cada caso hay una serie de ciudadanos implicados. cada uno de ellos con unugo principal determinado en el momento en que se produjo el caso. De cada uno de.tos se desea conocer su DNl, nombre, dirección y patrimonio.

Cada caso es investigado por un juez del que se desea saber su nombre. dirección.cha de nacimiento y fecha en que comenzó a ejercer. Una vez concluida 1;1vcstigación del caso emiten un dictamen que se registrará.

De cada caso de corrupción se desea saber su código. nombre por el que se il'-noce, una breve descripción y una estimación de los millones que se han desviado.

La asociación internacional "Voto Blanco", tras una larga labor de investigación,logrado obtener valiosa inlonnación acerca de los numerosos casos de corrupción

le se están dando en un país imaginario. Para tenerla toda ordenada y accesible va aepatar una base de datos que contenga todos estos datos.

nunciado

ROBLEMA 4: CASOS DE CORRUPCIÓN

gebra relacional:

SELECT Nombre M, País_MFROM MecenasWHERE Nombre_M IN(SELECT Nomhre_M I¡ROM MecenazgoWHERE Nombre_Pt IN (SELECT Nombre_Pt

FROM PintorWHERE Nombre_E~l = 'Florencia'):

I

DISEÑO DE BASES DE DATOS: PROUI.EMAS RESUELTOS

Page 91: Diseño de Bases de Datos - Problemas Resueltos

En principio. no serían necesarias con las hipótesis consideradas ahora bien sipor Con . '> di" " . Iocinuento e universo de discurso para el que se desarrolla el sist dIilforma .Ó di - l. ema eCI n pu lera afirmarse que todo caso que se registra en el mismo tiene

Reglas ECA

. Las opciones de integridad referencial podrán ser en el caso del borradocualquJera salvo en cascada (no tiene sentido que al borrarse un juez se borren los~asos de corrupción que éste investigaba) y en el caso de la modificación será en'cascada.

Figura 2. J. J6

Opciones de borrado y modificación

CASO (OXJ. N:ni:re', D=i¡rién Mllale;*, Nlllnl'l' .J11f!'¿Nalhre _Pe/iódia¡ fu:ha_D:sc.l.lC1llTlUl*)

r--------------..J O·R.MC

Es preciso .relacio?ar los casos de corrupción con los jueces que los investigan.Para ello es SUfl.clcnte Informar en cada caso de corrupción del juez que lo investiga.lo que s~ lo~ra, Incluyendo c~ la relación. CASO un atributo "Nombre Juez" que seráuna clave ajena que referencia a la relación JUEZ. Puesto que al descubrirse el casopuede que no ~aya sido asignado a ningún juez, este atributo podrá tornar valoresnulos. ~ara registrar el re~ultado de la investigación de cada caso habrá de añadirse ala relación CASO otro atributo "Dictamen" que podrá admitir valores nulos en tanto ycuanto no haya concluido la investigación.

•Cada caso es investigado por U/I juez del que se desea saber su nombredirecci~ll. fecha de nacimiento y fecha en que co/nenzó a ejercer. Una ve~conchuda la investigacián. del caso emiten fUI dictamen que se registrará '."

PERIÓDICO (Nombre, Dirección. Tirada')

ANÁLISIS DE LOS SUPUESTOS SEf\1ÁNTICOS

Para recoger la información sobre los periódicos, se requiere una nueva relaciónPERIÓDICO, SlIS atributos son "Nombre", "Dirección", y "Tirada", su clave primariaes el.atributo "Nombre" y el atribulo "Tirada" es el único que admite nulos para poderreflejar los casos en los que se desconozca su valor,

lado un partido político puede tener afinidad COtl varios periódicos o contIlIlXIIIIO)."

2.1: MOOELADO RELACIONAL 171

•Cada ('elSO de corrupción es descubierto por u/! periódico (nombre,dtreccián V tirado) en una fecha detentlineula que se desea saber. C"dapertádico ¡,¡¡ede tener o no II/Ia afinidad con l/ti partido político (por otro

PARTIDO (Nornbre, Sedc_Central)

Se precisa la creación de una relación PARTIDO que permita recoger la=ormación acerca de los partidos políticos. Los atributos que incluiremos en esta.ación serán "Nombre" y "Sede_Central" (dirección de la sede central que se supo~ríca). dado que un partido podrá tener varios números de teléfono. éstos no p~rancogerse introduciendo un atributo en esta relación, para recogerlos se preclsanlcluir una nueva relación quc se considerará posteriormente cuando analieemo.~ 1(1'puestos semánticos. La clave primaria de la relación PARTIDO será el atributo[ornbre", supondremos además que la "Sedc_Cen tral" no admite valores nulos.

"Estos ciudadanos pueden O no pertenecer a 1111 partido político determinadoy. a veces, desempeñan I/n puesto en él. De cada partido quiere conocerse sunombre, dirección de la sede central y relé'fonos. "

CIUDADANO (DNI, Nombre, Dirección', Patrimonio')

Para recoger la información de los ciudadanos implicados se introduce una nuevaación CIUDADANO que contendrá los atributos "DN1". "Nombre". "Direcci 6n" yurimonio", la clave primaria será "DNI". Puede suponerse que tanto la direcciónno el patrimonio admiten valores nulos por ser éstos desconocidos.

•En cadel caso hay una serie de ciudadanos implicados, cada uno de elloscon un cargo principal detenninado en el momento en que se produjo elcaso. De cada U/lO de estos personajes se desea conOcer su DNI, nombre.di rección y patrimonio."

Los dictámenes que emite cada juez no podrían recogerse en esta relación, puesrecesitaría un atributo que admitiera varios valores, lo que en el modelo relacionales posible. Más adelante daremos solución a este problema.

10 nombre y apellidos, por lo que la clave primaria podrá ser este atributorbrc" que bajo la anterior suposición identificará unívocamente a cada uno de loses, Si no estableciéramos esta hipótesis, deberíamos proporcionar un medio detificación alternativo para cada uno de los jueces, asignándoles un código. ya sea.rado arbitrariamente o fijado por alguna organización (por ejemplo, con su DNI ogo de colegiación en el colegio de abogados), o bien. por último, mediante unabinación de campos cuya coincidencia para diferentes jueces sea prácticamenteasible (por ejemplo, con el nombre y la fecha en que comenzó a ejercer).

JUEZ (Nombre, Dirección', Fecha_Nac·. Pecha Ejer)

DISEÑO DE BASJ:S DE DATOS: PROBLEMAS RESUEI TOS

~.' •••••••• ~I ••• •••• '••

Page 92: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••,\

SI bien 110 todo CIUdadano. si al menos todo ciudadano desde In perspectiva del dominio deIIll'l'e, al sistema de mformacrón que se está desarrollando.

Figura 2.1.18

I~PART'DO (Nombre, SedeCenrral}

CIUDADAN() (DNI. Nombre. Dirección". Patn.omo=, Nombre_Partido·, Puesto»6 "l. ,,('

Existe una relación de pertenencia entre los ciudadanos y 10'\ partidos políticos.para reflejar esta relación. recogeremos para cada ciudadano el partido al quepertenece (único, en caso de que pertenezca a alguno) y el puesto que ocupa en elmismo (único. en caso de que ocupe alguno), lo que supone añadir a la relaciónCIUDADANO dos nuevos atributos "Nombre Partido" y "Puesto". ambos admitiránvalores nulos y "NombrePartido" será una clave ajena que referencia a la relaciónPARTIDO.

"Estos ciudadanos pueden o tia pertenecer a 1111 partido politico determinadoy. (/ veces, desempeñan U/lpuesto I!/I él. De cada partido quiere conocerse .~II

nombre, direcrián de la sede central y teléfo/los. H

Si se exigiera la condición de que en todo caso hay ciudadanos implicados. estacondición debería controlarse de alguna manera. sin embargo, los implicados en uncaso podrían no ser inicialmente conocidos, por lo que no es preciso asegurar estasemántica. Por el contrario, cualquier ciudadano en la BD lo estará corno consecuenciade haberse visto implicado en un caso. por lo que todo ciudadano" está implicadonecesariamente en al menos un caso. Esta semántica (o al menos, parle de la misma)se puede recoger mediante disparadores dentro de la propia BD, por ejemplo. deberíaImpedirse el borrado del último caso en que se ha visto implicado un determinadociudadano.

Reglas ECA

Las opciones de integridad referencial de ambas claves ajenas podrán ser las deborrado. tanto en cascada como restringido dependiendo de la semántica pretendida(no podrán ser ni nulo ni por defecto pues ello podría violar las condiciones de la claveprimaria en la relación IMPLICADO). por su parte la de rnodificacién en ambos casos,crá en cascada.

Opciones de borrado y modificación

2.1: MODELADO R~I.A('JONAL 173., K;\ ¡\1A

~ . ~•••••••Figura 2././7

IMPLICAO() «('ód

~========;--~-Iue M'('n,c,M C'

7"so, f>NI ('¡¡,dada/lO, Cargo")

... CIUDADANO (Qt:!l. Nombre. Dirección", Patrimonio»

.. CASO «úd. Nombre'. Descripción. Millones", Nombrejuez, Dictamen")

Los atributos de la relación IMPLICADO serán "CódCaso", "DNI_Ciudadano·• "Carao". la clave primaria estará compuesta por los dos primeros atributos que aliernpo serán claves ajenas. la primera referencia a la relación CASO y la segundaeferencia a la relación CIUDADANO. El único atributo que podrá tornar valore'rulos será "Cargo", pues un implicado no tiene por qué tener un determinado cargo.

Los ciudadanos están implicados en casos. por conocimiento del dominioibernos que en el mismo caso pueden estar implicados diversos ciudadano~ '! que elrismo ciudadano puede estar implicado en múltiple~ casos de COr~I?Clon. Est~tuación no puede recogerse simplemente afíadiendo atributos a la relación CASO III.m poco a la relación CIUDADANO, pues ello limitaría el número de casos que seodría recoger por cada ciudadano.

Precisamos por ello una nueva relación IMPLICADO. que recoja!spectivalnente para cada ciudadano todos .aquellos casos de c~rrupción en los q~~stá implicado y para cada caso de corrupción todos aqu~lIos CIudadanos. q~c e~t,1I1npl icados en él. en esta relación podrá recogerse también el cargo principal deliudadano en el momento en que se produjo el caso. que suponernos puede seriferente en cada uno de los casos.

"En cada caso hay una serie de ciudadanos implicados. cada WIO de ellosCO/I un cargo princtpal detenníllado en el momento en que se produjo elcaso. De cada IUI(I de estos personajes se desea conocer su DNf. nombre,direccián y patrimonio."

gnado necesariamente un juez que lo investigue (afirmació~ no necesari~lnentcrta en el mundo real) deberían considerarse las reglas precisas para reflejar esecesariamente, al tiempo. esta condición harfa imposible otra opción de borrado quefuera el restringido.

Podrían realizarse también comprobaciones deducidas de nuestro conocimientoI discurso corno, por ejemplo. una comprobación de la corrección de las fechasecha de nacimiento + 18 años <= fecha de ejercicio).

tJ KA (\1"DlSt-::'IO DE BASES DE 1)ATOS. PROflLEMAS RESUEL ros

Page 93: Diseño de Bases de Datos - Problemas Resueltos

Figura 2.1.21

Opcionesde borrado y modificación

. .La~ opciones de integridad referencial de esta clave ajena serán la de borrador~~trtngtt.lao con puesta a nulos y la de modlñcucíon en cascada.

8:N. M:C

PERIÓDICO (Nombre. Dirección, Tiradas. Nombre_Partidc")

PARTIDO (Nombre. Sede Central)

Debcrfa asegurarse mediante 10l> correspondientes disparadores que cada tupla enla relación CASO está relacionada con una tupla en la relación PERIÓDICO.

.. P~ra renejar. la afin!dad política de los periódicos. se informará para cadapenod!co el partld~ polüico al que es affn. Se añade para ello a la relaciónPERIODIC? el atributo "Nombre Partido" que será optativo, pues no todos losJlen~dlcos ~lel1enpor qu~ ser afines a un partido político. Este atributo será por tantouna clave ajena que estará referenciando a la relación PARTIDO.

Reglas ECA

~a opción de borrado de la clave ajena "Nombre_Periódico" será restringida (nopodna s:r puesta a nul~s y las opciones de cascada y puesta a un valor por defecto nose ~onsl~~ran convenientes para la semántica del enunciado). La opción demodificación será en cascada.

Opciones de borrado y modificación

Figura 2.1.20

"--+ PERIÓDICO <NQru!m;.Dirección. Tirada)

B:R. M:C'r---------------------------~

CASO (~. Nomhrc". Dcscripcróu, Millones', Nom/'Il'_JIII!¡. Nombre PeriÓdico.I'ccha Dese. Dictamen')

valores nulos, pues su?onemos que todo caso de corrupción lo descubre un periódico(no se hace mención a casos no descubiertos por periódicos). El atributo"Nonlbre_Periódico" es una clave ajena que referencia a la relación PERIÓDICO.

2.1: MODELADO RELACIONAL 175

Para reflejar el hecho de que cada caso de corrupción es descubierto por UIl

riódico, se incluirá en la relación CASO una referencia al periódico que lo 11.1scubierto y la fecha en que lo ha descubierto. Se añaden por tanto a la relaCII\11\SO los atributos "Nombre Periódico" y "Fecha Dese", ninguno de ellos admllira

"Cada caso de corrupción es descubierto por un periódico (nombre,dirección y tirada) en ulla fecha determinada, que se desea saber. Cadaperiódico puede tener o /10 una afinidad con un partido político (por otrolado UII partido polttico puede tener afinidad con varios periódicos () COII

ninguno) ."

Si se exigiera que todo partido tuviera al menos un teléfono, deberíamos asegurarediante disparadores que frente a cualquiera de las operaciones posibles sobre la BO.cualquier caso, por cada tupla en la relación PARTIDO. hayal menos una tupla enrelación TELÉFONO_PARTIDO.

~glas ECA

Tanto la opción de borrado corno la de modificación de la clave ajena "nombre"rán en cascada.

pciones de borrado y modificación

Figura 2./,19

B:C. M:CTELÉFONO_PARTIDO (Nombre, Teléfono)

PAR'fIDO (Nombre, Sede_central)

,La relación TELEFONO_PARTIDO recogerá todos los teléfonos de cada partido,

idrá los atributos "Nombre" (nombre del partido) y "Teléfono", Lo habitual en estossos (relaciones introducidas para recoger los diversos valores que puede adoptar un'ibuto de la misma tupla) sería que la clave primaria estuviera formada componiendoibos atributos, sin embargo, dado que se sabe que los teléfonos no pueden repetirse.staría el uso del atributo "teléfono' como clave primaria de la relación, El atributoombre" será una clave ajena que referencia a la relación PARTIDO.

La opción de borrado de la clave ajena "Nombre_Partido" podrá ser tantostringida corno puesta a nulos (no se consideran adecuadas para la semántica delercício ni la opción de cascada ni la asignación de un valor por defecto), por elntrario, la opción de modificación será en cascada,

pelones de borrado y modificación

I DISEÑO DE BASES DE DATOS: PROBLEMAS RESl/EI TOS

~•••'•••••'••'.'.'.'•.'...'. '.

Page 94: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••

CREATE TABLE Ciudadano (DNI Tipo_DN1,Nombre Nombre Válido_ ,Dirección Dirección , Válida NOT NULL.Patrimonlo INTEGER NOT NULL.Nombrc_Partido Nombre , Válido NOT NULL,Puesto CHAR(40) NOT NULL

PRIMARY KEY (DNT), '

CREATE TABLE Caso (Cód Tipo_Código.Nombrc Nombre; Válido NOT NULL.Descripción CHAR(2000),Millones INTEGER NOT NULL ,Nombre_Jucz Nombrc_ Válido NC)T NULL.Dictarnen CHAR(2000),Nombre_Periódico Nombre_ Válido.Fecha_Dese DATE,

PRIMARY KEY (Cód).FOREIGN KEY (Nombre_Juez) REFERENCES JUEZ

ON DELETE RESTRICTON UPDA TE CASCA DE.

FOREIGN KEY (Nombre_Periódico) REFERENCES PeriódicoON DELETE RESTRICTON UPDA TE CASCADE

1;

(REATE TABLE Periódico (Nombre Nombre_ Válido,Dirección Dirección Válida_ ,Tirada INTEGER NOT NULL.Nombre_Partido Nornbre, Válido NOT NULL.

PRIMARY KEY (Nombre).FOREIGN KEY (Nombre_Partido) REFERENCES Partido

ON DELETE SET NULLON UPDA TE CASCADE

(REATE TABLE Partido (Nombre Nombrc_ Válido,Sede_Central Dirección_ Válida UNIQUE.

PRIMARY KEY (Nombre»;

Fecha_Nac DATE.Fecha_Ejcr DA TE.

PRIMARY KEY (Nombre));

2.1: ~IODELA[)O RELACIONAL 177

•••••••••••••••••••~ATE TABLE JUCl (

Nombre Nombre_ Válido,Dirección Dirección_ Válida,

:BATE DOMA IN Nombre Válido CHAR(40);:BATE DOMAlN Dirección_ Válida CHAR(40);~EATE DOMA1N Tipo_Código CHAR(5);:BATE DOMAIN Tipo_DNI CHAR(9);

RIPT EN SQL_92

Figura 2./,22

8(' Me

1IVIPlJCADO

_Partido', Puesto")

~ ( ro.Nombre", Descnpoón, Milkn:..·, Nmilre_ lit'(. MillB R. ,tC

JUEZ (Nonm, ' Dirección, Fecha_NacO, R:ch'LEjer*)

JDADANO ( ONI,Nombre, Dirección', Pmrinn,io*,Nombre

~ARTIDO (Nomh~. &~Ie,('élllfUI)

UN Me'

PIOOÓOlCO (N,rrbl\\ Du'Uxuln,lirJda·. MNllbrl' J'arrido·)

(1C'. M{'U.e' ,ti'

,

1CASO e

En el siguiente grafo relacional se refleja lodo lo obtenido:

AFO RELACIONAL

No serían precisas, pues toda la semántica precisa se estaría recogiendomente con opciones propias del modelo relacional.

las ECA

DISEÑO DE BASES DE nATOS, I'ROflJ.EMAS RI,SUI:LTOS

Page 95: Diseño de Bases de Datos - Problemas Resueltos

Cada pollera puede utilizar una o varias tirillas en un momento determinado. Es1I,llpOrtanteConocer el grado de habilidad (puntuación de 1 a 10) de cada policía con',Iua una de las armas que utiliza.

En la comisaría trabajan una serie de policías (DNI, nombre. categoría), quepueden desempeñar funciones distintas: administrativos, agentes. etc.

Cada policía tiene un único jefe, aunque un policía puede ser jefe de varios.

, ' EJ1.I¡~cornisarta ex iste un arsenal de armas. Cada arma está identi ficada por un,odlgOUIlICO. pertenece a una clase y tiene un nombre determinado.

Se consideran los siguientes supuestos:

Se desea recoger en una base de datos información acerca del funcionamicnroInterno de una comisarfa de policía.

Enunciado

PR()BI ..EMA 5: COMISARÍA

n '1.",,1',,· '''''1 (nC'"J """,h" .J,"" (CASO) * (Il n,'11. ('"" ('10'"

(IMPLIC ADO)*(nll'il( ON..mhr,' 1'.lIld... ,\ \ ,(el uDADANO»»)

SqlSELECT DISTTNe'r Caso.Nolllbre_JuezFROM Caso, Ciudadano, ImplicadoWHERE Ciudadano.Nolnbre_Partido=' YYY'

AN D Ciudadano.DNJ=Trnplicado.DN I_Ci udadanoAND Trnplicado.eód_Caso=Caso,eód);

ÁIAcbra relacional

,\. Jueces que investigan ca sos en los quc hay implicados miembros del partido·'YYY".

n(·.....~I'fllhf\' 1),.-"""1'11''1.~'III\tn\!,f'\11m"'r,,_JlU," ',.n,~r~_P,·rI4""~I'. '",h r~,..1)llol.t""'n«CASO) *rl~"",,,,,,(o',,m"l\'P""ld.~·", (PERIÓDICO»)

Wll ER E Periódico.Nombre Partido = .yyy'AN D Caso.Nombre Periódico = Periódico.Nombre:

Álgebra relacional

~~:;.:.I\"- ,~ ---'~~I ~M()I)I,I.I\ 1)0 RELACtON/\L 179

'•••••••••••••••••••••••••

SqlSELECT Caso."FROM Caso. Periódico

2. Casos descubiertos por los periódicos afines al partido "YYY".

nIlNI. Nombre1'lJrll~"(CIU DADANO)* nIlNI_Clu~udun,,(o(','i<I_('u",_'xxx,(IMPLIC ADO))

SqlSELECT Ciudadano.DNI. Ciudadano.Nombre_PartidoFROM Implicado, CiudadanoWHERE Irnplicado.CódCasoe' XXX'

AND Itnplicado.DNI_Ciudadano=Ciudadano.DNl:

Álgebra relacional

l. Implicados (y partidos en que militan) en el caso "XXX",

CONSULTAS

1:

:':REATE TABLE TeléfonosPartido (Nornbre Nombre_ Válido.Teléfono CHAR( 12),

>RIMARY KEY (Teléfono),::;OREIGN KEY (Nombre) REFERENCES Partido

ON DELETE CASCADEON UPDA"rE CASC ADE

,,

'REATE TABLE Implicado (Cód_Caso Tipo_Código,DNI_Ciudadano Tipo_DNI.Cargo CHAR(40) NOT NULL,

'RIMARY KEY (Cód_Caso. DNI_Ciudadano):OREIGN KEY (Cód_Caso) REFERENCES Caso

ON DELETE CASCAD EON UPDA TE CASCA DE.

~OREIGN KEY (DN1_Ciudadano) REFERENCES CiudadanoON DELETE CASCADEON UPDA TE CASCADE

ORETGN KEY (Nombre_Partido) REFERENCES PartidoON DELETE SET NULLON UPDATE CASCADE

'X DISEÑODEBASESDEDATOS' PROBLEMAS Rr.SI1ELTOS

,..••.......•.••.....'

Page 96: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••• ii •••••••• i ••••••••••••••••••••

A continuación pasaremos a modelar los conceptos que se refieren a "enlaces"cl:lr: las rela~iones detectadas, y otros .c.:onceplos todavía no recogidos. Así,dcb,\:relnos decidir cómo almacenar los policías que son jefes de otros, qué armasIlllllzan los policías y con qué nivel de habilidad, qué pelletas investigan los casos y,Ilrcstan a los delincuentes. en qué casos están implicados los delincuentes y en qué,alabolos son encerrados. '

DELINCUENTE (DNI Deh, Nombre. Teléfono)

CAI,ABOZO (Cód Cala, Ubicación)

ANÁLISIS DE LOS SUPUESTOS SEMÁNTICOS

CASO (Cód Caso. Juzgado)

Podernos añadir a nuestra lista inicial de relaciones detectadas DELINCUENTE.que se identificará por su DNI y tendrá un nombre y un teléfono (el cual suponemosque podríamos no conocer. por lo que admite valores nulos). CALABOZO. que tendráUI) código y una ubicación. y CASO. identificado por un código de caso. y para el quealll1aCenarcm~s el juzgado que lo instruye. Podríamos habernos planteado haberdiseñado un Juzgado COIlIOuna relación. Sin embargo. puesto que cada caso lo llevaun único juzgado, y no disponemos de ninguna otra información acerca de los mismostcomo, por ejemplo. su dirección. teléfono, etc.), hemos decidido modelarlo como.aributo.

"VII delincuente (I)NI, nombre, teléfono) es arrestado por uno O variospolicias.

A cada delincuente que permanezca en la comisaria .H! le encierra en IIncalabazo tcádigo y ubicación).

Los delincuentes están involucrados en casos (código de ('(lSO y jusgado quelo instruve¡".

,POI,IClA (DNl Poli. Nombre_Poli, Categoría, Función)

ARMA (Cód Anna, Clase. Nombre_Arma)

COMISARÍA como relaciones, pero hemos de tener en cuenta que estamosmodelando la base de datos de UNA COMISARÍA y ésta tiene UN ARSENAL, cuyoúnico fin es servir de almacén a las armas. Una posible situación en la que deberíamosalmacenar los datos del arsenal sería aquella en la que las armas pudieran almacenarseen distintos arsenales. De forma análoga. ¡,i existieran distintas comisarías deberíamosplanteamos crear una relación para almacenar información referente a éstas. Sinembargo. no ocurre ni lo uno ni lo otro. y tanto la comisaría como el arsenal sonumcos (o al menos no es significativo que no lo fueran).

2,1' 'vIOI)f,I.Af)(} Rf,LACIONAI. 181. Ro" \lA

Tras una primera lectura del enunciado! se ~etec~an algunas relaciones de ~ornl'~sencilla. Así, parece evidente que POLIClA (Identificado por su DNI), se:a un,relación. Tendrá corno atributos el nombre, la categoría y la función que realiza. Lafunción que puede realizar un policía la modelamos en principio como un atnbutl1.Aunque también se podría haber modelado como una relación si suponernos que unpolicía puede realizar varias funciones.

ARMA (identificada según nos especifican. por un código) será otra relación '.y, I b de la mi No lo será SII1tendrá como atributos, de momento, la clase y e norn re e a misma. .' \

embargo, ARSENAL. ni COMISARÍA. Se podría pensar en ARSENAL .

"en la comisaria trabajan una serie de policías (DNI. nombre. categorial,que pueden deselnpe,lar [unciones distintas: administraüvos. agentes .•etc .....en la con,isar(a existe un arsenal de armas. Cada anlla estaidentificada por 1111 código úllico. pertenece a una clase y tiene UII nombredetenninado" .

Esquema relacional

IDENTIFICACiÓN DE LAS REIJACIONES BÁSICAS

Diseñar el esquema relacional indicando claves primarias y ajenas. nulos.opciones de borrado y modificación, etc.

Sobre este esquema relacional, elaborar las siguientes consultas en SQL y en

álgebra relacional:• Nombres de los policías que han investigado algún caso en el que esle

inculpado el delincuente "Ellnono".• Todos los datos del jefe del policía que utiliza el arma W 1234.

• Códigos de las armas que utilizan los policías que detuvieron a 111'delincuentes que están en el calabozo número 13.

Se pide:

Uno o varios policías investigan cada uno de los casos.

A cada delincuente que permanezca en la comisaría se le encierra en un calabozo(código y ubicación). En el calabozo pueden estar encerrados varios delincuentes.

Los delincuentes están involucrados en casos (código de caso y juzgado que loinstruye); interesa saber cuál es el principal cargo (robo, homicidio. eic.) que se leimputa a un delincuente en cada delito en que está involucrado.

Un delincuente (DNI, nombre, teléfono) es arrestado por uno o varios policías.

IX() DISEÑO DE FIASES Dh DATOS. PROBl.eMAS RESUELTOS

Page 97: Diseño de Bases de Datos - Problemas Resueltos

"Vil delincuente (DNI, nombre, lellfollO) es arrestado por 11110 1) variospohcias '.

Je' De~erno.s len~r cui~a~o a .la hora de borrar un policía, ya que puede ocurrir quel'~e~nosun caso sin .pollcla asignado. Este hecho también se controlaría medianre un1¡~PIarador que no dejaría borrar ni al policía ni a la tupla que lo relaciona con su casoen a relación INVESTIGA. .

.~Ihecho de que cada caso debe estar siendo investigado corno mínimo por un~hela deberemos recogerlo por medio de disparadores. Como no nos indican otracosa. ~upondren:os qu~ u~ policía puede no estar asignado a ningún caso. y por tantonoserán necesarios mas disparadores.

Reglas ECA

Las opciones de borrado y modificación serán en cascada

Figura 2. J .25

Opcionesde borrado y modificación

CASO (Cód Caso. JU7gadol

u ( M ('

B:C. M C

RI<.MC'

POLICÍA (DNJ Poli. Nombn:_Poli, Categoría, Función, Jefe)

En los requisitos se nos especifica que uno o varios policías investigan cada unode, los casos. ~u,pondremos, adem~s, que un caso puede estar siendo investigado porma~de un policía. Por tanto, ne~~sltamos una relación intermedia cuya clave primariaeste formada por la concatenacíón de las claves ajenas de las relaciones POLICÍA yCASO.

"Uno o varios polictas investigan cada uno de los casos".

.Se debería .implementar un disparador que obligue a que, en caso de que semodifique el policía al que se le asigne un afina. se revise también la nota o nivel dehabilidad del mismo.

Reglas ECA

2.1: MODELADORELACIONAL 183RA \1A

. d (Borrad,'No permitiremos borrar a un policía que tenga asigna as amasrestringido). y la modificación de aquél se propagará a éstas en cascada.

Opciones de borrado y modificación

Figura 2. J .24

¡ BR.Me

POLICíA (ON! Poli. Nombre_Poli. Caicgorta, Función. Jefe)

Debido a que los policías pueden utilizar varias armas en su trabajo. no podemosalmacenar esta información en la relación Policía. Si. además, cada arma pudiera serutilizada por distintos policías, necesitaríamos una nueva relación que almacenara estaasociación. Supondremos, sin embargo. que cada arma es utilizada por un únicopolicía. Propagarernos, por tanto, la clave de la relación Policía a la rclació~ Arma.corno clave ajena y sin admitir valores nulos (esto es, toda arma ha de estar asignada auno y sólo un policía). En esta misma relación incluiremos un atributo que almacene elgrado de habilidad que tiene con dicho arma el policía que la utiliza.

ARMA (C6d Arma, Clase. Nombre_Arma, DNI_Poli, Nota)I B:R, \01 e

"Cado policta puede uúlizar IIna o varioJ armas en IUI 1I101l1l.'1I/0

determinado. Es importante conocer el grado de habilidad (puntuación de Io 10) de cada policia con cada II/la de las orinas que utili:a ".

Opciones de borrado y modificación

La opción de modificación será en cascada. y la de borrado restringido.prohibiendo eliminar un policía que todavía tenga subordinados asignados.

Figura 2. J .23

POLJcíA (DN! Poli. Nombre Poli, Categoría. Función, Jefe)

,..--------------------'S.H. ~\.(

El enunciado nos dice que cada policía tiene un único jefe. Esto lo modelaremosncluyendo en la relación POLICÍA un nuevo atributo que identifique a su jefe. queerá clave ajena que referencic a la propia relación POLIClA. Llamaremos a esteitributo, "Jefe". Supondremos, además, que todo policía debe tener un jefe, por lo que10 admitiremos nulos en dicho atributo.

. "vanos"Cada polícta tiene 1111 único jefe, aunque IIn policta puede ser jefe de

,2 DI~1::¡;;ODI'. BASES D~ DATOS: PROBl.EMAS RESUtLTOS

Page 98: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••••

Figura 2, /.28

CAI.ABOZO (Cód.Cala, Ubicación)

Por último. sólo nos faltaría por recoger en qué calabozo está encerrado cadaJcltncuente mientras permanece en la comisarfa. En principio. un calabozo podría~\Iarvacío,.pero consideraremos (de forma bastante razonable), que todo delincuentenrrcstado (SI recordamos, todos nuestros delincuentes lo están) está encerrado en uno Y,:110 un calabozo, Por ta~to, no será necesario crear ninguna relación auxiliar, sino quePldrenlOs usar la relación DELINCUENTE para almacenar el calabozo en que~ncuentra propagando el código del calabozo a dicha relación corno clave ajena, se

DEI~INCUENTE (DNI Deli, Nombre, Teléfono", Cód_Ca/a)

r------------------_ B,R. M,e

"" cada delincuente que pennGl/e"ca en la comtsuria .\(' le eIlCI('I ra el! 1111

('{/I{/ho~(1 (l'fÍdiglJ y ubicactán J. Gil 1.'1calaho;o pueden estar encerradasI'anos delincuentes oo.

Mcdrantc disparadores coni.rolaremos que no pueda haber delincuentes sin estaruivolucrudos en ningún caso. .

Reglas ECA

Las opciones dc borrado y modificación serán en cascada.

Opciones de borrado y modíñcaclón

Figura 2.1.27

11e \1 (

INVOLUCRADO (l)Nf fJeli. Cód Caso. Cargo)r+:------1a <'. \1 C'l

DELINCUENTE (DNI Dcli, Nombre. Teléfono')

CASO (Cód Caso. Juzgado)

DELrNC~ENTE. Esta rela~ión tendrá además otro atributo que alrnacenara el cargoque se le Imputa a dicho deltncuenre en el caso.

Z,I: MODEI.AOO RELACIONAL 1115

•••••• i.(.~••••••

Al igual que los policías investigaban casos, lo que nos llevó a la creación de IJición INVESTIGA, los delincuentes están INVOLUCRADOS en dichos casos. L:Irántica que considerarnos es muy similar, es decir, todo delincuente sobre el queiacenamos información está involucrado en al menos un caso (de hecho, comomos antes, está arrestado). En los casos, están involucrados varios o ninglinincucntes (de esta manera, se permite tener información acerca de los casO'mtras estén siendo investigados). Crearemos por tanto la relaciúnv'OLUCRADO. cuya clave será la concatenación de las claves ajenas de CASO)

"Los delincuentes están involucrados en casos (código de caso y juzgado quelo instruye); interesa saber cuál es el principal cargo (robo, homicidio, etc.)que se le imputa a UII delincuente en cada delito en que está involucrado"

Tendremos que controlar mediante disparadores que todo delincuente haya sido:stado por, al menos, un policía (o, lo que es lo misrno, que toda ocurrencia de la.ción DELrNCUENTE está incluida en la relación ARRESTA).

tlas ECA,

Las opciones de borrado y modificación serán en cascada.

clones de borrado y modiflcaclén

Fif:urll 2./.26

ARRESTA (Dni

1 SoR.M'C

POLIClA <,,,,,O,,,,n,_,_i_,_P-"o:.!,!li,Nombre Poli, Categoría, Función, Jefe)+L -, 11c. M e

pJ¡¡, Dni tuu. Fecha)r- 11l ('. M'('¡

DELINCUENTE (DNI Deli. Nombre. Teléfono')

Es necesaria una nueva relación análoga a la anterior para el caso de los arresto,lelincuentes que llevan a cabo los policías. El enunciado nos especifica claramentetodo delincuente el) arrestado por uno o varios policías, es decir. que todo

ncuernc es arrestado. Esto no significa. evidentemente, que estemos modelando laiica situación de un mundo sin delincuencia, sino que únicamente guardarcmo-,rmación de los delincuentes arrestados. SIn embargo, puesto que no se nos dicea en contra, puede haber policías que no hayan arrestado a ningún delincuentearemos, por tanto, una relación ARRESTA cuya clave primaria estará formada por,oncatenación de las claves ajenas de las relaciones POLIcrA y DELrNCUENTE.

DISEÑO DE BASES DEIJA rus: PROBLEM,.!:A~S..!:R~E.::!.S~U!.C~.L!::.·l~·O~S:...._ ...::()::..::R:'::',::'M~.\

Page 99: Diseño de Bases de Datos - Problemas Resueltos

:J Esta restnccién también podría recogerse mediante un dominio.

CREATE TABLE Investiga (DNI_Poli Tipo_DNI,Cód_Caso Tipo_Código,

PRlMARY KEY (DNT_Poli, Cód_Caso),FOREIGN KEY (DNI_Poli) REFERENCES Policía

ON UPDATE CASCADEON DELETE CASe ADE,

FOREION KEY (Cód_Caso) REFERENCES CasoON UPDATE CASCADEON DELETE CASCADE

CREATE TABLE Caso (Cód_Caso Tipo_Código,Juzgado CHAR(20) NOT NULL,

PRfMARY KEY (Cód_Caso)J:

);

I

CREATE TABLE Arma (Cód_Arma Tipo_CódigoClase CHAR(20) NOT NULL,Nombre_Arma Nombrc , Válido NOT NULL,DNI_Poli Tipo_DNI NOT NULL,Nota INTEGER NOT NULL,

PRJMARY KEY (Cód Arma),CHECK ( Nota>O ANO Nota-cl I)!~,fOREIGN KEY (DNI_Poli) REFERENCES Policia

ON UPDA TE CASCADE

);

CREATE DOMAIN Nombre_ Válido CHAR(40);CREATE DOMAIN Tipo_Código CHAR(5);CREATE DOMAIN Tipo_DNI CHAR(9);

CREATE TABLE Policía (DNI_Poli Tipo_DNI.Nombre_Poli Nombre_ Válido NOT NULL,Categoría CHAR( 15) NOT NULL.Función CHAR( 15) NOT NULL,Jefe Tipo_DNI NOT NULL,

PRlMARY KEY (DNI_Poli),FOREIGN KEY (Jefe) REFERENCES Policía

ON UPDA TE CASCADE

SCRIPT EN SQL-92

2.1: MODELADO RELACtO:'o1AL 187.,RA ~IA

Figura 2./.29

ARRESTA (DNJ Poli, DN/ o-u. Fecha)lle.M.C·

ación)

B:R. M:C

Nombre, Teléfono', C6d_Cala)

e

Cód Caso, Cargo)

B.C.M:C

, BC.MC

Caso)

~POL[C (Dni Poli, Nombre;j lO

1\:('. M'C

INVESTIGA (Dni Poli, C6d

CASO (Cód Caso, Juzgado)A •

INVOLUCRADO (DNI Deli,

I a.e, M:

.... DEL NCUENTE roN! Deli,

r

CALABOZO (Cód Cala, Ubic

I e-e, M.e

ÍA

¡B:R. M e

Poli, Categoría, Función, Jefe)

I S·R.M:CARMA (Cód Arma, Clase, Nombre.Arma. Dni_Poli, Nota)

El grafo relacional completo se muestra a continuación.

lfo relacional

Las modificaciones en la relación CALABOZO se propagarán en cascada, yiderarernos que no se permite eliminar un calabozo mientras haya algúnicuente dentro (cosa por otra parte bastante recomendable), es decir, IOl>borrados1 restringidos.

iones de borrado y modificación

)tSEÑü DE BASES DE DATOS: PROBLEMAS RESUELTOS

Page 100: Diseño de Bases de Datos - Problemas Resueltos

~ •••••••

SqlSELECT Cód_ArmaFROM ArmaWHERE DNI_poli IN

(SELECT DNI_PoliFROM ArrestaWHERE DNI_Deli IN

(SELECT DNT_DeliFROM DelincuenteWHERE Cód_Cala = '13'»

3. Códigos de las armas que utilizan los policías que detuvieron a los delincuentesque están en el calabozo número 13.

n ONIPnlo. "lnmt>",_Pnh. Ca'cguría. I'u",,¡r.n (POLICIA)*( n D'II_Puh.1<-1<' (POLJCIA) )*(n0:>11 l'oh(<JCt\dArma:·WI2.W·(ARMA)))- -

Álgebra relacional

Sq!SELECT DNI_Poli. Nombre Poli, Categoría, FunciónFROM PolicíaWHERE DNI_Poli=

(SELECT JefeFROM PolicíaWHERE DNI_Poli=

(SELECT DN1_PoliFROM ArmaWHERE Cód Arma = 'W 1234'»

2. Todos los datos del jefe del policía que utiliza el afina W 1234.

n 1'o",,,I>«_I',,IJ «n "NI_P"Io. N"mhrc_l'oh(POLICiA» * (Fl (',""('.•",. ()NI_P.~,(INVESTTGA» *(Fl UNIDeh. c,,,,_c.,,, (INVOLUCRADO» *(n I)NI_I"''' (<JN"mhrc='EI mono'

(DELINCUENTE»»

Álgebra relacional

SELECT Nombrc_PoliFROM Policía, Investiga, Involucrado, DelincuenteWHERE Poi icia.DNI_Poli=I nvestiga. DN I_Pol i

AND Invcstiga.C6d_Caso=lnvolucrado.C6d_Ca~oAND Involucra.DNI_Deli=Delíncuente.DNI_DcliAND Delincuente.Nornbree'El Mono'

Sql

2.1. MODELADO Rbt.ACIONAL 189

•Nombres de los policías que han investigado algún caso en el que esté inculpado eldelincuente "El mono".

ONSULTAS

:.EATE TABLE Arresta (DNT_Poli Tipo_DNI.DNT_Deli Tipo_DNI.Fecha DATE NOT NULL,

lMARY KEY (DNI_Poli. DNI_Deli).IREIGN KEY (DNI_Poli) REFERENCES Policía

ON UPDA TE CASCADEON DELETE CASCADE,

)REIGN KEY (DN1_Deli) REFERENCES DelincuenteON UPDATE CASCADEON DELETE CASCADE);

EATE TABLE Involucrado (DNI_Deli Tipo_DNl.Cód_Caso Tipo_Código.Cargo CHAR(20) NOT NULL,

TMARY KEY (DNI_Deli, Cód_Caso).REIGN KEY (DNI_Deli) REFERENCES Delincuente

ON UPDATE CASCADEON DELETE CASCA DE.

'REIGN KEY (Cód_Caso) REFERENCES CasoON UPDATE CASCADEON DELETE CASCADE);

EATE TABLE Delincuente (DNT_Deli Tipo_DNI.Nombre Nombre_ Válido NOT NULL.Teléfono CHAR( 15),Cód_Cala Tipo_Código NOT NULL.

IMARY KEY (DNT_Deli),REIGN KEY (Cód_Cala¡ REFERENCES Calabozo

ON UPDA TE CASCA DE

EATE TABLE Calabozo (Cód_Cala Tipo_Código.Ubicación CHAR(20) NOT NULL.

MARY KEY (Cód_Cala)

DISEÑO DE BASES DE DATOS: PROBI EMAS R"-~UELTOS

Page 101: Diseño de Bases de Datos - Problemas Resueltos

,

La información acerca de las distintas etapas que cornponen un camino de~eregrinación, se recogerá en una nueva relación ETAPA que contendrá los atributosNo~brc_C" (nombre del camino). "Núme ro" (número de orden de la etapa dentro delcam.lno).. "Kilómetros P" (kilómerros de la etapa), "Tiernpo P" (tiempo estimado dercalrzaclón de la etapa), "Ciudad_s" (ciudad de salida) y "Ciudad LL" (ciudad dellegada). Ninguno de los atributos de esta relación podrá contener valores nulos. '

" La clave primaria de esta relación estará formada conjuntamente por los atributosNombre C" y "N' " identi fi. - umero , pues 1 enn lean de manera unfvoca a cada una de lasPOSIblesetapas. De este esquema de identificación se deduce que no puede haber

•Cada camino se compone de distintas etapas que se Identifican por UIl

número correlativo dentro de cada camino, )' para cada U/UI de ellas se deseasaber el/tú/llera de kilámetros, el tiempo estimado y las distintas localidadespor las que pasa. Además se quiere recoger la localidad de salida y dellegada de la correspondiente etapa."

CAMINO (Nombre. Kilómetros_T. Tiernpo T)

.Para recoger. ~a información acerca de los distintos caminos de peregrinaje, serequiere una relación que los contenga, se crea asf la relación CAMINO que tendrá losatributos "Nombre" (nombre del camino), "Kilómctros T" (kilómetros del camino) y"Fiernpo., T" (tiem~o estimado de realización del camino), La clave primaria de estarelación será el atributo "Nombre", pues identifica de manera unívoca a cada uno delos posibles caminos. Ninguno de los atributos de esta relación podrá contener valoresnulos.

"Teniendo en cuenta que la peregrinacián a Santiago se puede realizar pordistintos caminos (el camino francés, el aragonés, etc.}. se quiere guardarinfonnacián acerca de éstos. Esta informacián se refiere al nombre (que losidentifica), el Ilú/nero de kilámetros totales y el tiempo estimado para larealización del camino."

IDENTIFICACiÓN DE LAS RELACIONES BÁSICAS

Discusión del enunciado

• Nombre y Comunidad Autónoma de aquellas localidades que no poseanalbergues para peregrinos.

• Número de albergues por localidad pertenecientes a la primera etapa delCamino Aragonés.

• Nombre de los peregrinos que han realizado el Camino de Santiago (secuentan solo aquellos que han llegado a la localidad de Santiago).

2 l : MODELADO RhLACIONAL 191I itA ·¡\1A-

e'e ••• e • e •••••••••• '.'e"•• '.'.'.".

Diseñar el esquema relacional indicando claves primarias y ajenas, nulo'.opciones de borrado y modiñcación, ele.

Efectuar en álgebra relacional y en SQL las siguientes consultas:

Por último, se quiere registrar los peregrinos que realizan el camino. Para llevarcontrol cada uno de ellos lleva un carnet que consta de un número de.ificación, el nombre completo del peregrino, su dirección y las localidades por l¡j~ha ido pasando a lo largo del recorrido junto con el día que llegaron a dichaidad.

Se desea guardar información sobre los albergues para peregrinos que existen enlas de las localidades que pertenecen al camino. Esta información consta de:ore del albergue, capacidad y precio (si lo tuvieran).

Se recogerán las distintas localidades por las que pasa cada camino. Lamación que se recogerá de cada localidad será: nombre de la misma, Comunidadnoma a la que pertenece y código postal. Se debe tener en cuenta que puedenir localidades comunes a distintos caminos.

Cada camino se compone de distintas etapas que se identifican por un númerolativo dentro dc cada camino. y para cada una de ellas se desea saber el númerolómctros, el tiempo estimado y las distintas localidades por las que pasa. Ademásiere recoger la localidad de salida y de llegada de la correspondiente Clara.

Teniendo en cuenta que la peregrinación a Santiago se puede realizar portos caminos (el camino francés, el aragonés, ctc.). se quiere guardar informacióna de éstos. Esta información se refiere al nombre (que los identifica), el númerolórnctros totales y el tiempo estimado para la realización del camino.

...a Consejería de Cultura de la Comunidad Gallega ha decidido guardarnación referente al Camino de Santiago en una Base de Datos. La informaciónesea almacenar es la siguiente:

ociado

IBLEMA 6: CAMIN() DE SANTIAGO

n ¡-..d_A.. ". «nDNI 1'..11(""U A,mu (ARMA)) ... (Fl 0-;1 P"II(n0-;1 PIl".n~I_I)d, (AR REST A»... (Fl UNI rlo.·"(OC..I ,.1" p (DELINCUENTE»»))

gebra relacional

ISERü DE BASES DE DATOS' PI{OBI tiMAS RE$Util. ros

Page 102: Diseño de Bases de Datos - Problemas Resueltos

•~•• ••••••••Puede recogerse mediante disparadores la restricción que se deduce al razonar

\nhrc el uruv . de di d .'crso e iscurso y arse cuenta de que un camino tiene que tener al

Reglas ECA

Veamos qué sucede con las opciones de integridad referencial de la clave aienaen el c borre un cami ' .aso en que se orre un camino se habrán de borrar todas las etapas que le.:~~pon~n, pues é.stas no tienen senti~o de rnanera aislada sin pertenecer a un camino.i. <:1 rmsmo r:nOIIV~:cuando semodifique el nombre de un camino habrá que realizar,1 rmsma modificación en todas las etapas que le componen. En ambos casos. tanto enel borrado corno en la modificación, las opciones de integridad referencial serán en~ascada.

Figura 2.1.30

Opciones de borrado y modificación

L'TA I'A (Nombre e N'" I..!.. ~i.!.!.!l.!..S.~.,~U!!!·lnne!<.!r:ll.ulKi lórnclro_P.Ticmpo P, C'iudad_SCludnd_LI)

M~('A~IJN() (Nomb[~.. Ktllímelro~_T.Tiernpo1J

Un camino tendrá varias etapas. pero cada etapa corresponde a un único camino.-c,sahe además que la identificación de la etapa está formada a partir de la del camino,a', se llene por tanto que el atributo "NornbreC" de la relación ETAPA es una clave.ycna que referencia a la relación CAMINO .

•Cuela camino se compone de distintas etapas que se identifican por 1111

lIú/l¡ero correlativo dentro de cada camino y para cada una de ellas se deseasaher el nlílllero de kilámetros, el tiempo estimado y las distintas localidadespor las que pasa. Además se quiere recoger la localidad de salida)' dellegad« de la correspondiente etupu."

, ,ANALISlS DE IJOS SUPUESTOS SEMANTICOS

Además, corno dice el enunciado. se debe registrar las ciudades por las que vapasando cada peregrino. esta información no se podrá recoger 1'610 con atributos ni enla relación PEREGRINO ni en la relación CIUDAD (pues como máximo se podríarecoger una. ciudad en cada peregrino o un peregrino en cada ciudad). se precisará unanueva relación que se comentará en el siguiente apartado.

PERI<:GRINO (Número 1,NombreCompleto, Dirección)

tnllaría de una clave alternativa, por último si se supone que podría no conocerse ladirección de un determinado peregrino, el atributo "Dirección" admitiría nulos.

~., . .\10DELADO REI.ACIONAL 19JR' MA

•••

•Por último, se quiere registrar los peregrinns que realizan el camilla. Parallevar este COII(rolcada uno de ellos lleva IIn camel que COlIStade UIl ,ui,ner(/de idelllijicación, el nombre completo del peregrino, Sil direccíán y laslocalidades por las que ha ido pasando (,1 lo larga del recorrido )UII(O cnll I?Idto que llegaron a dicha localidad."

La información de los peregrinos se depositará en una relación PEREGI~INO qu:contendrá los atributos "Nümero.J'' (número de identificación), "Nombre_CoITlpleloy "Dirección". El número dc identificación será la clave primaria de la relación. )'podría suponerse que el nombre completo identifica a los peregrinos. por lo que se

•ALBERGUE (Nombre A. Capacidad. Precio, Ciudad)

Para recoger la información sobre los albergues, se requiere una nueva relación\LBERGUE, sus atributos son "Nombre_A", "Capacidad", "Precio" y un atributoCiudad". La clave primaria de ALBERGUE será "Nombre A" mientras que el únicoitributo que puede tomar valores nulos será "Precio", pues éste puede no siempre serconocido.

•Se desea guaulur i/lfornlaciáll sobre IOJ albergues para peregrlllils (/'1('

existen ('/1 lllglllla~ de las localtdades que pertenecen al ca/lIIlIO. Fstainfonnacián ('(",1/0 de: nombre del albergue, capacidad." precio (ll lotuvieran] ."

CIUI)AD (Nonlhre. Comunidad Aut. Código_P)

Se precisa una relación CIUDAD que recoja la información de las distintascalidades por las que pasan los caminos. los atributos de esta relación serán..jombre" (nombre de la ciudad). "Cornunidad.Aut" (comunidad autónoma a la queenenece la ciudad) y "Código.P'' (código postal). La clave primaria es el atributo-Jombre" pues identifica unívocamente a cada una de las localidades; podría haberseensado en elegir el atributo "Código_P", sin embargo para ello, debería asegurarseue no hubiera localidades que compartieran el código postal. por este motivo no loJnsideralllos clave (ni primaria ni alternativa). Ninguno de los atributos de estaelación podrá lomar valores nulos.

•Se recogertin I(lS dlstlntas localidades flor 10.\ que pasa cada calrlillo. UIinfannocián 'lile Sé recogerá de ClIda localidad serd: nombre de la misnut.CVIYIII/lidadAlIlólloll1a a la que pertenece y código postal. Se debe tener encllenta que pueden existir localidades COlnlllles a distintos ("allli/los.N

ETAPA (Nolnbre e, NúmerQ, Kilólnetros_P, TiernpcP, Ciudad_S, eiudad_LL)

ipas comunes a los diferentes caminos, por lo que si hubiera etapas de diferentesminos con el mismo recorrido, se considerarían como diferentes.

DISEÑO 1)".BASES DEDATOS: PROBLEMASR~Sll['LTOS

Page 103: Diseño de Bases de Datos - Problemas Resueltos

"Salvo que ve admineran etapas circulares. claro e~tá

. . POdrf? considerarse una alternati va que elimina la necesidad de las do' l'dJenas "Ciudad S" "C' d d LL"" '. s e avesrecorr~rá' -' y IU a - , SI asumi mos que en cada recorrido una ciudad seijlribul "slem~:e en el mism.o orden e introducimos en la relación RECORRIDO un

O orden que lo reOeJe. en ese caso, la ciudad de salida en cada etapa será

En ambos casos. las opciones de integridad referencial serán borrad inaidrnose pe 'f /.b . . o restnngl ofin I Ira orrar una Ciudad mientras que haya una etapa que se' .. fi li

enella) y modificación en cascada. . mrcie o ina Ice

Figura 2./.32

()pciones de borrado y modificación

'-..j~~CIUOAD (Nombre.Comunidad Aur, Código_P)

(Nllmbrf' C. Númeru,KilomelJo_P.TiernpoP, Ciudad S, CiudadLl¡----- la·R.,\1:r _1 U.M,M.r

ETAPA

. . Por otr¡~parle, si ~n la BD se v~n a recoger solamente ciudades que pertenezcan aalgún reco.rndo. debería asegurarse igualmente mediante disparadores la restricción deque toda CIudad en la relación CIUDAD pertenece a algún recorrido.

. . Por ~ltilllO".ha de observarse q~een la relación CIUDAD, en particular. deberían~p~rece~~orno C.l,emplares tanto ~a~Iudad de salida Con10 la de llegada de cada una de~~J~pas. de~ena forzarse restricciones de intcgridad referencial entre las relaciones

AD y ETA.PA para asegurar que no puedan recogerse en ETAPA ciudadeIn~xl~tent~s. Se tiene por ta~lo que los atributos "Ciudad_s" y ·Ciudad_LL" de 1:relación ETAPA son claves ajenas que referencian a la relación CIUDAD.

. De lnane~a siJni.lar a lo que ocurría entre los caminos y las etapas, puedereco~e.rse mediante disparadores la restricción deducida de nuestro conocimiento deldOJ_O,n,ode dls.curso de que toda etapa ha de recorrer corno mínimo dos ciudades"~ongen y dcstl~.o). Así, por ejem.plo, para poder crear una nueva etapa deberíaase~u~ars~ prevla~l~~~e la presencia de l.as correspondientes ciudades de salida yllegada. SI la restnccion se asegurara mediante programa, la creaci d. . . Ion en caso e queno eJUs~l~ran las Ciudades debería realizarse de manera simultanea en la istransaccion. rm ma

Reglas ECA

un recorrido) ello dependerá del tipo de tratamiento que se prefiera real' ..1 dif 'ó Izar. por Otraparte, a mo I icaci n en ambas claves ajenas será en cascada .

2 1. }.¡10DELADORELACIO~AI. 195

Opciones de borrado y modificación

Como opciones de integridad referencial serán admisibles en ambas claves ajena'tanto el borrado en cascada corno el restringido (no permitir el borrado de una ciudad.ni de una etapa, mientras haya ejemplares que estén registrados como participantes en

Figura 2.1.31

B:C.MC BeMe

L1UDAD ( Nombre, Comunidad_Aut. Código_P)

...-.ETAPA (Nombre e, Número. Kilómetro_P. Tiempo.P, Ciudad_S. Ciudad_LI)

Los atributos de la relación RECORRIDO son "Nombre_C" (nombre delarnino), "Número" (número de la etapa dentro del camino) y "Ciudad"; los dosmmeros atributos determinan la etapa del camino. Todos estos atributos serán nouilos y la clave primaria será el conjunto de los tres atributos. además, se tendrá queos dos primeros son una clave ajena que referencia a la relación ETAPA, mientraslue el tercero es una clave ajena que referencia a la relación CIUDAD, pues tanto lastapa como la ciudad tienen que existir previamente.

Para reflejar el recorrido de los distintos caminos podríamos pensar en recogeron dos atributos "Nombre_C" y "Número" en la relación CIUDAD la etapa a queorresponde esa ciudad. sin embargo esta solución asume que por esa localidad sólouede pasar un camino y el enunciado afinna que puede haber distintas localidadesomunes a varias ciudades. Por ello se precisa introducir una nueva relación:ECORRIDO que mantenga tantas veces la ciudad como etapas de camino a la questa pertenezca.

•Se recogerán las distintas localidades por las que pasa cada carnillo. Lainformacián que se recogerá de cada localidad será: nombre de la IlIisllla.Comunidad AucónOIlUla la que pertenece y código postal. Se debe tener ellcuenta que pueden existir localidades COI/lunesa distintos caminos."

Es interesante además observar cómo el cálculo, tanto de los kilómetros delunino como del tiempo estimado de realización del camino, podría realizarse a partir! los correspondientes datos de las etapas que componen el camino, por 10 que podríaensarse en la inclusión de disparadores que realizaran estos cálculos.

.rrmno.

enos una etapa. Así, por ejemplo, no podría modificarse en la relación ETAPA laave ajena "Nombre_C" cuando la tupla que se va a modificar sea la última de algún

4 DISEÑO DE BASESDE DATOS: PROBLEMAS RESUELTOS

Page 104: Diseño de Bases de Datos - Problemas Resueltos

" e e ~ \. \J V \.) ') ) J ~ ~ ) a ,'.J ) 1 J :) j ~~ a D <.) ) ..) 'l) ~).) ).- -.••••••••••- .....

Podría controlarse mediante disparadores la restricción de que todo peregrinodehería haber pasado por al menos una ciudad, es deci r, que por cada tupla en la

Re~las RCA

Las opciones de integridad referencial en ambas claves ajenas podrán ser: la dehorrado tanto en cascada como restringido, mientras que la de modiflcación será encascada.

Opciones de borrado y modificación

Nótese cómo aunque se han recogido las ciudades por las que cada peregrino hapasado, no se ha recogido explícitamente el camino realizado por cada peregrino, si sehubiera querido registrar los caminos que un peregrino ha realizado (podría realizarmás de uno) y los peregrinos que han realizado un camino. habría de incluirse unanueva relación con esta información y que tendría claves ajenas a las relacionesPEREGRINO y CAMINO.

Figura 2.1.34

L CIUDAD (Nombre, Comunidad Au]. Código PI

Il <'. M e

In.c. vr.cCAl\'IINO_PEREGRINO (Nrí/ne/'o /. NO/libre C. réchil Paso)

PEREGRINO (Número 1,NombreCompleto, Dirección")

La relación CAMINO_PEREGRINO tendrá los atributos "Número_l" (númerode identificación, clave ajena que referencia a PEREGRINO), "Nombre_C" (nombrede ciudad. clave ajena que referencia a CIUDAD) y "Fecha Paso" (fecha en que elperegrino identificado mediante el atributo "Número_l" pasa por la ciudad identificadaeu"NombrejC"). La clave primaria de esta relación la constituirán el conjunto de lostres atributos. por lo que ninguno de ellos podrá ser nulo. Si no se hubiera incluido elatributo "Fecha Paso" como parte de la clave primaria, podría haberse dado la,iluación de que el mismo peregrino realice varias veces el mismo camino (e inclusocaminos distintos que compartan la misma ciudad) y no se podrla recoger más que unode sus pasos por esa ciudad.

aquellos peregrinos que han pasado por ella. En esta relación se podrá además recogerla fecha en que este paso ha sucedido.

2.1. MODELADO RELACIONAL 197

'1, Naturalrnente "orden" nll dcbena admitir nulos.

•Por último, se quieren registrar los peregrinos que realizan el canlÍno., Parallevar este con/rol cada lino de ellos lleva un camet que consta de tllI nlllllerode tdentíficactán. el nombre completo del peregrino, Sil dire~ciólI y la,slocalidades por tas que ha ido pasando " lo largo del recorrido )11/110con eldta que llegaron r1 dicha localidad. •

Para registrar las ciudades por las que va p.a.~ando cada pere~rino se. ~rea UI~anueva relación CAMINO_PEREGRINO que recoja por cada peregrino t~das aqllcll,l~ciudades por las que éste ha pasado y respectivamente, para cada CIudad, todos

ReglasECA

Si suponemos que no puede darse la posibilidad de ciudades sin albergues. podríacontrolarse con disparadores la existencia de al menos un albergue en cualquierciudad .

Opciones de borrado y modiñcacién

La anterior restricción de integridad referencial podría tener opción de borrado encascada o restringido dependiendo de la semántica pretendida, mientras que lamodificación se hará en cascada.

Figura 2.1.33

rCIllDAD (NplTlhrc, Comuni(J¡,d_Aut, Código_P)

. IBI"\1.C

ALU ERe II E t NOlnbre A. Capacidad._Prcclo*, Ciudad)

El atributo ciudad en la relación ALBERGUE detenninaría para cada alhe~gue laciudad a la que pertenece. se trata por tanto de una clave ajena que referencia a larelación CIUDAD.

•Se desea guardar III/orlllaCIÓ/l sobre 105 albergues para pere!/.~"I(/l queexisten e/l alguna f de las localidades que pertenecen al ca/lIl~lo. ~.,/ainfonnacíán C(//I~/(I ele: nombre del albergue. capacidad )' precio (SI lotuvieran} ."

aquella que tenga orden l. mientras que la ciudad de lIeg~da se~á aquella que tenga elmayor valor de orden en cada etapa. por lo que no sena ~reclso man~ener su v~lorexplícitamente en la relación ETAPA, pues am~os atributos podrían calcular~emediante disparadores a partir del atributo "Orden?". Dado que no ~~ h~c~ ~1enCI()nexplícita en el enunciado a este orden, nos quedamos con la solución inicialmentepropuesta.

1"6 DISEÑO DI-! fiASES DI-! DATOS PROBLEMAS RESUELTOS

Page 105: Diseño de Bases de Datos - Problemas Resueltos

CREATETABLE Albergue (Nombre_A Nombre; Válido,Capacidad INTEGER NOT NULL.Precio INTEGER.

) Ciudad Nombre_ Válido NOT NULL,IRIMARY KEY (Nombre A),I'OREIGN KEY (Ciudad) REFERENCES Ciudad

ON UPDATE CASCADE

1:

CREATE TABLE Recorrido (Nombre_C Nombre , Válido.Número INTEGER.Ciudad Nombre_ Válido.

PRIMARY KEY (Nombre_C, Número. Ciudad),FOREIGN KEY (Nombre_C, Número) REFERENCES Etapa

ON UPDATE CASCADEON DELETE CASCADE.

FOREIGN KEY (Ciudad) REFERENCES CiudadON UPDATE CASCADEON DELETE CASCADE

) :

CREATE TABLE Etapa (Nombre_C Nombre_ Válido,Número INl'EGER,Kilómetros_P INTEGER NOT NULL.Tienlpo_P LNTEGER NOT NULL.Ciudad_S Nornbre_ Válido NOT NULL,Ciudad_LL Nombre_ Válido NOT NULL.

PRIMARY KEY (Nombre_C, Número).F()REIGN KEY (Nombre_C) REFERENCES Camino

ON UPDA TE CASCADEON DELETE CASCADE.

FOREIGN KEY (Ciudad_S) REFERENCES CiudadON UPDA TE CASCADEON DELETE RESTRICT,

FOREIGN KEY (Ciudad_S) REFERENCES CiudadON UPDATE CASCADEON DELETE RESTRICT

CREATE TABLE Ciudad (Nombre Nombre_ Válido,Comunidad Aut Nombre Válido_ _Código_P CHAR(5) NOT NULL.

PRIMARY KEY (Nombre)):

2.1: MODELADO RELAC10NAL 199

SCRlPT EN SQL 92

CREATE DOMAIN Nombre_ Válido CHAR(40);

CREATE TABLE Camino (Nombre Nombrc_ VóliJo,Kilómetros_1' INTEGER NOT NULL,Tielnpo_T lNTEGER N01' NULL,

PR1MARY KEY (Nombre)):

Figura 2.1.35

JiTAPA om re u . . - . _•

R.R.M.(

~ ..J'iUDAD (Nonlbre .• Comunídau_Aul. CÚuígo_P) "

ij ('M'( 1\ ('.r-.,(' u C'M:l

.RECORRiDO (NlJwl)/<!...Cltilllll'ro, (';II(/(Id),

a e M 1

AL8ERGUE (N(llllbrt; A. Cnpucidad, Precio". CIUdad).

PEREGRINO (Núlll~ru 1.Nombrc_Complelll. DIrección")

i lur\lcCAl\'UNO_PEREGRINO (Número 1,Nombre C. Fecha Paso)

a.CMe

:.AFO RELACIONAL

I .. CAMINOción PEREGRINO haya al menos una tupla en la re acron . . _- hi Ó· fuera aplicable por ejemplo SI los> cGRINO En el caso de que esta rp tesis no . •u:. .' .' .so pues scnanegrinos se registraran antes de iniciar el ca~lno. no. sena precn • .1isibles los peregrinos que no han pasado por ninguna Ciudad.

DISEÑO DE BASES DE D/\ ros PROBLI:MAS RESUELTOS

•••...'•..•••••••

Page 106: Diseño de Bases de Datos - Problemas Resueltos

,.le -~~ f"::!•••••••••••••••••

Un profesor está identificado por su DNf. De él se desea saber el nombre,Iltulaei6n. años de experiencia en investigación. grupo de investigación en el que"~,arrolla su labor y proyectos en los que trabaja.

Dentro de un departamento se crean grupos de investigación. Cada grupo tiene unnombre único dentro del departamento (pero que puede ser el mismo en distintosdC~art.amentos) y está asociado a un área de conocimiento (bases de datos, inteligencia<lMlfielal.sistemas y comunicaciones. etc). Cada grupo tiene un lídcr que ha de serprofesor de la Universidad .

Un departamento se identifica por su nombre (Informática, Ingeniería. etc). TieneIIl1a sede situada en un determinado campus. un teléfono de contacto y un Director.que ha de ser un profesor de esa Universidad.

En la Universidad Carlos TII se desea llevar un control sobre los proyectos deinvestigación que se desarrollan. Para ello se decide emplear una base de datos quecontenga toda la información sobre [os proyectos. departamentos. grupos demvcstigación y profesores. Esta información se detalla a continuación:

Enunciado

PROBLEMA 7: PROYECTOS DE INVESTIGACIÓN

(fIN,,"'h u-. N\.1l11>r"_,,«CIUDAD)* (ALBERGUE) AGRUPACIÓN POR (Nombre),ClJENT A(Nornbre_A)

,Álgebra relacional

SqlSELECT Nombre. Count(Nombre_A)FROM Ciudad. AlbergueWHERE Ciudad.Nombre=Albcrgue.CiudadGROUP BY Nombre

3. Núrnero de albergues por localidad pertenecientes a la primera etapa del CaminoAragonés.

Álgebra relacional

(SELECT DISTINCT Ciudad FROM Albergue)

2.1. ~ODELADO RELACIONAL 201

• te.

SqlSELECT NombrefROM CiudadWHERE Nombre NOT iN

.para peregrinos.

Álgebra relacional

n r- 1 «PEREGRINO) * (ON",n1>r< c.~Jnll"~,,{CAMINO_PEREGR1NO))Nlunt'lrc "-""'P ~'hl

2. Nombre y Comunidad Autónoma de aquellas localidades que no posea N albergue'

SqlSELEC'r Nombrc_CornpletoFROM Peregrino, Carnino_Peregrino. .,WHERE Peregrino.Número_1 =Carnlno_Pereg~lno.~u~ero_l

AND Camino_Peregrino.Nombre_C= Santiago

CONSULTAS

1. Nombre de los peregrinos que han realizado el.Canlino de Santigo (se cuentan sóloaquellos que han llegado a la Localidad de Santiago).

I:

'REATE TABLE Camino_Peregrino (Número_1 INTEGER.Nombre C Nombre_ Válido.Fecha Paso DATE.

'RIMJ\RY KEY (Número_l, Nombre_C. Fecha Paso),=OREIGN KEY (Núrnero jl) REFERENCES Peregrino

ON UPDA TE CASCADEON DELETE CASCADE

=()REIGN KEY (NombrcC) REFERENCES CiudadON UPDATE CASCADEON DELETE CASCADE

REATE TABLE Peregrino (Número 1 lNTEGER.Nombre _Completo Nombre., Válido NOT NULL,Dirección CHAR( I00),

RIMARY KEY (Núrncro.j)

ON DELETE CASCADE

o DISESO DE BASI,S DE DATOS· PROBLEMAS RESUI:'.I.TOS

Page 107: Diseño de Bases de Datos - Problemas Resueltos

"Dentro de cada programa cada provecto tiene 111/númern asociado v una(',,"ri(/ad de dinero financiada (por ejemplo, el proyecto "BDC _ Ra,,:esdeDatos 111/Colores" tiene el IlIílllero 31/3 dentro del programa "Avudas alPobre Investigador" que le financia C(/I/ 30.000 pesetas). .. .

PROY¡':CTO (Código P, Nonlbrc_P, Presupuesto*, F_fni. F_Fin •. Grupo)

Además. podernos considerar el nombre del proyecto como clave alternativa. .. ,pue~,en ~nnclpro se puede considerar único, Los atributos "Presupuesto" y Fecha determmación ("P _Fin"), a priori pueden ser desconocidos, por lo que pueden admitirlalores nulos.

, Tenernos una relación PROYECTO donde la clave primaria es "Código_P" y alIgual.que la anterior, no podernos incluir el atributo Programas. pues éste seríamultivaluado, lo que tría en contra de los elementos permitidos del modelo relacional.

"Cada proyecto de investigacián nene 1111 1I011lbre, /111 cádigo único, UII

presupuesto, fechas de inicio y terminacián _I' UII grupo que lo desarrolla",

Adernás podernos considerar que el atributo "Experiencia" puede admitir valoresnulos, al igual que el atributo Grupo, pues podemos considerar que cuando entra unprofesor nuevo, todavía no se le ha asignado grupo,

No debernos incluir Proyectos corno atributo de la relación PROFESOR, puestoque un profesor puede trabajar en varios proyectos a la vez y por tanto sería unatributo rnultivaluado que no está permitido en el modelo relacional.

PROFI:<:SOR (DN!. Nombre Prof , Titulación, Experiencia*, Grupo")

Tenemos una nueva relación PROFESOR, cuya clave primaria es "Dbll". pues esel que identifica unívocamente cada ocurrencia de la relación,

"U" profesor está identificado por Sil DNI. De él se desea saber el nombre,titulación. años de experiencia en investigacián, grupo de investigación el/ elque desarrolla su labor y proyectos en los que trabaja, "

Por los mismos motivos que en el caso anterior podernos admitir que el atributoLider tome valores nulos

GRUPO (Nolnhre G, Código D, Área. Lfdcr*)

Del anélisis de este párrafo se deduce la existencia de la relación GRUPO, Comoel nombre del grupo es único sólo dentro de cada departamento. la identificación decada grupo requiere 10l>atributos "Nombre_O" y "Códign D".

~.I: Ñ10DELADO IU,',LACIONAI ~o,'• k'\ ~t-\

Discusión del enunciado

IDENTIFICACiÓN DE LAS RELACIONES BÁSICAS

"VII depurtamenta se identifica por 5/1 nombre (1IlfonnáticlI. Ingenieria. etc J"Tiene tilia sede situada en UII deterrlliTlado e(lIllpl~S, 1111telé~ono de COlllaCIOy1111 Director, que ha de ser 1111 profesor de esa Universidad.

I . lodos los datos anteriores necesitamos la relaciónPara a macenar . . ' d d nto Adema-DEPARTAMENTO, cuya clave pnrnana será el nombre e epartame . , ' ....

" l ,- SEDE que almacene los datos sobre las distinta.debernos incluir una nueva re acion "sedes de la Universidad ("Campus" y "Nombre_Sede ),

DEPARTAMENTO (Código D, Teléfono, Director")

SEDE (Nombre Sede, Campus)

Podemos considerar que el atributo "Director" pued~, admitir nul~s. _.y de :<;:~forma permitir introducir un departamento de nueva creacion al que toda VI U no S

haya asignado ningún director,de i ' 'ó c: d xrllPO..Dentro de 1111 departamento SI.' crean grupos El /lIVeSIIR(lel 11. (1 (1 ,

tiene 1111nombre líllien dentro del departamento (pero que puede ser el.'TlI.WIIO

1 , - d partamentosl l' e~tá asociado a 1111 área de CUIIOCllIl/elllOen e isuntos e, ., etc)b I d ItOI inteligencia artrjieial, sistemas y eO"'lIllIeael(llIt',~, ' .( ases te ( ., U' 'd d "Cada grupo tiene /1" líder que Irade ser profesor de la 11I1'erSIti •

1 , I indicando claves primarias y ajenas. nulos.Diseñar el esquema re acionaopciones de borrado y modificación. etc,

Efectuar además en álgebra relacional y en SQL las siguientes consultas:

• Profesores que trabajan en el grupo del prestigioso científico "Juan Pérez".

• financian los proyectos del grupo que dirige ese famosoProgramas queprofesor.

, ' 'ó' n nombre un código único. unCada proyecto de mvesugaci n llene u. P, , ' inació grupo que lo desarrolla, or otro

Presupuesto fechas de micro y tcrmmaci n Y un , d.' . ' a nas Dentro de cada programa ca alado puede estar financiado por vanos progr I . . '1'. - ro asociado y una cantidad de dinero financiada (por ejernp o.proyecto llene un nume . l nú 111 ~ dentro del

I oyecio "BDe - Bases de Datos en Colores" tiene e numero - ~;r:;ranla "Ayudas al Pobre Investigador" que le financia con 30,000 pesetas).

Un profesor puede participar en varios proyectos, En cada ~royec~ ~~ in~?rp~raen una determinada fecha y cesa en otra, teniendo una delermlnada e icacion enhoras a la semana) durante ese período,

10~ DISEÑO OEBAS¡",SDE DATOS: PROBLEMAS RESUELros

Page 108: Diseño de Bases de Datos - Problemas Resueltos

Figura 2. J .38

N b J> f. T' lll:N.M:C0111 re ro, itulucién. Experiencia -. C;'I[JO")..__.... PROFESOR (DNJ.

_.. IB:C,M.CI ... GRUPO (Nombre Gt{o/nbre D, Área.Lídet*)r--- _jTn N.M e

. Por otro !ado debemos relacionar GRUPO con PROFESOR, a través del atributol.íder, clave ajena de la relación GRUPO. que referencia a PROFESOR.

p Po.r,último. y puesto que todo profesor pertenece a un grupo, debernos relacionarJ'~OF~S.OR con GRUPO .a través del atributo "Grupo" de la relación PROFESOR.1" te atnbut~, es un atributo compuesto que contiene el nombre del grupoNombre_G ) y el departamento al que pertenece el grupo ("Código_D").

De esta forrna el subesquema relacional queda de la siguiente forma:

r~"":._JD_E::_P:_A=R:_T:_A:.:M.:.::..::E=N.:..T:_O~N=o:m:b:re=D=.~s:e:d~e,~T~e~Jé~~~o:no~.~D~irt'c(1),.)I B :-.I.M e

Por un lado. debemos interrelacionar DEPAR'rAMEN1'O y GRUPO. Esto se haceJ I.ravés.del atributo "Código D", de la relación GRUPO, que es clave ajena quereferencia a DEPARTAMENTO.

"Dentro de ~ada dep~rtalllento se crean grupos de investigacián ..., ademáscada grupo tiene UIl lider que es UII profesor ... Se desea conocer el grupo alque pertenece cada profesor ''.

Si se .elimina un profesor director de algún departamento, se debe controlar queno s: el~n1Ine.el departamento, por tanto el borrado debe ser con puesta a nulos (BN) orestringido, sin embargo la modificación puede hacerse en cascada.

Opciones de borrado y modificación

Figura 2.1.37

DEPARTAMENTO (Numbre p, Scd~TeJéfono.Dtrcctor+¡L. I 11'.\ll

~ROFESOR~. Nornbre Prof Tuulacrén", Experiencia". Grupo")

E~iste una interrelación entre DEPARTAMENTO y PROFESOR, que se efectúaa través de la clave ajena "Director", de la relación DEPARTAMENTO. como semuestra en la figura.

2.1: MOI.)~,Li\DO RELACIONAL 205

e E o e \' .' t: · , (:~o (~\:)o , I.~.e·.e~ee e e e e •• ",e• e e. e e e e

tiene U/1 director que ha de ser prufe.\·()r de la,.... todo deportamentouniversidad. "

Si consideramos que todo departamento tiene que tener al menos una sede y queen cualquier sede al menos hay un departamento, debemos asegurar e~ta'cardinalidades mediante disparadores.

Reglas ECA

Opciones de borrado y modificación

Las opciones de integridad referencial de ambas claves ajenas pueden ser encascada.

Figura 2.1.36

~OEPARTAMENTO (Nombre Q Teléfono, Director")

11C.M eUBICACIÓN (No/nb Secle N /lIbre D

O·C.M:C

'---'S'EDE (f'!olnhre Sede, Campus)

Un departamento puede estar repartido en varias sedes, pero en cada sede .e~islel\varios departamentos, por ejemplo en el campus de Leganés, la Escuela PolitécnicaSuperior tiene, entre otros, los departamentos de Informática y Maten1á~icas: Esto I\O~

obliga a introducir una nueva relación UBICACIÓN cuya clave pnrnana será laconcatenación de las claves primarias de las relaciones DEPARTAMENTO Y SEDE.además cada una de ellas será clave ajena que referencia a la relación de la cualproviene.

..VII departamento SI! identifica por Sil nombre (Infonllálica. lngenierta. etc).Tiene ulla sede situada en '11' determilla(/o campus ... ''.

ANÁLISIS DE LOS SUPUESTOS SEMÁNTICOS

PROGRAMA (Nornbre Prog. Número p, Financiación)

Tenemos la relación PROGRAMA, donde en principio, podemos considerar elnúmero de proyecto ("Número_P"). junto con el nombre del progr~ma("Nolnbre_Prog") corno clave primaria, puesto que un proyecto puede ser financiadopor varios programas.

20_¡ DISEÑO DE BASES DE DATOS: PROBLEMAS RESU,"LTOS

Page 109: Diseño de Bases de Datos - Problemas Resueltos

Figura 2./.40

n Lógicamente .en un proyecto pueden p~ic.ipar varios profesores, por lo tantoccesll.amos incluir en el esquema una relación Intermedia PARTICIPA, cuya clavepnmana estará formada por las claves primarias de las relaciones PROFESOR~ROYECTO, q~~ a su vez serán claves ajenas de sus respectivas relaciones. Ademá:\;:~ nueva relaclo~ c~ntendrá las fechas de inicio y cese de cada investigador en ei~. :eeto y la dedicación: la fecha de cese puede admitir valores nulos, pues puedeudicel caso de profesores que continúen participando en un determinado proyecto SirUllcra darse cl caso de que el' r . . •1IlrCr' " '. rnrsmo prorcsor participase en el mismo proyecto enl.. cnt~s pe.rrodos de tiempo, se habría de incluir la fecha de inicio como parte de la-ravepnmana de PARTICIPA.

PROYECTO {Código P,Non\bre_P. Presupuesto', FJni. F_Fin'.Grllpo}

Il R.M C'

PARTICIPA CDNI. Có!li.i'-l'-LF.lnicio. F_Cese"'. Dedicación),---- __jI1:R.,'vt:(·

PROFESOR CDN!. Nombre Proí, Titulación, Experiencía=, Gr-"po')

:'VII profesor puede participar en varios proyectos. En cada provecto feincorpora en IlIIa determinada lecho v cesa en otra, teniendo unadeterminada dedicación [en horas a la semana¡ durante ese pertodo ".

~e debería conlrol~r mediante una aserción que el presupuesto de cada proyectosea siempre mayor O igual que la suma de las financiaciones otorgadas por cadaprograrna a cada uno de los proyectos.

De~eríamos comprobar rnediante un CHECK que la fecha de inicio del proyectoes anterior a la fecha de finalización.

Restricciones de rechazo

Cada proyecto de investigación es desarrollado por un grupo. por otra parte, unmismo grupo puede llevar a cabo varios proyectos. La manera de hacer constar estehecho es considerar el atributo "Grupo" de la relación PROYECTO como clave ajenaque referencia a GRUPO.

Opciones de borrado y modificación

El borrado y la modificación de la clave ajena grupo puede ser en cascada(BC~C), pues si se elimina o se modifica un grupo, es lógico que se eliminen omodifiquen todos los proyectos que llevaba dicho grupo.

Lo mismo sucede con las claves ajenas "Código_P" y "Nornbre Prog" de larelación FINANCIA.

2.1: MODELADO RELACIONAL 207

Figura 2.1.39

Como no se nos dice nada en contra, podernos suponer que un mismo progran1apuede financiar a varios proyectos, pero dentro de cada programa los proyectos llevanasociado un código, por tanto no es necesario construir una nueva relación FINANC,I¡\(relación intermedia) cuya clave primaria será la concatenación de las claves priman,,'de PROYECTO y PROGRAMA, que además serán respectivamente, claves ajenas delas relaciones de las que provienen. Por otro lado debernos incluir también :n ~~t;tnueva relación los atributos "Número_P" y "Financiación" que en un prrnclplllhabíamos considerado dentro de la relación PROGRAMA.

GRUPO (Nombre GNombre l)Árca.l.Jdl''-')

PROYECTO Código P, Nombre_P, Presupuesto", F_lni. F_Fin". Grupo).-- __jB.C\!,('

rPROGRAMA (Nombre ,prQ~)

I B:(.M.(.FINANCIA (Nombre Prog. CQ¡/jg() P,Número_P, Financiación)

.-- _l 6,c.M.\

Reglas ECADeberíamos controlar mediante un disparador que, cuando se inserte un nuevo

grupo, exista el departamento correspondiente y. en caso contrario insertar primero eldepartamento.

"Cada proyecto de investigación tiene I,n nombre .... y un grupo que lodesarrolla. Por otro lado, puede estar financiado por varios ¡lrogra/llas ".

Opciones de borrado y modíflcacién

Si se elimina un departamento no tiene sentido dejar los grupos pertenecientes almismo, por tanto el borrado se hace en cascada (BC), al igual que la modificación(MC).

Además, si se elimina un grupo se debe poner a nulos (BN) la clave ajena"Grupo" de la tabla profesor. porque de no hacerlo eliminaríamos a todos losprofesores pertenecientes al grupo y esto no se puede admitir. En cuanto a lamodificación, debe hacerse en cascada (MC).

En cuanto a la clave ajena de GRUPO, "Líder", su eliminación sería con puesta (1

nulos (BN), porque en caso contrario, si cambia el líder de un grupo lo eliminaríamosde la relación PROFESOR, caso que no está adrnitido.

Entre las relaciones DEPARTAMENTO. GRUPO y PROFESOR. existe un cicloreferencial que impide la creación de las mismas según las especificaciones delSQL_92. Este problema se puede solucionar creando las tablas sin las claves ajenas yposteriormente modificarlas añadiendo las restricciones de integridad referencial.como se muestra en el script.

206 DISEÑO DE [JASES DE DATOS: PROBLEMAS RESUELTOS

Page 110: Diseño de Bases de Datos - Problemas Resueltos

. ,,.,, ~ . ~ \. "•....•~ •.••.•••.••~".

CREATE TABLE Profesor (ONr Tipo_DNI.Nombrc_Prof Nombre_ Válido.Titulación CHAR(20) NOT NULL,Experiencia INTEGER,Grupo Nombre_ Válido,

I'RIMARY KEY CONI)).

('REATE TABLE Grupo (NOlnbrc_G Nombre_ Válido .Código D Nombre_ Válido.Area Nombre Válido_ .Líder Nombre Válido_ ,

PRIMARY KEY (Nombre_G, Código D)1:.M e

po¡

):

CREATE TABLE Ubicación (CódiguD Nornbre , Válido,Nombrc_Sedc Nornbrc, Válido,

PRIMARY KEY (NoI11bre_P. Sede)J:OREIGN KEY (CódigojD) REFERENCES Departamento

ON UPDATE CASCADE,¡';OREIGN KEY (Nombre_Sedc) REFERENCES Sede

ON UPOA TE CASCADE

CREATE TABLE Departamento (Código_D Nombre , Válido.Sede Nombrc_ Válido,Teléfono CHAR(9) NOT NULL,Director Nombre Válido_ ,

PRIMARY KEY (NombreP, Sede)):

('REATE DOMAIN Nombre_Válido CHAR(30):CREATE OOMAIN Tipo_Código CHAR(5):CREATE DOMAIN Tipo_ONI CHAR(9):

CREATE TABLE Sede (NombreSede Nombrc, Válido,Campus Nombre_ Válido,

PRIMARY KEY (Nombre_Sede));

SCRrPT EN SQL_92

.!:k.~~:!::'A __,:;!.I:MODELADO Rf,I.,\CIONAL 20e¡

...:..~~.._•.••••••Figura 2. J ,4/

UBICACIÓN (/.;".:", e;,«. Al", ,I"D D )11l( Me

4 ARTAMENl'O (Numblc D, S~d~Tel¿fono, OI¡<'¡j'Ñ,:1 e

~ IIlCI't( .-Jo GRUPO (NQmbre (j.NQmbre !lArca, LI,def.)

11.'.~Il'

1 .. ,,, ,,·c• lQf::lJ. Nombrc_Prof. TItulación, Experiencia", G;;/P{1~)

RRlMC

PARTICIPA (nNI r-, P F-inicio. F_Cese". Dedicación)lB R,M.C

1" ('UfPROYECTO <Código P, Nombre_P. Presupuesto", FJni, F_Fin' );',"

11 e,M (I .. ('ROGRAMA ("'" "

I f!CIM('FINANCIA (t:{gJlllul' Pro!). CQdillo e Númel'o P, Fmancmcrén!

I n r ,M e

Il ( M e

SEUE (Nlllnb¡c Scd~Campus)

·RAFO REI,ACIONAL

testricciones de rechazo

eglas ECA

I DISt-:ÑO DE BASES DE DATOS; I'ROIlI.I,MAS RESUELTOS

Se debería controlar con un CHECK que la" fechas de inicio de participación enida proyecto sean anteriores a las fechas de cese.

Cuando se introduzca un nuevo proyecto, en él deberá participar al menos unofesor. lo que podríamos controlar con un disparador que, por ejemplo. cada vez quesertemos un nuevo proyecto, se le asigne al menos un profesor de los existentes y enISOcontrario rechazar la inserción.

pciones de borrado y modificación

Los borrados de las dos claves ajenas de la relación PARTICIPA deben serstringidos para poder guardar la información acerca de la fechas y la dedicación as proyectos, de cada profesor. La modificación en cualquiera de los dos casos es enscada.

Page 111: Diseño de Bases de Datos - Problemas Resueltos

n'1"",h,,· 1',." (IlN"",hr<_",,,, (;n¡p,,(PROFESOR)* n)j •. (.(r<. (GRUPO), . \lIn.,rlO_ I vi h.l\!f.. JUJII Ptf\'/' »• P'llgr f .

amas inancran los proyectos del grupo que dirige ese fumoso profesor.:-,c¡I

.~ELECTNonlbrc_ProgI'ROM Prograllla. Financia Proyecto Grupo\VIIFRE P N' ,~ • rogral~a. ornbre_Prog= Financia.Nombre Prog

ANO Flnancia.Código_P = Proyeclo.Código PAND Proyecto.Grupo=Grupo.Nombre_G ANO Líder=')uan Pérez;

.:\Igebra relacional

SELECT Nornbre ProfFROM Profesor. Grupo\VHERE Lídcre 'Juan Perez' AND Profesor.Gnlpo=Grupo.Nombrc G'_ .

1. Profesores trabajan en el grupo del presligioso cientffico "Juan Pércz".

Sql

t'()NSULTAS

('REATE ASSERTION SubvenciónCl1ECK «(SELRCT Presupuesto

FROM Proyecto NATURAL JOIN Financia) <(SELECT SUM CFinanciaci6n)FROM Financia NATURAL JOIN Programaj):

CREATE TABLE Programa (NOlllbre_Prog Nornbre , Válido.

PRIMARY KEY (Nombre Progjj:

('REATE TABLE Financia (NOlnbrc_Prog Nornbrc , Válido.Código_P Tipo_Código,NúrnerojP Tipo_Código,Financiación LNTEGER.

~RIMARY KEY (Nombre_Prog. Código_P),rOREIGN KEY (Código P) REFERENCES Proyecto

ON UPDA TE CASCADEON DELETE CASCA DE.

FOREIGN KEY (Nombre_Prog) REFERENCES ProgramaON UPDATE CASCADEON DELE'fE CASCADE);

K,\ "'"....::::=------------ _;2U·I...!M~(~)l)~él.f'I)OI(I::LACIONAl. 211

••••••••••••••••• \.',.,.1•..• ,.1.1•

);

CREATE TABLE Participa (DNI Tipo_DNl.Código_P Tipo_Código.F_Inicio INTEGER NOT NULL,F_Cese DATE,Dedicación INTEGER NOT NULL,

PRlMARY KEY (DNI, Código_P).CHECK (F_Inicio < F_Cese).FOREIGN KEY (DNl) REFERHNCES Profesor

ON UPDATE CASCADE,FOREIGN KEY (Código_P) REFERENCES Proyecto

ON UPDATE CAS(_'ADE

);

CREATE TABLE Proyecto (Código_P Tipo_Código,Nombre P Nombre Válido._ _Presupuesto INTEGER NOT NULL,F_lni DATE NOT NULL,F_Pin DATE,Grupo Nombre_ Válido,

PRlMARY KEY (Código P),UNlQUE (Nornbre P).CHECK ( F_lni<F _Fin),FOREIGN KEY (Grupo) RErERENCES Grupo

ON UPDA TE CASCAOEON DELETE CASCADE

ALTER TABLE ProfesorADD FORElGN KEY (Grupo) REFERENCES GrupoON DELETE SET NULLON UPDATE CASCADE;

\LTER TABLE GrupoADD FOREIGN KEY (Código_D) REFERENCES DepartamentoON OELETE CASCADEON UPDATE CASCADE.

ADD FOREIGN KEY (Líder) REFERENCES ProfesorON DELETE SE'[ NULLON UPDA TE CASCADE;

\L TER TABLE DepartamentoADD FOREIGN KEY (Director) REFERENCES ProfesorON DELETE SET NULLON UPDATE CASCADE;

10 DISEÑO DE BASESDE DATOS' PROBLEMAS RESUELTOS

t' •• ".' ••••• '•• '•• ,.' ••••• '••

Page 112: Diseño de Bases de Datos - Problemas Resueltos

•••• ~••• ee, •••• e ••••••••••\.'•••·•••••••~.e

"Por otra parle, fe desean conocer los planetas que ha visitado cadattuemhru di' la trtpulacián _I' el tiempo que permanecieron en ellos para saber

,CAMARA (Código C. Categorfa, Capacidad)

'rRIPULACl(~N (Código T. NombrcjT, Categoría, Antigüedad", Procedencia',\UIII)

Para almacenar los tripulantes de la nave, utilizaremos una tabla TRIPULACiÓN,qll~tendrá como atributos el nombre, el código (que será clave primaria), la categoría,.1Il1Igüedad,procedencia y situación administrativa de cada tripulante, Consideraremosque tanto la antigüedad corno la procedencia de cada tripulante pueden ser datosJe~conocidos, por lo que admitirán valores nulos, El enunciado también nos habla deun tipo de dependencia especial, las cámaras, cuya función es la de servir de alo­¡.unientoa Jos tripulantes de la nave. Aunque posteriormente resolveremos cómo tratard hecho de que una cámara es un tipo especial de dependencia. de momento'1lI1plementecrearemos una relación que tendrá como atributos el código de la cámara(queserá clave), la categoría y la capacidad,

"S(' qutcr« /{('I'(l1 al dia /11/0 rrlacián d« lo tnpulacián de la 1101'(', 1:.·.f10

informacmn contiene el nombre, cádigo. categnria, onttguedad. procedencia\ 1/11/(1('11)11 udnnntstrativa (1.'11 servicin. de baja .... j .... Una "ti/liara ('.1' 1/110

dependencia oue PO,II'I.' do« curactrristicas propias. ~'II categoria \. ,111

cupacuku! ".

I>F.PENDF.NCIA (fódigo D.NombrcD, Función, Localización')

SERVICIO (Clave, Nombre S)

Tras la lectura del primer párrafo, parece claro que DEPENDENCIA va a ser unarelación. que tendrá como atributos un código (que será clave). un nombre de ladependencia (el cual supondremos que es único para cada dependencia. y por tanto,erá clave alternati va), una función. y una localización, Supondremos que todadependencia tendrá obligatoriamente un nombre (de hecho. la hemos eonsidcradocorno clave alternativa). pero permitiremos que tanto la función corno la localizaciónpuedan tornar valores nulos, SERVICIO será también una relación, y sus dos únicosatributos, el nombre y la clave. formanin la clave de la relación.

"Lo /111\'" cspucut! se compone de distintas dependencias, y cada 11110 de ellas111'/1(' un nombre. 1111 C6digo túnico para cada dependencia), IlIla [uncián y1111(1 localizacián. Cada dependencia I!SlIí bajo el control de U/I determinadoServicio, identlficado por IIn nombre y 11110 clave. ..

IDENTIFICACIÓN I)E LAS RELACIONES 8ÁSICAS

Discusióndel enunciado

~.I: MODrLADO REI,/\CIOI"AL 21J

nunciadoEl Ministerio de Defensa español desea desarrollar un Sist:ma de I~formaci(lll

ira la nave espacial Casiopea 2000 que próximamente se lanzara al espacio. La Base: Datos deberá contener la siguiente información:

La nave espacial se compone de distintas dependencias, y cada una de ellas lie,n\!1nombre, un código (único para cada dependencia), una funci?" y un~ localización.ada dependencia está bajo el control de un determin,a~o Servicio, Iden~I.ftcadO por UI~rmbre y una clave, Todo servicio de la nave (Servicio de Operaciones, C,ol1Hlndo)ontrol, Seguridad. etc.) ha de estar asignado por lo menos a una dependencia,

Se quiere llevar al día una relación de la tripulación de I~ nav,e, ESI:i Inform~CII'~"»uiene el nombre, código. categoría, antigüedad. procedencia y suuacion adrmnistruva (en servicio. de baja ...). Cada tripulante está asignado a una dependencia que .,l'

esca conocer. a:-oícorno la cámara en la que se aloja, Una c~lnara es una dependenciauc posee dos características propias. su categoría y su capacidad,

Por otra parte, se desean conocer los planetas que ha visitado cada miembro de 1.1" I ión y el tiempo que permanecieron en ellos para saber las personas con qUII':1IIpU acto , ' D d la lCl'je uede contar a la hora de realizar una exploración interplanetaria. e ca a pi.'e ~onoce su nombre y código, la galaxia y coordenadas en las que se encuentra.vlgunos planetas se encuentran poblados por diversas, razas, ca~a una en una Cle~~:lantidad de individuos. De cada raza se almacena información sobre el nornh '.oblacióu total y dimensiones medias (altura, anchura, peso),

D ' - e el esquema relacional. Indique en él las claves primarias. clav 1."isen , . if lox rnodo- (klternativas y las claves ajenas. De estas últimas, especi ique os m

a . , ccptcnborrado y modificación, Marque con un asterisco (*) los campos qu,~ avalores nulos, y por último, indique si existe algún atributo que eXIJa dCÍli111alguna restricción 11 fin de mantener la integridad de la base de datos,

Escriba las siguientes consultas en SQL y en álgebra relacional:

• Razas que habitan en los planetas visitados por Flash Gordon

• Cámaras que han llegado a su capacidad máxima.• Nombre de los tripulantes asignados a alguna dependencia de seguridad

R()BLEMA 8: NAVES ESPACIALES RELACIONAL

Álgebra relacional

11 « PR()G RAMA)* nN "." I,,,...«FINANCIA)*n(',i<I,~,, p«n( ,,J,~,,l'·flUIO'"I'Hllhll' Ittll~ 111Tle r ...

{PROYECTO»*(nN""lh'" (I(ON"1I1Ne' 'Juanrc".,,(GRUPO»»)

&'W.\ \t\DISENOD~ HA'iI,S DEDAros, PROBLI-J\\ASRESlll"I'IO~S~ _

Page 113: Diseño de Bases de Datos - Problemas Resueltos

"...Cada tripulante está asignado a una I .ost como la cámara 1'11 la que V" (11' Ut epeñ"dellc/tI que se desea conocer,

. I . e, . oJa, na C IIlara ev u 1dependenciposee l os caracteristicas propia. . , . lit epent ene/a que", .111 categorta y Sil capacidad

En este segundo párrafo nos e: ,I.lr el hecho de que una cáma~a ~~~~I~~rnos ,con. las siguientes restricciones a con-" vada tripulante tanto a la depende~cja e~o espec~a~ de dependencia. y la asignación

'1.1 La ~xistencia de este tipo especial de Jue tra aJ~ como a la cámara en las que se1't"lhlhdad de crear suposiciones adi . ~pendenclas no~ podría hacer planteamos

iciona es. como por ejemplo que las cámaras se

() .pciones de borrado y modificación

Tanto los borrados como las modif . .:n (a\cada a la dependencia que cont Illcaclones de cualquier servicio se propagaríanro e.

Figura 2./.42

D N . • I Be.M e I• ombreD,Función. Localización', ClaveS,Nontbre_S)DEPENDENCIA (Código

~SERVIClO(llave. Nombre S)

Con respecto a la tabla SERVICIO es necesa . -únicos atributos de esta tabla son los que forman . no un pequen? co~entario: lospensar en eliminarla, y únicamente uardar los se~~~~ de la e.lave pnmana. Podríamosen la tabla DEPENDENCIA ( dg. ICIOS asociados a cada dependencia

que ejaría de ser clave ajena iría sitornar valores nulos). Sin embargo no' 'f' 1. • • pero segui a sin poderrestricción anterior (que todo servici~ es~us~r.1 ,~as. cdornPllcado controlar la segundaviera asocia o a una dependencia):

• Mediante una tabla SERVICIO tendríamos suf . .obligara a que cada vez qu' ciente con un disparador quee se Inserta un nuevo se . . .dependencia. y que no se pe iti b . rvicio se asociara a una

. . rml lera orrar una depe denci .serVICIOque la controla si era la única controlada por d I n inado o n:~dlficar ele errru na o serVICIO.

I Si almacenaln.os los servicios sólo en la tabla DEPENDENCIAS 'borre o modifique una dependencia t d . cada vez que se.bJ en remos que controlar d Iposi es valores que pudiera tomar . . que to os osdependencias. de forma similar al un serVICIO.aparecieran en alguna de lasbastantes más problemas si desearn ñadf: antenor. Sin embargo, tendríamos, . os anac Ir un nuevo servicioque modificar para ello la propia bas d d (p: . . • ya que tendríamosmodificar el código que com ba e e aros para cambiar los dominios o paradependencia). pro ara que todos los servicios controlan alguna

2.1: MODELADO RELACIONAL 215

l.·•• '••• '. '•• 'e •••• '. e • ". te le. '•• r••

Comenzaremos tratando el hecho de que cada dependencia esté bajo el conlrol,!.'un determinado servicio y que cada uno de éstos controle. al menos, una dependclh:I.1Para controlar la primera restricción, puesto que toda dependencia está bajo el c0l1ln·1de un detenninado Servicio (y sólo uno), necesitarernos propagar a esta tabla ,,)I1t.

clave ajena los atributos que son clave primaria de la tabla SERVICIO (e~IOe'. l.,elave y el nombre). Estos dos atributos, por lo tanto, serán clave ajena cn la I.lh!.,DEPENDENCIA. Además. no podrán tomar valores nulos. ya que en los requisito' ,.nos ha exigido que toda dependencia está obligatoriamente bajo el control tI<' 111;

servicro.

..... Cada dependencia está bajo el control de Iln determinado Servicio,identificado por 11/1 nombre y una clave. Todo servicio de la nave (Servicio deOperaciones, Comando)' Control, Seguridad. etc.) ha de estar asignado porlo /TlenOSa Ilna dependencia"

ANÁLISlS DE LOS SUPUES1'OS SEMÁNTICOS

RAZA (Nolnbre R, Altura, Anchura. Peso. Población_Total)

PI.ANETA (C'ódigo p. Nombre..P. Galaxia, Coordenadas)

En este último párrafo detectamos la presencia de las últimas dos relacionesásicas: PLANETA Y RAZA. Con respecto a los planetas, el enunciado nos dice quesndrá un código (que será clave primaria). un nombre, la galaxia en la que -encuentra y sus coordenadas. Cada uno de éstos será un atributo. aunqueonsideraremos que tanto el nombre como las coordenadas serán únicos para cada-laneta, y por tanto podremos considerarlos como claves alternativas. En cuanto a la;alaxia, podría considerarse la posibilidad de crear una nueva relación (por ejemplo.~ardar información adicional acerca de cada galaxia). sin embargo. a falta de másnformación, lo trataremos simplemente como un atributo. En cuanto a la relación"{ALA. tendrá un nombre, que supondremos único y por tanto será la clave primariaIe la relación, y una serie de atributos: la altura. anchura y peso. medio de la raza. y I~lpoblación total dc dicha raza en lodo el universo. El enunciado también nos exigealmacenar la población de una raza presente en un planeta. Esta información 1111

podemos guardarla en ninguna de estas dos relaciones, ya que un planeta puede e~1i1lhabitado por muchas razas, cada una de ellas con sus poblaciones parciales. y una ralapuede vivir en distintos planetas. Posteriormente veremos dónde situar este atributo.

las personas COII quien se puede contar a la hora de realizar 11110exploraciónillterplalletaria. De cada planeta se COlloce SI4nombre )' código. la galaxia )'coordenadas ell las que re ellcuentra. AlgIIIIllS planetas se el1cuentrallpoblados por diversas razaS, cada una en una cierta cantidad de individuos.De cada r,,¡:tI se ctmacena infonnaciórl sobre ('1 nombre, poblacién totul vditnensiolles Inedias [altura, anchura, peso)".

U KA \1.<\~ DISr.ÑO D¡'. BA!>ESDE DATOS: PROBLEMAS R~SUEL lOS

Page 114: Diseño de Bases de Datos - Problemas Resueltos

, ) .J J j ,) } ) .: ./ I U ) ~ ,~ ~ ~ 3 0••••••••••••••••••••••••••

Los borrados y modificaciones de las claves ajenas de la relación VISITA serán'11 ca~cada.

Opciones de borrado y modificación

Figura 2.1 44

I'I.ANETA(Código P. Nombre_P, Galaxia, Coordenadas)

)le \11

\ ISITA(Código_T. Planeta. Fecha; Visita Tiempo)neMer-----__J

rkll'ULACIÓN (Código T,Nombrc_T. Categoría. Anuguedad', Procedencia", Adm.Dep, COI1I)

La relación VISITA recogerá las estancias de los tripulantes en los planetas.l-ormarán parte de su clave, por tanto, las claves ajenas de las relaciones,TRIPULACJC)N y PLANETA, además dc un atributo que contenga la duración ded..:ha visita, Además, si suponemos que un mismo tripulante ha podido visitar unplaneta más de una vez, necesitaremos incrementar la clave para evitar que ésta sercpua con cada nueva visita. Para ello añadiremos el atributo "Fccha_ Visita" querecoja la fecha de la visita, y que formará también parte de la clave primaria. Estounplicará que, aunque un tripulante ha podido visitar un planeta más de una vez, estas\ isitas habrán tenido que producirse en distintas fechas (lo cual es una suposición1,l/onablc).

La últimas restricciones son las siguientes: se desea recoger tanto los planetas\ isuados por cada miembro de la tripulación como las razas que habitan en cadaplaneta. Para ambas necesitaremos crear una relación intermedia, ya que, por unaparte, un miembro de la tripulación ha podido visitar más de un planeta, y cada planetapuede haberlo visitado más de un tripulante y. por otra, una raza puede habitar end¡~tintos planetas y en cada planeta pueden convivir varias razas,

..Por otra parte, se desean conocer los planetas que ha visitado cadamiembro de la tripulacién y el tiempo que permanecieron ell ellos para saberlas personas con quien se puede Contar a la hora de realizar una exploraciónnuerplanetaria ....AIKU1l0S planetas se encuentran poblados pOI diversasrazas, cada una en 11110 cierta cantidud de individuos. De coda raza sealmacena mformacián sobre el nombre, poblucián total " dimensionesmedias (altura. anchura, peso).

2.1: MODELADO RELACIONAL 217

,V ~I••••••••••~-i.~·

Restricciones de rechazoP'¡rcl.'". . , ecc en el enunciado pero que •Una restricción adICional que no a~ar , á .: lantes de l."

ble es la de uc no puedan estar alojados en una cámara m s tt Ip~ .razonda . q'dad Esta restricción se recogería mediante una asercIón.que a rrute su capaci ., .

Reglas ECA

Opciones de borrado y modificación. . , I caso de "Código C" de la relacionLas opciones de borrado y modlficaclon en e . _ d TRLPUI 1\

CÁMARA serán claramente en cascada. En el caso de las clav~s ajenas 't~n ido o· en, dificaci . <ería en cascada y el borrado podría ser res gClüN la mo I lcaClon " ' , ,

cascada. En la solución propuesta se ha optado por este último.

¡;igura 2,1.43

Ht 'tt

",,,,,,.,A' f'roo:dencia Adm. 0.:/, CiulI)TRIPUlA(.]ÓN «(¡'digu T,Nontf'e T, C'lIlcglll'ld.Ant't-.....- , ' .It(' \1l

L ,., de que una cámara es un tipo especial de dependencia la haremosa restnccion , d I dependencia

.ciendo que el código de la cámara sea también clave ajena e a

ndencia a la que está asignado un tripulante Y la cámara en laPara recoger la depe ., TRIPULAClÓN la clave primaria de

l '. d berernos propagar a la relación ..re se a 0Ja, e . DEPENDENCIA y CÁMARA, que serán claves ajenas queida ~::~o~:;e~:~~~~e~~o (ya que corno hCll10Sdicho, todo tripulante trabaja en unao po r .' '1 . 'mara)sólo una dependencia Y se aloja en una Y so o una ca .

DEPENDENCIA «('Aligo D, NoII'i>re_d. Función ,U.x:a!i7áCión', e/al·e_S. Nombre_SI

t l"C'M( .....!-+CÁMARA (.Q~/ih!(Ú'" ('.alcgnó", ('ap;ICI(hll.l)

. . tanto la dependencia a la que estéicen única~ente como al~dJalnIento~ ~á~~~~sto podríamos resolverlo, suponicn-znado un tripulante no pue a ser un '. . ' ."que existe una jerarquía en las dependencias. ex~st~endo unas ~ue son ca,:,~asd~as que no lo son. que podría Inos reflejar ?e dlsuntas formas (ver CCÁ~t~~A e«íelado EIR). por ejell\plo. mediante tres ~elacl?ncs (DEPENDENCIA. s uc la d:) CÁMARA), A falla de más información. sin embargo. su?ond~emo, q l. •._ , . d '1' te pueda ser cualquiera. Incluso la camarandencia a la que este asigna o un tripu anla que él mismo se aloja.

11") RA \lADISEÑO DE BASES DE DATOS. PROBl.EMAS RESLlEL'rOS

Page 115: Diseño de Bases de Datos - Problemas Resueltos

CREATETABLE Dependencia (Codigo_c Tipo_Código,Nornbrc jí Nombre_ Válido NOT NULL.Función CHAR(20),Localización CHAR(20).Clavc_s Tipo_Código NOT NULL.Nombre s Nombre Válido NOT NULL.

I'RIMARYKEY (Código-='c),

CREATE DOMAIN Nombre , Válido CHAR(40);CREATE DOMAlN Tipo_Código CHAR(S);

CREATE TABLE Servicio (Clave Tipo_Codigo,Nombrc_s Nombre_ Válido,

PRIMARY KEY (Clave, Nombre_s)1;

SCRIPT EN SQL-92

Figura 2.1.46

-+ RAZA (Noll¡bre B. Altura. Anchura, Peso,Poblaciéu, Toral)

IlABIT ¡\ (Plalleta, Ra?,a.Población_Parcial)~CM C'

PLANETA (Código P, Nombre_P. Galaxia. Coordenadas)

VISITA (Código T. Planeta. Fecha Visita. Tiempo)R:e.MeC

a11l)

~DEPENDENCIA (Código D. Nombre_D. Función'. Locahzacrén. Clave S, NOl1wre_S)

BC),I C

-~CÁMARA (Cód,go C.Categoría,Capacidad)

TRIPULACIÓN (Código T. Nombre_T. Categoría. Antiguedad. Procedencia'. Adm. Dep, eSeC.M:C

":C.M'C

Ih("e 1

rSERV1CIO (Clave. Nombre S)

2,1: MODELAOO RELACIONAL 219I RA·MA

•• 1 •••••••••••••• \.\.'.\.\.~'.\.\.

El grafo relacional completo se muestra a continuación.

Grafo relacional

. . bli a que la población total deSerá necesaria una restricción adiCional q~e.o igue d I blacione'. I ió RAZA) coincida con la suma e as po ,

una raza (contenida en la re aCI n 1 habita (contenidas en la relacionparciales de la misma en todo~ los planetas en ~s que POBLACIÓN TOTAL sea unHA BIT A) por ejemplo haciendo que el atributo Ó - lALatributo c~lculado a partir de los valores del atributo POBLACI N_PARC .

Restricciones de rechazo

Reglas ECA

. toda raza habita en al menos un planeta deberetnos controlarh\SI suponemos quemediante disparadores.

Opciones de borrado y modificación

Los borrados y modificaciones de las claves ajenas de las relación HABITA serán

en cascada.

~ B:C,M,C

RAZA (Nombre R, Altura, Anchura, Peso, Población_ TOlal)

Figura 2.1.45

PLANETA ~ódigo P. Nombre_P, Galaxia, Coordenadas)

~8'C.M,C

HABITA (Planeta, Baza, Población_Parcial)l

Para recoger las razas que habitan los planetas, crearemo.s la relaciáón HIABIITA,viven en cada planeta. Sus atributos ser n as caves

que contendrá las ra~s que NET A ( f rrnarán la clave primaria de laprimarias de las relaciones RAZA YPLA , que d . dividuos de dicha raza querelación), junto a un atributo que contendrá el numero e In I Ihabitan en el planeta.

o RA·MA218 DISEÑO DE BASES DE DATOS PROBLEMAS RESUELTOS

Page 116: Diseño de Bases de Datos - Problemas Resueltos

• •• ~. '.'.'.' •• e •• ~ •• e'.•

CREATE ASSERTION Capacidad CámarasCHECK (NOT EXISTS -

SELECT Código_cFROM CámaraWHERE Capacidad <(SELECT COUNT (Código_t)FROM TripulaciónGROUP ByeamHAVING Caln=Código_c);CREATE TABLE Visita (

Código_t Tipo_Código.Planeta Tipo_ Código.

CREA TE TABLE Planeta (Código_p Tipo_Código,Nombre_p Nombre_ Válido NOT NULL.Galaxia CHAR( 15) NOT NULL,Coordenadas CHAR( 15) NOT NULL,

PRlMARY KEY (Código_p),UN1QUE (Nornbrep),UNIQUE (Coordenadas));

l'•);

CREATE TABLE Habita (Planeta Tipo_Código.Raza Nornbre, Válido.Población_Parcial NUMBER N01' NULL.

PRIMARy KEY (Planeta. Raza).t:OREIGN KEY (Planeta) REFERENCES Planeta

ON UPDATE CASCADEON DELETE CASCADE,

¡'OREIGN KEY (Raza) REFERENCES RazaON UPDATE CASCADEON DELETE CASCADE

:REATE TABLE Tripulación (Código_T Tipo_Código,Nornbre T Nornbre., Válido,Categoría CHAR(20) NOT NULL.Antigüedad CHAR(20).Procedencia CH AR(20).Adm CHAR(20) NOT NULL.Dep Tipo_Código NOT NULL,Cam Tipo_Código NOT NULL.

PRIMARY KEY (Código_l,).FOREIGN KEY (Dcp) REFERENCES Dependencia

ON UPDA TE CASCADEON DELETE CASCADE.

FOREIGN KEY (Cam) REFERENCES CámaraON UPDATE CASCADEON DELETE CASCADE

CREATE TABLE Raza (Nombre r Nombre Válido_ _ .Alrura NUMBER NOT NULL ,Anchura NUMBER NOT NULL,Peso NUMBER NOT NULL.Población_total NUMBER N()'r NULL.

PRIMARY KEY (Nombre_r)):

,

1:

REATE TABLE Cámara (Código_c Tipo_Código.Categoría Nornbre , Válido NOT NULL,Capacidad INTEGER NOT NULL,

'RIMARY KEY (Codigo.,c),;OREIGN KEY (Codigo_c) REFERENCES Dependencia

ON UPDA TE CASCADEON DELETE CASCADE

Fccha_visita DATE.Tiempo INTEGER NOT NULL,

PRIMAR Y KEY (Código j, Planeta. Fecha visita),¡:OREIGN KEY (Código j) REFERENCES Tripulación

ON UPDATE CASCADEON DELETE CASCADE,

FOREIGN KEY (Planeta) REFERENCES PlanetaON UPDATE CASCADEON DELETE CASCADE

NIQUE (Nornbrc js),)REIGN KEY (Clave ,s, Nombre_s) REFERENCES Servicio

ON UPDATE CASCADEON DELETE CASCADE

J DISEÑO DE RASESOh DATOS. PRORI.I.:MASKI:.SUELTOS2.1. MODELADO RELACIONAL 221

••••••

Page 117: Diseño de Bases de Datos - Problemas Resueltos

Diseñe el esquema relacional. Indique en él las claves primarias, clavesalternativas y las claves ajenas. De estas últimas, especifique los modos deborrado y modificación. Marque con un asterisco (*) los campos que aceptenvalores nulos. Y por último, indique si existe algún atributo que exija definiralguna restricción a fin de mantener la integridad de la base de datos.

Efectuar además en álgebra relacional yen SQL las siguientes consultas:

• Nombre de las empresas que piden el perfil de "especialista en circuitosimpresos' .

Un perfil puede asociarse a distintos demandantes de empleo y a su vez unkmandante puede responder a diferentes perfiles.

Los clientes solicitan al menos un perfil. Un perfil se identifica por un código depalil y lleva asociada una descripción. Además un perfil puede ser requerido por..Irio~clientes.

Las empresas cliente se caracterizan por un código de cliente. su CIF, el nombre,1.1 dirección. el teléfono y el número de fax.

Si el demandante posee experiencia profesional también guardaremos el nombrede la empresa donde realizó el trabajo, el tiempo y el puesto que desempeñó. Enecncralexiste un promedio de dos trabajos por persona.

La bolsa de trabajo de MITO almacena toda la información relativa a losucmandanles de empleo, considerando como relevante el DNI, nombre, dirección,leléfono, clase de camet de conducir y currículum. Estando este último compuesto pornümero de titulaciones (de I a 4 en media 2), nombre de las mismas, especialidadrealizadaen cada una de ellas y uni versidad donde se tituló.

La empresa de trabajo temporal MITO ha decidido crear un sistema demforrnación para realizar su gestión, considerando las siguientes especificaciones:

Enunciado

PROBLEMA 9: EMPRESA DE TRABAJO TEMPORAL

Fl ''''''0'''_' «n Ixp. :-I"..h,,· I (TRIPULACIÓN» * lX,,"("nJl~"J (n (""h~" ¡)

cr:-;"m~". "'Sc~II",';"I'(DEPENDENCIA»))

Álgebra relacional

2.1: MODELADO Rhl.!\CIONAL 223RA ¡\IA

•••••••••••••••••••••••

de DependencIa1campo Nonlbre_, se almacena clllpo e" Suponcnlo' que en e

Sq'SELECT Nombre_t .FROM Tripulación, DependenClad . Co'digo D. 1 ., Dep-Depen encla. -WHERE Tnpu acion. -. N b s2'::'Seguridad';AND DependencIa. om re.,

Álgehra relacional ,, '. CÁMARA) n (TR1PULACIC)N

nCóJig"_<(nr(>d'~" c.lJI'.,·,d.,u (FRECUENCIA (Código_I)))AGRUPACION_POR Cam.

. .: nades a alguna dependencia de seguridad.3. Nombre de los mpulanles asig .

SqlSELEC'T Código_cFROM CánlaraWHERE Capacidad:: .

(SELECT COU~T (Ccxhgo_l)FROM TripulacIónGROUP BY CalnHAVING Caln::Codigo_c);

2. Cámaras que han llegado a su capacidad 111áxima.

SqlSELECT Raza .FROM Habita,Visita, Tripulacló~ . , orden'WHERE Tripulación.NOlnbre_t~ FlashV~.ita Cóoigo t

AND Tripulación.C6dlgo_t=- ISI . _AND Visita.Planeta=Habita.Planeta:

CONSULTAS. . o s por Flash Goroon

l. Razas que habitan en los planelas visita o. .

"--", OISl:ÑO DE RASES DE DATOS PROBLI-.I\lAS RESUELTOS

••••••••

Page 118: Diseño de Bases de Datos - Problemas Resueltos

~••••••~••••••••••~."i

Se deben almacenar los diferentes perfiles que puedan ser, tanto pedidos por las,lllprcsa\ cliente. corno ofertados por los diferentes demandantes de empleo, por tanto1l\'JIl()~ una nueva relación:

"Los clientes solicitan al I/lenOS un perfil. VII perfil W' identlfica por 11/1códillO de perfil y lleva asociada IIf1t/ descripcián. "

Donde "Código_CIi" es la clave primaria y "CIF"' es la clave alternativa.

CLIENTE (Código Cli, CIF. Nombre_Ch. Dirección_Cli, Teléfono_Cli, Fax)

Del análisis de esta frase se deduce una nueva relación:

"Las empresas cliente se caracterizan por UII código de cliente, su Cll", elnombre, la direccián. el teléf 0110 y el número de fax ".

El promedio de trabajos anteriores por persona no es relevante en el diseño.

y modificaríamos ligeramente la anterior relación de acuerdo con ésta hipótesis

El\11~RESA(C6digo E, NombrcE)

Donde "CódigoExp" es la clave primaria. Se debe suponer que en esta relaciónaparecerá una tupla por cada puesto ocupado, no por cada empresa en la que se hatrabajado, estando por tanto su granularidad fijada al nivel de puesto de trabajo, no deempresa (en caso contrario, un demandante de empleo no podría haber cambiado depuesto dentro de una empresa, salvo que hubiera alguna manera de evitarlo porejemplo que se nos dijera que bastarfa con registrar el puesto máximo alcanzadodentro de la empresa). Como consecuencia. esta relación no se encontraránormalizada. por ello introduciríamos una nueva relación:

EXPERIENCl..\_PROF (Código Exp. Nornbre E, Tiempo. Puesto)

De este supuesto se deduce que debemos crear una nueva relación que almacenelos trabajos anteriores dc cada demandante de empleo, así tenernos:

"Si el demandante posee experiencia profesional también guardaremos elnombre de la empresa donde realizá el trabajo. el tiempo v el puesto quedesempeñá. EIl general existe 1111 promedio de dos trabajos por persona ''.

El hecho de que las titulaciones varíen de I a 4. en media 2. no es relevante parael diseño lógico de nuestro esquema, aunque sí pudiera serlo para el diseño físico.

Podernos considerar que el atributo "Especialidad" puede admitir valores nulos,pues una determinada titulación puede no tener ninguna especialidad.

2.1' MDDELADO REI.ACIONAL 225.kA MA

•••••••••~ ••••••••

. d ndante de empico 111CJ",l1h' "".

:K Se podría CO~~cglllr el. nÚI~~r(:()~e ~t:t~~I~~~~D~~s~~pl:::nle conlando el núl11CfI' de 11'1'" 'n del LengllaJ~ de I\1nmpuaCIIn e

~~r~~; él! esta relación corre:,p!lndicnlesa ese demandante.

La segunda relación sería:

CURRÍCULUM (Número ru, Nombre_Til. Especialidad)

podrí os haber considerado como atrihulo .kEsta relación no la .. , nal~ ara cada tu la de la relación Ip.'1

DEMANDANTE, pues admlllna vaTIos. valores, PI I p. I no está adn1itido ,'11. I d: demandante habrá vanos curncu ums), o cuaejernp o, por ca a

el modelo relacional., ., CURRÍCULUM es "Número_ Tif', siendo ~,h

La clave primaria de la relación " iee un demandante'el número de títulacíones que pos ,un código que no representa, ., 'bitrario que las diferencie y para el cual 11\' "sino que será un valor, en princrpro ar ,admitan duplicados.

. ,d d cír dos relaciones, la primera scrvma par.1Oc este supuesto podernos e u l. ,

mantener los datos de cada uno de los dClnandantes de en1pleo.

DEMANDANT": (DNI. NOlnbrc_S, L)irccción_S, Carnct )

. "ONr' que se podría considerar ,11Tcndría corno clave prilnaria el alTl?uto , aun 'atributo "Nombre.S" corno clave alternativa.

)iscusión del enunciado

DENTIFICACIÓN DE l,AS RELACIONES BÁSICAS

d bai d MITO atmacena toda la illfonnacióll relativa (/ los"La bo lsa e tra ajo e d relevante el DNI nombre,delnandlllltes de empleo. cOllsideradn (1 C(dJlno.v curr{culunl. Es;alldo este

, 1 'f' ) clase de carnet e con uctr .direccion. le ~ oru • , laci (de' l (/ 4 en Inedia 2) nombre, .' r¡¡,lIero de tttu aCIOlles ",último COll7pllesto 1'01 1 irada en c d IllIa de ellas y universIdadde las ,nis/11(1S,especialidad realiza a el! Cll adonde se tituló"

, ndantes de empleo que se ajustan al perfil• Nombre y apellidos de los demOa O· ele" así como los datos de la o las

de "adlninistrador de Bases de aros ra ,empresas que lo solicitan,

. de a uellos demandanles de empleo que• Nombre, apellido y currfculu~ q 1 S de trabajo relacionados con la

hayan trabajado al menos en os pues oprogramación en buses de datos.

, DISEÑO DI" BAS¡",S DE DATOS. I'ROAl.EMAS RESUELTOS

Page 119: Diseño de Bases de Datos - Problemas Resueltos

Las empresas cliente solicitan al menos un perfil, y un mismo perfil puede serrequerido por varias empresas, por tanto tenemos que introducir una nueva relaciónCI.IENTE_PERFIL, cuya clave primaria cstuní formada por las claves primarias delas relaciones CLIENTE y PERFIL, es decir "Código_Cli" y "Código.P", cada una delascuales es ti su vez clave ajena que referencia a las relaciones de las cuales son claveJlrllllaria

"Los clientes solicitan 01 menos IIn perfil. Un perfil se identifica por uncódigo de perfil y lleva asociada una descripción. Además UII perfil puedeser requerido por varios clientes ''.

De manera similar podría considerarse las opciones para la clave ajena"Código_E",

Si eliminamos o modificamos un demandante, su experiencia profesional debe sereliminada o modificada, por lo tanto en ambos casos se debe hacer en cascada(B:C.M:C), Otra alternativa que proporcionaría mayor seguridad se lograríaconsiderando el borrado restringido.

Opciones de borrado y modificación

Donde "DNI" es clave ajena de la relación EXPERIENCIA_PROF. quereferencia a DEMANDANTE y "Códigc.E" es clave ajena de la relaciónl:XPERIENCIA_PROF que referencia a EMPRESA.

Figura 2,/,-18

13:('.M:(,EXPERIENCIA·PROF

~ Ei'-IPRESA (Código E.Nombre_E)LL --, B:C.:<l·(,

I(CÓdigo Exp, CÓdigo_E, Tiempo. puesto. DNI)

DEMANDANTE (DNI, Nombre S, Dirección_S. Teléfono_S. Carnet)

Un demandante de empleo puede poseer experiencia profesional (varias), perouna misma experiencia profesional corresponde a un único demandante, por otra parte.iendremos que relacionar la relación EMPRESA con EXPERIENCIA_PROF. portanto tenernos el subesquerna siguiente:

"Sr el demandante posee experiencia profesional también guanlaremos elnombre de la empresa donde realizá el trabajo, el tiempo \' 1'1puesto quedesempeñá. /;"11 general 1:\1.\11' 1111promedio de dos trabajos por persona",

~ 1:MODELADO RELACIONAL 227

. di d todo demandante tiene alDeberíamos controlar rnedlante íspara ores, que íc IUITI de un

menos un currículum. así, por ej~mplo, ~o se podría borrar un curr udemandante si éste es el único que llene regIstrado ..

Reglas ECA

Opciones de borrado y modificación

1 . ede hacerse en cascada.El borrado y la modificación de ambas e aves ajenas pu , d . lica lapues el borrado o la modificación de las tup~as de,: ~~~~ ;;.~;en~:p:n~~e~~~ de lopérdida de información en la tabla que re erenci "",.

" se pretenda ser el borrado podría también ser restringido.restncuvo que '

Figura 2. J .47

....... CURRíCULUM í!'IúmeroTil Nombre_Ti!, Especialidad. Univer~idad)

PERFIL (Cóchgo p, Descripción)

Donde "Código_P" es la clave prilnaria.

ANÁLISIS DE LOS SUPUES'l'OS SEMÁNTICOS" 1 d bai d MITO Il/lnaCellCl toda la ;n!orlllucióll relallva a losLa bo sa e Ira ajo e .,' ti CO/1I0 relevanle el DNI, nnmbre.

de/nallda/lIe~ de empleo, c~II:,,~er:/~i~ v' currtculum- Estando este ¡í/t;IIIOdirección, teléf 0110. camet . e CO!' u . I a 4 1.'11media 2), nombre de la~cOIIJpuesto por nlÍmero de trtulaclolles (de llos v . idad donde seInismllS, especialidad realizada en cllda U/la de e os: UIII\ ers

tituló ".

. currículum compuesto por una o vanasCada demandante de empleo llene un d a varios demandantes, . 1 ., ede correspon er "

titulaciones. Además una nusma titu acion pu 1" CURRÍCULUM DEMAN-de empleo por tanto debernos incluir una nueva re aCloln I 'd'gos de ~us corres-

. da demandante de emp eo, os co I . .DANTE, que con~enga, para c~ 'la clave rirnaria estará formada por los atri­pendientes lltulaclones. De, ~~ta forma, d I pales es clave ajena que referencia abutos "UNI" y "Número., Tlt, ' cada uno e o~ cuDEMANDANTE y a CURRICULUM respectivamente.

~ DEMANDANTE (DN.1Nonlbre_D. Dirección_D, Teléfono D. Cernen

_ I UC.I'·IC

CURRíCULUM_DEMANDANTE DNI NÚlllrro /}.-- .--JIJ C.M e

226 DISEÑO Db BASESDE DATOS' PROBLf.1\1AS RI,SU~.LTOS

Page 120: Diseño de Bases de Datos - Problemas Resueltos

.•••••'•••••••....•••••••('RI:ATE TABLE Currículum (

Núlnero_ ruTipo_ Código,N0l11bre_Tit CHAR( 15) NOT NULL,

SCI{IPT EN SQL_92

CREATE DOMAIN Nombre_ Válido CHAR(40);CREATEDOMA IN Tipo_Código CHAR(5);

CREATE TABLE Demandante (DNI CHAR(9),Nombrc_d Nombrc_ VálidoDirección_o CHAR(20) NOT NULL.Teléfono jí CHAR(9) NOT NULL,Carnet CHAR(2) NOT NUI~L,

I'RIMARY KEY (DN])I,

Figura 2, /.5 J

ax)

l!:(',M,t'

NI)

1

~DF.J\I¡\NDANTR (ON! N<lmhrc_S. DlréCClón_S. lcléfuno S. l.lIn.:t)

III("(CURRtCULUM_UEJ\.lANDANTE( IWJ.....fl nero TII

11 <':.1\1 e,

~ CURRICl:LUl\-t (Número'Tu Nombre Tu Especiahdad. Universrdad]

t EMPRESA (CódIgo E Nombre_E)I B:C.M C

EXPERIENCIA-PROF (Cópjgo_ExR, Código_E, Tiempo, PUCSIO. D

~ CLiENTE (Código CÜCIF, Nombre Cli Dil'ccciólI_CIl Teléfono_eli F

I 11(' ,M t·

CLIENTE_PERFI L(Ctídi~()(,It, Códjgr_l_' ,I R'C M ('

I.. PERFIL (!:'Qdig~1P. Dcscnpcrón)

Ul'Ml'

DE!'.1ANDANTE_PERFIL(Q,Nl.. Gli!J~(I_f)IB I'.M l

GRAFO RELACIONAL

_______________ ~ 1 ~I()I)EI.¡\D() RELACIONAl 229K \ "lA-

• •••••••••••••••

Opciones de borrado Ymodlñcacíénif .: d las cl:I'"

Análogamente a los casos antcriores. el borrado y la modi rcacion e 'ajenas puede hacerse en cascada .

¡.'iXllro 2, J .50

DEMANDANTF._PERJo'IL iDN/. Código p)

L--------___...¡I O:C.M e

L------------,8' e, ).o1.('

_ .... PERF1L <Códlgo_~Descri¡x:ión)..

"Un perfil ",U'e11' asaciorse () e1iS1illl¡)~ ¡/(,lIl(lIldan~~sde empleo \' 11,~II I'e: 1111

demundante pued« /,('.1'!1011l/,·r 11dif('n!IIII!,~perfile.\ ,

, . l' cesidad lit-Del análisis de esta frase se deduce, co~o. en el caso anle:~or. a ne .introducir una nueva relación, obteniendo el siguiente subesquema.

...- ... DEI\1ANDANTE (DN!. Nombrt: D. Dlrección_D, Teléfono-D. Carnet)

, ., I ' un perfil debería asegurarse qurCorno cada CI11prCSacliente solicita a Inenos . ' . habrá unsiernprc se registra el perfil al tiempo que. se da de alta al cliente y que nuncacliente sin el (los) correspondicnte(s) pcrhl(es).

Reglas ECA

1 . , . zones el borrado y laComo en 10$ caSOS anteriores y por as mismas r~. d: . B'C M 'C:) aunque

nodificación de las claves ajenas. lo hemos supuesto en casca a ( . . . ,iodría ser restringido.

)pciones de borrado y modificación

Figura 2,/.49

l.....l~PERFlL (eÓdlgu l'Dl!scn¡X:IÓn)

e l' O' '. Cli Teléfono Cli Fax)~ CLrEN'fE (CólhgqCli. Clf'. Nombre_ 1 ireccicn.s • _IL i¡ Be.M'

CJ,IENTJo: PERFIL (Ctldll!(/ CII. Ctidlgo ~)n r.\I e

D1S¡:'l':O DE BASES DI! D,", 1'0$, PRUHI.t-MAS HI:;SU"'I.TOS

Page 121: Diseño de Bases de Datos - Problemas Resueltos

1. Nombre de las empresas que piden el perfil "Especialista en circuitos impresos".

SqlSELECT Nombre CJiFROM Cliente, Cliente_perfil, PertilWHERE CI~ente.Código_Cli::Cliente_perfiI.Código_Cli ANO

~!lent~_~crtiI.CÓdigo_P=PertiI.C6digo_P AND Perfil.Descripción =Especialista en circuitos impresos':

Algebra relacional:

CONSULTAS

CREATE TABLE Experiencia_Prof (Código_Exp Tipo_Código,Código_c Nombre, Válido,Tiempo CHAR( (5) NOT NULL,Puesto CHAR(40) NOT NULL ,DNI CHAR(9) NOT NULL,

PRIMARY KEY (CódigoExp),FOREIGN KEY (DNI) REFERENCES Demandante

ON UPDATE CASCADEON DELETE CASCADE

rORElGN KEY (Código_e) REFERENCES EmpresaON UPDA TE CASCAOEON DELETE CASCADE

CREATE TABLE Empresa (Código_c Tipo_Código,Nornbre_E Nombre_ Válido,

PRTMARY KEY (Código Exp)\:

):

pRlMARY KEY (DNl, Código_P).FOREIGN KEY (DNI) REFERENCES Demandante

ON UPDA TE CASCADEON DELETE CASCADE,

FOREIGN KEY (Código_P) REFERENCES PerfilON UPDATE CASCADEON DELETE CASCADE

2.1: 1\10DELADO RbLACIONAl 231

: REATE TABLE Delnandal1te_Pertil (DNI CHAR(9),Código_P Tipo_Código.

~REATE TABLE Cliente_Perfil (Código_Cli Tipo_Código,Código_P Tipo_Código.

>RlMARY KEY (CódigcCli. Código_P),::OREIGN KEY (Código_Cli) REFERENCES Cliente

ON UPDA TE CASCADEON DELETE CASCAD E,

::¡OREJGN KEY (Código_P) REFERENCES PerfilON UPDATE CASCADEON DELETE CASCADE

..

REATE TABLE Currículum_Demandante (DNI CHAR(9).Númcro_Tit Tipo_Código,

RlMARY KEY (DNI, Número_Tit),OREIGN KEY (DNI) REFERENCES Demandante

ON UPDATE CASCADEON DELE1'E CASCADE,

'()REIGN KEY (Núlnero_Til) REFERENCES CurrículumON UPDA TE CASCADEON DELETE CASCADE

REATE TABLE Perfil (Código_P Tipo_Código,Descripción CHAR(70) NOT NULL,

RlMARY KEY (Código P)

~EATE TABLE Cliente (Código_CIi Tipo_Código,NombrcClí Nombre_ VálidoDirección_Cli CHAR(60) NOT NULL,Teléfono_Cli CHAR(9) NOT NULL.Fax CHAR(9) NOT NtJLL,

UMARY KEY (Código_Cli)

Especialidad CHAR(30) NOT NULL.Universidad CHAR(50) NOT NULL.

:IMARY KEY (Númcro., Tit)

t) NA \11\D1S....ÑO DE BASES DE D/\TOS. PROBLEMAS RESUELTOS

Page 122: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••

Diseñe el esquema relacional. Indique en él las claves primarias, clavesalternativas y las claves ajenas. De estas últimas, especifique los modos deborrado y modificación. Marque con un asterisco (*) los campos que aceptenvalores nulos, Y, por último, indique si existe algún atributo que exija definiralguna restricción a fin de mantener la integridad de la base de datos.

- Efectuar además en álgebra relacional y en SQL las siguientes consultas:

• Número de libros prestados a aJurnnos de la Universidad Carlos 111en esteúltimo año.

• Profesores del área de Bases de Datos que no hayan utilizado el servicio debiblioteca.

• Título de los ejemplares que no han sido devueltos junto con el nombre delusuario que los posee .

De I()~departamentos se guardará su nombre, titulación, y director de éste. Cada.tcpanameruo está formado por una o varias áreas que se identifican por un nombre, seucucntran en un laboratorio y poseen una línea de investigación principal que.lltlhlén se desea almacenar.

Existen fondos en la biblioteca que son comprados por distintas áreas de la\ 'niversidad y se necesita conocer esta información, ya que los profesores que-olicitan el préstamo de un libro que ha comprado su área tendrá un trato especial.1:'10 significa que en general la filosoña del préstamo es que tanto para alumnos como!"Ir" profesores, un fondo sólo puede ser prestado durante una semana. Sin embargo. si,'1 profesor pertenece al área que ha proporcionado dicho ejemplar a la bibl iotecaI'"dr¡ítenerlo durante un mes,

Los usuarios que pueden acceder a los fondos de la Biblioteca son: profesores o.dumnos de la Universidad Carlos JIt De ellos se necesita saber el número de socio, eli)'J1. el nombre, la dirección de correo electrónico (si poseen), y si se trata de unprofesor, el departamento y el área a la que pertenecen.

Como cada fondo posee una serie de ejemplares que tienen la misma clave delocalización que la del fondo del que proceden. se tendrá un número correlativo parapoder identificarlos. Además. se quiere tener la información de si se puede prestar ono). en caso de que esté prestado, de cuál es la fecha de devolución.

De cada fondo se desea guardar el formato o tipo (libro, revista, audiovisual,ctc.), el número de ejemplares disponibles, el título, el autor. la editorial, la fecha deedición y la clave de localización, a efectos de poder saber de forma rápida suubicación en la biblioteca.

~KA:.!:~::.::tA"-- --=2 I Mor~.AD(l RELACIONAL 233

r, F , ~ ~.•\ .., "'iI_ ...

Enunciado• "1 "t"U' '11 '" IIl des m Base de Datospal, e- 1

La Biblioteca de la UniverSIdad CarloR I ~S~~e~t:s especificaciones, !.Iu!:1);I1l'sus fondos bibliográficos. ~ara ello expone as sigtenerse en cuenta para su diseño,

PROBLEMA 10: FONDOS BIBLIOGRÁFICOS

SqlSELECT Nombre_S,FROM Deman.dudn.te DNI IN (SELECT DISTINCT DNIWHE RE Deman ante. . . P fFROM Expenencla_ ro . ,

WHERE Puesto::.·%bases de datosqc ).

. ., .. ,,(DEMANDANTE) *[l N brc S (.'11Ni!n,~n.:(.'11,1)111,'((Hl".( h. 1¡;h:I~'ntl_(. 1,. 1, .

111)1re . • . ('" 'lchlnl' (. h t',t).

ANDANTE PERFllJ) * (nc,,,l\g,, I'.CII·N,,,,,o,".Ct,.I1'''«"'''' .. '.' -'(DEM _ ( t.~, t"I,,,,,OH\<11, *(CLIEN1'E PERFIL»)*nc,~hl\'; l' crn<~'rll"·"·,n='A,ln\l""I,,,J'\f" .•"", .«(CLIENTE) "_ (PERFIL))))

, antes de empleo que hayan trabajadu en. ,t\3. Nombre Y apellidos de aqUello~.dl.e~~an,ddOS~on la programación en bases de da111'

menos, dos puestos de trabajo re ,IClona ,

Álgebra relacional:

2.'~. de empleo que se ajustan al perfil

2. Nombre y apellidos de 10Sddem~~~n~e~E" así como los datos de las empresa-..Adlninislrador de bases de atOS 'que lo solicitan.

Sql b S en- Nonlbre cu. Dirección_Cli. Teléfono_Ch. FaxSELECT Nom re_, , - P mi B Perfil CFROM Demandante A. Oemandant;_. e ~::CCódigo PANO C.Descripción =WHERE A.ONl=B.DNl ANO B.CÓ<hgo_ -. LE'-

'Adlninistrador de base de datos ~~CANO C Código P IN (SELECT Codlgo_P .

. _ FROM Cliente_Perfil. ClienteWHERE Cliente.Código_C~i =el iente_perfil.Código_ C1I);

t)RA¡\\\

DISENO DE BASES ot, DATOS: PROBI.EMAS Rf};Uf:LTOS

Page 123: Diseño de Bases de Datos - Problemas Resueltos

, Aparecen en este párrafo las relaciones DEPAR1"AMENTO y ÁREA con los,111'I~lltosque se quieren almacenar de cada una de ellas, Para la relación primera se ha'kgl(.lo Como clave primaria "Nombre", suponiendo que cada departamento tiene un11I\~llhrcúnico que le identifica del resto. La segunda relación tcndrá el atributo'\ol11hre"corno clave primaria y suponemos lo mismo que para la relación anterior.

•De los departamentos se guardará su nombre, titulación, y director de éste.Cada departamento está formado por una o varias áreas que se identificanpor un nombre, se encuentran en IIn laboratorio y poseen 11110 1(111'0 deinvestigacián principal que también se deseo almacenar, •

•Existen fondos en la biblioteca que SOIl comprados por distintas áreas de laUniversulad y se necesita conocer esta informacián, ya que los profesoresque solicitan el préstamo de 1111 libro que ha comprado JU área tendrá UII

trato especial. Esto significa que, en general. la filosofía del préstamo es quetanto para alumnos COIIlOpara profesores. un fondo s610 puede ser prestadoCOIIIO /Iláx;,no por una se/nana. Sil! embargo, si el profesor pertenece al áreaque ha proporcionado dicho ejemplar a 1(1biblioteca podrá tenerlo duranteIInmes."

PR()FESOR (N SOCIO. Departarnento. Área)

El problema que nos encontramos es cómo reflejar aquellas propiedades que sólo,poseen el tipo de usuario profesor ("Departamento" y "Area"). La solución más-encilla sería incluir los atributos "Departamento" y "Área" en la relación USUARIO,por lo que las tuplas correspondientes a socios del tipo alumno, tendrían valores nulosen dichos atributos, Para evitar tener muchos valores nulos en esta relación se podríaconsiderar otra solución. que es la que adoptaremos creando una nueva relaciónPROFESOR cuya clave primaria sería "N_Socio" y corno atributos obligatorios'Departamento" y "Área",

USUARIO (N Socio. DNI, Nombre, Tipo, e-mail*)

Entendemos. por tanto. que los usuarios de la biblioteca son de dos tipos, profesoro alumno, y que éstos comparten ciertas propiedades. Por lo que se creará una relaciónUSUARIO cuya clave primaria será el número de socio, "N_Socio", el DNI ("DNI")\érá clave alternativa, el nombre ("Nombre") y el tipo "Tipo" serán atributosobligatorios y la dirección de correo ("e-mail") un atributo que admite valores nuJos,ya que puede haber socios que no posean, incluso se podría considerar clavealternativa, ya que cada usuario, si tiene dirección electrónica, es única.

"Los usuarios que pueden acceder a los fondos de la Biblioteca SOIl:profesores o alll'III1OSde la Universidad Carlos 111,De ellos se necesua saberel fllí/llerOde socio. el DNI, el nombre. la direccián de correo electránico (siposeen) y si se trata de un profesor. el departamento y el área a la quepertenecen. •

I2.1' MODELADO REl.ACIONAL 235

•••••••••••••••••••••••••

Los fondos bibliográficos poseen distintos ejemplares que son realmente los q~l'. prestan a los usuarios de la biblioteca, por lo que necesitaremos crear una, re~aCIIlI1JEMPLAR para saber si están disponibles o no cada uno de ello~. Como se In~lca enenunciado la clave primaria de la relación será la concatenación de dos atnbulll':

:... L alizació n" y "Número" donde este último ha de ser un número correlativo ~Ul~ oc 1" ió EJEMPLAR tlllnhlCIln~l esquema relacional no podremos representar. La relaci n . . , tl

uará compuesta por los atributos "Prcstablc", definido dentro del dominio boole,111.~ , id 11 f ndos ¡¡lIl'"P_Devolución", que podrá tomar valores nulos para consi erar aque os o 'o estén prestados,

EJEMPI,AR (C Localilación, Número, Prestable, F_Devolución"')

•Corno cada [ondo posee 11110 serte de ejemplares que tienen la ,mis/lla ,clavede localización que la del fondo del que proceden, se tendrá .'ln n¡lIn~~ocorrelativo para poder identificarlos. Además, se quiere tener la informaciánde si es prestable o 110 y. ell caso de que está prestado. de cual es la fecha dedevolucíén .•

AUTOR (Cód Autor, Nombre)

"De cada fondo se desea guardar el [ormato O tipo (libro. revista,audiovisual, etc.), el/llí,nero de ejemplares disponibles. el utuio, el autor, laeditorial, la fecha de edtcián y la clave de I?call~.ción. a efectos de podersaber de forma rápida su ubicación en la biblioteca .

Para recoger toda la información necesaria acerca de un fondo ~e la biblioteca.esitarernos crear una relación FONDO compuesta por las propledade~ qU,e seican en este párrafo. De entre todas ellas elegiremos com~ ~lav~ pn~ana, elrbuto "e_Localización", ya que supondremos ~ue todo f~ndo ~tbhogr~fi~o se ubl~~un lugar único dentro de la biblioteca, Los at~?~t~s obltgatorloS"seran "Formato,E , 1 ." "Tít 1 .. "Editorial" y "F Edición . El atnbuto Autor se puede_ Jcmp ares, t Uo , - .,,' "

.delar de distintas formas, ya que si hacemos uso del conoclmlent~ del dOln~~I~,iemos que un libro puede ser anónimo, lo que su~ondría q~e el atributo adm'ttn~lores nulos, pero además, un libro puede ser cscnto por ~as de un autor, lo qu~idría que ser modelado con otra relación. Para poder reflejar estos su~~estos, y dea manera aproximar nuestro diseño al mundo real, crearemos otra r~laclon A.UTOR.n un atributo "Cód_autor" corno clave primaria y "nombre' atnbuto obligatorioyo valor será el nombre completo del autor.

FONDO (C Localización, Título. Editorial, F_Edición, Formato. N_Ejemplare~)

.cusíón del enunciado

~N'rlFICACIÓN DE LAS RELACIONES BÁSICAS

() KA "' ...DISEÑO DE BASES DE DATOS: I'ROIlLEMAS RESUEI.TOS

'•••••••••••••••••••

Page 124: Diseño de Bases de Datos - Problemas Resueltos

.. f·" .":\ , . ..... ..••••••••••••••••••••~ •••••••••••••••••••

El atributo que recoge el número de ejemplares que tiene un determinado fondo;~.(;~lculará mediante un disparador. Donde cada vez que se añada una tupla en ladUcI6n EJEMPLAR tendrá que aumentar en uno "N_Ejemplares" para el fondo,orrespo di S .1' • " •I . ~ lente. e ursrrunuira en uno St estamos borrando un ejemplar y si se realiza.It~ nlolhlicactón en el atributo "C_Localización" de EJEMPLAR tendremos que

Con la clave ajena "Ci.l.ocalización" controlamos que todo ejemplar proviene delino y sólo un fondo. Pero si quisiéramos que todo fondo tuviera un ejemplar comonummo en la biblioteca tendríamos que implementar un disparador para controlardt,ha restricción.

ReglasECA

Una restricción que se debe tener en cuenta es que cuando el atributo "Prcstablc"ruma el valor TR UE el valor del atributo uF_Devolución" tendrá que ser nulo. Estarestricción se podría realizar con un CHECK O una regla de verificación.

Restricción de rechazo

1\1 formar parte la clave ajena de la clave primaria de la relación EJEMPLAR,tilo ten~,nos dos opciones tanto para el borrado corno para la modificación y éstas SOI1rc-rnngido o en cascada. Se tomará el horrado en cascada, ya que SI eliminarnos UI1

tondo no tendría sentido mantener los ejemplares. La modificación también será enla\cada.

Opciones de borrado y modificación

Figura 2.1.53

F:JEI\1~'LAR e e I.()ctlli;a("ióll. Número. Prestable. F_L)~voluclón*)

fONDO tc..L,x;alizaciQI1, Título, Editonal, F_Edlción. Formato, N_Ejemplarc~. AuTor.)

~_. _"_C'__ ---,

I

Existe una clara relación entre FONDO y EJEMPLAR. de donde suponemos quelodo fondo tiene al 1l1CnOSun ejemplar y donde lodo ejemplar procede de un fondo,PUl' lo que bastaría con poner corno clave ajena al atributo "C_Localización" que.ulernás forma parte de la clave primaria y hacer que referencie a la relación FONDO.

• COII/O cada fondo posee una serie de ejemplares que Tienen la misma clavede loca{¡:(lciól! que la del [ando del que proceden, se tendrá un númerocorrelativo para poder identificarlos. Además, se quiere tener la infonnaciénde si es prestabl« 11 IlO y. en ('11'0 de que este prestado. de cuál es ItIfecha dedevolucián. "

2.1: MODEI.ADO RELACIONAL 237R \ ~t"

Si se supone que en la relación AUTOR sólo pueden aparecer autores que 'l'

orrespondan con uno O varios fondos de la biblioteca, tendríamos que control:1I. lor é!"ll\'rediante disparadores el que cada vez que se Incorporara un nuevo au '

ostertormente se relacionara con algún fondo.

!eglas ECA

-pciones de borrado y modificación

No sería conveniente que al borrar un autor de la relación AUTOR se borrar.lnIdos los fondos donde éste aparece. ni que se dejara un valor nulo ni por defecto en la-lación FONDO. Por lo que se tendrá un borrado restringido y la Inodificación enaseada,

Figura 2, /.52

AUTOR (Cód Autor , Nombre)

1I((\tt

F()NUO ee 1.,x;3hl~C,.Q.u.Títulu, EdItorIal. F EdiCión. rnrmalu. N_Cjemptarc~. AII/J')

Como se ha comentado anteriormente, se supone que un fondo bibliográfico.ede haber sido escrito por más de un autor e incluso ser anónimo, por lo que parantemplar este supuesto la relación FONDO se dehe ampliar con un nuevo atributo.sutor", que será clave ajena que referencie a la relación AUTOR y que podrá t0111'11"lores nulos.

"De cada fondo se desea guardar el [ormato o tipo (libro, revista,audiovisual, etc.), el nlÍl1lerOde ejemplares disponibles. el titulo, el (lulor. laeditorial. la fecha de edicián y /(1 clave de locali:ación. (1 efeCTOSde podersaber de [arma rápida Sil ubicacion el! la biblioteca ".

-IÁLISIS DE LOS SUPUESTOS SEMÁNTICOS

Donde se ha supuesto que un dcpartamemo e~lá inscrito a una sola Tilulac~ón ye el laboratorio puede ser compartido por distintas áreas, por lo tanto el atributoo Laboratorio" será un atributo obligatorio pero no clave alternativa.

ÁREA (Nomhre. Na_Lahoratorio. Investigación)

DEPARTAMENTO (Non1bre. Titulación. Director)

____________________~.~K~~DISEÑO DE B¡\S¡';S nI' DA ros. PROBl.Et-1ASRESUELTOS

Page 125: Diseño de Bases de Datos - Problemas Resueltos

Si se elimina o rnodi fica un departamento se tendrán que borrar o rnodi ficar las.Ir~a~que componen. flor 10 que las opciones de borrado y de modificación serán en,,",ada.

Opcionesde borrado y modificación

Figura 2.1.56

ÁREA (Nombre, N°_Laboraluno.Investigación, Departamento¡

B.C.J\I:C

U!::PARTAMENTO (Nolnbrc. Tilulación,Director)

Para recoger que un departamento puede estar formado por una o varias áreas y-epornendo que un úrea sólo puede formar parte de un departamento. debemos definirIIn ..tributo "Departamento" en la relación ÁREA que torne valores de la relaciónl>F.PARTAMENTO. es decir. se definirá una clave ajena.

..De IIISdepartamentos se guardará Sil nombre, titlllación, y director de éste.Cada drpartumento está [armado por una (1 varias áreas que se identificanpor IUI nombre. se encuentran en /Ul laboratorio y poseen II/Ul linea deinvr.'fll.'1I1('uínprincipal que tambtrn .Ie desea almacenar."

La opción de borrado será restringida, ya que no queremos que se eliminenprofesores de un área eliminada. La opción de modificación se realizará en cascada.

Opciones de borrado y modificación

Figura 2.1.55

PROFESOR (N Socio.Área)

ÁREA (Nolllbre, N°_Laboratorto, tnvcsrigación. Departamento)

como virtual no se almacenaría y cada vec que se realice una consulta a la relaciónPROFESOR se calcularía. Ésta es la solución que se presenta en la figura 4 y la queadoptaremos.

2.1: MOOEI.AIX) RELACIONAL 239, RA MA

"••• '•••.••• '••••• '••• '.\•• 'e~.\.".'.

Reglas ECA

En primer lugar se tendría que implementar un disparador para cuando se i~s..:r>'

1 del tipo profesor en la relación USUARIO se inserte también en la re aCtOJ.luna tup a . /, d .' rofcsor se encuentraPROFESOR, con esta restricción se cumplirá que to o usuario pen la relación PROFESOR.

En segundo lugar la clave ajena de PROFESOR: por la pr~p~~ de~nici: ~~eé~;;:~/, al de un usuario, pero no nos vale con solo la deñnicíon. Sino q

tomara v ores ib "T' " , rofesoreste valor debe corresponderse con una tupla cuyo atn uro IpO sea p , .

. .ab el área y el departan1ento al (jUl'También se indica que necestlalnos sa cr . . PROFESORI aren los atributos en la relación .,pertenece un profesor, por o que se cre., r ' l' egl: de inlcgrid:lil

con este fin. Pero además, sería nccesano q~e cump icran a ~ <1" ¡¡cioll'"

referencial,. es decA~rRE'teAndrí~E~~R~~~~~~d.C~:~~~~í:~!:~~~~t:~ir~i~~~ ~~Iatrih\ll\'correspondientes, y . li a con,u\t.,

l .. ya que con la infonnaci6n del área se podría rea llar un ib"Departamen O • d f .derar el utn 111.para saber el departamento al que pertenece. Y e esta orma consi

Opciones de borrado y modificación

Co mo un profesor es un usuario. SI borramos o tnodificalnos algu,na tupla en 1..I . f sor esta acción se dehen.\relación USUARIO que se corresponda con e upo pro e, , .

propagar en cascada a la relación PROFESOR.

Figuro 2.1.54

PROFESOR (N Socio. Departamento.Área)

USUARIO (N Socio. ONI. Nomhrc, Tipo, e-mail *)

I ., USUARIO Y otra relación PROFESOR para recoger 10\Al crear una re aClon . .tributos propios de éste, existe una asociación entre ambas. ya que l<~.cla~~~~t;~;.1e profesor es un número de socio cuyo valor debe aparecer en la relación .

"N E' lares" en la tupla correspondiente al nuevo fondo y dis-mentar en uno _ Jempinuir en uno en la tupla del antiguo fondo.

'.Las I¡,I'IIIIrios que pueden acceder IJ las fondos de la Biblioteca .\1111:

profesores o nlinnnos de la UnlverSIlJad Carlos I~/: DI! ellos se lleC~Sl~a:111"/,~,el "tílllero de socio, el DNI, el nombre, lo diroccutn de correo ele, irontco .11

poseen) ." si SI! trata de un profesor, el depllrt{lInl!nto y el área 11 la qu«

'.pe rtenecen.

o) kA \1\, DISEÑO DE BASES DE DATOS: PROBLEMAS RESLII~LTOS

Page 126: Diseño de Bases de Datos - Problemas Resueltos

. ,Cornose ha supuesto que se quiere recoger el histórico de los prestarnos, se debe"llcJar en el grafo relacional que un ejemplar puede ser prestado a uno o varios"IIJrlOS a lo largo del tiempo, Y, por supuesto, que un usuario puede sacar prestadosk la bihlioteca de cero a varios ejemplares. Por lo que tenernos que incluir atributos,le' lecha que nos indiquen la dimensión temporal de los préstamos en la nueva'Iaclonintermedia entre ejemplar y usuario. La clave primaria ~erá la concatenación

Si se hubiera lomado el segundo supuesto significaría que un socio de la~Ihliotccapuede sacar prestados varios ejemplares en un día pero un ejemplar sólorU~dc.ser prestado a un socio. Para modelar este hecho tendríamos que añadir a la'daClon EJEMPLAR un nuevo atributo no obligatorio. "N_Socio". que además sería1.II'c ajena que referenciaría a USUARlOS .

Como en el enunciado no se específica si se quiere un histórico de los préstamos, \ólo el estado actual de la biblioteca. supondremos el primer caso y se modelará-vnforme a él.

Se debe pensar que si borrarnos un área no sería lógico que se borraran aquellos"ll'lIlplaresque ésta ha comprado. ya que éstos se mantendrían en la biblioteca aunqued área desapareciese. por lo que se podría dejar con valores nulos. Esto significaría'lile los ejemplares ya no pertenecerían a ningún área. La modificación sería en."cada para recoger cualquier cambio.

üpciones de borrado y modiflcactén

Figura 2.1,58

ÁREA (Nombre. N°_Laboratnrio. Investigación, Departamento¡

n ~N.M(

EJF.l't1PLA R (e Locali;{I('ión, Número, Prestablc. F_Devolución •. Are *)

De los fondos de la biblioteca existen algunos que han sido comprados por unarca, información que se necesita recoger para luego saber CÓmo realizar la política depréstamos. Lo que realmente compra un área es un ejemplar y además se supone queun mismo ejemplar no puede ser adquirido por varias áreas. hecho que se transforma,en añadir un atributo, "Area", no obligatorio a la relación EJEMPLAR donde además,Jctuará como clave ajena que referencia a la relación AREA.

.enuncian.

Hemos dejado este párrafo para el final, ya que de esta manera, teniendo todas lasrelaciones básicas. veremos mejor cómo reflejar las restricciones que en él se

2,1: MODELADO RELACIOKAL 241

di . s de la"Existen fondos ell la bibliOlcca que SO/l comprados por tsuntas are~~." , .r. "a que los profesoresU' 'd d y re necesita conocer esta mjormacion, y

nlversl ~ ~ • l' pr-<r/o"IIO de 1111 libro que ha comprado Sil área tendrá 11/1que so ICllan e e., d 1 i 'que

.' 1 Esto ~igl"ifi,ca que, en general, la [ilosofia . e pr stamo e.l Itrato especuu. ., , r. d '1 de s preflatlltanto para alumnos COIIIOpara pr(~re.50res. un J.o111 o so o pue tI' ser e al' área

S' bargo SI e profesor per enecCOIIlOIlIóxilllO "" 1111(1.I'e~n(lna.. , 1/1~m la biblioteca podrá tenerlo dU/,(lIIII'que Ita propllrclo"aclo dicha I'Jt III/) (Ir 11

•"" mes.

Reglas ECA

" d ue en la relación DEPART AMENTO aparecicr-nPodría darse el caso e q 'b "D' tor" lo que significa que unl l mismo valor en el atn uto irec or , .

distintas tup as con e. . d t s Haciendo uso del conocimicn'"profesor, p~óa sebrdlrect~~ed~e~~~~so se:::~~e;ao~~nlrolarlo tendríamos que uuh/.udel dominio se sa e que esun disparador.

Opciones de borrado Ymodlficacién

, . . al borrar un PROFESOR. si éste es director de ¡llglll1No se deberíu ~ernllllr que. I ción de borrado será restringul« \

departarnento. también se borre este, por lo que a opla de modificación en cascada.

Figura 2.1.57

PROFESOR(N Socio, Área)

B:R,M ('

DEPARTAMENTO (Nornbre. Titulación.Director)

,d to se compone al menos por un area se

La restricción de que cada epartarnen d I de DEPARTAMENTOtendrá que recoger mediante un disparador. yla qule ~~ aÁ~~ es decir el nombre de. por lo menos una ve7 en a re aClon . .llene que aparecer . . omo valor del atributo "Departamento" en lalos departamentos tendrán que aparecer erelación ÁREA por lo menos una vez.

. . I di d I departamento es también un profesor. como ('11SI se considera que e irector e . ..' " d . 1,I d d las Universidades. el atributo Director a ernas l ~general ocurre en e OITIlnlO e . . , SOR

ser obligatorio, será clave ajena que referencia a la relación PROFE .

Reglas ECA

240 DISEÑO DE BASES DE DA ros PKOOLI:iMASKESUELTOS

Page 127: Diseño de Bases de Datos - Problemas Resueltos

SCRIPT EN SQL 92

CREATE DOMAIN Nombre_ Válido CHAR(40)'CREATE DOMAIN Booleano CHAR(5) ,

CHECK (VALUE IN l'TRUE', 'FALSE'»)DEFAULT FAI~SE;

~:R~AT~ DOMAIN Entero_Obligatorio INTEGER N()T NULL:REATE DOMAIN Tipo_Socio CHAR( 1)

CHECK (YALUE IN ('P', 'A');

Figura 2.1.60

R R,M,e

DEPAR'r AMEN'f<) (Nombre. Titulación. Director¡

I3:C,M:CrPROFE.SOR (tL~p('in , Area)Ir-------I B R.~1·("

___.USUARJ() (N Socio, DNI, Nombre, Tipo. e-mail")

I3:R.M:C• ..J

I B:R,~:C,

PRESTAMO (N Socio, e Loc. NlÍl/l, F Ini,.F Dev, Devuelto)

tB:C.M:C

EJEMPLAR (e Loca ización, Número. Prcstable, Área*)

,L,.ARF.A (Nonlore, N°J .aboratorio, Investigación. l)ep{/n{/IIIf~III())'__....J

, _j 8:C,M:C

B:SN.M:C

FONO() (C' Localización, Título, Editorial, F_r:.dición,Formato. N_Ejenlplares, Alllt,.JI<)

AlffOR (Cód Autor. Nombre)

j B:R,M:C

GRAFO RELACIONAL

...!K~\;':"1~~ -22.1. 'vIODELADO REI.ACIONAL 24\

teglas ECAPara controlar que de la relación PRÉSTAMO no se borre una tupla dond~ d

tributo "Devuelto" tome valor FALSE, se tendrá que asociar a esta relación IIIl

rsparador que se ejecute en la acción de borrado y compruebe este valor. Si l"

'ALSE la lupIa no se borra y. en caso contrario, se eliminará de la relación.

El atributo que nos indica la fecha de devolución de un préstamo se calculará tI.'orma automática, por eso en el grafo relacional aparece como atribulo obliga(illltl.ada ves que se inserte una tupla en PRÉSTAMO tendrá que ejecutarse un disparad"1lue compruebe que lIi el usuario es un profesor que pertenece al mismo área qUl' 11".roporcionado el ejemplar que quiere sacar prestado. la fecha de devolución .Idiréstamc será un mes más de la fecha de inicio del mismo, En caso contrario. la 1t~,II"le devolución será una semana más a la fecha de inicio del préstamo,

Figura 2.1.59

ipcíones de borrado y modificación

Las opciones de borrado en ambas claves son restringidas para no permitir que 'l'

orren usuarios o ejemplares que a lo mejor no han devuelto un préstamo. E~ decir, ~Iorrado en la relación USUARIO debe ser controlado, no se pueden eliminar usuario­uc no hallan devuelto los ejemplares que han tornado prestados de la biblioteca. Deiual forma no se pueden eliminar ejemplares que no hallan sido devueltos, ya que dl'sta forma se perdería el patrimonio de la biblioteca. La rnodificación se realizará l.'1I

aseada en las dos restricciones de integridad.

n·K.M:('

PRF.sTAMO (N Socio, e L(I<', NI/III, F 101. F_Dev, Devuelto)

B R.M"

USUARIO (N Socio. DNI, Nombre, Tipo, e-mail *)

cuatro atributos, "N_Socio", "C_Loe", "Num' y "F _Ini". El primero de éstos seráive ajena que referencia a la relación USUARIOS, los dos siguientes también-roan una clave ajena que referencia a la relación EJEMPLAR y el último será el quefique la fecha en la que se inició el préstamo.

En esta relación intermedia, que llamaremos PRÉSTAMO, debería aparecer un'ibuto indicando si el ejernplar se ha devuelto y la fecha de devolución. Por lo que el'ibuto que aparece en la relación EJEMPLAR, "F _Devolución" desaparecería },'restable" se calcularía a partir del atributo "Devuelto" de la relación PRESTAM() .

',¡k·' \1\-_DISEÑO DI> BASES DE DATOS PROBLEMAS RESUELTOS

Page 128: Diseño de Bases de Datos - Problemas Resueltos

••••••~ •••••••••••••••••••

()h~c!rvación' H ,',1 • , ,I '.' ernos lenlu~ que añadir lal> restnccioncs de integridad referencial enI~:.re~aclones Profesor y Area porque se produce un ciclo referencial. Cuando se11 ,enen .tuplas en estas tablas se deberán desactivar las restricciones y luego activarlas11,1 vez Insertadas para que el SGBD donde se implemente compruebe la integridad ..

\I.TER TABLE EjemplarADD FOREIGN KEY (Área) REFERENCES ÁreaON UPDATE CASCADEON DELETE SET NULL;

\I.TER TABLE DepartamentoADD FORErGN KEY (Director) REFERENCES ProfesorON UPDATE CASCADE' •

l.

('REATE 'rABLE Préstamo (N_SllCio ('I-IAR(S),C_Localización CHAR(8).Número INTEGER(8).F_lni DATE.F Dev DATE NOT NULL.Devuelto Booleano NOT NULL.

I'RIMARY KEY (N_Sucio. C_Localización. Número. F_Inl).I'OREIGN KEY (N_Socio) REFERENCES Usuario

ON UPDATE CASCA DE.IOREIGN KEY (C_Localización. Número) REFERENCES Ejemplar

()N UPDA TE CASCADE

CREATE TABLE Profesor (N_Socio CHAR(8).Área Nombre_Válido,

PRIMARY KEY (N_Socio),FOREIGN KEY (N_Socio) REFERENCES Usuario

()N UPDA TE CASCADEON DELETE CASCA DE.

F()REIGN KEY (Área) REFERENCES ÁreaON UPDATE CASCADE

);

Investigación Nombre_ Válido NOT NULL.Departamento NombreVálido NOT NULL.

PRIMARY KEY (Nombre).FOREIGN KEY (Departamento) REFERENCES Dcpartarnento

ON UPDATE CASCADEON DELETE CASCADE

~\\I\_- ....l:2.~1 MODr.L¡\()ORELACIONAL 245

••• ••••••

:::REATE TAB LE Ejeolplar (C_Localización CHAR(8).Número lNTEGER (S),Prestable Booleano NOT NULL.Área Nombre_ Válido.

PRIMARY KEY (C_Localización. Número));

CREATE TABLE Departamento (Nombre Nombre_Válido.Titulación Nombrc_ Válido NOT NULL.Director Nombre Válido NOT NULL.

l'RlMARY KEY (Nombre));CREATE TABLE Área (

Nombre Nombrc_ Válido.N°_Laboratorio Entero_Obligatorio.

.•

:REATE TABLE Usuario (N_Socio CHAR(8),DNT Entcro_Obligatorio.Nombre Nombrc , Válido NOT NULL.Tipo Tipo_Socio NOT NULL.e-rnail Nombre Válido NO'r NULL.UNIQUE (DNI).UN1QUE (e-rnuil),

'RlMARY KEY (N_Socio)

~ATE TABLE Fondo (C_Localización CHAR(S).Titulo Nombre_Válido NOT NULL.Editorial Nombre_Válido NOT NULL,F_Edición DATE.N_Ejemplares Entero_Obligatorio.Autor Entero_Obligatorio,

RIMARY KEY (C_Locali7.ación),OREIGN KEY (Autor) REFERENCES Autor

ON UPDATE CASCADE

DISERo DI' HASES DE DA'I OS:...!'P~R~O~BI!..!.I~\M!!:A~S~R.!2:I-.S~'l~E~L1~·(~)<;~ '.:...:'R:....:_'=M.\,

~EATE TABLE Autor (Cód_Autor Entero_Obligatorio,Nombre Nombre, Válido NOT NULL.PRIMARY KEY (C6d Autor)

Page 129: Diseño de Bases de Datos - Problemas Resueltos

.Enprimer lugar, transformaremos la entidad CURSO y la interrelación reflexiva."oclada a 11 L '.' d r. e a. a ennca se transformará en una relación, con clave primaria el,'1{)I"O del e C'C .r: C ")e urso ourgo , urso y con clave alternativa su nombre ("Nombre"),

, Presen~amos en la figura 2.2.1 (ver figura en la página sigueinte) el esquema ElR,Id que partiremos.

Oiscusióndel enunciado

Transformar el esquerna EIR obtenido en el problema 2 del capítulo I en unesquema relacional en el que se indiquen las claves primarias y candidatas, así comola., claves ajenas .. Indicar, asimismo, la semántica que aparece recogida en el esquema!'JR pero que se pierde en la transformación al modelo relacional.

Enunciado

PROBLEMA 1: CURSOS DE FORMACIÓN

2.2.TRANSFORMACIÓN DE ESQUEMAS EIRA ESQUEMAS RELACIONALES

Nombre. Tltuln(Fl-, 5<....,... N"nlbn:(USUARIO) * (ne_1,,,,.IIIJc,<I. T"ul..tFONDO) .. (Il, 1... ·110''''

Ntl"",n,(EJEMPLAR) * nN s.I<II,.('_L.,<. "'um«Jl)c,ud,"-~\I..!>"(PRÉSTAMO»»)

Álgebra relacional

SqlSELECT A.Título, C.NombreFROM Fondo A, Ejemplar B, Usuario C, Préstamo DWHERE D.Devuelto = 'FALSE'

ANO A.C Localización = B.C_LocalizaciónANO B.C- Localización = D.e_Loc AND B.Número = D.NutnAND C.N_Socio = D.N_Socio

nNllmhrc (PROFESOR * (nN $,l<'''' «J'\r<ue O"'c,,I,' D4",,·(PROFESOR»­nN_S,.,,,¡(PRÉSTAMO *(JArca.·Bu'",tic l)"t",·(PROFESOR»)

Título de los ejemplares que no han sido devueltos junto con el nombre del usuariOque los posee.

Álgebra relacional

;qlSELECT NombreFROM Profesor A, Usuario BWHERE A.N_Socio = B.N_Socio AND A.ÁrI!3 = 'Bases de Datos'

AND A:N_Socio NOT IN (SELECT N_Socio FROM Préstamo):

:>rofesores del área de bases de datos que no hayan utilizado el servicio deiíblioteca.

,GRUPACIÓN POR (TIPO), CUENTA(*) (nl'_S,,,,,o.f'p" «(J,,!'O=·A·(USUARIO»)*

~Igebra relacional

qlSELECT COUN1' (*)FROM Usuario A, Préstamo BWHERE A.Tipo = 'A' ANO B.F_lni < '31-12-2000'

AND B.F_lni > '31-12-1999' AND A.N_Socio = S.N_Socio;

~SULTASúmero de libro prestados a alumnos de la universidad Carlos m en este últimoflo

)151::.1'10DE BASES DI- DA ros PRORI.EMAS RESl!EI.TOS

Page 130: Diseño de Bases de Datos - Problemas Resueltos

'.•

Figura 2.2.4

B:C, M:C

NO_CAPACITADO (C6digo Erl/plelldol

"EMPLEADO (Código EmpleadQ, Nombre, Apellidos, Dirección, Teléfono,Nif, Fecha_Nac, Nacionalidad. Sexo, Firma, Salario, Capacitado)

B:C.M:C

CAPACITADO (Código Etnplead.q)

Habría otras soluciones posibles. Por ejemplo, corno dijimos cuando diseñamos ele-quema FJR, podíamos haber utilizado únicamente un supertipo CAPACITADO. En,"le caso, la jerarquía no sería total ni, evidentemente, exclusiva, y los controles arealizar serían distintos.

Por ser una jerarquía total, el atributo discriminante "Capacitado" no podrá tomarv.dorcs nulos. Además. por ser exclusiva. será necesaria una aserción que asegure queunempleado no pueda estar a la vez en los dos subtipos.

Corno SabCI110S,para transformar la jerarquía de empleados tenernos variasrlternativas. En principio seguiremos la que transforma cada entidad de la jerarquía enUIW relación. El supertipo EMPLEADO propaga su atributo "Código Empleado" a,'aJa uno de los subtipos (CAPACITADO y NO_CA PA C1TADO) que pasan a«lenriflcarsc por el mismo identificador (COIlIO clave ajena). Además, la relaciónI:MPLF.AOOcontendrá el atributo discriminante "Capacitado".

Figura 2.2.3

t'------'1 B:C,MC

EDICIÓN (Código Curso, Fecha, Lugar, Horario)

CURSO (Código Curso, Nombre, Descripción, Duración, Coste)

Podernos ver en el esquenla que existe una dependencia en identificación entrelos cursos Y sus ediciones. Como sabemos, esto se transforma en el modelo relacionalañadiendo la clave de los cursos a la de las ediciones. AsC, crearemos una nuevarelación. EDICIÓN, cuya clave primaria la formarán la fecha de celebración de lascdlcione~ ("Fecha") junto a la clave de 10l>cursos ("Código_Curso"), que a su vez seráclave ajena con opciones de borrado y modificación en cascada (o bien restringido, sinopermitirnos borrar un curso mientras existan ediciones del rmsmo).

1.2' TRANSFORMACiÓN DE "'"<¡QUEMAS¡:jR A HSQUEMAS RELACIONALES 249K\ 'tA

Figura 2.2.2

CURSO (Código Curso, Nombre, Descripción, Duración, Coste)

t t 1 B:C, M:C 1 B:C,M:C

PRERREQUISITO (Tiene Pre, Es Pre, Obligatorio)

Figura 2.2.1. Esquema ElR a transformar

Los borrados y modificaciones serán en cascada (también podrían ser restringido'. ) no será necesario implemenlardependiendo de la semántica que se.qUI.erareco~e~ . y s de la

ningún disparador debido a las cardinalidades mmimas cero en ambos extremo.interrelación.

11).1 )

11 1)

(exclulión)I

IU.n)

rl-...L..J._.J_J_.l._..J...-'t:::-o "'1fl1\.\

Sal...,.,

N:M

e _

" -._ e~ .,2y .~ '.~ - -.- u -O 1"

CURSO

Obligatorio

mientras que la interrelación Prerrequisito, por ser N:t-¿. se transformar.á en. o~arelación a donde migrará por duplicado, como clave ajena, la clave pnrnana e

. . I tr a los cursos que sonCURSO (una referenciará a un curso con prerrequlsltos y a o_ a . '. .prerrequisito del anterior). La concatenación de ambas formara I~ clav~ ~nmana de 1.1relación PRERREQUISITO. Además, se añadirá el atributo "Obllgatono .

!4R DISEÑO DE BASES DE DATOS: PROBLEMAS RESUELTOS

Page 131: Diseño de Bases de Datos - Problemas Resueltos

• Exclusividad de la jerarquía de empleados.

• Exclusividad entre las relaciones IMPARTE y RECmE.

• Todo curso lo recibe al menos un empleado,

1\o""dPorotra. parte. en el enunciado original, no hay restricciones que no se hayan, .. \JI o reflejar en el esquema ElR' idr~'l ' ' _ ' nI se conSI era necesario introducir otras

n(CIOnesque no figuraran en el mismo,

Llegados a este punto, se debe considerar con que medios (asercionesJI~paradorcs, procedimientos almacenados, modificaciones a los programas que.'(ceden a la 80....) se controlarán las siguientes restricciones no abordadas en laIran,fonnación al relacional:

Semántica no recogida

Figura 2.2.6. Esquema relacional solución

I:l:C,Me B:C,MePRERREQUISITO (Tie"e Pre, F..\ PIe, Obligatorio)

EDICIÓN (Código Curso, Fecha, Lugar, Horario, Cód_Capacitado)B:C, M:C

CURSO (Código Curso, Nombre, Descripción. Duración, Coste)

B.C, M.eB:C. M:C

Código Curso, Fecha)

B:C.M:C

E11lpl eado)

cado, Nombre, Apellidos, Dirección. Teléfono,ac, Nacionalidad. Sexo, Firma, Salario, Capacitado)M:C

?Ieado)

•~ EMPLEADO (Código Empl

Nif, Fecha_N

IB:C,CAPACI~rADO (Código E"'l

INO_CAPACITADO (Código

lB:C,M:C

RECIBE (Código EI1II2/eado,

I .

2.2 TRANSFOR~1ACIÓ~ DE ESQUEMAS EIRA ESQUEMAS RELACIONALES 251

6 muestra el grafo relacional con el resullado de l.•2.2. seEn la figurauansformación.

Propuesta de solución

Figura 2.2.5

'-- --,1 B:C, M'C

RECIBE (Código Elnpleado, Código Curso. Fecha)I I

_-------~==r-__..JB:C. M:C'f

EDICIÓN (Código Curso, Fecha, Lugar, Horario, Cód_Ca~a('jtad()).L __.l B:C,M:C

l._-----------,IB:C' M:C

NO_CAPACITADO (Código EIIIP/eado)

I--------'IB:C. M:C

r+-~CAPACITADO (Código_Enlp/eadQ)

;EMPl,EADO (CPd.igo_EmpleadQ, Nombre. Apellidos. Dirección: Teléfono.Nif, Fecha_Nac, Nacionalidad: Sexo, Firma, Salario, Capacitado)

En cuanto a la restricción de exclusividad establecida ~?tre las. int~rrelacione~Imparte y Recibe, deberemos controlarla mediante una asercion que Impida que unaocurrencia de una esté presente en la otra.

Por último, sólo nos falta transformar las in[errelacio~~s Recibe e Imparte,Imparte no es más que una propagación de la clave de la relaCI?n CAPACITAD.O a larelación EDICiÓN. donde será clave ajena. En cuanto a Recibe. será necesaria una

I '6 ya clave prirnari'a será la concatenación de las claves denueva re aCI n cu . ,EMPLEADO Y EDiCIÓN. que serán claves ajenas, ~erá necesano, controlar, además,que toda edición de un curso tenga al menos un asístente, es decir, que al menos loreciba un empleado,

250 DISEÑO Oh BASES OE DATOS: PROBLEMAS RESUELTOS

t .".,.\.'.' •• '." •• '."e ••• "••••• ''

Page 132: Diseño de Bases de Datos - Problemas Resueltos

.....•.•..•..••~~ •••••~.-

1" inlerrelación Representa es reflexiva y para evitar valores nulos, en vez de::I/,lt una propagación de clave, crearemos una nueva relación, REPRESENTA,Irll\"I:1de dos arríbutos "País" y "País_Representado". Ambos atributos juntos,lfl,1O en principio la clave primaria, sin embargo, dado que cada país

;, !_a inlerrelación Envía. cuyo tipo de correspondencia es I:N, propaga la clave de:I'i.." la relación PARTICIPANTE, relación esta que pasa a tener Otro atributo más,' ,11, , que no admite valores nulos y cuya opción de borrado será restringida para1,Ir411csc eliminen participantes al intentar borrar un país y la de modificación en\ .ttl~J!

l.a entidad PAÍS participa en dos interrelaciones binarias que pasamos a estudiar:

. ,La entidad PAIS se convierte en una relación PAIS cuya clave primaria es "País",Nombre" es clave altcrnativa y "N_Clubes" un atributo que no admite valores

11.". Como se indica en el enunciado la clave primaria es un número correlativocun el orden alfabético que ocupe el país, restricción que podrfamos implementar"'díanle un disparador que cada vez que se insertara un nuevo país calculara la"'ll(>n que Ocupa y desplazara la de los países que ocupan una posición posterior a'l'

Figura 2,2.8

I a-c. M:C

(:Al\1PEONATO (N Socio. Nombre, l'IPO)

Socio, Nombre, Dirección. Teléfono, Tipo, Nivel*)PARTICIPANTE(Nt

El atributo multivaluado "Campeonato" se transforma en una relacióndenominada CAMPEONATO cuya clave primaria será la concatenación de los.uributos "N_Socio" y "Nombre" y donde "N_Socio" será clave ajena que referencia a1.1 relación PARTICIPANTE, Las opciones de borrado y de modiñcacíon de dichaclave serán en cascada.

eficiencia crearemos una relación correspondiente al supertipo y veremos masadelante cómo transformar las interrelaciones asociadas a los subtipos. Por tanto, laentidad PARTICIPANTE dará lugar a la relación PARTICIPANTE y sus atributosserán "N_Socio" como clave primaria, "Nombre", "Dirección". "Teléfono" y "Tipo"corno atributos que no admiten valores nulos y donde, además, este úhi mo será el.llnhUIOdiscriminann, que tomará los valores. jugador o árbitro. Se incluirá el atributo"Nivel" para el cual deberá asegurarse que tomará valores nulos para aquellas tuplascorrespondientes al tipo de participante árbitro y que tomará un valor en elcorrcspondicrue dominio para aquellas tuplas correspondícnre, al tipo de participantelugador, Corno puede observarse, las propiedades de la generalización, totalidad yexclusividad se conservan al introducir el atributo discriminante "Tipo",

2,2: TRANS¡--ORMACIÓN DE ESQ1IHMAS ElR A r:S<.,>UEMASREl.ACIONALES 253

--

~.•..'.". . ._.'e •••• ~.

F ' 2 2 7 Esquema ElR a transformartgura , , , ~,

, 'pal11l" 11li ., creada para los paruciSe cornenz~rá trans~on~and~!>I~;~~~~i~~~al~I~~nsformación d~ una jCr~~l::::;:

campeonato. EXisten varta,S for~ muy pocos atributos propios Y bu l,este caso corno los subtipos llenen

("IIII1I:IU.IOII

'.1

11 •

~ART1I)'I '11

l ••

e •• 1 l'I I 1I

,U.nl

(',.. ,I ,

I\R.Rllk~)11(¡AI)CUt

1 I .11

, .01

HUII'I

Discusión del enunciado

.. ma FJR del que partiremos.Presentamos en la figura 2.2.7 el csque

~nunciado. btcnido en el prohlema 3 del capítulo I en un

Transformar el esquema E:JR ~ I l' ~ primarias y candidatas. a~1como' I '1 q e se indiquen as cave"-squcma relaciona en e u " á' e aparece recogida en eI esquemaas claves ajenas ..LnddleC'e,rn'alaSltl~I~~~;I~l~:~~~~t~~:o relacional.:IR pero que se pier '

'ROBLEMA 2: CAMPEONATO DE AJEDREZ

Page 133: Diseño de Bases de Datos - Problemas Resueltos

Figura 2.2.//

I"RMt

ALOJA IN part;fiJlil.lI!Jt~nlradil, F Salida", NIIII,,}f(~_II)+ UN M(

I'ARTICIPANTE (N SOCIO, Nombre, Dirección, Teléfono , Tipo. Nivel.... PaÚ)

llOtTEL (N9mbre, Dirección, Teléfono)

. Como la intcrre~ación pos~e dos atributos multivaluados, uno obligatorio y otronpcIO?al, que n~.hablamos cons~derado en la relación ALOJA, podría ocurrir que paraun ~llsmo. partlclpan~e y un mismo hotel tengamos distintos valores, ya que se hapodido alojar en el mismo hotel durante períodos de tiempo distintos. Para solucionare'te problema se ha adoptado la solución de aumentar la clave primaria con la fecha deentrada. pero puede observarse que bastará para identificar a todas las tuplas los~lnbutos UN Partí . ,. UF E "" -. icrpante y _ ntrada , ya que nunca ocurrirá que un participante\c aloje en la misma fecha en dos hoteles distintos.

Los participantes del campeonato se alojan en hoteles, entidad que se transformaen un~ relación HOTEL cuya clave primaria es "nombre" y COIno claves alternativasla '¡d~recclón" y el "teléfono". Existe una interrelación N:M entre HOTEL ;P~R71.CIPAN~Eque se transformará en una relación denominada ALOJA cuya clavepnlnarr.a estará compuesta por dos atributos. "NombrcH" y "N_Participante", querc:~pectl~amente refer~ncian a HOTEL y a PARTICIPANTE, ya que también sonclaves aJen~s. La opción de borrado para "NombreH" es rcsrnngida, ya que no sepuede pcrnutir ~ue borren un hotel y se pierda información acerca de los participantesq~e estaban aloiados en el mismo. Las demás opciones que fallan serán en cascada.1\0 se puede ~ecoger en el esquema que un participante al menos se ha alojado en unhotel, restricción que se deberá considerar posteriormente.

Figura 2.2. /O

H K \f eAL()JA (N Parl\Cipante, F Entrada. F_Salida", Nombre_H)

+ 8 R,M,e

PARTICIPANTE (N Socio, Nombre, Dirección, Teléfono. Tipo. Nivel*, País)

HOTEL (Nombre. Dirección. Teléfono)t

, ~I ~,eter en .I~ relación PARTIDA las claves ajenas "Jugador!", "Jugador?" y"Ar~lIro no adl~"tlendo para ellas valores nulos recogemos la cardinalidad mínima ymáxima de dos Juga.dores y un árbitro por partida. Sin embargo no podernos recogeren el esquema relacional que todo participante participe como mínimo una vez en elcampeonato,

22: TRANSFORMACiÓN De ESQUEMAS ElR A ESQUEMAS REL.ACIONALES 255• RA·MA

La entidad PAR7'/DA se transforma en la relación PARTIDA. Esta relación.endrá corno clave primaria el atributo "Cód P' y como atributos que no admitenvalores nulos él "Año", "Mes" y "Día", La interrelación que asocia PAR7'/DA conJUGADOR es N:M, pero no se transformará en una relación sino que excepcional­mente. dada la cardinalidad (2,2), para optimizar las comprobaciones que se tendríanque realizar si creáramos una nueva relación. como por ejemplo, que una partida ~ólnla jueguen dos jugadores y quc cada uno de ellos participe con un color de ficha,distinto, se ha optado por introducir en la relación PARTIDA dos atributos."Jugador I " y "Jugador?". Ambos serán claves ajenas que referencian aPA.RTICIPANTE y que tendrán como opción de borrado restringida y de modifica­ción en cascada. Además, se añadiría un atributo "Color 1" que tomaría el valor negroo blanco dependiendo del color de las fichas con las que juegue el jugador 1. No serí"necesario que se introduzca otro atributo para el color de las fichas del jugador 2, ):aque evidentemente será el color no elegido para el jugador 1. Ni siquiera es necesarioeste atributo si se adopta (como nosotros haremos) el convenio de que el jugador Isiempre es el que juega con blancas y el jugador 2 el que juega con negras. Las única,reglas de verificación que se deben crear son que el jugador I sea distinto del juga~llr2 y que los valores que tornan ambas claves ajenas se correspondan en la relaciónPARTICIPANTE a una tupla cuyo atributo "Tipo" torna el valor jugador.

También existe una interrelación entre PARTIDA y ÁRB/TRO que al ser I:Npropagará la clave de PARTICIPANTE a la relación PARTIDA, por lo que se ICI,H,h':1un atributo "Árbitro" que no admite valores nulos, clave ajena que referenCIa ,1

PARTICJPANTE con borrado restringido y modificación en cascada. Se necesitarla larestricción de que el valor que torna el atributo "Árbitro" se corresponde en la relacl<1llPARTICiPANTE a una tupla cuyo atributo "Tipo" toma el valor árbitro.

Figura 2.2.9

PARTICIPAN'rE U::l."Socio,Nombre. Dirección,Teléfono, Tipo. Nivel"'. Pais;Uk.i'1C'

,PAIS Ceíili, Nombre. N_Cluhes)

REPRESENT A<PaÚ ,ellreSe/lradQ. País)r;c M C' Ifl r M ('

~ +

epresentado sólo puede aparecer una vez. se tendría que la relación REPRESENTA-ndría a lo sumo tantas tuplas como la relación PAÍS. por tanto con el atributoPaís_Representado" sería suficiente para identificar cada tupla de la relación.EPRESENT A. por lo que será su clave primaria. Cada uno dc estos dos atributos eslave ajena que referencia a la relación PAís. En ambos casos las opciones de borradomodificación serán en cascada. Se tendrfa que comprobar que, para una misma lupia,1 valor de "País" es distinto al de "País_Representado" y que un país representado nouede representar a otros países.

.~ DISEÑO ()!1 BASES DE DATOS: PROBI.EMAS RESUP.LTOS

.••••••••.•••~ .••••'••••

Page 134: Diseño de Bases de Datos - Problemas Resueltos

~ ~

•••••• ( .1 ...l "'\' ~ ,,' .... ..•..•'•.••-••........•.....•r••

primer. . Además de I,a sernál~tica considerada en el correspondiente ejercicio del\,IJlllulo. se debenan considerar las siguientes restricciones:

• F.n la relación PARTICIPANTE se debería construir una regla de verificación parac~ntrolar que las t~plas correspondientes a los árbitros del campeonato tcn~a~;I.obrnulo en el atributo "Nivel", mientras que las tuplas correspondientes a Io~el n utos han de tener un valor no nulo en "Nivel".

• En .Ia,relación PART~A se tendría que crear una regla de verificación o CHECKpara controlar que un Jugador no puede jugar consigo mismo,

• S:'Jc debería controlar con disparadores que las claves ajenas "Jugador!", l~gbador2:' en PARTIDA son valores correspondientes a 'J'ugadores y que eYI.1Ift uto "A bitro" I " ,. r uro torne e valor de un participante que es un árbitro.

• rodo participante se aloja en un hotel.

Semántica no recogida

Figura 2.2.1./. Esquema relacional sotucián

--, ti e \1 (MEDIO (SIIICI. trls:dIQ)

r H f \1 ('

s. Capacidad. N_hotel)SALA (C\ídt +L.:=-

15.(' \1 e:(N Participante. F Entradª, F'_Salida", NlIlllbr/!_ff)

H R ,\, ('

I .. HOTI<:L====~----------_--~

ALOJA

MOVIMIENTO (Partida, Jugada. Movimiento, Comentario)

( Nornh[c. Dirección, Teléfono)

I~(.·.~t(

PARTIDA (CódL ---.

I IlC \tI

L..!:~========::;==C=A=M=I)=jE-O-N-A-T-O (1'/ SoCtO, Nombre. Tipo)B R. \t < 111 R M < 1 u k \1(

P. Año. Mes. Día. Jugador l , Jugadorl, Árbitro. N_Sala, Entradas)

I Uk \1(

SOCIQ.Nombre. Dirección. Teléfono. Trpo, Nlvcl*. PaÚ')~ "ARTICIPANTE ( N

PAís (flili,Nombre. N clubes)t -

REPRESENTA ('-¡l!!~~!:Ll.J~IilllO, País)

r.==--===:!....::.O=-c_::~1~.I _j1 uc. \1 I

2,2 TRANSFORMACiÓN DE ESQLaóMAS EIR A I:S(Jllt-:MAS RC,LAC:IONAI.E$ 257K!\fl.lo\ __

Propuesta de soluciónEn la figura 2,2.14 se muestra el grafo relacional con el resultado lk 1.1

transformación.

Figura 2.2,13

I 11 C'. ~I('

MOVIMIENTO (fartidll, Jugrul.a. Movimiento, Comentario)

P.. Año. Mes. Día. Iugadorl , Jugadori: Árbitro, N_Sala. Entrada~1PARTIDA (~ód

t

Por último. sólo queda transformar la entidad MOVIMIENTO. que se convcrur.in una relación llamada MOVIMIENTO, cuya clave primaria será la concatenación JI'os atributos "Jugada" y "Partida", ya que tenemos que esta entidad se relaciona con 1,.ntidad PARTIDA mediante una interrelación en identificación. Por tanto, el atriburo'Partida" también será clave ajena con opciones de borrado y Inoditicación l'I'

:ascada.

Figura 2.2.12

SALA (~7ód S, Capacidad, N_liotel)1HI ,MI

MEDIO (Sula, Ms:dio)

HOTEl, (NQJ11bre.Dirección, Teléfono)tL ----, 0'(' M('

r= _J IlII. M:(PARTIDA (Cód P. Año. Mes. Dra. Jugudorl , Iugadorl ; Árbitro, N_Sala, Entradas)

Las partidas se juegan en una determinada sala. por lo se ha de añadir a laación PARTIDA un atributo no nulo denorninado "N_Sala" que además será claveena que referencia a SALA y que tendrá como opción de borrado restringido y deodificación en cascada. También se añadirá el atributo "entradas" que proviene de titerrelación Celebra.

Transformaremos la entidad débil SALA en una relación, SALA, con clavemaria el atributo, "CódS". Esta relación tendrá. además, los atributos "Capacidad"N_Hotel". donde este último será clave ajena que referencia a la relación HOTEL y~ por provenir de la transformación de una interrelación en existencia las opcionc-,borrado y de modificactón serán en cascada. El atributo mutivaluado "Medios' sensformará en una relación MEDIO cuya clave primaria estará compuesta por lo,ibutos "Sala" y "Medio". El primero referencia a la relación SALA y su opción derrado y modificación será en cascada.

-_DISEÑO DE BASES DE DA'I OS: rROBLEMAS RESlJEL lOS

Page 135: Diseño de Bases de Datos - Problemas Resueltos

Figura 2.2./6

ES'!' PI{IMA CN!!mlm:.Transformadores)

SUMINISTRADOR (Nombre. Pais)SUREST (N ~lIbesl)

TRANSPORTISTA (Nomb~. Dirección)COMPAÑÍA (Non1bn:)

PR(.)VINCIA (Códiflo. Nombre)RED (R~-º)

ZONA ¡C,ódiflo.Con~unlo_~1edio. Núm_Pan. Núm_Emp. Núm_Inst)

Figura 2.2./5. Esquema éiR (I transformar

. Como ya sabernos, toda entidad del modelo E/R se transformará en una relación~11el ~lodelo. re~acional. Así las entidades ZONA, RED, PROVINCiA, COMPAÑÍA,RANS,POR7IS1A. SUBESZ', SUMINISTRADOR y EST.PRIMA .. se transformarán[l·'pecbvamente. en las relaciones que se muestran a continuación, '

. " 1111'\I~ ,'\

''lo' l. • ••

<... ~ o., ...._ .... ",0",,<~ ;1,,,, 4-

........~

,f •• • ......"....,

lo

¡.I I

• IN,;" ] 1--10 ...I !I"'~1.1 I 11...

I ."

I l. I •

.,

realizar la transfonnaei6n partiremos del esquema mostrado en la figuraPara1.2.15.

Discusión del enunciado

2.2: TRANSFORMACiÓN DE CSQllEMAS "'IR A ESQUEMAS RELACIONAI.ES :!59

l.••••••••••••••••• ,.i" •• '.,.,.l.,.

:Q Se ennendc, para to' expertos en 3Jedrel..que 'e trata de la notación algebrarcu

Trunsformar el esquema EIR obtenido en el problema 4 del capüulo I en 1111. I ., .I·d· tas 'IS{ \:111111'esquema relacional en el que se indiquen las caves pnmanas y cancn a ... ,'· .., . ida en el e~qllllll.las claves ajenas, Indicar, asimismo, la s~manllea que apare.ce recogi " .

EIR pero que se pierde en la transforrnacI6n al modelo relacional.

Enunciado

PROBLEMA 3: ENERGÍA ELÉCTRICA

••

••

El número de entradas vendidas para una partida, no puede super ar la capacidadde la sala en la que se celebra la partida.Un país que representa a otro no puede a su vez ser representado por ningún otro.

Separación entre intervalos temporales de estancia de un participante en el mismohotel.Corrección de los anteriores intervalos,Un movimiento se describe con una cadena de cinco caracteres eorrectamcn«compuesta'" y que representa un movimiento legal para la partida que se (.',1.1

jugando.

Por último. se han de incluir aquellas restricciones que xe consideranconvenientes o adecuadas:

Debe considerarse además, aquella semántica presente en el enunciado y que nopudo reflejarse ni en el esquema F)R ni en el esquema relacional:

Un árbitro no puede arbitrar partidas en las que participen jugadores de su mismopaís,

• Secuencialidad del código de país.

• Secuencialidad del código de partida.Secuencialidad del número de movimiento dentro de cada partida.

Se deben proporcionar elementos para calcular:

• En cualquier sala se celebra al menos una partida.

• Todo jugador juega al menos una partida.

• Cualquier árbitro arbitra al menos una partida.

• En toda partida siempre hay corno mínimo un movimiento.

Page 136: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••••

. ~or último, la interrelación existente entre las entidades ZONA y PROVINCIA, se1.1Il,lorma.como en los casos anteriores, propagando la clave primaria de la relaciónI'~()VINCIA hacia la relación ZONA. En este caso la clave ajena no puede admitirIll\rc~nulos, pues cada zona está adscrita a una determinada provincia. El borrado de: \ lave ajena debe ser restringido para evitar quc desaparezcan las zonas cuando se1IIIInc un" provincia de la cual dependan. La modi Ilcucién sera en cascada.

Figura 2.2.20

SUBEST (N subcst, Red*. N_Ltllea*)

LíNEA (Red, N Línea, Longitud)

Dc la misma forma, la interrelación Abastece se transforma propagando la clave•le' la relación LINEA a la relación SUBEST. Además. corno una subcstación puede,~r o no abastecida por una Ifnea. la clave ajena puede udrnitir valores nulos y el"'\Ir¡¡dopuede hacerse con puesta a nulos, en cascada o restringido.

Figura 2.2./9

13:('. M:C'

RED (Red, Nombre¡

EST_PRJl\-lA (Nonlbrc. Transformadores}

En primer lugar tenemos una interrelación Cabecera que enlaza las entidadest.ST. PRIMA y RI::D. La cardinalidad máxima "n" está ..ituadu en el lado de la entidad/ll· D. esto significa que una estación primaria es cabecera de varia, redes. pero unared solo puede tener como cabecera una estación pnmaria, por lo tanto laIran,furnlaClón la haremos propagando la clave prirnana de la relación EST _PRIMAhacia la relación RED y elite atributo será clave ajena de la relación RED querdcrencia a EST _PRIMA. Como toda red tiene que tener una estación primaria corno.ahccera. la clave ajena no puede admitir valores nulos y por lo tanto el borrado nopodrá hacerse con puesta a nulos. tendrá que hacerse en cascada o restringido. Lamodificación se hará en cascada.

Comenzamos el estudio de la transformación de las interrelaciones 1:N.

~ 1. TRANSI'ORMACIÓN 1>1-. ¡":SQUEMAS E/R J\ f-.SQUEMAS REl.ACIONAI.I'.5 261

•••••••••••••••••

Figura 2.2. /8

H:C,M e'rÉRMICA (NQllr¡,rr. Carbón, Hornos. Gases)

R·C.M:(NlJCLEAR (N",,¡!Jre.. Rcactol'c~. Residuos, Plutoruo)

B.C. M·eSOLAR <fVcunl?rc. Superficie. Horas_Sol, Tipo)

B<:.MCPRESA (NO/libre, Cap_Máx. Ocupación. Turbinas)

PROD"JCTOR <t'Qmbrc. Proo_Mcdia. Prod_Máxima. ¡:_Inicio. Tipo)

Figura 2.2.17

f .• de la J' crarquía que aparece en el esquema E/R. l\l'En cuanto a la trans ormacion . ' •. PRESA S'OLA/? NUCLEAR \

di .d cuatro categonas o subtipos. . . • ...productores se IVI en en . .' . "'1 supertipo también,TÉRMIL'A Como todos estos subtipos tienen atributos propios, y e . . .

• . 1 /, " d ando cada una de las entidades q\l\'la lransfornlación al relacional se rara consi er . las 1" ,. '. no una relación de esta forma. tendremos as re ,ICI\lIh'

conforn1a~ la Jerarq~lI~ c~OLAR NUCLEAR y TÉRMICA. Las cuatro últimas lIaPR()Dl.J~TOR, ~~~"S su'bti 10S de'la jerarquía) tendrán C0l110 clave primaria la cla\\'(ju.e pr~vlenen dCI '6" PRhoUCTOR que, además, será clave ajena que rcfercnvu .1pnrnaria de la re aCI n . I . a de los caSLISse haru ,"1I .. El hado y 1'1 ITloditicacI6n en cua quicr .' ..c~ac~~:c~:~lo la ~~~arquía :s total el atribulo discriminante Tipo no podní a~1l1l111

~:~ores ~ulos. La cxclu'\ividad de la jerarquía se debería controlar con una ascrcion

B:C.I\.ICLÍNEA (Re¡/. N Línea, Longlludl

RED (~)

. '. . tid: d débil con respecto a la entidad RED, queLa entidad LINcA e~. un.l. en 1:1 I clave primaria estará formada

depende de esta última en IdellllflcaclÓn. con. o q~e su ." RED E...te Últl1l111po r e l atributo "N 1 inca" y por la clave pnman~ de la rel,lclon. 'd' b .1

_ • . I 6 LINEA Y 'U~opciones e orrauo \atributo será adernáv, clave ajena de la re aCI n • s .modificación serán en cascada.

'( S (lIM\ "\~(ln DISEr':O DE HASES DI' DA IllS I'KUIl1.E~r..!!II\~S~·R~E~S~U~E!:1.1:!Q)·L --'-:':"

Page 137: Diseño de Bases de Datos - Problemas Resueltos

La última interrelación N:M que nos queda por analizar es Entrega. que enlaza1,1\ entidades EST, PRIMARIA y PRODUCTOR. En principio y Con10ocurre con todas1.1\ interrelaciones N:M, su transformación se hará considerando una nueva relación"lino en los casos anteriores, pero en este caso, la interrelación posee además un,lInbuto multivaluado "Fecha". Debemos analizar cuál será la clave primaria de lanUC\¡j relación; en principio las claves primarias de las relaciones EST_PRIMARIA yPRODUCTOR se propagan hacia la relación intermedia EST _PRODUCTOR, pero'''111(1 un productor puede hacer entregas a la misma estación primaria en distintaskdla~ y. además, una estación primaria puede recibir diariamente energía de cada unok' l()~ productores, podernos incluir el atributo "Fecha" en la relación1)'1 PRODUC1'OR, haciendo que pase a formar parte de la clave primaria de la:doll:11')1) , junto con las claves primarias de las relaciones EST PRIMARIA yl'k01JUc''TOR, que serán claves ajenas que referencian a dicha; relaciones, El, 'Ir,ldo de ambas claves ajenas será restringido y la modificación en cascada,

Figuro 2.2,24

111 R. 'w1 C

ENVÍA_ENERGfA ( ~edI Re 2, Volumen)

r-........REU (&U, Nrnnbrei

La entidad RED posee una interrelación reflexiva N:M que, además, tiene unatributo propio "Volumen". La transformación se hará considerando una nuevarelación ENVfA_ENERGÍA cuya clave primaria estará formada por la red que envíaenergía y la red a la cual es enviada la energía. Ambas serán claves ajenas quercferencian a la relación RED. Además la relación ENVÍA_ENERGíA tendrá unatributo propio "Volumen", pues en el enunciado se nos decía que se deseaba recogerId cantidad de energía intercambiada entre dos redes. El borrado se hará restringido enambos casos para conservar esta cantidad. y la modificación será en cascada.

Figura 2.2.23

.__. COl\1PAÑIA (l:':l\)olb!cl

B:C.M·eRED_COMPAÑIA (Nonlbre.Rl/dl

rr--: _' B:C. M:C'

RED (lkQ.. Nombres

2.2: TRANsrORMACIÓN OC ESQUEMAS E/R A ESQUEMAS REL¡\CIONALF.s 2634..' R." \11\

•••••••••••••••• ~~ •••••

. COMPAÑIA el a las entidades RED YLa interrelación Pertenece que en az formaci , 'análooa al (,':1'", 1" N'M y por tanto su trans ormacion es etambién una Interre acton, . ' ," scada o restrin!!ld,'

anterior, Los borrados de las claves ajenas son, como antes, en ca.las modificaciones también son en ca~cada.

Figura 2.2.22

• N' E Núm lnst ('ódigll Provinciasy~ZONA (C6digo, Consunlo_Medio. Nun'l_Part. \1111_ ,1l1P, -' , -

O.C. M eSUBEST _ZONA (Codigo. N Sub,st)

u.e, M:C,.-----------'

I id d SUBEST y ZONA existe una interrelación Distribuye que e-,Entre as enu a es , 1 db . " di .tribuye a varias zonas y a una ITI1Smazona a puc en

N'M pues cada su estaClon IS . . , hará.' .' ,'. . L t ansformación de esta Inlerrelaclon se aradistribuir vanas subestaclones ", , a SrUBEST ZONA cuya clave primaria estará, tr yendo una nueva relación _- - , SUBcST .cons u , 'n de las claves primarias de las relaciones '-' >compuesta por la concatenacio . '. e referencia a la relación de laZONA además cada una de ellas será clave ajena qu ".. ' . l:

I '. El borrado de ambas se hará en cascada o restringido rnienn as que ,1cua provienen. .modificación será en cascada,

vamos a comentar laContinuando el estudio de las interrelaciones,transformación de las interrelaciones N:M.

Figura 2.2.2 J

N 1 E Nllm In" C(Ítli~J P,lilO"" 111)ZONA (CÚdliQ. Con~um(l_Medlo.Num_Par1, \"'_ rnp, _ • •.

e I'ROVINCIA (Códl~Q.Nombre)_ I1K \1('

~6! DISE.NODE B/\SES DE DATOS. PROBLEMAS RhSU~,LTOS

r•••••••••••••••••••••

Page 138: Diseño de Bases de Datos - Problemas Resueltos

•••• i ••••••••••••••••Figura 2.2.27. Esquema relacional solucián

SUBE'''' B:C. M:C"",T_ZONA (Codigo. N slIbesl)II---------_jl B;C. M e~ ZONA (C(!sJi¡':Q. Consumo Medio . Nüm Pan, Núm_Ernp. Núm_lnst. C'lídi¡,¡o,../71'()lIll1l'ia)I ! O.R. M:C

.....PROVINCIA (CQdi¡tQ. Nombre)

r--+ LÍNEr\ (Red. N Línea. Longitud)B:K. M'C

~ SUBEST (N subest, Red", N_linea*)

RE- B C. M;C

D_COMPANIA (Noy,bre.Red.)R:C. M C

._.. COMPAÑIA (Nombre)

.....--<.~ IR e,M e~RED (jk{I. Nombre¡~-------~==~IB~.R.~le

ENVÍA_ENERClA JRedl, RJd2. Volumen)

RR.M;C e R. M e B R.M eCOMPRA (NoulbCl' Nuc. NOlllbre SIIIII. Neulbre Taull. ¡'echa. Cantidad)

RANSPORTISTA (NQmbr«. Dirección)

SUMINIs'rRADOR (Nombll:, País)

ÉR:C. M:C

T _RMICA (NO/libre, Carbono Hornos, Gases)

s.c. M:C.-. NUCLEAR (No/nbre. Reactores. Residuos, Plutonio)

BC.MCSOLAR (Nol1lbre. Superficie, Horas_Sol, Tipo)

...-~ PRODUCTOR (NQmbre, Prod_Media. Proo_Máxima, F_Inlcio. Tipo)

B r. \1 ePRESA (/Vol1lbre.Cap_Máx, Ocupación. Turbinas)

...- --l R R. M e

CEST_PRIMA (Nombre. Transformadores)

2.'2:TRANSFORMACIÓN DE ESQUEMAS ....JR A ESQUEMAS REI.ACIONAI.ES 265It.\ MA

En la ñgura 2.2.27 se muestra el grafo relacional con el resultado de 1.1transformación.

Propuesta de solución

Figura 2.2.26

B;R. "'I:C 1B;R. M:CR·R.~I.CCOMPRA (NQ/Ilbre Nltt:. Nonlbre SIIIU.Non, re Trans. Fecha. Cantidad)

~RANSPORTISTA (Nombre. Dirección)

SUMINISTRADOR (t:lombre. Par~)

r---I~NUCLEAR (Nmllbre. Reacturev, Residuos, Plutonio)

Por último nos queda por comentar la transformación de la relación tcrnari.,Compra, existente entre las entidades NlJCLEAR, TRANSPORTISTA ~SUMINISTRADOR. Se trata de una interrelación ternaria de cardinalidades rnáximu-,"n" en cada uno de sus extremos y con un atributo multivaluado "Fecha" que indic«que cada central nuclear puede comprar plutonio a un mismo suministrador y que esteplutonio puede ser transportado por un mismo transportista en distintas fechas. lo cu:dindica que la clave primaria debe estar formada por la concatenación de las clave­primarias que provienen de las relaciones NUCLEAR, TRANSPOR'flST A ~SUMlNISTRADOR (y que serán claves ajenas que referenciarán a cada una de I;¡,

relaciones de las cuales son claves primarias) más la fecha. corno se muestra el! 1.1siguiente figura, El borrado de las tres claves ajenas será restringido para mantener l'lhistérico de las compras dc plutonio. La modificación será en cascada.

Figura 2.2.25

'-i~PRODUCTOR (Nombn;, Prod_Media. Prod_Máxinla. F_IOlCIO, Tipo)

RR.MeEST _PROL>UCT()R (Na/libre Prod. NO/libre Esl. Fes;ba. Canudud)

r+: _J B R. ~te

.- ....EST _PRIIVIA (NOD1OCe.Transformadores)

'IN\\1'M DISEÑO DE flASES DE DATOS I'ROfll.bMAS RESlHol.TOS

Page 139: Diseño de Bases de Datos - Problemas Resueltos

I ~ado que los su?tipos de la generalización tienen atributos propios cada uno de<)\ mrsmos se transforma en una relación cuya clave primaria sería "Código CHJunquc . d I - •llene para ev~tar que ca a uno ~e los atributos multivaluados que estos subtipos

n se convierta en otra relación y dado que no tienen ni más atributos ninterrel'c' . h .a Iones propias, se a pensado en tomar corno clave primaria el código del

:a:a facil itar el control de la totalidad de la jerarquía. se incluye el atributotI"crltntnant "Causa" 1 ... e ausa que, natura mente. no admitirá valores nulos. La exclusividadde la Jerarquía se controlará con una aserción.

C:0menzalnos con. la entidad CONFLIC7'O junto con la generalización cuyo-upernpo es dicha entt?ad. Su transformación se realiza construyendo una relacióndenominada CONFLIC ro compuesta por los siguientes atributos: "Código C" cornoll¡I\'~primaria, "Nombre" como clave alternativa, "Muertos" y "Heridos" donde estosJ()~ultlm?~ admiten valores nulos. El atributo multivaluado "País" se transforma enuna relación PAfs cuya clave primaria se formará con la concatenación de dosJ(~~utos: "P~ís" y "CódignC". El atributo "Código_e" además de formar parte de la.Ia,.e pnmana es clave ajena que referencia a la relación CONFL1CTO y cuyas"pCionesde borrado y modificación son en cascada.

Figura 2.2.28. Esquema I:.'/Ra transformar

,"l.

IS

Rt" I~hlll ,\1 PItA"'"\<lo)Wr

, 1'· o-l-r==~==':>--~~"~ r~1)1\'1..111,

1(.\(',,,1lit,' I

, _~Illt

11... (.KII't'.\k\f \'111)'"11"

1I "UIr.\R

. , l •"'J;.I

'",.O

•I".IN

1011..1.: IlIllkl,III'N,~"!,,,O

'(' "1'"

,( ·.1Ir·' """".e

,1) I

tll.lI'4IKC.ANI/ \c 'f(tN ¡jI..,

¡'11\' I "t'¡jl"

N.\'

j(.,,¡

t <..!.t>' ",,~,.-lll\ ..,111-",

la.

2 2: TRA!\"Sf'(lRMAC1Ót\ DE ESQUEMAS EIR A F.SQUE.,\1ASRELACIONAI. ...S 267

•••••••••••••••••••-

Presentarnos en la figura 2.2.28 el esquema ElR del que partiremos.

)iscusión del enunciado

Transformar el esquema EJR obtenido en el problema 5 del capítulo I en 1111

squema relacional en el que se indiquen las claves primarias y candidatas. así COIIIl'

as claves ajenas. Indicar. asimismo. la semántica que aparece recogida en el esquClll.l~fRpero que se pierde en la transformación al modelo relacional.

l:nunciado

'ROBLEMA 4: CONFLICTOS BÉLICOS

Por último, no se considera necesario introducir otras restricciones que n"guraran en el problema original.

La energía sobrante de una red no puede enviarse a sí misma.

Habría que considerar, además. la siguiente restricción que no pudo reflejarse ':1

esquema E/R.

Exclusividad de la jerarquía de productores.

Todo productor entrega la energía que produce al menos a una estación primaria.

Cualquier estación primaria es cabecera de al menos una red de distribución.

Toda compañía eléctrica es propietaria de al menos una red de distribución.

Una red de distribución es propietaria de al menos una compañía eléctrica.

Cualquier red de distribución esta compuesta por al menos una línea.

Una línea abastece al menos a dos subestaciones.

Toda subestación distribuye al menos a una zona.

A una zona le distribuye corno mínimo una subestación,

Una provincia se divide en al menos una zona.

Se deben controlar las siguientes restricciones perdidas en la transformación alacional:

-mántica no recogida

I...IRA \1\. DISEÑO DE BASES~I;DATOS: PROBLEMAS RESUr.L ros

r·.·•••••••••••••• ·••••

Page 140: Diseño de Bases de Datos - Problemas Resueltos

•••~ ~.~' '.~.•~

SI!crea la relación JEFE que proviene de la transformacién de la entidad JEFE"'''.IIAN, Y por supuesto se transforman también los atributos asociados a la misma.1'''1 lo que "Código" es la clave primaria de la relación, "Rango" un atributo que no,ll1IlIe villures nulos y dos claves ajenas que surgen de la transfornlación de dosIt'T'l'Iacione~, una con LíDER POLIT, y la olra con OIVISI6N, La clave ajena

La entidad uoee POLIT. se transforma en una relación, LÍDER, cuya clave:'flllluriaes "Cód Lfdcr" y "CódGrupo", este último atributo es además clave ajena¡1Il' referencia a GRUPO y que por venir de una interrelación en identificación sus'jlllones de borrado y modificación serán en cascada, También eSI:! compuesta por un1IIIhuIOque no admite valores nulos denominado "Apoyo",

La interrelación ternaria existente entre los tipos de entidad 7'/P() ARMA,II<AI'/CAN,/'é y (;Rl/PO ARMADO se transforma en una relación, SUMINISTRA,dl~~clave primaria se compone de tres atributos, "Grupo", "Arma" y "Traficante"1.lnde cada uno de ellos es clave ajena 4UC referencia, respectivamente. a lasrelaciones GRUPO, ARMA YTRAFICANTE. Para la clave ajena "Grupo" se tendrá.1 opción de borrado y de modificación en cascada, Para el resto serán borrado"'Ifingido y modificación en cascada. Aunque como hemos dicho las opciones"'ltlrían ser otras dependiendo de la semántica que se quiera recoger. pero siempre,klllro del espectro restringido o en cascada, Esta relación además contiene un atributo'\ .Armas" que proviene del atributo que posee la interrelación Suministra,

Construimos las relaciones ARMA y TRAFICANTE provenientes de las'ilrrespondicntes entidades, ARMA sc compone del atributo "Nombre", clave primaria.lc la relación, e "Indicador" cuyos valores no admiten nulos, La relaciónrRAFICANTE sólo tiene un atributo, "Nombre" que obviamente es clave primaria,P"ra recoger las armas que pueden suministrar y la cantidad, se crea una relación~TOCKcon clave primaria compuesta por dos atributos "N_Arll1a" y "N_ Traficante"cada uno de CSIOSatributos es clave ajena que referencia a ARMA y TRAFICANTE,rc-pccuvarncntc. La opción de borrado para "N_Afina" será restringida, sin embargo1\,lri!"N_-rraficante" será en cascada, En ambas la opción de modificación será en,',I\l'ada, Esta relación tendrá un atributo "Cantidad" que controla el número de armas.lccada tipo que puede proporcionar un determinado traficante,

Figura 2,2,30

L-__ ...,~1 \11

DIVISIÓN (enfeo, Dl\ISIÓp. Bajas, Hombre', A\ rones, Tanque" Bar<.'n"

INTERVIENE(Grllpo. COIlj1I1;IQ, f 101, F_Fin 1

r----_JIII R \1 e..GR 1'0 (Código, Nombre. Bajas)

"C.... --,II R.MrCONFLICT() (Cndi~Q e, Nombre, Muertos, Heridos, Causa)

!!.:.'.,~.'c._ ....:2,~'1¡{ANSfORMACIÓN DE ESQlif.MAS ElR A ESQUEMAS IlEI.ACIONAI.F.S 2f1'1

,................... ~•••

p¡\is <(Qdigo C. p¡~)j I!r. \1 1....------'

l---'~¡a.CONF~,IJTO (Qli/i¡:o (, Nombre, Muertos, Heridos, Causa)

Figura 2.2.29

id d ('I.JUPO A/~MA/)O se convierte en una relación, GRUPO, cuya .:Iall'La enu a 1/\ ,. "b "N hr ".; .. será "Código" y (,;11n10clave alternativa tendrá el atn UIO orn I,lpnmana , . ivad "N B" s' que se convierte en un atributo de ~'I.ITenernos un atributo d(,;nv~1O - Iculará ' un disparador asociado 1I la rC!¡II:IOIl. El' Id' e 'le atributo se ca cu ur.. con ~. .enttdad·Ó va or ,e sd '1 ¡'dad OIVISI6N) que en cada actual ización se encurg,u ,1DIVISI N (proviene e a en 1 ,de recalcular el nÚI11erOlolal de bajas,

L 1" DIVISiÓN se compone de los atributos: "Grupo" y "Divisiól~". JU11l1", a re acion • ' ., ya que existe una interrelación en identificación I:lIl1l

aciuan como clave pnrnana., .,.' referenou ,bh GRUPO por lo que el atributo "Grupo sera clave ajena que ,esta ta a y, , ' " . d Otros atributo

GRUPO y sus opciones de borrado y modificacíón ,~e~~11~n ca~c·~'Ba. . .: y "Bal.l'I bligado serán "Honlbres". "Tanques. AViones, arcos ,cuyo va or es o , .

y su valor por defecto será cero., GRUPO ARMADO se encuenlr."l

Como las entidades ~ONFL/~:O -: ' . una relación denonlÍlI,ld,'relacionadas mediante una ímerreíacíón N.M ~e creara v rimari~, .,.INTERVIENE cuya clave primaria no sólo e;~tara.forlma~a PIortn~abStcl~';SI~i" paru ti'"

, 'a sino que además se me uira e a u o -las dos relaciones que asoci ,1 , id d 'd' I clave primaria Esta relación III:IKde esta forma se pueda asegurar la uruct a ,e da "F F' " En l'a transfoflllacintl 1\1'

, dmi lores nulos denomina o In . 'otro atributo que a rmtc va " , -, d rupos afllladl", , fl 'CIO por lo Inenos Intervienen os g .' "se reflejaría que en un con 1 • ib t '''Grllp'' 'restricción ésta que se tendrá que c,onsidcrar po~teno:.menteG~~:~1 u~~NrLI(' 1(1"ConnicIO" son a su vcz claves ajenas que refercndc,l¡¡ana '6 ti ~ ser reslrilll!I,1.1

, ,'olles de borrado y mo 1 rcaci n puc e, ' : ,respectivamente, y cuyas opci , , d' .do y la rnodificacii1tl ,'1o en cascada, Elegiremos la opción de borra o reslnnglcascada,

ECONÓMICO (CÚd,~(IC.M Prinla)...- -'1 H c. M e

RELI<;JOSO (C!)dl~o C. ReligiÚn)r lit" (~ .-J

RACIAL «(c!d;~o C. EIDIíl)~ ------,I ~(M 1

TF.RRITORIAL (CódIgo C. ReglÓn)I II( \le~ _....J

!(¡)\ DIS¡'::'40 DE BASES DI. DA lOS PIH)BI I'MAS ¡{ESll!:LTOS

, . .." "el nombre de la región, la religión, la materia prima ~ la e~niaconflicto. Codlgo_C. y e d El "Código C" es clave ajena que referencia"Jependiendo del subtipo iransrorma O. - , ..CONF1JC:TO con borrado y modificación en cascada en lodos los casos.

__ ..:.' _.!:Il , \1,

Page 141: Diseño de Bases de Datos - Problemas Resueltos

Figura 2,2,33

LIDER (Qrupo, Nombre. Apoyos).L__----;::::J...~1 u K, \1 e

I IDIALOGA (Grupo.Uder, Qrgal[t:(!CIÓII)1 o K '11'+ B N, M e

OR(.jANIZA~IÓN (CÓdigy, Nombre, ripo, nepJ/ldl.'_Dc')

L~Il~r~'~I(~,_T~_~---__110C M(

MEUIA (C'l.!ltflicro, Orgel/ti;acjólI, F Ini. F Fin', T Ayuda, Desplegados)

CONFLICTO (Código c. Nombre, Muertos, Heridos, Causa)

Figura 2,2,32

Para reflejar la interrelación reflexiva Depende se creará dentro de,ORGANIZACION una clave ajena a ~ímisma que podrá tomar valores nulos y cuya"pdóll de borrado podría ser puesta a nulos y la de modificación en cascada.

Transformaremos la interrelación Dialoga en una relación DIALOGA compuesta",Ir tres atributos. "Grupo", "Líder" y "Organización", que forman la clave primaria, y,1 'u vez los dos primeros son clave ajena que referencia a LÍDER y el otro también es,I~\'eajena que referencia a ORGANIZACIÓN, Ambas claves tendrán corno opcióndc borrado la restringida y de modificación en cascada,

Líder. Cód Gn//'f}, Apoyo)11'(' M ('L.._ ____J

GRUPO (Código. Nombre, Baja~)

~B(',M(,

1>IViSION (Grupo. División, Bajas, Hombres, Aviones, Tanques. Barcos)

IHRMC

JEFE (Código, Rango.e_en/po', Ditisión', CÓi_Líder, Cfd_Crllpo)

.r---------------~I ij:R,,\IC

LfoER (QóJ

crear una regla de verificación (check) que lo controle, La interrelación N:M que~'(iste entre estas dos entidades se transforma en una relación denominada MEDIAcuya clave primaria se compone de tres atributos. "Conflicto, "Organización" y"F_Ini", y además tiene los atributos "T_Ayuda", "Desplegados" y uF_Fin", dondeeSte ültimo admite valores nulos, Para que el atributo "T_Ayuda" torne solamentevalores de su dominio (médica, diplomática o presencial) se creará la correspondienteregla de verificación, Tanto "Conflicto" como "Organización" serán claves ajenas quereferencian a las relaciones CONFLICTO y ORGANIZACIÓN, respectivamente, ytendrán como opción de borrado y de modificación en cascada

2.2,TRANSFORMACiÓN DE t:SQUEMAS ElR A ESQUEMAS RELACtONALES 271

Figura 2,2,3/

Puede observarse que en esta relación, JEFE" aparecería dos vece~, ~I CÓdig~,d~grup o armado la primera como clave ajena proveniente de DIVlSIÓN ( C_Grupl ), 'f ER ("Cód G ") los valores 4""la segunda como clave ajena proveniente de L O _ rupo , ". '"tomarán estos atributos serán para la misma tupla (siempre que ambos ~s~e~ d~~~;:~::l',idénticos, por lo que habría información redundante, sin embargo, es difícil e '1:1:'

SI' se pretende mantener las dos claves ajenas, Hay que tener en cuenta q~e ,no todo J ,1

, "C G " tarf definido cuarlul'militar dirige una división, por lo que - rupo es arl", ' te '11"Cód Grupo" podría no estarlo, La solución más simple para conseguirle CO~~I~; e \dejar -en esta relación un único código de grupo armado (clave ajena a LI ,),

el un, 'loar la clave ajena a DIViSIÓN, claro que habría que añadir algún m~c~nl~lnl':ib "D'·"", a distinto II, dis arador) que compruebe que cuando el atn uto IVISlon se ,(tipo I PI" "O' ' ió " al t1enl(l"

1 , el de "C Grupo" aparezca en la re ación 1VISl n ,nulo, su va or Junto con - '1' d borrado \debería implementarse algún mecanismo que supliera as opciones :11 . l'

I ' , ho rná • sencr a con""difi ió de la clave ajena eliminada, Otra so ucion, mue o mas ' ,mo I IcaCI n , , d.rí - d' , una regla d,en dejarlo como está y admitir esa duphclda~, a lo sumo, po a ana, Irs:,C Gru o" \verificación que compruebe que en cualquier tupla de JEFE o bien - P"Cód_Grupo" son iguales o bien "C_Grupo" es nulo,

relacionan con las organizaciones Inediadora~, P:II,ILos eonñíctos también se • 1 iI"J d ORGANIZACIÓN en la re aCII'representarlo se transforma la entu al, .. " " "NOlllbrc" \ORGANIZACiÓN y los atributos que la componen son, Código". , l'

di' 'a de clave alternall va, ) ""Tipo" cuyas restricciones son e cave priman , , "T'" soto ",,,,,obligatoriedad. respectivamente, Para controlar quc el atnb~to I~O 1) se Jd',valores en el dominio (gubemalnental. no gubernamental o Internaclona '

TRAFICANTE (Nombrc)

III:R, MeSTOCK (N Arma, N TrqtiC(llIle., Cantidad)

r-r-: .....1 »,(' ~I('

+

ARMA (Nombre, Indicador)+

'ociada a la primera interrelación está compuesta por dos atributos "Cód_~~der" y:"rupo" que no adnütirán valores nulos y la asociada a la segunda, ,t~rnblen esta.J d ib t s "División" y "C Grupo" que si que admitirán valore,ompucsta por os atn u o, , l. - " . 1ulos. Las opciones de borrado serán restringidas y las de Inodlficaclon en casca; a,

GRUPO (CÓdi~o, Nombre, Bajas)

tL--------'llI C, M C

SUMINISTRA (Grupa, Anua, Tratisuuts: N_moas)Iij R, " e B,R, M,('

~,...------'

t> litA \1 ,u DISEÑODE BASES DE DATOS: PROBLEMAS RESUt:LTOS

Page 142: Diseño de Bases de Datos - Problemas Resueltos

• Una organización no depende de sí misma ni de ninguna de las organizaciones quede ella dependen.

• Separación entre intervalos temporales de mediación de una organización en elmismo conflicto.

, S~paraci6n entre intervalos temporales de intervención de un grupo armado en elll11snlO conñlcto.

• Corrección de los anteriores intervalos.

. Por último. podría considerarse la introducción de otras restricciones que nolI!!uraban en el problema original. pero que proporcionarían calidad a los datosrre-emes en la so:

Por otra parte, en el enunciado original. no hay restricciones que no se hayan1l<l(!Jdoreflejar en el esquema EIR.

• Generar y asegurar la sccuencialidad del número de división dentro del grupoarmado.

• Calcular las bajas totales en cada grupo armado. a partir de las bajas producidas ensus di visiones.

Con un disparador. procedimiento almacenado o dentro del código de losprogramas. se deberla:

• Exclusividad de la jerarquía de conflictos.

• Cualquier jefe militar obedece al menos a un lfder político.

• Una división es dirigida por al menos un jefe militar.

• Una división es dirigida por tres jefes militares como máximo.

• Todo grupo armado dispone de al menos una división.

• Todo grupo armado es liderado por al menos un líder polftico.

• En un conflicto intervienen como mínimo dos grupos armados.

• En un conflicto intervienen al menos dos grupos armados.

• Cualquier conflicto afecta siempre como poco a un país.

Se deben controlar las siguientes restricciones perdidas en la transformación alrelacional:

Semántica no recogida

2.1: TRANSFORMACIÓN DH ESQUEMAS FJR A ESQUEMAS RELACIONALES 273It \ .\tA

Figura 2.2.34. Esquema relacional solución

1\ C",,.t l

\l (""

(oel.Grupo)

~RUPO eCódi¡¡Q,Nombre, Bajas)"!R, ~t.(..+ HR.M~ I

IINTERVIEN"; (unIDII. CQUfl¡cro.F loi. F_Fin)

10(.M(· .IlJVISIÓ"í (GLIU1II, Qi~I~lón,Bajns, Hombres. AViones.T

se.,,,IJ~ER (CÚO I.(OC(. (ti" COIPQ,Apoyos)

I 8 R "1(1 • D" ',s' C'd L dJEFE \.CódilW.Rangu, (_Grup". (\"" 11. (; _ I er,

BI<

ARÍtA <C6<II&.O.Indicador)••

TRAFICANTE eN2mb~)

.,. [8R'I(

STOCK eN Auna, N Traficª"te. Cantidad)B(' \lrj I a e.u e

SUMINISTRA ( Arma Trati nte,N_armas)8 (' M r 11e, M e

r ORGA IZACIONES (C~i¡Q. Nombre. Tipo. Depend..IA('.Me

OlA LOGA (!J.OIJ,!(.!.I..Cd,fC. Qc~a!l¡zaci.ó.a)111. .,('1 j

~e, M r

PAÍS e CÓdiea C. Par,)L-_-, 11(" M C.

~;;;;~lNfLICTO (códi~Q e, Nombre. Muertos, Heridos. Causa)

nePotC

ECONÓMICO (CÓdigo C. M Prima)K r." (,.-- -J

~----------' R (' ... (

TERRITORIAl. (C6dleo C. R'&160)

")2 33 muestra el grafo relacional con el resultado de la_.. seEn la figuramsforrnacién.

ropuesta de solución

, DISEÑO DE BASES IJE DATOS: PROULEMAS RESUELTOS

Page 143: Diseño de Bases de Datos - Problemas Resueltos

Figura 2,2.37

JlI ~a.entidad JUSTIFICANTE DE NÓMINA se transformará en la relaciónSllfrCANTE que tendrá los atributos "N,Mat" (proveniente de la entidad

I,JIPLHADO) "Ejercicio" "M " "N O d l' I 'L.. '- " ,es y . r en ; os atributos den vados "Descuento" eillllrcso" 1) d 5 ' .id 'h "', ,u .r.11 consi erarse como Virtuales y cnlcularse en cada recuperación. o,len Illillenall7,arse y recalcuíarse según se van realizando operaciones sobre el"I.jUcma. Optamos por materializarlos. con lo que la relación JUSTIFICANTE tendráI.l1llhrénlos dos utribi t • "O ""l '.• I os escucnto e ngreso' y. como consecuencia habrían de'n'ldcrarse las reglas de cálculo de los mi ...mos,

B:(".~l<: a c wrTRARA.JA tDeparIpmelllQ. N.NlaIJ Funcrén)

OEI'A TAr.fENTO (Nombr~)

El\III'LEAfJO (N.Mal. NI"", Nombre, N,HiJos, Retención. Banco, Sucursal. N.Cuenta)

La interrelación N:M Trabaja entre las entidades DEPARTAMEN1'O yl:ivfPLEADO se transformará en la relación TRABAJA, la cual tendrá como atributos"[)cpartalner~to", "N,Mat" y "Función"; su clave primaria estará compuesta por los dospruncros atributos, cada uno de 101> cuales será a Su vez clave ajena a las relaciones():PARTAMENTO.~ E~:LEA?O. respectivamente. En ambos casos, las opcionesJl bor_rado y modificación seran en cascada o restringidas dependiendo de la~ln¡~nIlCaque pr~tcndanl0s recoger. En cualquier caso, habría de asegurarse que la,..udrnahdad mínima uno (todo empleado trabaja al menos en un departamento)-icmpre se cumple. Por otra parte. ninguno de los atributos de esta relación admitevalores nulos,

Figura 2.2.36

De transformar la entidad EMPLEADO obtendremos la relación EMPLEADOque te~drá los atributos "N.Mat" (clave primaria de la relación), "NIF" (clav¿ahemativa), "Nombre". "N.Hijos", "Retención", "Banco", "Sucursal" y "N.Cuenta",Todos estos atributos no admitirán nulos. pues en el esquema EfR se habíanconsiderado C0l110 obl igatorios.

I)EPAtrAM;;NTO (N9mbrn)

11 r: M eSEDE (Wslrtalllí!IIIQ. Sede)

podría repetirse: sin embargo. no parece lógico suponer que diferentes departamentosno pue~an cornpa~ir sede). El atributo "Departamento" es una clave ajena quereferenCIa a la relación DEPARTAMENTO, sus opciones de borrado y modiflcacíons~rán ambas en cascada, pues la relación SEDE proviene de un atributo multivaluado.

1.~.TRANsrOKMACION DE ESQUEMAS E/k A ESQ! ¡'\olAS REI.ACIONALES 275R 0\ ,tA.

••••••••••••••••\.~•."•.•"••

Figura 2.2,35. Esquema ElR a transformar

Comenzarnos transformando las entidades, Cada entidad dará lugar a 1111.1

relación: así. al transformar la entidad DEPARTAMENTO se tendrá la re.la¡;HlIlDEPARTAMENTO con un único atributo "Nombre", el cual será su clave prllll,:'II,1(por tratarse del "tributo identificador principal de la entidad); el alrihuto, "Sed~ "trata de un atributo multivuluado que, como sabernos, dará lugar á una rclución SI,.!)Iesta relación tendrá como atributos "Departamento" (nombre del de,part¡lnlen~lll ,~"Sede" y su clave primaria estará compuesta por estos dos atnbutos (~1 h

. d "S xlc" • I 1" prirnari a dado que 11·departamentos no comparueran se e. e e sena a e ave

,1.1

,~1\,,,.- ",,,.,j'

11 "1

N I ,1<',.,I '"N\1

I ('~h.a

t Ilnl

~ 1:lJ'.(\,..NT(.(·()~f',

I "1 "

It n!

( ,>,¡"I'" 11011'01

,11

,

1,1 1".11•• ""l.

Presentamos en la figura 2.2.35 el esquema E/R del que partiremos.

Discusión del enunciado

Transformar el esquema E/R obtenido en el problema 6 del capítulo I en unesquema relacional en el que se indiquen las ~Iavcs primarias y c3n,didatas. así cornolas claves ajenas. Indicar. asimismo, la semántica que apare.ce recogida en el esquemaEIR pero que se pierde en la transformación al modelo relacional.

Enunciado

PROBLEMA 5: GESTIÓN DE NÓMINAS

.' R\.',\274 DIS[,I\O DE BASESDE DA ros: PROBLEMAS RESUELTOS

~••••••••\.'••••'.'••••••

Page 144: Diseño de Bases de Datos - Problemas Resueltos

INGR~'SO (Al ." .. , ~'. ' 11-(' ',r ,.r 'IC'.. <.W'UU. ~frt'l( In MLL Al "-./ .., AlL ' ,• ~'..!>LIill:lI.u.. II/c'a. Concepto¡

I>ESCl'ENTOtAlA'." ~'; " A,_ lit \I(I.LJ'J.UJ. siaauu. !!L(..I. (!.Qr,'·· .. ti / . 8.w,.u. .J.J!JlJ.l. ~'e. Porccnlajc)

Figura 2.2 -10L.t entidad r.:LhM/::NTO COSTé' • , '.:nnutos "Códi "('1 " se tran~lonn¡¡ en la relación COSTE '. , Igo e ave prllnana) "Descri x.ión" ", ", '. que tendra

.,ll)re~nulos. La interrelación re'tl ' . CI n. y Saldo; ninguno de eHos admite, , . eXlva onuene pod • ."'r,lgaclóll de clave. reflejando a" ." d e na transfonnarsc mediante" . . ,SI para ca a elcmento de J'., ((l~leque le contiene Opta COste e posible clerucnn,I ()NTIEN . Inos por transfonnarl . dC E, que contendrá los atributos "Coste" (1 a crean o una nueva relación

O~te_D"(elemento de coste hijo); . . " e erl1ento,de Coste del que depende)-n ()PCiones de horrado y lnodl}fj ,~~bos serán claves ajenas a la relación COSTE'npl" I icacron en cascada o " ,, ~ar os dos atributos de la relación corn j, ,restnngldas, Evitaremos el'~~t~~cara cada tupla de esta relación el alr~b~t~v.~~r~rn~,? ~ado que bastará para, r.a,un padre y por tanto aparecerá una úníca s e_ . ,~do que un híjo sólo.IlIOn, ve7. como hiJO en las tuplas esta

'. La ínterrelación N:M Im ut.a,nUlOS "N.Mal" "EJ'erc' . "~M se lransformará en la relación IMPUTA I. • ICIO, es" "N Ord " "N Lf con os

,1I1J1onen la clave prinlaria de la rela'cl'ón' ten. . nea" y "Coste"; todos J' untos''''ene', I . Y odos salvo "c " ., ' la a a relación LINEA' el atributo "c . ,,' os.tc son clave ajena que

,:1"011 COSTE. En 31l1bos c~sos. las . ost~ es .clave. ajena que referencia a la"'Ud o restringidas ¡;egún la semánti~a :~~~~:~ de Integndad referencial serán en

L.t entidad TRANS¡;/:.'Ré'NCIAI(), atributos "Código" (Clav~se lr~nsf~rma en la relación TRANSFERENCIA

pnmana). "Banco". "Sucursal" "c ". uenta y

CONCEPTO (Códi!:o.De,cripciÓn)

!ran~fom1<lremos la generalización de u •relación diferente para el supertipo y ara cad pos de línea optando por crear unarelación DESCUENTO con clave p . . a uno de los subtipos. Obtenemng así laatriburos "Base" y "Porcentaje" adi~~:~~;~~ I~r~al que la de la rel,ación LíNEA y dosIw considerado en el e-quema ElR T bié guno. de ellos admite nulos pues así semisma clave primaria y que re'cl'bue01Idn s: obtiene la relación INGRESO con'la. u e lilas por pO"interrelación I:N Responde el atrib t "c' r pagacíón de clave de la" C I U o oncepro'' uue .'relación ()NCEPTO cuyas opci n 'd. b . d ." _sera. una clave ajena a larestringidas dependiendo de 1'1 s~ e~ t'~ orra o y Inodltlcaclón serán en cascada oI,)rnlal~ la clave primaria ta~to r;aJll~ca PI re~eóndida. El conjunto de atributos queDESCUENT() , n .1 re aCI n INGRESO e 1, . serán clave ajena a la relación LiNEA .. ,olno en a, relación~borrado serán en cascada o rest - id y sus Opciones de modificacióniratamientn que se pr~tendan E~ Inngll a~.nueL\:amente dependiendo de la semántica y

d " ,a re acron INEA se incluy J ib .11(1 a mue nulos para controlar la t t lid d . ce atn uto "Tipo" que~~neralizaci<.lnse ha de forzar con la i~~ I ~ ddeIla Jerarquía, ,La exclusi vidad de la

USI n e a correspondiente aserción.I EA rt:i.!-1.aL furciC/(J. Mil. N,On/w.. N,l.jnej!. Canlidad. Tipo)

k' \Ii\ '"') TR_,_o ANSFOR.\IACIÓ" DE I'.svur \IAS [:IR A ESQUEMAS REI.ACIONALI.S ~77

(\ ., '~~••••••,...••..'•..

Figura 2.2.39, 'N'" di' C '''11 ,,1Con el atrihuto "N.Lfnea" en la relación LI r.A suce e o mlsnlO qu ,

Itributo "N.Orden" en la relación JUSTIFICAN1'E, debelnos asegurar su inicl;I,·ltll' '.u secuencialidad.

La entidad C'ONCEPTO se transformará en la relación CONCEPTO. que 1,·,,,11.'. . "O "6" N' d >stO~ al 1111111.")Qr atributos "Código" (clave pnnlarla) y escnpcl n, Inguno e c. .

ldmitirá valores nulos.

1 I I 1°('.\1('. 'LfNEA <N.,MIl/, Ejercicio, ~ N.Orden.N,Llnea. Canudad)

JUSTiFICANTE (N.Mal. Elercicio. ~. N,Orden. Ingreso. Descuente)t

Figura 2,2,38

La transformación de la interrelación I:N Recibe ya se ha realizado rncdrantc-opagación de clave. De la misma manera. se transformará la Interrelación I \onsta aunque, en este caso, la cardinalidad mínima uno (todo justificante de nlÍl1l111)nsta corno mínimo oc una línea, que además es de ingresos) no se podrá recoge:

La entidad LíNl::A se transformará en la relación LÍNEA con atributos "N.I\1.,.~jercicio", "Mes", "N.Orden" (todos ellos pro venientes de la propagación de clave .1,'I interrelación Consta), "N,Línea" (que junto a los anteriores es clave primaria d,' l.,elación, dado que se trata de una dependencia en identificación) y "Cantidad", 1,'"uatro primeros atributos son clave ajena que referencia a la rel.Ie" ,"USTIFICAN'rE: las opciones de borrado y modificación de la misma scran ,.,aseada o restringida dependiendo de la semántica pretendida.

I n (', M·(

.JUSTifICANTE (t{"WIII. EjercicIo. Mes, N.Orden. lngreso, Descuento)

La clave primaria de la relación JUSTIFICANTE estará formada por los atributo,ercicio", "Mes" y "N.Orden" junto con el atributo "N.Mat" que proviene de laidad cM PI.EADO. al tratarse la interrelación Recibe de una dependencia enntificación, Este atributo "N.Mat" es una clave ajena que referencia a la relación1PLEADO; las opciones de borrado y modificación serán en cascada o resu ingid .•pendiendo de la semántica y el tratamiento que se pretenda realizar.

El atributo "N.OnJen" no puede ser nulo, dado que forma parte de la clavemariu de la relación JUSTIFICANTE. Se debe asegurar que se inicializará con UI1

lor por defecto (por ej. 1). para evitar que sea nulo. y si un justificante de nómina c'único de su mes siempre tendrá número de orden 1, Además. cada vez que unjpleado recibiera más de un justificante de nómina en cada mes deberfamo­egurarnos. con un disparador, de que el valor que recibe la correspondiente tupla ul'llSTIFICANTE se incrementa secuencialmente como se afirmaba en el enunciadoiginal.

EMPLEAD() (N,Mal. NIF. Nombre. N,Hijos. Retención. Banco, Sucursal. N,('uenla)t

I,U,\'I\I)I~EÑO DE B,\SI'S Dr, DATOS' PROBl.EMAS Rr!)l LLTOS

Page 145: Diseño de Bases de Datos - Problemas Resueltos

Figura 2.2.43. Esquema relacional solucián

a (, M lu e 1\1("

la.Can!idad)

nSle)

HC' M e

!fil. Rase. Porcentaje)

u ( . 'Il

IIC,M('

COIICl'l'tO)

anudad, Tipo)

! I I I IU("te3~EA (l!L/dot. Ejercicio. Mes, N.Ordell. N,['ínca. C-t

CONCEPTO (CÓdigo, Descripción)He.M(

INGRESO (ti.M<lL JJJ:rcicinJ Me.l. N.Qrdfll, l!L1..{lJfiJ..

D[SCUtNT() CN,l!tll1.tJ€r(io.p. Mn. t:!..!Uck.tL tli.J,

10S tE 'úl;'"" o.~dp";ó" 5,1d"

IO.C'.M.e lo ('. ~I CCONTIENE (Coste, Ca,lIe Q)

H e ~I.¡

IMPUTA (¡'{.Jol. EierJiciO. M~.r N.or1ell. N.I..J.z,a. e

+TRANSFERENCiA (Código, Banco. Sucursal. N.Cucn

....APUNTE (CQ(Ji~. Cantidad)

Il,¡ ,M(

I.IQlJ rOA (Cu,\:I'. IJ:¡JJI.Siiu.·ell~'¡!J, OJ'III1/f. fe.ffiu)

JUSTI~ICANTE (N.Mar. Ejercicio. ~.lS.Ordcn. Ingreso. Descuento)

TRAB

SEOE

o PA

Rerención, Banco, Sucursal. N Cuenta)~E~~DO(~,MªI. NIF, Nombre. N.HIJo~.

11 TAMENTO (~Qmb[!.)

o (. M el(/.fflJaOtto¡ell/(J. Sed~

IH'CM.e Hc.M.eAJA (1kI2artnUlenlq,. N.Mar. Función)

I s.c. M·e

EMP

2.2 TRANSFORMACIÓN DE E:>QUf.MAS I'JR A !'SQUEMAS RtlACIONAlES 271}¡-~RA (\10\

•••••••••••••••••• 1••••• 1'-'.

Propuesta de soluciónEl resultado de la transformación puede verse en la figura 2.2.43.

Figura 2.2.42

nc.u r ~e'H

LlQUJnA (Co.Vle.Tr<IIIJ[cU/lCI<!. A¡.mnle.Fecha)Uf ~1r

APUNTE <Códilio.Cantidad)

TRANSFERENCIA (Códi¡¡Q.Banco,Sucursal.N.Cuenta.Cantidad)

COSTE (Código.. De~ripci6n. Saldo)

Figura 2.2.41

La entidad APUNTE CONTABLE se transforma en la relación APUNTE y ~u\ributos serán "Código" (clave primaria) y "Cantidad"; ninguno de ellos podrá admitirilores nulos al haber sido considerados como obligatorios en el esquema EIR.

La interrelación ternaria Líquida se transformará de acuerdo a lo establecido porcaso general de transformación, Sin embargo, esta interrelación tiene un atributoultivaluado que habrá que considerar y hay una cardinalidad máxima I que pcrrnitini,mplificar la solución. Se crea así una relación LIQUIDA que tendrá como atributo-S claves ajenas que provienen de cada una de las entidades que asocia c'taterrelaci6n. por ejemplo. "Coste", "Transf ereneia" y "Apunte". tendrá además, unributo "Fecha". Estas claves ajenas tendrán las opciones de integridad referencial.ie corresponda (en cascada o restringidas) dependiendo de la semántica pretendidaa clave primaria de esta interrelación estará formada por "Coste". "Transferencia" ):;echa"; obsérvese cómo no incluye "Apunte" dado que por cada elemento de costequidado con cargo a una transferencia el apunte contable está determinadocardinalidad 1,1) por lo que no se necesita el apunte para distinguir las lupias de estaelación; sin embargo, sí se necesita el atributo "Fecha" para distinguir tupla,orrespondientes a liquidaciones iguales aunque realizadas en diferente fecha.

ue.M" U" MeIMPUTA (N.Mat, fJercieio. Mes. N.Orden. N.Unen. Coste)

C()S E (Códi¡o.Descripción.Saldo)t tL , R-,,-.-M-¡.'1B(',Ml

CONTIENE (Coste. Cosie D)

LfNE/\ (ti,Mot. 6jercic¡Q,Ma {l{.Orden.N.LrneA,Canudad,Tipo}

antidad": ninguno de ellos podrá admitir valores nulos al haber sido considerado,mo obligatorios en el esquema EIR.

DISEÑO DE BASES DE DATOS' PRORLatAS RESUtLrOS "R;, MI

~•••••••••••.••••'••••'

Page 146: Diseño de Bases de Datos - Problemas Resueltos

) ) O :> 4> [¡ ) J ' ) O o e O• •••••••••••••••••

Figura 2.2.44. Esquema ElR (/ transformar

C~n1enzamos transformando la entidad USUARIO en la relación USUARIO1,,\ atr b t "DNI" ( I .. conI .1 U os cave pnmaria, por tratarse del atributo identificador principal de.1 cntl~ad). "Nombre" ~ "Teléfono" (clave alternativa) tal que nin guno de ellos admite~.I~orcsnulos. El atributo multivaluado "Terminales" dará lugar a una relaciónI RMI~AL que tendrá los atributos "ONI" y "Tenninal" COn10 clave primaria. El.ilnhlllo ONI" se trata di' '.. . e una e ave ajena que referencia a la relación USUARIO sus'PllOncs d b d . y . usIFRM' e or~a o y modificación serán ambas en cascada, pues la relación. INAL proviene de un atributo rnultivaluado.

!I ni

IN.- - ..-----~~~--

f ••.1-,: r Ik.,.,,1o. .111

_J .U,n •,~ ftSt\n \t"

• IJII

Presentamos en la figura 2.2.44 el esquema EIR del que partiremos.

Discusión del enunciado

Transformar el esquema EIR obtenido en el problema 7 del capítulo 1 en uncxqucma relacional en el que se indiquen las claves primarias y candidatas. así cornola, claves aj~nas. Indicar. asimismo, la semántica que se recogía en el esquema EIRpero que se pierde en la transformación al modelo relacional.

Enunciado

PROBLEMA 6: ENTORNO DE EJECUCIÓN

- 2.2: TRANSFORMACiÓN DE ESQUEMAS ElR A I-'_"QUEMAS RELACIONALES 281

, O O e ( \.,;O O e O ) O 13·_~"~•••••••• T..~,,,•••••••

. .' . á id ninguno'!.'Un elemento de coste no se conucne a SI rrusrno ni es! contcm o ensus descendientes.

Por último. se consideraría cualquier otra restricción que se considere apropiada

••••

Cada empleado recibe al menos un justificante de nómina cada mes.

Existe al menos una línea de ingresos en cada justificante.

Un empleado no puede recibir nóminas tras la extinción de su vida laboral.

La cantidad en una línea de ingreso es positiva.

La cantidad en una línea de descuento es negativa.

Habría que recoger, además, bien mediante disparadores: asercione- "codificándola en las aplicaciones que accedan a la BO. la semántlc~ que. c\landllpresente en el enunciado, no pudo recogerse ni en el esquema ElR ni en el mOl.kl.relacional:

•••

Reglas de cálculo del atributo derivado "Descuento" en JUSTIFICANTE.

Reglas de cálculo del atributo derivado "Ingreso" en JUSTIFICANTE.

Generar la secuencialidad del número de orden del justificante.

Generar la secuencialldad del número de línea del justificante.

Se deben proporcionar además mecanismos que soporten:

••••

Exclusividad de la jerarquía de líneas del justificante.

Cada empleado trabaja en al menos un departamento.

En cada justificante hayal menos una línea.

Una línea se imputa al menos a un elemento de coste.

Todo departamento tiene una sede.

Semántica no recogida

No ha sido posible recoger dentro del modelo relacional las siguientesrestricciones que sí se recogían en el esquema EIR:

:80 DISEÑO DE BASES LJEDA1'OS' PROBLEMAS RESUELTOS

Page 147: Diseño de Bases de Datos - Problemas Resueltos

Tran~form~remos las dos generalizaciones del esquema EIR optando por crearuna relación dlfere~te pru:a el supertipo y para .cada uno de los subtipos. Así,~htenemos para la. Jera.rq~Ja de acciones las relaciones ~LAMADA y FUNCIÓN,ambas con clave pnrnana Igual que la de la relación ACCION. La relación FUNCIÓNlendr.á, además, el atributo adicional "Nombre" (clave alternativa), mientras que la~elacl6n ~LAMADA tendrá además el atributo "Ventana" (clave ajena que referencia01 la relación VENTANA, resultado de la propagación de clave de la interrelación l:NInv~c:,).. ~odas las claves ajenas cn estas relaciones tendrán sus opciones delIl,Odlft.caclony horrado en cascada o restringidas dependiendo de la semántica yIr,ltalnlcnto que se pretendan.

La entidad ACCIÓN se transformará en la relación ACCIÓN que tendrá comoatríbut():~ "Acción" (clave primaria) y "Descripción" (ninguno de estos atributosadmitirá valores nulos al no haberse considerado como opcionales en el esquema EIR).

Figura 2.2.47

ti c. M.l' IA'C, M eACCEDE (Perfil. SI/bsistel/Ul )

3:C, M:C<SQ.bsistemil, Descripción, Ventuna)SUBSISTEMA

t

VE:'IlT.t\.NA (Ventana , Descripción)

.---+ PERFIL (Perfil, Descripción)

La entidad VENTANA se transformará en la relación VENTANA, que tendrá poratributos "Ventana" (clave primaria) y "Descripción". Ninguno de estos atributosadmitirá valores nulos. La transformación de la interrelación l:N Arranca ya se harealizado mediante propagación de clave,

casos, las opciones de borrado y modificación serán en cascada O restringidasdependiendo de la semántica que pretendamos recoger. Además, deberíamosasegurarnos de alguna manera que las cardinalidades mínimas uno (todo perfil accedeal menos a un subsistema y todo subsistema accede al menos a un perfi 1) siempre secumplen.

2.1: TRANSFORMACIÓN DE ESQUEMAS EIR A ESQUEMAS RELACIO'li\LES "83

Figura 2,2.46

La entidad SUBSiSTEMA se transformará en la relación SUBSISTEtvll:conteniendo los atributos "Subsistema" (clave primaria), "Descripción" y "V~nt~na(p roveniente de la interrelación Arranca con la entidad VENTANA), La cardinalidad

. d' á e estemínima I que refleja que todo subsistema arranca en una ventana impe Ir ~u "atributo pueda tomar valores nulos. Este atributo "Ventana" es una clave ajena quereferencia a la relación VENTANA (aún sin crear). Las opciones de b~rrado :modificación serán en cascada ° restringidas dependiendo de la semántica Y (1tratamiento que se pretenda realizar,

La interrelación N:M Accede entre las entidades SUBSISTliN(A y P,~R¡'~!.~:~(transformara en la relación ACCEDE. la cual tendrá corno atributos Pcr I .•~"Subsistema" que juntos compondrán la clave primaria: cada uno de ellos será a su vct

SUBSIST EMA ti ente En 'lll1hll"clave ajena a las relaciones PERFiL Y , respec ivarn ' '

DlSFR UT A (12f:fJ., Per.tiDae, M;LK·C.M.e

PEIU'lL <Ped'U, Descripción)

USUARIO (DNl. Nombre. Teléfono)

Figura 2,2.45

De la transformación de la entidad PERFIL se obtiene la relación PERFIL, quetendrá los atributos "Perfil" (clave primaria de la relación) y "Descripción". Lainterrelación N:M Disfruta entre las entidades USUARIO Y PERFiL se transformaráen la relación DISFRUTA, la cual tendrá como atributos "DNI" y "P~rfil" quecompondrán la clave primaria y cada uno de ellos será a su vez clave aJe~a a la,relaciones USUARIO y PERFIL, respectivamente. En ambos casos, las opclon~s deborrado y modificación serán en cascada o restringidas dependiendo de la se~antlcaque pretendamos recoger. En cualquier caso, habría de asegurarse que la cardinalidadmínima uno (todo usuario disfruta al menos de un perfil) que no puede recogersesiempre se cumplirá.

a.e, M:C'

TERMINAL \Ao<.L-'L' Icollinal)

USUARIO (PNl. Nombre. Teléfono)

2R! DISEÑO DI- BASES DE DATOS. PROBLEMAS RtSl.ELTOS

Page 148: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••

El resultado de la transformación puede verse en la figura 2.2.51.

Propuesta de solución

Figura 2.2.50

L...,_ _' S.C. M:C

ONTROL (Control, Acción, Descripción, Tipo)a.e.~1e

COMPONE (Ventana, Control)

..~ VENTANA (Ventana, Descripción)

, :'01' últílno: ral,t~ transformar la interrelación N:M Compuesta entre las entidadesVF:NI'ANA y (_()NII?()L que dará lugar a la relación COMPONE, con los atributos"Venlal.la" y "Control", que forman la clave primaria; cada Ul10 de ellos serárespccu valnent~ clave ajena a las relaciones VENTAN A Y CONTROL. En ambos,~\ll~,.Ias opciones de .h~rrado y modificación serán en cascada o restringidasdependiendo de la scmanuca que pretendamos recoger. Por Otro lado. habría dc'''t.'gurarl>Cque lu~ cardinalidades rnúumas uno (toda ventana está compuesta al menosp~)run control ~,todO control, pertenece al menos a u~a ventana) siempre se cumplen.dado que en el esquema relacional no pueden ser reflejadas.

Figura 2.2.49

B,C. M'l'

BOTÓN (Control, Icono')

AC~IÓN (Acción, Des<.:ripción,Tipo)

lB ( ,~1eCONTROL (Control. Acción, Descripción.Tipo)

~ SC.~IC,ITEM (Con/rol, Depende', Texto)t H·C.~1:CJ

~',l:TRAN$FORMAl'IO:--r DE ESQUEMAS ElR A ESQUEMAS RELACIONALES 28~" M,\ \1,\

•••••••••••••••••••••

La seneralización de controles se realizará de manera similar a la jerarquía (lo:acciones~ De esta fonna se tienen las relaciones ÍTEM Y BOT6~. ambas ,con cla~l'

. . . . al que la de la relación CONTROL. La relación BOTON t~ndra, aden~a'.pnmana igu . 1 .• ITEM t dra elI atributo "Icono" que admitirá valores nulos, mientras que la re ación e~.,~trib to "Texto" y el atributo "Depende" (clave ajena, resultado de la prop~gaclon ~L

~Iav: de la interrelación reflexiva I:N Depende, que referencia a la propia relacionÍTEM y que permite recoger para cada ítem el posible ítem. padre del que dep.~nd~~que admitirá valores nulos. Nuevamente, todas las claves ajenas en estas relacl?~ctendrán sus opciones de modificación Y borrado en cascada a reslrtngld,,~,dependiendo de la semántica y uetarnlcnto que se pretendan.

. . Ilscrimi , l "'rip\(La totalidad de la gencrali7.aelón se controla con el atributo ( íscnmman e 1I 1<,(: CONTROL mientras que la exclusividad se corurolaría con ,1en a re ac I )11 '

correspondiente aserción .

Figura 2.2.-18

H e M C 11C. \1 (

I_LAMADA (AcciÓn. VI'II/anCl)

\ ue. M,e

I!'UNCIÓN (AcciÓn, Nombre)

'-'ACCIÓN (Acción, Descripción. Tipo)

t

VENTANA (Ventana, Descripción)

La entidad C()NTROL se transformará en la relación CONT,ROL con '~'atribulo" "Control" (clave pnmaria), "Acción" (clave ajena que ref~rencla a la, relaciónACCIÓN. resultado de la propagación de clave de la interrelación I:,N EJ,~cuta) ~,"Descripción". Las opciones de borrado y modificació~ ~e la clave, aJena. Acciónserán en cascada o restringidas dependiendo de la semanuca preten~l.da. NI~guno delos atributos admitirá nulos y la cardinalidad mínima I (toda aceren la ejecuta almenos un control) no se podría reflejar.

La totalidad de 1<1gencralización se controla con el atributo discriminante "l~ipl)"en la relación ACCiÓN mientras que la exclu~ivi¡Jad se controlaría con una aserción.

)(-1 DISEÑO IJI~nASI:':;;1)1-, DATOS PROHI EI\1ASR"SUEI.I'~).!;;S~ _

Page 149: Diseño de Bases de Datos - Problemas Resueltos

Presentarno<; en la figura 2.2.5? el esquema EfR del .- que partiremos.

Discusióndel enunciado

. Transfont_lar el esquema EIR obtenido en el problema 8 del capítulo I~:;~~a~:re~aclonal en el qu~ s.e indiquen las claves primarias y candidatas, así ~~I1~~E/H e s ajenas .. Indicar, asrmismo, la semántica que aparece recogida en el es ucma

p ro que se pierde en la transformación al modelo relacional. . q

Enunciado

PROBLEMA 7: ORGANIZACIONES NO GUBERNAMENTALES

Un ítem de menú no depende d ,. . de ni .e SI mismo ni e ninguno de sus descendientes.•

• Toda ventana tiene un control cuya acción asociada es el cierre de la misma.

Por ~ltilno, presentamos aquellas restricciones que idadecuado Introducir: COnSl eramos lógico o

••••••••• Exclusividad de la jerarquía de acciones.

Exclusividad de la jerarquía de controles.

Un usuario disfruta al menos de un perfil de acceso.

Un perfil permite el acceso al menos a un subsistema,

En todo subsistema hayal menos un perfil para poder accederle.

Una Ventana esta compuesta por al menos un control.

Un control pertenece al menos a una ventana.

Toda acción es ejecutada por al menos un control.

Todo usuario trabaja al menos en un terrni na).

Hahr~a que recoger '. además. la scmarulca que. estando presente en el enunciadono ha podido recogerse ni en el esquema ElR 111 en el modelo relacional: .

No ha sido posible recoger dentro del modelo relacional la siguiente semanticaque sí se recogía en el esquema E1R:

Semántica no recogida

1.~' TRANSFORMACiÓN DE ESQUE~1AS EIR A ESQUF~1AS RELACIONALES 2117

•••••••••.•••••••.••'.\ ..

Figura 2.2.51. Esquema relacional solución

o)

S c. \1.(l//la)

, USUARIO (DNI. Nombre. Teléfono)+ ...

rERFIL (Perfil. Descripción)

11.('.M'(

TERMINAL(D '1/. I!C[llliU(Il)

...VENTANA (Ventana. Descripción)

11.(".'1 e1 !le' Ml'

DISFRUTA (DNf. Pf:.d1l)

SUBSISTEMA (Subsistcma. Descripción. VenT

~

I B:C.M:l' I s.c. M.r

ACCEDE (PerOl, Sub.l'jste.Ulfl)

...~ ACCiÓN (As:ción. Descripción, Tipo)

tIIIC.Ml

FUNCIÓN (A"iáu. Nornbre)

tleM:(, I tI,C,M'l'LLAMADA (Acción, Ventalla)

!l,('. M ('

.. CON~ROL (ContrQI. Acción. Descripción. Tipr s.c. M,\:

íTEM (CoIITrol. Depende': Texto)t tl L'Il I, ,

BOTO N tCanuul. Icono)tl:t' M el

Iu.t·.M:t'

COMPONE (}!el/tClllCl, CO/lIrol)u t M l I

, DISEÑO D¡.- BASES DE DATOS: PROBLEMAS RESUELTOS

Page 150: Diseño de Bases de Datos - Problemas Resueltos

) . .) ... ) ) ){) "\••.•••~ .._.. _..

Transformamos por último la entidad PROYECT() que está afectada por dos1I11~rrclucioncs1 :N. la interrelación Lleva que es una dependencia en identificación. yla Interrelación Compuesto, que es reflexiva. Se obtendrá así la relación PROYEC1'O.

La interrelación Está_Formada entre las entidades ASOCiACI6N y SOCIO es'l:M y posee atributos propios, su transformación proporcionará una relaciónFORMADA. cuya clave primaria son las dos claves ajenas "CIF" y "DNI" querespectivamente referencian a las relaciones ASOCIACIÓN y SOCIO. En amboscasos, las opciones de borrado y modificación serán restringidas o en cascada según la~ernántica que se pretenda. Los atributos propios de esta interrelación serán atributosde la nueva relación que 110 admitirán valores nulos.

Figura 2.2.54

,ASOCIACIO:'ll CQE.Denominación. Provincia. Tipo, EnudadPública)

"t.- --,B:C. M'C

TRAHAJAD()R (DNl. F_lni. Tipo. AsociaCIón)

Transformamos a continuación la entidad ASC)C'iAC'I()N y la interrelaciónTrabaja. que. al tratarse de una interrelación 1 :N. introducirá una clave ajena."Asociación", en la relación TRABAJADOR. Esta clave ajena tendrá opciones deborrado y modificación en cascada. pues se cree que los trabajadores de unaasociación dejarán de interesarnos cuando ésta desaparezca. La clave primaria de larelación ASOCIACIÓN es el atributo "CIF". y el uuibuto "Denominación" será clavealrcrnauva. El resto de los atributos de la entidad se pondrían también en la relación.:-.llngunode los atributos de esta relación admire valores nulos.

Una alternativa de transformar estas jerarquías que reduciría el número derelaciones. sería fundir estas cinco relaciones en una sola, empleando un único atributo,discriminante "Tipo" que indique a cuAl de las categorías pertenece cada una de laslupias de esa relación. Sin embargo. la presencia de atributos e interrelaciones propiasen las distintas entidades participantes en la jerarquía (incluso en el nivel intermedio) yel hecho de que en esta solución habría una mayor cantidad de nulos nos ha hechodecantarnos por la solución expuesta que al tiempo refleja de una forma más fiel lasemántica del problema.

Salvo en PARTICIPANTE. en las demás relaciones. el atributo "DNI" es claveajena que referencia a PARTICIPANTE con las opciones de borrado y modificaciónen cascada.

Se incluye el atributo discriminante "Tipo", en las relaciones PARTIClPANTE yTRABAJADOR que. aunque no son estrictamente necesarios, permiten un controlmás sencillo de la totalidad y exclusividad de las jerarquías.

2.2: TKAN$FORI\-IAC'IÓN DE ESQUr.M,\S r.lR ,\ ESQUt::MAS RELACIONALES 289

p' It. l'{ ..I'!I ( " O-. ~ ~ " ... LJ U .....,.._._._._.- ...................•~-Figura 2.2.53

I"C.M("V()LUNTAItIO (/l1:://. Edad. Protcsión, H(>ra~)

IB.e.M·eASALA RIAOO \/2lIl. SS. IRPF)

I B.C.M:C

..TAAUA.JADOR (l2J:i1. 1'_101, Tipo)l

PARTICIPANTE (121il. Nombre. Tipo)ia.r.M'l'

SOCIO (121:11. Provincia. Dirección)

Comenzamos realizando la transformación de las jerarqufas asociadas a 1a enudad~ARTIC'iPANTE. De las diversas alternativas para la transformación de jerarquía,iptamos por crear una relación para cada una de las entidades p~ici~a~tes .• Seibtienen, así. las siguientes relaciones, las cuales comparten la clave pnrnana DNI )icnen los mismos atributos que poseían las correspondientes entidades. ninguno deellos admite nulos.

f'iXllra 2.2.52. Esquema ElR a transformar

------:~"I.' ? l'

d"

,'1ni'N

!.nf,J ......1.1'" l't.hl ....

\ OLl'NT"I(1()

!lo,... 1ft,...

I "It~

TRARAJAIXII( ~O("IO11 .. ,.....,.....lIi ••

D15EÑü DE B,\ SloS DE DÁTOS: l'KilO~B.!:L!2Erv~I~Á.:!.S.!:5R~E~SL~II:'r:!:¡.:.!.T~O~S:.__ ":'·_::R::!".::.M~'

• 1,111'

Page 151: Diseño de Bases de Datos - Problemas Resueltos

S d b .se e en proporcionar además mecanismos que soporten:

• Reglas de cálculo del atributo derivado "Aportación" en la relación FORMADA.

• En una asociación trabaja corno mínimo un trabajador.

• Una asociación está formada por al menos un socio.

• Todo socio forma parte de a! menos una asociación.

• Toda asociación lleva al menos un proyecto.

Exclusividad de la jerarquía de trabajadores .•• Exclusividad de la jerarquía de participantes.

.N~ ha sido posible recoger dentro del modelo relacional las siguientesrcstncciones que sí se recogían en el esquema EIR:

Semántica no recogida

Figura 2.2.57. Esquema relaaonal solucián

PARTICIPANTE (DNI, Nombre, Tipo)j B:C. M:C

SOCIO ([JlV/. Provincia. Dirección)

B:C, M:C .B:C. M:C[

.......TRABAJADOR (ONI, F_Inl, TIPO,ASOctQciún)

t B:C. M:C

ASALARIADO (ON!. SS, IRPF)

I U·C.M·e

VOLUNTA RIO (fJ!iJ.. Edad. Profesión. Horas)

PROYECTO (AsociaciÓn. N Id, Zona, País. Objeuvo, Beneficiaric, A_Padre. P_Plu/re)

~ I B R. M:C

ASOCIAC~N (OE. Denonunación. Provmcia, Tipo. Enudad Publica)

'-- ---, B C. 1'v1:C

FORMAOA (e/F, 011. F_Alta. Cuota. Aportación)S:C. M:C

B:R.M:C

l.2: TRANS¡':ORMACIÓN DE ESQUEMAS ElRA I:SQUF.MASRELACIONALES 291, k,\ \IA

"e •• e ••••••• e ••• 'e ."e". e".'e".'-."e

,

Propuesta de solución

En la figura 2.2.57 se muestra el grafo relaciona! con el resultado de l.•transformación.

Figura 2.2.56

PROYECTO (d~Qcj(lCjÓII,N Id. Zona. País. Objetivo. Beneficiario. A_Padre. P_Padre)

..-- _ __¡J OR, M·e+ bl·ASOCIACiÓN (Of. Oenolnlnoción. Provincia. Tipo, Enlidad_Pú ica)

B:R. M:C

Al ser Lleva una dependencia en identificación, propagará la clave de\SOCIACIÓN a PROYECTO como parte de su clave primaria. con lo que la claveorimaria de PROYECT() estará formada por los atributos" Asociación" y "N_Id". Elatributo "Asociación" es una clave ajena que referencia a la relación ASOCiACiÓN YJara evitar que al borrarse una asociación se eliminen los proyectos que ésta lleva suopción de borrado será restringida O por defecto (no podría ser. nula p~es el. ~trib~~o noadmite valores nulos), aunque lo habitual en las dependencias en identificación esponer la opción de borrado en cascada. pensando en la seguridad. se ha optado plllponerla restringido.

La interrelación reflexiva Compuesto se transformará mediante propagación declave. con dos nuevos atributos, "A_Padre" y "P _Padre" en la relación PROYECT(),que compondrán la referencia al proyecto padre y que serán por tanto clave ajena. a lapropia relación. Si se hubiera supuesto que los subproycctos deben llevarlos la mrsrn«asociación que lleva el proyecto padre. habría bastado con un único atributo. Da~a IJcardinalidad mínima cero (un proyecto puede ser componente de otros). este atribuuiadmitirá valores nulos. Se considera que no se debería permitir borrar un proyectomientras éste tenga subproyectos, por lo que la opción de borrado será restringida y lade modificación en cascada.

Figura 2.2.55

ASOCIACiÓN (ClE, Denominación, Provincia. Tipo. Entidad_Púhlica)B·C. M.C

FORMADA «u: .F_Alta. Cuota. Aportación)B;C. M:C

SOCIO (DNl. Provincia. Dirección)

le tendrá en principio los atributos "N_Id", "Zona", "País", "Objetivo" yBeneficiario" .

(~)_QD~IS~E~ÑO~D~E~B~A~S~ES~D~c~I)~AT~O~S~.~PR~O~B~L~E~M~A~S~R~~~S~lJE~L~T~O~S-- __ -- __ -- __ --~o~R~AM~

Page 152: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••••~ ••

Figura 2.2.59

... ~a entidad COMPAÑÍA da lugar a la relación COMP Ñ', ,(IF' (clave prirnaria de la relación) "No b .. "D' ., A lA con los atributos"Per-ona Contacto" La' ., • 11l,re, irccción", "Sector", "Teléfono" y\ COMÜNIDAD DE 'v~~errelaclon N:M Contrata entre las entidades C()MPAÑÍII

INOS se transforma en la relación CONTRATA con los

CNú.m_Coleglado.DNI. Nornbrct

GESTJ()NAIUl '11

(N,;m 'loieeiado. Cód Comunidad, Honorarios¡....r----- tH. M.e

AOl\11NISTRADOR

(~ód_CofQu",dad. Nombre. Calle. Cód_Postal. Població )In •. '.COMUNIDAO DE VECINOS

t

Figura 2.2.58. EsquemaE/R (/ transformar

,

,~ p

o O

1", o

+ '" ,¡.,,~, ..."""1 """."l. , .l.o (

ItlCIMj,t 1)~11""'\

... " ..." .,

... t,.

o'Ii" 'III\UI"", ,....'" ._n/'-""'l"'--~~l ........

,....-­-0(............... '"9

I 11 ... , ... ... .. oh "' ..." • t .....t. _ .....a

r-__:L...-l,', ,_

,1 H

II,~,,~....,

.--~ ~:TR,\NSFORM¡\(.'ION .PE ESQUEMAS ElR 11ESQUEMAS RE!.ACIO"lALES 291

[nrma unívoca el administrador que Lagestiona (interrelación I'N) L . dborrado y modificación pueden ser en cascada o restringidas ',' as opciones eha optado b d . segun convenga (aquí se

~or orra O y modificación en cascada). A continuación se muestra el rafocorrespondIente <1 esta transformación (la relación COMUNlDAD DE VECI~OS"radr~c~con pu~to~ suspensivos porque todavía le faltan algunos atributos que seaña iran en las siguiente transformaciones), .

'"~~ .•••~•••~ ••••••"")

La inlcrreluci6n I:N Gestiona se transforma en la relación GES'flONA q'l~contiene los utributoS "Num_Colegiado" procedente de la cntidad A/JMINISTRAI)()/<'"Cod_Colnunidad" procedente de COMUNllJAf) DI:: VECINOS y. por úllinl(), datributo de la Interrelación "Honorarios". La clave la fonna el atrihull'"Cod_Conlul1ldad", ya que una detemlinada comunidad de vecino" detennlna d,'

Se irá reali¿ando la transfornlación del esquelna de forma gradual para presenta!al final el grafo relacional completo. En primer lugar, cada una de las entidades delesquema ElR dará lugar a una relación en el modelo relacional. Así. la entidadADMiNISTRADOR se transforma en la relación ADMINISTRADOR cuya claveprimaria es el atributo "Num_Colegiado". el atributo "DNr" es clave alternativa ~"Nombre" es un atributo que no permite nulos. La entidad COMUNIDAD 1)1VECINOS da lugar a la relación COMUNIDAD DE VECINOS 1.:1111

"Cod_Comunidad" corno clave prilnaria y "Nombre", "Calle", "Cód_postal" ~"Población" COl110atributos descriptivos,

En la ñgura 2.2.58 se muestra el esquema E/R que transformarenlos al

relacional.

Discusión del enunciado

Transformar el esquema E/R obtenido en el problema 9 del capítulo I en un!squema relacional en el que se indiquen las claves primaria,s y candidatas. así comolas claves ajenas, Indicar, asilnislno. la semántica que aparece recogida en el e~quclll.'E!R pero que se pierde en la tranc;formación al modelo relacional.

:!:nunciado

>ROBLEMA 8: ADMINISTRACIÓN DE FINCAS

Un proyecto no depende de sí mismo ni de ninguno de sus descendientes,

Por último. se consideraría cualquier otra restricción que se considere apropiada:

Los !>uhproycctoSde un mismo proyecto se realizan en el mismo país en el que M'

realiza el proyecto,Todos los proyectos asignados a un trabajador sean del mismo país.

Un socio de una asociación no pueda trabajar en otra,

y por supuesto. medios para recoger. además. la semántica que, estando presenteel enunciado, no ha podido recogerse ni en el esquema EIR ni en el modelo

acional:

, le \ \1 ,

OISb:\:O DI- 1{,\St-.S 1)1-. Uf\ ros: PROBLEMA'> RESIII.:!,L:..!·I..:,;()~S -- __

Page 153: Diseño de Bases de Datos - Problemas Resueltos

En este momento ya es posible transformar la interrelación Controladaprop~g,lndo la clave de la relación CUENTA (que 00 puede lomar valores nulos) a larClac,lón,COMUNIDAD DE VECINOS (con opciones de borrado y modificaciónrcstnngldas o puestas a valor por defecto, según interese) con lo que esta relación yaestaría completa, por simplificar, al igual que hicimos con "Presidente", "Cuenta" seha propagado como atributo compuesto sin desagregarle en sus componentes,

El grafo relacional correspondiente a este último grupo de transformaciones semuestra a continuación.

La entidad débil CUENTA depende en identificación de la entidad BANCO,Transformamos en primer lugar la entidad BANCO en la relación BANCO con losatributos "Cod_Banco" (que es clave primaria), "Nombre" y "PersonaContacto". Larelación CUENTA consta de los atributos "Sucursal", "OC" (dígito de control),"Número", "Cod_Banco" (clave ajena que referencia la relación BANCO conopciones de borrado y modificación en cascada) y "Saldo"; la clave primaria de estárelación es la concatenación de "Cod Banco", "Sucursal", "OC" y "Número",

Figura 2.2.61

l MI'l.

tOCA 1.('O\IFRCIAL ((',i,/ C,uL,mJall, p}'WI,.f'''\''¡'I, l)lrll, T'P"_('OI11CIl""', Hcrano}

'------;:::==::;:¡L--,-_ .....O r M (

=='-'-"~':",:,=""",,,,",,,," A..tl\ ul, ..1I

\ 1\01t:'1DA PAR 1'l(.'J.;LAR ((',id C"",,,,,,d(/d. 1'1111,11,{'{¡mIli, t.aru. NÚOl_Huhit3<'OIlC"

PI{OI' EDAD c('(í"_C"'I/lIlJitlm/. Porw/, 1'/1111/11, tsuu. NOlllhrc_Prop, Tlf_Cnntucto_P,'op, Nnl1lbn:_ln'I',Tlf_C,lnl3c,o_lnq',N"_Cucnl a. Pon cmujc)

'----=-----_:_--=;::==:::;:L~-__r Be M',

IBC. M'('

COJ\-IlJNII)AD DE VECI~OS ({:Jid_Comumd.ul, '<,,,,,h,'c, C~lIe,CÓd_Po,tal. Población.. )

t

1: l Presidente se transforma mediante propagación de clave, es decir, la clave dePROPIEDAD pasa a la relación COMUNIDAD DE VECINOS con el nombre de"Presidente" (no admitiendo nulos, pues una determinada comunidad de vecinossiempre tiene que tener un presidente). Obsérvese que por simplificar el graforesultante sólo se ha propagado corno atributo compuesto. realmente, habría quedesagregar en lodos sus atributos componentes; las opciones de borrado ymodificacién pueden ser restringidas o puesta a valor por defecto según convenga: lainterrelación I:N VocaJ la transformaremos en una nueva relación denominadaVOCAL que constará de los atributos "CodComunidad". "Portal". "Planta" y"Letra", todos ellos formando la clave primaria de la relación, Por último. lainterrelación 1: l Controlada entre las entidades CUENTA y COMUNIDAD DEVECINOS se transformará también mediante propagación de clave. Para ello, tenemosque transformar primero la entidad CUENTA,

1.2:TRAI'\SFORMACIÓN DI; ESQUEMAS ~JRA ESQUEMAS R~LACIONALES 295

•••••••• '•••• '•• '.' •.• le • \. '. '. '••

Veamos a continuación la transformación de la entidad PROPIEDAD: puesto queexiste una dependencia en identificación (interrelación Consta) con la entidadCOMUNIDAD DE VECINOS se transformará en la relación PROPIEDAD con laconcatenación de los atributos "Cod_Comunidad", "Portal", "Planta" y "Letra' cornoclave primaria, siendo "CodjComunidad" clave ajena q~e re~:renci~ la ~elaciónCOMUNIDAD DE VECINOS (opciones de borrado y modificación obligatoriamenteen cascada). Además, la relación PROPIEDAD contiene los atributos "Nom~rePropietario", "Tlf_Contacto" (ambos como no nulos) y "Dirección" (que a.dmltevalores nulos): en cuanto a los datos del inquilino, se tienen los atributos"Nombre_lnq" y "Tlf_Contacto_lnq" que admiten nulos (pues una deter:ninadapropiedad puede que no tenga inquilino). Por último, la relación PROPIEDAD Incluyelos atributos "N_Cuenta" y "Porcentaje" que no admiten valore .. nulos,

Respecto a la jerarquía de propiedades, cada subtipo se transformará en. unarelación mediante la propagación de clave del supertipo. Así, se tendrán las rclac~one~VIVIENDA PARTICULAR OFICINA Y LOCAL COMERCIAL. Todas ellas tienencomo clave la concatenaciÓn de "Cod_Comunidad", "Portal", "Planta" y "Letra"(todos ellos forman la clave ajena que referencia la relac~ón PR?PIEDAD): A?en)á~,la relación VIVIENDA PARTICULAR tendrá el atributo Nurn Habitaciones".OFICINA tendrá el atributo "Actividad" y LOCAL COMERCIAL tendrá los atributo,"Tipo_Comercio" y "Horario" que pueden admitir valores nul~s., Las op~~ones deborrado y modificación serán en cascada (cuando se eltmlnaJmodlltc~ unadeterminada propiedad hay que eliminarla/modificarla en el subtipo ~orrespondl~nte),En cuanto a la totalidad y exclusividad de la jerarquía se controlaran por medio deCHECKS O aserciones así corno por disparadores o procedimientos almacenados.También podría incluirse (en este caso no se ha hecho) en la relación PROPIE~A,D unatributo discrimlnantc ("Tipo_Propiedad") que indique si una propiedad es VIViendaparticular, oficina o local comercial que nos ayude a controlar la totalidad de lajerarquía, A continuación se muestra el grafo relacional correspondiente a esteconjunto de transformaciones.

Para completar los atributos de la relación COMUNlDAD DE VECINOS val1_l~'a transformar las interrelaciones Presidente. Vocal y Controlada. La interrelación

Figura 2.2.60

CONTR;\'J'A cC'¡d_Ctlnrlllud",/,C/D...-- --'1 s-e M'

CO\lUtIDAD DE VECINOS ¡Cód COllwn,dJII. Nombre, Calle,Cód_p(I~tal. Pobl,,<:,Ún.

rOl\lPAÑIA ({'11:'. :>Iollllwo.IJlrcCCI\\II.Se"lur. P~I,oml C"nll"lo, TeléCtII,"1L- --, M e M ('

itributos "Cod Cornunidad' y "CIF"; SU clave primaria es la concatenación de estos:los atributos y las opciones de borrado y modificación pueden ~er e~, cascada o-cstringidas según interese. El grafo quedaría corno se muestra a conunuacion.

!9-1 DISEÑO DE IiA'iES DE DATOS PROIlI.F.MAS RESUELTOS

Page 154: Diseño de Bases de Datos - Problemas Resueltos

••••••••••••••••••••••••Figura 2.2.65. Esquema relacional solurián

\'I\'IE~OA PARTICllL.~R ,Cád C,mum,d"d Por",/, Planrlf. I.<",,''.!,NUI1l_HJbIl3Cinne<)

I I I 1""'"OtlCINA (Qíd (',,,,ulllid,lltl.f'"rtal, Plmlta Lfrrll. Actividad)t _-Ht' Mf

L t,OCAI, COI\oIER(.'IAL r.Q¡!I_C"ml!~,d(/d,P,Jtal, PI,lar", 11rm, Tlixl Comcrcm', 111'r:triu')Elt .\1{'

nt;STIONA (NfI",_C"¡t'gl,,"o, ('(JII CO/f[amd(!(/.Hmlor'lri.,,),..-----'1 "1' ".

,\IlMINISl'R¡\U()K (N,í!lJ r'!l~gj.~,J)NI, Nombre)

CO\ll'NI ,\0 U" \'ECINOS tCoo Comunid:td. '","I>re. Calle, Cnd_I""'3I, P"I>I.IL',ón,L'urntn. Prendente)8< '1(+ H tt \. JI L__

... rROPIEUAU r(',;,/ Comunidad, Pona/. PI'!""" /...'trl/, NOnlbn:_Prop. TIf_Cnnl:,.:III_I' ..np. Nomhn: Inq,~ .....J__¡t TIf_Conl:lelo_Inq', N°_Cuenla, Porccmajct

I I I 18'''.VOCAL c(',;d Co",,,,,,d,!d. Pon"l. P/anrl/, Le"a)

Pi f..lt

_, . ,...... . .. _1'iK."KK~,(. 1110 (01\ IJ A,'IIIA rNum Rc\rbt¡, Fcchu. Impone, ( ""'11<//1",. (,11'","),....-- _JI

" R \1.

) ue ~I('

CI'f:STA 1(,i¡LIJmu". Su"ur'u,1 De. Nlímerú. Saldll) +---- _,t .

IIANCO rCl'd Flan,,". Nombre, Persona_Conlaclll't.

RECIBO CIIO'fA COMlJNIOAO (Núm Recibo, Fecha.Impone. Saldo. Pr"pw(/o,/)

El grafo relacional completo se muestra en la figura 2.2.65.

Propuesta de solución

Figura 2.2.64

PROPIEOA J) te",1 (,,,,,,,,,,"lml, P"r/uL Plum", W·(CIj.Numbre: PrOI), 111 ('nnl,ICIO Prop Nllmhrc tnq',·III_( ·onlaclo_lnq·. "l"_Cuenta. I'o",cmajel

RECIBO Cl 0'1 A C()!\fUNIOAO INÚrn Rcclho. FCLhJ.lmJ1',nc, S,Ildo.f'r"fll,d,,,f,

_j tik "1ft

COMUNIDAD con el nombre de "Propiedad" (clave ajena que no admite valoresnulos), como se muestra a continuación,

2.": TRANSFORMACiÓN De eSQUEMAS f'JR A ESQ11l:MAS RELACIONALES 297

t ••• ~ ••••••••••••••••

Figura 2,2.tS3

Por último, la entidad RliC:IBO ('UOTA C()MUNIDAD se Iranlo1fornlaen ~:Irelación RECIBO CUOTA COMUNIDAD con los atributos "Num_Rccibo", "Fe~htl"Importe" y "Saldo". La interrelación I:N Corresponde se transforma ITled¡¡II~Il'propagación de clave desde la relación PROPIEDAD a la relación RECIBO CU011\

COllll'AÑfA I(,l~, Nnllll>rc. O,re.ci.\n, Sector, Pcr-onu_Cnnlaclo. Telétonn)

~ ---J UN 101K

RECllIO COl\IPAÑf,\ IN"nl_Rcl"OO, Fecha, ImJ1<lI'1c.C"IIl¡""i,~,. Cucma'

H.R.~lK

ICUE:"I'TA t[f¡'/_jJ",!<", Sl,I\u".1 OC, NUI~. Saldni

IIASCO IC"d S"IlL·"."lnmhre. Persona CtlOlaClnl

t

- ,Las últimas entidades que hay que transformar son RECIB() COA1PANIA y

RECIBO CUOTA COMUNIDAD. Vamos, en primer lugar, con la entidad RECIBUCOMPAÑÍA que se transforma en la relación RECIBO COMPAÑÍA con los atributos"Nurn Rccibo" (clave primaria), "Fceha'~ ~ "Importe (no admiten ~alores nulos). Lainterrelación I:N Emite entre COMPANIA y RECIBO COMPANÍA da lugar ~ ,lapropagación de clave desde la relación COMPAÑÍA a RECIBO COMPANIA(atributo que no puede tornar valores nulos por la cardinalidad mínima de 1). S~ntlaltransformación sufre la interrelación I:N Se Carga entre RECIBO ('()fl1PANfA }CUEN1'A en la que la clave de la relación CUENTA pasa a la relación RECIR()COMPAÑiA como clave ajena, Las opciones de borrado y modificación para umbo­casos pueden ser en cascada, restringidos o incluso con puesta a valor por defecto.según la semántica que se quiera representar. El grafo correspondiente a esta. ' ,relaciones se muestra a conunuacron.

Figura 2.2.62

VOCAL ((',NI ('01",,,,,,/,,,1, Po,.,,,I. P/oma. l.!·/ru)

PKOPIF.D¡\O 1('1<1 ("'''IIIllItlgÚ, P",wl. Plulllo. I~ Ir... Nombrc_Prop. TII_Conlaclo_Pn,p. N'''110",_ln4 .Tlf Conlaclo_lnq·. N°_Cuc:nld.Porcenlaje)

L----;::===;::L_-.-_-, fI R. M R

C01l1lNlI)AO Ot' \'t:l'I'IOS ICM_CS1!l)UDldgcJNombre. CJlle. Coo_P",w.l. Pnhl3clOn. ("'·'1111. P"'''j/. ,," I

O R \111

BANCO (Cad Banco. Nombre, Pc",,,nu_Conl.,IIl)

t 6C\ltI

CVENTA 1(",1 8111,,11.Sllt''''''~ /)C,(\',,,'It{!!. S.ldo'

t n a MM

~ó DISEÑO DE BASES DE DATOS PROBLEMAS RESUl:.LTOS

Page 155: Diseño de Bases de Datos - Problemas Resueltos

, Trataremos a eontinuac.ión las dos jerarquías que aparecen en el esquema. Enpnl~er lug~r, tenernos. una J~~arquía qu.e nos di vi~e ,los hospitales entre propios y~~n<':,ertados,. La t~ansf~~maelon la realtzarem~s siguiendo el caso general que sepll~ó en la introducción al modelo, es decir, transformar coda entidad en una

:~la:lól.', Esta solución, si bien puede no ser la mas eficiente, sí es la que Inás)clllunllca conserva. Así pues. tendremos una relación HOSPITAL. una relaciónI,~O:IO.y una relación CONCERTADO. Tanto la relación PROPIO como laIdaclón CONCERTADO tendrán como clave primaria la misma que HOSPITALre,lo es "Cód H" l c . ., '.. _ ,que es e código del hospital) que, además. será clave ajena querllcrcncla a la relación HOSPfT AL. El borrado y la n¡odificación será, en ambos

Figura 2.2.68

I B:C. M e

ASEGURADO (CÓd P, Núm, Na. Fn)

P .Datos P),

POLIZA (Cód

t

La entidad ASEGlJRADO presenta una dependencia en identificación conrespecto a la entidad PÓLIZA. es decir. para su identificación se necesita concatenarunnúmero correlativo C'Núm") al código de la pólizu ("Cód_P"). Por lo tanto. dichaentidad se transformara en una relación cuya clave primaria estará formada por "Núm") "Có<.I:-P" (este últirno atributo será, además. clave ajena de la relación PÓLIZA, y'11, opciones de borrado y modificación serán en cascada),

Figura 2.2.67

PÓLIZA (Cód P, Datos_P)

MÉDICO (Cód M . N_M)

,AREA (Cód A . S, NÚln_H)

En la transformación al modelo relacional, cada entidad dará lugar a una relación.siendo su clave primaria el/los atributos identificador/es principales de cada entidad.A~í.las entidades MÉDICO. ÁREA y PÓLIZA se transformarán. respecrivarneme, enla, relaciones MÉDICO. ÁREA y PÓL1ZA. El resto de las entidades las trataremoscon un poco más de detalle. ya que implican o bien dependencias de identificaciónentre las entidades. o bien jerarquías. De momento. nos olvidaremos dcl atributomultivaluado "Teléfonos" de la entidad MÉDICO,

2.~' TRA/\SFORMACIÓN DE ESQUEMAS E/R A ESQUEMAS RELACIONALES 299M" "A

Figura 2.2.66. Esquema ElR a transformar

f~A..,,_

,0..:11 Fu NIII"

PÓLIZAIASF.(iURAI)OI " "f1 ,ni

'1'

Ccwj A

('<\J_P D...1o~P

10,1.111 I •N.r..tA2CAle

f I,n) AREAj 1, I f

I!,('M_~

N_ \, Te' l\lflt

S \1 P

, t .nl1(1.n1 f I l1li1

PROPIO

Itl 4'

co~eERTA[)O

1 ,""_;¡;_--;;¡~ TII..~_t-1

1(1.1,P TS

fU,11

f I.n)

I '.nl

umciadoTransformar el esquema ElR obtenido en el problema 14 del capítulo 1 en un

[uema relacional en el que se indiquen las claves primarias y candidatas, así comoclaves ajenas. indicar, asimismo, la semántica que aparece recogida en el esquema~ pero que se pierde en la transformación al modelo relacional.

scusión del enunciadoPresentamos en la figura 2.2.66 el esquema EfR del que partiremos,

tOBLEMA 9: GESTIÓN DE HOSPITALES

mántica no recogidaNo ha sido posible recoger dentro del modelo relacional la siguiente semántica

~sí se recogía en el esquema ElR:

Toda compañía debe ser contratada por al menos una comunidad de vecinos.A toda propiedad le debe corresponder al menos un recibo de cuota de comunidadToda comunidad de vecinos tiene al menos un vocal.Totalidad y exclusividad de la jerarquía de propiedades.

DISEÑO DE BASES DE DATOS: PROBLEMAS RP-SUELTOS

·.....'••••'.'.\.' ."."•••'••••

Page 156: Diseño de Bases de Datos - Problemas Resueltos

.••..•••••••••••'••-•••~•

l', La otra inlerrClaci6~ binaria con cardinalidad máxima I en uno de sus extremosJefe. que nos perrmte recoger aquellos médicos que son jefes de otros La

Inlcrr~laeión es prácticamenrs idéntica a la anterior. excepto por el hecho de q"lill'l Int . lació flcxi " ue esp , en e aCI n re cxi va. La transformación se real iza de forma análogafllpagaremos la clave primaria de la relación MÉDICO ("C6d M") a ' . ._ SI mIsma

Figura 2.2.7 J

,AREA (Cód A ,S. Núm_H)

r----------...J B.I<. MeCONCERTADO (Cád II I Cád_A )

.La interrelación Asignado llene cardinalidades (1, 1) con respecto a la entidad\I<t.~:Por lo tanto. la transformación se realizará propagando la clave primaria de larelación ÁRE~ ("~ód_A") a la relación CONCER"r ADO. C0l110 clave ajena. El hechode que la cardinalidad mínima sea I significa que todo hospital concertado debe estar,I\lgnado ohliga~oriall1entc a una única área. por lo tanto. la clave ajena no podrá tomar\all)~ec;nulos. En el otro extremo de la interrelación las cardinalrdades son (O.n). Esto-ignifica que un área puede tener asignados cualquier número de hospitales (inclusomnguno), por lo que 110 será necesario ningún otro mecanismo que controle esta-cmámica .

Veamos a continuación la transformación de las interrelaciones. Comenzaremoscon las binarias que tienen cardinalidades máximas I en alguno de sus extremos, esdecir: ~'efe. '! Asignado (la interrelación Asegura. que presenta una dependencia enulcmificación, ya la hemos tratado al transformar la entidad débil ASEGURADO),

Figura 2.2.70

TELÉFONO (Tel, Cód M)

MÉDICO (Cód M . N_M)tL --. Il r, \1(

1

El atributo rnultivaluado "Teléfonos" de la entidad MÉDICO lo transformaremosen otra relación. cuya clave primaria será el propio número de teléfono concatenadocon el atributo "Cód_M", que es clave primaria de la relación MÉDICO, y cuyasopciones de borrado y modificación serán en cascada, Si qursiérarnos que un mismoteléfono no pudiera estar compartido por más de un 1l1éd1CO.la clave de la relación-ena únicamente el atribulo "Tel".

1.~ TRAI\'SFORMACIÓNDI' ESQl:EMAS ElRA I,SQUI:MAS REI.ACIONALES ·¡OlIot \ ""Ir\

•~~~~~ ••••••~~ •••••••

Figura 2.2.ó9

A2C (CÓd P, NÚn¡)

,...--'--, B.C. M e

AlC (Cód P, NlÍn¡)

B·C.M.e

•ASEGURADO ((.'ód P, Núm. Na. Fn, Tipo_A )

CONCERTADO (Cód H)11e,M e

PROPIO (('tic! II . P, Ts)lit Me

II()SPI'I'AL (('6<UJ. . N_II. Núrn_C. Tipo_Hl

Cada una de las enudadcs hija, de la jerarquía de Asegurados la tranvformaremostambién en una relación. porque a pesar de que ninguna de ellas posee atributo.propios, sí participan en interrelaciones. Tendremos, por tanto. dos relaciones: Al C" JA2C. Ambas tendrán C0010 clave primaria la misma que ASEGURADO. es decir."Núm" junto con ··Cód_P". que. a su vez, será clave ajena de ASEGllRADO. La'opciones de borrado y modi ficación serán, al igual que en el caso dc los hospitales, encascada. Hemos añadido a la relación ASEGURADO un atributo discriminante"1'ipo_A ", que identifique al tipo de asegurado, que podrá tomar valores nulos al ~(')una jerarquía parcial (otra posibilidad sería definir un dominio para este atributo queincluyera los valores "A IC", "A2C". y "Otros"). Sería necesario controlar laexclusividad mediante disparadores, así como controlar que efectivamente lo-,asegurados de primera o segunda categoría aparecen en la relación ASEGURADO <':011

el valor del atributo "Tipo_A" adecuado, y en la relación Ale. o A2C·. SCgÚI1

corresponda.

casos. en cascada. Por ser una jerarquía total, el atributo discriminante de la misma,"Tipa H". no podrá tornar nunca el valor nulo, sino que tendrá que tornar el valorcorrespondiente a 10\ hospitales propios O bien el de los hospitales concertados.Existen aspectos de la Jerarquía que, como luego veremos. deberán ser controlado,mediante disparadores y aserciones.

\(~) DISEÑO DE BASES DI: DATOS: 1)IH)III.I,M~Ié!:\S~R.~'S!.!L::!II-'.:!.:I:..!..T.:.:().:..:.S ,~~\

Page 157: Diseño de Bases de Datos - Problemas Resueltos

En la figura 2.2.75 se muestra el grafo relacional con el resultado de laIr,lrl ,foTlnación.

Propuesta de solución

Figura 2.2.74

IIOSPITAJ...IZA_B «« P, NÚln, Fi, Cód_M, C6d_H. F()

HOSPI

A2e «

AIC(Cf¡

+MÉDIC

PROPIO

TAl, (Cód H , N_H, Núrll_C, Tipo_lI) ~

s.r.M{"

(Cód H, p. Ts) ~

IR.R, M ('

t (Cód M . N_M. Je{(' )

Id P, Núnl)

'ád P, lI'ún¡)

B.R. M e I I B R. \1 C (jI( M('

TALIZA_A (Cód P, NÚm, Fi, Cúd_M. csa;«. F(¡

Il.R.M.r I B R. \1 r R'R. \Il'I I

H()SPI

~

claves primarias de las tres relaciones que enlaza que serán, por tanto, claves ajenas.En principio, la regla general nos dice que la clave primaria de I:.! nueva relación estaráfnnnada por la concatenación de estos tres atributos. Si n embargo. la presencia de,Itributos multi valuados temporales nos obliga a realizar un estudio 111ásdetallado de la'clnál1lica. SI suponemos que en un mismo día un asegurado no puede ser ingresadomás de una vez, la clave primaria de la relación sería únicamente la concatenación dela clave del asegurado junto con la fecha de inicio de la hospitalización. Por lo tanto,para cada una de las dos relaciones HOSPITALIZA_A y HOSPITALIZA_B, la claveprimaria será "CódP", "Núrn" (clave de Al C y A2C, respectivamente. siendo clave,Ijcnade cada una) junto a "Fi' (Fecha Inicio). Además, "Cód_H" será clave ajena quereferencia al HC)SPITAL (en el caso de HOSPIT ALIZA_A) o a PROPIO (en el casode,HOSPITALIZA_B), y "CódjM" será clave ajena que referencia a la relación~IEDICO.

2.~: TRANSFORMACiÓN DE fiSQUEMAS '"IR A HsQtlHM¡\S RELACIONAI.ES 30.1I Ft,\ (\11\

Las cardinalidades de la interrelación en sus tres extremos son (Ln). Lainterrelación se transformará, por tanto, en una relación a la que se propagarán la'

Hemos dejado para el final las dos interrelaciones más complicadas. Son do.nterrelaciones ternarias con atributos multivaluados, que reflejan el hecho de que unasegurado ingrese en un hospital prescrito por un médico, con una fecha de inicio yuna fecha de fin de la hospitalización. Los atributos que recogen estas fechas ~1111

multivaluados, porque puede ocurrir que un mismo asegurado puede ingresar en unmismo hospital prescrito por el mlsrno médico en fechas distintas. Las d11'

interrelaciones son muy similares por lo que las trataremos de Iorrna genérica, paladespués particularizar para cada una de ellas.

Figura 2.2.73

...- --'111.( .M e•ÁREA (Cód A ,S, Núm_H)

lJl MC 1ADSCRITO «o« M. Cód A)

.. 111 R. M eMÉDICO (Cód M , N_M,Jefe ')t

La última interrelación binaria que nos queda por tratar es Adscrito, que.laciona los médicos con las áreas a las que están adscritos. Las cardinalidades son.n) en ambos extremos, lo cual significa que "todo médico ha de estar adscrito alrenos a un área y todo área debe tener adscrito al menos a un médico". Por ser unauerrelación N:M, la transformaremos creando una nueva relación. ADSCRlTO, a laue viajarán las claves primarias de las dos relaciones, y cuya concatenación formarál clave primaria de dicha relación. Cada una de ellas será, además, clave ajena, y su'pe iones de borrado y modificación serán en cascada. Las cardinalidades mínimas Ie cada extremo deberemos controlarlas mediante disparadores.

Figura 2.2.72

.. RR Me

MÉDICO (Cod M, N_M. Jefe)

amaremos a este nuevo atributo "Jefe"), actuando corno clave ajena que podrá tornarlores nulos (ya que la cardinalidad mínima era O).

~ DISEÑO DE fiASES DE DATOS: P({()'.!!B.!:.L~!:!·;t.!!l~A~S~({~(:S~U::!.!E~:I_!·I~·()~S '.::R.::.A~M\

Page 158: Diseño de Bases de Datos - Problemas Resueltos

•• • • • • • •J.~~.......••• J.(~~\ ".la ~ EJ.

En primer lugar, transformaremos cada entidad del esquema ER en una relación.1:0 el caso de las entidades que presentan una dependencia en identificación (PISTA y/'1\ RT¡C¡PA!'TE) , añadiremos a su clave primaria la de lu entidad regular de la queJcpc.llden. Esta será. además, clave ajena de la entidad regular. con borrados yIllodl!icacioncs en cascada. En cuanto a las jerarquías, seguiremos el caso general .

Presentamos en la figura 2.2.76 el esquema E1R del que partiremos.

Discusióndel enunciado

Transformar el esquema FJR obtenido en el problema 15 del capítulo I en une-quema relacional en el que se indiquen las claves primarias y candidatas, así comola~claves ajenas. Indicar, asimismo, la semántica que aparece recogida en el esquemaI-.IRpero que se pierde en la transformación al modelo relacional.

Enunciado

PROBLEMA 10: OLIMPIADAS DE INVIERNO

En el grafo relacional no podemos recoger que el número de asegurado seacorrclauvo.

También sería necesario recoger el hecho de que un hospital concertado no puedecambiar el área a la que está asignado.

Adernés de lo expuesto, será necesario recoger por medio de disparadores, checksl' aserciones la exclusividad y la totalidad de las jerarquías y las cardinalidadesmínimas I de las interrelaciones (1 .n) ( l.n).

En el mismo caso se encuentra el borrado restringido en la relaciónCONCERTAD() respecto al área a que pertenece. Con este tipo de borrado no puedenborrarse áreas que tengan hospitales concertados.

Como supuestos semánticos, además de los ya indicados anteriormente, se haicnido en cuenta el borrado restringido en las relaciones HOSP1T AL1ZA_A yIIOSPITALIZA_B al tratarse de históricos, con lo que no pueden borrarse loe;ho~pltalel>, los médicos y los asegurados que participen en estas relaciones. Paraborrarlos podría considerarse que tienen un código especial que mdique si sonho~pltales actuales o pasados.

Semántica no recogida

2.2: TRANSFORMACiÓN Uf, ESQUEMAS ¡':)RA t\SQUhMÁS RELACIONALES 305I R/\ t-iA-

•G6'CC l \.••- -

Figura 2.2.75. Esquema relacional solución.

1:1 R.HOSPI"ALIZA_B «« p, Nlíln, Fi, css.». CÓd_H.F()

I

A

T

M

Á

C

P

OSPITAL (Cód H. N_H. Núm_C. Tipo_H)

~ BC ~t(

ROPIO (Cód H • P. T~)a e Me I

ONCERTADO (Cód H. CÓ~_A)R R "e

+ .,:EA «('ód A. S. Núm_H)

+ I R R. M eÉDICO (Cód M. N_M.Jefe')-¡ t .+' , 11r.M ('

I<:LÉFONO (Tel., Cótl M)

R:('. M C' R C:. M ('

DSCRITO (CÓd M, (.'tíd A)

~ÓLIZA (Cód P.D3toS_P)

t II'IC Ml

ASEGUR/\DO «e« P, Núm. Na. Fn. TipoA )+

RI \IrI I

Al C ({.·ód P, NlÍlIl)

I Re \,tI I

Ale (Cúd P, Ntíln),..I

I B'R. M.('BR'vI(" I R:R. :>1.(',

HOSPITALIZA_A (Cód P, Nlílll, Fi. Cád_M. Cód_H. Ff )

MC I R:R. M.C' tI.R. M:(, r

)-\ DISEÑO DE BASI-.SDI, DATC.)S· I'K()IlI.!:!I!M~A.~S~KI!.::'S~U!.!:E~L~TO~S~ _

H

Page 159: Diseño de Bases de Datos - Problemas Resueltos

, Tr~nsfonnarcn1os a continuación las interrelaciones N:M. Cada una de ellas sel()nver:tlrá en una relación cuya clave primaria será la concatenación de losl~cn~lfle,adores de las entidades que relaciona. Será necesario controlar laslardl~alldades rnínimus I de la interrelación. Tendremos por tanto las nuevasrcl~clones ADMINISTRA. FORMA_PARTE. TIENE_LUGAR Y CONTIENE. Esta~1~lIm~merece un comentario especial. Corno vernos, procede de la interrelación.~n~xlva que modela el hecho de que una pista puede estar formada por la unión de·Jnas. En teoría. la clave de esta nueva relación sería la concatenación de la clave de

La figura siguiente refleja estas transformaciones.

Pasarnos a continuación a transformar las interrelaciones I:N que no implican unadependencia en identificación, en concreto Federa. Compuesto. Es y Tiene. Paracada una de ellas. propagaremos la clave de la relación con cardinalidad máxima I a lade cardinalidad máxima N. donde será clave ajena. El hecho de que las cardinalidadesen lodos los casos sean (1.1) implica que dicha clave ajena no pueda tornar valoresnulos. Además, en el caso de Federa y Compuesto. debido a que la cardinalidadmínima en el lado N es 1. implica que deberemos controlar mediante disparadores quetoda ocurrencia de las relaciones FEDERACIÓN y EQUiPO está relacionada con almenos una ocurrencia de. respectivamente, ESQUIADOR y E_EQUIPO. Los borradosy modificaciones serán restringidos o en cascada (no podrán ser con puesta a nulos. yaque ninguna de las claves ajenas que hemos propagado los admite debido a lacard~nalidad mínima 1). No permitiremos borrar una federación mientras hayaesqUiadores federados. ni equipos mientras haya esquiadores de equipo quepertenezcan a él (borrado restringido). El resto de borrados y modificaciones serán encascada.

Figura 2.2.77

¡+ PRl)~:RA (tLP~uebª. Vencedor •Tiempo')III( ,MI'

PARTICfPANTE (N Prueba, N Partic. Posición, Tiempo)11('~Il

P_EQUI PO (N Prueba, N Par!/s.>s c v c

P_INDIVIDUAL (1:1 Pruebo, N Parl'!)

EQUfPO (Nombre. Entrenador. N_E'q)

ESQUIADOR (Illi.!,Nombre, Edad)»:C \1C

E_INDIVIDUAL (DNO"·C~IC

E_EQ!JH'O (DNJ)

¡+ESTACION (Código, Nombre, Dirección. Teléfono, Kms)IRCMC

PISTA (Cód PI~la,(,()dig".Grudo_dlf. Longuud. PI~Il\_COmplleSla)

FEDERACION (Nombre. Número)

2,2. TRANSFORMACIÓI\ 1)1:: ESQUEMAS EIR A F_SQUE~1ASREI.ACIONALES .107

•..••••••••••••••••' ~.'.

Figura 2.2.76. Esquema EIR a transformar

Transformamos. por tanto. las entidades ESTACIÓN, FEDERACIÓN. P~UE8A.:QUIPO y ESQUIADOR en relaciones cuya clave ~rilnaria será atributo identlficado1,rincipal de la entidad correspondiente, Las relaciones PISTA y PARTiCIPA~T~endrán como clave primaria la concatenación de su identificador más el de la ~n(l~:I,degular de la que dependen (ES1'ACIÓN y PRUEBA. respccuvamemc). la ~ual s~I.1lave ajena con opciones de borrado y modificación en cascada. P_EQUI~().• INDiViDUAL. E INDIVIDUAL y E_EQUIPO serán relaciones cuya clave scr¡~l.'- - .ti .ó tamblenle su entidad padre. quc además será clave ajena con borrado y modi IcaCI n.n cascada. La figura muestra el resultado de estas transformaciones.

o.

I 1,.)

• IJI' , 1II

11-',

•il ,,!~-,'_ISI,IVIOtlAl"

o u ¿ 0, "

'" 'JlI "INI.

I'Io.rnh'i" ol.,w.,lO

".t,

"~\,

,) .

PlSl ....

'8

('~. '....... (',,,.. ,. 1).01.... ,.

Ir("~I,'4,

I ~ toot.1.1' (U.tI!

t-.\1'At IÓN

'"

nsformando cada entidad en una relación: es la solución que conserva másnántica. y además. como vemos en el esquema, todas las entidades implicadas enIbas jerarquías participan en alguna interrelación. Las entidades hija tendrán como.ve la misma que la padre siendo, además. clave ajena. Los borrados yxíiflcaciones serán en cascada, y será necesario implementar, además. losscanismos adecuados para controlar la totalidad y la exclusividad de cada jerarquía.: momento. no consideraremos los atributos rnultivaluados ("Contacto" en la entidad·rACIÓN. y los atributos de fecha en las entidades PRUEBA YPARTICIPANTE).

o KA·\1ADISERo DE BASl::S DI::I}ATOS: PROBLEMAS RESUELTOS

t •••••••••••••••••••

Page 160: Diseño de Bases de Datos - Problemas Resueltos

••_.~••••••• •••••

En la figura 2.2.81 se muestra el grafo relacional con el resultado de latransfornlación.

PrOI)uesta de soluci6n

Figura 2.2.80

ORMA_PARTE (N Prueba, N Parrie, DNI. Posición, Tiempo)uC. M:C

FECHA_FORMA_PARTE (N_Prueba. N_Par/ie. DNI,.Fecha)

PARTICIPANTE (N Prueba, N Partic. Posición. Tiempo)R e,M e

FECHAS_PARTICIPANTE (f:'/ Prueba, N Parrie, Fecha)

FE('~HAS_PRUEBA (N Prueba, I-'echa Prev)..- ...Jlue ....,lf

PRUEBA eN Prueba. Vencedor'. Tiempo')

CONTACTO (Código. Nonlbre)f Iu L M'L

ESTACiÓN (Código, Nombre. Dirección. Teléfono. Krns)

Por último, nos falta realizar las transformación de los atributos multivaluados.C0l110 sabernos. en el caso general. se creará una nuev a relación cuya clave primariac!\tará formada por el atributo más la clave OC la relación de la que cs atributo. Sinenlbargo. en el caso de atributos multivaluados en interrelaciones, es necesarioe'tudiar la semántica, que puede llevar a que no sean necesarias las claves de todas lasentidades que enlaza la interrelación. En nuestro caso. el único atributo rnultivaluadode una interrelación es "Fecha". en la interrelación Forma_Parte. Si consideramos.por ejemplo, que. un esquiador de equipo en una fecha determinada formará parte deun único equipo participante, bastaría con las claves de E_EQUIPO y la fecha paraIdentificar a la nueva relación. Además. puesto que ninguno de los atributos esopcional. será necesario controlar que toda ocurrencia de las relaciones PRUEBA, .PARTICIPANTE. ESTACION y FORMA_PARTE tiene asociada al menos unaocurrenci:1 en la correspondiente relación que almaeena las fechas o. en el caso deESTAC'ION. una persona de contacto. Los borrados y las modificaciones serán entodos los casos en cascada.

Al igual que hicimos en el caso de las entidades, de momento no consideraremosel atributo multivaluado "Fecha" de la interrelación Forma Parte.

2.2. TRANSFORMACiÓN DE ESQUEMAS f'jR A I'S<JUhMAS R¡"I.ACIONAI.ES 309

Figura 2.2.79

t: EVUII)O (/)NI, N"lIIhl'( F.""i¡11I1

l'_EQUIPO IN. PWr/w. N tua« ..No",/lrr)r n C,t-vI 1", ,I'ORM¡\ I'AI{ fE 1/YJ'(IJ.I:l!/.I •. {11 l'ul'!/¡.(>NI. Po,'eión. Tiernpu)

8R.M ~

PRL'EBA11'\ Pr!!W. Vcn<edol . TIempo )+ DI MeI'1IENE_l.tGAR IiY_Pn<"lw. C'¡'¡ p"", C'¡di~,,)

BR. ~i('

PISTA leN P,,'a, ('lidIen. Grudojfif. Longitud, Phla_compuc,13)

+ .. I I '11 k. " (' 1"R M eCONTII(NE le'Hlig", e,;,1 Pi,Ha e"IIt. ('tíd l'i,'<I ,,,,.)

,F~.U"-Rr\t'ro'"It-i",nbrc. '1umero)

¡"/}iI4/'a 2.2.78

I'_INDIVII)UAJ. (N Prllepll, N Portie, DNf)

IfI'~'M.eE_EQUIPO (V.NJ,Noml)/'e_Eqllipo)

E_INDIVIDUAL ([)NI) +----,11.<". M('

EQ~PO (~rTJ.bn.:.EOIrenador.N_EsqlI He. M.I·

p_EQUII)O (N_Prll~l)a. N Portie. Nombre)4----------------, II.R.M ¡­

ESQUIADOR (Qlli. Nombre. Edad. Federocion)

.-. FEJ)EKACION (Nombre. Numero)

os pistas (la compuesta y la componente), es decir, el código de estación y el códigoe pista. ambos por duplicado. Sin embargo, el enunciado nos exigía que cuando unaista está formada por otras, éstas (y aquélla) deberían pertenecer a la misma estaciónvunque esta restricción no pudimos recogerla en el esquema EIR. ahora sí podemos.accrlo fácilmente. sólo con elirninar uno de los atributos que referencian a lastación. Las clave) ajenas de ambas pistas utilizarán este atributo. 10 que obligará alue en ambas coincida su estación.

)H DISEÑO DE BASES DE DATOS rROBI.L.~M!.é:A~S...!:R~E:.::!S~U!::EI!....·~rO~s!-- _:'_:\Rc::.~=·M,\

Page 161: Diseño de Bases de Datos - Problemas Resueltos

l en interrelaciones con cardinalidades (1:n) en algunoCardinalidades mínimasde sus extremos .

Totalidad y exclusividad de las jerarquías .

. ~s ncc~sario COnt~~lar,qu~ ~n esquiador no pueda cambiar de equipo durante losJuegos. así corno que, SI es individual. no pueda ser de equipo. y al revés .

Atributos derivados,

Semántica no recogida

2.2' TRANSFORMACIÓN DE hSQUEMAS FJRA eSQUEMAS REI.ACIONALES 31 I

••••••••.••••••'••••~.,.•-.••~.~•.•

Figura 2.2.81. Esquema relacional solución

¡+FORMA_PAR'I'E (N Pruel,a, N Partic, DNI, Posición, Tiempo)I I IBC',M,(

FECHA_FORMA_PARTE (N_Prueba. N_Partic, DNJ, Fecha)

.--_,B:R, MeNI}

u c. M·e

e)

R:R.M:C

ración)

M:C

osición, Tiempo)IBc,Me

N Partie, Fecha)

Código)

ev)

gitud, Pista_compuesta)IR.R.M:C

ti Pista lns)

Teléfono, Kms)

....FEDERACIÓN (Nombre, Número)

CONTACTO (Código, Nombre)t IB.C.M e

.....ESTAClÓN (Código, Nombre, Dirección.~

B:C, M:C 1 R:R,M,eADMINISTRA (Norflbre, Código)

.IB C, M:C~PISTA (C(>!iPista, Código. Grado_dif. Lon...

1 I I B I{,M eCONTIENE (Código, Cód Pista Cont, Có

FECHAS_PRUEBA (N Prueba, Fecha PrIR:C.M:C

f~PRUE8A (N Prueba, Vencedor', Tiempo')t R:C.M:C I.l:K,M e

I I

'rIENE_LUGAR (N Prueba, Cód Pista,U.C.M e

~PARTICIPAN'rE (N Prueba, N Partic. P• IFECHAS_PARTICIPANTE (N Prueba.

~QUIPO (Nolnbre, Entrenador, N_Esq)... s-e M'C I a.e,.' I . ., ,_.P _EQUIPO (N Prueba, N Partie, Nombr

I.ESQUIADOR (DNI, Nombre, Edad, Fede

.. IB:C.M:C

E_INDIVIDUAL (DN[) ,IB:C.M C IB.R. M C

E_EQUIPO (DNI, Nombre Eouipo) ~B.C.M:C

P_INDIVIDUAL (N P;lIeba, N Partie, Du.e, M (.,

J 10 DISE:'iO DE BASESDE DATOS: PROBLEMAS RESUEl.TOS

~•••••••~ ••••••••••••

Page 162: Diseño de Bases de Datos - Problemas Resueltos

-.•

La mayorfa de las definiciones utilizadas en la introducción de este capítulo, y los"Igorilrnos de normalízacíon. se pueden encontrar en los libros De Miguel er al..'l<j99¡ y De Miguel el al., (1995), excepto en las que se indique explfcitamente lo"¡rUrario.Alguna definición se ha adaptado a los propósitos de este libro, para facilitar,ll'lIrnprensión.

Se recomienda la utilización de los algoritmos de normalización si en el casoprJctico existen un número elevado de dependencia y atrioulos, con el fin de evitar'lInrllsiones y equivocaciones en el cálculo.

La normalización de una relación es un proceso muy definido, donde incluso\',i,ten algoritmos de normalización. Sin embargo en la resolución de los problemasde este libro se utilizarán heurísticas, ya que son más intuitivas que los algoritmos, ypor lo tanto más fáciles de entender y aplicar al ser problemas Con un número reducidod~dependencias y atributos.

(;uías metodológicas para abordar la resolución de los problemas

INTRODUCCIÓN

NORMALIZACIÓN DE RELACIONES

CAPíTULO 3

.....l4....• - ~.

Page 163: Diseño de Bases de Datos - Problemas Resueltos

IllUhi~~11i.glla~ que. ocurría con las dependencias funcionales. las dependenciasuadas también pueden ser de vanos tipos. pero no se entra en detalle .

Nombre Titulació1IFclipe Maaisterio MúsicaFelipe Ing. Superior en lnformaticaAntonia Ing. Carninos

• DF :lemental ~i y es un único atributo. se trata de una dependencia plena (noparcial) y no trivial (p.c.: NOlllbre_profesor-7/)N/_J>rofesor)

• Df transitiva si en el esquema de relación R({X y Z} DEP) . . Id d . X7 . .. existen asep~n cncias Y; Y7Z;_Y.-I->X (p.c: NOlllbre_profesor7Código_Postaf;

Códlgo_Posta/7Cllldad: Codlgo_Postal -/.> NOlllbre_profesor)

Dependencias nlultivaluadas

Definición:. Sean X e Y dos descriptores. X multidetermina a y si para cadavalor de X. existe un conjunt~ bien definido de valores posibles en Y. conIndependencia del resto de los atributos de la relación [Fagin. 1977].

Notación: X 77 y

Por ejemplo. en la tabla siguiente el atributo DN/ multidetcrrnina a titulación:

• Q!!pcndencia funcional (DF) trivial si Y es un subconjunto de X (p.e.:NOlllbre_¡>rofesor -7 Nombre iprofesor¡

La dependencia X -7 Yes:•

A co~tinu~ción, se realizan una serie de definiciones necesarias para el procesode normalización de relaciones.

E~lslen varios tipos de depc~d.encias funcionales. y en ellas se basan algunos delos ax_'omas de Armstrong, utilizados para hallar el cierre transitivo de unde~ermlnante. pero no se entra en detalle en su definición. La definición dc losaxiomas de Armstrong se puede encontrar en De Miguel ct al., (1999).

Cu~ndo dos o más atributos se implican funcionalmente mutuamente se dice queson equivalentes.

NOlllbre_profe\or (!--7 DN/_profesor

Si además se cumpliera que no pueden existir dos profesores con el mismonombre, esto implicaría que el nombre también puede actuar como clave de la relaciónProfesor, y por lo tanto. también determina funcionalmente a su f)N/. es decir:

CAPíTULO 1:NORMAI.JZAC'ION DE RELACIONES .\15f R" \IA

• ••••••••••••••• e.•• -•.•_.•~.,••

DNI_proJesor -7 Nombre.profesor

Además. al conjunto X se le denomina implicante o determinante y al conjunto l': le denomina implicado.

Un ejemplo de dependencia funcional es la que existe entre los atributos DNllIcn profesor y Nombre del profesor:

Notación: X -7 y

ependencias funcionales

Definición: Sea el esquema de relación R(AT,DEP), y X e Y dos subconjuntos deT denominados descriptores. Y depende funcionalemente de X (X implica l'

etermina a Y) si para cada valor de X solamente existe un único valor posible para Y.

Entre los atributos de una relación (R) pueden existir dependencias de varios-os. Las dependencias son propiedades inherentes al contenido semántico de 10\

tos, formando parte de las restricciones de usuario del modelo relacional. Existenstintos tipos de dependencias: funcionales, multivaluadas, jerárquicas y en.mbínacíén, que se explican a continuación:

CÁLCULO DE LAS DEPENDENCIAS

Todos estos pasos se explican con mayor grado de detalle en los apartados del l5 de la introducción.

5. Aplicar los métodos de síntesis o análisis para obtener la forma normaldeseada.

3. Cálculo de las claves candidatas de la relación, de los atributos principalesy de los no principales

4. Cálculo de la forma normal en la que se encuentra la relación

2. Cálculo del recubrimiento minimal

l. Cálculo de las dependencia s funcionales. multivaluadas. jerárquicas y encombinación que existen entre los atributos de la relación.

El proceso de normalización se trata las dependencias que existen entre 10~outos (campos) de la relación. Los pasos que se realizan para normalizar unación son los siguientes:

DLSEÑODE BASES DE DATOS: PROBLEMAS RI"_~UELTOS

••••••••••••••••••••

Page 164: Diseño de Bases de Datos - Problemas Resueltos

~ -••••~l cierre transitivo de X se define Como el conjunto de atributos determinados por

,\ arlteandu los axiomas de Armstrong. y se denota eOl110X'.

Dado un esquema de relación R(A 7',DE? ) se denomi na supere/ave de la relaciónR a un conjunto no vacío de atributos pertenecientes a AT tal que estos atributos(k'~crJl1inanu todo el conjunto AT, es decir, que el cierre transitivo de ese conjunto de,lIl1hutos sea todo A7'.

Claves candidatas (CC)

1 CÁLCULO DE CLAVES CANDIDATAS

Puede ocurrir que exisla~ ;-arios conjuntos de dependencias mínimos válidos. ya4UC t~do depende d~ la elección de las dependencias redundantes y de los atributoseuranos que se eliminan en el proceso del cálculo del conjunto minirnal.

Por ejemplo, sea R(fA,B.C'}{A 7B. B7C. 1\ 7C)I. Como el atributo Adetermina transitivamente al atributo C. la última dependencia (A 7C) es unadependencia redundante.

~lNo t'xi;tt: en la relación ninguna dependencia redundante. Unu dependenciadp se dice que es redundante si su!'>irnphcados se deducen a partir del resto dela~ dependencias de la relación,

Por ejemplo. sea el esquema de relación R( (A,B, C') fA 7(', AS ¿CI J. Corno elatributo A implica funcionalmente a e, el atributo B es redundante en lasegunda dependencia.

a) Todas sus dependencias son elementales, es decir, que todas sus dependenciassean plenas. no triviales y tengan un único atributo implicado.

b) Nu existe en ninguna de las dependencias atributos extraños. Un atributo Aperteneciente a X es extraño en la dependencia X ¿y si la dependencia (X­A)~ Y se deduce del resto de las dependencias de la relación mediante losaxiomas de Armstrong.

,Un conjunto de dependencias es mínimo. y se denota como DEP"'. cuando se

cumplen las siguientes condiciones:

2. Ct\I.CULO DEI. RECUBRlMIJ.:NTO MINIMAI.

único esquema de relación (una única relación, denominada re/ación universal). Enlos problemas posteriores se utiliza la notación R(AT.DEP) para referenciar a larelación universal H. que tiene como atributos el conjunto AT y las dependencias queexi~leo entre sus atributos se recogen en el conjunto DEP,

___________ ....:(~:A~P!.:.!I.!.l:TU(.();\,NORMAII/,ACIÓN 0" RELACIONES .117

..-.....Para simplificar el estudio de las dependencias en los problemas de este libro. ,,'

onsidera. sin pérdida de generalidad. que el esquema relacional se compone de 1111

rso ProvectoAB- --B- B

Nombre 7'ellla CIIFelipe SDFelipe .- 1$Antonia SO-Felipe SD- -- -

Un ejemplo de esta propiedad es el que aparece en la siguiente tabla. donde exi-tvla relación dc "envidia" entre dos personas. Si. por ejemplo Felipe trabaja en \ ario,-oyectos (A y B) Y además realiza todos los cursos posibles sobre Bases de Datos (-genieria def Sl~'(las dos primeras tuplas). Si en esos momentos se inserta una nuc\.1pla (la tercera) donde Antonia trabaja en el proyecto B y realiza un curso de BD.itonces forzosamente Felipe, que trabaja en el mismo proyecto, ha de recibir elrsrno curso:

Notación: DJ"(H ¡,R2 ..... RII)

Definición: Una relación H tiene dependencia en combinación respecto de ,~lI'-ovecciones (Rl , R2 .... Rn) ,i R = RI * R2 ...... * Rn.

ependenclas en combínación

In .CaAntonia

lng. SupeIn form

Felipe

Nombre Ti/u fa~~~~~---r--~'Felipe Magisre

Mús

-. , ProvectoC/OII ~

.no en A.learror en Bática. A1111110S

Un ejemplo de este tipo de dependencias xe muestra en la tabla siguiente. dondea persona posee varios (1111/0.\ y trabaja en varios proyectos. donde no xe exigeiguna titulación para trabajar en ningún proyecto (no hay relación entre exu»,'ibutos):

Notación: X ¿ ¿ )'1 Z

Definición: Sean X, Y ':1 L descriptores. X muttidetermina jerárquicamente a r.l;i en la proyección de los atnbutos X muludctermma a Y y X rnultidetermina a 7..

pendencias jerárquicas

Existe un tipo especial de dependencias multivaluadas, que son las dependencia,ilrivaluadas jerárquicas.

Page 165: Diseño de Bases de Datos - Problemas Resueltos

• Se encuentra en IFN

• Cada atributo no principal tiene dependencia funcional completa respecto dealguna de las claves

Se dice que una relación se encuentra en 2FN si:

Segunda forma normal (2FN)

La prinl~ra. forma non~al es una restricción inherente al modelo relacional, por loque su cumplimiento es obligatorio para toda relación.

Nombre TitulacionesFelipe InformáticaFelipe CaminosAntonia Magisterio musical

NOII,bre TitulacionesFelipe Informática

CaminosAntonia Magisterio musical

Se dice que una relación se encuentra en IFN cuando cada atributo sólo torna unvalor del dominio simple subyacente. Es decir, que no existen grupos repetitivos.

Un ejemplo es el que aparece en las tablas siguientes, donde en la primera tablano s: :~cuentra en IFN. sin embargo en la segunda tabla sí que se cumple estarcstrtccion. y por lo tanto se trata de una relación.

Primera forma normal (lFN)

De esta forma, las relaciones en primera forma normal (1FN) tienen másredundancia de datos que los niveles superiores. y por lo tanto más anomalías deac~u~lización de datos. Y la quinta forma normal (5FN) es el grado de normalizaciónmáximo que puede alcanzar una relación.

las dependencias multivaluadas y enmás de normalización, la 4FN y la 5FN

Posteriormente, y basándose encombinación, se definieron dos nivelesrespectivamente.

Las tres primeras formas normales las definió Codd [Codd. 1970] y se basan enlas dependencias funcionales que existen entre los atributos de la relación. Más tarde,en 1974, y debido a que todavía existían anomalías, redefinió la 3FN y la denominóforma normal de Boyce-Codd (FNBC).

CAPÍTL'LO 3: NORMALIZACiÓN DE Rt-,LACIONES 319

e-•••••••••••••••••••••• -~~••

Figura 3.1. Niveles de normal i;:'(I('ión

IFN

2FN

3FN

FNBC4FN

5FN

Existen seis niveles de normalización de una relación. que se muestran en 1.1ra 3.1. Una relación se encuentra en uno u otro grado de normalización si cumpleserie de propiedades (restricciones> que se explican a continuación.

ORMA NORl\-tAIJ DE UNA RELACiÓN

Por ejemplo. en la relación R({A.B.C,D}{A ~8.l):8~C}), donde la única clavelidata que existe es (A), el atributo A es principal. mientras que el resto de JI"lutos (B. e, D) son atributos no principales.

Un atributo es principal (AP) cuando forma parte de alguna de las claveslidatas de la relación. Un atributo es 110 principal (ANP) cuando no forma parteinguna de las claves candidatas.

Por otro lado, es necesario para el cálculo de la forma normal de una relaciónT cuáles son sus atributos principales y no principales.

butos principales y no principales

Se denomina clave candidata (CC) de una relación a una supcrclavc tal quepie que ningún subconjunto de la misma determina a todo AT.

Por ejemplo, en H la única clave candidata que existe es el atributo A, ya quemina a todo AT. El conjunto (B, A) no es una clave candidata, aunque determinalo AT, porque el subconjunto {A} determina a AT.

Por ejemplo. en el esquema de relación R((A.B.C.D}(A ~BoD; B~C) A+= {A.o e}, B+={B. e}. e'={c}, D'={D}.

DISEÑO DI' BAS~.li DE DATOS~ PROBLEMAS RESUI'I.TOS

••••••••••••••••••••

Page 166: Diseño de Bases de Datos - Problemas Resueltos

,." _ . ~ V O ti ;, ,,,()O. ,) ') ..) .) "; ) "~ ~.......•••.• -e- -••• -•• -•••••

El proceso se lleva a cabo mediante el árbol de descomposicián, que se muestraen la figura 3.2. donde A, .....A" son los atributos y d,.....d.; las dependencias quec\i~len entre los mismos,

Los esquemas resultantes son cada ver de menor grado y se encuentran en unnivel de normalización mayor.

El método de análisis fue propuesto por Codd y posteriormente fue ampliado porRissanen, Fagir y Zaniolo para incluir las dependencias multivaluadas y encombinación. Trata la descomposición en sucesivas proyecciones de la relaciónuniversal (con lodos los atributos del universo del discurso y las dependenciasexistentes entre ellos) paso a paso hasta alcanzar la 5FN.

Análisis

Se aplican estos métodos para aumentar el nivel de normalización de lasrelaciones, eliminando redundancias y anomalías en la~ modificaciones. inserciones yhorrados de los datos de la misma,

De e...ta forma siempre los 11 esquemas resu nantes serán equi valerues a la relacióninicial y tendrán menor redundancia en los dato"

Los métodos de análisis (o descomposición) y síntesis tratan de transformar, por•medio de sucesivas proyecciones, un esquema de relación en un conjunto de nesquemas resultantes. Estos esquemas siempre han de cumplir la conservación de lamformación (atributos y tuplas), de las dependencias y que existan mínimaredundancia en los datos.

6. MÉTODOS DE ANÁLISIS Y SÍNTESIS

También se puede dar otra definición para la 5FN: "una relación se encuentra en5FN si y sólo si toda dependencia funcional. mullivaluada o de combinación no triviales consecuencia de las claves candidata s".

• Se encuentra en 4FN

• Toda dependencia de combinación está implicada por una clave candidata,

Se dice que una relación se encuentra en SFN si y sólo si:

,Quinta forma normal (SFN)

Sin embargo, las relaciones RI({A.Bj.{A .-7.-7B}) y R2({A.C}.(A .-7.-7C}) e;í seencuentran en 4FN.

, ~A.MA cAPi'll 1.0 1:NORMALIZACiÓN DE RI!LACIONES 321~~~----------------------

FN .: , '1 '1' s únicas dependen,I:"Se dice que una relación se encuentra en 4 SI Y so o S~laa'e 1l1u';idelenniníl un

mullivaluadas no triviales son aquellas en las que una e vatributo.

. , .-7.-7/3' A.-7 .-7C) no se encuentra cn 41';\'Por ejcrnplo.Ja relaclon R({A.B,.C},{A. l' rimera dependcncla d

a ue su clave candidata es el conjunto {A. B. C} y en a p .'~tri~uto C no participa y en la segunda es el atributo B el que nc participa.

Cuarta forma normal (4FN)

, '1 . d d lernlinante e'Se dice que una relación se encuentra en rNBC SI y so o SI lo o eclave candidata,

, (A (-.-7B' A C-7D}) no se encuentra enPor ejemplo, la relación R«(A,B,C.D}. ". . > lo-FNBC, yaJque los determinantes A Y B no son claves candidatas. sino que lo sonconjuntos {A,C} y {B,C).

Sin embargo. las relaciones RI({A.Bj.{A (-.-7B}) y R2({A.C.Dj.{A,C.-7D)) sf 'lO

encuentran en FNBC.

Forma normal de Boyce-Codd (FNI1C)

• Se encuentra en 2FN• No existe ningún atributo no principal que dependa transitivarnente de alguna

clave de R

Por ejemplo en el esquema de relación R({A,8.LO),{~ ~/]; B.-7C)): (1:1 Clav,rlo , 1 ., t íbutos no pnnclpales /3 Y ( .. 01110 eandidata de la relación es el atributo A, Y os a n . ., ' • 'I:N, d I I A la relación no se encuentra en" ,ib t C depende lransillvamenle e a cave .

.tn u o " en "FN ya que C depende transilÍvalnente de la clave,lunque SI - o'

Sin embargo. hl'i relaciones R/«(A.B}.(A.-7B}) y R2«(8.CO).{B.-7CO}) SI que ~cmcueniran en 3t'N,

ercera forma normal (3FN)

Se dice que una relación se encuentra en 3FN si:

Por ciem lo en el esquema de relación R«(A.8.C.D}.{A.B-7C~ A,-7D}), donde laJ, p '1 iunt (A 8) Y por lo tanto los atributos principales son A y B

ve candl~at~ esleeScc.oynJ~n~I at;ibu'to no principal E). depende de A, pero no de unaos no pnnclpa , ..ve. Por lo tanto, el esquema no se encuentra en 2FN,

Sin embargo los esquen'las R/({A,B.C},{A,B-7C'}) y R2({A.D).{A-7Dj) sr secuentran en 2FN,

I)ISE~O DE BASES DE DATOS: PROBLEMAS RESUhLTOS

Page 167: Diseño de Bases de Datos - Problemas Resueltos

,

FI árbol le d . .,- , le escolnpoSlclon de esta relación se muestra en la ñgura 3.3.

En la relación R. la clave candidata es el COIlJ'Ul1tO{A 8 D} Y IAP={A H D} NP-{C' " . , '.. por o tanto,C . . '., ~ A -. ,E:'}. Se encuentra en I FN, ya que, por ejemplo, el atributodaCv:.lapruncr a dcpendcncís sólo dependen de los atributos {A.I1}. pero no de toda la

)

A,C -7 E

A.D -7 F

A,8 -7 C

A 7 ::: (A,B,C.l).E,F)

Dé·P· ::: (

Un ejemplo del algoritmo de análisis es la dcsccmposicrén de la relaciónH(¡\T.IJEPJ. donde

• AT: conjunto de atri butos de una relación.

• DEP: conjunto de dependencias de una relación.

• R 1, R~.. " Ro: relaciones resultantes de la descomposición de la relación R.

• RI', R,', ... R,', RI .•II, R=."" Ro.,,,,: relaciones temporales necesarias para elproceso de descomposición de una relación.

• R: relación uni versal.

E.n I~s árboles de descoruposición de los ejercicios resueltos la notación utilizadaes la sigurerue:

Por olr~ lado. cuando ~~isten varias dependencias en un momento dado que noInducen a _pe:dl~as. la el,ecclon de una u otra es independiente del resultado. Es decir,pueden exisur distintos arboles de descomposición, y distintos resultados válidos parauna misma relación inicial.

Dehido a esto es posible que se pierdan dependencias funcionales en ladescomposición de la relación. Cosa que no srernpre es deseable,

dcpcndcncia/s elegidaJs no se mantienen en la relación temporal creada para continuarla descomposición.

_:::W,.;_' ';;..1~'- ~('.!:.¡\~píTtILOJ NORMA LIZACIO\ DE RELACIONES J2J

•••••••••••••••••••--.-••-.-.__.

Figura 3,2, Árbol de descomposicián general

En el paso cuarto del algoritmo es importante el orden en el que se eligen l."dependencias funcionales de una relación para su descomposición en otras relaciones­Esto se debe a que los atributos no principales de la nueva relación creada con In/'

•••

R2' AT::: {A " ...A,JDEP::: (d,., ....d"J

R~ AT = {A,....AJDEP::: (dj., ....dJ

AT = 1\, A.}DEP::: (d¡., d"JRI'

A7' = {A, ....AJRI DEP::: {d, .... dJ)

oO

A.. t .... A.

A7 = (A, ....A,J01::/' ::: {d¡ .... d"J

Alrtbh/IJ-;pri,,(',ptl{" ,ú~R,~~~~~~

R

6. Tratar las dependencias en combinación. Si existe alguna que no estéimplicada por la clave, habrá que descomponerla.

5. Tratar las dependencias rnultivaluadas (descomponerlas o eliminarlas).

4. Agrupar las dependencias funcionales (DF) que tienen el mismo irnplicante II

equivalentes y obtener proyecciones independientes con estos grupos ticdependencias.

3. Identificar la FN cn la que se encuentra la relación.

2. Hallar las claves, los atributos principales y los no principales.

l. Hallar el recubrimiento minimal DEP"'.

Los pasos del algoritmo de aruilisis son los siguientes:

El proceso de descomposición termina cuando las relaciones se encuentran en lairrna normal objetivo o cuando la continuación del proceso supone pérdidas noeseadas de dependencias.

" DISEÑO DE BASES DE DATOS: PROBLEMAS RESUELTOS

•••••••••••••••••••••

Page 168: Diseño de Bases de Datos - Problemas Resueltos

" " .." ~•••~ ...•

R(AT, DEP)

Dado el siguiente esquema de relación:

Enunciado

PROBLEMA 1

En este caso las relaciones obtenidas son las mismas que con el proceso de"nálisis, y todas ellas se encuentran en 5FN.

RI( {A.B. e).(A.B 7ej)

R2({A.D,rj. (A.n 7F})

R3({A. e,f.).{A.C 7E})

.•~e crea. un n.ue\'~ esquema de relación por cada conjunto de dependencias queP()~~CI1c.1rmsmo implicantc. En este ~aso los gru~{)s tienen cardinalidad uno, ya queno CXlstc~ do, dependencias COn el mismo determinanre Por lo tanto. el esquema derl'lat'lón final es:

)

•A.n 7F

A,B ¿e

DEP'" :o (

AT:: (A,B,C.D.F,F)

4. Si existen atributos que no son Impllcantcs ni implicados en DEplII• formar unesquema de rclacicn con éstos sin dependencias o altcrnativamema crear unesquema con la clave de la relación y sin dependencias.

.. S.e real iza. el proceso de síntesis para el mismo caso que se resolvió medianteanálisis. es decir, para la relación universal R(AT, nl:.·p). donde:

3. Cr~ar un esquema de relación (Ri) para cada partición, que tenga comoatributos todos los que participen en las dependencias y C0l110 grupo dedependencias las del grupo.

• ~" ..;;;'1;\"-- __:C~A~P'2f·~fU~L~O~1.~N:!1.!'0RM A L IZACIÓN DE Rl' I.ACION ES .12.'>

I .." ~ ..'e~ee e"••• e-e-•......... ~e•

2. Agrupar las dependencias funcionales (DF) en particiones que tienen el nll~lnllirnplicante, uniendo los atributos equivalentes.

l. Hallar el recubrimiento minimal DEP'''.

Los p<L~OSdel algoritmo de sfruesis se resumen a continuación:

Sin embargo. el proceso de síntesis no trata las dependencias mulrivaluadas ni la,ependencias en combinación, por lo que solamente asegura que las relacione,esultantes puedan estar en FNBC. Frente al proceso de análisis. que tiene en cuentasias dependencias, y por lo tanto permite llegar hasta la 5FN. Por supuesto, lodo e\lCl:niendo en cuenta que no siempre se pueda llegar sin pérdidas de dependencias ni lit'iformación.

Es decir. arribos procesos tienen el mismo fin, apoyándose ambos en el mismooncepto de dependencias y de recubrimiento irredundante.

El proceso de sfntcsis recorre el camino inverso al proceso de análisi«. Trata ll\'grupar las distintas dependencias que existen entre los atributos del universo lidiscurso. sintetizando relaciones.

íntesís

•Figura 3.3. Arbol de descomposicián de ejemp!o

Claves, \A, B ISFN

Claves: IA,!)I5FN

A'T = {A,D,F}DEP= {A,D~F}

R, AT={A.B.C)DEP = {A,B~C}

Claves: (A.B.DIlf~

C1a'es:(A.C I5fN

AT = {AB.CD.F}DEP::: {AB~e:

A,D~F}

AT = {A.e.E}DEP = {AC~E}

CI~ve, (A.B.OI,1<1'1

AT = {A,B.C,o,E,F}DEP = {AB~C: A,D~F:

A,C~E)

R

4 DISE>lO DE BASES DI, I)A ros. I'I{OBLEMAS RE,',IJELTOS

Page 169: Diseño de Bases de Datos - Problemas Resueltos

A ,continuación se cornprueba que en ninguna dependencia de DEP existenatributos extraños, Un atributo A es extraño si dada la dependencia X ~ y de DEPla dependencia (X-A) ~ Y se encuentra en DEP·. '

•Por lo tanto, se cumple que todas las dependencias son elementales.

En todas las dependencias halladas se cumple que tienen un único implicado.

!od~s las dependencias son plenas, es decir, que ningún subconjunto delimplicante podría implicar al implicado.

Ninguna dependencia es trivial. es decir, ningún atributo del detenninanteaparece como implicado.

Lo prirnero es comprobar que todas las dependencias son elementales:•

':' continuación, se comprueba que las dependencias halladas en los apartadosamenores son irredundantes, es decir, si el conjunto de dependencias es mínimo!DEplll):

Recubrlmtento irredundante (ominimal)

Cod-L, Cad-M ~ ~ a

Se puede encontrar otra dependencia multivaluada en la relación D, donde, aligual que ocurre con la relación B. no existe ninguna dependencia funcional. Enesta relación son Cod-L y Cod-M son los que multideterminan al atributornultivaluado a.

•Cod-L~~b

En la relación B no existen dependencias funcionales entre sus atributos pero síexiste una dependencia multivaluada, ya que. para un único valor del determinante(Cod-L), existe un conjunto bien definido de valores que puede adoptar elimplicado (atributo multivaluado b).

Dependencias multivaluadas

Cod-M ~ Atr-M

• Ocurre lo mismo en la relación C. donde Cod-M es clave primaria de la relación. ypor lo tanto implica funcionalmente al atributo Atr-M:

CAPtTULO J: NORMALIZACIÓN DF RELACIONES J27o RA MA

•••••••••••••••••,.••••-•••.

Cod-L ~ Atr-L

En la primera relación de la figura 3.4 (relación A), se tiene como clave prin1ari:1el atributo Cad-L. Toda clave primaria de una relación implica funcionalmente alresto de los atributos de lu relación. Ya que por cada valor de la cluve primaria. I1

cada atributo le corresponde un único valor, De esta forma. Cod-L implicafuncionalmente a Atr-L:

oendencias funcionales

El primer paso para calcular en qué forma normal se encuentra la relación R es.ar qué tipo de dependencias existen entre los atributos del esquema relacional de laIra 3.4.

PENDENCIAS EN'rRE ATRIBUTOS

scusión del enunciado

NOTA: En el esquema relacional de la figura los atributos nombrados con letra'ninúscula son atributos muuivaluados.

Figura 3../, ESqUl'1I1l1 relacional

/../

.,/

A coa-i, Atr-L""'.

..""'..>:

""'...B Cod-L b""'

/.e Cod-M Atr-M .,/,

I I.,D Cod-L Cod M a /

I

mributosYn1ultivaJuadosII

Donde AT = {Cad-L. Cad-M, Atr-L, Alr-M. a. b) y DEP es el conjunto'relacicnes de los atributos del esquema relacional de la figura 3.4, determinar lala normal en la que se encuentra el anterior esquema de relación, explicando cadade los pa os llevados a cabo, y normalizarlo hasta 4FN (siempre que no se pierdanendencias): Indicar, para cada esquema de relación resultante. las claves y la formanal en la que se encuentra.

DISENO DE BASES DE DATOS, PROBLEMAS RESUELTOS

~•••'••••••.••\••'••••••

Page 170: Diseño de Bases de Datos - Problemas Resueltos

......................... :-

Es clave c~ndidata (CC) toda supcrclave que cumple que no existe ningún\ubcollJunto esmero de la misma que sea a su vez superclave.

C' El prin1e~paso es calc~lar posibles superclaves para la relación R. Una superclavcs un ~ubconJunlo del conjunto de atributos no vacío de la relación R (AT) tal quedetermina a todos los atributos de la relaci6n.

Claves candidatas

}

CLAVE DE LA RELACIÓN

(4) Cod-L, Cad-M -770

(3) coa-t. -77b.(2) Cod-M -7Atr-M,

(1) Cod-L -7Alr-L,

[)EP'" = DEP = (

A partir de todos estos cálculos se puede concluir que el conjunto rnfnimo dedependencias e~ el siguiente:

Corno se ha comprobado por el algoritmo que no existen dependenciasredundantes, no se vuelve a comprobar por este método.

Una dependencia (dp) es redundante cuando la dependencia pertenece al cierre deDEP' = DEP-dp. Para hallar si alguna de las dependencias de DEP es redundante, hayque comprobar para cada uno de los elementos de DEP si se puede deducir a partir deDEP' .

En los problemas de este libro no se vuelve a realizar el cálculo de lasdependencias redundantes mediante este algoritmo. ya que es poco intuitivo. Seaconseja utiliz.ar el algoritmo solamente cuando existe un gran número de atributos yde dependencias. pero cuando el problema es sencillo, es más intuitivo utilizar elsiguiente método:

cierre. Sin embargo. el coste y la complejidad del cálculo del cierre de lasdepe.ndencias multivaluadas es mucho mayor que el de las dependenciasfuncionales, por lo que no se desarrolla en este libro. afirmando que noexisten dependencias rnultivaluadas redundantes en R.

~.!.!\R~A..:."~A • ___!c!:.!A~p:!.iT.!..!tc!!"_¿_J)!...;J~:~N.!dO.!iR,!!:!M~AI.IZACIÓNDI:: RELACIONES ~29

, '"••~ •••

Cod-L -7-7 b y Cod-l .. Cod-M -7 -7 a

Para dcrcnni nar si una dependencia mult ivaluada es o no consecuencia 1t~¡;iL"lde un conjunto de dependencias. es necesario calcular el cierre del conJtln1l1de dependencias y comprobar si dicha dependencia pertenece o no a l"l'

Cod-M -7 Atr-MEsta dependencia es similar a la anterior, luego el resultado es el miSIl1<I,nllse trata de una dependencia redundante.

Cod-L -7 Atr-L:

_ RL('¡,r/./ = Conjunto de atributos de la parte derecha de la dependencia quepertenecen a la parte izquierda y derecha de la dependencia = {} ironjuntovacio¡_ RC)c", L = Conjunto de atributos de la parte derecha de la dependencia quepertenecen solamente él la parle derecha de la misma = fA/roL}.

_ r-cierre: tCod-L U (')"n/l' = Conjunto de todos los atributos de las parte,derechas de las dcpcndencia-, derivados de X respecto a l)EP' = (DEP(C·od-l.-7 AI,.-/,}). Para calcular el r-cierrc de Cod-L, primero se calcula l'lcierre transitivo de Cod-L tCod-L' 011') y posteriormente el conjunto lkatributos determinado!' funcionalmente de forma directa a partir del conjuntoCod-L:IlI:I'_ Cierre transitivo (Cnd-L'Il~I') = conjunto de todos los atributos implicado­funcionalmente por Cod-L directa o indirectamente (mediante el axioma lit­uansitividad). En DEP' no existe ninguna dependencia donde Cod-L ~t.'a

deterrnincnte. por lo que css-i: 01 p=Cad-L.- Por lo tanto. (Cod-L)"n¡.p = el conjunto vacío «().

- ¿Atr-L ( (el n Alr-L)? NO

Por último se comprueba que no existe ninguna dependencia redundante. es decir.que se pueda deducir a partir de las demás mediante los axiomas de Arrnstrong.

Por ser el primer ejercicio de normalización del libro. se realiza el cálculo de la~dependencias redundantes aplicando el algoritmo optimizado que aparece en ellibro De Miguel el al. (1999) para hallar las dependencias funcionale-,redundantes: Una dependencia X -7 Z el>redundante si Z t (X U RL.,J""EI' n RC),.Se comprueba. entonces. para cada una de las dependencias de DEP"', si se cumplela condición de redundancia:

Para comprobar que la dependencia (X-A) -7 Y pertenece a DEp· se ha decumplir que Y pertenece al cierre de X-A «X-A)tnr.r).

En el conjunto de dependencias (DEP) no existen atributos extraños,

8 DISEÑO DE BASES DE DA IOS. P~ROS!!B~I:!!.f:~;M:!.!A~S~R~E.'~S~ll~EL!:-.!T~O~S:..__ -""'·'~K~~

Page 171: Diseño de Bases de Datos - Problemas Resueltos

Se crea una nueva relación (R,) que tendrá corno dependencias la elegida y cornoatnh.lItostodos los que participen en la misma, y otra relación temporal necesaria para~l)I~tlnuarla deseo Inposición (R1 '), con el resto de las dependencias funcionales y losatnhutos de R menos los no principales de la relación R" es decir. menos el atributoArr-L. Puede observarse la descomposición gráficamente en la figura 3.5.

. Se elige una de las DF con cuidado de que el atributo implicado no participe enninguna otra dependencia de DEP, por ejemplo, se opta por la dependencia Cod-L -7str-L. ya que Atr-L no participa en ninguna otra dependencia de R.

Se agrupan todas las dependencias funcionales que poseen el mismo implicante.En este caso no existen dos dependencias funcionales con el mismo implicante, por loque no se realiza ningún grupo de dependencias.

Clave: {Cod-L, Cod-M, a, b}

FN en la que se encuentra: IFN

Atributos principales (AP): todos aquellos que forman parte de alguna de [asclaves = {Cod-L Cod-M, a. !J}Atributos no principales (ANP): todos aquellos que no forman parte deninguna de las claves = {Atr-L. Atr-M}

DEpffi= DEP

Se parle de la relación universal (R), de la que se conocen los siguientes datos:

raso 2: Descomposicián de R•

Cad-L, Cad-M -7 -7 a 1

Cod-L -7-7!J,

Cod-M ~ Atr-lvf,

DEplTl= { Cod-L ~ Atr-L.

/)0\0 l : Recubrirniento minimal (calculado anteriormente)

Se realiza el proceso de descomposición paso a paso. construyendo a su vez elarbol de descomposición:

Se normaliza la relación universal R mediante el proceso de descomposición derelaciones hasta llegar al menos a 4FN (objetivo del enunciado).

Normalización por análisis

_!;!.', _;!,\I::.' ___!:c;!:.·A~p.!..!íT~Ué!.:I.!.!O~3.:..2:N::.,:'(~.>R~M::!.:A~L!::!I!.:.!:cZAC IÓN DE R ELA el ON t'_~ J3 I

...•....••..•••.•••-.•.•-......

• lFN (1" forma norrnal): Una relación se encuentra en primera forma normalcuando no admite grupos repetitivos como valor de un atributo en un registro. Enla relación R no existen grupos repetitivos al tratarse de una relación (propiedadinherente al modelo relacional).

• 2FN: La relación R no se encuentra en 2FN. ya que existen atributos noprincipales que no dependen totalmente de la clave. Por ejenlplo: en ladependencia {Cod-L ~ Atr-L}, Atr-L depende de Cad-L. que, aunque forma partede la clave. no es clave de la relación.

Forma Normal de la relación

Clave = [Cod-L, Cod-M. a, b}

Por lo tantO, el descriptor {Cod-L, Cod-M, a. b}. al implicar a todo AT, es unasuperclave. Además es una clave candidata, ya que ningún subconjunto de la misma C~

superclave. De hecho, se trata de la única clave candidata que existe en la relación R.

lO tCod-L, Cad-M, a. b)' = {Cod-L. Cad-M, Atr-L; Atr-M. a, b} :: AT

Como aún no se han incluido los atributos a y b de AT. Y ya que se trata deuributos independientes (no se encuentran implicados funcionalmente por ningún otroitributo), éstos tendrán que formar parte de cualquier clave candidata.

iCod-L; Cod-M)' = i Cnd-L, Cod-M, Atr-L. Arr-M}

Hasta el momento, ningún atributo simple implica (mediante los axiomas de.rmstrong) a todos los atributos de la relación (AT). por lo que se realizan grupos detributos que puedan determinar a todo el conjunto AT, para ello, normalmente seligen aquellos cuyos cierres tienen una cardinalidad mayor:

css.t: = (Cod-L, Atr-L)

Atr-t: = (Atr-L)

csa-t«: = {Cod-M. Atr-M}

Atr-M+ = (Atr-M)

a+ = {a}

b' = lb)

En primer lugar. se calcula el cierre transitivo de todos los atributos de la.ación:

Para calcular si un descriptor (subconjunto de atributos de AT) es claveldidata, el algoritmo se basa en el cálculo de su cierre transitivo.

DISEÑO DE BASES DE DATOS. PROBLEMAS Rt'_~UELTOS

••••••••••••••••••••••

Page 172: Diseño de Bases de Datos - Problemas Resueltos

.. "-••••••••~ •••••••~ ••

• Clave(R~): {Cod-M}

• Se encuentra en 5FN

Al ig.ual qu~ se hizo con la descomposición dc R, se elige una de lasdependencias func,onalc~ de R1', en este caso la única que queda (Cod-M7Afr-M), y'c, Crea otr.a nuev~ relación (Rz), que tendrá como atributos los que participan en lat.1cpe~dencla funcional y como dependencia la elegida. A su vez se crea una nuevardacló.n temporal para poder continuar con la descomposición (R2'). que mantendrálos atributos de R¡' menos los atributos implicados en R2 y las dependencias de RI'menos las de R2• Estas relaciones aparecen gráficamente en la figura 3.7 .

La relación R2 es n1uy parecida a R lo Y por tanto el cálculo de sus claves y de lalonna normal en la que se encuentra son similares. De esta forma:

Paso3: Desconiposicián de R l'

Figura 3.6. Primer nivel del árbol de descomposicion

elave !I ·"II·r • (.'od·lIl. a. 1>1I~'1/

0'1.1\0' \

SFN

AT:::; (Cod-L, Atr-L, Cod-M. Atr-M. a, b)DEP = (Cod-L -7 Atr-L, Cod-M -7 Atr-M, Cod-L ~-7 b.

Cod-L, Cod-M -7 -7 a}

----- clave. ¡Cod-L, Cod-M, a. 1>1- IFN

AT = {Cod-L, Atr-L} -DEP = {Cod-L -7 Atr-L}

C"el·L 1

RI' AT = {Cod-L. Cod-M, Atr-M, a, h}DEP = [Cod-M ~ Atr-M, Cod-L ~~ b.

Cod-L, Cod-M -7 ~ a)

R

•De esta forma, y resumiendo todos los cálculos anteriores, el primer nivel delárbol de descomposición se representa gráficamente en la figura 3.6.

• IFN: Sí. al tratarse de una relación

• 2FN: No. ya que aún existe un atributo no principal. Atr-M, que dependeparcialmente de la clave (sólo depende de Cod-M).

. . ,cnnu nuacron:El cálculo de la forma normal en la que se encuentra la relación se detalla a

CAPiTULO ~: NORMALIZACiÓN DE RELACIONES JJl• K·\ \1,\

•••••

• Clavctlc¡') = Clavcík.) = {Cod-L. Cod-M, a. [J}

Con todo esto se puede concluir que:

IFN: Sí, al tratarse de una relación

2FN: Sí, ya que el único atributo no principal (Atr-L¡ que existe en R I dependefuncionalmente dc forma completa respecto de la clave, ya que la clave e,I.1compuesta por un único atributo (Cod-Li.

3FN: Sí, ya que no existe ningún atributo no principal que dependetransitivamentc de alguna clave. ya que 5610 existe una dependencia en la relación

FNBC: Sí, ya que todo determinante (o implicante) es clave candidata. puesto queCod-L es el único determinante de RI y se trata de la única clave de la relación.

4FN: Sí, ya que no existen dependencias multivaluadas en R¡.

5FN: Sí, ya que no existen dependencias en combinación en R¡.

Por otro lado, la clave de RI', es la misma que la de R, donde ahora sólo haesaparecido una de las dependencias funcionales: se sabe que Cod-M, Cod-L, a Y,".0 se encuentran implicados por ningún otro atributo de la relación, por lo que tendránlue formar parte de cualquier clave candidata. También se sabe que (Cod-M)+ = ~II'

.1, por lo que el conjunto (Cod-M. Cad-L. a, b) implica a todos los atributos de RI ,yior lo tanto es clave candidata.

. . ,ntmuacion:El cálculo de la forma normal en la que se encuentra la relación se detalla :1

La clave dc la relación RI es Cod-L. ya que tCod-L)" :::;ATRI, Y por lo tanto c,a supcrclave, y es mínima, por lo tanto se trata de una clave candidata.

A continuación se calcula la forma normal en la que se encuentra la relación R .ra ello, primero se hallan las claves candidatas:

Figura 3.5. Descomposicíán de R

AT = (Cod-L, Cod-M, Atr-M. a, b}DEP = {Cod-M -7 Atr-M. Cod-L -7 -7 b.Cod-L, Cod-M -7 -7 a}

AT = (Cod-L, Atr-L]DEP = {Cod-L -7 Atr-L}

1>1SEÑO DE RAS ES DE OATOS' .!:PR~O::!!B:!.!lJ:t'~.M!!A~Sc.!R~E~Sl~JE!2!L~Tc!:O~S ---,-,·).!:.k::...' !!!.:.M'

Page 173: Diseño de Bases de Datos - Problemas Resueltos

Figura 3.9. Descomposicián de R2

AT = {Cod-L, Cod-M, a}DEP = {Cod-L, Cod-M ~-7 a}

AT = {Cod-L, b}DEP= {Cod-L -7~ h)

, La clave primaria de la relación R;' es (Cod-L. Cod-M, a). ya que todos ellos sonIndependientes.

.La relación R.I sí se encuentra en 4FN, ya que se cumple que la única dependenciamultlva.luada d~ la re!ac~ón viene determinada por la clave. teniendo en cuenta que b,e ~ultl?:termlna a SI misma (b -? b de forma trivial y por el axioma de Armstrong dereplicación b -?7 b). También se encuentra en 5FN, ya que no existen dependenciasen combinación.

Figura 3,8. Arbol de descomposicián parcial

elnve [Cod-L, COO-M.9. h]FNUC

AT = {Cad-L. Cod-M, a, b}DEP = [Cod-L -7~ b, {Cod-L, Cod-M] ~-7 a}

clave: f <':00-;\1)SFN

AT = {Cod-M, Atr-M}DEP = {Cod-M -7 Atr-M}

clave: {Cod-L, Cod-M. a. bJIFN

clave: fC~od:;-:-:;-L:;-}-------¡::=:_------:; '------------,5FN AT = {COO-L,Cod-M, Atr-M, a. b}

R J ' DEP = {COO-M ~ Atr-M, Cod-L ~ -7 b,Cod-L, COO-M -7 ~ a}

AT = {COO-L.Atr-L}DEP = {COO-L -7 Atr-L}

AT = {Cod-L, Atr-L, COO-M. Atr-M, a, b}DEP = [Cod-L -7 Atr-L, COO-M ~ Atr-M, Cod-L ~~ b,

Cod-L, Cod-M -7 ~ a}

clave 1<'00-1.. roo-t.!. A. blI~·•

R

1•

CAPITULO 3: NORMALIZACiÓN OE REI.ACIONES 335

•••••••.•••••••••-.

El tratamiento de las dependencias multivaluadas en el algoritmo decomposición es similar al de las dependencia s funcionales. Se intenta descomponernero agrupando las dependencias con el mismo implicante y después cligientlllpo a grupo hasta que no se puedan descomponer má:s sin pérdida de dependencia~.

En la relación R2' se puede elegir como primera opción, por ejemplo. lasendencia multivaluada Cod-L -? -? b, de forma que dan lugar a dos nueva,aciones, la relación R~. con los atributos de la dependencia elegida, y la relación, que contiene el resto de los atributos, que todavía queda por descomponer (ticma similar a apartados anteriores). Gráficamente. estas dos nuevas relaciones seestran en la figura 3.9.

La clave de la relación R1es {Cad-L, b}, ya que tanto Cod-L corno b son atribulU'iepcndientes en la relación

'04: Descomposicián de R: .

El árbol de descomposición hallado hasta el momento aparece en la figura 3.8.

4FN: No. ya que existen dependencias multivaluadas no determinadas por clave,candidatas, por ejemplo b está determinado por el atribulo Cod-L. no por toda 1:1clave {Cad-L. Cod-M. tI. b}.

Por otro lado, R2' sólo posee dependencias muuivaluadas por lo que la formanal en la que se encuentra ha de ser al menos en la FNBC. A continuación se'prueba si se cumplen la cuarta y quinta forma normal:

ClaveíRi") = Clave(R 1') = Clave(R) = {Cad-L. Cod-M, a, b}

El cálculo de la clave de la relación R2' es el siguiente: como ocurría en la:ión R,·. al no estar implicados funcionalmente Cod-L, Cod-M, a y b por ningúnluto, han dc formar parte de toda clave candidata, y. por lo tanto:

Figura 3.7. Desromposícián de R I

AT = {Cod-L. COO-M. a, b}DEP = {Cod-L -7~ b. {COO-L.Cod-M} -7~ a}

AT = (Cod-M, Atr-M]DEP = {Cod-M -7 Atr-M}

DISEÑO DE BASES DE DATOS' PROBLEM/\S RESUELTOS

•••••-.•...•••-•••.••.

Page 174: Diseño de Bases de Datos - Problemas Resueltos

•••• ~.:e.:.ete,•...........••••••~- ••••-

• R,(Cod-L. Alr-Ll, (Cod-L -) Atr-L»).

• R2({Cod-M, Atr-M}, (Cod-M -) Atr-M] ).

, Se van a con~truir nuevas relaciones con los grupos de dependencias funcionalesdel apaltado nntenor:

ctavc.f Cod-L, Cod·1'o1.alSFN

AT = [Cod-L, Atr-L, Cod-M, Atr-M, a, b}DEP = [Cod-L ~ Atr-L, Cod-M ~ Atr-M, Cod-L ~~ b,

Cod-L, Cod-M ~ ~ a}

»> ctave. 1('od.I., (,od·I\I, a. b)I~N

AT = {Cod-L. Atr-L}DEP = {Cod-L ~ Atr-L}

ICod·1.1AT = {Cod-L, Cod-M, Atr-M, a. b}

RI' DEP = {Cod-M ~ Atr-M, Cod-L ~~ b,Cod-L, Cod-M ~ ~ a}

clave: ICod·L, COO·1'o1.11. bll"~

AT = {COd-l\1, Atr-M}DEP = (Cod-M ~ Atr-M} •

1 Cod-lIll

R.z' AT = {Cod-L, Cod-M. a, b}DEP = [Cod-L ~-) b, {Cod-L, Cod-M] -)-) a}

-: "'"VI'.It'oo-l.. Cod-M, a, h]FNIIC

AT = [Cod-L. b}DEP = fCod-L ~~ h l

ICod-L. bl

R3' AT = {Cod-L. Cod-M. a}DEP = {Cod-L, Cad-M ~~ a}

.

5f'N\.1:1\',,'

R

Paso 2: Agrupar las depe1ldencias [uncionales que tengan el mismo impiicante. IIlIi,.claves equivalentes y eliminar dependencias transitivas

En este caso no existen dos dependencias funcionales con el InisI110 i1npliclllll\'por lo que no se realiza ninguna agrupación. Tampoco existen claves equi valcntc- 111

dependencias transitivas.

Cod-L, Cod-M ~ ~ a}

Cod-L~~b,

Cod-M ~ A/r-M.

Cod-L ~ A/r-L.

DEP'" = {

"aso J: Recubrimiento 1IIIIIilll(// (calculado anteriormente)

Al igual que se hizo con el proceso de análisis, se describen paso a paso 111'íetalles del algoritmo:

ormalización por síntesis

El problema también se puede resolver mediante el proceso ~e síntesis, pero. ~(lornpletarncnte, ya que el algoritmo de síntesis solamente garantl~a que la relaclo.nueda estar en FNBC. Por lo tanto, se realiza el proceso de síntesis hasta conseguirue todas las relaciones obtenidas se encuentren al menos en FNBC. Por último setiliza el algoritmo de análisis para descomponer las relaciones que aún no sencuentran en el nivel de normalización deseado.

El proceso de dcscornposición se podría haber comenzado en :stc cas~ conialquiera de las dependencias (incluso las multivaluadas). ya que DO eXISf~n atn.but?,rplicados que participasen en otras dependencias, Y por lo tanto no existe nmgunesgo de pérdidas de dependencias en el proceso de análisis.

El árbol de descomposición final se muestra gráficamente en la figura 3.10.

Esta relación se encuentra también a su vez en 5FN, ya que se encuentra en 4FNr el mismo motivo que R, y por lo tanto, también en 5FN. Como ya se ha llegado allel de descomposición pedido en el enunciado (yen este caso el máximo al que sedría llegar). se termina el proceso de descomposición. Se hace notar que, en C\IC

so. en el proceso de análisis. no se han perdido dependencias.

Figura 3.¡O.Árbol de descomposicián

Paso 3: Construir relaciones

CAPiTULO 3: NORMALIZACiÓN DE RELACIONES 337•• KA '"''DISEÑO DE BASES DE 0/\'1 OS PROBLEMAS RESUELTOS

Page 175: Diseño de Bases de Datos - Problemas Resueltos

UEPENDENCIAS FUNCIONALES

El .J primer paso es realizar el cálculo de las dependencias funci l (DF) .e las relaci d l fj ... . lona es a partir. . clones e a rgura ..>,11. En este apartado se detalla el ' ,nu'queda de las dependencias funcionales a partir de relaciones. procedimiento de

E~ la relación A se tiene como clave primana el atributo e d:lnn1ana determina funcionalmente al resto de los atributos de la ~el-:-~:óToda clave,HilO. CodJ\ determina funcionaln1ente a Atr .A, Atr-B y C'o;'_D, 1 dCI n, y pOI' lo

Lo mismo ocurre con las relaciones D E F G H'Jua relación también está ' . , . . donde la clave primaria deu " ' s a compuesta por un único atrib t dn'lonaJmente a los atributos no ri ' l . u o que etcrrmna

p ncipa es de la misma. y con las relaciones C. 1. J

Discusión del enunciado

Figura 3.1 l. Esqueffla relacional

- "D ('od ° Atr_D ...• ~ ...... ..... ,E Cod E Alr_E d * Cod

F Cod F f\tr_F e Cod_~ G Cod G Atr G ...

:::::110....

~H I Cod 1) I Atr_II II Cod H Cod G CodD

J C9º--P Cod G Cod 11

K [Q_d_lL Cod 11 Cod_GI

uaulI

• A Cod--. A Alr_A Atr B Cod_Datributo_" -"_,, rnulnval._ ._0 _"

B C:od A .-a _" b-~

e Cod ° Cod E e clave

.»:' ., alternativa

~,.....

......

_G Cod F i,,¡¡¡

E Cod_G

CAPllLfLO 1 NORMAl IZACIÓ~ DE RhLACIONF.S .llCJ

-••••••••••••••••••.•)•.•••••

Indicar qué dependencias funcionales existen en el esquema relacional de 1.1gura 3.11, y cuáles son los elementos semánticos del mismo que no se puedenecogcr mediante dependencias funcionales.

Suponiendo que todos los atributos y dependencias del esquema constituyen l.,slacién universal, hallar un recubrimiento rrunimal y las claves de la misma.

.nunciado

ROBLEMA2

Para finalizar, se observa que se obtiene el mismo esquema de relacioneediante el proceso de síntesis y el de análisis, sin pérdida de información ni d,'ependencias.

R)({C:od-L. b}, [Cod-L ~~ b] ).

R4({Cod-L. Cad-M. a), {Cod-L, Cod-M ~~ aj),

Las relaciones obtenidas en este último paso son las siguientes:

En este paso se descomponen mediante análisis las relaciones que todavía no ~eicuentran en la forma normal deseada (Raux). La descomposición mediante análisis: Raux ya se real izó en el apartado anterior, por lo que se omite en este apartado,

ISO 4: Descomposicián de Raux mediante análisis

Por lo tanto, se sabe que tanto R1 como Rz son relaciones que se encuentran en~, y la relación Raux se encuentra en FNBC.

Se puede observar que las relaciones R 1 Y R~ obtenidas mediante el proceso d~uesis son las mismas que se obtuvieron con el proceso de análisis, y que la relación.xiliar (Raux) es equivalente a la relación temporal R1' del proceso de análisis,

Rauxt {Cod-L, Cod-M, a, b}, {Co<J.L ~ ~ b: Cod-L, Cod-M ~ ~ aj),

Por otro lado. se crea una nueva relación con lodos los atributos que no soniplicados ni implicantcs, de forma que se encuentren también en la misma relación;¡ atributos clave de la relación universal:

llR\·~1'¡ DISEÑO DE BASES DE DATOS; PROBLEMAS RESl:ELTOS

~•••••••••••••••••••

Page 176: Diseño de Bases de Datos - Problemas Resueltos

•_•• '•••• .J.).~•• J.J ..... _)••• ).~.~.'.~..-.

- Han d~ ser pl~nas: es decir. que no exista un subconjunto del implicante quedetermine al implicado, En las dependencias anteriores (en general, X -7 Y)todas las dependencias son plenas, ya que no existe en ellas ningún atributo(At) Lalque (X-At)-7Y

Han ele cumplir q~e el implicado sea un único atributo, En las dependenciasdel apartado anterior, por comodidad se han resumido varias dependencias enuna, de forma que, formalmente en la definición de recubrimientoI~rcdundallte, habría que desarrollar cada una de las dependencias. Un~~cnlPlo.es la primera dependencia (Cod_A 7Atr _A. Atr_B. Cod_D), en este,I~O existen tres dependencias resumidas en una. Si se desarrolla esta

, Tod~s sus dependencias sean elementales, para ello se han de cumplir las'Igulentes condiciones:

En este apartado se halla el conjunto de dependencias mínimo O irredundante deIfr~todas las dependencias del conjunto DEP. Para que un conjunto de dependencias.1 nummo ha de cumplir que:

IlECURHIMII<:Nl'O IRREDUNDANT"~ (O MINIMAI,)

DEP = {

11) d -7 Cod_E

le caso ti l" 1:'l. , di . . toda" las demás. ya que en es . "Por último la relación Bes rsurua a denci Itivaluada' ("" \, t existe una depen encia mu .atributo luultivaluado por tan o, I to esta restricción senlántica n,· -,multidelennina a el (Cad_A 77 a) y po~ o tan • .

d mediante dependencias funcionales.pue e recoger.' T DE?) l'lll'llll '.•

de co ncluir que la relación universal, R(A ,Por lo tanto, se pue .a partir del esquema relacional de la figura 3.11, se define como. .

O C d E Atr E. C'od_'·. 1I1 !AT = (C:od...A, Alr_A, Atl'_FJ, Cod.D. Atl'_, a _' _Cne/_G. Atr_G, Cod.H, Atr.H. o, e, d, e}

10) coa:o. Cod_H 7 Cocl_G. . (C d E) y una alternall\.'

Además, en la relaci~1\ E. se tiene u~a. cI:vce:n:~~:t~s d~S tipos de clave. ,lInl>.•d) En teoría dc la normalización no se disting , 1 de la rcl.u 11'11

. I bién podna actuar como caveion claves candidatas. por lo qu~ ( os d 1" De esta forma también se pII,·.1. d I t de los atnbutos e a misma.Jeternunan o a res o . . d E or ser clave alternativa::Iecir que d determina funCionalmente a Co _ p .

2) Cad O 7Alr_O (5) coa.e 7Alr_G

3) Cad_E 7Air-E. Cad_G, Coa.F. d (6) Cod_H 7Atr_H

4) ce.r 7Alr_F, Cod_E, coa.o.e (7) Cod_E. Cod_D 7 e

5) Cod_G 7Alr_G (8) Cod H, Cod G -7 Cod O_ _ _6) Cod_H -7 Atr_H (9) Cad D. Cad G -7 Cod H_ _ _

•7) Cad_E, ce» 7 e (10) Cod O. Cod H -7 ('od G_ _ _

8) CodH, Cad_{, -7 C'od_D (II,ti 7 Cod_E

1.) csi:». css.c 7 Cod_11 J

(4) Cad_f' 7Alr_F, Cad_E. Cod_G. t!

(3) Cod E 7 Atr E. Cod G. Cod F el- - - - .

(2) Cod_D 7 Alr _D

(1) Cad_A 7Atr_A, Alr_B. CodD

_________ ~CA~p!..!t.!.r~lIL~O~.lNORMAl.IZACIÓN DI-.RELACIONES .141• RA f..tA

J) Cod_A 7Atr _A. AII_B. Cod O

, d d atributos y también determinan(, donde la clave primaria esta forma a por os .cionalmcnte al resto.

. las .entes dependencias funcionales:Por lo tanto. hasta el memento se llenen as sigut .

DISEÑO DE BJ\SES I)!- DATOS I'KOOLr.MAS KESUkL TOS

Page 177: Diseño de Bases de Datos - Problemas Resueltos

. El Cál~~lo del conjunto de claves candidatas de DEP'" se basa en el cálculo del~IerretranSltl vo de los determinantes,

CLAVES CANDIDATAS

)

(9) Cod_D. css.c -7 Cod_H

(10) ('od_l). Cod_H -7 Cod_G

(1 J) d -7 ('od_E

(H) C·od_H. Cod G -7 Cod D- -(7) CodE, Cod.D -7 e

(6) ('od H -7 Al/' H_ _

(3) e-ce -7 Alr _E. coa;r.el(4) Cad_l: -7 Afr_F. Cad_E. Cod_C. e

(5) Cod C -7 Atr G_ -

(1) CodA -7Alr _A. Alr _B, Cod D

(2) Cod D -7 Afr D_ -

DEprn = (

. Por lo tanto, se puede concluir que el conjunto de dependencias siguiente es unconjunto de dependencias mínimo (DEP"'):

- (4): C~_F -7 Atr_F. Cod_E. Cod_G. e. luego (Cod_EroE.I'= {Cod E.Atr_E. CodF, d. Atr_F, Cod_G. e} _

- (5): C'od_G -7 Atr_G. luego (Cod_c)'I)"P= {Cod E Atr E Cod F dAtr_P, Cod_G, e. Atr_G) _. _. _,.

En este caso. corno Cod_C se determina a partir de DEP·. la dependencia síes redundante.

CAPtrLlLO 1 NORMALIZACiÓN DE RELACIONES 1~3

....•.•.•.•.•••••••.•-•••.•..•

(Cod_E)'IlH'= {Cod_E. Atr_E, d, Cod_F. Alr_F. Cod_G. e, Alr_G}

- (3): Cod_E -7 Atr-E. Cod_F. d. luego (Cod_E)'DI'p'= {Cod_E. Atr_L..Cod_F, d}

Se halla (Cod_A)+"EP'= {Cod_A. Atr_B, Cod_D, Atr_D}

- Dependencia I (1): Cod_A -7 Atr_B, Cod_D, luego (Cod_A)·Il~.r·={Cod_A. Alr_B. Cod_D}

- (2): Cod_D -7 Atr_D, luego (Cod_Arl)~.I"= {Cod_A_ Atr.B. Cod_D.Atr_D}

Como no se determina Atr _A a partir de DEP·. la dependencia no e\redundante.

No se explica detalladamente todo el cálculo para ver si las dependencias sonirredundantes O no, debido a que es repetitivo, pero sí se detalla CÓl110se detectala única dependencia redundante del conjunto DEP:

La dependencia ('od_E -7 Cod_G es una dependencia redundante:

El cálculo de redundancia de la primera dependencia (Cod_A -7 Alr _A) se detallaa continuación:

Que no existan dependencias redundantes:

Una dependencia (dp) es redundante cuando la dependencia pertenece al cierre deDEP' = DEP-dp.

Para hallar si alguna de las dependencias de DEP es redundante. hay que:comprobar para cada uno de los elementos de DEP si se puede deducir a partir deDEP·.

Que no ex istan atributos extraños:

Se comprueba que en ninguna dependencia de DEP existen atributos extraños.Con10 se indicó en el problema anterior, un atributo A es extraño si dada ladependencia X -7 y de DEP, la dependencia (X -A) -7 y se encuentra en DEP-.

No se detalla el cálculo de atributos extraños en este problema. ya que no existeninguno, pero en problemas posteriores se puede observar este cálculo.

dependencia. resultan las siguientes dependencias funcionales(Cod_A -7Alr_A: C(ltI_A -7Alr_B: ('od_A -7('od_D). Para continuar con elejercicio. por comodidad, se sigue utilizando la versión resumida de lasdependencias funcionales.

Ilan de ser no triviales: el>decir. que no exista ninguna dependencia donde unimpticantc se determine a sf mismo, Esta condición también se cumple en lasdependencias anteriores.

DISEÑO DI. IlASESDI' DATOS: PROBLEMAS RESIIEl. ro;!_s ....:"K\ 'LI

t ••••••••••••••••••••

Page 178: Diseño de Bases de Datos - Problemas Resueltos

•••••••••••••.•••'•.••••

. 1I¡j~larel cierre transiti vo del descri tor {X . .,'4U: 101'1l1anorrnal se encuentra R dP, .n. determinar las claves de R, indicar\lIt indicando lus claves primarias~c ~a~csonl,~o.nerlaen un conjunto de relaciones en

. re aClones resultantes .

)

(7) 07 W

(6) W -7 O

(5)X 7R

(4)R -;)X

(3) X. Y.Z -;) \/

(2)Z 7(J

(1) X. y 7 Z

AT = {O, I? U. \/. W. X. y. 2} y

I)EP = (

o di' .él o e sigurente esquema de relación R (AT DEP) d. . , onde:

•Enunciado

PI{OBLEMA 3

•~~~~~~. ~~nciPalcs (forman parte de alguna clave candidata): {('vd_E:;, Cod_F.

• Atributos no principales (no fo .Atr B Cod O A O rman parte de nmguna clave candidata): {Atr A

_. _. tr_ .AtrE, Atr_F. Cod_O. Alr_G. Cod H. Atr H } _,- _. C, e

Pura tinalizar. se indican cuáles SOn l· b '.la relación R: . os atn UIOS prrnclpales y no principales de

En el desarrollo completo de este problenla se d b ' . .comprobar que no existe ninguna otra eh di ~ e erra segul~ el proceso paraejercicio al leClor esta comprobación. ave can idata para esta relación. Se deja como

CAPiTULO .1'NOR.\1ALI2ACIÓN DE RELACIONES 345

".. ""~' •••"••••'""•••••

Por lo tanto se puede concluir que el conjunto CCl = (Cod_A. Cod_E. ti) e, llll.'ipcrclave de la relación. Corno además no existe ningún subconjunto de ('C I qtl,'npliquc a todos los atributos de la relación, se puede concluir que es clave candld.I!.'

Como Cod E d y Cod F son equivalentes, también 10$ conjuntos {(IIII \'od.F. (l) y {Cod~. d. ti} se;;. claves candidatas, y en este caso. estas tres cla\ ~., ,,'11ISúnicas de la relación.

(Cod_A. Cod_/:,j+oH>= (Cod__Atol:p U (Cod_E)'oEP U (cierre de l.••combinaciones de los elementos de (Cod_A)+IJr.I'Y (Cod_E)- DEP).como plll 1.dependencia (7) (CodE. Cod_D 7 e) se implica al atributo c. y con l.,dependencia (9) (CodD, Cod_G 7 Cod.Hi se implica a Cod.H, (Co¡[ \Cod_E>,OEP implica a todos los atributos de la relación menos al atributo 11

Hasta el momento no exrstc ningún determinante que implique funcionalmcruc .\dos los atributos de la relación (AT). de modo que se realiza el cálculo del cierre \1.-njuntos de atributos. normalmente eligiendo aquellos cuya cardinalidad dcl cierre \"ayor (Cod_A y Cod_E):

(Cod_A, Cod_E)' Dl:.P= {Atr_A. Atr_B. Cod_D. Atr_D. Atr_E. d, Cod_F. Atr ICod_G. e. Atr_G. Cod j-í, Atr_H. c}. ya que:

(Cod_A)~ UIoI-= {Cod_A. Atr_A. Atr_B. Cod_D, AtT_D}

Cod_D se encuentra implicado funcionalmente por Cod_A. luego no se calcula '11

cierre, al estar implícito en el cálculo de (Cod_A)+I)r.p.

(Cod_E)+I)EI"=:{Cod_E, Atr_E. d. Cod_F. Atr_F. Cod_O, e, Alr_O}

CodF y d tienen el mismo cierre que Cod_E, y además se encuentran implicado­por él, luego no se calcula su cierre. A Cod_G también se encuentra implicadofuncionalmente por C'od_/::, luego tampoco se calcula su cierre.

(Cod_H)+I)I'P'=: {Cod_H. Atr_H}

Se calcula el cierre de cada uno de los atributos individuales de la relacumiversal:

Por otro lado también se tiene que C'od_E 7 d; d 7 Cod_E; Cod.E 7 Cod f.d_F 7 CodE, por lo que Cod_E. Cod_F y d son atributos equivalentes y su cierrensitivo será el rrusrno.

En primer lugar. el atributo a es un atributo multivaluado y además no se:uentra determinado funcionalmente por ningún conjunto de atributos de la relación.por ello que ha de formar parte de todas las claves candidatas de R.

O)KA \1.,DISEÑO DE BASES DE DATOS: PROBLEMAS l{¡'_SUELTOS

Page 179: Diseño de Bases de Datos - Problemas Resueltos

1~f1este apa t d .rJl'\I, , r a () se realiza la descofllposici6n de R ITIediante el algoritnlo d• rllllle', ya que en el enunciado sólo se pide llegar a FNBC y este algoritmo I~

hl'S' ,roo ,-OMP()SICfÓN DE R

• I FN' R sí se en • Ir . c.Irest~icc" '. h cuen da en pnmer~, rorrna normal al no existir grupos repetitivos

Ion In erente e toda relación).

• 2FN: R no se encuentra en 2FN ya . .depende f . al . ~ue existen atributos no principales queno . ~ uncion mente de un subconjunto de la clave. Por ejemplo el atributo

pnnClpal V depende funcionalmente de Z, pero no de la clave completa de R.

., Por tanto. se puede concluir que I laci , R"rlllal( I PN). a re acron se encuentra en primera forma

", .I~¡¡~acalcular en qué forma normal se encuentra la relación R. se comprueban las\ tn¡;c.,ones que cumple R. comenzando por el nivel de normalizae¡·'tnctlvo: Ion menos

IORMA NORMAL DE R

De igual forma, los atributos R y X son equivalentes, por lo que se u di'que los conjuntos CC3 = {R Y W} CC _ . .p e e conc urrcandidata);. " y 4 - {R, y, O} también son claves

• Por ~tro Wes equivalentc a 0, por lo que el conjunto eC2 = (X y O}· Jcandidata. ,. es otra cave

• En el apartado anterior ya se ha calculado el cierre transitivo de XY (Xr = (X YZ, V, V, R}). pero los atributos W y O se encuentran l'nclul'dos el' ' ,I . I . . n e conjuntouego se me uye, por ejemplo, W, ya que W ~ O. Por lo tan lo, XYW = (X, Y, z:u. V. R, ~V, O ) = AT. de forma que el conjunto ce I = (X Y W}supe~clave. Corno ningún subconjunto de ce I implica a todo AT 'Cel es lunacandidata. ,. es cave

•• w· ={W. O}

O' ={W, O}.los atributos W y O también son equivalentes.'

· . Hasta el mornemo, no .existe n~ngún atributo simple que determine a todos losatributos ~e R. lueg.o. se realizan conjuntos de atributos que puedan determinarlos .halla su cierre transitívo: y se

• V· ={V}

CAPÍTUl.O 3 NORMALII.¡\CIC'¡N DE RELACIONbS 347

••••••••••••••••••'-.~.~••\,......

• Z+={Z.U}

• u+ ={U}

Y+={Y)••

X+={X.R}R+={X, R). los atributos X y R son equivalentes.

En primer lugar, se halla el cierre transitivo de todos los atributos de R:

El algoritmo de cálculo de las claves candidatas de R también se ?a~a en ,,1cálculo del cierre transitivo de descriptores. Se detalla el procedimiento .•continuación:

• XY'={X,Y,Z.U.V.R}

CLAVES CANDIDATAS DE R

No existe ninguna otra dependencia de DEP que modifique xr'. por lo tanto, ,,'

concluye que:

• xv' = {X, Y}

• Dependencia I (1): X.y -7 Z. luego xy+= {X, Y, Z}

• (2): Z -7 U. luego XV' = {X. Y. Z, U}

• (3): X,Y.Z -7 V. luego XV' = (X. Y. Z. U. V)

• (5): X -7 R. luego XY·= {X, Y, Z. U. V, R}

El cálculo del cierre transitivo de un descriptor se basa en los axiomas deumstrong. y devuelve como resultado el conjunto de los atributo~ de la rela~ión queon implicados por el descriptor directa o indirectamente (mediante el axiorna deransitividad).

En este como en los demás problemas de normalización, se utilizandistintamen;e dos notaciones para los descriptores. Por poner un ejemplo, para que.e vea con más claridad, el descriptor formado por los atributos X y Y se puede denotaroor {X,Y} o simplemente XY.

Se muestra a continuación el resultado de cada iteración del cálculo del cierre.ransitivo de XY según las dependencias de DEP:

:lERRE TRANSITIVO DE XY

tiscursión del enunciado

~ DISEÑO DE BASES DI! DATOS: PROBLEMAS RESUELTOS

•••' ."•••••'••' .'••••••••

Page 180: Diseño de Bases de Datos - Problemas Resueltos

.. ._••••••••.•••••••

R6 ({X. Y. W}, {})

• Por últill10 se constr I . ,• t uye una re acion con los atributos clave de R.

- R3 ({Z. V), {Z-;>V} )

R4({W,O}. {W70:07W})

- R5({X, R}, {X~R: R~X})

_RI ({X. Y. Z), {X. Y7Z})

_ R2 ({Z. U}. {Z-;>{/})

En este caso n(~ existen dos dependencias que tengan el mismo implicanreluego no se realizarán grupos de dependencias con el 111isI110implicanre. '

Por otro lado sí que existen atributos equivalentes:

. Wes equivalente a O (W=O): luego se agrupan las dependencias {W-;>O,O-;>W} .

• X=R: donde también se agrupan las dependencias (X-;>R. R-;>X)

• Construir relacione-, con los grupos de dcpendencías.

no se puede deducir a partir del resto de las dependencias de DEP l In (DEP' _DEP¡m_dp). _

Por ejemplo, para la primera de las dependencias (X. y -;>Z):. Se halla (XY)·DH'·= {X, Y. R}:

Según la dependencia 5 de DEP' eX -;> R). eI atributo X determinafuncionalmente al atributo R luego (XY)'lllP= {X. Y. R}

. Como el atributo Z no se derermina a partir de DEP' la de d .redundante. . pcn encia no es

En este ejercicio no se desarrolla conlpletamente el cálculo de lasd~pendenclas redundantes. sino que se concluye afirmando que no existeninguna dependencía redundante en DEP. luego DEpm = DEPI'"

• Agr.upar las dependencias que tengan el' . lirrusmo rrnp rcante, uniendo las clavesCCJllI valentes.

CAPiTULO J' N(JRMALIZACION DE REI.ACIONES 349

~ '"..... '••••••• ~:.e,-..

Por último se comprueba que no existen atributos redundantes. Para hall.11 ,1

alguna de las dependencias (dp) de DEP Ini es redundante. se comprul'h.1 <1""

Por otro lado. también se ha de comprobar que no existen atributos extral1'"Se dice que un atributo A perteneciente a X es extraño en la dependl'llll•1X~Y si la dependencia (X-A)~Y se encuentra en DEp·. Si se rcnli/.r ,,1cálculo en este problema, se puede comprobar que en ningún elcnl~I."11,1.'1conjunto DEP 1'" existen atributos extraños. Se deja esta commprob<ll"11I111'.".1el lector.

}

(7) O -;> w(6) w -;> O

(5)X -;> R

(4) R -;> X

(2) Z -;> U

(3) Z -;> V

(1) X. y -;> 2

DEP¡'" = {

Para ello se ha de comprobar que todas las relaciones son elementales (con unúnico atributo implicado. donde el implicado no depende de ningúnsubconjunto del determinante). En la dependencia X, Y.Z -;>V no se cumple lasegunda condición de dependencia elemental. ya que X, y -;>2. de forma que \depende de Z o de {X. Y}. luego se puede concluir que Z -;>V.

Debido a esto, el conjunto de dependencias mínimo hasta el momento es elsiguiente:

Hallar el conjunto de dependencias mínimo de DEP (DEP"').

El algoritmo de síntesis parte del conjunto de dependencias de la relación REP) y realiza los siguientes pasos:

De la misma fonna se puede realizar la descomposición mediante el algoritmo deilisis, proporcionando una solución igualmente correcta. Se deja corno ejercicioa el lector la descomposición de R mediante análisis.

DISE:'IO DE BASES DE DATOS. PROBLEMAS RtiSUI;LTOS

Page 181: Diseño de Bases de Datos - Problemas Resueltos

Cada asignatura (A) tiene un único profesor como responsable, si bien un mismoprOfesor puede ser responsable de nlás de una asignatura. Las asignaturas se di videoen uno o más grupos (G). Todo alumno (AL). en cada asignatura pertenece a un únicogrupo.

Un profesor se identifica por un código de profesor (CP) y todos los profesoreslienen nonlbrcs (NP) distintos. Un profesor puede tener varios títulos (T) e interveniren distintos proyectos (P). no exigiéndose ningún título dcterminado para intervenir enun cierto proyecto.

Se desea diseñar una base de datos en el modelo relacional para una universidad.teniendo los siguientes supuestos semánticos:

Supuesto

Aplique el proceso descrito anteriormente para determinar el nivel de normalizacióndel siguiente supuesto, así como para obtener un esquema relacional en la forma normalque considere más conveniente.

Describir de forma detallada (prefcrlblemente mediante un diagrama), todos lospasos que permitan deterrrunar el nivel de normalización de un esquema de relación yavanzar lo máximo posible en su normatuacíon mediante el proceso de análisis.

Enunciado

PROBLEMA 4

De esta forma se puede concluir que se hu llegado a una descornposición de larelación inicial (R). en seis relaciones (R 1, .... R6) que se encuentran en 5FN sinpérdidas de dcpendencias funcionales ni de información.

Atributos principalee, {X, Y, W}; Atributos no principales: {}.Se encuentra en 5FN.

Claves: {X, Y, W}.

• R6({X,Y,W}.{}J:

Claves: {R} Y (X).

Atributos principales: {R, X}; Atributos no principales: {}.

Se encuentra en 5FN (similar a R4).

• R5 ({X, R). (X~R: R~X}):

eAPIl ULO J NORMALIZACiÓN DE RELACIONES .151

•••••••••••••

Se encuentra en 5FN (similar a R3).-

R4 ({W. O). (W-70: O~W}):

Claves: {W} y {Ojo

Atributos principales: {W, O}; Atributos no principales: {}.

Se encuentra en 5FN (similar a R2).

Atributos principales: {Z}; Atributos no principales: {V}.

Clave: {Z}.

RJ ({Z, V), {Z ~V}):

Atributos principales: {Z}; Atributos no principales: {U}.

Se encuentra en 5FN siguiendo el mismo razonamiento que en R I .

Clave: {Z}

R2({Z. U}, (Z~{J}):

Clave: {X, Y}. se halla de forma inmediata.

Atributos principales: {X, Y}; atributos no principales: {Z}.

FN de R I (5FN): Se encuentra en 1FN al no tener grupos repetitivos; en 2FNtambién, ya que todos los atributos no principales dependen de la clave de la

1 . 'n' en 3FN ya que no existen dependencias transitivas: en FNBC alre aClo , • . '1 .cumplirse que todo determinante ~s .clave candl~ata. y•. por .u tllno: se

t 4FN Y 5FN al no cxisur dependencias rnultivaluadas ni enencucn ra en. '.combi nación.

RI ({X, y, Z). (X, Y~Z}):

Para finalizar la resolución del problema falta aún indicar en qué forma nOrlna! se:ncuentran las seis relaciones resultantes de la descomposicién de R (R 1...R6) y cuales.on sus claves candidatas.

[<ORMA NORMAL DE (Rl ...R6)

ISO DISEÑO OL ¡¡"SES DE DATOS: PROHl.EMAS RESlIFLTOS

t ••• ·•••••••••••••••••

Page 182: Diseño de Bases de Datos - Problemas Resueltos

~ •••••••••••••~ ••••Figura 3./2. Dial!.r(lIua de (,011' b "

. pro acton del nivel ele lIorll/{lli-;'lIciól/

NO

,.1':>".~'II:1\1.(;1''''A11""I-NIJhNCFAQIII· NOhS lA 1MPI Ir A!lA POR LA ("I.A VI '

~IRfLAU(Jr-, I.r-.4~"r-.URM·\I.I/!lRMHnlA.'" ¡IcI '~S("()MI'C)Sln tv«

,.I:XIST~ Al (;1'1\ 'lIlT1llt:lI-RMI\¡A\¡I..VI .. "l/O rs t"I • "1 1>1'1 " I{~1AClr'>r-.'

SIRH \(lO!\ ~" rVBl"r-.OK\1AI.IZAR\I~UIA"T ..IlI~~("()MI'()SU'10)'.

NH 100' I'.I~,('\,,It \1 "'.1/ ..\R\111>1,,\ rrIlh!,"( )\1PO\I("IO,

,1 "ISI~ Al (;1''1 \lKIII! r()ro.OI'RI~('(I'o\Ie)I'IIlI'''''NO~T~\'''rrIV\\I~'''1 111~LC'l"'("1 "\1 ni '\I{I'IAC"II,,,,

~I.I In"" I.ro.l""Io.OI{M", 1/"'<\11'1",\" I11)1' ,( '1\11*( I."r "'~

•SIREI ~CI"JN br-. 1FNr-.(JNMM'ZM{MEI)I,\N 11,I)J,,\((l\tJl('~'('t()'

1.)I:TIoRMINAR i.ox A' RlkllTOS P~I.'1t'II'AI.r.S y NOP~I'I(H',\lI,S

\1

DEr~R~II)'.AR 1AS ("LA \ ~sr)~I A R~I.A("IO"

SI

O~ rrk'" ....AR 1 IS 1l~.P' 'j)~'n\S Il ,( IU' ~I'S'11"111\ "'.1 AtO" , Il~ ("(1\1111'<\e IU' ..

'" )

NORM \11/ IR\11OlA'" tI),. \C!JI II'OSI{" 0'

\1R~LAU():o. 1"0NORMALI7~DA

353CAPíTULO J: NORMALIZACiÓN DE RELACIONES•. K"·\IA

Cuando una relación no se encuentra en la forma normal deseada. se pu",hescornponer (mediante las técnicas de análisis o síntesis) en varias con un I1lll'1 dIarmalización més alto (aunque en ocasiones esto puede suponer pérdida- ,loependcncias entre los atributos de la relación).

Para resumir lodo lo anterior de forma esquemática. se presenta en 101111.1 ,1iagrama en la figura 3.12 el proceso de cálculo de la forma normal de cualqllll'I.lación.

La relación se encuentra en 4FN cuando está en 3FN y cumple que las UI1I, .1'

ependencias multivaluadas no triviales vienen determinadas por claves candidata'

Por último, la relación se encuentra en 5FN cuando toda dependencia funciou-i'urltivaluada o de combinación no trivial es consecuencia de las claves candidata-

Se encuentra en 3FN cuando está en 2FN y no existe ningún atributo no princrp.i.ie dependa transitivamerue de alguna clave de la relación.

Se encuentra en FNBC cuando todo determinante es clave candidata de 1..lación.

Una vez que se tiene la relación en IFN, se comprueba si se encuentra en l0'guientcs niveles de normalización. Para ello se necesita saber primero cuáles son \11'

ributos principales y no principales. Por lo tanto, se han de calcular las dependencia­.ncionales, multivaluadas y de combinación existentes entre sus atributos. l"1cubrimiento minirnal (o irredundante) de la relación, las claves y los atrihuu«'incipales y no principales de la misma,

La relación se encontrará en 2FN si se encuentra en l FN y cumple que l·ad.1

ributo no principal tiene dependencia funcional completa respecto de cada una dr 1.1'aves.

Al enfrentarse a un problema en el que se pide hallar el nivel de normalización delaciones. el primer paso. antes de calcular las claves primarias de la relación. c'Improbar que el conjunto de atributos y dependencias está en. al menos, primera.rma normal, es decir. que se trata de una relación. Esto se debe a que una de la'striccioncs inherentes al modelo relacional es que el conjunto de atributos \. .ependencias se encuentre en IFN.

IVEI, DE NORMALIZACiÓN

iscusión del enunciado

Cada profesor depende siempre y únicamente de un departamento (D). As!isrno, toda asignatura está ligada a un único departamento. el del profesorsponsable de la misma.

, DISEÑO DI' B,\SES DE DATOS: I'J{OflLEMAS RESUELTOS

Page 183: Diseño de Bases de Datos - Problemas Resueltos

Por último, i>c.sabe que un profesor pertenece a un único departanlcnto, luego(CP7/J) y toda uSlgnatura pcnenece a un depurtamentn, de forma que (A 7l»:

• ('}'7j)

• A ~ /)

Cada profesor depende siempre v únuameme de un deparTa/liento (D J. As"III1SII!O, toda asignatura está ligada a 1111 único departamenm, el del profesorresponsable de la misma.

• AL,A 7G

Además, todo alumno en una asignatura pertenece a un único grupo. luego. paracada valor. del p~r (AL. A). se tiene un único valor de G, de forma que existe otradependenCia funcional entre estos tres atributos:

• G 7/\

. La.. asignatura .. se di vidcn en grupos, un grupo sólo puede pertenecer a unausignatura. de forma que. para cada valor de grupo existe un único valor de aSignatura.luego exrstc otra dependencia funcional entre asignatura y grupo:

L({,I (/1'.I(II(/llIr(l1 se dividen en /11/1) () 111(;.1 grupo» 10). Todo (lIII'T/no(AL). encada uvtgmuura, pcrteue« e el 1111 lílll('O grupo.

• A 7 C'P

Por Otro lado, para cada asignatura existe un único profesor que se responsabilizade la nusrna, por lo tanto, corno para cada valor de la asignatura existe un único valorpara profesor responsable, existe la dependencia funcional A 7 Cl". También se daqu~ el profesor puede ser responsable de más de una asignatura. de forma que, para unÚIlIC? valor de P no existe un único valor de A, por lo tanto. no existe la dependenciafuncional entre los proyectos y las asignaturas (el' -r-» A):

Cada asignatura (A) tiene 1111 único profesor como responsable. si bien 11/1

IIIÍ~/n()profesor puede ser responsable de más de una asignatura.

• ('P 77 TI jJ

a los. distint?s proyectos en los que interviene el profesor. Corno no tiene ningunarclac.lón el 1l1l.1I0 y el. proyecto para un determinado profesor. se tiene la dependenciarnultivaluada jerárquica CP 77 TI p. donde entre el proyecto y el título no existeninguna dependencia funcional (T -lo> p YP-/-> n:

CAPITUI.O.l: '10RMALIZACIÓ:-¡ DE RELACIONES 355

En este caso, indica que los profesores pueden poseer varios títulos (cOn~Unlllbien definido de valores), luego, en este caso no existe ninguna dependencia funcionalentre Ci' y T. sino que se trata de una dependencia multivaluada. También rnultivalu¡1

Un profesor puede tener varios titulos (TJ e intervenir en distintos proyectos(P J, no exigiéndose ningún titulo determinado para intervenir en 11/1 ciertoproyecto.

• NP7CP

Pero también se indica que no existen dos profesores con el mismo nombre. Porlo tanto, el nombre también determina funcionalmente al código (actuaría como unaclave alternativa en el modelo relacional). De esta forma. también se da ladependencia funcional:

• ep7NP

Esta frase indica que de la entidad profesor se desean guardar los atributos ep yNP. Donde ep identifica al profesor, tratándose de su clave primaria. y por tantodetermina funcionalmente al nombre:

VII profesor se identifica por 1111 cádigo de profesor (CP) v todo: IOlprofesores tienen nombres (NP) distintos.

Se analiza el caso, determinando los atributos y las dependencias funcionales.multivaluadas y de combinación que existen entre los atributos de la relación. Pararealizar un análisis detallado, se introducen referencias al enunciado.

En primer lugar. se parte de una base de datos de la universidad, donde, enprincipio, solamente existe una relación con todos los atributos y dependencias entrelos mismos (relación universal). Para ello. y como se ha visto en ejercicios de otroscapítulos, se analizan los atributos de la relación. Como este capítulo se centra en lanormalización, no se detalla el proceso de análisis de atributos.

Dependencias entre atributos

En el supuesto no existen grupos repetitivos, luego, la relación se encuentra almenos en IFN.

Grupos repetitivos

En este apartado se procede a determinar el nivel de normalización del supuestodel enunciado y se normaliza mediante análisis (o descomposición) hasta la formanormal que se cree más conveniente.

NORMALIZACIÓN DEL SUPUESTO

3~4 DISEÑO DI:.BASES DE DATOS: PROBLEMAS RESuELTOS

~•.•~ •••••_._~••~ •••••

Page 184: Diseño de Bases de Datos - Problemas Resueltos

357

-

(3):A 7 CIJ, luego (A)'¡J!ip'= fA. CP}

(J): C'P 7N/~.luego (Ato!.p·= {A. ('P, NJ~}

(6): cr 7[).luego(A)'I>FP·= (A, CP, NP, D}

-

Por último se cOlnprueba' .DI:P. Se dice qu~ una dependen~iae~~~ten d~pe~dencia.s redundan.les en el conjunto(lFP' :: {DEP _ dp}. es re un ante SI puede derIvarse del conjunto

Por lo tanto, por cada dependenc·· d DEP .rl"to (DEP') No l 13 e , se determina si se puede derivar del. se resue ve completament I . ". 'rCflClitivo.se deja Como e [ercicio ara e e ejercicio, debido a que el cálculo esrcJundantes y por qué lo ~on: p el lector. Solamente se indican las dependencias

Ladependencia A 7 D es una de end .:" r,lrllr del conjunto de dependencias {riEP ~n~~ .;g~~~antc, ya que se puede deducir

• (A)\J!iI"= {A, CP, NP. D}

- AL+-{AL} l atrih- , ya que e atn uto por sf sólo no <Ictennina 11ningún 011'0.

Como el atributo G no se encuentra en el cierre d AL .exUI1 atributo extraño. Para comprobar s' AL atrib e» ,se puede concluir que A no

,les atn UIO extraño se halla el cierre de A:- A ¡ :: {A. ('p, D}, pero no determina a G

Por lo tanto, AL tampoco es un atributo extraño.

I¡"fI('ndellcias redulldantes

Pal:a ver si A es un atributo extraño, se corn rueba ue Aen DEP . Para ello se calcula el cierre de AL: p q L 7 G no se encucntra

~n el conjunto de dependencias. DEP, en la única de endenc' ,cxrsur atributos extraños es en (AL.A 7 G) a . P, ,la do~de podnandctcrminame. ,y que tiene mas de un atributo como

A continuación se com rueb .d • d . p a que no existen atributo, extraños Icpcn encias. Un atributo A es extraño si dada I d d .. en asde d . X ' . • a epcn cncia X 7 y de DEP l'epcn encia ( -A) 7 } se cncuentra en DEP·. . a

P~ra comprobar que la dependencia (X-A) 7 ycumplir que y pertenece al cierre de X-A «(X A).) pertenece a DEP' se ha de

• (lff' .

Atributos extra/los

CAPiTUlO.1: NORMAl I;¿ACIÓN DE RELACIONES

Por lo tanto. todas las dependencias son elementales,

En todas las dependencias se cumple que tienen un único atributo implicad ..

Todas las dependencias son plenas, es decir, que ningún subconiuot« .1,,1determinante puede implicar al implicado.

Ninguna dependencia es trivial. es decir, ningún atributo del detennil1:lllhaparece como implicado.

Lo primero es comprobar que todas las dependencias son elementales:

endencias elementales

En este apartado. se comprueha que el conjunto de las dependencias hallada, en-artado anterior (DEP) es irredundante. Para ello se ha de comprobar que toda' 1.1'ndencias son elementales, no existe ningún atributo extraño en ninguna de ella' \xisten dependencias redundantes.

.rbrimíento minimal

}

(8) CP 77 TI P

(7) A 7l)

(6) CP 7D

(5) AL, A 7 c.(4) a 7A.

(3)A 7 CP,

(2) NI' 7 CP.

(1) CIJ 7NP.

AT= {CP. NP. T. P. A. G. AL.!)}

DEP= (

Resumiendo. la relación universal resultante del análisis del caso es R(AT. DEP),3e:

DISEÑO DE BAS¡:S DE DATOS PROBLr:MAS ~RI:::,S:.:.·I:.:.c)¡:::.!I...:..:T(~)S::...· ....:'::..!. K~Ac..::'~I.\

Page 185: Diseño de Bases de Datos - Problemas Resueltos

G ~A.

A ~CP.

NIJ ~ Cñ,

el' -7NP.

. Se ~a a non~alizar la relación R mediante el proceso de análisis. construyendo almismo nernpo el árbol de descomposición. Se detalla paso a paso el algoritmo:

PasoJ: Recubrimiento minimal (calculado antcriormente)

DEP'" = {

Normalización por anáJisis

•lFN: La relación se encuentra en IFN al no poseer grupos repetiti vos.

2~N: La relación R no se encuentra cn 2FN, ya que existen atributos nopnnclpales. que> no dependen plenamente de la clave. Por ejemplo: e'n ladepend,:ncla {C~ .-7 NP}. el atributo NP no depende de ninguna clave principal(ni siquiera tranSlllvarnente).

••• Claves candidatas: {T, P, G. AL} Y {T. r. A. AL}

Atributos principales (forman parte de alguna clave candidata): {T, p. G. A. AL}

Atributos no principales (AT - atributos principales): (CP. NP, [)}

Forma Normal de la relación

Resumiendo los cálculos anteriores:

• (T, P, G)' = {T, P. G, A, cr, N[~, D}. donde todavía no se recoge el atributo AL

Por I? tan!? ~na clave ~andidata es ~l conjunto formado por {T, p. G, AL}. yaque no existe rungun subconjunto de la rrusma que a su vez implique a todo AT. Porotro la?~, co~o en la ?epcndencia (5) de DEP .<¿L. A ~ G), donde los atributos AL yA implican a G, el conjunto {T. p. A. AL} también es clave candidata.

. Hasta el 1110111e,nla, ningún atributo simple implica transitivamcnte a rodas losalnbut~s de la relación ~AT). por lo ~uc se realizan grupos de atributos que puedandetem1~nar 11 tod~ ~I conjunto AT, eligiendo aquellos atributos con mayor cardinalidaden su cierre transrnvo:

• (T!'OH':: {T)

• (prlllt>= {P}

CAPíTULO 3: NORMAll/.ACIÓN DE RFLACIONES 359

••••••••••••••••••••••••

• (CP)·n~p= (CP. NP. D)

• (NP)'1>' P= {ep. NP, D}, Cr es equivalente a NP.

• (A}·i)I·l'_:{A. Cl". NP. L)}

• (G)'I>I:I'= {O. A, CP. NP. [Y}

• (AL)'I1I'I¡: (AL)

• (D)'IJI'I':: (l)}

A continuación. se calcula el cierre transitivo de todos los atributos de la relación:

En primer lugar se observa que existen dos atributos multivaluados, T y 1', por 1(\que forman parte de cualquier clave candidata al no ser implicados funcionalmente porningún otro atributo.

El algoritrno de cálculo de si un descriptor (subconjunto de atributos de AT¡ ~,clave candidata se basa en el cálculo de su cierre transitivo.

Claves candidatas de la relación

)

('1' -7-7 r I P

('P -7 oAL, A -70,

G ~A ,

A ~ep.

NP ~ cr.ep ~NP,

DEP'" = {

A partir de todos estos cálculo), se puede concluir que uno de los conjunto~rnínimos de dependencias posibles es el siguiente:

• Como D se determina a partir de DEP', la dependencia (7) es redundante.

')R.-\\I\.'58 DISEÑODI:,BASESDEDATOS: PROBLEMASRI,SUELTOS

t •••••••••••••••••••••

Page 186: Diseño de Bases de Datos - Problemas Resueltos

..........................Se elige otro grup d d .'ufl! o e ependeuclas funcionales e R' . .)\ de dependencias. ya que no existen d d d "", n 1 no se realIzan más

, os epen encias con el mismo implicantc .

Figura 3.!4. Primer nivel de! drbo! de tlc.I'('OtllpOsici6n/',/\(/ (. De "C • "• •• (lIIIPOS/C/O/l de R¡'

IFN

fr. P. Al .. Gil¡-r. P. AL, Al .

R AT - (ep. NP.T. p. A. G. AL. D)DEP = (ep-7NP. N}'-7CP. A-7CP. Ci-7A, (AL.

A)~G. C'P-70. ('P-7-7 TI P)

~("'01\(',· IT. p. ,\1..l;1 }

AT = (ep. NP) 1F!\IT. P. Al .. Al

DEP= (ep -7 NP,NP ~ ep)

'1 \ 1,'1'1

RI' AT= (ep. T. P.A. G. AL. D)DEP = (A-7ep. G~A. (AL. A)7G. CP-7D

C'P77TIP) .

• 2FN: No. ya que aún existen atributos no . , Ide la clave. Por ejemplo en la depende'ncla ~n~c~~.es que dependen parcialmente

•De esta forma el primer . I dI'mve e árbol de de:.composicio·n::rallcanlentc en la figura 3.14. se representa

1FN: Sí. al iratarse de una relación••

• Claves candidatas {T. p. G, AL} Y {T. P. A. AL}

• Atributos principales: {T. P, G. A. AL}

• Atributos no principales: fep. D}

El cálculo de la forma normal en I. . • a que se encuentra la relación se detalla aconunuacion:

La clave de RI' se calcula de forma similar a la clave d 'encuentran illlplicados por nin ún '. e R. Como T y P no seEl cierre transitivo <.le'G. cuya gcard~:;~iadtardlbuito.!u~madnparte de toda clave cundidata.CP D) s guc sien o la mayor es (G)' - {G A, , por lo que se repite la situación del ":1 IR" 0"1= "candidatas son las Illislllas: ea cu o en . y por lo tanto sus claves

A continuación se calculan las claves candidatas y forma normalencuentra la relación R I'. . en la que se

CAPITUl.O.'· NORMALIZACIÓN DE REI.ACIONES J61RA·MA

-------------- .....

••••.~.'...'.•

lFN: Sí. al tratarse de una relación

2FN y 3FN: sr. ya que no existen atributos no principales.

FNBC: Sí, ya que lodo dcterrni nante (o impl icante) es clave candidata.

4FN y 5FN: Sr. yu que no existen dependencias multivaluadas ni en Clll1lhlll." ".,

en R r-

El cálculo de la forma normal en la que se encuentra la relación se dct.III"ontinuación:

Las claves de la relación son {CP) y {NP}

A continuación se realiza el cálculo de la forma normal en la que se encucnua l.,elación R" para ello, primero se hallan las claves candidatas:

Figura 3. J 3. Descomposicián de R

AT = {CP. T. P. A. G, AL. D}DEP = {A-7CP, G-7A, (AL, A)7G. CP7D,A7D, CP-7-7 TI P)

AT = {ep, NP}DEP:: (CP -7 NP, NP -7 CP)

El primer paso es identificar los atributos equivalentes. Los atributos CP y NI'on equivalentes. ya que CP 7 NP Y NP -? CP. Por lo tanto. se agrupan esta,ependencias funcionales y se crea una relación RI cuyos atributos son los quearticipan en ambas dependencias. Al mismo tiempo, sc crea otra relación (R,' l. e-t.ez con carácter temporal, necesaria para continuar el proceso de descomposición. 1.0'tributos de R,' son los de R menos los atributos no pri ncipalcs de R" Y liI'ependencias son las de {R - R,}. Gráficamente se muestran descomposición en 1.1.gura 3.13.

'aso 2,' Descomposicion de R

}

C'P-?7TIP

CP 7D

AL, A -? G,

j A.\ \t,'lO DISEÑO DE "ASES DE DATOS PROBLEMAS RESUELTOS

Page 187: Diseño de Bases de Datos - Problemas Resueltos

Figura3.J6.Árbold d .. ,e eSCOl1lpOSICIOI1parcial JI

F:.~lavez las relaciones R R '·tlllan . .11Y 12 SI se cncUcntr'Iuh P?rte de la clave) y también en 5FN an en 4F,N (todos los atributos

Inaclón. . ya que no ex rstcn dependencias en

flor 01 l'ro ado, se crea la relación\~\:~~11Posición.El árbol de descompos¡:fmpo:'al, RI' para poder continuar Con la

Illuestra en la figura 3. l 8. ón parCial hallado has la el Inonlcnto es el

IFN

{r,p,AL.GIY{T. p. AL. Al

AT:: {ep, T. P, A, G, AL}DEP= {A~CP. G7A. (AL. A)o7G

CPo707 TI P) ,

el.'e I("P1~FN

IFNAT:: (ep. O}DEP= fep ~ O}

rr. 1'.AL. (;1)rr, 1',Al" Al

( '111\,-·,

JI-'NAT={CP,NP)DEP::: (CP 7 NP, NP ~ CP}

{('I'I y {NPI('I~\'e,·SFN

{T. 1'.AL. GI yrr, 1>,AL, Al

R

• R" «e». T). (}J.• R l.' «e». P). () J.

Jerárquica se puede deseompo" ner en nuevas rela . . .t1e~eompol>ición que se realiza en este . c~ones sin pérdIdas de información. La

e caso es la siguiente:

CAPíTULO.l. NORMAliZACiÓN ()E RELACIONES 363

••••••••••••

Donde la clave está compuesta por todos los atributos de la relación. PCH' ,',IJrelación no se encuentra en 4FN. ya no se encuentra determinada por toda 1" LI.I\\ ~la relación ({Ci". T, P}), Se ha demostrado que toda dependencia mulu' ,tllI,'

• R,! «e». 7', P). te» ~~ T I P}).

En principio, se crea una relación con la dependencia multivaluada jcrárqlliL.1

A continuación se realiza el tratamiento de las dependencias multivaluadu- \.1

que si se eligiera cualquiera de las otras dependencias, donde el i1npliL'ad,' "~o

encuentra involucrado en otras, se podría perder alguna.

Paso 4: Desconiposicián de R" '

El árbol de descomposición hallado hasta el momento aparece en la figura J. 11.

• Rz', al igual que RI', también se encuentra en I FN, ya que (:P depcmkfuncionalmente de A, que no es clave candidata. aunque forma parte de una ti,ellas.

• Clave(R2') = Clave(R1') ::: Clavetk) = {T, P, AL, G} Y {T, P, AL, A}

La clave de R,'. al igual que ocurría con R 1" está formada por T y P. Adem.r­(AL, G)+={G, A, CP, AL) y (AL, A)'={G, A, CP, AL}. luego las claves son las mi-m.r­que en R y que en RI·.

La clave de R2 es ep, ya que determina a O. además la relación se encuentra ('11

5FN, ya que su atributo no principal (O) se encuentra determinado por toda la clav L'su único determinante (CP) es clave y no existen nada más que dependenciafuncionales.

Figura 3. J5. Descontposición de R I

AT = {ep, T, P, A, G, AL}OEP = {A~CP. G~A, (AL, A)o7G,

CP~~TIP)

AT = {CP. O}OEP::: {ep ~ O}

por lo que se elige, entonces, otra dependencia funcional cualquiera, por ejemplo CP~ D. ya que D no participa en ninguna otra dependencia. de RI·' Se descomponeentonces en dos relaciones nuevas R2 y R2'. con los atributos y dependencias queaparecen en la figura 3.15.

362 DISEÑO UF. BASES DE DATOS, PROBLEMAS RESUELTOS

j •.•. _.\ •.•••••• e'e ••••••••

Page 188: Diseño de Bases de Datos - Problemas Resueltos

Se supone (aunque no se detalla en el' ,1,1Iltcnimiento de todas las dependen ' e~un~~ado) q~~ es requísüo indispensable el'\~l1lnposiciónfinal se muestra en la fi~~~a 3~191 relaclon. Por lo tanto, el árbol de

, Si se ,inlenla descomponer la relación R.' . .: ."pendencias funcionales a ue' '. en dos relaciones se pueden perderIlIflhcado,A, participa en' ¡Y q 'dsl dse elIgiera, la primera dependencia (G '-fA) el'". a segun a ependencla Y el. '. •-unda, G participa en la primera luego l' 1'., n e caso de que se eligiera la

"'rUluas de dependencias. " a re ación no se puede descomponer sin

La relación R.Jse encuenlra en 5FN " . ''l'i~<:i(SnR.' tiene corno claves {AL, G} . Y{;~ ~ave es ~l atributo A, mícntras que laIlI'NRC, ya que no lodo d terrni Y,}, ~ue se encuentra en 3FN, pero no

e ermmante es clave candldala (en la dependencia G '-fA).

"0111 (¡: !)I!SC(Jlllpo.riciólI de R~,

Figura J,I8 DesCOlnpo.l'ieiólI de R.I

AT;; {A, ep}DEP = {A-7ep}

Las relaciones que se crean Son las q .. ue se muestran en la figura 3.18.

De nuevo se continúa descornponiendo la r l. 'vuelve a la descolnposición de las depcnd ' "e ~clón temporal, en este caso se

, . encla:. Iunclon'lles ya q hrodas la:- multl valuadas que existen E ' ',ue ya se an resuelto\ -) C'P' CP . , ,n estos Instantes se puede elegir la depend "

. ya que no participa en ninguna otra dependencm de R1, encia

Paso 5: Descofnposición de R l'

R".¡'1A--------- ___J~m~.u~~~~!2t!..Q!~~Qf~L~CAPíTULO ,1,NOR\IALIZi\CIÓN DE RELACIONES 365

Figura 3./7. Arbo{ de descomposicián parcial ///

Clave' (ep, 1>1Sf'N

AT={CP.P}DEP = {}

Clave: {el', TI5fN

AT = {ep, T}DEP = {} Claves: (AL. G) ~ (\1.. "

IP.'I

R'3 AT = {ep. A. G, AL}DEP = {A-7ep. G-7A. (AL, A)-7G}

Cla,c (el', T. PIfNBC

AT;; {ep, T, P}DEP ;; {CP -7 -7 T I P}

Clave,' ('1',1'. AL. (;) ,1'1',1'. AL, A)

IFN

AT = ter. T, P, A. G, AL}DEP = {A-7ep, G-7A. (AL, A)-7G,ep-7-7 TI P}

{ePIe,"ve:5~'N

AT = {ep, D}DEP = {ep -7 D}

Claves: (1. p, AL, (; 1)(T, P. AL. Al

AT = {ep, T. P, A, G. AL. D}DEP = {A-7ep, G-7A, (AL, A)-7G. cr-so,ep-7-7 T (P}

RI'

If'N

(ePI> (N!'I

AT = {ep. NP}DEP= {ep -7 NP, NP -7 ep}

RI

(Ia'\-' (T.P.AI..CI}(T. 1'.AL. '1

Irx

AT;; {ep, NP,T, P. A, G. AL, D}DEP = {ep-7NP, NP-7ep, A-7ep. G-7A, (AL,A)-7G,ep-7D, CP-7-7TIP}

R

364 DfSE:\IO DI, IlASI,S DE DATOS P!:.!R~O!.!:B~L~EM~f\~S:!...:·R~F.:::::.S:!:U.!::.EL!::;T~O~S .;..:f).::.RA::,;'::!2."

Page 189: Diseño de Bases de Datos - Problemas Resueltos

En este apartado se analiza paso a paso el enunciado para hallar los atributos de la,.,',ión universal de la elllpresa de Ventas y las dependencias funcionales.l"lvaluadas y de conlbinación que existen entre los atribulOS de la luisma. Paralli/itr Un análisis detallado. al igual que se hizo en el prOblema 4, se ¡nlroducen"'nl'neias al enunciado.

1l1':P~~NDENCIASENTRE ATRIBU1'OS

IJi~cusjóndel enunciado

3) Estructura relacional que considere más adecuada. analizando el nivel denormaljzación de cada una de las relaciones.

~) Un conjunfo mínimo de dependencias válido (recubrimiento minimal oirredundante).

I) Las dependencias que se deducen de cada uno de los supuestos delenunciado. Si de algún SUpuesto se deduce la no existencia de algunadependencia indíquelo también,

Se pide:f) Todo R vende el mismo conjunm de P en cada A donde trabaja.

el Nunca dos R venden el rnislno P en la IniSllla A.

d) Un R puede vender varios P y cada P se vende por varios R

e) En todas las A se venden todos los P.

b) En cada A hay varios R y cada R trabaja en varias A.

a) Los representantes tienen un código (CR) y un Conjunto de atributos (AR).Análogamente las áreas tienen CA y AA Y los produclOS ep y AP.

Se desea diseñar una base de dalOS para una empresa de ventas que tienereprcsenrame, (R) en las distintas áreas (A) donde vende sus productos (P). Se suponeque:

Enunciado

PROBLEMASCAPITULO3: NORMALIZACiÓNDE RELACIONES ]67

•.'•..•..••..•••

. } J 9 'rbo/ de descomposicián tola/Figura .1. 1I

Clnve IAI51"1'1

AT:;:: {CP, A}DEP = {A~CP}

AT={A,G,AL) ~DEP:;::{G~A. (AL,A)~G)

1 CI "I/II .. \IClave" (¡\" ,3FN

Clave (.'1'. PISf'N

AT={ep,p}DEP= {}

Cla,e. (CP. TISFN

AT = {ep, T}DEP:;::{ }

CI.,e" (AL. G1~ (AL.AlIFN

R'.,CI.'·e (ep,T. PIF"NBC

AT = (ep. T. P)DEP: {CP ~ ~ T I P}

=--~--=---:---IAT: {ep. A. G, AL}DEP:;:: {A~ep. G~A. (AL. A)~G}

IT.P. Al •• (:1)'Ir. P.AL. \1

AT: (ep, T. P, A. G, AL)DEP= (A~ep, G~A. (AL, A)~G.ep~~ TI P}

lel'lClave:SFN

AT:;:: {CP. D}DEP: {ep~ D}

IT,1'.AL, (:1yIT.P. AL. Al

AT={ep.T,p,A.G.AL,D} ~G ('P~DDEP:;:: (A ~ep. G~ A, (AL, A) .. .ep~~ TI P}

ICPI) I'iPI

AT={ep.NP}DEP= {CP ~ NP.NP ~ ep}

AT = ter. NP,T, P,A, G, AL~¿p G~ A. (AL.1)F.P = {CP~NP. NP~CP, A .A)~G. cr-s o. ep~~ T I P}

L~=::_::~~_:_--::::7"'''----;l;'I~.'~C,:-IITi.~I'~.;\L. (,1)IT.P. \1.. "1

R

;166 DISIOÑO DE BI\SIOS DI-. DA I()$: I'ROI:II.EMAS RESUELTOS

••••.••\••••..'•...••.•'..

Page 190: Diseño de Bases de Datos - Problemas Resueltos

• ~•• -e ••••••.•

Lo prinlcro es COlllprohar' que todas lus úcpendcnt:i'Js son ele I I" • 1l1Cn Hes:I;:n lodas las dcpcnd ''. encJas se cumple que tienen un Ú' "b . .ruco ain uro Impllt:ado,

En este apartado, se comprueba ue el .d Jpartado anterior (DEP) es irredund~nte pCl~n.lUllnto.de. las dependencias halladas enkrtnde . , ara e o se llene que' l'netas sean elementales no ' , " . c.:ump Ir que lodas las'¡"f\cnclencia¡, redundantes, ' exista nmgun atnbuto extraño y no existan

{I"III'lIdellcias elementate»

)

HECUBRJMIENTO l\1INlJ\.fAJ,

(5J CR -7-7 CP I CA.

(~) copo C'A -7 CR,

(1)('P-7AP.

(2) C'A -7 AA ,

(I ) ('R -7 AR.

Al' = {C'R, AH, Ci1, AA, CP, Al'}

DEP == (

Resumiendo, la relación universal resultante del 'In11' s' ,las "no-dependencias" es R(AT.DEP), donde; , , 1, IS del enunciado, obviando

Todo R vende el mismn COIIJII/l/(1 di' P en cada t\ donde trabaja.

Por ultimo se indica que todo re rescnu , .'en todas la!>área~, Por lo tanto el ,P tanto vende siempre los mismos productos.1 • rcpresemanre vende un e b·uc productos en un conjunto de ar' a bi d on).unto len determinado1 ., e ~ len eterrmnada, S n q , .re acron entre el producto y el área ' . . I ue exista ninguna

D ' ya que surmrustra todo, lo dareas, e esta forma el rcpresentante 1 id ' \ l> pro uctos en todas las

I ' ' , mu ti eterrnlna tanto a los dareas(rnu lldependencia jerárquica): pro uctos como a las

• ('R -77 CA I el'

• C'P. CA -7 CR

- CAPITIJLO 1:NORMAl IZACION DE RELACIONES ,169)I~'"~t\

.,.~~•••••~.\.:.~~••••••

Por otro lado, se indica que un representante siempre vende el mismo protlllL 1" \ 1Ila misma área. Es decir. siempre se sabe qué representante surninistrú 1I~1pllId ",' 111'

dado en un área concreta, Esto indica que existe una dependencia IUI1("ol1,1I dI .1

forma:

Nunca dos R venden I'{'II;,IIIIII P ('11 la misma A,

Corno en las dos frases anteriores. entre estos dos atributos no existe ningún 111\,

de relación (C'P -/-> ('H. Y CR -/-> CP). es decir:

• (77 CR I ('P

VII R puede vender vartos P y cada P se vende por varios R,

Esto indica que en cada área se venden todos los productos, y que 10<;pnldull, •se pueden vender en cada área, por lo tanto se trata de una relación sinula: ,1 1.1anterior. donde no existe ninguna relación entre los atributos (CA -/-> C'I' y C'PCA), lo que es igual a que:

• c77(~AICP

EII todas 111\ A ~I'venden uuln« /0\' P.

En la frase anterior se indica que en cada área existen varios. reprcscnranu-, \cada representante trabaja en vanas áreas, luego no existe ninguna depcndcu. ufuncional entre c:,tlJ~ dos atributos (CA -/-> C'H.y CR -/-> C'A1,o lo que C1> lo Ini'J11')

• ~ 77 ('A I (~R

El! cada A hay 1arios 1< y cada R trabaja en uarias A,

Por otro lado, las áreas y los productos, al igual que los representantes, ,,'identifican por su código y atributos:

• CA7AA• CP-7AP

• CR 7AH.

Esta frase del enunciado indica que la entidad representante se identificamediante un código (('R), Y un conjunto de atributos (AR), Se supone que para unúnico valor de CR se tiene un único valor de AR, luego CR determina funcionalmentea AR,

Los representantes 1;1'111'11 1111 código (CR) JI 1111 conjunto de atributos (AR),Allálo}:tI/I'I'11I1? lar arras tienen CA y AA .\'los productos CP y AP,

Jó¡\ DISEÑO DE HAS¡:SDE DATOS: PROIlLEI\'IAS RESUELTOS

Page 191: Diseño de Bases de Datos - Problemas Resueltos

Clave candidata: (CP. CA)

Atributos principales: {CP, C'A}

- Atributos no principales: {AP. AA, CR, AR}

Se sabe que los atributos multivaluados CP e . .Illctonalmente por ningún otro atributo y A no se encuentran implicados.•ndldutas.El cierre transitivo del conJ'unt~ (l~e;oc.~o}rm~n parte de todas las claves

• .rl cs.

• ¡ep, CA}' = (CP. AP, CA. AA, CR. AR}

De esta fo .~ rma, se tiene que el conjunto (CP C'A)' ... luegoserá la clave candidata. Reslunienuo:' implica a todos los atributos de

t'uso 2: Claves de la relaciáu y FN en la que se encuentra

1::11 primer lugar se han de calcular las claves" " .l',necesario calcular el cierre transitivo de los pr~~~c:~I~:til)' de la relación R, para ello

• CR+:(CR. AR}

• ('A·={CA. AA}

• CP'={CP. Al'}

)

(1) CR ~AR.

(2) C'A 7 AA,

(3) CP 7AP,

(4) CP. CA 7en.

(5) ('R 77 CP l CA,

Se realiza la nonllaliz3clón de la relación R di: .indicando la forma normal en la que se e da iante el algoritmo de síntesis.

ncuentra Cil a rclacrón en cada momento.

Paso l: ReCllbrÍllliel/to minimal (calculado anteriom1enle)

DEP''': (

NORMALIZACIÓN

CAPíTULO.l: NORMALIZACIÓN DE RELACIONES 371• MA·\1A

••••••••••••••••-•.•-.-••". "...

DEpffi = DEP

, .rmrurno:Concluyendo, el conjunto de dependencias DEP es un conjunto de dCpl'l1dt'lh1.1'

Por lo tanto, por cada dependencia de DEP, se calcula si se puede dcriv al ,1,1resto (DEP'). No existe ninguna dependencia redundante en DEP. En este pr(lhklll.1no se detalla el cálculo de la existencia de alguna dependencia redundante. ya qtl" 1.1forma de calcularlo se ha explicado en problemas anteriores, se deja como ejerci, ,,' .11lector.

Por último se comprueba si existen dependencias redundantes en el COllllllll.'DEP. Se dice que una dependencia dp es redundante si puede derivarse del ¡;Onllllll,'DEP' = {DEP - dp}.

Dependencias redundantes

CA' = (CA. AA), pero no determina a CR, luego CP no C~ un alllbul<extraño.

Para comprobar si C'P es atributo extraño se calcula el cierre de ('A'

Cñ" = {CP, AP}, pero no determina a CR, luego CA no es un atribut«extraño.

Para ver si C'A es un atributo extraño. se comprueba s CP ~ CR se encuentra ('11DEP+. Para ello se calcula el cierre de CP:

Del conjunto de dependencias DEP, en la única dependencia donde podríunexistir atributos extraños es en (CP. CA ~ CR), ya que el determinante está formadopor más de un atributo.

A continuación se comprueba que no existen atributos extraños en la,dependencias.

Atributos extraños

Por lo tanto, todas las dependencias son elementales.

Todas las dependencias son plenas, es decir, que ningún subconjunto de)determinante puede implicar al implicado.

Ninguna dependencia es trivial, es decir, ningún atributo del dctcrminarneaparece como implicado.

370 DISEÑO DE BASESDE D/\TOS: f'KOULEMAS RESUI:'I.TOS

t •••••••••••• ·_••••••••

Page 192: Diseño de Bases de Datos - Problemas Resueltos

~) ITodclaSllusasignaturas están divididas en los mismos grupos UII'II''á do os os gn . di' , . , .. n ose en. , IpOS e a 111ISInauxrgnatura los mismos textOl>. .

11) En un I110Inento dado en un aula sólo se puede impartir una asignatura,

l:) En cada despacho hay un solo teléfono.

U) Un estudiante no puede asistir a las clases de do .hora. . (" s aSlgnanlra:. en una misma

Un departamento universitario desea diseñar una base de datos '1 >. ió10\ cursos que' n rt d ' para a gesu n deI " . II pa e urante un cualriIl1Cstre. En la hase de datos quiere alma' ,tI, prol~sore!> (P), los estudiantes (E), la nota (N) COn la que se califica a un '1 cenar"Ida,asrgnatura (AS). así como los día,> de la sCInana/hora (H) en las que ~~ui:no ~n.111,1 a'lgnatuIa ,y el aula (AU) (se Supone que ni el día/hora ni el aula en lo pa emparte una a"lgnatura varían de una SCIII<lnaa otra) Se d alrm s q.ue seIdduno (TL) y el despacho (D) de cad, C.. . esea a maccnar también el"111 )"1 d '. a pro csor (Sé supone que no existen teléfonos

,1aru Os por dos profesores y que en cada despacho sólo h r •,'Idono) Se s' l " . ' ay un profesor y un" . d le asmusmo que un protesor imparte clases . .IIId(' '11 '1' l " ' en vanos gr upos (G) y en., e os uu Iza os mismos textos IT). .

J\dernás de los anteriores se dan los siguientes supuestos seIná.nticos:

a) En un momento dado tanto un estudiante C0l110 un profesor sólo puedeen un aula, '. n estar

Enunciado

PROBLEMA 6

En este caso, esta relación. cuya clave candidata es {CP CA)~rN y' q , , , se encuentra en'; .' a ue se encuentra .en 3FN al haber solamente un atrihuto no princi al, en11\Be ya que todo determinante es clave candidata y en 4F:'lI.T y 5FN I P"J , n d " funci . "1'4 a no cxrstrrcpcn encras uncionales m en combinación

~~({(~/.), CI1, C'R}, (CP.CA-.?CH)•

Por otro lado, la dependencia de R.I que taha por analizar «('¡J.('A -.?CR) f' "una nueva relación: rormana

A!nbas relaciones se encuentran en 5FN, ya que no existen de d '.~u\ atributos. . pen encras entre

CA l'íTII LO .1: I"ORMALI/.I\CIO'll DI, RI!I.¡\CIONES 37J

" ~

......... "'._._ •••••• -..1.... -.- ••••••

• R.¡,,( (eR, CA), (})

" lti Id' á ' CR --'---'-CPICA se puede dCSCl1lnp,'I""La dependencia rnu uva ua a jer rquica " 7'7' "

en dos relaciones sin pérdidas de información:

ne~l"\tllt

hahl,t d.Para poder continuar con la descomposición de la relación R.¡, es

utilizar el algoritmo de análisis. ya que el algoritmo de síntesis sólodependencias funcionales,

Sin embargo, la relación R4 no se encuentra nada más que en FNBe., y~' '1"'cumple que todo determinante de [as dependencias funcionales es clave candidata 1,',

este caso (CP, CA»), pero al tener la relación rnultivaluada, no cumple la 4FN.

La relación R, se encuentra en 5FN, ya quc lodo determinante es clave candlll.I!.'(FNBC) y adornas no tiene dependencias rnultivaluadas y en combinación. L(1 11\1"""

ocurre con las relaciones R~ y R¡. que se encuentran también en 5FN,

• R,«.Q1. AP), (CR7AP})

• R.¡({CIJ, CA, CR}. {(CP,CA)7CR. CR77 ('PI('A})

• R~({Cd., AA). {C'A 7AA})

• R,«-ª. AR). {CR7AR})

Posteriormente se crean relaciones con los grupos de dependencias hallados. La,relaciones que se forman son las siguientes:

El primer paso es agrupar todas las dependencias funcionales que tienen el rnivmoirnplicante o atributos equivalentes. Solamente se crea un grupo, la depcndencíamultivaluada CH -.? -'?CPICA y la dependencia (CP. c.'A) 7CR, ya que ('R es elimplicado de una y el implicante de la otra.

Paso 3: Stniesis dI' DEP

Por otro lado. la forma normal en la que se encuentra la relación es en I FN. yaquc en 2FN no se encuentra al existir atributos no principales determinado,funcionalmente por parte de la clave. Por ejemplo en la dependencia CP -'?AP. elatributo no principal AP se encuentra determinado por CP, no por la clave completa

J7' DISEÑ() 1)", BASES DE DATOS' PRO!:!I FMAS R~ES~U:::.E!::!·L~l~·(::.)S:._ ..:.·..:.'~:..:~..:.::..:·M\

Page 193: Diseño de Bases de Datos - Problemas Resueltos

Se desea almacenar también el teléf 011profesor (se supone que no ex t { o (TLI y el despacho (D) de cadav que en cada des/}(lcho f '¡ ,lli,en le/élonos cOl1lptlrtlllospor dos profesores

, o o llf_) un profesor y IIn teléfono 1,

A continuación se comprueba si existen c., , '"nunciado referencíand l d mas supuestos semánticos en el resto del, I o o cuan o se cree oportuno.

En la base de daros quiere almacenar los profesores (p) los est di z:la Ilota (N) con l. liti ' • .1 11 iantes (1:.1. a que se ca tjtca a un alumno en cada asignatura (AS), .

Por lo tanto, a un alumna en una .'''Ia Es decir ~ asignatura concreta, se le califica con una única

'., el , para una pareja de valo ( di ..llnf posible para el atributo . 1 res estu iante, asignaturoi, existe un úniconota, uego (1:;.', As -7 N),I r:, As -7 N

Por último, se tiene que todas las asignaturas de la base de datos está d' idid~nlos mis n' , , . n IV! I as" ' iros grupos. ~s decir, que una asignatura no implica funcionalmente unerupo, o, o que es lo mismo, 1/ -7 -7 As I G, Por otro lado se tiene ue e~rupos de la misma asignatura se explican los mismos textos es qd ,n todos JosJ\'gnatura muhidetennina jerárquicamente el grupo 1 ' • ecir, que unaIh -;> -;> G I 7), Y os textos que se dan en ella

• e -;> -7 As I G• A.f -7-7G I T

To;/o.fllas asignaturas están divididas en los InisI1'IJs grupos. utilizándose entoeos os grupos de la misma asignatura los mismos textos. ,

. Esto indica q~c un estudiante a una hora detenninada sólo uede r li~.~I,~n:llura;~s decir, con,ociendo el valor del atrihutn estudian/e p del a~~~Sut~~lunaexiste un uruco valor posible para el atributo asignatura (H, E -) A~), ora,

• H, E -7 As .

Un estudiante no puede asistir a las clases d. d. .: ,hora, e os asignaturas en una misma

Esto implica que el atributo despacho implica el atributo teléfono (D -7 Tl),• D -7 TI

En cada despacho hay un su/o teléfono.

, Por otro ,lado, conociendo la hora exacta y el aula, se sabe en todo momento q ,asignatura se Imparte en el aula (H, ALI -7 As), ue

• H, As -7Au

CAPITULO .1; NORMAI.IZACIÓN DE RELACIONES 375,'KA MA

••••••••••••••••.•.•~.~.........

En 1111 momento dado en un allla sólo se puede impurtir ufla asignatura-

• H,E-)Au

• 11.P -)Au

Es decir, conociendo la hora y el estudiante, se sabe en cada momento en que ,1111.1se encuentra; por lo tanto, los atributos hora y estudiante implican funcionalmcu'v ,.1atributo aula (H, E -) Au), De igual forma, conociendo la hora y el profesor, ve ,.¡lx'en qué aula está el profesor (H. P -7 ALI), Por lo tanto, las relaciones fun!:itIl1.1k'encontradas hasta el momento son las siguientes:

EII UII momento dado tanto un estudiante como un profesor sólo pueden estaren UII aula,

En primer lugar se analizan los supuestos semánticos que se encuerur.menumerados en el enunciado, y a continuación se comprueba si existe algún supuc-«semántico más "oculto" en el enunciado:

En el enunciado se nombran los atributos profesor (P), estudiante (El, nora c\ 1asignatura (As), una determinada hora (If), aula (Au), teléfono (TI) y despacho (1») (klprofesor, grupo de alumnos (G) y textos (7),

Se analizan detalladamente los supuestos semánticos del enunciado con l'iobjetivo de determinar los atributos de la base de datos y las dependencia­funcionales, multivaluadas y de combinación que existen entre ellos, Para realizar 1111

análisis detallado, al igual que se hizo en problemas anteriores. se introducenreferencias al enunciado,

DEPENDENCIAS I<:NTREATRIBUTOS

Discusión del enunciado

1) Determinar las dependencias que existen entre los atributos,

2) Recubrimiento minirnal. determinando si existe alguna dependenciaredundante o algún atributo ajeno,

3) Forma normal en la que se encuentra la relación,

4) Esquema relacional normalizado con las observaciones que estimepertinentes, sin tener en cuenta las dependencias multivaluadas o encombinación,

5) ¿Debería añadir al esquema anterior la relación Rx(As, G), a fin de tener l'11

cuenta alguna posible dependencia multivaluada?

Se pide:

O) NA '1.\374 DISEÑO DE BASES DE DATOS' PROBLEMAS RESUELTOS

~••••••••••••••••••••

Page 194: Diseño de Bases de Datos - Problemas Resueltos

••.•~ .' ~ •••.•- ~ •.••-.~~...~.

Se cOlllPrucha si existen atributos . - ,"11"lIoOEP S61 d " <.' extraños en alguna de las dependencias del, o pue en exisur atributos ext . - Id'oo." detcnninante est 'í eompuest á 'd ranos en as ependencias funcionalesI'''dnco primeras ~ependenci~ ~~~ rn ~ e uOnEatpributo,luego. se ha de comprobar

. conJunto· (numeradas COI1JO (1 )...(5)) .

,',,¡IlIrll.\ evt raños

Por lo tanto. se puede concluir que todas las dependencias son elementales.

trivial. es decir. ningú ib dun atn uto el determinante- Ninguna dependencia es

aparece corno implicado.

- En todas las dependencias se cumple que tienen un único atributo implicad».

- Todas las dependencias son plenas es decir 'd ' '. '. . I , que ningún subconjunlo deletcrrmnante puede implicar al impl icado,

I En ~'IC apartado. se comprueba que el conjunto de las dependencias halladas en'1,.d~'I~lao:lntc.nor (1)I.:.p) es irredu.ndanle. Por lo tanto, se va a determinar si t~da'i lascpcn cnc~,,, son elcmenralcs, SI exivte ningún atributo extraño ' ' .."pcndcncl'ls rcdu d. t li . y SI existen, n un es, para e iminarlas del conjunto de dependencias rnfnimo.

/lt'I1t'lIdencia,I' elemen tales

J{~:ClJRRI1\1JENTO 1\11NIMA L

(5) E, AS-7N

(6)As 7-70 I T

(7) r -7 TI

(8) TI -7 p

(9) /) -7 TI

(10) TI 7D

(II)? 7D

( 12) l) 7 P

(IJ) P -7 -7 e \ T •

}

________ ___.!C::_!A!,!P:.!_IT.!_!I:.:.!1L~O!....~';~N~O~R~MALIZACIÓ;o.¡ DE RELACIONES 377

(4) /1, E -7As

(3) H, Au -7 As

(2)H, P 7 Au

(1) H. E 7Au

OEP = (

AT = {H. E. Au, p. TI, D, As, N, G. T}

R (AT, OEP), donde:

Para terminar con este apartado. se puede concluir que la relación universal ,'<111

todos los atributos y dependencias de la base de datos del departamento scn.: l.,siguiente (nota: se han eliminado las dependencias cuyo implicantc es el conjunt­vacío. ya que indica la "no-dependencia" entre atributos):

Al igual que ocurría con las asignaturas. un profesor imparte clases en vano­grupos (conjunto bien determinado), utilizandc en todos ellos los mismo textos. hlct!"existe una dependencia multivaluada entre el profesor. loe; grupov y lo, le\l ..,(P-7-7G 17).

• ?-7-7(iIT

Se sabe asimismo que UI1 profesor imparte clases el! vario,' grupos (G) y 1//1

todos ellos utiliza los mismos textos (TI.

• P -71'1

• TI -7/>

• D 7TI (dependencia repetida en un supuesto anterior)

• TI7D

• P 7o• D 7P

Al no existir teléfonos compartidos por dos profesores, esto indica que el profesordetermina funcionalmente al teléfono que le pertenece (P 7 TI) Y que conociendo unnúmero de teléfono se sabe a qué profesor pertenece (TI 7 P). En cada despacho sóloexiste un teléfono (D -7 TI). y cada teléfono sólo pertenece a un despacho ¡-I'I -7 DJ.También se sabc que en cada despacho existe un único profesor (D 7 P). y que unprofesor tiene un único despacho (P 7D). Resumiendo:

.176 UIShÑO DE B,'\SES D1: DATOS; PROBLEMAS R1:S::;lJ::;I:::.;I.:.:..T(::_:>:..:_S .:;:_,:.;:RA=M'

Page 195: Diseño de Bases de Datos - Problemas Resueltos

)

P~7G\T

As 77(j I T

/) -7 P

P7D

TI ~p

P ~TI

f.', As 7N

H, Al( 7As

n. P 7Au

II.E7AII

DEP'" = (

Como la dependencia (4) H E7A . .{D77'1; TI7D' H E_.l.A }}. s se puede deducir a partir de OEP' = {DEP-

, , 7'nS • es redundante.

Nota: esie coojunro mínimo de dependenci'ts no es el ' .hab~r tachado de dependencias redundantes Otr .'.. _' uruco, y~que se podríanteléfono, ya que se trata de atri butos . '1 as parejas entre el profesor, despacho y

e , equlva entes,

Para la solución detallada en este libroh·.lltdo 1 . el conjunto nunirno de dependencia-au: es e que se presenta a continuación:

(H, E)'I)l;f"= tn « Au. As ... }

(1): 1-1. E 7Au, luego (H.E)'ncl'= {ll, E. AII}

(3): H. AII ~ As, luego (H E)' {H E A A}, 1)1:."'; • ". u, S

ILo mismn ocurre COIl la dependencia (4) H 1:: _.l. A ., ---, ,ro

Como 7'1implica a D según l' d d .( 10): T/7D I!S redundante. as epen encias del conjunto OEP', la dependencia

•CAPII l;LO.1 'IIORI\1ALIZACIÓ;-.tDE RELACIONES 379

.'••••••••••••••••.•••~•.,....

(TI)+I)t:p'= {TI, p, D ... }(8): TI ~ P, luego (TI)· I)~.I"={TI, P}(11): P ~ D. luego (TI)· OEp·= {TI, r. D}

Como TI se determina a partir de OEP', la dependencia (9) es redundante.

De igual forma, la dependencia (10) TI ~ D es redundante, ya que ~e 1'I,,',keducir a partir del resto (DEP' = {DEP - {D7TI; Ti~D}}):

(D)+DEP'= {D, p. Ti .... }

(12): D ~ P, luego (0)+ L>tl"= {D, P}(7): P ~ TI, luego (0)+ DEP'= {D, P, TI}

La dependencia (9): D ~ TI es una dependencia redundante. ya que se PUL'.!'educir a partir del conjunto de dependencias OEP' = {DEP - {D 7TI} }, No se re~~II,1do el cálculo del cierre, solamente hasta el punto que interesa:

En la solución de este problema no se detallan todos los cálculos realizado- '\:ja como ejercicio al lector. Se detalla únicamente el proceso de determinación de 1.1spendencias redundantes:

Por último se comprueba si existen dependencias redundantes en el conjuni«EP. Se dice que una dependencia dp es redundante si puede derivarse del conJUI1I1lEP' = {OEP - dp) .

ependencias redundantes

Lo mismo ocurre con el resto de las dependencias de DEP. donde el cierre de 10\

ributos irnplicantes tiene cardinalidad uno. ya que sólo se determinan a sí mismo,tedíante los axiomas de Armstrong), Luego, se puede concluir que no existe ningúnributo extraño en ninguna de las dependencias de DEP.

E+ = {E), pero no determina a Au. luego E no es un atributo extraño.

Para comprobar si H es atributo extraño se calcula el cierre de E:

1-1- ::: {H}, pero no determina aAlI,lucgo E no es un atributo extraño.

Para ver ~i en la dependencia funcional H, E ~ Au si el atributo E es un atributotraño, se comprueba si H ~ AII se encuentra en DEP~. Para ello se calcula el cierreH:

~••'•••••••'.'.'••••••••

Page 196: Diseño de Bases de Datos - Problemas Resueltos

.... ~ ,..'.".\.'e' .........• \~ .•

El primer paso 's ag d'" e: rupar ro as las d • dcnci ."Ilrlicantc y/o atributos equivalent~s Po~fC~,cncl~s funclon<Jles que tienen el rnisrm,'~'IiI~rllpan, ya que sus implicantes s~n et1u~v¡:;:tol' as d.er~n~cncias (cl,.(1). (g) y (h),1\. '1 n es. y se crea una relación con todas

)

(h)D-;)p

(g) P -7 D

(f) TI -;) P

(e) P -7 TI

(d) F., As -7 N

(e) H, I\u -7 As

(b) H, P -;) Au

((1) H. F. -;) Au

DEP" = (

Dado que en el enunciado del problerna nos i diecuenta las dependencias multivaluadas ni las d n ibi: qu.c no se han de tener enI . d as e corn inación se puede utili l

iI gontrno e síntesis para realizar la normalización de R. ' ~ I Izar e

Por lo tanto se aplica el 'd 1 • .donde: • . < mero o te smtesis al conjunto de dependencias DEP"•

NORMALIZACiÓN

•Claves candidatas: {H E P G T} {H E D G T} {H E T. . . . . , .,.. y .• l. G. T}Atributos principales: (H. F.. P, u. TI. (l. T)Atributos no principales: ( As. Al/, N)

Por otro lado, la relación no se encuentra en 'FN. . .principales que dependen de part d I - ,ya que existen atnbutos noe e a guna clave Por ejemplo l' tribdel conjunto {E A s} d . ~.' . e a luto N dependeen I FN. -.. . e ninguna clave candidata. Por lo tanto, la relación se encuentra

Resumiendo:

1 )(,\ \1,\~~:'__-------- J:(~'¡\~PfJÍ1J:'U~L:QO~1J'N~(:2!)Rillv~l/~~1~.r~ZACI6NDE RELACIONES 3R'

Debido a que I()~ atributos P. 'TI Y D son equivalentes en la clave l·alldld.l~.~anterior se puede sustituir. sin temor a la equivocación, el atributo P por cuakllll,·I.l ,l.sus atributos equivalente 7'/ y D, De esta forma serán tres las claves candiu<lta' p:II,1 1.1relación R, (H. E. p, G, T), {H. E. D, G, T} Y {H, E. TI, G, T}.

• (H, E, r. G, 7')' = {H, P, 1>,TI, A11, As, G. T, E. N} '" AT

Como (H, P. G. T) + '" {H, P. D. TI, Au. As, G. T}. aún faltan los atributo, 1:\ \para formar todo el conjunto AT. Pero. según la dependencia E, As -7 N, luego. '1 "

incluye el atribulo E al conjunto. se determina a todo AT. Por lo tan lo se trata (k 1111,1

clave candidata de R:

Por otro lado. los atributos no implicados por ningún otro han de fonnar pauc d,'todas las claves de la relación. Se sabe quc los atributos implicantes son H. t. 1'.. \" \As, mientras que los atributos implicados son AIt, As y N. Además, también <e '.11',que los atributos C y T no forman parte de ninguna dependencia funcional. por lo 11""forman parte de toda clave.

Del cálculo anterior se puede deducir que los atributos P. TI Y D son equrvulcmv-

• H+={H}

• E+:; {E}

• Au+={Au}

• pi:; {P, D, TI}

• TI+={P, D, 1'/)

• D' :; (P, D, TI}

• As'", {As}

• N+={N)

• C'",{G)

• T' = {T}

El cálculo de las clave .. de una relación se basa en el cierre transitivo de ""descriptores. por lo tanto. cn primer lugar. se realiza el cálculo de los cierretransitivos de los atributos de R de forma individual:

Para poder calcular en qué nivel de normalización se encuentra la relación R(A1,DEpm) se necesita saber cuáles son sus atributos principales y no principales. y por lotanto se necesita realizar el cálculo de las claves candidatas de la relación.

FORMA NORMAL DE LA RELACIÓN

JRO OISEÑO DI' BASES DE DATOS' PROflLEMAS RESUEI.TOS

Page 197: Diseño de Bases de Datos - Problemas Resueltos

1) Determinar las dependencias funcionales,

2) Hallar un r briecu rmuenro minimal válido.

J) Determinar la forma normal en laproceso que le ha permitido llega q~e se en~uent:a la relación. explicando el

r a a correspondiente conclusión.4) Aplicar el proceso de análisis (árbol

esquema relacional en FNBC' '. de desc()mposición) para obtener unpertinenles. reaJl7.<Jlldolas observaciones que se estimen

e) Un veterinario sólo J d .e pue e aplrcar un tralanlie!1to a cada animal.f) En un tralarniento d . _• a ca a animal solo se le puede a l' .picar un medicamentoSe pide: .

nunca asociado a más de un

a) L~s,animales se identifican indistintamen . _ .código alfabético CC) o por un nú d te, segun las apltcaciones, por un

mero e orden (N).

b) l'odos los veterinarios que trabajan el} el centro Ii . . .y. adclnás, se les Identifica también por su DNl (D~~en apellIdos CA) dIstintos

e) Un tratamiento sólo se le puede a licar .el número de anÍlnal) y ,P a un a~"l1al (se conlprucba rnediann,

tcri . ,nunca un tratumienn, 1 d .ve ennanos con distintos DNl. o pue en aplicar dos

d) Un veterinario (sus apellidos) nod ' . . estame Icamento por cada animal.

En un centro de experimentación Iar .é

comprobar la eficacia de determi d rm~c: uuca sobre ammatcs se deseatratamientos (T) que se apli In~ os medicamentos (M) así como de losdeci . . Ican a animales enfermo· E . . .ecidc IlllPoner normas muy resto' ti . s. 11 su fase IniCial el centrob e ivas en su funciona' Sase de datos aplicando la teoría di' . miento. e desea diseñar una" e a normal!zaclón ar 1-rgurentes espeCIficaciones: ' P a o que nos dan las

Enunciado

.: R\·MA -------------~f!!:ill::~~~1!!!E!~~~~~Q2~L~(' t\PITUI.O .1.NORMAliZACiÓN DE RELACIONE.~ 38.1

PROBLEMA 7

••••••••••••••••

De esta forma todas las relaciones se encuentran en 5FN. incluyendo la~ 11\1,'\·1'

halladas a partir de R6.

Respondiendo ti la última cuestión del enunciado. no es necesario In. lun '.1relación Rx(As. G) en el esquema de relación anterior. ya que r -;)-;)A.Ii(i. \ 1"'1 '"

tanto, no existe ningún tipo de relación entre los atributos As y G.

• R6d( {P, T}, {»

• R6c( {P, e}, (})

• R6b( {As, T}, (})

• R6a( {As. e}. {})

Se ha demostrado que toda dependencia rnultivaluada jerárquica se rll~'d,descomponer, sin pérdida de información ni de dependencias [De Miguel et al .. 19\)111De esta forma. la relación R6 se puede descomponer mediante el método de análl\l\ l'11

cuatro nuevas relaciones:

Las cinco primeras relaciones (R l ..... R5) se encuentran en 5FN. ya que h\dildeterminante es clave de la relación y existe un único implicado, mientras que 1.1relación R6 se encuentra en FNBC. debido a las dependencias rnultivaluud.r­jeráquicas.

• R6({H, E, e. e, T),{As 77GIT; P 77eIT})

Por último, se crea una nueva relación, con los atributos de la clave. donde <epodrían incluir, si quisiéramos, las dependencias multivaluadas que existían en DEP''':

• R5( {E, As, N}, {E, As 7 N»

• R4({H. Au, As}, {11.A" 7As})

• R3({H, P, AII}. {H. P -;)AII})

• R2({H, E, AII}, {JI. E -;)AII})

Esta es la única agrupación de dependencias que se puede realizar para esteproblema. ya que no existen ímplicados iguales ni equivalentes. Por lo tanto, se creauna relación más por eada una de las dependencias funcionales que existen:

• Rl({.e,!2 Ili, (P-;)TI. TI7P. P-;)D. D-;)P})

Il RA·M\}l!:! lJlSEÑO DE Bt\ShS DE DATOS PRORI EMAS RESUE.L ros

•••••••••••••••••••••••••

Page 198: Diseño de Bases de Datos - Problemas Resueltos

-.-.-.•(llC7N

Para finalizar con este a artad ',~~a~i?n de la relación univers~1 par~'laS~a::s~m~ todo lo visto en él mediante la;l acron se puede definir como R(AT OEP)' d e atos del centro farmacéutico, Esta.J ronnan y OEP un conjunto de depe~lde~cia' s °fnde.AT,es el conjunto de atributos que

, unciona es entre ellos:A'r: {l, N, A, D, M, T}

DE?: {

rN7M•

/:'''111/1 rll/f'"l1lelltn, (1 cada (11111/1(/1 sáto SI! 11' puede a r '{J Icor 1/1/ IIletl'C(/IIIl'II/0,

Por último, el enunciado indica (UC a li 'le puede recetar un medicanlento ~ P C:ln,do un dercrmlnado Iral<lnliento sólo se'r/lt(lInien/o y el número de orclel/un anll~31 co~creto, Es decir. el atributoflll'dic17l1lel//o: del al1111131implican funcionalmente al

A, N 77•

(}II veterinaria ~ól 1, I ', o « puec e aplicar 11/1 tratamienm a cada UII;J1I11/,

,Adclllás. existe una relacion similar cntr "lIIedlcanlCnto. donde un veterinario .ól I e el, vcrennano, el anima] y el

I d s o e puede aplicar .'anuna elerrnln<ldo: un umco tratanuemo a un

Un veten nario sólo le puede recetar un medies ,forma que conociendo el apellido (A) di' ,anlenlo a un animal concreto detN e veten nano y l ' ,1, se conoce el nombre del edi e numero de orden del animaldc cuc exi m ICal11cnto(M) que le ' ' ,e que exista): receto a ese animal (en el caso

• A, N 7M

Un veterinaria isus apellidns¡mrdtcamento por cada animal, 110 esta 111/11('(1 asociado (/ mds de 1/11

, ESla frase del enunciado indica que un tratarni " •animal. por lo que, conociendo el valor del" ento sO,lo se le puede aplicar a unpara el atributo númrro de arde di' atributo tratamiento, existe un único valor

d " 11 e animal (T ~ N) Ade ápuc e ser Indicado por un veterinario tF 7 (J), ',n1 s un Iratamiento sólo

• T 7N

• T 7[J

CAPII ULO .l: "iORMALIZACIÓ:-< DE RELACIONES 385

, lo. • .." •••••..' '--'.\..•~~.'--.'-•.-. .

VII II'O/(II1I1l'IHO sólo se le filler/e aplicar (1 1111 animal (se CUITII¡/,lIeha IlIerliall/l'

1'1 IIlílller" de (1T1i1l10I), y 1It1I1CO1111 tratamiento lo pueden aplicur el""veterinarios COII distintos DNI,

• A 7D

• D 7A

Por otro lado, se desea guardar tanto el DNT corno el apellido de los vcterinanv­del centro, donde se sabe que el ONI del veterinario implica funcionalmente el \';11111

del apellido del mismo (D ~ A), Pero además se sabe que no existen en el centro (l."veterinarios con el mismo apellido, por lo que el apellido también puede actuar l'llill'clave primaria, por lo tanto también determina al resto de los atributos (A 7l»,

Todos los veterinarios que trabajan en 1'1centro uenen apellidos (A) distintosy, ademds, se les identifica tambien por Sil DNl (D J,

• N 7 C'

C7N•

Un animal se puede identificar por su código o por su número de orden, F.~hlimplica que los dos arributos podrían ser clave principal de una relación donde ,,'guardan lodo), la información de los animales, y por lo tanto, cualquiera de 111\dI"determina funcionalmente al resto de sus atributos (L' 7 N) Yviceversa (N 7 C):

A continuación se hallan las dependencias funcionales que existen entre e~I(l'atributos:

Los atributos que se desean guardar en la base de datos son: los medicamento-,(M) y los tratamientos (1): el código alfabético (C') y el número de orden (N) de unanimal; DNI (D) Y apellidos (A) de los veterinarios,

UI:, animales se identifican indistintamente, seglín las aplicaciones. por unc(Í¡Ji!{(I alfabérico (C') (1 por UII número de orden (N J,

En este problema, al igual que se hizo con problemas anteriores, se analizandetalladamente los supuestos semánticos del enunciado con el objetivo de determinarlos atributos y las dependencias que existen entre los mismos. Observar que esta vezen el enunciado sólo piden explícitarnente las dependencias funcionales,

DEPENDENCIAS ENTRE ATRIBUTOS

Discusión del enunciado

.\84 DISENO DE BASES DE DATOS PROBI EMAS RESUEI.TOS

Page 199: Diseño de Bases de Datos - Problemas Resueltos

. ('omo NI se deterrnina a . ni d DE ', pa r e 4P, la dependencia (i) es redundante.(tln todo lo visto hasu 1

"'\lbles conjuntos ~ínim~s·ld~ ~:pO:~:loc~n. cfstc ~partHdo se COncluye que uno de losn las unclonales puede ser DEpm, donde:

".-

• IT, N)*Dl:.P= (T. N, D. M, ..,)

- (f): T 7 D l' , uego (T. N)'DFI"::; {T. N, D}

- (g): {J. N 7 M lue (T N)', go , DI:I"= {T. N, D. M}

, Además. se conlPrueha que la dependencia i r.rt:d~ndante. ya que se puede deducir a partir d -1 ~).' N 7 M es una dependenciaIDEPI - (TN-"M)} E e conjunto de dependencl'as DEP'

• 7' ,n este caso es la ' '., :::,k'Ja ~ucomprobación al lector. ' uruca dependenCia redundante de DEP l. Se

}

(i) T. N 7M

(h) {J, N 7 T

(SUStitución de ;\ por D)

(ídem)

(g) D,N 7 M

(t) T 7 D

(e) T 7N

(d) D 7A

(e) A 7D

(b) N -:> e

(a) e 7N

DEPj = {

Por ejemplo, se elige el atributo N y el atribforma, ~I conjunto de dependencias (DEP) de Ru1,0/) CO~l~ re~re.sentantes. De estaDEPI Siguiente: se puede sustitUir por el conjunto

CAPiTULO J: NOI{M¡\lIZA('lóN DE RELACIONES JS7

•....... '.•..•.•

Una vez que se han determinado qué atributos son equivalentes, para facilit,lJ ,,1cálculo de las dependencias redundantes, se pueden realizar sustituciones entre cll..'El "truco" se encuentra en elegir uno de los dos atributos equivalentes l'O"" ,

representante, y sustituir todas las apariciones del otro atributo por el rcprescntan'v ,'11

las demás dependencias funcionales.

El primer paso es identi ficar los atributos equivalentes. En este caso, 1.1'dependencias (1) Y (2) indican que los atributos e y N son equivalentes. Igualmentelas dependencias (3) y (4) indican que lo son los atributos A y D,

De hecho pueden hallarse distintos conjuntos de dependencias minimalc­dependiendo de qué dependencia del conjunto DEP se considera redundante. pero \ll'"

se detalla el cálculo de las dependencias redundantes para uno de estos conjunu«minimales.

No se realiza todo el cálculo de forma detallada, simplemente se concluye que eneste problema todas las dependencias son elementales y no existe ningún atributoextraño en ellas. Pero sí existe alguna dependencia redundante.

Se comprueba, con el mismo procedimiento que en problemas anteriores, si tod,l'las dependencias son elementales, si existe algún atributo extraño, y, por último. '1

existe alguna dependencia redundante,

RECUBRIMIENTO MINIMAI,

)

(9) T, N 7M

(K)A, N 7 T

(7)A, N o7M

(6) T 7 D

(5) T o7N

(4)D o7A

(3)A 7L)

(2) N 7e)86 DISEÑa DE B¡\SESDE DAT(~)S~PI{:.:.:(:.:.:}I:.:.:ll.::..I'.::.:M!:..A:::!!:i:..:.I{:.!;¡.:~:::.s~u:..::hl~,1~'0:.o:S _..:;)..:.~:!."~\1A

•••••••••••••••••••••

Page 200: Diseño de Bases de Datos - Problemas Resueltos

• • • .... :e:e _ •• :. "•• __•

Se elige uno de estos grupos para comenzar la descOlllposición, por ejemplo, el'irllpo fornHldo por las dependencias {A~D. D7A }. Se crea una relución con ellas~ ) y Otra relación con el resto de las dependencias de R y con el resto de los

Para realizar la desconlposición de una relación, en primer lugar se agrupan todasla, depcnde'neias funcionales que poseen el mismo implicante o equivalentes. Como se'''ll1entó en apartados anteriores, en este problema existen dos parejas de atributos"lJlIlvalcntcs.por lo tanto se agrupan.

I'a~o2: Descomposición de R

Los primeros pasos son hallar el recubrimiento minirnal de R y calcular las claves'Jndidatas. atributos principales y no principales, Todo esto se ha hallado en apartados,Interiores.

Paso 1: Recubrimiento mínimaJ y claves candidatas

Por últllno. se real iza la normal ilación de la relación R mediame el proceso de.lIláli~I~,con'truyendo a su vez el árbol de desconlposición.

~ORMALJZACJÓN

La relación se encuentra en 3FN. debido a que el único atributo no principal (Iv!)llene dependencia funcional compleru respecto de la clave (D.N) (2FN) y no existendependencias transitivas (3FN). pero no se encuentra en FNBC. ya que no todotlclenninante es clave candidata. Por ejcmpto. (' ~'), {)~e....

Claves candidatas: {T}, {A, N}, {D. N}, {A. C:} y {D. C}Atributos principales: {1~A. N. D, elAtributos no principales: {M}

Resulniendo:

Debido a quc permutar los atributos equivalentes no altera el resultado. se puede-ustiturr el atributo A por D y el atributo N por e, por lo que los conjuntos (D. N), (A.C) y (D, e) también son claves candidatas.

Por otro lado, se tiene la relación A. N ~ 7', por lo que también el conjunto (A, N)implica a todos los atributo!' de R, y no existe ningún subconjunto de {A,N} quedetermina a todo AT. por lo que se trata de otra clave candidata.

Del cálculo del cierre de los atributos se puede observar que el atributo T implicaa todos los atributos de R (AT), luego T es clave candidata.

:•••.•-

• C';:: {C. N}

• N-;:: {N, C} (equivalente a C)

• A+={A. D}

• D-={D.A} (equivalenteaA)

• T+={ T, N, C'.D. A, M}

(e): T ~N.luegoT+={T. N}

(f): 7" ~ u. luego T'= {7', N, /J}

(b): N ~ e, luego T+= {T, N, D, e}

(d): D ~ A. luego 'rl= el', N, /), e, A)(g): n, N ~ M, luego T' = {T, N, D.C. A. M}

• M+={M}

}

FORMA NORMAL DE LA REI,ACIÓN

, ." n el ue se encuentra una re lución se ha',1El cálculo del nivel de nonnah,:acl,ón e ql 1-' 'n y para hallar cuálc-, '''"' ., - I Y no principales de a re "CIO • .

en los atributos pnnclp.I,es '(1' I de las claves candidatas de la relación.estos atributos el>necesano el C.I cu o ,

En pnrner lugar. se sabe que existen dos parejas de atributos equivalente~,

. . d los atributos de R se nene:Por otro lado, calculando los cierres transiuvos e, •

(f) 7" ~ D

(g) D,N ~M

(h) D, N ~ T

«n o ~ A

(e) A ~ /)

(a) C ~ N

n» N ~ ('

DEpl1l = {

lXH DIS¡.;ÑO DI-. R¡\S¡';S ni' DA Ios' PR~n~I3~L~F.M~/I.2.S~1{~loS~I~JI'?!:J.:ITOQSL _

Page 201: Diseño de Bases de Datos - Problemas Resueltos

a) Un S '.um,nlstrador se identifica por su CÓdigo (e )s y por su nombre (N).

b) Too' .a pieza tiene un número de pieza (P)y un nombre (Np) únicos.

, ~na empresa de producción de a .~cla~lonUIaplicando la teoría de la nonn~lt?m~~tleSL desea crear una base de datosd\ ~Iguientes: a IzaCI n. as especificaciones que tiene Son

Enunciado

PROBLEMA 8Figura 3.22. Árbol de desconlposiciófl de R

Claves: (T)r(O.N)SF"

Cluve.5FN

R AT={A.D,e,M,N.T}DEP:: {D~A, A7D, e7N; D,N-7M;

D,N7T; N7e; T7D; T7N}

.> Claves: (TI,(A,CI,IA,N).

AT:: {A, D} 3t'N(O.ClyIO,N)

DEP = [D7A, A7D}

" {Al y(OI .AT:: {D, e, M, N, T}RI'DEP:: (e7N; D,N7M; D.N7T;

N7e; T7D; T7N)

Cluve, (1'),(0,<':Iy(n,N)~

AT = {e. N} .I.N

DEP = {e7N. N7C}

(e) y{NIAT={D,M.N,T}R2'DEP:: {D,N7M; D,N7T; T7D'

T7N} •

Rl

Por otro lado. se observa que la lizací '.de dependencias ni de información. norma rzacíon no ha Implicado ninguna pérdida

Como se apuntó en apartados anteri lmmima] de dependencia válid . . ores. a no tratarse del único conjuntocorrectas corno soluc'ó . . o, eXisten Otras desconlposiciones de R igualmente

I n para este problema.

CAPíTULO J: NORMALIZACIÓN DE RELACIONES 39'o R" MA

•••••••••••••••••••

Figura 3.2/. Descomposicián de R¡'

La relación Rl. al igual que ocurre con la relación R" se encuentra en 5FN. 1.1relación R2', cuyas claves son {T}, {D. N}, también se encuentra en 5FN. ya 4l1" 'l'

encuentra en 3FN. todo determinante es clave (FNBe), y no existen dependcn,'Io"multivaluadas ni en combinación. Por lo tanto, se ha llegado al nivel de normaliza e"'"máximo de las relaciones. El árbol de descomposición final es el que aparece 1:11 l.,figura 3.22.

AT={D,M,N.T}DEP = {D,N7M: D,N7T: T7D;

T7N}

AT= {e, N}DEP = {e7N. N7D}

Para descomponer la relación R.'. se elige el otro grupo de dependencias con I(h

atributos equivalentes. el formado por el conjunto {C-7N, N-7C}. Se crea una nuevarelación, R2, con estas dependencias, y otra relación temporal R~', con el resto de! la,dependencias y el resto de los atributos de R,' más el atributo representante de RGráficamente se muestra en la figura 3.21

Paso 3: Descomposíción de R,'

Figura 3.20 Descomposicián de R

AT={D,e,M,N,T}DEP", {e7N; D,N7M; D,N7T:N7e; T7D; T7N}

AT={A,D}DEP = {D7A. A7D}

La relación R, (cuyas claves candidatas son {A) Y {D}) se encuentra en 5FN. yaque no existen atributos no pnncipales (3FN). todo determinante es clave (FNBe) yno existen más que dependencias funcionales. Sin embargo. la relación R,' seencuentra. al igual que R. en 3FN. por lo que se continúa su descomposición.

atributos de R más el atributo clave de la nueva relación. Gráficamente se muestran lasrelaciones resultantes de esta descomposición en la figura 3.20

39(, DISEÑO DE BASES DE f),\ ros PROBLEMAS RESUELTOS

•••••••••••••••••••••

Page 202: Diseño de Bases de Datos - Problemas Resueltos

\, "':\.••••••~.~'.••~ ••~.

UIIO pieza de Iln suministrada . . .situarse en dos distritos ~nsta/:S ~:,:Ti:)ft;:~.lInIl1lSlr{/ para 11/1modelo no puede

Por otro lado un su . . t d"11Un único distri;o p~st;;I~IS r~ or s610 puede suministrar una pieza para un modelo1\ } M} existe un únic~ va'IO:pro~i~~entp~'parDacada Ivalor del conjunto de atributos {P,

ara 'P. por o que:

También se sabe que una direcció (D) '.dl\trito postal (Dp), luego existe 01 d n d en. una c~erta ciudad (ei) tiene un único• ra epen encia funcional entre estos atributos:

D, Ci -7Dp

1\ una dirección nunca 1 . de máCiudad. - e correspon e lilas de U1ldistrito postal (Dp¡ en cada

Cs. P -7 Ci•

Cada pieza (P) de 1111 S/JIlIÍTliHr~d (e' ..(1») .1, ti . .. I or si I'\T(/ situada 1'11 IIlIa líl/ica direccián

tu IIl1a eterminada CIudad (Cr}.

Esto indica que para cada valor di' . . .único valor de D y Ci I . e conJu.nto de atributos (P, Cs} se tiene un· lo mi 1, uego existe la dependencia funcional (es P -7 D (") ll' o mismo y es más indicado _ d .. , .. I • O. o queelemental es necesario que exis~~~ ~un' esco~bPosl~lon (para que una dependencia sea

ICO atn uro implicado por cada dependencia):• Cs. ¡> -7 D

• Cs. M. P -7 C

Para cada modelo de vehículo (M) ..J t . " ' 11/1 SUIIIIIII.\/rador (es) suministra una(,1' ermtnada cantidad (C) de cada pieza (PI_ . .

También se sabe que . .Je piezas de ~n' modelo ~~ S~~II~~~t;:~I~r~~!~rPUc~e suministrar una ci~rta cantidadatributos Cs M y P '. r l. minado, Entonces. se tiene que los-uministrador: imp ican a cantidad de la pieza de un modelo vendida por el

• P -7Np

• Np-7P

Toda pieza tiene 1111número de pieza (P) \' 11/1 nombre (NfI) líllico~.

Por otro lado. de cada pleza del automóvil se desea uardar su núrne~~~~~I Igual que ocurre con los suministradores. ambos ~denlltican la Pi:~:' ~o;~rl~

• CS-7N

• N -7CS

CAPÍTULO .1; NORMALf7.ACIÓN DE RELACION"'~JO... 393,IR,\ ~IA-_

En la hase de datos se desea guardar la información del código y nombre de ,:ld,1suministrador de la empresa de automóviles, de los que se sabe que el sun1ini~lrad(l1 'l·puede identificar tanto por su código (Col') como por su nombre (N), luego. tanio 11111'como el otro lrnpllcarán runcionahnente al resto de los atributos del sUlninistradp1. \

por consiguiente se tienen las siguientes dependencias:

UIl suministrador se identifica por su cádigo (Cs) y por SIIIlOII¡hre (NI.

El análisis de los supuestos semánticos del enunciado se detallan a continuaclúll

DEPENDENCIAS ENTRE ATRIBUTOS

Discusión del enunciado

1) Determinar las dependencias funcionales.

2) Hallar un recubrimiento rninimal válido.3) Determinar la forma normal en la que se encuentra la relacion. expltcaruh 1 d

proceso que le ha permitido llegar a la correspondiente conclusión.

i) Interesa almacenar el número de serie (Ns) de cada vehículo (que es único:con el color (Co) del vehículo. A efectos de producción. los vehículos 'l'identifican por un nümero consecutivo (Nu) dentro de cada modelo.

h) El precio (Pr) de las piezas es independiente del suministrador que las provee.

g) Cada distrito postal está asignado a una única ciudad, aunque a una mismaciudad le pueden corresponder varios distritos postales.

f) Una pieza de un suministrador que se suministra para un modelo no puedesituarse en dos distritos postales distintos.

Se pide:

e) A una dirección nunca le corresponde más de un distrito postal (Dp) en cadaciudad.

d) Cada pieza de un suministrador está situada en una única dirección (O) deuna determinada ciudad (Ci).

e) Para cada modelo de vehículo (M). un suministrador suministra unadeterminada cantidad (C) de cada pieza.

\'J2 DISEÑO DE BASES D'" DA ros PRO.'CO~L:=!E:!:·M:!!A.!:S!.CI~Hc:.':S:.::U:.!:E~Lc!..TO:=:S~· ____::c:". \ Mo\

Page 203: Diseño de Bases de Datos - Problemas Resueltos

IlECUBRlMJENTOMlNIMAL

En este apartado se co .IOI~rionnent (DEP) , mprueba SI el conjunto de I dI~Incntales~o d des irredundante, es decir que todo~s I ependencias halladas

, re un antes y no existe ningún atribu a_ as dependencias sean!'t{I¡'lIdellCi 1 to extrano en ninguna de ellas.

as e elllf!lIlales

Con respecto a la d .Illdn cuid s ependenCl3s elemental-IInutoil~;~I~ ~n defin.ir .Ias dependencias para e~~~n, I.O~aranados anteriores se ha

IC.IC o, no tn Viales y plenas por lo sean e cmentales, con un únicoI'/lhlll' _ • que no se detalla su con1probación

os eXlrclIloS .

I:n una de I'\' l as dependencias d DEP .I n\ enejas (9) {P e M e exrsre un atributo cxtr. ñ. s, -7 Dp} el atributo M . al o, en concreto. en las

el; un atnbuto extraño , ya que se

(1) Cs ~N

(2) N ~ e,(3)P~Np

(4) Np ~p

(5) Cs. M, P ~C

(6) 1'. Cs ~ D

(7) p. Cs ~ Ci

(8) D. Ci ~ Dp

(9) p. Cs. M ~ Dp•

(10) Dp ~Ci

( I 1) P ~ PI'

( 12) N,\ ~Co

( 13) Ns ~NII

( 14) N.I' ~ M

( 15) M. Nu ~Ns

}

395('APlrULO 1 NORM. . A[IZACIÓN DE RELACIONES

ORA M4

••••••••••••••••• ~

DEP= {

AT = {Cs, N, p. Np. M. C. D. a. Dp. Pr. Co, Un. Ns}R (AT, DEP), donde:

Para finalizar este apartado, se pueden resumir todos los cálculos anIO:II,'II"

mediante la relación universal (R) de la base de datos de la empresa de produccinll ,kvehículos. R está compuesta por un conjunto de atributos (AT) Y un conjullln ,kdependencias (DEP) que se detallan ti continuación:

• Ns -? Co

• Ns ~M

• Ns ~Nu

• Nu, M ~Ns

Por último, interesa guardar el número de serie y el color de cada vehículo. dondeel número de serie identifica completamente al vehículo. y por lo tanto. i11Ipht'.1funcionalmente al resto de sus atributos (Ns ~ Co. M. Nu). Además, el número NlIlklvehículo en cada modelo (M) también identifica el número de serie del vehículo, p'"lo que Nu. M ~ Ns. Si estas dependencias se transforman en dependencias funcionalv­elementales. se tiene:

Nos interesa almacenar el n,¡rnero de serie (Ns) de cada vehículo (que esúnico) con el color (Co) del vehiculo. A efectos de producción. los vehtculosse identifican por l/lililí/llera consecutivo (Na) dentro de cadu modelo.

• P ~Pr

Por lo tanto, una deterrninada pieza siempre tiene el mismo precio, luego:

El precio (Pr) de las piezas es independiente del suministrador que lasprovee.

• Dp ~Ci

Este supuesto semántico indica que el distrito postal determina tuncionalmerue ala ciudad, pero la ciudad no determina funcionalmente a los distritos postales. ya quepueden existir varios en la misma ciudad. Por lo tanto:

Cada distrito postul está asignado a IlIla única ciudad. aunque aUlla ,niHllociudad le pueden corresponder "arios dissritos postales.

• CS. M. P ~ Dp

o KA·MA394 DISEÑO DE BASES DE DATOS: PROBL.EMAS RI::SUELTOS

•••'•••••••--•.•'•-••••••••

Page 204: Diseño de Bases de Datos - Problemas Resueltos

••••......._••.••••••••

• ("",{e)

• I>'={D}

• N/I':: (P, N{I, Pr). también son equivalente P y Np

• ¡lf'={M}

• N' = {Cs, N}. son equi valentes Jos atributos es y N.

• P'::{P,Np,l>r}

• Cs':: {Cs. N}

El cál.eulo de la forma normal de una relación se basa en los atributos pri " I\ 110 pnn . I di' . nncipa es~'1' " cipa e~ e a ~Isma. por l0. que. el p~i1l1Crpaso es el cálculo de la clave de la~t~~~on.ESle cafcuk~ se basa, en el cierre tr~nsltlvo de su,; descriptores. por lo tanto, en

r. lugar, se realiza el calculo de los cierres transiti vos de cada atributo de R de,'nna individual:

F()R~1ANORl\1AL DE LA REI~ACIÓN

NI' ~P

cs.M. P ~ C

P, ('s ~ D

I~.el ~ C¡

D. C'¡ ~ Dp

Dp ~ ctP ~Pr

N.I' ~ Co

Ns ~Nu •

Ns~M

M, NI/ ~ Ns

)

''-'~''''\c..;;',-,t~---- 1:C~A~l'iITb:L'I!.:!.(::!_)LI.l: N()R~IALlZA(,I(>N DI: RELACIONf,S .197

-

~••••.-...•.•.-P ~Np

N ~C.\

Cs ~N

. d d d rnen se indir.i elPor lo tanto, para concluir con este aparta o y a mo o e resu , .conjunto de dependencias mínimo hallado:

Como Dp se determina a partir de DEP', la dependencia (9) es redundante .•

(6): P.Cs ~ D. luego (P.Csfllrp::: {P. Cs. D}

(7): P.Cs ~ ci. luego (P.CS)'IlH>= {P. Cs, D. Cí}

(8): D. Ci ~ Dp, luego (P.CS)'I)I:P·= {P, o. D. ci. Dp}

• (P.CS)'I)t-.I'·= (P. CS. L). ci. Dp .... }

Dependencias redundantes

La dependencia (9) {P. ('s ~ I)p) es una dependencia redundante. y.a que 'l'

puede deducir .1 partir del conjunto de dependencias DEP' ::: (DEP I - {~, (s ~/)/I! I(nota: 1\0 se realiza todo el cálculo del cierre. solamente hasta el punto que interesa)

Corno el atributo Dp pertenece al cierre transitivo de {P, ~s}, el atributo M es UI1

atributo extraño en la relación, por lo que. la dependencia (9) se transforma ('11

{P,Cs ~ Op}.

(P.Cs)'= { P. NfI. Pro ll.N. D. o. Dp •... }

p.= {P. Np. Pr}.luego (P.C!.f::: {P. Np. Pr}

Cs'::: {Cs. N}. luego (P.C~)·::: {P. Np. Pr, Cs. N}

(6): P. Cs -7 D. luego (P.Cs)"= {P. Np, Pro CS. N. D}

(7): P, Cs -7 Ci. luego (P.Cs>'::: {P. Np. Pr, Cs, N, D. Ci}

(8): D. Ci -7 Dp, luego (P,CS}'Phl"::: { P, Np, Pro Cs. N. D. Ci. Dp }

Jede deducir el atributo Dp a partir de JI y Cs. A continuación se muestra el cálculoetallado:

6 DISEÑO DE BASES OCDA TO!. !'¡{OBI "MAS RI:SUEll OS

Page 205: Diseño de Bases de Datos - Problemas Resueltos

. El siguiente paso es descomponer la relación i . . IR..Itrlbutos equivalentes y las dependencias con el ~Icla '. ,~ara ello se agrupan los~'IOsgrupos, con cuidado de que el .' r d mismo implicante. Se elige uno deJcpc d . Imp ica o no se encuentre en nin cncra, y se crea una nueva relación con el gru mguna otrapo.

I bPor ciemplo, se crea una nueva relación (R,) Con el gru~n utos equivale t {e N} po formado por losn es s, y Ias dependencias {C.f7N. N7CS}.

Se crea al mismo tiempo ..Ic\colnponiendo hasta lIe una nueva relación ternporal (R, ') que se sigue1Il'nl)~los que no son .ga~ aaJla forma normal deseada COn todos los atribulos de Rrrrnripalcs, por lo ~ue :f1n~lp,. e,s en R" en es~c caso, en R, lodos los atributos sonI~h,doa que N .n.pnnclpl? lodos 10/\ atributos de R se encuentran en R '"t no participa en ninguna dependencia d R' . , , peroJ\ dos relaciones se muestr I f' el. se omue. Gráficamente. an en a igura 3.23,

Paso 2: Descomposición de R

Paso1: Recubrimiento minimal y claves

fllnn;~~:a~re~a:aOqd~ ~étOdo es hallar e~ recubrimicnrn minimal de la relación y lau se encuentra (por SI no es necesario la ti ' .

runlOSya se han resuelto en apartados tcri .. escolnpOSIClón). Estosan cnores,

Se aplica el método de análisis o descorn osi ió ...,R, en varias con un nivel de nomlalizació~ n1a:or~ICI n para dividir la relación inicial,

¿!a~s candidatas: {Np, Cs, Ns}, {Np, N. N~}, {p.Cs, Ns}, (P, N, Ns), {N'. ,Nu}. {Np, N, M, Nu}, {P, es,M. Nu} y {P.N. M, Nu} p.

Atributos principales: {Np. P. Cs.N. Ns, M. Na}

Atributos, no principales: { Pro Co. D, ct. Dp. C}

El nivel de normalización de la relación R es IFN N .que ex' ·t I 'h' . O se encuentra en 2FN yaIS en a n utas no pnncipales que dependen f ' l 'clave. Por ejemplo, el atributo Pr depende d punciona mente de parte de alguna

e , pero no de la clave completa.NORMALIZACIÓN

A modo de resumen:

todas~~~ ~:~~~'d:e ~~ncluye (aunque no se explica de forma detallada). que éstas son

CAPíTlJlo 3. NORMALIZACiÓN DE RELACIONES 399o R)\·MA

.......•........'••••-•••-.•I

C· -'o. D luego (Np, Cs, NS)+OEP'={P. Np, Pr, Cs, N, Ns, Co, Nu. ~1.(8): D, I 7' p.D. ci. Dp}(5): es, M, P -7 C, luego (Np, es, Ns)' OEP= {P, Np, Pr, es, N. Ns. Ca. :-;\1M, D, Ci, Dp, C}

N } . atente» pOli"Por otro lado, las parejas de atributos {Cs, N} y {P, P son equiv . P \que también son claves candidatas los conjuntos {Np. N, Ns}, (P, Cs, Ns) y { .' ,Ns), que se hallan permutando los atributos equivalentes.

, di' nto de ¡¡tnhu""Otra clave candidata de R es la que se cal.cula a partir e conJu. sIC l';I"'.

que implica al que tiene el cierre con una cardlnahd~d m~yor, es de:lr, en ~~aor ,¡¡.los atributos {M. NII} implican al atributo N~,que Imp!lca a un nUI~cro un;ll! '(,atributos. Se sustituye en todas las. cl~ves amenores el atributo Ns por 1:1co~~ ,. N, 1/,Nu) de forma que se tienen las siguientes superclaves. {Np. Cs. M. Nu}. I / '\1,,11

Nu}: {P. cs. M. Nu} Y {P, N. M. Nu}. Ade.más son claves candidatas a no eningún subconjunto de las mismas que determina a todo AT.

C -'o. C' luego (Np, Cs, Nsf DEI"=(P, Np, Pr. es, N. Ns, Co. Nu, ~1.(7): P. s 7' l.

D, Ci)

P C -'o. D luego (Np, e, NS)'oll"= {P, Np, Pr, Cs. N. Ns. Co, Nu.;\1(6): • s 7' ,

D}

Se eligen los atributos cuyos cierres tienen una cardinalidad Inay~r iNs. Np. (:,n." d alguna clave y se halla su cierre transitivo (se realizarque pueden rormar parte e ,

algunos pasos intermedios en el cálculo):

(Np, Cs, NS)+DI:P'=AT, luego es clave candidata al no existir ningún subconjuntodel mismo que determine a todo AT.

Suma de sus cierres transitivos: (Np, Cs, Ns)' 01'1"= {P. Np, Pr. Cs, N. Ns, C·(I.n« M}

• C¡' = {Ci}

• Dp+={Dp. Ci)

• Pr' = {Pr}

• Ns·={Ns. Co. NII. M)

• Co'={Co}

• NII'= {NII}

i RA \1.\398 DISEÑO DE BASESDE DATOS: PROBLUMAS RESUELTOS

t ••• '••••••••• e 'eje •••••

Page 206: Diseño de Bases de Datos - Problemas Resueltos

• e-e •• ~..... -••• '..... ".•

Figura 3.26. Deseo/I/posi('ión de R l'

AT = (Cs, P. M. O, CL Dp, Pr. Ns CANu) • ,

DE? = (P.C"s-?D;P,Cs-?Ci; D.C'i-:)D .Dp7Cí; Ns-?Co. M.Nu-?N~:Ns-:)Nu;Ns-:)M) ,

R4 AT = (P. Pr)DEP:: (P7Pr)

Por otro ludo 11.1 relación R 'nusma ralón que' R R' y R . 1pse elncuentra en I fN, pero no en superiores por la'1 . 1 :. Or o tanto s' .. . ,re actones con mayor grado de normalización.' . e continua desconlponiendo en otras

l'aso4: Descomposición de RJ'

Se elige una nueva dependenciakpendencia p ~Pr,ya que el j Ii d para c~ear otra relación, por ejemplo I-ccrean las relaciones de la figu~P31.~~. o no partrcipa en ninguna Otra. De esta fo;ma~

Figura 3.25. Deseanlposición de R!'

La clave de la relación R, es el" , .~e encuentra en 5FN, ya que sólcconJ~nto de los .atflhutos {C:r.M,P}, y por lo tanto«unpleramcntc de la clave (3FN)) (e~ls(e un atrlbu.to no principal, que dependeIFNB(') y sólo existen dependenc'13s' fuo ? IOIS dcternllnantes son claves candidatas, nClon¡¡ es. .

AT = {Cs, P. M. D. CJ. Op. Pr N, CoNu} , , .

DEP = (P.Cs-:).O; P.C~-:)C"I;D.Ci-?Dp:Dp-:)CI: P-?Pr; N~-?Co'M,Nu-:)Ns;Ns-:)Nu:N~-:)M) ,

R'.'

RJ AT:{Cs.M,P.CIDEP = (Cs./vI.P -? e)

Paso 4: Descomposición de Rz'

.En este paso, se elige una nueva de cndenci '.en ninguna otra. por ejemplo la de dcnci la. donde el impticado no se encuentreI di' pen cncra CsM P~C y C ..res o e as dependencias. Se crean d .' ". ,a que no participa en el

en la figura 3.25. os nuevas relaciones (R, y R,') que se muestran

CAPíTIJLO.1: NORMALIZACiÓN O~; RELACIONES 40l

Figura 3.24. Descolllposició/l de R,'

Por otro lado, la relación R,' tiene las mismas claves candidatas que R Y(jtll' 1{ ':

y, al igual que las anteriores, iarnblén se encuentra en IFN, pero no en 2FN. ~;I"litaún existen atributos no principales que dependen funcionalmente de parte de 101,1.1:~¡por ejemplo, en la dependencia Cs.M,P~C. Al igual que en el paso 2: ~c ha 11111111,1.l

atributo Np en R!' al no participar en ninguna dependencia de la relaclon.

AT = {Cs, P. M, C. D. o. Dp, Pr. Ns,Co. Nu}

DEP _ {Cs,M,P-?C; P.Cs-7D;P.Cs-7Cí; D.Ci-7Dp; Dp-?Ci;P-7Pr; NS-7Co; M,Nu-7Ns:Ns-eNu: NS-7M}

Ar={p.Np}DEP = {Np-7P, P-7Np}

En este paso "e elige el otro grupo formado por los otros dos atributo­equivalentes, donde las rclacroucs se construyen corno en el paso anterior. Las el:l\ 1"

de R! son {P} y {NI'}, y se encuentra en SFN. Gráficamente se mucxtru 1.1descomposición en la figura 3.24.

Paso 3: Dcscomposíclén de RI'

Por otro lado, la relación RI' se encuentra, por la misma razón que la relación R.en IFN, conservándose igualmente las claves candidatas.

Las claves candidatas de la relación R¡ son {es} y {N}. Además, se sabe que RIse encuentra en SFN, ya que se encuentra en 3FN por no tener atributos no principalc-.en FNBC, ya que todos los determinantes son clave, y en SFN al no poseerdependencias multivaluadas ni en combinación.

Figura 3.23. Descomposicián de R

AT = (Cs. p, Np, M, C, O, Ci. Dp, Pr,N~,Co. Nu}

DEP ;: (P-?Np; Np-?P; Cs,M,P-?C;P,Cs-?D; p.Cs-?Ci: D,u-?Dp:Dp-?Ci; P-? Pr: NS-7Co:M,Nu-?Ns: Ns-?Nu; NS-7M)

AT = (es, N)DEP = (Cs-?N, N-?Cs)RI

-lOO DISEÑO DE BASES D[ DATOS PROBI.EMAS RESUELTOS

Page 207: Diseño de Bases de Datos - Problemas Resueltos

En el enunciado se pide que se realice el ,. . .Iucrodo de análisis pero de' I r proceso de descomposIción mediante el, ' , , ¡gua ¡orma se podrü I b l'\lnte,~IS.ya que no existen de e . " a la er rca Izado mediante el de1,lotO.el resultado sería igUah11~n~::~~¡'~~. rnulllvaluadas ni de cOl1lbinación, y, por lo

• R,~'({P, Cs. Dp}, {q>} ). donde se ha perdido la dependencia D -)C'p l.

En las figuras 3.29 y 3.30 se muestra el árbol d d . ...uependencias funcionales, indicando en ..cada relaci ,e escompOSJc¡ón sin pérdidas denormal se encuentra. on cuál es su clave y en qué forma

R ,~({p, Cs. ei}. {P. Cs-? Ci })•

. La relación R,. se encuentra en 5FN, mienrras uc l' . l' " ,JI·N. ya que su clave candidata es (P e /) ,q. ~ le ación ~7i1.se encuentra enp.lrcialmellte de ella. Si se quisier~ s •.. ~ 1)} Y el .,lInhuto no principal ct dependenuevo otra dependencia. por ejenlplo~guJr e~conlponlendo esta relación se perdería de

Se observa que se han perdido las dependencias d ti ... .en concreto, se ha perdido la dependencia D, Ci 7D;. on e pUltlclpaba el atributo D,

R7,,({P. es, D},{P, Cs-7D})•

~or ejemplo, si se quisiera descomponer eligiendo la de ind " ptendrían las siguientes relaciones: pcn encia .Cs 7D se

La clave candidata de la relación R el'• , 7 S e conjunto de atributo (/) e }tanto, la relación se encuentra en 3f-"'N . • s . s , por lo

dependen transitivamente de parte ~:~::u:I~~en c;;s~en alr!~utos no principales querelación en otras con un nivel de normal' . , .• e qUIsiera descomponer esta

izacion mayor se perderían dependencias.

La relación R, tiene como claves candidatas los con 'untos (Nlo tanto, todos los atributos son principales De esto ~ JI' s! y (M. Nu}. y. por5FN. . . ,1 orma, a relación se encuentra en

CAPiTULO J; NORMALIZACiÓN Oh REI.ACIONES 40.1f) RA \1,\

• ••••• l. '••••••••••. I.J.J~.,"-••

Figura 3.28. Descomposicián de R~'

A'r = {P. Cs, D, ct, Dp}DEP", {P.Cs-7D; P,Cs-7Ci;

D,Ci-7Dp: Dp-7Ci}

AT = {M, Nu, Ns}DEP = (M.Nu-7Ns;

NS-7Nu; NS-7M}

Por lo tanto. se crea una nueva relación con estas cuatro dependencias y otra ':1111el resto. Se muestran en la figura 3.28.

Figura 3.27. Descomposicián de RJ'

AT = (Cs. p, M. D, Ci. Dp, Pr, Ns, Nu)DEP = (P.Cs-7D; P,CS-7Ci; D,Ci-7Dp;

Dp-7Ci: M,NU-7Ns; NS-7Nu;NS-7Ml

R's

AT = (Ns, ColDEP = {Ns-7Co}

La elección de la siguiente dependencia funcional no es tan simple como en h)~pasos anteriores, ya que no existe ninguna cuyo determinante no pertenezca a ningunaotra. De esta forma, si se eligiera la dependencia P,Cs -)D. no se podría separar de ladependencia D,Ci 7Dp, ya que D se encuentra corno determinante. Por otro lado. esiuúltima dependencia no se puede separar de Dp-)Ci, por la misma razón. ni ésta deP.Cs-)Ci.

Paso 6: Descomposición de Rs'

La siguiente dependencia que se elige para la descomposición es NJ 7CO, dondesu implicado no pertenece a ninguna otra. Se crean las dos relaciones que se muestranen la figura 3.27, donde R~ se encuentra en 5FN y su clave es {Ns}, por la mismarazón que ~. y la relación R~' se encuentra en IFN. al igual que las anteriore-,relaciones temporales.

Paso S: Descomposición de R4'

En este caso, la relación R_¡ se encuentra en 5FN y su única clave candidata es{P}, mientras que la relación R/ se encuentra aún en IFN por la misma razón que R.RI', R2' y R,·. por lo tanto, se continúa su descomposición.

402 DISEÑO DE BASESDE DATOS' PROBLeMAS RESUELros

.•••••••••'••'••'••••.••'.

Page 208: Diseño de Bases de Datos - Problemas Resueltos

v-•....

Enunciado

PROBI.lEMA 9

El Dcpanalllcnto de lnfonnática de la cadena tiene unos estándares de'''1I1cnclalurapura sus diseños. en lo que atañe a los nombres resumidos, que también.~aplica en la base de datos; consisten (entre otras normas que no nos afectan en este,I\nl en dar corno nombre resumido (siempre que no se especifique lo contrario) de111" entidad o de cada atributo la inicial del correspondiente nombre, y cuandol/leIdenlas iniciales de dos atributos distintos se añade la letra de la entidad a la que

'·.I1Cllccen; para referirnos a la clave de una entidad se pone la letra inicial de dicha

Una cadena de agencias inmobiliarias desea crear una base de datos relacionalJplicandola teoría de la normalización.

Figura 3.30 Árbol de descomposicion desde R4'

CI"ve, fr.l'~)3FN

AT::: {P, o,D. Ci. Dp}DEP::: {P.C~~ D; P,Cs~Ci;

R7 D.Ci~Dp; Dp~Ci}

(1",<', f '1u,~IJ.IN~J~F"

• ,.:e .

/I'NAT::: {M, Nu, Ns}DEP::: {M,Nu~Ns;

Ns-?Nu: Ns~M}

• Claves: Idern

AT ::: {Cs. P, M, D, Ci. Dp, Pro Ns, Nu}DEP:: (P.Cs~D; P.Cs~Ci; D,Ci~Dp;

Dp-?Ci; M,Nu~Ns; Ns~Nu;Ns~M)

It'N

Claves. Idem

Rs'S"N

AT::: (Cs. p. M, D. Ci, Dp, Pr, Ns. Co,Nu}

DEP::: {P.Cs~D; P.Cs~Ci; D.Ci~Dp;Dp~Ci; Ns~Co; M.Nu~Ns:Ns~Nu; Ns~M}

AT::: (Ns. ColDEP:: {Ns~Co}

Rs

CAPITULO .1'NORI'o1,\LI7..ACIÓND~ RELACIONES -105

~~ - .

. , 29 Árbol de descomposición hasta R4'Figura ,J. •

11'1'1( ', \" .. Idl''''.. '

AT:; {C~.P.M, D.ci. Dp, ProNs,Co.Nu} . C'7Dp'DEP:; (p.es7D: P,CS7Cl:D.' ""Dp7Ci: NS7CO;M.Nu7Ns.

R.,¡' NS7Nu;Ns7M)

AT = {P. Pr}DEP:; (P7Pr)

CI,,,·,,,, 1Cs.M .1'1~"'N

I\T:; {Cs.M. P. e}DEP:; (Cs.M.P7 C)

T «( 's P M D Ci Dp.ProN~.Co,A = -", . , ,Nu) e'7Dp'DEP= (P.Cs7D: P,Cs7Ci. D. ~' •Dp-sCi: P7Pr; NS7CO,M.Nu7Ns: NS7Nu; NS7M)

¿ ~ ~.~~<'Id.n,

,..----:-:--:--~-- C' D Pr NsAT={P,Np) I\T=(Cs.P,M.C.D. r. p•. "DEP:: {Np7P. P7Np} Co, Nu} 7D'

DEP:; {CS,M,P7C;P.Cs.. .P,Cs7Ci: D.Ci7Dp; Dp7C"P7Pr: NS7CO:M.Nu7N~.NS7Nu: NS7M}

Rz

CI.. c, le,}. 1'\1St'N

AT = {Cs.p. Np. M. C. D. o. Dp, Pr,Ns.ce. Nu} C.

DEP= {P7Np; Np-7P:C~."1.P~ .p.Cs7D; P,CS7CI:D,CI7Dp,Dp7Ci: P7Pr: NS7CO:M.Nu7Ns: NS7Nu: NS7M}

AT:; (Cs. NIDEI'::: {Cs7N. N7CS}

CI.,,·,· NN IIN,. es N'IINp.'1,N".INp.c,.N.I,INp•• N"N ~1":IN,;,('s,Nu.M1INp,Cs,Nu,Ml,IN,.... u..,INI,.N.Nu,M1It'N

R

.' RA·(\lA~().t DISEÑO DI! BASES DE DATOS. PROBLEMAS RESU~.LTOS

C D Ci Dp Pr,Ns.Co.Nu)AT::: {CS.N, P.Np,M. , . '·N ~P' CS.M.P7C;OEP= (Cs7N; N7CS; P~Np. PD '0 7Ci; P7Pr;

PCS7D; P.CS7CI;D.CI7 p. pN'S7Ctl;M.Nu7Ns; NS7Nu; NS-7M)

Page 209: Diseño de Bases de Datos - Problemas Resueltos

Este párrafo del enunciado indicaluego,allralarse de su clave princi al i qu~ .ulla agencia se identifica por su código,dl' !a agencia (CA -.?NA). Tamb'éP , m,plica funClonalrncnte al resto de los atributosdl'IJ I n se sabe que todas la ", , ntos, Juego el nornbrc también odrfs . s age~elas, ucnen nombresjd'IVe candidata). y por Jo tanto lafn~ié;~ dc,t.uarfcon~o clave pnmaria en la relación'('la agencia (NA -'?CA). imp rca unclonalnlenle a todos los atributos

, El análisis de los supuestos senlánticos del enun "r~allzando las referencia~ al enunciad enuncíado se detallan a continuación

o que se estiman oportunas: '

Cada agencia, identificada por un cádi o I .distinto (NA). Las agenciar " ~ .(e (~l:(!I1c'la (CA). tiene 1111nombreDN ' tenen 11" unten 1/lIIIarq "d ifiI (DT) o por un código (Cl'¡ Ad ' «e se te entt IC(I por suI ' emas 1111(/ persona '1 . I .1 e una agencia, . . ~(J o /1111'1 L' ser titular

Código de agenciaNombre de agencia

DNI del titularCódigo del titular

lnrnuebleOfertarue

Fecha inicialFecha final

Precio míninlOEmpleado

DemandanteHoras dedicadas a ofertantes

Horas dedicadas a demandantes

Nombre abreviadoNombre completo

CANADTCT1OFIFFPEDHOHD

,

En primer lugar. se realiza una lista con tod . los . .base de datos, para no perder el signi(j~ado d I oShoS abtnbl~tosque se Incluyen en la

e norn re a reviado de la misma:

Discusión del enunciado

DEPENDENCIAS ENTRE ATRIBUTOS

3) Aplicar el proceso de análisis (árbol de dese . "esquema relacional en FNBC h . d escompoSlclon) para obtener unpertinentes. acien o las ohservaciones que estime

CAPíTULO J: NORMALIZACIÓN DE REf.ACIONi;S 407\) KA \1A

•••••••••••••••••••

2) Forrna normul en la que se encuentra la relación, explicando lodos lo, r1:I'I"

del proceso que le ha permitido llegar a la correspondiente conclusión.

1) Especificar las dependencias funcionales que existen entre los atributo, (k' l.,base de datos (si del enunciado se deduce la inexistencia de dependencia cnuvun implicantc y un implicado incluirla)

Se pide:

f) Cada empleado tiene que registrar el número total de horas que ha dedicado .1

cada ofertante y a cada demandante de un inmueble (téngase en cuenta que epreciso distinguir entre horas dedicadas a ofertantes (HO) y horas dedicada' .1

demandantes (HD»

e) Los empleados tienen inmuebles a su cargo y durante el período (fecha inill.tly fecha final) que la agencia está encargada del inmueble puede cambiar elempleado encargado del mismo,

d) Las agencias tienen demandantes de inmuebles (D): cuando un demandantecambia de agencia. se le considera por la cadena como un dcrnandunrcdistinto.

e) Del titular de una agencia dependen empleados (El, los cuales no puedendepender nada más que de un titular.

b) Las agencias disponen de muchos inmuebles (1) para su venta o alquiler, peroun inmueble sólo puede ser ofrecido en venta o alquiler por una única personaofertan te (O). El ofertante de un inmueble se lo entrega a una única agencia (11:la cadena (o a su titular) durante un período de tiempo (dado por una techainicial (Fl) por una fecha final (FF»; durante este período de tiempo no puedevariar el precio mínimo (P) solicitado por el ofertante para dicho inmueble (;1

un ofertante, un inmueble y una fecha inicial sólo le corresponde una fcchufinal).

a) Cada agencia. identificada por un código de agencia (CAl. tiene un nombredistinto (NAl La" agencias tienen un único titular que se identifica por 'uDNI (DT) o por un código (CT). Además. una persona sólo puede ser titularde una agencia.

Las especificaciones que nos dan son las siguientes:

entidad, y si ésta coincide con el nombre de algún atributo se pone una C delante de lamisma.

~()ó OISf'ÑO DE BASES DE DA ros PROl31.EMAS RF.SUE1.TOS ') RA\1\- ~~~~~~~----------------~~-

•••••••••••••••••••••

Page 210: Diseño de Bases de Datos - Problemas Resueltos

.• .:e .' ••••••

• f.,().! ~ ttc)

• E,O.! ~ HD

Cada emplead» tiene que registrar 1'1' .(1 rada ofertante l' a cada d' - d. IIU",er(~totat de horas que ha dedicado, . ,- eman allte de un mmuebte (t •

es preciso cltslinguir entre hor. el el el 'enga,re en cuenm qued'd' d. el as e lea IIr (1 ofertan¡ (f:fOt tea (1.1 a emandantes (HD)) '~. I es J y horas

. Por Últirno se sabe que un em lead '"I~il,ofertanll' y a coda denlandanie d •() registra un nürnem total de horas dedicado a!ln,lonales 1l1'-lS' e UI1 mmucbte, luego existen dos depe I :

, L. • ' , ent cnClas

E~l.u indica que los empleados tienen vari " ,~tlenlas, en un período determinad de u os Innlucbles a su cargo (E-I->!),puedecambiar de empleado, luego ~o le ~enlPO" la ~ge~cla encargada del inmueble1:). Por lo tanto no se tiene ~inou 'fo ete,rnllna funCIonalmente (FI,FF.l.CA _1_>~nunciado, "" na In onnación de dependencias en este párrafo del

I.I~\.elllfllt'atlo,\ tienen illllllleble.\ (1 lit C .1///('/(/1 \ [echa final¡ qu I ,1I':/:(1 I durllnte el pertodo tfccha

I . I? a agencia esta encare 1 I / 'UIIII 1/11/ ('II!,npleado encar id' ' ' "al a ~e fllllfltebll! puedegalo e mismo

vari~s denlandantcs de inmuebles. luego (CA-l.>!)cambia de agenci '1 'C le' id ). pero,,' consr era con l ódi .dernandante implica funcion~l In e • I,go distinto,

mcnre a una uruca agencia

Cada agencia tienecuando un <1clnandanteluego cada código deI()~('A):

• /) 7 (tI

[A\' a~ellcias tienen del11anda/lce.fde inmuebles ),cambia de aeencia '·t' le' .id (l J. cuando un demandante, , ". o (OIlJI er(/ IJor In e .1distinto, l1(,ena COl1l0 1/11 delnalld(lll/e

Este párrafo indica que de un titular de , 'luego el código del titular no detcrmioa f epc!ldell vanos enlpleados (no uno Sólo),aunque un empleado sólo depend d unclonal,mentc al enlpleado (CT ·1-> E)

ti f ' e e un determinado tít I 1 •rmp ca unclonalnlenle al titular d 1" I U ar. uego cl empleadoe a agencia que su responsable (E 7C1):

• E 7CI'

los cuales no puedenD(·I titular de II/I{/ " dagen; tu epentlen empleado» (E)depcndrr nudtt nuis que de UI/ titular. ' J.

• O,/.F/.FF 7P

• O./.f·1 7 f'F

CAPITVLO 3: I\ORMAIJZACIÓ,'l DE RELACIONES 409

• /70• O././-'/.f'F ~ CA

Por otro lado. se indica que las agencias disponen de varios muebles para su \~nl,1o alquiler, luego su identificador no determina un inmueble determinado (CA-/->/ISin embargo, un inmueble sólo puede ofrecerlo un ofertante, luego (1~O), Adcln¡í" ,'1ofertante de un inmueble se lo entrega a una única agencia durante un período ,ktiempo, luego, conociendo el ofertante, el inmueble y el período de tiempo, <e ,<lll!" L'

a qué agencia ha sido entregado (O.l.FI.FF~CA), Además. para el 1111,"1"deterrninante se tiene que el precio mínimo solicitado ha de nlanlener~e, Itl,'~"(O.I,F/,FF~P), También se sabe que para un ofcrtante, un inmueble Y una 1",11:1inicial s610 existe una posible fecha final, luego también se tiene la depende'n, la

funcional (O.l,Fl7FF), Resumiendo todas estas dependencias. y ohvlandn las qur HI'

10 son. se tiene:

UH 118('/11'1(/\ disponen de "",rhnI IIII/I"t'I1I('5 In para III 1'('/11(1(1 ulquilcr.pero 1'" II111111el11esólo puede ser ofrecido e/l I'I'II/CI o alquiler por II/1a 111111(1

persona ofertante I()), El ofertante de 1111 inmuehle se lo entrega (1 11/1(11;1111'11

agencia de la cadena (O a Sil titular¡ durante UII periodo de tiempo (tkulo por11110fecha inicial (FI) por IIn/l fecha [inal (FF)); durante es/e periodo detiempo 110 puede variar el precio /II¡lIiIlIO (P) solicitado por el ofertante paradicho inmueble (a un ofertante. Ur! inmueble y una fecha inicial sólo lecorresponde una fecha final J,

A partir de todas estas dependencias se deduce que C'A, NA, C7' y D1' \1111

atributos equivalentes. ya que CA y NA son equivalentes al implicarse mutuamente. lomismo ocurre con D1' y CT y además también se tiene que CA y D7 se implic.uimutuamente,

Por otro lado se sabe que cada agencia tiene un único titular, por lo queconociendo la agencia, se "abe quién es su titular, por ejemplo. tómese corno atributorepresentativo de la agencia su código y como atributo representativo del titular suONI (CA ~D1),Además un titular sólo puede serlo en una agencia determinada(DT~CA), También se sabe que el titular se identifica por su ONI O por su código(relación similar a la de la agencia explicada anteriormente), luego se tienen dosdependencias funcionales más (D7'~CT) y (CT~Dl), Resumiendo todas estasdependencias se tiene:

• CA ~NA

• NA ~CA

• CT ~DT

• D'T ~cr• CA 7DT

• DT 7CA

Page 211: Diseño de Bases de Datos - Problemas Resueltos

(a) CA ~NA

(b)NA-;}CA

(1') CT ~ D7'

(d) 1)7' ~ ('1'

(e) CA ~ D7'

(}) I)T ~ CA

ts¡ I ~ O

• Por la misma razó I d(10) ( '. n, en a ependencio (9) {O,I,r'I,Fr' ~ .

O.~,¡'I-;}FF} yen la depcndencia (13) (E O I ~ P), en. 1,1 dependenciaes un atributo extraño. ,. HO} el atnbuto O también

• Igual Ocurre con el atributo FF _que I I . que es extrano en las d d .en a (ependencia (10) {O,I,F/~FF} se" epen .enclas (8) y (9). yaO, J Y FI. se conoce el de FF. . Indica que conOCiendo los valores de

Por lo tanto. y para concluir con e,kpendencias de R tras la dele " - d ste apartado se realiza un resunlen de las

ccron e estos atributos extraños:DEPl :: {

Existen atributos extraños en tr . dcálculo de estos atributos e t ~ es e las dependencias de DEP se detalla el

x ranos en las dependencias implicadas: '

. En primer lugar. en la dependencia (8 "atributo extraño, ya que se puede dedu ' cl {O, 1,~/.FF ~ c."A} el atributo O es un

crr a partir del resto del determinante:• (I,FI,FF)':: { 1, rt, FF, O, C,1 oo.} ,

(7): I ~ o. luego (I.FI.FF)':: {l, FI, 1"F,O}

(8 sin modificar): ().I FI FF~ CA I ' ._ ... ", uego (I.FI.r'F)'= {/, n, f'F, O, ('A)

, Se han definido todas las de ende .implicado. plenas y no triviales) I P ncias para que, sean clernentales (un único

, uego se cumpla esta primera condición.Atributos extraiios

!!!0 ¡\'1A.

~---------------------- __ ~c~¡~\P!I'~ru~I.~O~J~:N~'O~R~M~A~L&I7.~.i\~I]ró~N~D~E~·~R~~"L~A~c~rO~N~'E~s-±+Url

sean elementales. que ninguna tenga atrib _dependenci3 redundantc, Cada u u d ,~u~os ~xtral1os y no exista en OEP ninguna

na e estas condiCiones "e detallan a continuación,Dl!pelldt!/U'llI.\ eleme11tat es

••••••••••••••

Recubrimiento mínlmal

Se comprueba que el conjunto de las dependencias halladas en el aparl,l\h'anterior (DEP) es irredundante. Para ello ha de cumplir que todas sus depenot:lh1a'

El primer paso para hallar la forrna normal en la que se encuentra una relación ,',el cálculo de su recubrirniento irredundante. posteriormente se hallarán las claves lit' 13misma, sus atributos principales y no principales. A partir de los atributos prin.:ipak'y no principales ya se puede determinar la forma normal en la que se encuentra.

}

FORMA NORMAI~ DE LA RELACIÓN

DEP:: {

(l)CA~NA

(2) NA ~ CA

(3) CT~DT

(4) DT ~ CT

(5) CA ~ DT

(6) DT ~CA

(7) / ~ O

(8) O,T,Fl,FF' ~ C'A

(9) O,I,F/,FF ¿P

(10) o.t.n 7 rr(11) E ~CT

(12) D~CA

(13) E,O,l ~ HO

(14) E,D,/ ~ RD

AT:: {CA, NA, DT, (7', 1,O. Fl. FF. P. E, D, HO. HD}

R (AT, OEP), donde:

Para finalizar este apartado. se pueden resumir todos los cálculos anterioresmediante la relación universal (R) de la base de datos de las agencias inmobiliarias, Restá compuesta por un conjunto de atributos (AT) y un conjunto de dependencias(OEP) que se detallan a continuación:

.) R~M\~ Io DISEÑO DE BASES Dt DATOS: f'ROIlLEMAS RESUELTOS

••••••••••••••••••••••

Page 212: Diseño de Bases de Datos - Problemas Resueltos

.~"'•.•••

El siguiente paso es descomponer la relación inicial. R. ya que no se encuentra enel nivel de nornlalización deseado. Para ello se agrupan los atributos equivalentes y lasuCpcndencias con el mismo implicante. Se elige uno de estos grupos, teniendo en

Paso 2: Descomposici6n de R

El primer paso del método es hallar el recubrimiento minirnal de la relación y laJonna normal en la que se encuentra. Estos puntos ya se han resuelto en apartadosanteriores.

Paso 1: Recubrimiento mínímal y claves

Sc aplica el método de análisis o descomposición para dividir la relación inicial.R. en varias con un nivel de normatizacíon mayor.

~ORMAIJIZACIÓN J\.1EOIANTEANÁI"ISlS

El nivel de normalizaCión de la relación R es II;N. No se encuentra en 2FN. yaque exrstcn atributos no principales que dependen funcionalnlente de parte de algunaclave. Por ejemplo, el atributo O depende de l, pero no de la clave completa.

- Claves candidatas: {F.:,D.J,F/}

Atributo), principales: (E,O.l.F/)

- Atributos no principales: {CA, NA. rrr, (l. o. FF. P, HO. liD)

Resumiendo:

Por las dependencias (i) y (j) se sabe que si se añade el atributo FI al conjuntoanterior se implican funcionalmente a P y FF, luego el conjunto {E.D./.FI} sí es clavecandidata para la relación R, ya que además ningún subconjunto determina a todo AT.Se concluye. por último que ésta es la única clave para R. Se deja para el lector lacomprobacíon de que no existe ninguna clave candidata más.

Por otro lado. si se añade el atributo I a la clave. con las dependencias (g), (m) y(n) se obtiene que {E,D./} -={E,D.CA.NA,DT,CT,O.HO.HD}. Todavía este conjuntono es clave, ya que no implica funcionalmcnte a todos los atributos de AT (aún faltanFI. P Y Fr'), por lo tanto, se añaden nuevos atributos al conjunto.

Se eligen los atributos cuyos cierres tienen una cardinalidad mayor, E y D, queademás han de formar parte de todas las claves, ya que no son implicados por ningúnconjunto de atributos. Hasta el momento se tiene que {E·.D}· = {E.D.CA.NA.DT.CT},por lo que fallan aún atributos de AT no implicados por el conjunto {E.D}, Luego{E.O} no es clave por sí sola. Se han de añadir nuevos atnbutos a la clave.

CAPITl'LO.1 NORMALI/.AC1ÓN DE RELACIONES .¡11

•• • e ••• -•••• :ze.e e

••

FF' = {FI;}

HU' = {IJO}

HD+=(fIO)

•• FI'={FI}

•••••••

CA+={CA, NA. DT. CT}

NA' = {CA, NA. DT, CT}. equivalente al anterioror = {CA, NA, DT, C·T}. equivalente a los anterioresCl" = {CA. NA. DT. C'f}. equivalente a los anteriores

E+={~ CA, NA, DT. CT}

D+= {D. CA. NA. D7: CT}

J+={J,O}

O+={O}

DEr'" = DEP I

. . .' ales v no principalesClaves de la relacién y atrtbutns prmcip '.

I 'é . bus: en los atributos principalesEl cálculo de la forma normal de una rcluCl,>n se ,~~~es re:,lizur el cálculo de la' , I d I nisrna por lo que. e primer pa: , .

y no pnncrpa es e al" '. , .. I " rrc transitivo de sus descriptores. queclave de la relación, Este calculo se b,I~,1en e CIC

se detalla a continuación:

Dependencias redundantes

d ., ue ninguna oc ellas se puedeEn DEPI no existen dependencias redun antes. ya q. '1' Se deja su'., , '. . sto de las dependencias del nllslno. con~u~ o. , ...

jCOUCll a partu del le, l coni to de dependencias 111111111111para R es:comprobación al lector. Por lo tanto. e conjun

}

,ya que (/-.?U)

,ya que ( I,Fl-.?FF y I-'?O)

.ya que ( I,FI-.?FF Y l-'?O)

.ya que ( I-'?()

(h¡ [.FI -.? C'A

(i) I.FT -.? P

(ji [.FI -.? FF

(k) E. -.? CT

(1) O -.? CA

(111) E.I -.? HO(11) E.D.I -.? H{J

1~ DISEÑO DE BASES DE DATOS: PROBLEMAS RESUELTOS

Page 213: Diseño de Bases de Datos - Problemas Resueltos

, En este caso, la relación R., se encuentra en 5FN . ,U!}. mientras que la relación R,¡' cu . '1_ . Y su urnca clave candidata esellCuentra aún en IFN po I .' ya e ave candidata es el conjunto {l Fl D} se

. . r a misma razón que R R' R' , '.. .COllllnuasu descolnposición. . 1, l Y R) , por lo tanto. se

Paso 4: Descomposición de RJ'

Otra dependencia cuyo irn li dR1' es {E-7CT}. Se opta porPI:c~I~C~~se ~ne~~ntra en ninguna otra dependencia demuestran en la figura 3.34. n e esta y se crean las relaciones que se

La clave de la relación R, es el conjunto {I E}por el mismo razonamiento que el apartad t' , . y por lo tanto se encuentra en 5Fencuentra en IFN. y sigue manten¡ dIo anl error. Po.r otro lado, la relación R,' se

. rnen o as caves candidat d R R ' "tanto, se continúa descomponiendo en otr as e , I Y R2 • Por loas con mayor grado de normalización.

Figura 3.33. Descomposición de R,'•

R :1 AT = {I,E,HO}DEP = {I,E~HO}

AT = (CA,NA.CT,DT.J.O, FI,FF.P.E.D}

DEP = {E7CT; D~CA: 170:f.FI7CA,P,FF }

R'.1

Paso 4: Descomposición de Rl'

Se elige una llueva dependencia, donde el im l' ad ' . .dependencia de R '. pica O no parucipa en nmguna otra, 2, por ejemplo, la dependencia (E I -7 H()) ,

relaciones que se rnuestran en la fig 3 33' . J, creandose lasura . .

Figura 3.32. DescolllpOsiciólI de R,'

Rz AT = {l.D,E,HD}DEP = (I.D,E~HD}

AT = {CA.NA,CT.DT.I.O,FI,FF,P,E.O.HO}

DEP = {E7Cf: D~CA: I~O;I,FI7CA.P.FF: E.l7 HO}

Rz'

CAPITUl.O .1, NO({MAIIZACIÓN DE REI.ACIONES 415

••••••••••••••••••

La relación Rl se encuentra en 5FN y su clave es el conjunto {D, ¡'~.I}.micnrrn­que la relación R2' sigue estando en IFN Y su clave es igual a la de R y R l' siguiendoel mismo razonamiento.

En este paso se elige otra de las dependencias de R l' cuyo determinado no seencuentre en ninguna otra, por ejemplo. la dependencia (/,D.E -7 HD). Se crea unanueva relación R] con esta dependencia y sus atributos y otra relación temporal R"con el resto de las dependencias de R l' Y los atributos restantes (se elimina ,'1impl icado }ID). Gráficamente se muestra esta descomposición en la figura 3.32.

Paso 3: Descomposición de R.'

Por otro lado. en la relación RI' se han agrupado las dependencias que tenían elmismo determinante {l. FI} y se han omitido todos los atributos que no participan enninguna de las dependencias restantes. Se encuentra, por la misma razón que 1.1relación R, en IFN. Igualmente, la clave candidata de R se sigue manteniendo en R .por el mismo motivo.

Las claves candidatas de la relación R 1 son {CA}, {NA}. (f)T} Y {CT}. Ademáv,se sabe que R I se encuentra en SFN. ya que se encuentra en 3FN por no tener atributosno principales, en FNBC. ya que todos los determinantes son clave. y en 4FN y 5FN alno poseer dependencias multivaluadas ni en combinación.

Figura 3.3/. Descomposicián de R

I\T = {CA.NA.CT.DT,I.O.FLFF,P.E.D,HO,HO}

DEP = {E~CT; O~CA; 170;[,F[~CA,P,FF; E,17HO;[,D,E~HD }

AT = (CA. NA. CT. DT}DEP = {CA~NA, NA~CA.

DT~CT, CT~DT.CA~DT, DT~CA}

Se agrupan todos los atributos equivalentes de R (CA. NA. [)f. en creando unanueva relación (R ¡) con ellos. Se crea al rnismo tiempo una nueva rclucion temporal(R I') que se sigue descomponiendo hasta llegar a la forma normal deseada.Gráficamente estas dos relaciones se muestran en la figura 3.31.

cuenta que los implicados de las dependencias elegidas para la descomposición sepueden perder, y por lo tanto pueden perderse dependencias funcionales.

---_,IM,\ "1'414 [)ISr.ÑO DE BASES DE OA'IOS "({OHI !'MAS ({~.SUEITOS

~•••••••••••••••••••••.

Page 214: Diseño de Bases de Datos - Problemas Resueltos

.._....•-.~~'••••••.....-.~Figura 3.37. Árbol de descomposirián hasta R.s'

(.'101\' 11.0,"11l'"

R.I

RAT = {CA.NA.cr.DT.I.().Fl.r~.p.E.I),IIO,HD)DEP~{<;A~NA. ~A~CA:(T~f)T; or-scr.

(A~DT. Dr~CA: E~CJ. D~(,A.I~(),1.t·I~CA.P.FF.E.I~JlO: 1.[l,h~IID J

/ (,·I..~t·JI," .•'I.f:)Jf.'N

A'f' = {CA. NA.cr, DT)DEI'= rCA~NA, NA~(,",

l)T~CI, C'T~DT,CA~I)T, I)T~CA)

1t'~1'¡'AI,l' 1I.IUTI"., - (C'A,NA.(,I ,1)T,I.O.FLf'I·.P,

1'"f).1I0.lln)RI' UII' . Cl:~C1. f)~('A.I~(),

1.f"~('¡\.P.I;F. I.,I~II(),11l1'~II())

C'I..~t11.1>,.' •• .l

AT= {I.D.F.IIOII~'"

DF.P: {I.D.E~HDI

11.1>." \T - (CA.N·\.C-I.DT1.0.FI.FF.PLD,1I0I

Rl' DI,P= (l~C1 D~('A. I~OI.FI~('.\,P.FF. I:.I~IIOI

.> ~ ('1,,, 1I.Il.ft.f1AT= (I.E.HOJ "...DEP=II.E~HOJ Ar = leA,NA,C'T.DT.I.O.FI.

11.'1 R.I' FF.P.E,D)DEP= (E~C1, f)~CI'.I~O:

I.FI~(,A,P.I-F)

-. (1.1\" II,O.......~IJ"~Al = CE.C1')DEI'= (E~C'T) R.

AT (C'A,NA,IYI.1.0,FI.

1>'1I:F.r.!!,")

LJI:P. (f)~CA: I~O:I.FI~('A.I'.FF )

RI

Para finalizar, en las figuras 3 37 3 38 .indicando en cada relación cuál es s~ C¡~e' se m.u;stra el árbol de descomposicién,

av yen que rorma normal se encuentra.

Se observa que en la descornp ", di"ninguna dependencia funcional y q~:lt~~;s ¡;s ~e~:I,~clo>nunl~ersal R no se ha perdidoque no se pueden descomponer más. clones se encuentran en 5FN. por lo

La relación R, se encuentra igualmente e 5FN .se encuentra directamente determi d I ni' ya que todo atributo no principalcandidata (FNBC) y n . n~ o por a ~ ave (3FN), todo determinante es clave

o existen atributos multival ad ' . "candidata es el conjunto de atributos {/,FI}. u os ni en combinacién. Su clave

CAPITULOJ: NORMALIZ¡\CIÓNDERELACIONES -117f) RA "-f,\

••.•.•~ ...._..FIgura 3.36. Descomposicián de R.~·

R (1AT = {l,O}DEP = {I~O}

AT = {NA. DT. 1, FI, r,P,E,O}

DEP = (I.Fl~NA.P.FF )

Se elige otra de las dependencias funcionales restantes, por ejemplo {1-70} ) "crean dos nuevas dependencias. R" Y R7, que se muestran graficamente en la ligur:'3.36. La relación Re, se encuentra en 5FN y su clave candidata es {/}.

Paso 6: Descomposición de R5'

Figura 3.35. Descomposición de R4'

Rs AT = {O, CA}OEP = {04CA}

AT = {NA,OT,I,O.FI.FF.P,E,D}

DEP = (140;I.FI4CA.P.FF 1

Rs'

La siguiente dependencia que se elige para la ccscomposícíón es {D -7CA}.donde su implicado no pertenece a ninguna otra dependencia. Se crean las dosrelaciones que se muestran en la figura 3.35, donde R5 se encuentra en 5FN y su clavees {D) y la relación R~' se encuentra en l FN. al igual que las anteriores relacionestemporales,

Paso 5: Descomposición de R_¡'

/:;8I1rl1 3.34. Descomposicián de RJ'

R4AT = {E, Cf}OEP = {E4Cf}

AT = {CA.NA.OT.l,O,FI,FF.P,E,O}

DEP = {D4CA: 140;I.FI4CA.P.FF 1

o RA MA-116 DISEÑODERASESDEDATOS' PROBLEMASRESUELTOS

Page 215: Diseño de Bases de Datos - Problemas Resueltos

V" /;'sllIdial/le (E)J penn(lnece en I(I/Ni.flna Afila (A) durante lodo '1D'~ ta.

Se sabe que un dClenninado estud'.Cn lumisma aul<l, y por lo tanto los atribl~tnotseDenyuE",dfal~oncreto siempre se encuentra

. 11111'rcan el aula'• /),E ¿A '

Cada Día (D) .5ÓI de i. ,o se pue e Impartir 1111 Seminaria de cada Tipo.

,ESlo indica que para un día concreto 1I •~emlnario se ha impartido, y por lo ta t yd' n, upo concrct? de seminario se sabe qué• /),T ¿S n o se a a dependencia funcional siguiente:

I)iscusión del enunciado

OEI'ENI>ENCIAS ENTRE ATRIBlJTOS

El análisis de los Supuestos semánticos del enunciado se detallan a co t' 'ón muaci n:

Todo Sl'lIlillario (S) esde un unico Tipo (T).

Luego. conociendo el valor del atrinuto S .por lo tanto. S detennina funcionalmente a T (Ss::~.~.de saber el valor del atributo T.y• S¿T

J) Determinar las dependencias entre atributos.

2) Hallar un rccunrinlÍento mínima¡ válido.

3) For~la normal en la que se encuentra la relació . di , _unplden una forma norma] más avanzada. n, In Icando que dependencias

4) Esquelna relacional en quinta formaobservaciones que estinle pertinentes. normal y esquema definitivo Con las

f) Un Seminario no puede tener dos Profesores (P) el mismo Día

g) Cada Tipo dc sClninario está sicm r . " do , .referencia (L) COnindcpendencl'¡j dP'CIasocIad o al 1111~lnOconjunto de Libros de

e resto e los atflnuto:.

h) Cada Seminario se imparte síern re ra l . . .pareja Día y Aul . d P, pa e rmxmo conjunto de valores de la

a Con In cpcndencla del resto de los atributosSe pide:

419CAPITULO l; NORMALIZACIÓN DE RELACIONESo> KA t\f-\

••••••••••••••••

e) Cada Día en un Aula sólo se puede impartir un Seminario

d) A un Estudiante se le da una única Nota (N) como resultado de un Seminario

e) Un Estudiante (E) permanece en la misma Aula (A) durante todo el Día

b) Cada Día (D) sólo se puede impartir un Seminario de cada Tipo

a) Todo Seminario (S) es de un único Tipo (T)

Se desea diseñar una base de datos relativa a los seminarios que se imparten enma determinada Universidad. El usuario nos da los siguientes supuestos semánticos:

~nunciado

>ROBLEMA 10

;

Figura 3.38. Arbol de descomposicián desde R4'

CI",·c 11.1<'1St'N

AT = {NA. DT, l. FI, F, p.E.D}

DEP = {I,FI7 NA.P.Fr }

Clnve: (IJ5FN

AT= (I.()}DEP = {170}

Clave: ('.FI)IFN

Rs'Clave. 101SFN

AT:: {NA.DT.I,O,FI.FF.P,E,D}

DEP:: {170;I.FI7NA,P,FF }

AT:: (D,CA)DEP= {D7CA}

el.," II.O.FIJI~

AT = {CA,NA,DT,I,O.FI,FF,P,E,D}

DEP = {D7CA; 170:I,FI7CA.P.FF}

IDRA \V,11M DISEÑO DE BASES DE DATOS: I'ROBLP.MAS RESUELTOS

•••••••••••••••••••••

Page 216: Diseño de Bases de Datos - Problemas Resueltos

"and,EI, pr,imc~ ~o~o para ~all~r la forma normal de la relación es hallar sus claveslaqU~tI~~a:~~~~r~~~~utosprincipales y no principales. y por ültimo la forma normal en

F()RMA NORMAl, DE LA RELACIÓN

DEP'" :: DEP

• Dependencias elementales: .Todas la~ dependencias del DEP son elementales,yo que son plenas. no son triviales y llenen un único atributo implicado.

No existen atributos exlrlliios: En nlngun'ls de las "epend' .. " , . u enClas existenatributos extraño,s. No se ~ea!iza la comprobación detallada para ningun~ deellas. ya que el calculo es similar al realizado en problemas anteriores.

No exisle~l dependencias redunda lites: Ninguna de las dependencias de DEPes ~edundal![e. ya que no se pueden deducir a partir de las demás, Tampoco'detalla el calculo de las dependencias redundantes. se

de RPorDIOEplanto,se concluye que el conjunto de dependencias mínimo o irredundantee es . y por lo tanto:

Para qu; ~n conjunto de dependencias sea irredundante o minirnal han de cumplítres caractcnstrcas: Ir

RECUIJRIMIENTO IRREDUNDAN1'J<:

DEP:: {

( 15) S ~T( 16) T, D ~S( 17) E. D ~A

( 18) E,S ~N

( 19) D. A -;) S

(20) D.S~P(21) T~~L(22) S ~-;) D. A

}

A'r = {S. T, O, E, A, N, P, L}

"HA MA •-"-"-=~--------- fC!iI\~PI[T:l:!UhLOQ¿_IJ.N~02!R!i!r-.-~1A 1.IZACtÓN DF. RELACIONES -12 J

,I

R (AT, DEP). donde:

Para finalizar este apartado. se resumen todos los cálculos anteriores mediante 1.1

relación universal, R, tic la base de datos de la uni versidad. R está compuesta P(1I 1111

conjunto de atributos 117' y un conjunto de dependencias que se detallan .1

continuación:

• S ~~D,A

Por último se indica que cada seminario siempre se imparte en el mismo conjuntode valores (bien conocidos) para los atributos D y A con independencia del resto de )t"

atributos, y por lo tanto se da la siguiente dependencia multivaluada:

Cada Seminario SI! imparte siempre para el mismo conjunto de valores de lapareja Día y Aula con mdependencia de/ resto de InJ atributos.

Por otro lado se tiene que un tipo de seminario se encuentra asociado a unconjunto bien definido tic libros tic referencia. con independencia del resto de k»atributos. Por lo tanto, en este caso se da una dependencia rnuluvaluada del atributo Icon respecto al atributo T:

• T~~L

Cada Tipo de seminario está siempre asociado al mismo conjunto de Librosde referencia (L) 1'011 independencia del res/o de 10,\ atributos.

• S,O ~ P

Este supuesto semántico indica que un seminario un día sólo puede tener unprofesor. y por lo tanto lo determinan funcionalrnente:

VII Seminario 110puede tener dos Profesores (P} el mismo Dia.

Por otro lado se sabe que un día concreto en un aula sólo se puede impartir unseminario, y por lo tanto:

• O,A ~S

Cada Dia t'1I UII Aula (A) IO/(/ .Ie puede unparur 1111Seminario.

También se sabe que un estudiante en un determinado seminario sólo puede teneruna calificación. y por lo tanto. se da la siguiente dependencia funcional:

• S,E~N

A UII Estudiante SI! le da tilia úllica Nota (N) CO/1I0 resultado de Ult

Seminario.

120 DISEÑO DE HA!)E!'; [)¡.. I)A'I OS: I'ROHI.EMAS RESUELTOS

Page 217: Diseño de Bases de Datos - Problemas Resueltos

Por otro lado. la relación RI' se encuentra en 2J~' ,por las mismas razones, y tiene la nusma cluve que R

PaS()3: DescompOSición de R,'

En este paso se elige otra de las dependencias de R . .encuentra en ninguna otra por' lid ,1 cuyo determinado no ser 1 ' , ejernp o, a ependencij, {SD~P} Se ación R~Con esta depend' .' ' --: ' e crea una nueva

encia y sus atributos y otra relación temporal R2' con el

Figura 3.39. Oescomposicton de R

La clave candidata de la relación R, es el conjunto {E S} Adema bese e~cuentra en 5FN, ya que se encuentra en 3FN debid' emas. se sa. que R,pnnclpal se encuentra determinado di t o a que todo atributo noI rrec amente por la clave en FNBC~s determinantes son clave, y en 4FN 5FN al '. ,ya que todosni en combinación. y no poseer dependenCias multivaluadas

AT = (E.S.A,D.P,T,L}DEP = (S-7T: T,D-7S; E,D-7A:

D,A-7S; S,D-7P: T-7-7L'S-7-7D.A 1 •

R, '

AT = {E.S,N}DEP = {E,S -7 N}

NORMAI.IZACIÓN MEDIANTE ANÁLISIS

R Se aplica el Inél?rl0 de análisis o descomposición para' dividir la relación inicial. en vanas Con un nivel de normal ilación mayor. '

Paso J: RC('ubr'imiento minlmal y claves

r. El primer paso del método es hallar el recubrimiento minímal de la relación y laiorma normal en la que se ene tr (' ,t a se h . uen a por SI no es necesaria la descomposiCión). Estospun os ya se an resuelto en apartados anteriores.

Paso 2: Descomposición de R

El siguiente ~aso es realizar la descomposición de la relación inicial R Para IJse agrupan los atributos equivalentes y las dependencias con el' .' 1: e oeste caso no se realiza ninguna agrupación. s con ei rrusmo unp icante. En

. Se elige una de las dependencias funciona'les cuyos Í1nplicados no participan erllngu~a ?tra .dependencia de DEpm, por ejemplo. la dependencia E,S -;)N, Se crean donnue,vas relaciones, R,. con esta dependencia y los atributos de la misrn. . scarácter temporal, con todos los atributos de R rnenos lo n " isrna, y R, I conde las dependencias, Gráficamente estas 'do~ relaciones se °mPn~tCIPalesldefiRIy el resto

. . ues ran en a Igura 3.39,

CAPITUl.O J: NOR~,IAI.IZACIÓN DE RelACIONES 42.'4) KA 1\1"

•.••.••'••••••••.••••

El nivel de normalización de la relación R es 2FN. ya que todos los atrihuh1'" '11'

orincipalcs dependen plenamente de la clavc. No se encuentra en 3FN, ya que C)(i,I~'11nributos no principales que dependen transiiivamcrne dc alguna clave. Por eJ\:,nphl, \,1nributo S depende del conjunto {D, A}.

Claves candidatas: {E, D, L}

Atributos principales: {E, [J, L}

Atributos no principales: (A, S. T. N, P)

Por último se concluye, aunque no se explica de forrna detallada. dejándose C0I1111

ejercicio al lector. que el conjunto {E, D, L} implica a todos los atributos de R (ATI.que 00 existe ningún subconjunto que implica a todo AT. Y que no existen más clave­candidatas. Resumiendo:

• (1) S, D ~ P.luego {E, D. L}'= {E, D, L. A, S, T, N, P}

• (4) E, S ~ N. luego {E, D, L}'= {E, /), L, A, S, T, N}

• (1) S ~ 7'. luego {E. D, L}' = {E, D, 1" A, S. T}

• (3) E, D ~ A. luego {F., n. L}'= {E, [J, L. A}

• (5) D, A ~S.lucgo {E, lJ, L}'= {E, D, L, A, S}

(E, D, L)'= AT

Si. por ejemplo. se añadiera el atributo E a este conjunto, su cierre transitivo sería:1 siguiente:

Por otro lado los atributos multivaluados L y D no son implicados por ningúnitro. por lo que formarán parte de todas las claves candidatas. El cierre transitivo de.stos dos elementos es {L. D}'= {L, D}, Por 10 tanto no implica a todos los atriburosle R (AT).

El cierre transitivo de S es el conjunto formado por {S, T}. mientras que el restole los atributos de R sólo se determinan funcionalmente a sí mismos de forma trivial.

El cálculo de la forma normal de una relación se basa en los atributos principales, no principales de la misma, por lo que. el primer paso es realizar cl cálculo de la'lave de la relación, Este cálculo se basa en el eierre transitivo de sus descriptores, ye detalla a conti nuución.

:Iaves de la relación y atributos principales y no principales

:2 DISEr':O DE OASLS DI- DATOS PROBLEÑIAS R_ESLELTU~S~ __:,';,;:R;;":"\.:::'IC!\

t ••.•••••• '•• '.' •••••••••

Page 218: Diseño de Bases de Datos - Problemas Resueltos

. .

F fi.,w••••••.• lélw •• ·ttJ~.·•• J.·éJ••

R,'. al igual que ocurría con la relación R1', sePor otro lado, la relaciónencuentra en 2FN,

PliSO 6: Descomposición de R4'

, Para terr~inar con las dependencias multivaluadas, se desc()lnponc la relación R •~~~~ relaciones: ,la relación R.~,escogiendo la dependencia rnulu valuada de R,I,. ti). y la relación temporal R~'. Ambas relaciones se pueden ve áti 4la figuro 3.43. r gr icamente en

Figura 3,42. Oescol11posicióII de R.I·

. En este caso. I¡~relación R, se encuentra en 5FN por el mismo motivo que Rsiendo su clave candidata el conjunto {S,O}. 3,

R~ ATe (Sol))DEP=(S 77 D)

AT = (E.S.A.O.T)DEP:: (S7T: T,D7S; E,D7A,

D.A?S: S?7A)

Figura 3..//. Desconiposicián ele R:'

. Por otro lado, la relación R,', cuya clave candidata es el conjunto formado por losatnb.~t.os fE, D}., se encuentra en 2FN, pero no en 3fN. ya que existen dependenciastransitivas. :or ejemplo, el atributo no principal S está determinado por el conjuntotT,D}, no directamente por la clave.

Paso 5: Descomposición de R3'

.A continuación se continúa la descornposición de las dependenciasmultivaluadas, En este caso, se divid~ la dependencia S770.A en dos dependencias(S-77{) y S7-7A) sin perder el Significado de la dependencia.

, Se elige ~.ualqu~era ,!e las d(~~depend~ncias Inullivaluauas nuevas, por ejemploS7-70 y se CIC~ una nueva relación (R4). Se crea atril relación temporal con el restode las dependencias (R, '). Gráficamente se muestra en la figura 3.42.

AT= (E.S,A.D:r)DEP= (S7T: r.D7S: E.D?A.

D.A?S: S7?D.A )

, ,. .

AT=(T,L)DEP=(T?? t)

R~

~':::iA:"_ ~C~Af.PIl!T:l:!U.!!LOQl.l·NORMALII.ACIÓN DE RELACIONES 425

.­•

De esta forma, si se eligiera cualquiera de las dependencias anteriores para 1.1descomposición de R!' se producirían pérdidas de dependencias.

d ., to que exislilnPor lo tanto suponiendo que no se esea en rungun mumen .pérdidas, se procede a la descomposición de la relación a partir de sus dependcncl;l'multivaluadas.

Se comienza la descornposicíén mediante la elección de la dependencia 1"-7~( ..'e crea una nueva relación con esta dependencia y sus atributos (R,) Y una relacl(\l~Ji .' ., (R') Gráficanll'l1(1adicional con carácter temporal para continuar la desccmposícion l'

esta descomposición se muestra en la Iiguru 3.41.5FN ya que ,~'La clave de la relación R, es el conjunto {T,L} y se encuentra en ,

encuentra en FNBC y todos los atributos de R, forman parte de la clave.

•••

Paso 4: Descomposíción de R2'

A continuación se elige otra dcpendencia de R,' cuyo detennina~~e. no partic!~een ninguna otra dependencia de la relación. En esta ocasión no es tan lacl~ la CI~CCHlil

de la dependencia para crear una nueva relación. Esto se. debe a que no existe mngunndependencia funcional cuyo implicado no pertenezca a ninguna otra:

S -7T. donde 7' participa en la dependencia T.D-7S

T'D -7."1Y l).A -75 donde S participa en S -7T. O,A -7S y S -7 -70.A.

E,O ¿A, donde 1\ participa en D,A -7S y S-7 -70,A.

La relación R, se encuentra en 5FN y su clave es el conjunto {D,S}. mientras quela relación R2' sigue estando en 2FN y su clave es igual a la de R y R l' siguiendo elmismo razonamiento.

Figura 3.40. Descomposicián de R l'

AT = {E.S.A,D.T.L}DEP= (S7T: T.D7S: E.D7A:

D,A7S: T77L:S77D.A \

AT = {S.D.P}DEP= {D.S7 P}

resto de las dependencias de R l' Y los atributos restantes. Gráficamente se muestraesta descomposición en la figura 3.40.

424 DISEÑO DE BAS"S DI! DATOS' PROBI.EMAS Rf'$UELTOS

Page 219: Diseño de Bases de Datos - Problemas Resueltos

¡:";gllra 3..J5.Árbol de d . ., .esconzposlCIOIl parcial COIIpérdidas de d d .., epen elle/as

RH AT. (E.D,AI01":1'. ¡F.D~A)

R, AT" IO.A.S)OEP= (D.A~S)

,1,1\1,'" IO.A)$f'N

~I"\t'" I"'.OJl~N

,,:I,I\\'~'7:'.'''1------'5tiN

R6' AT " (E,S.A.O lDEP" (E,D~A; D.A~SI

R. AT .. (S.T)DEP .. ¡S~T)

P"l'\h~.1de '0&\kJ'l:n.,x.""J.!T.LlO+S

AT" {E.S.A.D.T}DEP= {S~T; T.O~S; E.D~A.

D.A~S}

R.,'

Se concluye que en este caso 1 d' . I laci5rN . . . . o as as re aClones obtenidas se encucni. , aunque se pierde una dependencia funcional. T'D 7S. ran en

En el caso de que se hubiera ele ido louidesconlposición. se hubiera perdido al un; tn ~ua quier ,~lra dep:ndencia para laal lector su comprobación. g o a ependencía, Se deja corno ejercicio

Para ello se realizan las dcsconlposicioncs l " •• 'dcsconlposÍl:i6n de la figura 3 4S donde s h . [ue aparecen en el arbol deconcreto la dependen<.:i'.1 tt; n- '~S"Ial I~ alPerdldO una dCpl!lldencia funcional, en

< • 7' I rea l7.ar ti deS(0111)0 . ., dR' "dcpendcnc¡a {S77'}. . I ~ICI()n e ~ eligiendo la

R~' ;~ epI~:~o de qu~ nOdimporte qu.e se pierdan dependencias funcionales. la relacióne seguir escornponlcndo en otras 1" • .l1ol'ltlalizaei6n mayor. " re acroncs con un nivel de

Por otro lado. la relación R~' al I ual .' .temporales, sigue estando en 2FN. " g que ocurría con las anrenors, relaciones

es el conjunto {S A} l' I' y. a rgua que Ocurre con R, y R¿ seLa clave de R,

encuentra en 5FN.

CAPiTULO J: NORMALI/.ACI(¡N DEREl.ACIONES 427

'.

Figura 3.44. Árhol de descomposicián sin pérdidas de dependencias

1,:IIi\'ell, I f~.O)U'N

clave:"srN

RAT. {E,S.N.A.D.P.T.L}DEP~ (E.S~N: S~T: T.D~S:

E.D~A; D.A~S; S.D~P:T~~L: S~~D.A \

~~

('1",,('\· t [.0.1••lFN

AT ~ (E.S.N) AT = (E.S.A.D.P.T.L)DEPe {E.S~ N} DEP= {S~T; T.D~S; E.D~A:

·;(1;.'1 RI'D.A~S; S.D~P; T~~L.S~~D.A 1

-.cl.l\'c)t If.,O,l.)n'N

I\T = IS.D.P) AT. {E.S.A.D.T.L}DF.P" (D.S ~ ") DI;.PlO (S~T: T.D~S: E.D~A;

• III.~I Rl' D.A~S:T~~L;S~~D.A I

~

"l.t\~... IF..O'"ZFN

..,AT=(l.L) AT .. (E.S.A.D.T)DEP" (T~~ L) DEP~ {S~T: T.D~S: E.D~A:

, IT.ll R/ D.A~S: S~~D.A }

-. e..... ·IE.OIIFN

AT = (S.D) R..' AT .. {E.S,A.D.T}DEP= (S4~ O) DF.P = {S4T: T.D~S: E.D~A;

. 1S,01 D.A~S; S~4A}

~

cla"e~~E.O)ll'N

AT" (S.A)AT .. (E.S,A,D.T)DEPp {S ~~ Al R!' DEP.. (S~T; T.D~S; F..r)~A;

•. IS,A I D.A~SI.

Figura 3.43. Descomposicián de R~'

Rs AT= {S,A}DEP= {S 77 A}

AT = {E.S,A,D.T}DEP= {S7T; T.D7S; E.D7A;

D.A7S}Rs'

DISEÑODEBASESDEDATOS:PROBl.EMASRESUEI ,TOS

Page 220: Diseño de Bases de Datos - Problemas Resueltos

• •••• ,.l•••.'.•'.....•

Son dos, pues, los rasgos que caracterizan una BDD. En primer lugar, laIII/eJ.lraci61lde 10/\datos, es decir, los datos no son una colección de ficheros que estánalrnacenados individualrnente en los nodos de una red, sino que forman parte de unaC'lructuraglobal que los relaciona lógicamente. y en segundo lugar. la distribución de

Una Base de Datos Distribuida es una colección de varias Bases de Datosinterrelacionadas lógicamente y distribuidas sobre una red de ordenadores.

Las propiedades y características de las Bases de Datos Distribuidas (BDD)requieren la adaptación de los diseños de las BD centralizadas a las mismas y éstos,como veremos, pueden abordarse de diferentes maneras. Para entender el diseñoadaptado a una BDD debemos comprender su definición, propiedades que las carac­terizan y arquitecturas que poseen. Posteriormente analizaremos las metodologías queexisten para el diseño de BDD.

Introducción

RASES DE DATOS DISTRIBUIDAS

DISEÑO DE BASES DE DATOSRELACIONALES DISTRIBUIDAS

CAPÍTULO 4

~J. •,,',

,

, ,

~.~ ~••~~ ••.'..•

Page 221: Diseño de Bases de Datos - Problemas Resueltos

Figura 4.1. Clases de SGBDD

S' Enlpecernos por la ho/nogeneidad. Si todos los se ', GBDD homogéneo donde se tiene un único rod BD SOI~Iguales tenernos un;lllc Suelen ser SistCI11aS111Uy integrados Si lO: se~C~o,. y lel~gl..aje de consultas por lo1~lcr()géneos donde, aunque d' .. , . son dlstllltOS tencmos SGBDD<hstint pue an utilizar el mismo modcl d d. os productos y lenguajes de consultas que' . o e ates. se tienen, requieren su Integrución.

La distribuciólI delerrnina s' I dll1ultiple~sitios que se comunican' ~ntOS _ato~ están ~istribuidos ffsicumenlC sobre,clltrali;cldo~ re SI o SI se Illantlenen en un único I• .,. ugar, datos

lIelerogencidad

'hk·m.tIlIUII.h..,'C'tlCtrn'ft'nt.~

~C;.HI' 'ttkorOh1"hn('n)~~n~t...lO" tln.l -ede

/

' GR" Ir~trl"'"h. '"'" 'FC'1'Ia I

____ _.::.. ~u~~

~'''~m.."""'h,t\.a......holfnl'ltt'ntll

Sislerna·~l (SiSlcrlla~JFCdcrado~ MultiBase

~<.IUJ)hun"'~~IlCII \<"Rrl h.'¡!I',.¡J.¡, 1i1~ltmll'"1,1",1141'1.:"Y IJ¡"'''~IU\,"' 1"'''l!I~~nor,. f .. ,ml\~~MH-_

./

'C.lill ''''tt>fl'rtl1c'il r- - ~'- ;I,~"htl""', - ~ - - --0

~')(isr. It\k,,w,-, , )"It," •• '....ll.ih.."C

A1.jJh,,'Jr~C;C,liO I hdtn'f('''''''U I tlc-1C''''')T''tU

I "'omU¡;C'~", "t."'.,"",,,.j.. \ .h\lI'....llJc'"'O¡:II."".Cl.C' wt~f ..1o Autunornfa~-~-+--~.

<¡(i811 I

[---Sistefllas~ OlllpUe;:~tos I

~ \

Distribución

• Software y red de comunjcaci N fsino que provee al procesado:~es.. 01' or,ma part~ e~tri~tamente del SGBDD

, , e ap IcaCloncs dlstnbuldas d ' ..serVICIOSde comunicaciones para que éste II .' b . e pnmltlvas y. eve a ca Osu labor.Clases y arquitecturas de los SGBDD

Dependiendo de la hOll1ogeneidad de los SGBD I . . ,datos y de su eutonomra tendremos di 't' t . d ocales, de la dlSlrlbucIón de los

1S In os tipos e SGBDD.

• Procesador de aplicaciones distribuidas 'distribuidas Accede a la info '6 bque es el responsable de las funciones

• l' rmaci n so re la ubi . '6 d Iencuentra en el diccionario IcaCI n e os datos. que se, , y se ocupa de procesar tod' I ..Involucran más de una sede as as peucrones que. . para generar un plan d . 'ó . . .elemento diferenciador erl lo' . " e ejccuci n dlstnbUldo. Es els sistemas dlslnbuido~ d d: ..encargará de repartir el trabajo a I disti . • a a una operación seen dicha Operación. os rsuntos proce~adorcs locales que intervienen

CAPiTULO 4: DISeÑO DE BASES DF DATOS Rf'LA('ION -.., "LES OISTklBUIDAS 431

•••••••••••••••••••••••••

• Procesador de datos locales que se encarga de la gestión local de los datos (kforma parecida al software de un SGBD centralizado, por lo que además (kejecutar transacciones locales se encarga de la concurrencia y la recupcración aHI.·

fallos a nivel local.

• Diccionario O directorio ~I()hal donde se guardará información acerca de dóndt' >cómo se almacenan los datos. el modo de acceso y otras características física~'.1:11resumen, contiene las especificaciones necesarias para pasar de la rcprescntal:lilllexterna o esquema externo de los datos a la representación interna de los mismn-

El Sistema de Gestión de la BDD (SGBDD) es un producto software que permuc!l manejo de bases de datos y hace la distribución transparente a los usuarios. ~cumple con respecto a las BDD el mismo papel que cumple el Sistema Gestor de Ba-cje Datos (SGBD) respecto a las BD centralizadas, Se compone principalmente lit'cuatro componentes:

Los datos han de estar lógicamente integrados en una única estructura lógica ()esquema global común,

Los usuarios han de tener acceso -rccuperación y actual ización- a los datos perle­necientes a la BOO. ya se encuentren éstos en la misma sede (acceso local) o enotra (acceso remoto).

Cada emplazamiento o nodo proporciona un entorno para la ejecución de transarcienes tanto locales C0010 globales.

• En una única operación, tanto de recuperación como de actualización. se puedeacceder a datos que se encuentran cn más de una sede sin que el usuario sepa 1.1distribución de los mismos en las distintas sedes (propiedad de transparencia dered).

Las sedes deben estar interconectadas mediante una red, Cada sede es un ernpla­zarnicnto o nodo de la red. Para realizar el diseño no se tendrá en cuenta latopología, tipo y rendimiento de la red que une estas sedes. aunque estas propie­dades son relevantes para obtener buenos rendimientos y poder evitar los atascos yretrasos en el tráfico de datos por la red. Consideramos que es un aspecto muyconcreto y específico de cada red y que cada caso particular necesita su propioestudio.

Los dato" deben estar físicamente en más de un ordenador. es decir. los datov seencuentran almacenados en disuntas sedes,

En resumen podemos caracterizar las BDD de la siguiente forma:

-s datos en distintos nodos de una red que para los usuarios de la BDD aparecerán»no datos homogéneos y únicos.

{l DISENO DE RAS"" 1)1-DA ros PROBLCMAS RESUELTOS

•••••••••••••••••••••

Page 222: Diseño de Bases de Datos - Problemas Resueltos

•••....._,.'.~•.•••••••••••Figura 4 4 M ( dolouú A,. e o o 08'0 scendente de Diseño de BDD

En cualquier proceso de diseño hay dos a '. . .lop-Down y la descendente o Bottom-U V proxirnucrones ba~lcas:, la ascendente odel diseño de BDD, p. earnos estas aproximaciones en el caso

Diseño de .lDO

Figura 4.3. Arquitectura de los <'GBDM I ./., u tt Jase

EsquemaInterno

BD Local n

EsquemaInterno

SO Local 2

•EsquemaInterno

BD Local 1.

-_-,

EsquemaConceptualSD Local n

EsquemaConceptualBD Local 2

EsquemaConceptualBD Local I

EMlucnl:lExterno n

EsquemaExterno 2

EsquemaExterno I

,--------, ,---- - -

433

En los sistemas Multibase no tenc Eautonomía local es completa. mos squerna Conceptual Global, por lo que la

CAPiTULO 4' DISEÑO Dr. BASI S DE .. - • " . DATOS REl.ACIONAlES DISTRIBUIDASüR ...MA

EsquemaLógiroGlobal

N< Tt. Et G

R Esquema Esquema Esquema

~

Lógico LógicoA LógicoI

.. ...(' 2 n,

¡ I~ ó

t Nt

~•••.•'-re .••• :...

Figura 4.2. Arquitecturu ANSI/X3/SPARC para SGBDU

La arquitectura ANSI/XE/SPARC (figura 4.2.) se corresponde con lo!' si\ll.'tll,l'federados, es una extensión de la dada para los sistemas centraliz.ados donde SI -comiten los esquemas externos locales tendrfarnos un sistema integrado.

E.o,;qocnwE'\IC014'I 1<.1 11

- . -......____..__ .>:-.>:.............__

- -~k''''''

E.-quema c.'4t, ...,n.l E""fU""loJ

cm' Conceptual ~\I¡;rf'l' t-_,":mt.Global t..l':-.ll ni ....... ili_,..In In

~""'-.._

EM¡ucrna Esqucma

Conceptual Conceptual

BO Local I BOLocal n

E..o;qucma EsquemaInterno Conceptual

BD I~lClll I SO Local nL -

Esqul'111a ExternoGlnbal I

1l'4UCl1kl externo(ilohal 2

E.'qucma ExternoGlobal n..........

La arquitectura de estos sistemas puede resumirse en dos tipos: la arquitectura\.NSUX3/SPARC para SGBD distribuidos y la arquitectura de los SGBD Multibasc,

y por último la (lIIIOIIO/II(a, quc se refiere a la distribución del control. Se tendránstemas Estrechamente Integrados (Sistemas compuestos) si todo el acceso a losItOS se realiza siempre a través del procesador de datos distribuidos con las sedescales totalmente dependientes de éste, él gestiona todos los accesos y funciones deíministración. Los Sistemas Semiautonomos (Sistemas Federados) sin embargo.ejan que cada procesador local actúe de forma autónoma e independiente. de hecho.ida uno de ellos tiene sus usuarios. administradores, transacciones y aplicacionescclusivamente locales, además de poseer porciones específicas de la BOO. Porltimo. si los procesadores locales no conocen la existencia de otros SGBO ni cómoomunicarse con ellos tendremos Sistemas con total autonomía (Sistemas Mulu­.ase de Datos) donde al no haber un control global el acceso a los datos de distintosodos es especialmente complicado,

Podemos resumir las distintas clases de SGBDD representando cada uno de 10\

actores estudiados anteriormente en un eje de coordenadas, de esta manera podremosbservar que distribución, autonomía y heterogeneidad son aspectos ortogonales.

2 DISEÑO DE BASt-;S DE DATOS, PR(~)!!BI~.¡,:::!.[\!!.1A~S~Rt;~:S~U~r.='L:..!.T.::O:::?S .:.:I)~K:..'"~",\

Page 223: Diseño de Bases de Datos - Problemas Resueltos

• La unión de todos los L nos da lodos 1 ib' os atn utos de R.

L, es la condición por la que fragrnenu . ,trata de un subconjunto de atributo' ~r~I,~no~,e.n este c.aso al ser una proyección searllcriorlllCnte descritas sobre una cor s te t" ara que se cumplan las condiciones, . rcc a mgmemacío lb'L.han de cumplir: • n os su conjuntos de atributos

, La fragmentación vertical di vide la relación Re' . ,fragmento mantiene ciertos atributos de la rela " n.c~nJuntos de columnas, aSI cada. '. ,Clon original La frag taci , ,se realiza mediante el operador algeb . . d . " nlen aClon vertical

rareo e proyección y su notación es la siguiente:

R, = Il1.(R) donde i = I n y Re' l c .relación original R .., s e conjunto de fragmentos en que se divide la

Fragmentación vertical

Existen distintas formas d fh . e ragmcntar una relación, con fragmcnracíor,ouzontal. vertical o mixta.

Disyunción. Los fragmentos deberán ser disjuntos.

fReconstrucción. Siempre se ha de poder rcconsuuír la BO global .'. d

ragmcntos. a partu e los

Cornpletítud. Todos los datos han de encontrarse en al menos f' x, un ragmento.

El e~q.uema de frag~entación se compone de las distintas relaciones en lashemos divido una relación proveniente del Esquema Lózico GI bal .' . quecondición empleada d' .. , . '" o Junto con lapara esta IVISIOn,expresado todo ello en álgebra relacional.

I Pa~a asegurar q~e la BD no sufrirá cambios semánticos durante la fragmentactode os atos, se definen las siguientes tres normas deter . I nfragmentación de una relación; , que eter nunan la calidad de la

Esquema de fragmentación

,La replicación o duplicación se puede realizar cuando desde di t' drequiere la misma información, si además las o eraciones s 11> mtos no o~ se~:n~~~ho:l~ma en duplicar los datos. Ahora bl~n. si lo ~~es~l~c~~~~ne~~I~tuna~i=::~~~

. e e asegurar que todas las copias ~on consistentes . d . .Inanlt~nen la misma información, por ejemplo, con mecallism~~ ~~ ecrr, q~.c tOda~actualicen todas las copias de los datos modi ficudos con el alto e ,(' propagacíon quePor tanto. debernos llegar a una solución de corn ro' os e ~u~ esto su~one.desventajas de replicar los datos. p rruso y analizar ventajas y

I

C/\PÍTt:I.O~: DISEÑO DI~RASES DE DATOS RELACIONAl ES DISTRIBUIDAS 435

••••••••••••••••••••••••••

;._'?-.<!'.: •

"<.. ',... '" ...

Sin embargo, en los esquemas de asignación y replicación se fija desde qué IInd"se demandan los datos y el tipo de operación que se realiza (si es de consulta "actualización). para que estas operaciones se puedan llevar a cabo de forma 10(,,1 ~minimizar de esta forma el tráfico por la red que las ralentiza.

En general, los esquemas de fragmentación se basan en el análisis de los tlall1'utilizados por las distintas aplicaciones que acceden a la BD para crear relaciones n1(1'pequeñas y más adaptadas a las operaciones de recuperación y actualización que la'aplicaciones utilizan. es decir. tener los datos divididos según la utilización que deellos se hace.

En la resolución de los problemas planteados en este capítulo, problemas que secorresponden con el diseño de BDD relacionales. vamos a utilizar una metodologíadescendente, es decir, partimos de un esquema lógico global (esquema o graforelacional en nuestro caso) de la Base de Datos que queremos distribuir y a partir lit:éste construimos los esquemas de fragmentación. de asignación y replicación de lo,datos para distribuirlos en los diferentes nodos de la red.

Figura 4,5. Metodología Descendente de Diseño de LJL){)

()'1

Iltie

.....EsquemaLógicol.ocal 2

EsquemaLógicoLocal n

EsquemaLógicoLocal l

; .z:t

EsquemaLógicoGlobal

D1STR

La metodología descendente parte de un esquema lógico global (ELO) quenediante la fragmentación. replicación y asignación de los objetos pertenecientes aiste, construyen los esquemas lógicos locales.

La metodología ascendente se utiliza, en general. cuando existen varias BO.ocales y queremos construir una BDD. Por lo que partimos de distintos esquemasógicos locales (ELL) que se corresponden a Bases de Datos ubicadas en diferentesiodos de una red y se integran. parte de ellos o todo. en un único esquema lógico~Iobal CELG).

3-1 DISEÑO DE BASES DE DATOS: PROBLEMAS RESUELTOS

•••••••••••••••••••••

Page 224: Diseño de Bases de Datos - Problemas Resueltos

PRODUCTOS, = PRODUCTOS . (X.1","'CII"'·''''_,IlnlJ'''" ALM ACÉN ,

,w.{;.t....e-e e e e .'-"eve~ece--ee e e •.• v. re •••• e .-e"'•• e e ••••• e ..

derivadahorizontal la relaciónenfragmenlaciónuna

ALMACÉN (cód=almacén, dirección, teléfono. área)

Dado que en cada almacén sólo se re' ,almacenados en el área en que se en~uenlra ~ulere Inf~mlación de los productosrepartir la información que se ene t ,po Iernos n~aJ¡zar una fragrnentación parah' uen ra en a relaCión PRODUCaremos una fraglllentación horizontal primaria en la relación ALMAC~~~' Para ello

ALMACÉN,::: a (ALMACÉN) d d '.uco ~ , on e I= (norte ', sur, este, oeste)Cada uno de estos fragmentos e t' . f ,

l'~clauna de las áreas. . on lene In ormación de los ahnaccnes ubicados en

Si realizamosP){O¡)UCTOS:

Por lo que además de la labia EMPLEADO re di' ,en remos as srguremes relaciones:

PRODUCTOS ( 'd 'co prod, nombre, desenpclón, alrnacén)

• La fragll1entación horizontal dcriv, d lidefinidos sobre atributos de otras al a. se rea Iza en función de predicadosI ' re aciones o fragmentos' est d ba relación R a fragmentar d d " " sro se e e a queestá definido el predicad~ dc;~n ~ de la rel~clón Q, sobre cuyos atributosoperador relacional de senlicomhi~ac~~~lnentacl~~. Se define empleando eloperador de co b .ió ' que actúa de la misma forma que eld l nri m InaCI n. pero la relación resultante sólo tiene los atrib 'e primer operando. lutos

R, = R [>< Q, donde Q, corrcsponde al con' unt d fdi vido la relación Q L . b' , _ J o e ragmcntos en los que se ha, . a scmrcorn InaClon se realiz, 1, ib .relacionan estas dos tablas, .a por e atn uto o atributos que

Para que la fraglnentación sea correcta se tiene 'los R, sea la relación R y que su intersee ., . ,que cumplir que la unión de todos. . ccron sea vaCla,

VealTIOSuna aplicación de estas fragnlentaciones,

Supongamos que al ejemplo anterior le añadi Inos la siguiente especificación:Cada producto, cOl/lercia{izado por las rau { , ,//1/ almucen. No hav produ 'tos . g ( es alnuu enes, se encuelltr(/ enI ,( ,qUI:' se encul!lItf'l'/1/'/1 mas ,J I .

saoe que los almacenes est i J' 'did .' sue /(/1 11 macen. Se, ., an atvu / os en arcas (/ 't'qu« atll'lluís de los nodo» de centrnlit " ,,'0/ e. Sur. este ,V oeste¡ ymds, rada UIlO di' el/os se ellcuentra ;://u(/;nl/;¡J)/lld(/(/!'IIY otros cuatro nodosestas vedes sólo re manei 1 I '¡¡ a ( : estas areas, .\'en coda una de/

'JI 1I tn ormario» referente Iti /11(/1 I'IIt1d(/f en dichas úrcas.· . t a os producto,l

-137.2.!!.~ .!.;c.::.:!A:!._p!...!íT~U:.!.I~.O~4!.:.·..!::D~I~::!E:i-N~-~(!._) QD:!.:F1B~~ _

" . ASES DE DA IOS RELACIONALES DISTRIBUIDAS

(

I

\

,

• La Iragrncntaclón horizontal primaria se define como una selección de 1,1relación R y su notación es la siguiente: R, = ol.,(R) donde P, es un prcdi~'¡¡d,'sobre uno O más atributos de R y es la condición empleada para setccciomu ,,1contenido de los fragmentos,

Existen dos tipos de fragmentación horizontal: primaria o derivada.

Este tipo de fragmentación divide una relación en subconjuntos de tuplas, cad~luno de ellos con un significado lógico,

Fragmentación horizontal

EMPLEADO_CONTABILIDAD *"1""10",,,.n..mbrc EMPLEADO_CENTRALITA

EMPLEADOS =

La combinación de ambas relaciones proporcionará la relación original:

EMPLEADO_C.'ENTRALTT A = n"""",~..-,n"onh,!!. 1.... 1".1<"'"', !!\le"" ..n (EMPLEADOS)

EMPLEADO_C()N'fABILIDAD =

Esquema de Iragmentación:

Fragmentaremos verticalmente la tabla EMPLEADOS creando dos nuevasrelaciones:

Se quieren distribuir los datos de EMPLEADOS teniendo en cuenta que setienen dos sedes o nodos enlazados por una red de área local y que en elNODO I se encuentra el departamento de contabilidad y desde aquí semanejan los datos personales del empleado (nombre, apellidos, direccton,teléfono y [unciáru, mientras que el! el NOD02 se encuentra centralita y el!este nodo se consultan los datos correspondientes a la localizacián delempleado tlocalizacíán, .v extensián}.

EMPLEADOS,(agellido!., nombre. dirección. teléfono, función. localización,extensión)

• La intersección de todos los Li nos da la clave primaria de la relación R, Estosupone que lodos los Li tienen en común la clave primaria para de esta formapoder reconstruir a partir de los fragmentos. R" la relación inicial, R, mediantela operación de combinación,

Veamos con un ejemplo la aplicación de este tipo de fragmentación, Supongamo-,que tenernos una base de datos centralizada de unos grandes almacenes y que una desus relaciones es:

-U6 DI S EÑO 01, HASI:S Il hilA TOS, PR O 13L""E::,:M!:..A;;;S,-,R.o!H",·S:.::·L:..:.i'".:.:.:I,:..:,I'.:;O""S _

Page 225: Diseño de Bases de Datos - Problemas Resueltos

de lade asignación y repli 'ó d IIcaCI n e ejemplo anterior quedaría

El C!iQUCI11U'iguiente forma:

Por tanto, en la resolución de los problemas d 'determinación de realizar la asi nació: b e este capItulo se ha tornado lalos datos y s610 utilizar replicacr6n ~~'~nd~s~:~dO si~~pre el procesanliento local dequesolicita los datos sea siempre de consulta, peracron que se realice desde el nodo

Aunque existen algoritmos para realizar la' . , .parámetros. resultan complejos y aS.lgnaclon teniendo en cuenta estos~implemente una solución. . no proporCIonan la solución óptima sino

de respuesta y maximiza la capacidad deRendímíenro: minimiza los tiempos

procesaln¡ento del sistema en cada nodo.

Mínimo Coste: nunimiza el coste de almacena . . .nodo correspondiente el coste de n difici miento de cada fragmento en eldistintos nodos y ('1 co~te de la transf:re~lCria'cd<ler.,unt fragnllento que está replicado en

ca os por él red,

El e~querna de asignación y re li ' .ó .corrcspondencia entre los fragmentosP ~ca~~sn c~nSlste en la .realización de lacomunica¡;ione~ de la BDO O· h . no os que constituyen la red deóptima, teniendo en cuenta l~s ~~s apacroa,rrnlee~tPOnd.en~iadebe hacerse de la manera más

. ros c;lgulcntes:

•Esquema de asignación y replicación

I J IV, 2 frugll1\'nlU horllOlllnl y VCr1'c.tIDeJEJDOSDDEJ

'¡3<J

horiZ~~~af.de celdas. Aplicamos simuháncamente una fragmentación vertical y

.... ,

CAPiTUlO.¡: DISEÑO Dt BASES or DATOS RELACIONAl ES DISTRIBI,IDASORA ~1A

.........................

••

I I 1 I FHJ ~H I : fragmento, bonzontalev

~HI\ l' lugmenh" verucale s 'obre \J~J

I I ( 1 I FH3 frJgmcnltl hnnzontal

I 1 I I I fH 2

I I FIII

~H~VI 1112V! FH2V]

Fragrnentaci6n HV. Una fragmentación horizontal seguida de una fragrncruaciónvertical, sobre cada uno de los fragmentos horizontales.

FV3 FV4FV2FVI

I'VIHI•

f.VIH2•

t·V,tIJ - '.Jgl'K:11l«" h,)rI/0nlal~" "lI,r~",.HI,I

Iragmento "cf'1I,,,1

'"V 111.1IVI H~

una IrugmentaciónFragmentación VH. Una fragmentación vertical seguida dehorizontal, sobre cada uno de los fragmentos verticales.

En algunos casos la fragmentación horizontal o vertical del esquema de la base dedatos no es suficiente para satisfacer los requisitos de las aplicaciones de usuario, porlo que puede necesitarse volver a fragmentar los fragmentos obtenidos. Esto es lo quese denomina fragmentación mixta y se clasifica de la siguiente forma:

Fragmentación mixta

PRODUC1'OSn""<vPRODUCTOS,u,vPROOUCTOSc,,cvPRoouc'ros,""'"

PRODUC'f()S=

~ , , ,. ,ALMACEN= ALMACENn"ncvALMACEN""VALMACEN.,I.vALMACEN,,,,,<

Las relaciones originales se obtendrán mediante la unión de los fragmentos.

Conseguiremos la información de los productos almacenados en cada área.

·1.18 DISEÑO DI, liASES DE DA ros: PROBll!MAS RtSUEL TOS

~•••••••••••••••••••••

Page 226: Diseño de Bases de Datos - Problemas Resueltos

••-....-...-.••~•..••.••

INF_PERSONAL: n 'e ,,~.F.Il'plcalin. N"...hre. IlII'<n 'U" .I'I'd ('0""'" (PE RSONAL)

NÓMINA_PERSONAL: Il-, .e,'_' t:n'rl".~"~.I."".,IIlI'I'.I'.·,h. (""'Ir.J'" (PERSONAL)

. Supor,l,iendo que la información necesaria ar '" .",I(flhutos Salario" "IRPF" "F p a realizar las nomJnas son los,,' 1 (. y echa Contrato" se realiza-s .'(rlle" de la relación PERSONAL -. '. Izara una fragnlentaciónrl~k'rasignarla a la sede centra . para s,~parar es tu Inforrnación y posterionnente,,1\0 la clave primaria de la re Iact!ó'LdasIrelaclones re~lIrtalltcs contendrán en cualquier

n e a que proceden,

"En la sede central (Cód_Centro '" DI) se elabor. I "cO/l/ratado por la Sociedad M 'di . d ,UII as 1I01l1ll/US del personal

e tea \ e aqu¡ se envtan al' Cque ~e(/11repartidas a los tr(lbajad(lr;~. ,,' OJ entros para

E~quema de fragmentación

Discusióndel enunciado

Cada Centro médico (C6d_C:entro = {O., 01 ,pl'r\l)llal sarutarin que trabaja en el' .~:. ' 04}) deb~ tener la relación de"'Ill'cialidad que desarrolla. mismo. aSI C01110el horarío de la consulta y la

Figura 4.7. Esquema /,(1101'iO/l(/I rorrespolldienre a 1111(7RD centratt- d. I('" ..lIGcesacre, 'ades Mtfdil'(/_f

PERSON.\I S¡\'iITARIO e: J-"_.... (t) F."rJ,lt",tl!!._ f-un("ulo, Añt" E),rx'rlcn\_'IJ'

BI \lC

I'~'RSO IA • ( Q~I1.uk"J!I!, '1ornllrc. DorccclU" Salan ... IHI'I

I'c.h •• CUf11r••h••t"d _C"lIltll )

--. CENTRO ( ('úd Cenlr". Nombre_Cenlro. Di"'cc,(ln . rtl~(ln"

t_~R'_tc ----.I

CAPiTULO 4: DISEÑO DE BASES J)E DATOS '{bL,\CIOl\'AI ES J)ISTRlfl UIDAS 441

.......

En la sede central (Cóo_CCnlro = 01) se elaboran las nóminas del pCI",n:11contratado por la Sociedad Médica y de aquí se envían a los Centros para que ,,'.111

repartidas a los trabajadores,

-Realice el diseño de los esquemas de fragmentación y asignación de una Ha'" de ¡.rDatos Distribuida para conseguir la mayor autonomía local, tanto en los l'Clllll" ,

médicos corno en la sede central, sabiendo que las operaciones realizadas en cada 11111\

de ellos son:

f·ti la ,tI,11 t,t•

En la actualidad tienen una base de datos relacional centralizada,acceden todos los centros, con el esquema de la página siguiente,

Una de las sociedades médicas más importantes del país, con oficina central ,'11

Madrid, dispone de tres grandes centros médicos en esta misma ciudad, En cada un«de ellos se atienden determinadas especialidades médicas por el personal contruuul«por dicha sociedad, de manera que una especialidad puede darse en un centro 11 ,'11

varios y todos los centros tienen al menos una especialidad,

Enunciado

PROBLEMA 1: BOD SOCIEDAOES MÉDICAS

Figura 4.6. Esquema de Asignacián y Replicación del Ejemplo

NODO 2EMPLEADOCE;\'TRALITA

NODO IEMPLEADO_CONTABILID/\L)

ÁJU:ASURAI.M AtEN,,,,PRODUCTOS,,,

Á RF.AOf'STf:AL.J.1A('EN,Of"CPRODUCTOS".~

ÁRf' \ f.,nALMACEN, ..PRODl'CTOS, ,

ÁREA NORTEALMACEN•••,PRODl'CTOS•.•.

.t40 DISEÑO DE IlASES DE DATOS: PROBLEMAS RESUELTOS

Page 227: Diseño de Bases de Datos - Problemas Resueltos

~I C¡;quellla lógico global d I B'e a ase de Datos es el siguiente:

de gestión de nóminas y ..com ralaClon de profesorado se

El deparlanlentoIllalltendrá en Oetafe.

La Universidad Carlos 111 tiene en la actualld' d,Iglllente~ pohlaciones de la Comunidad de M d . ~ tres campus ~iStribuidos en lasEsta ampliación ha repercutido en 1 . a rid: Gctafc, Leganés y Colrnenareio11 • os Sistemas Inforn"'( d .s •evando!)e a cabo el tendido de d . . la leos e esta Universidad. .. una re para unir los tPOSibilidad de diseñar una Base de Dat D'.' . res campus y ahora se baraja laGelafe. para rnancjar de forma autónoma i~~ lstn.~ulda. actualmente centralizada en

orrnacion sobre las titulaciones ofertadas.

. . En cada uno de Jos campus se quiere crear un deo, .ulsLJntastitulaciones impartidas en ese ca ; e~~lrtdmento. para la gestión de laslos cursos de los que consta cada una de~I~~:'a I:sma~ de manejar los datos acerca deCursos. En este departatncnto también s d . y g pos que forman parte de estos(nombre, e-mail y núrnero de despacheo) csea ~uardar Información de los profesorescampus. que Imparten clases en cada lino de los

J<:nunciado

PR()RLEMA 2: BDD UNIVERSIDAD CARLOS 111

.

--C~l1rroal!~) Ct'nlro02 :~)

~ l'enrro04 J~I-- ('c"rroO.l'_ -CJ\'TROS ('E' rROS rlNIR()\ el·", ROS CEI\'TROS- -"6\II'AI'tR\O' .\1

PI-RSONAL----

INI I'EI(50'lAI PI-'RSO"AL_OI PERSONAL U' I'EI(SO'AI (JI- - PERSO:'<AL ()..¡.PERSONAL PERSONAL PERS01l.AI.- PERSONAlS.\NITARIO PERSONAL

SANITARIO _01 -SA1I.ITARIO 01 --_ SANITARI()_(H SANITARIO (J4

CO'lSUL l'J\S C:ONSUI.TAS_OI COl\Sl:1 .TAS_02~. ('ONSUI TAS_(n CONsel.TAS 04

ESPECII\LIDADES ESPECIALIDAD_ o I ESP[('I A1.1DAo_I)!--- EsrECIAJ IDAD.O.1 ESPECIALIDAD _04•

,i

CAPínILO,¡, DISI-'ÑODE BASES .'.. • - I)E I)A JOS REI ACJONALI:S DISTRIBUIDAS

...•••.•....•.•.•..-.••-•.

•,

Esquema de asignación:

La asignación se especificará en una tabla indicando en la primera fila las sedc' 11

nodos de la red que forma parte del sistema distribuido y en la primera colunlll:l IJtabla base de la que se ha obtenido un determinado fragmento. Debernos aclarar quecomo la relación CENTRO es poco dinámica. es decir. no sufre apl'lta'actualizaciones, se duplicará por todas los centros.

Donde i = {O 1,02,03.04 }

ESPECIALIDAD_i: ESPECIALIDADES C,;'/_E;'p=C.!d_t..'p<<loJulml CONSUL TAS_í

Una vez aplicada esta fragmentación sólo nos falta obtener las especialidadc­desarrolladas en cada una de las sedes de la sociedad médicas para ellofragmentaremos la tabla ESPEClALIDADES mediante un fragmentación horizorualderivada.

CONSULT AS_i: O(,id "'mr",. l' (CONSULTAS) donde i ;:; {Ol ,02.03.04}

Como además se quiere la información acerca de las consultas de cada centro,cuál es su horario y qué especialidad se trata se tendrá que fragmentar la relacionCONSULTAS verticalmente,

Hay que destacar que aunque en la sede central no haya personal sanitario, se huconsiderado que para mayor completitud en la fragrnentación mantendremos esicfragmento vacío.

PERSONAL_SANITARIO_i:

PERSONA L_SAN ITARIO r'¡'I.f:~.d" PERSONAL_i donde i= {O 1,02.03.04 }

Para tener la relación del personal sanitario en cada sede debemos partir de latabla PERSONAL_SANrr ARIO y mediante los fragmentos PERSONAL_i realizar lafragmentación horizontal derivada.

"Cada Centro médico (elld_Celltro ;:;(02. OJo 04)) debe tener la relactán depersonal santtario que trabaja en el nlislllo. así cO/1l0 el horario de laconsulta y /a especialidad que desarrolla...

1><PERSONAL_i: O( .•1 "." ..,. I (INF _PERSONAL) donde i = {O 1,02.03.()4}.

El fragmento TNF_PERSONAL nos interesará que se fragmente de nuevo paratener en cada centro la información del personal que está a su cargo. Para ellotendremos que aplicar una fragmentación horizontal:

••••••••••••••••••••••

Page 228: Diseño de Bases de Datos - Problemas Resueltos

ASIGNATURA i: AS1GNATURA l><- ('/Jt/_TI/lltll( "'It, ('''1'111 CU RSO_i

Donde i = {Getafe, Lcganés, Colnlenarc;o)

Por último, para saber los profesores u. d'reali¿¡lIno.~ otra fragrnenlación derív. d.' . Iq e an clases en los distintos canlpus

I a a COn os Iragmcnros de las asignaturas.IMPAR'rrR i: IMPARTIR . l><

- (·~J_~"~n(l/..ra ASIGNATURA_iDonde i = (Get"'e Le . é C 1 .

c.U1, gan S, o menarejo ]

"/::/ depaT/{II1It!nlo de eestián de • ." notntttas } co I . IIllulllelldráen Getafe, " '. 11 ratucio« (e profesorado se

Dondc i = (Gctafe, Leganés, COlmenarejo}

De la misma forma a . l'. I . signamos as aSIgnaturas im tidtltU.aciones a los campus correspondientes reali¿'lndo par r as en las distintasderivada con los rragrnentos de CURSO j < una fragnlentación horizontal

- .

TITULACIÓN_i: (5,."",1''''='/ (TITULACIÓN)

Donde i = [Getafe, Leganés, Colmenarejo}.

Para tener la informacíon completa . b I . .nece~itarno!> conocer qué curso, se rm artenso re. as tllulaclones de cada campuspor lo que tendremos, tanto para la rclació y los grupos formados para cada curso.que realizar una fragnlcntación horizontal d~r~~d~~O Corno para la relación GRUPO,

CURSO i' CURSO l>< TIT Ó- • (""'_{'''U't1,t1m ULACI N_i

GRUPO i: GRUPO" _l>< .- «1(/ _l,t,~/(liIr;". Cllrl./' CURSO_1

445CAPíTlJlO 4: DISEÑO DE BASES nE DATOS Rnl,AC'IONAll--S DISTRIBUIDAS

"I(A ~1A

.'

Como se quiere que en cada campus se maneje la información de las titulaci(ll.l:'que allí se imparten tendremos que aplicar una fragmentación horizontal en la relat'11I1lTITULACIÓN.

..En cada /1/10 de los campus se quiere crear un departamento para 1(/gestión de IIIS distintas titulaciones impartidas el! ese campus, además demanejar II)~datos acerca de las cursos de los que consta cada una de ellas y10.1'grupos que [arman parte de estos cursos. En este departamento tambiénse desea guardar informacíáu de los profesores (1IIIIIIbre. e-mail y número dedespacito) que imparten clases III! cada ¡¡/IV de los campus ."

Esquema de fragmentación:

Discusión del enunciado

En relación con el diseño realizado cn el apartado anterior explicar que'inforrnación se guardaría en el diccionario global de la BDD para 10$esquemas defragmentación y asignación.

Diseñar los esquemas de fragmentación y asignación de la Base de Dnt()~Distribuida, explicando las consideraciones que se han tenido cn cuenta para realiz.ueste diseño.

Figura 4.8. Esquema relacional correspondiente a una BD centralizada para lagestián de la Universidad Carlos ///

CLASIFICACIÓN (Calegoría. N°_Horas_Máx.. Salario)IIH '11

PROFESOR (Nombre, Dirección. ('atf8oría, Teléfono. E_Ñlail. Despacho)

¡

HR.MI

ASIGfATURA ( ('00 Asignatura. Nombr~_~lg. cscr« CÓlLCur.\o. lIor:L,,_St'nlanah1L. ~8(.\I(

lIMPARTIR (Cód_Asignalllra, ('6(/ Pro esnr , N_Horas)

GRUPO (C()¡/ Giuua. Cod_ r« Curso. Tumo)I Uf \lC

TITUl.ACIÓN (Cód Tilulacjóll. Nombre, Créditos, NOla_Mínima. Campus)tL. --., IIC 'K

CURSO «(rid rt, Curso, Máx_Alumnos)t

-144 DISEÑO DE BASI,S DI, DATOS. l'IHHII.EMAS Kl,Sl'ELTOS

. Como sólo necesitarnos algunos datos acerea~lgnaturas en las titulaciones de e d. a de los profesores que impartenle . I a a campus primero realizaruca para quedamos con la infonnacl'ón q e' . . rnos una fragmentaciónu nos Interesa.

INF PROFESOR' n- • Nnmhrc. ".M,III.'l<:'fl.<'h.,(PROFES()R)

NOMINA_PROFESOR' n• N"fI1br". [I"<"<,,'n. rOI<l""<I. ('1"C~"rl.(PROFESOR )

Para lu Iiz:l' ego rca Izar una fragmentación horizontal d . . .raglncnto~ con los atributos de los fesores . cnvada y dc esta fonna Obtcncr

r • pro esores necesarios en cada uno de lo~ , s carnpulI.l~. IN¡_;_PROF i: JNF PROFESOR b<

- _ ('¡Ji/ Aí.~nlllll(./ IMPAR1'IR it:.\, D d -'1(. on e i = {Gctafe, Leganés, COllncnarejo}

~' .•C•••• C••• ,_,.~.. (J.:,.e.~.:.•• -••• J...... 5••• J._' •••• -.- ••.•. 1.J• .,.).Je-'•..,•• J•• ¡).=-le....

Page 229: Diseño de Bases de Datos - Problemas Resueltos

PROBLEMA 3: BDD SERVICIOS INFORMÁrrICOS

Enunciado

Si los fragnlentos estuvieran du r drepljcaeiones, es decir, los nodos : IC~ os ~e debería guardar la ubicación de lasfragnlentos duplicados. . se es onde se encuentra cada uno de los

Para los denlás fragrneruos la inf ..análoga. ' ormaClon guardada en el diccionario global sería¡

j1

'1,,",hr~ I"hl. fl,'lIrnbrcB.,< - -I-"rJl!mcnlo S..dc TIpo (.'on"'~I(ln Replicado

TI1 Ulf\ClélN TI fULACfÓNGelafe,Gelafe 11 CJrnpu.,. .Getafe . NO

('URSO CURSO (,(Id Tllulación_Ge\"fe Gela(~ HD =

TITIlI.ACIÓN '"'0Gelu(c.Cód lil-

INI-" •rROFI\SOH _NllmlJrl>,I'R<lFJ.:SOR VE·MJil.Dc'pachn NO

--- 1-- - -IMPARTIR_I.~I I'ROI'LS< )({ I "'F PR()F CI'TAf-E- _

( i~lafe Cad Prlllc""GI'TAF¡; 111) •I'ROI-,'SOf{ NOINI-

I ---- ¡"lllllhl~-II'ROI· ...SOR 'i()\1INA

PROFESOR GelJfe V """"'hre. DireCCIón.L C.lI<'gl>rid,Tetefono NO

relacional. para generar el fragmento yN dependiendo de si el fragmento, está

utilizado en los operadores d I '1 be a ge ra"Replicado" que lomará los valores S oreplicado o no.

447CAPíTULO 4, DISEÑO DE BASES DE DATOS RELACIONALES IJISTRfnUIDAS

• KA MA

•...••..•.•..•.•••-.......

-

> 1~ 1f· t~ ,~ j~I:'J~ 1 ,La elupresa de servicios info á' ~~ ,¡ ~~plli(;iOScuyos códigos de idenUfic~~:ó~~~~nJ.~~',O;~~~~~e~loá3.ubicada en cuatro

, orouna red. En cada uno de ellos .' . • . y . ,C()nectados entreI r¡'r eJernplo, en el edificio cuyo c~~~neuenl:ooa~n,1o vanas unidades de desarrollo,

• umanos IgO es se halla la unidad de R. ecursos

Al ser la estructura del diccionario relacional, la información sobre 11"fragmentos se guardará en una relación que contiene como mfnirno los sigui,!nl'"campos: "Nombre , Tabla_l3asc", es decir, nombre de la relación a la que se aplica 1111

feterminado tipo de fragmentación. "Nombre Fragmeruo", "Sede", "Tipo". qlll:.ornará los valores H. 110 o V dependiendo de SI la fragmentación es hOrl/I \111.11.

aorizontal derivada o vertical, "Condición" que nos indicará qué condicione, hCll1P'

El esquema global de la SD contiene la misma información que si se tratara (il'loa SD cenlralizada. por lo tanto vamos a describir sólo aquella información quecaracteriza a una SOO relacional.

El diccionario global de la base de datos distribuida anteriormente diseñada ha tll'contener información sobre el esquema de fragmentación, de asignación, si eXI,ll''eplicación y además el esquema global de la base de datos.

:::onteoido del diccionario:

GNafe ~ Colmenare]« ~ I,egan." ~'_

TITUlACIÓ~TITllACIÓ7'I _

n I UI,ACI()N Gcratc TITl'lACIÓ'I Lceunc-,_ "Colmcnnrejo

Cl:RSO CURSO_G~IaI~ CURSO_Colmenarejo CURS()_l.cg.III~'

(iR U1'0 GRUPO_Gelat'e (jRIIp()_( 'olmcnarcjo (l~tJI")l..cl'uné ...., ,..

ASIGNATUR,\ASIGN/\ TURA ASI( iN,\ IllRA_( ielale ASI(iNATIJR,\ I ,l'g;II'~'e:olmc nurcJ()

l.'vIPARTIR 1\;1f>AI{'111{ (icl.1e IMPAR I'IR C"lmcn;lf<'ICl IMPAR nR 1..('1!anl",

PROFESOR N()MINA PROI I SUR

•-(·I.ASII-'Ct\CION eLASI rrc,\('I( JI, CLASIHCACH'>N ( 1 A~II-I(,A( ION

---1'11- PROI-"I::.SOR I'IF _PROF Gcldlc INF_PROr _CI>IIIICII=.I" INI _PROI _1_t.'!!.ll1l"

A continuación presentamos una tabla con la asignación de cada uno de los,'agmentos obtenidos en el apartado anterior. La relación CLASTFICACION tendráocas actualizaciones, por lo que se puede duplicar en todas las sedes,

:squema de asignación:

16 DISEÑO DI-:.BASr.S DE DATOS: PROBLEMA.:;,S:,.:R;;.;l::::;;S:..::U:..::E::::'L:.:.T-"O"'S ___::IJ:.:.Kc::A...::~~I"

•••••••••••••••••••••

Page 230: Diseño de Bases de Datos - Problemas Resueltos

:'1.0,1 proyectos se realizan rara 11/1 1"11111'f'('SO sabrr el nombre 1:"1 I I ,ti { '/1 1I11111adaempres¿ de 111 rua! nos1, . . e "110/10 para ~I di I '.r. '( 1,IPOlllhlt, ('11cada uno de lo' tifici tue le la "!lonnación este

J s ell ICIOSdonde sil 'I'Sf(/J t'lIlfJref(lS v los d • d e aesarro tan provectos para, saemas atos .fl' 10\ qued. 'R .'tramun» las facturas ~orrel'p" .. . ara ecursos HIII1UIIIO\P(1r.(1

, • (1I1t rentes

PROYECTO i:PROYECTO ~_ (',., ('",d"d UN IDA D i

donde i= (00, 01,02,03 )

De igual forma, Obtenemos 10'\ f ' oen cada unidad, ' . ra<:>mentoscon los proyectos que se desarrollan

EMPLEADO i: EMPLEADO ~_ ('",1 (",.1"" lINIDAD_i

donde i = {OO,0I,02,03}

UNIC)AD i: cr ., e,../ I:d/'''ff':' (UNIDAD) donde i = 0..3

Para s,aher los empleados designadosfraglllcntaclón horizontal derivada. ti las distintas unidades realizalnos una

..Los empleado» de la empresa \' lo'" . ., proyectas que se reali • •asignados a una sola unid d ti t 11 izan en esta. estantrabajar 1'11 1111provecto que I~O et e e.~arro o, aunque un e/npleado puede

. per enezca a su unidad ...

. COlll,O se puede observar en el e!> ueOla -rel ' , ' . .vanas unidades de desarrollo q d ' acional, en un edi flCIO existe una odif . " pero una ctenninada unid' d '1e lICIO en Concreto Por tanto '. a so o se encuentra en un'1 " nos 1rueresana tener en cada u de Ios edíC personal (;On10 los proyectos que se 11'1' b ' no e os edificios tanto, , evan ti ca o en el.

La rclaci6n UNIDAD la fra me ta~ignad:¡, a cada edilicio. g n amo-, hOfll.olltalmente para saber las unidades

"La 1'II11'resade servicios informáticos INFOSYSedificia, cuvos código,' d. " ifi . • TF:Mestá ubicada 1'/1 cuatro

, • e te 1.'/111 tcarton son '00' '01' 'O'cO/lec/ados entre sí por u/la r d-En cad, . , 2 y '03','. . e, n caüa 11110 de 1'//0' 'vanas u/lldades de desarroll '1 " se encuentra 1//10 oo, por ejemp o en el difi . • ,\1' halla la unidad de R ' . H • e lICIO cuyo rodigo es '00'ecursos umanas,"

Esquema de fragmentación:

APARTAOO I

Discusión del enunciado

CAPITVLO 4: DISEÑO 01· B S S. A E! DE DA ros RELACIONALES OISTRIBt 'IDAS

2, Conforme al diseño real izado en el apartado anterior, modi flcar SI se ~'Il'"

necesario los esquemas de fragmentación y de asignación para conseguir que 1.1siguiente consulta se realice de manera local: "código de los proyecto' qlll'

desarrollan las unidades de un determinado edificio",

1, Diseñar los esquemas de fragmentación y asignación de la Base de Dato­Distribuida,Tener en cuenta que cada unidad de desarrollo gestiona las nóminas dé ,"'empleados y necesita la información de los proyectos en los que trabaja para podl'lpagarles conforme ti las horas que han computado en cada lino de ellos,

Figura 4.9, Esquema relacional correspondiente a tilia BD centralizada para lagestián de lIna empresa de Servicios lnformáticos.

El\lPRESA CLIENTE (CÚd Emp~a, Nomo!'c.Dirección,AparwJo_C,,,.rco )

UNIOA!)( (.',><.1 Un ,d,," N< irnhrc. .:\ 1(";1_n..·,\rrn )11(1, H..:'Ili u'!>Jhle. Crí,/ J:'/I{it If' )

IIR \'1I

R~ MI....... l.... EI\IPl.~;,\nO( C!l!! 1;'lllll~Jdll'l,U"t'Ié'. AI'l1:llltti.l', 1)I'\.'l''-=I('" (-..",/_l. ""ltltl ,..

I U( MI

J(~,\ 1.1)I,A I'J(O\ ECTO I (!._kl l' lt'l,tfit,l". ,-,;,1 Pr'!r 1" (" Ilt\fJ' (",lnlplll:uJa.. I

IJl ~u r I~R'i('

~PJ(O"ECTO I !:_',It( Ilr")Ct.:l~l , Nombre. PI'C\IIP11t.:'lt)'(',!r'_I:.tnl,rt',\ct. Jt:/(' Provee tri, (',;,1_(,'"IIICI(1tlK:MC

\ "K,~l(

( (,',;'1 r."¡lkl'1 Nllfl)hrc. Dirección. Telélono_CenlrJI)l1n Me

rEDIFICIO

Suponiendo que el esquema de la base de datos relacional es el de la figura 3,3:

Pueden existir proyectos internos de los cuales no se tramita factura, por lo quelO es necesario que Recursos Humanos posca información de ellos, Estos proyectosienen C0l110 código de empresa cliente el 'QOOO(r,

Los proyectos se realizan pata una determinada empresa de la cual nos Interesaaber el nombre y el teléfono para que dicha información este disponible en cada UIIO

le los edi ficios donde se desarrollan proyectos para estas empresas, y los demás datose los quedará Recursos Humanos para tramitar las facturas correspondientes,

Los empleados de la empresa y los proyectos que se realizan en ésta, estánsignados a una sola unidad de desarrollo, aunque un empleado puede trabajar en un.royecro que no pertenezca a su unidad,

ORA MA~sDISENO DI" Bi\St'S DE DATOS: PROBLEMAS RESLlFI.TOS

Page 231: Diseño de Bases de Datos - Problemas Resueltos

En el E[)IFICIO K: EMP Kj donde . K-~mple~dos de todos los edificio; que trabaJa~'en - (~)(). 01, 02,.03_} que serán los\1p_I_K donde I :: {OO. 01. 02, 03}, {K} :royectos del edificio K. Y además,

y - {OO,O l. 02. 03} que serán los

. La tabla descriptora de la asignación de I . ffnlglne~to~ hallados en el esquema de fragnle~la~;~ ragln~rll~S Contendr~ lo~ nuevosIorma siguIente: n anterrOI y que se aSignarán de la

EMP_i~j : REALIZA_PROYECTO i D< E'MPLEADO .- {jli/_--rll,/1 l J _ J

donde i,j = (OO.OL02.03)

Por ejemplo, la información que contiene el f.empleados asignados al edilicio O J que partí . ragmento EMP _00_0 I sería loslas unidades asociadas al edificio OO. icrpan en los proyectos llevados a cabo por

Esquenla de asignación:

. Para poder mantener el esquema de fragrnentación .' ,lnformación referente al co'dl·o d J I anterior y además poder dar la

go e os cmp cado s que t bai Id.esarrolla~os por las unidades asignadas a los di·. e ra. al~n en o~ proyectossiguiente Iragmcntaciór¡ horizontal derivada. stintos edificios, realizarcmne la

j

Esquema de fragmentación:••

APARTADO 21

l•

..

¡•

e

,•

f--F.df.OO!~]F.dr.OI ~ Edf.02 !~,

~- F.dr.o.'lINfI>Afl IINIDAD_no U:\IDAO .01 UNIf)A!) 02 UNIDAD O)'- -- -EM "LEA DO EM"LEA DO ()() EM"LEA DO 01 r:MPLEADO_02 EMPLEADO 0.1----PI{OYE(TO PROYEC"ro (JO PROYEC) 0_0' PROYECTO 02 PROYECTO_O)E\1PRESA_CI IEI\'TE FACT_EMPRESA

I 'iF_ E!\IPRf:SAINr I'IIF_ INF_ I:-Jt-"F-~IPRESA(JO E.\1PRESA(11 EMPRESA O~ EMPRESA_03

RI·ALII.A_ RF.,\LII.A REALII./\_ REALIZA REAI.lZAPROYECTO -

PROYECTO ()()_

----- PROYEC ro,«I PROYECTO 02 PROYEe ro 01- .f:l>IFI("I() -

!.:l>IFICIO EOIFICIO EDIFICIO EDIfiCIO

,

CAPiTUL04 DISEÑO DI, GASESDE DATOS RELACIONAl ES I)JSTRIBl:IDAS 4S1

,r l

Esquema de asignación:

A continuación presentamos una tabla con la asignación de cada uno de lo,fragmentos obtenidos en el apartado anterior. La relación ~DfFICIO, .que aparece (,.'~el esquema relacional, es una relación que suponemos estática, es decir, en e!l~ ~n 'lvan a realizar operaciones de actualización solo de consulta, por lo que deCldlllll"duplicarla en cada uno de las sedes.

donde i = {OO,01,02,03 }

REALIZA_PROYECTOc,id_p~lrI PROYECTO_i

REALIZA PROYECTO i:_ -

Para que cada edificio tenga el código de los proyectos en los que lr~ba.!a elpersonal de las distintas unidades asignadas a éste realizamos la siguientefragmentación horizontal deri vada.

"Tener e" ("lIe"ta que cada unidad de desarrollo gestiona las "Ó""/I(I.I de .~UIempleados y lIt'ct'Mla la informaciñn de 10-1provectos 1.''' los que trabaja parapoder pagarles conforme o las horas que 110/1computado en cada ""n deeltos. "

donde i = (OO.01,02,03)

INF _EMPRESA_i: TNF_EMPRESA otuS'I""'" PROYECTO_i

La información de las empresas que participan en proyectos asociados a cada unade las unidades se obtiene:

nCód _Enlpresa. Di reccián.Apartado _Correo( EMPRES A_CLTENTE)

Los proyectos internos que tienen corno Cod_Empresa = '00000' no se mandan a=acturar, pero esta información es muy pequeña (una tupla) y podemos dejarla en la:abla FACT_EMPRESA y en TNF_EMPRESA.

FACT _EMPRESA:

lNF _EMPRESA: nCád.Emoresa. Nombre (EMPRESA_CLIENTE)

Para que Recursos Humanos tenga la información necesaria de la empresa clienteragmentarnos verticalmente la tabla EMPRESA_CLIENTE.

50 DISEÑO DE GASESDE DA ros. PROBLEMAS RESUELTOS

••••••••••••••••••••••~ ••••••••••••••••••-•.••.•••

Page 232: Diseño de Bases de Datos - Problemas Resueltos

En cada una de las zonas se precisan los siguientes datos dc los desclnpleados:Cód_l)cs, NO/libre, Apellidos, Direcctán, Cf$t!_O¡

La lona centro es la encargada de realizar las estadísticas de los desenlpleadosde la COlllunidad. para lo que necesita su fecha de nacimiento y la fecha en laque se in~cribi6 en el paro.

I. Diseñar los esquemas de fragmentación y asignación de la Base de DatosDislribuida teniendo en cuenta las siguientes esrecificaciones:

Figura 4.10. Esquelna relacional correspondiente a Uf/U BD centralizada para lagestión de cursos dellNEM

REALIZA_CURSO (Cód lJes Cód Cuisa, Fecha)

Ij)

ión, C,íd _Oi,r+ OESEMPLEADO (Cód Des. Nombre,' Apellidos. Dirceo

F_Nacimiento. P_ Jnscrip )

~ ICURSO (CÓd Curso. Dcnol1l1nación. lloras , Clld_O

~ ()FICIO (ClÍd Qlicio, Descri IX ión )-I CJC" \tc' Rk \1(

DF..sF.MPF.S'A ( C'átJ. !2e.1. Cád Oiicia: Grado)

Il<l' \1(' J UN \1(

:=::: OFICINA (Cód Of. Dirección, Teléfono, Zona)

Suponiendo que lodos los ordenadores de las cinco zonas están conectados entre\í Y que la base de datos relacional es la que figura a continuación:

Los desclnplcados están adscrllOS en una única oficina. aunque pueden realizarcursos en cualquier oficina de la Comunidad de Madrid.

En cada una de las oficinas se imparten cursos para los desenlpleados. A cadaoficina se le asignan, de forma exclusiva, distintos cursos, es decir, cada oficina esespcciali!)la en la docencia de unos dCtemlinado~ cursos. los cuales no se puedenimpartir en ninguna otra oticina.

¡

..-, ~

I

•••I

~ee\.. ,:-e e.~~.

Enunciado " '11

. .d cuentran agrupau<l\ lLas oficinas del lNEM de la COlllCunldaddCeMdadf1a ~: :~as posee un ordenadlllS E te Oeste y entro. a a un

cinco zonas: NIorte, aUnr'IOs~d.:tOSde las oficinas asignadas a la zona.en el cual se a macen .,

PROBLEMA 4: BOO ()«'ICINAS DEI.. INEM

os que laTendríamos duplicación en algunos de los fragmentos pero conseguinarn .consulta se realizara de manera local.

- .-

!\tdf.OO ir] ~ ~FAf.02 • Edf.03Edf.OI

U'ID,\D 01 U:-':IDAn_u~ 1.l\IDAD_OJU:-':IDAD I '11),\1) (MI

I,MPLLADO_OI E~IPLEADO_U~ EMPI.EADo_rH1-.:\1PI.I-.I\00 [~'PLI,AI)()_(X)

PRO YECTO_I) 1 PROYECTO_02 PROYECTO (nPROYECTO I'ROYECTO_OO

E)'o.1PRESA_I-A<:T EMPRl::S¡\

CLIENTE

INI: INF INF_INF_INI-' EMPRESA

EM PRESA_O) EMPRESA 01 EMPRESA_()JEMPRESA_OO

EMI' OOJ)O

EMI' _oo_o.'REALIZA_ 10M!' (X) (JI EMP _(lO_O) EMP _(XI_()~PROYECTO (XI I:MP (MI 02

EMI-' .(MI,0\

EMP o I_OOREALIZA_ hMI' UI ni EMP_OI_O! LMP_OI_01I',MI-' 1I1 .1M) 1 \111' 01 112PROYECTO_OI

I'MI' 01_0'

tMP _IJ2 IX)REALlZA_ EMP 02 01 E~lp_n2 01E\'P _O!_UO l::Mp 02 ni EII1P_02_U2PROYEC"'O n2

E~'P 02 U.\

EI>'p (), _lMIEMP_O.'_OIREALIZA_

EMP _().'_(XI F.~'P_03_OI E:'IP _().1_()~ EI\IP_03_02PROYECTO 03El\lP 03 n,

EDIHCIO EDIFlCIO EDIFICIOEDIFICIO EDIFICIO.-

. •

.. ..' ro ecros de otros edificios. En este caso elmpleados del edificio K que tlab~Jan en Pd y díf '0 para no repetir el fragmentoidice i no recorre todos los numeres e e I ICI~MPK K

P DISEÑO DI-. BASES DE DATOS, PROBLEMAS RESUELTOS

Page 233: Diseño de Bases de Datos - Problemas Resueltos

donde j = {Norte, Sur, Este, Oeste, Centro)

De esta forma se aumentaría el número de fraeficiencia a la hora de realizar cual' . ,gmentos, lo que SUpone pérdida dequier operación tanto de act Ii .,consulta sobre la un" d f ,ua izacron como de, Ion e ragmentos que se encuentran en la misma sede.

~Cada ~ona precisa saber, .Con total autonomía local. los desef"pleadoan rea Izado los cursos asignados en sus oficinas. .. s que

. Se realiza una fragmentación horizontal de' d .Impartido en cada zona. nva a para saber los cursos que se han

C><CURSO_i: CURSOCrid Cur.", OF . .

_I donde I = {Norte, Sur, Este, Oeste, Centro}Corno cada zona precisa sab 1 d

asignados a sus oficinas se realiza el' °t esernpl:udos que han realizado los cursos, . . una raglnentaclón horizontal derivada:

REALfZA_CURSO_i: REALIZA_CURSO C>< .C,¡d Curlf,CURSO_1

donde i = {Norte, Sur, Este. Oeste, Centro}

,

DESEMPI i: 0("1 (DESEMP .- . ,,. /)"', F_A'flt..'"""nlll,r_"l\Cnp _1)

DESEMP _i: DESEMPT~EADO 1>< OF_i.cód_OI

donde i = {Norte, Sur, Este, Oeste, Centro}

Estos cinco fragmentos t drí dDESEMPLEADO 1 . en flan ro os los atributos de la relación

,por o que para que la lona centro pudo licon total autonomfa se debería realiza eva f ler.a rca Izar sus estadísticasen cada uno de ellos. r una nueva ragnlentaclón, pero esta vez vertical

,

a losde~el~inalmente. para conseguir l.os fragmentos con la mformacton referente. pleados de cada Zona se realizará fragmentación horizontal derivada.

DESEMP_ZONA_i: DESEMP2 1>< OCM_OI F_i

donde i = {Norte, Sur, Este. Oeste. Centro}

aSign:~!o:~::.le~~~a~~:~r~Pr~a~~ fra:nlentación para c~nsegu~r los desetnpleadosDESEMPl EADO I fi·· Izan o una fragmentacío» derivada de la relación

J con as o temas de cada ZOna.

I,

III

I1

Esta fragmentación nos da como resultado' laciatributos que la relación OFICINA . I . cinco. re aciones con los mismosa cada lona. . pero con a información de las oficinas asignadas

CAPlTULO~: DISENO DE BASES DE DATOS RhI.A('IONALES DISTRlaUIDAS 455r)RA \11\

...........................

•-,

~

I

. .

OF_i: cr7,,",,2, (OFICINA) donde i = {Norte, Sur. Este. Oeste. Centro}

En un primer lugar la relación OFICINA sufrirá una fragmentación horizontala condición será que el atributo "zona" torne el valor de cada zona.

La relación DESEMPI servirá para que la zona centro obtenga sus estadísticas yla otra relación, DESEMP2, tenemos los datos personales de los desempleados deomunidad de Madrid, pero no están por zonas, Para conseguir los datos personaleslos desempleados de cada zona necesitaremos saber cuales son las oficina,espondicntes a cada zona.

De esta fragmentación obtenemos dos fragmentos denominados, DESEMP l )iEMP2, que cumplen que son disjuntos y cuya unión es la relación:;EMPLEADO, asegurando de esta forma que la fragmentación sea correcta.

DESEMP2: nCw_I)<,.:01.. ,,,,,," "1"'111<1.. ,.1>""........Ct,.¡_o,(DESEMPLEADO)

DESEMP 1: Oc,,.¡ [le'. F :"o."m,cnu'.F In-cnr(DESEMPLEADO)

Para quedamos con aquellos atributos que se necesitan en cada una de las sede,remos que realizar una fragmentación vertical en la relación DESEMPLEADO.

..En cae/a una de las zonas SI! precisan los siguientes dOlOS de losdesempleados: C6d DI!.~.Nombre, Apellidos, Direccián. C6d_O¡ ..

"La zona centro es la enrargudu de realizar las estadtsticas de {osdesempleados de la Crununidad, 1'0fU lo que necesita Sil [écha de nacimientov la fecha 1:11 la que .I't' insrrihiá 1.'11 1.'1puro. "

Vamos a ir construyendo los fragmentos según las especificaciones del problema,

uema de fragmentación:

lRTADO 1

cusión del enunciado

Además de las especificaciones amenores. cada zona desea saber los cursos quehan realizado 10l> desempleados de la misma. Modificar. si se consideraconveniente, los esquemas anteriores abiendo que la red que une las distinta ..zonas es muy lenta y no es conveniente el tráfico de los datos por la rrusma. ya queno es una línea dedicada.

• Cada zona precisa saber, con total autonomía local, los desempleados que hanrealizado 101' cursos asignados en sus oficinas.

t.· •••••••••••••••••••

Page 234: Diseño de Bases de Datos - Problemas Resueltos

~ ~ . \••••~.....~--.•••••.-.~•.•

- -.

~ ~ ~ ~ ~

Nurle Sur C~nlro F..\le Oeste01 1CI:-.1" OF_:>'nne OI'_Sur 01'_(\·ntn. O~_E,te OF OesteDESE~t.Pll:ADO OESE-'U'I

DESEMP~ DESEMP_ DE<;EMP DESEMP D¡:SEMP_ DF-SE¡\IP_ZOXA No"" ZOl'.'A_Sur ZOt\'A Centro ¿ONA_Esle ZONA OesteCURSO CURSO Norte CURSO_Sur CURSO CCOIr.. CURSO_c'le CURSO_ Oeste

DESIiMPEÑA DESEMPEÑA - DESEMPEÑA DESEMPl:ÑA_ DESEMPEÑA DESEMPEÑA_

Norte Sur Centro_ _

Elle OesteG Norlc_NoneREAl IZA G_NOrtc_Sur

rURSO Norte G_Norte_Cenlto G_Norte .Sur G •Nurtl:_c.\·111ro G Nnnc EMe (; _Nune _OesleG_Nunc_E'le(i Norte _Oc~re

(l .Sur Norle1<IlAlIZA (J Sur_SurC'11RSO_SlfI G Sor NHn(' G_Sur_l'Cllt rtl G_SUt Cl'I)I", (j SUI_F.,w G_Sur OesteG Sur E~lcL. - G Sur_Oeste

, En la zona k tendríamos los fragmentos G_KJ y los G_i_K donde i = {Norte,Sur. Este. Oeste, Centro}. (K) y cJondej. K = (Norte, Sur, Este, Oeste. Centro)

La asignación de estos fragmenros se realiza de la siguiente forma:

y ~or lo tanto, el fragmento G_iJ contendrá los desempleados de la zona j quehan realizadr, algunos de los cursos ofertados en la 7.0na i,

donde i, j = {Norte, Sur, Este. Oeste, Centro}

G_iJ : REALIZA_CURSO_i t>< DESEMP ZONAJC,;d_De. _

La infomlaclón que obtendríamos con cada uno de estos fragmentos sería losdesempleados de la zona j que han realizado algún curso de los ofrecidos en la zonaNorte.

donde j = {Norte, Sur. Este. Oeste. Centro}

La primera de ellas seña volver a fragmentar cada uno de los fragmentos deREALIZA_CURSO. Por ejemplo:

G_NorteJ : REALIZA CURSO None e-e DES'-'MP ZONA_J'- - ("<>tI n" • 1:. _.

CAPíTULO 4' DISEÑO DF BASES DE DATOS RELACIONAll"-S DISTRIBUIDAS 457f) ~A MA

,

••

..~'

,

,

,•

h l· d I de 'empleado, dl'Para saber en cada lona o sede los cursos que an rea Iza ° os sJ misma, se pueden considerar dos soluciones:

LPARTAD02

-~ Sur ~ Cenrro ~ F.,l~ ~ Oeste ~Norle _

f-JFlCI'I,\ OF _"(ln~ 01"_Sor OF_CCnIH) OF_E'le OF_()e 'le

JESEM· DI'_<¡f-.MPI'lEAOO.__ .

DESEl\IP _DESF,\IP _ Dr:SI:MP _ DI'_<¡1'.1\1P_ DESF.~1P_JESEl\1P1 ZO:-lA_Nunc ZONA Sur ZON i\ Centro ZO:-lA E,IC ZO:-.1A_Oe-rc~

:URSO CURSO_:-.1()f1e CURSO Sur CURSO_Centro CCRSO_EMc CURSO O",te.-

DESEMPEÑA_ DESEMPE:\"A_ DESEMPEÑA_ DESEMPEÑA DESEMPI:ÑA_)ESEMPEÑANorte Sur Centro E'le Oeste .-REAI.IZA REALIZA_ REALI7.A_ REAI.IZA_ RI:ALIZA_{EALIZA

CURSO_0':'1,·~URS() CUR!iO_No,te CURSO .Sur CURSO Centro CURSO ESle --OrICIO Ot-lCI() OFICIO OFICIO OFICIO)¡'-K'IO _-

Iesquema de asignación:

Describimos a continuación. mediante una tabla, la asignación de cada frag,ne~~orelación a las sedes correspondientes. indicando en la primera columna la relaciónase de la que procede cada fragmento.

donde i = {Norte. Sur, Este. Oeste. Centro}

Por último nos queda la relación OFICIO. que si suponemos que es una tabla conocas operaciones de actualización y que sólo se realizan consultas. duplicaremos enxías las sedes.

De esta fragmentación obtenemos el código del desempleado y el código de losrrsos que se han realizado en cada zona o sede.

Una vez cubierta las especificaciones pedidas por el enunciado tenernos quermprobar si las relaciones que nos quedan en el enunciado deben ser tambiénagmentadas para conseguir más autonomía local.

La relación DESEMPEÑA se puede fragmentar para que en cada zona sercuentren los datos de los trabajos desempeñados por los desempleados inscritos en. misma. Para ello utilizaremos una fragmentación horizontal derivada.

DESEMPEÑA i: DESEMPEÑA C~j DESEMP _ZONA_i

o) RA MA(1 DISP.NO DE BASES DE DA ros I'ROHI.t;MA$ RESlJEI.TOS

Page 235: Diseño de Bases de Datos - Problemas Resueltos

En este . l. . CUpltUo se pretende rnOSlrar cómo se 1 'del diseño de bases de datos medí t I puee en realizar lus distintas fasesla solución de dos problemas El ian e a tecnología CASE. Para ello. hemos planteadoER ' . . pnrncro se ha desarrollado I h ewin y el segundo con la hcrrami con a erramienta CASEDesigner2000. enta CASE proporcionada por ORACLE.

En cada problema se parte del es u ' .h~rran1i~nta CASE adaptándolo a la notae¡ó~ma EI~. teórico y se introduce en unadIferenCias que existen y las sol' d que utiliza, Comentando en cada caso lasla pérdida de semántica' A eUoClot.nesa'óoptadas para realizar la adaptación eVitand~ge '6 . n muaci f1 se real iza el 'ncract n ¿tulolnática de código. . ' paso al relacional y la

En ambas hcrranlientas se h' '1' .~:I(OSORACLE (aunque l~s he~a~i~~~~~ ~~~~;~exlón al ~istema gestor de bases dease~ de datos. como Informix A' . en conexiones a otros sistemas de

genera está especificado para OR:CcCLsES'getoc.)yd.por ta~to. todo el código SQL que seel capítul ., I .. a Iferencia de los' '.o _. . en los que aparecía el código en SQL 92. . eJercIcIOS resueltos en

lNTRODUCCIÓN

CASEDISEÑO CON HERRAMIENTAS

CAPÍTULOS

,

••••••••••••••••••••

,, •••••

, -'l~,

•¡· .:

Otra solución posible sería la duplicación. en cada una de las zonas. de la tablaREALIZA_CURSO. ya que esta tabla no sufre actualizaciones continuas. y al tenerpocos atributos su alrnacenarniemo no sería muy costoso.

Corno se puede observar en la tabla tendremos duplicación de algunosfragmentos, pero aseguramos total autonomía en cada una de las sedes,

Nurle ~ Sur ~ Centro ~ [sir ~ ()l'~le ~

r; Ceruru Norte

REALIZA G C"eIllI'O_SUI

:tlRSO_C"cl1ln, (i Cenlro Norte G_Cemro_Sur G_C~ntl') Ctl1l!(, G_Centr,)_E'lc (j Centro ()~'IC

O_Cellllo. ESleG Centro Oc-ae

G 1::,10 Norte

REAl IZA G_E'lc_.)ur

r:lJRSO_I-,'lc Ci 1-\lc_None G_Este_Sur G_f!,II!_C'cntr,. G_I-,'lc_Ccnlm G_E'lc_Oc'leG_E,tc_EsICG_Eslc_CX,lc

(j Oc-te Ntlnc

REALIZAv_()c'IC Sur_

(j Qe'te_"one G_Qe,lc_Sur G_Oc,te_Ccntru G_Oc'lc_ble G_Oc'IC CentroCURSO_Oeste G_OC'lc_l-."cG Oe,lc Oc-re

OHCIO OFICIO OFICIO Ol-ICIO 01-'1(:10 Ot'ICIQ

o Rr\M~IS8 DISEÑO DE BASES DI! DATOS: PROBLEMAS RESUELTOS

••••••••••••••••••••••

Page 236: Diseño de Bases de Datos - Problemas Resueltos

Figura 5./. Esquem.¡ E/R

( ,,o)

I<¿¡;J IN

l.

- - .~-_ •I I ,

nro J)FC'OM1'(1,\1."TI.

-_•--- --_ --

Esquema EIR

CAl'íTllLO 5 DISENO CON HERRAMIENTAS CASE '¡ól

privadas se recoge las empresas (CIF b .agencia pública puede recibir ti ',no.~ re, capital, etc.) que las financian. NinzunaInanClaCton de crnprcs .. 1:>puede recibir aponación de nin ' E d' sas, ni ninguna agencia privadapor ci.cnto) de la participación ~:~ad:ta o. Se"desea recog~r la. proporción (en tantoagencias espaciales tendrán u b empresa en la contribucíon a la agencia Las

n nom re y un nú d 'Toda agencia privada tiene que ser . . d mero e personas trabajando en ellassupervisa a por una agencia pública, .

Una agencia espacial es responsable de lim " . .de sus naves: para ello. una de las té . . ,PI ar 1,1 basura que produce cualquierapara la fragluentaeión del obieto (becnlcas mhas empleadas es el uso de un rayo láser

J asura) asta q d " d .problema de esta técnica es que d ue eje e resultar peligroso, El, ' aunque re uce el rama - o di'numero, por lo que cada vez que se f n e os objetos, aumenta sudI' ., ragmcnta un obict . d .e cual proceden los nuevos objetos reducid J o, se osea registrar cl objetofragmentacíon. . p UCI os y la fecha en la que ha tenido lugar la

• •

i'••,.L,

-

•t

,¡. •

Se registran los lanzarnientos que realizan las agencias espaciales de una nave)las órbitas iniciales en las que las posicionan (en caso de que la nave esté en órhit:lI.Se desea almacenar la fecha, en la que la agencia lanzó la nave.

Las agencias espaciales pueden ser de dos tipos: pública, o privadas: para la'públicas se recoge el nombre de los Estados que las mantienen, mientras que para 1,1'

Las órbitas pueden ser circulares o elípticas y geoestacionarias o no; seidentifican por su altura, su sentido (coordenadas polares r y O) y su excentricidad (1:).

Una órbita circular tiene excentricidad O.

Para cada clase de nave se registrarán todos los tipos de componentes que posec:a cada uno de ellos se le asigna un código y se recoge su diámetro y peso.

Cada nave es una clase de nave en concreto y se identifica por una matricula 4Ul'contiene el código de la clase de nave a la que pertenece. Las naves pueden tenertripulantes, recogiéndose sólo el nombre de cada tripulante, que se supone único. Todanave tiene una misión (cientítica, militar o espía) y es propiedad de una agenciaespacial. Una nave, a lo largo de su vida útil. puede cambiar de órbita. Se registrarántodas las órbitas de cada nave, así como las fechas (día y hora) inicial y final depermanencia en cada órbita.

Basura espacial es cualquier objeto desprendido de (o producido por) alguna naveque no sea de utilidad y cuyo diámetro sea superior a una micra o su peso superior a 1miligramo. A cada uno de estos objetos se le asigna un identificador secuencialnumérico y se pretende recoger tanto su tamaño, como su peso, velocidad, últimaórbita conocida (que puede no coincidir con aquella en la que se lanzó la nave que laprodujo) y las distintas posiciones del mismo (coordenadas polares r y O respecto alcentro de la tierra) registradas en determinados momentos.

Desde los inicios de la era espacial hasta nuestros días. la basura espacial se haconvertido en un problema que dificulta la realización de misiones espaciales. Por estemotivo, se crea una comisión internacional para el tratamiento del problema. Una delas primeras medidas de esta comisión es la de crear un sistema de información para elseguimiento de la misma. El análisis realizado es el siguiente:

Enunciado

:ASO PRÁCTICO 1: BASURA ESPACIAL

Hay que aclarar, aunque se hablará de ello en los ejercicios, que no ladas las faseslel desarrollo de una base de datos están automatizadas en la" herramientas CASE. Lomporiamc es tener los conocimientos teóricos acerca de cómo diseñar una hase dclatos para que luego la herramienta eASE ofrezca el soporte adecuado en lamplementación de la base dc datos y de esta manera presentar una ayuda al diseñador

:;(1 DISEÑO DE HASES DE 1)1\ I ()(.:;S:;...!..I'R~(~)~BL~E::!·M.::!!.!,\~S..:::R~E~S~U!.:.E!.:.I.!..:rO~s;!_ _

Page 237: Diseño de Bases de Datos - Problemas Resueltos

¡'-¡gura 5 1 R.. . epresenfación d .e Jer"rqu(as

PUBLICA• NOMBRE_E•

AGENCIA.. NOMElREo PERSONAl

-PRIVADA ]

Figura 5 2 R'. epresentación de entidadesMención especial deo bperm' I . e aeerse a las' ,He as Jerarquías rot I . jerarqulas. El modelo EIR

la figura 5.3. • a es y exclusivas y su represenl 'ó . de Designer sóloacr n es C01110 se muestra en

Sin uestro esque E ' .ild'¡pt ma IR tuviera jerar 'j cn;id:~;~: posiblenlente considerando los ;~~~;~~~~~l~n~l~e~a~l~e este tipo, deberían

crseccl6n elementales como

ORBITA'# ALTURA'# EXCENTRICIDAD'# CIRCULAR~ SENTIDOo GEOESTACIONARIA

,•

, .•-

1

1•·,,,

I:

2. Transfo - -' ,. . rmacron y adaptación del di:diante la utilidad Dafabase Desi/(11;,.!ra~a ElR a un esquema relacional me­

nsjorme» del Inódulo D . E' '3. Generación y eSlgn 'ditor.

cOlnprobación de códiigo.

Diagrama entidad interrelación (Entity R la . . .. e tionshipDlagral1lmer)

Los objetos pemlitidos en el' .que Con las diferencias u modulo Enfll,)' Relatiol1shi Dieteórico. es decir. entidad q e _comenta~emos posterionnente. J~ m' ~gra,n",er Son, aun-

es, InterrelaCIones y atributos. s rmsmos que el modelo

V na entidad (tanto regular e ' .aparecen tanto el nombre d on.,o débil) se representa nlediante .atributo un indicador d l' . e la entl?ad corno los arributos que u.na caja en la queca ' e tIpO de atnhuto (VID . Contiene y para d

mo se InueSlra en la figura 5 2 . atriOlllo Opcional ti oblt .: ca a_. . rgatono, etc.),

J•

•• (,ON HERRAMIEl\'l'AS CASE 463

del esque EIRma mediante el módulo Enlilyl. Adap~ación y Representación

Relaltol1ship Diagrol1l1ner_

••••••••••••••••••

Los pasos básicos que se deben seguir para la construcción de una base de d.,II"iediante la herramienta CASE Dcsigner2000 son los siguientes:

'ransformación a Ocsigner2000

as.No se puede recoger la exclusión en la financiación de los distintos tipos de apcn

,El atributo "Circular" de la entidad ()RBITA se podría haber considerado UCII-

do. dado que toda órbita circular tiene excentricidad O.

La interrelación Lanza es ternaria y en ella se mantendrá información acerca deórbita del primer lanzamiento. Esta Interrelación no es redundante. puesto quemo en el enunciado no se establece ninguna restricción al respecto. una NA\ I.dría ser lanzada por cualquier A(;ENCIA (no sólo por Laagencia propietaria) ) pUl

puesto, podría lanzarse varias veces. por lo que el atributo "Fecha_Lanzamienlo" eultivaluado y provoca que la misma nave pueda tener varias órbitas iniciales.

"Nombrc , Tripulante" es un atributo multivaluado opcional de la entidad NAVE.!permite recoger los nombres de todos los tripulantes de cada nave. Se podría haberisado en introducir una entidad 7'RIPULANTE que se interrelacionase con NAVe.'0 no es necesario, pues de cada tripulante sólo se desea recoger su nombre, Por otroo el atributo "Misión" debe estar definido sohre el dominio {científica, milita!'.iía] .

Una NAV/:: podría estar en la misma ÓRBI1'A en distintas fechas Por tanto la~'has inicial ("FI") y final ("Fr") de permanencia en cada órbita son atributo­iltivaluados de la interrelación Está.

La última órbita de la basura espacial debe pertenecer a una de las órbitasibles, es decir, debe ser una ocurrencia de la entidad ÓRBITA y ser proporcionadadiante la interrelación GRA VITA.

Se define como basura espacial todo objeto procedente de una nave cuyo diá­ro sea superior a una micra o cuyo peso sea superior a un miligramo, Esta de­ción puede verse corno una restricción sobre las ocurrencias de la entidad RA·M. Esta restricción no se puede recoger en el modelo EIR, aunque podríargerse en el modelo relacional mediante un CHECK entre los atrihutos "Tamaño":>eso". Por OLrO lado. el atributo "Posición" de BASURA es un atributo rnultivaluado, aparre de las coordenadas. incluye también la fecha en la que se tomó la posición.

~SIDERACIONES SOBRE LA SOLUCIÓN PROPUESTA

DISEÑOPE BASES DE L>ATOS: i"ROBLI.:MAS KESUEL TOS

tll!}:~.

TIPO DE COMPONEN7'E no es un cornponente específico de una NAVE: p,lr ~:lo, la cardinalidad es (O,N). No existe una dependencia en identificación entre t.,l¡l 1/. 'TIPO DE COMPONI?N,/'H.

t ••••••••••••••••••••

Page 238: Diseño de Bases de Datos - Problemas Resueltos

Figura 5.6. Diagra",o ElR

. .<?bsérvese CÓmo se ha tenido que adaptar el es uema . . . ,admitida por la herramienta Así se ha t id q EIR original a la notacíón(concepto de superior nivel de abstraccí ,en), o que tr~nsformar la interrelación ternariace t d Ion a una entidad Con tres' ti'P OS e menor nivel de abstracción}. In erre aClones (con.

Diseño de la base de datos (Database Design)

.. Tras realizar el diagranla entidad intcrrela '6ullhdad Database Design Transfi od CI n y transformarlo mediante larelacional de Codd. Las entidades ~:::r.~ ernos obten~r el equjvaJente al modelose lransfonnan mediante la propa aci ,an~ o~an en relaciones. las interrelaciones l:Nresultado una nueva relación cu g Ion e ~ av~ y las Interrelaciones N:M dan comoclaves primarias de las relacionesYqae ~ve p':1lnarl3 resulta de la concatenación de las, ue Intervienen. .

Como se comento en el apartado ante i '.¡lennilc en esta herramienta CASE " r oro el único upo de jerarquía que sede este tipo de jerarqufas se hace ~: acr: l~taJ y exclusiva. La transfomlación\Upcl1ipo.y añadiendo a esta reJ;c~' de ect~b'cons.lde~an~o una única relación para el

Ion un atn uro dlSCrlrnlnantc Cuando se di _. isena una

Por último, mostramos el diagrama EIR completo producido para la herramienta:

donde corresponda (en la entidad o en la interrelación)presente en los informes (Repons) que genera la herramien;a~ así. lo podremos tener

CAPÍTULO S' DISEÑO CON HERRAMIENTAS CASE 465r. kA MA

Además. no se permite la representación de atributos en ningún tipo de írucrrcción. Solamente los atributos multivaluados y los univaluados correspondientes", 1",.terrelaciones se podrán representar posteriormente en el modelo relacional; pelo '1

.ieremcs hacer constar estas caractcrfsticas, podernos incluir un breve COlllcnlan,'

Designer no admite la representación de interrelaciones de grado superior a do-.tampoco la representación de atributos multivaluados ni compuestos. tanto si esn»ributos pertenecen a entidades como si pertenecen a interrelaciones.

Figura 5.5. Representación de dependencias

--tiene

NAVE., MATRICULAo MISION

CLASE NAVE., CODIGO CLASE

~II

f I,'. 1,\:..

··Para la representación de dependencias Dcsigner utiliza como notación un rombo

uado sobre la Hnea que une la entidad débil. Si la dependencia es una dependenciaidentificación. debernos transferir el VID de la entidad regular a la entidad débil ynsiderar éste como parte del VID de la entidad débil (guión vertical en la línea que.e la entidad débil) C0l110se muestra en la figura 5.5. Sin embargo, la herramienta nostingue mediante ningún tipo dc notación las entidades débiles de las regulares,

Como puede apreciarse. aparecen dos verbos en el esquema "es lanzada" y "lan­'. Una NA VE "es lanzada" por, al menos. una agencia (línea continua en el lado deentidad NAVE) y como máximo "es lanzada" por n agencias (pata de gallo en la en­ad AGENCIA). Por otro lado. una AGENCIA "lanza", corno mínimo. O naves (línea.continua en el lado de la entidad AGENCIA) y como máximo de n (pata de gallo enentidad NA VE).

Figura 5.4. Representación de interrelaciones

PRIVADA 1~~13n7aa~-..;;

13n7.~

NAVE__MATRI{'lJLAo M'SION

AGENCIA• NOlolBFlEo PEFI<lONAL

PUBUCA, NOMSRE.E

-

Para la representación de las interrelaciones en Desigoer la cardinalidad mínimamira en un extremo y la máxima en el opuesto. Además el verbo que representa laerrelación en el modelo teórico. se divide en dos en la herramienta. uno en cadauido. Así, por ejemplo. en la figura 5.4 se refleja la correspondencia entre lazrrclacién Lanza del modelo teórico y la interrelación que genera Designer,

1)KA'MADISEÑO DE BASES DE DATOS: I'ROflLEMAS RESUELTOS

Page 239: Diseño de Bases de Datos - Problemas Resueltos

Fixul'{1 5.JO. Esqu('/lIa relacional

lO. "- ..• A _." _ ..

~'""~""1I.."!fo '1'..r~•..:..._..A ....

°f. '_o, __ lO _._

--_...J ......._...lO." .. lOlO' .... __..__ . ......... ,..... ..... ,._:::_:::_'_..1- -',j"....-...._

$..1.. '11Fl ... __r-4=',... - ...\1 t, '" -_¡; ._-_ ...iI ~---~.

-"":.~4b.~.+ ••

t,,, _." '"_ E ....

9+ 'k.ill·'A _.... -­.'" .._..... -." --.....~'("

...... .j ....t' .. _e" _.

.... -.~.._'---_1........ft- - - _ , .." ' ..:t •• "Oo_• t." _._I ••A .... -iI t." __

t •• _

t t' ....". -... -t,,, ---......•• A _..--lO. '\I0I0,1''

.,.r-.....'...... "".t' _::: - _--­..._.,

I.¡t.::•...,....M.~.~t, .. _..-" -

t' • ..._"" .....-t,. o

"_t ..,..-.,....._.1.... _ •....".-"",_...1__ '--

." --t,,, __ '. """~.... t,.. _- ._ ................-.....~~..-....~....... -.. " -.- -

La figura 5.1 () muestra el csquclna relacio l Ina comp ero que genera la herranlienta .

Figura 5.9. rr{lI/,vj'oI71laciónde atrihulOS IlIultivaluados

Para co I t I.... , nlP.e ar e modelo podenlos definir l' .ficación que eStlrnenl0¡; Oportunas . ' . a!i OpCiones de borrado y Jnodi-. I . , as, como los disparad Icentro al' la Illtegridad de la base de datos. " ores y e iecks necesarios para

NV....M"-"' 'c l.I1..A.w....N...COOIOO_ClASFN~IIt' ...1'~I"

• *- A C~_co",o" Ct..A.SE..* A 1iW'1RICVf,Ao A IWS,O~,

Siguiendo con la transfonnación de los' t .se tratan igual a Como se haría en el d I a ~h~Jlos. aq~~lJos que son muitivaluadoscaso del atributo "Nombre Tripulan;l~~; °1rel.tc~onal teonco. Así. por ejemplo, en elrelación TRIPULANTES. cuya clave e ri e a ell~ldad NA VE, Se construye una nuevade la rclación NAVE Y el nombra del tp· Inl~flaes_tarácompue~ta por la clave primana

npu ante (f'gura 5.9).

CAPITULO 5: I)IShÑo CON HEI<RA~IIE:-.TAS CASE 467

•••••••••••••

i•,

··~.

·•1:

Alternativamente. se podrla haber considerado la propagación de clave hacia 1:1relación BASURA. lo que conllevaría la inclusión del atributo "Fecha" en la Ini~111:1Esta solución. aun siendo igualmente válida, provocaría la introducción de gran C:l1!

tidad de valores nulos. pues la basura espacial se puede o no fragmentar.

Figura 5.R. lnclusián del atributo ..Fecha"

e- A ..O '" TAJA,A.OO A U..T.........O"."'"O '" .-O '" V.LO()if"'O

l!leAsuRAS!ltf1~f"I.I.J.J:¡;· -1

Figura 5.7. lnclusián del atributo" Porcentaje"

~E Mf'R ESA S_f' RIVADAS1!U\I.l""·JJI :¡;J ...

J!!jEMPRESAS¡tri.e, ~I.IJ J t' ....1•* A el'O A III~.... ".

O A O~''''A''•* A .0.....".* A ,.._.0.....".* A .."'-NA.Ae_.O.... ".

mf'RIVADAS

1Ilf~"'I.I·',¡ 1'1""

En el diagrama EIR teórico propuesto para este ejercicio. podernos apreciar quelas interrelaciones Genera y Financia poseen cada una un atributo que no pudimosmodelar en el módulo Entity Relationship Dlagrammer, En el caso de la interrelaciónFinancia y al haberse convertido en una relación (su cardinalidad era N:M), úni­camente debemos crear el atributo "Porcentaje" dentro de la relación (Figura 5.7). Lainterrelación Genera. al tener cardinalidad I:N y ser una interrelación reflexiva. sehabría transformado mediante la propagación de la clave de la relación BASURA a símisma; para introducir el atributo "Fecha" debernos construir una nueva relaciónGENERA_BASURA e introducir los atributos que forman la clave primaria,definiendo ésta, y el atributo "Fecha" corno aparece en la figura 5.8.

base de datos. a menudo se necesita. C0l110 en el caso que nos ocupa. tener relacionestanto para el supertipo como pura los subtipos. pues éstos están relacionado), con otrasentidades. Si hacemos que Designer genere relaciones para todas las entidades queintervienen en la jerarquía, conseguiremos también tantas interrelaciones para lossubtipos como interrelaciones tenga el supertipo. por lo que ya en el modelo relacionalhabrá que retocadas manualmente. Además. no se creará el atributo discrirni nante enel supenipo y. en caso de necesitarlo. habrá que introducirlo posteriormente.

j'H\ \1,\466 DISEÑO DE llASI·.S I)h DATOS: PROBLEMAS RESUELTOS

••••••••••••••••••••••

Page 240: Diseño de Bases de Datos - Problemas Resueltos

CASOPRÁCTICO 2: SEGUROS DE AUT()MÓVII.I

Enunciado

Figura 5.14. Generación del fichero de spool

OH

tOdigo.libcOdígo.iodcodigo.coo

Is,olol todigo .lst

d:\librO\C~50S tOlpl.tos\n~sl\codI90.5ql

C.ntr~t.d lor Orle1. 1 00 Ihu Jul l' 13• :-9:-52111 bV S.r.,r ',••r.lor 2.1.1'.5.1

Figura 5.13. GeneraciÓII de tndices

Por último, el fichero *.sql es el que realiza el S 1001 di' .para crear los ohjetos en la base de datos (Figura 5.14) 'y cstru~tu~~a'r~Ch~r~s~~tednoresotros tres. .. "cJCCuclon e los

.•

"

C¡\PÍl ULO 5: DISEÑO CON HERRAMIENTAS CASE ~1l9

El tercer fichero * ind co t' I 'd' .del . d ,. n lene e co igo necesario para generar los índices sobreerrmna as columnas.

!..RA ,..IA

Figura 5.12. Generación de reslricciolles

t .. "",I Cr..'I.g prI•• ry I'y On . ACEtCIAS'TAlLE Attt«aA!

Cr••tlng Prl••r~ I.y 00 'CIRStS_MAUES_IIPOS_Oi_CO",OHE"'CR tAlLE CLASES_MAUES_IIPOS.OE_CO",OHEH

AOO COKSIAAIH' CH lOEC_PI PRIMARY lEY(TOfO.COOIDO)

mro\c.s, •• co,.l.to.\ ••U\COdlgl.con;ffttr,trdfor Or¡Clf • on lhU Jul 13 '3:'9:~ 21" by 1rrvfr Cfner,tor 2.1.19.5.'

IPRII",'Cr••tlog Prl..ry K.y •• 'ORIITAS'IER IAlLE ORIII.S

ROO COKSIARIHI DI_PI PRIMARY lEY(EXCEHllICIOAD.ALTURA,CIRCULAR)

I1¡,i, ¡,,

, I

f' 1" ,,_

•1,

Figura 5.11. Generacián de tablas

El segundo fichero, * .con contiene la definición de las restricciones «('o1lSlroilll,\).así como los disparadores. checks. etc .• definidos en el diseño de la base de datos.

c, ... tlnll 1.bl. 'RtlHCtAS'lE ''''11"QE~l"~

(11'0U"~C".A'('.')~I HUll

Generación y comprobación de código

Una vez se ha construido un diseño de base de datos ajustado a nuestras neccsida­des, se puede proceder a la generación automática de código. que puede ser g~neradodirectamente contra el SGBD o bien ser implementado mediante cuatro lJPO~deficheros: el primero. *.tab, contiene el cód.igo p~a la creación de las t~blas, ~n~el <;~excluye la definición de las claves primarias y ajenas, como se muestra en la figura5.11.

, KA MA-ló8 DISEÑO DI:: fiASES DI-;:DATOS I'ROBI~FMAS RESUELTOS

'i La entrada en vigor a escala euro e' I~. uocumento "Declaración '. . p a e~ e sector de scguro.s del nuevo modelo de"".. \lInplificada de trá amistosa de ~ccldente de automóvil" para la resoluciónt,1 ranutes entre compañías de seguros hace que una~ cOlnpañía

1"" ~ i\t. n . l J"'\ )3"~~~.'"" \.•••..... _.*".:;J.~.4*.........• -rth-.-'••••••••• j .J.~••••• 'ce .V.

Page 241: Diseño de Bases de Datos - Problemas Resueltos

Figura. 5.15. Forllllllar' d dcclaraci10 e ce aracton 1I111is10Sl/de accidenles

14. Oblorvuclonos

-_1'. Canos .preclados

~ I,

V I I

W

-_-_ --

-_"'" ..."O I('«!'()r'

_'\'.m.,o n.' ('l'IrntI"""",,,':':''''90'':1 ,. Y

,.....

N Uf' r ,11"1" "'"'(!tl,P,I·.W) fI"'Jft¡'I"OIJC"11 !Co1l~er 1',1\''"",.. .'\t,1JO "I'll.'

LOft eI.fln,¡ """.' ••_. """'KJ~f"O(,lo I.').IA,\ 1&[.:1(1

- .-N' doPQII,.Ag(rl'(", _

8. AsoguradOra

7. V.hrCulo

-- ----- -_

o.'eoc:tOn (c,./:( ) IJ'1 _

10 c.""lMlo. O. e .1111 'O11 •• ,1.", ... 11--- --'2 Q, •• t..t • l."'.C1l, ,~,1 u.."•• 1.1'-"_0 .. '3- _,.

o....... ·c"- .',., ,.IS ." .. ., ... ...,. •• , •• ,.. .... .f

~" ... ' ..... 100 .......,.....

16 ~*la ...K"" .~ .... c..t,II(:.1 "

--_14. Oblel"\'.clonel _

·t: I ,¡ 1 ••

t ,I t

e ¡,11. 0,,,o. 'pr.Clldo.-- - ----

----- _-- -_

-..... -O>teco6f'l - -P~fhSOdt;¿;; - - -C~,.tA 8 , -;~~

P"'''nIIOv~lQ)ha~ - el - - ---

8. COnduelo, II/'fP p*,m~oa.COf2t1uQ/'

- --_ -

N,'ct."oill.A;fInOA __ .

-- -8. Alegurador-a

7. VehlculoMarca. lTl()de!oN ~ele malr(a,la {o l)asl)(lor.

loc~(yc pos~J-_- - - -N'r.tf (rJ.9h a 17h) _ - _.."e'Aseoura<topueóe, - -+- - -_

v.h1tulo) r.:r .ooCH)farellVA tel'et(jlnte alL""I J Is'¡ I

¡U_."Fc).m.t.,t.iü ;;, .....0$• - de ~ ytft<ulOto A Y 81!!!1[] liD.

veh'culo Ae. Aaegurldo ,...-. QI(JIIf7~fÑ ~_I-.I~~_---- -_~~-~-_()r1Q;ión (U'Je r n') _ _ - - _- - ._-

vehlculO 86. AStgurado 11#.1... fJ(I~':'iJne S~I'Cl...-."

471

12 Circunstancia.P9nH !;In •• p.e (.,.1'1CH~c••,....qw PfOCIICf. p.rt

pt'K1.. , ,. Ctoque.

1 ('1010..'''*10'''00

2 S" •• el. Uft • .:t6e1ofl .......... 23 "' •• ·.laC>.onat 3

CAPiTUl.O S' DI.SEÑO CON HERRAMIENTAS CASE

""'.

;

,.. Reproducido con el perrnixo del CEA (Comité Clllo/lI!e/l de« Assurunces}" Para el traturniento de otrus upos de uccidente hay otros upos de documento cuyo l(lllllllll"IIIo'

uedu fuera del presente SIStl'Il1U.'2 A lin de evitar dupliculades en la nsrguacié» de estos números, en la grabación de lus t)c>clIm"nll"

e requiere un proceso tic conlrontacrón de lo, documentos recibtdns relativos al mismo acciderue

Cada accidente se identifica mediante un número que se asignará al tiempo que seraban los documentos'", En el anexo presentado pueden verse los datos delormulario de "Declaración amistosa de accidente de automóvil". De entre estos daio-.I croquis, las firmas de los conductores y los puntos de choque inicial se recogeninorno imágenes, pues est¡~ previsto que en caso necesario su consulta se haráirectarnenre sobre la imagen del documento. Además. para el punto de choque inicialsmbién se guardará una descripción (por ejemplo, golpe en puerta derecha delanrcr».otura de parabrisas, ctc.)

Como se puede observar en el documento, cada vehículo se identificará por elúmero de matrícula o en su defecto por el número de bastidor. y tendrá corno dato,sociados la marca y el modelo.

Las circunstancias tendrán un código y una descripción. Compruebe cómo el datoel número de casillas marcadas, se emplea únicamente con propósitos de seguridad an de evitar manipulaciones posteriores del documento,

Aunque los dos documentos correspondientes al mismo accidente seráncactamente iguales (ya que proceden de papel autocopiativo), por motivos desguridad cada uno de ellos se digitalizará, almacenándose en un fichero de imagen.omo el mismo vehículo. podrá. a lo largo del tiempo, presentar distintos documentosiara distintos accidentes) se registrará la fecha de presentación. Cada uno de estosocumentos se referirá exactamente a dos vehículos (el A y el B), y para cada uno delos. refiere las circunstancias que concurren en el accidente. los daños apreciados ybservaciones.

Este documento lo recibe la compañía aseguradora sólo en aquellos accidentes deáfico que afectan directamente a dos vehículos 'l. denominados genéricamente A y B1 los cuales al menos uno de ellos está asegurado por la compañía. Se entiende que elocumento lo recibe de cada vehículo, con independencia de que lo presente elinductor. el asegurado o cualquier otra persona. Así. para el mismo accidente. laxnpañía aseguradora podrá recibir, en el caso de que ambos vehículos estén.egurados por ella, un máximo de dos de estos documentos (uno por el vehículo A yro por el vehículo B).

eguradora de vehículos se plantee la necesidad de un nuevo sistema de informaciónle le soporte. Corno primera medida, se ha realizado un estudio de este documentoue se presenta en la figura 5.15141) y una serie de entrevistas a usuarios. Las con­usiones obtenidas y necesarias aclaraciones que se utilizarán como guía para laaboración del esquema de datos, son las siguientes:

J DISEÑO DE GASES DE DATOS I'ROBLI::MAS RESUELTOS

Page 242: Diseño de Bases de Datos - Problemas Resueltos

Como vernos en la interrelación Participa, en un accidente participan exac­[¡¡rnente dos vehículos, cardinalidad (2,2), y el mismo vehículo resultará afectadotantas veces Corno accidentes haya tenido, y corno mínimo habrá resultado afectadopor un accidente, dado que en otro caso la infonnación de este vehículo no seenContraría en la SD, cardinalidad (1,N).

Veamos ahora las cardinalidades de la interrelación Presenta_Doc. Cada ocu­rrencia de esta interrelación representa la presentación de un docurnento referido a unaccidente. Puesto que para un accidente dado podrán presentarse uno o dos docu­mentos (serán exactarnente dos en el caso de que los dos vehículos estén aseguradospor nuestra compañía). la cardinalidad será (1,2). Además, un vehículo podrá presentara lo largo del tiempo tantos documentos como accidentes haya tenido, y como mínimono habrá presentado ninguno, dado que puede tratarse de un vehículo que no esté ase­gurado por esta compañía pero que se haya visto afectado en un accidente con otrovehículo que sí sea de esta compañía, cardinalidad (O.N).

En la solución propuesta no aparece ninguna entidad DOC·VMENTO. Aunquepodría incluirse. se ha decidido no hacerlo debido a que el concepto de documento estáíntinlanlentc relacionado con el de accidente. De hecho, un documento es el reflejo deun accidente para la compañía aseguradora. Trabajando con el concepto de documentose primaria la recogida de infonllación administrariva, mientras que con el concepto deaccidente se da Inás irnportancia al hecho en sí que desencadena la actuación de la ase­guradora, Podríamos. Incluso, manteniendo ambo), conceptos. abordar las dos perspec­tivas del problema. En la solución elegida. toda la información relativa al documentopresentado se ulmucenará en la interrelación binaria Presema.Doc entre vehículo yaccidente.

Por sirnplificar, se ha eliminado el reverso del docurneruo, que contiene una seriede datos que cada conductor debería rellenar antes de presentar su copia del documen­to, La presencia de estos datos invalidan cualquier intento de emplear la solución obte­nida corno base del sistema de información de una cornpañfa aseguradora que maneje"declaraciones amistosas".

Aunque se dice en el enunciado, conviene subrayar que se está realizando el siste­ma de infonnación de una única compañía aseguradora. por ello solamente se recoge­rán datos de aquellos accidentes de tráfico en que uno de los vehtculos afectados estáasegurado por esta compañía. Además, el tipo de accidentes que se considera es unode los muchos tipos posibles, en el que sólo hay dos vehículos afectados y ambosconductores acuerdan la presentación de este documento.

Consideraciones sobre la solución propuesta

~.!.I~R~"..:::M~A- ~C!:!Ac!..P!.!i·I~'Ué!:·L:!;O~5!.:.,.::D:.!;IS~EÑO CON IlflRRAMIENTAS CASE 473

,

,

FiKUr(/ 5. J 6. Esquema EIR

'------_----~(~II~I----------~C'AlllC',oRIAI- ......__"(_'. M.I_e.at

l)co'-Cc¡,...i6n

(1 n'

f«ba _("P o-."..--~,

l"t.(h.¡¡\lf,ltodcl..O--=::.......~

rO.n)

.----- .... 11~ ~--'---""'~-J\,lfl"~--'-'<1IoI ASEGURADO ")."C!Ia.i.

t 1.1

¡1.• 'f 1 I}

~•-~.,

flll:;_'• Lo ..., .2~, -~>00

~ a. 111111

=.:1, 1I nI..el,.'

ti It

I,t~ha,1..,..

o~"'-'1¡l' .11

squema EIR

fl RA,MADISEÑO DE BASES DE DATOS: PRO UI.I!G!:M~A§'SBR,gE§.S\!.U!iP.I!::.TI!0?:S~ =.:..;;.:.;.:.

'd ueden hacerse algunas observaciones deA propósito de los datos del acci ente, Pd . de personas cada uno de ellosl cidente implica a os lIpOS ,

erés, como e que un ac d ctor) 1) aun cuando ambos papelesilizando un papel diferente (asegurado : co~ u motivo se considera convenientedrían coincidir en la misma persona. or este implicada en el accidente puede

• é I papeles que una persona Iuinguir entre stos os o • id ntifica a un asegurado). Se registrará ademásnar (suponemos que un n de p~hza le. ue tener en cuenta que un mismovehículo que bien conducen o bien asedguran (ha~¿ de asegurado en 101' distintoshículo puede cambiar tanto de con uctor co .cidentes que pueda tener).

, miso de conducción que le faculta paraTodo conductor debena tener un per 1, d en categorías que se identificannducir diferentes tipos de vehículos ag~pa os .rectamente mediante un código de categona. . ..

formulario de las aseguradoras de los vehículos seAunque no aparezca en el , : o de teléfono de contacto. Los datoslardará el nombre. la sede social y un numer

erea del seguro pueden tomarse directamente del documento.

,L·

I ' a ínctusn '111 i.drl I también en el papel de v cnmt. '~ La semántica rcllejada en la interrelación ternaria Implica será que por cada1) Una persona unphcada en un accidente pu n se~o 1 se tratarla de un peatón). aunque clull,'

star relacionada con ninguno de lo, dos vehíC;lIllld)~(Pord:te;~uo~~nto'y que por simpliddad tan ~61(1'l' vehículo afectado en un accidente concurren como mínimo una y como máximoibi lid d ontempla tan sólo en e orso Icu s cJlcci),ielccircunstancias. Adenlás. cada circunstancia y vehículo pueden aparecer enue esta posI I a se e d d I sistema los datos de las v curnas. (

resen: el a:verso de t.ste. no consideraremos entro e . . .' e~'--'.e e'"~e .-'eJe • e •• 'e • '.)eJ~.,.j.~•• '•.~ ~ ..

Page 243: Diseño de Bases de Datos - Problemas Resueltos

Como hipótesis adicional al enunciado puede SUponerse a efectos de 'o t I d l'as' d . laci . c n ro e a,t:gunt ora una intcrre acron, Es. entre los vehículos y las categ'orías de .nar' . d hf I . . , . . manera que,. a Ca a ve ICl!o se dIsponga su eategorla y poder así COlllrastar si un conductor

Entre las ~.l1terr.elaciones e.xisti;~n algun.as dependencias de inclusión. Por ejem­plo. los pares A~clde~te- Ve?lcul~ de las .Interrelaciones Conduce, Asegura. Pre­senta_Doc e Implica estarán incluidos en la Interrelación Participa .

Se tiene una entidad CATEGORíA con la que la entidad ('ONI)UC""OR .. , '. '. ¡ , mantlcne

una Interrel~Clon N:M AlIt?~Jza, y dado que cada categorfa aUluri.~élda él un conducro¡en .un pcrrmso de conducclon puede tener su propia fecha de expedición y fecha d.vallcl,:z, s~.1:l1drá que esta interrelación Autoriza tiene COll10 atributos "Fe~eha_Expedlclon" y "Fecha_ Validez".

De !"nrnla Sil11ilar. en el caso de los asegurados tenernos una interrelación lemariaAsegura entre las entidades VEHÍCUL(), ACCID/:,NTf..: y AS/::CURADO. El atribut"Numero_póliza':' por ser único para ca~la asegurado. será identificador de la entida:Aunque no Inclu~l:emos una entidad POLIZA en la solución, obsérvese que posible­~lIente la. cOlnpa~la aseguradora tendrá en algún lugar (una RD o un fichero) laIIIfO,rmaclón ~soclada a sus pólizas, por lo que, en cl caso de que cualquiera de los\'ehlculos este asegurado por ésta. tendrá disponibles de manera inmediata todos losdatos asociados a la pól iza. .

Entre las ~nti~ades CONDUCTOR, ACCIDEN7E y V/:,'HÍCULO se da una ínter­relación ternaria Conduce. Aunque en esta interrelación podrán figurar varios acci­dentes en los que un conductor conducía el Inislno vehículo, no habrá mas de dosejemplares ,por cada accidente, .uno correspondicnte al vehículo A y su conductor yotro .'~Ivchfculo B y su respeclIvo conductor; no es posible recoger esta última res­tnccíon dentr~ de~ esquema E/R con esta solución. Corno veremos después. en elesq.lIclna ERwln. SI. será posible, ya que las cardinalidades de las interrelaciones ter­nana" recogen distinta sClnánlica.

" Se~~n .. a~,rib~tos de la entidad CONDUCT()R. el "Nombre". "Apellidos",Dlrecclon, Numero de Permiso" (atributo identiticador principal, ya que. corno se

afir:na en el enunCiado. todo conductor debe tener un permiso de conducir, luego no esposible que haya con~uctores sin permiso de conducir. O al menos. conductores quehay~n. rellenad? este upo de documento) y "Lugar_Expedición" (lugar de expedicióndel unl~o permiso de conduccíon de un conductor. aunque este permiso autorice variascategonas. cada una de ellas con su propio pcríodo de validez).

el asegurado. Sin en1bar.go, para que se tratara de una auréruica general ización, tanto elsuperupo Corno los subtipos deberían idemrficerse 1l1edianle el mismo atributo identifi­cador y no es el caso. por lo que habría de incorporarse un atributo que hiciera factibleesta gene:alrzación. Además, desde un punto de vista conceptual esta generali7aciónno es e.,trrctamente necesana.

CAPITULO S. DISEÑOCO:-l HEI<RAMIENTAS CASE -l75

•••••••••••••••••

,.

•'.•

"Testigo" c~ un atributo compuesto, multivaluado y opcional que perteneceonccptualmenre a la entidad AC(·/VENTE. Uno de los componentes dc este.atnb.ulozcogc de qué vehículo era ocupante cl testigo. Esto podría hacernos pensar I~cllllrllln la interrelación Participa. que relaciona las entidades ACCIDENTE y VEH/CUL{)..n este caso, habría que complicar el diseño decidiendo dónde incluir los testigos queo son ocupantes de ningún vehículo (una posibilidad sería situar los testigos ocu­antes de algún vehículo en Participa y el resto en AC(.·IDENTE).

La identificación de cada vehículo puede realizarse mediante el número de méltr~~ula o el número de bastidor, Consideraremos que el dominio del atributo "Mat Bas;e la entidad VEHíCULO tiene valores de los dos tipos y que éstos no coinciden.

Los accidentes tienen un atributo propio. "Número", que les identifica. En elnunciado se nos informa del procedimiento que se ha de realizar para evitar que cliismo accidente aparezca por duplicado o que diferentes accidentes se confundan. CII

no solo. Este procedimiento es un aspecto funcional que no influye en la obtcncíonel esquema.

La entidad C(JN/>UC"/,O/< recoge los datos de los conductores, rnicntras que 1.1ntidad ASEGUJ<AV() recogerá los de 10/\ asegurados. Podría pensarse adeln~s en 1111.1

" l' r trun--ntidad IMPL/C,¡\D() que generalizara a las dos anteriores y que en a posterro.• ició I d d " .dan el condul:llll \»rnacién al relacional evuana la rcpcuci 11 le atos cuan o comci

La semántica recogida por las dos interrelaciones binarias Presenta_Doc y Par­cipa podría recogerse en una única, que contuviera los atribut~s de an1bas: En eseaso. la imagen del documento y la fecha de presentación del misrno lomana~ :a.lorulo en el caso de los vehículos no asegurados por nuestra compañía. Se ha divididon dos porque se ha considerado que el esquema queda más claro, aunque la soluciónlternativa sería igualmente válida (los controles a realizar serían distintos).

El atributo "N° _Circ" de la interrelación Participa es un atributo derivado queecoge el núrnero de circunstancias para cada vehículo c~ cada acc~dente. Obsérveseue. aunque pudiera pensarse, por hacer referencia él las clrcun~tanclas .que c(Jncurre~ln un accidente, podría pertenecer a la interrelación Implica, SI se hubiera hecho aSI,

~ repetiría para cada circunstancia, Lo mismo ocurriría para el resto tic atnbutos desta interrelación.

n accidente como mínirno y en 11 como máximo (en diferentes accident~s el mis~ochículo puede repetir las mismas circunstancias), por último, cada, circunstanciareducida en un accidente concreto afecta a uno o a lo sumo dos vehículos (depen­icndo de que los dos vehículos compartan o no la misma circunstancia). N? seríaorrecto incluir en esta interrelación atributos relativos a un vehículo en un accidcme.:>n10"Daños", "Observaciones", etc .. ya que en ese caso se estarían repitiendo porada circunstancia. Sólo se deberían recoger una vez por cada vehículo afectado porn accidente.

:.¡ DISEÑO DE BASES DE DA ro!'> I'ROSl EMAS RE~Sl~'I~,I"'.r~·o~s~ _

•••••••••••••••••••••

Page 244: Diseño de Bases de Datos - Problemas Resueltos

. .F'tgura 5. J8. Transj(}rl1ll1ciól/ de la in(errelaciÓI/ Es

Cod_cal (FK)MarcaModelo

VEHICULOMat_8asl

CATEGORIACod_calI-:D--=":"~·--IL- - - -escnpCIOI'I

Figura 5. J 7. Entidades independiente.l'

.Las interrelacioncs I:N sin atributos ro io las . .'mediante una relación en no identifie '6 p p S as trclnsfomlamos en ERwin. I aCI n, que automáticame tcorrespondtente a la cardinalidad máxima I a Ia enríd n ~ p~opaga la clavecomo clave ajena. Por ejemplo la ti 5 ~Henil ad Con cardlnaltdad máxima Ninterrelación Es entre CATEGORÍA ~~~íC . mu:st~a la transformación dc launa relación en no identificación yYel 'd' U~O, Lcl linea punteada indica que esajena se indica con las siglas FK (F' . c/(.otg)o e categoría propagado como clave. ore/gil ey.

DeSCllpClon

CATEGORIACod t~1

NombreApelllflosnrrerflonlugor e.p

ASE'GURAOORANombrer-:-----Sed~SOCIalTel"rono

PenmsoCONOIJCT(\R--

Nom_AseguradoApellidosDirecclonlocalidadTelefonoDanyos _proplosCan a_.erdeValtdez CVRecupera IVAAgenCia -

ASEGURADON Pollza

LugarVíclimasFechaHoraDanyos_Mal

AI,;CIDéNTENumero

Descnpclon

CIRCUNSTANCIACod ene

VEHICULQMili 8asI

MarcaModelo

ER En ~Inclpio, cada entidad la transformarelnos en una entidad indepcndient• wrn. or tanto, como podemos observar en la ti e cnentidades independientes Circunstancia,' Vehículo A ,~~ura, 5~ 7, tendremos comoA<;egurado y Aseguradora. ' CCI ente, onductor. Categoría,

ti N,\ t.:.::'A~ ----------__f~!:l:!!~~!.illi~Qi~U:!.!~~1.!B!![~~~___f12.CAPfTUI.O 5: DIShÑO CON Hf'RRAMIF.NTAS CASE -177

enlace (al igual que se ha visto para la transf " , '.en la construcción del grafo relacional en CI·C~;:I~~;. de este IIpO de Interrelaciones

••••

También existen interrelaciones N:M (llamadas InaIlY-lo-III11IlY) en el modelo-gico que se transforman al modelo físico incluyendo una entidad de enlace que ~c-laciona mediante dos interrelaciones en identificación con las entidades que fonnanJ interrelación origen. Sin embargo, debido a que puede ocurrir que las ínter:laciones N:M tengan atributos, optaremos por descomponer directamente en eliodelo lógico la interrelación en dos interrelaciones I:N empleando una entidad 1011'

,••

l

;

En el modelo lógico se distinguen dos tipos de entidades: dependiente" e mdcpcn­entes, en función de cómo adquieren sus claves. Las entidades independientes no'penden de ninguna otra entidad para su identificación, y se representan por una caja: esquinas cuadradas. Las entidades dependientes dependen de una o más entidadesLTasu identificación, y se representan por una caja de esquinas redondeadas. F.ntanto a las interrelaciones, únicamente se admiten las interrelaciones binarias,xisten interrelaciones en identiticación tidentifying relationshipv, si necesitan incluirclave primaria de la entidad padre como parte de la clave primaria de la hija para suentificación, e interrelaciones en no identificación (noll identifying rekuionship) quemectan una entidad padre con la entidad hija de talforma que los atributos de la claveena de las relaciones están situadas en el área de datos y no en el área de las clavess decir, la clave ajena quc se propaga no pasa a formar parte de la clave primaria deentidad hija).

La herramienta ERwin permite trabajar con modelos lógicos y físicos para laoresentacíón de los esquemas relacionales y físicos, respectivamente. Soporta laración de las metodologías lnformation Engineering e IDEFIX (en el ejemplo queremos a continuación, se utilizará la notación de IDEFI X). Es importante destacare ERwin no soporta la fase de diseño conceptual (no es posible representar es­ernas E/R); sin embargo, el modelo lógico cs una combinación de constructores F./Roncretamenrc las interrelaciones N:M, dependencias en existencia jerarquías) Ycmentos del modelo relacional. Aquí se considerará que un esquema lógico es unapresentación del grafo relacional. Veamos a continuación los elementos del modelogico soportado en esta herramienta.

ransformación al modelo lógico soportado en la herramientaRwin

La entidad ASEGURAlJORA mantiene una interrelación I:N Pertenece con la:idad ASEGURADO. Esta entidad tendrá los atributos "Nombre" (atributo ideniifi­:lor principal), "Daños Propios", "Agencia", "Carta_ Verde", y "Fecha , Valide,".lOS tres últimos atributos son opcionales.

lducía un vehículo dc una categoría para la cual no estuviera autorizado, aunque losrnplares de esta interrelación provendrían de una fuente ajena al documento. escir, la propia compañía aseguradora debería averiguar la categoría de cada vehículo.

___,D::.!I~SE::::'Ñ..:.:·(:.:..).:.:f}.:..:f'_::B:.:.:A""S.:.:f'S:.:..·.:.:f}.:..:I-'..:.:I):.:.:A:..;.I..:.:O:;,;.S...:P..:.R:..:.():..:.Ii:.:.I..:.:I'.:::.M:.:.A:.;;S..:.R:::r:.::!S~U!:.EL::::T~(c:.:)S~· __; 'KA ~I,\

Page 245: Diseño de Bases de Datos - Problemas Resueltos

I·'iguru 5,22. 7ralls./'onIlClciríll de UII atribun; //lultillaluado

, " Las, inlerrelac!ones ternarias la;., Iransformarclnos uf, ' .hacfarnos con las binarias con' t .b " e orma similar a C0l110d' l: , '. x con a n uros propro-, Sin embargo ::11 1 . .e ,l~cardrnalrdades de ER . lus ' ., no ser e SIgnificado

. - win as nusmas que las que utili7.(íbalno!', en el modelo ER.

Numero TESnGO,,Lugar Nombre

Numero (Fk)VíctimasFpcha Tele(onoHora Drrecc.lónDan~'os_Mal 0' upa"le

ACCIDENTE

Figura 5.21. Trall.v!Ol'lllaciólIdi' ('l/rdilla/tdlltl".\'

Ekwin no admite atributo!; multivaluado 1-n1uluvaluado "Tcsti .. • . 11. por o que para transforrnar el atributo. Igo . crearcrno,c; una entidad que nce 't' ,.' . . ,de la clave de accidente además del b d I e:'1 ara para su Identlficaclon

. • n0l11 re e tesugo (IIUpun rrusmo accidente no habrá dos t .ti :' oncrnos para ello que ens es rgos con el mismo no b ) epuede no tener tesneos no todas las .' In re. omo un accidente- . ., .. '" ocurrencm-, de ACCIDENTE 'parucrpar en la relación, por lo que <¡ucardinalida ". " tendrán por quépor la ausencia de indicador en el extremo d I ~ ~l~nrrl1a sera O•.10 cual se retleja(figura 5.22). e a re ación correspondIente a TES11GO

r:Mal_ Bast (FK)

ACCIDENTENumero (FV)

Numpro P ImagenFecha_Pres

Lugar YEHICULOVrctrmas Mal_8astFecha pamema MarcaHora Mal_Basl (FK) ModeloDanyo s-'vla! Numero (FI<)

DanosObserva eiones

2 •Plo_choque PTIpoNum_circ

presenta doc

máxima y mínima 2 de ACCIDENTE en Par j . '.relación correspondiente su participac¡ á t .clpa se Indica con este número en la

. ' . Ion m xrrna (también ?) en P t Dpuede Indicarse en el esquema >' • '. _ resen 3_ oc no(1 n) (O 1) (k k) , .' ya que las urucas cardInalidades permitidas son (O n). . . y . . para un k fiJO. . .

C,\Pf I VI o s, OISt:ÑO CON HERRAMIENTAS CASE '¡79

••••••••••••••••••••••••

•:•

i•

De igual forma, las interrelaciones Presenta Doc y Participa, ambas con atri­butos propios. se traducitlan rncdiuntc dos entidades dependientes, corno puede verseen la figura 5.21. La participación mínima 1 de ACCIDENTE en Presenta.Doc yVEHlcULO en Participa se indica con una P. Nótese que mientras la participación

Figura 5.20, Transformacián de interrelacián biliaria con atributos

autonz aPermiso

Cod_cal (FK) CATEGORIANombre Permiso (FK) Cod calApellidos

Fecha_el(p DescnpcionDireccron pFecha validezLugar_exp

CONDUCTOR

Por ejemplo, la interrelación Autorlza entre C'ONDUC1'OR y C'¡\TEGORIA setransformaría en una entidad dependiente. y dos relaciones en identificación quepropagarían las claves a la nueva entidad. a la que le añadiríamos los atributos propiosde la interrelación. Aunque posteriormente hablaremos con más detalle de las cardina­lidades en ERwin. la participación mínima I de ('ONDUCTOR en Autoriza se Indicamediante una P. como puede verse en la figura 5.20.

Como se ha mencionado anteriormente, al no permitir ERwin la inclusión deatributos en las interrelaciones binarias las representaremos mediante una asociaciónde entidades. es decir. una entidad dependiente que contendrá (,"01110 clave las clavel>ajenas de las entidades que relaciona,

Figura 5,19. Transfarmacián de la interrelacion Pertenece, .

Sede_soclal - - - -Telefono

Nombre (FK)Nom_Asl?guradoApellidosDlrecclonLocalidadTelefonoDanyosjnopiosCarta verdeValidez CVRecuper",_rv',A,Agencia

ASEGURADORANombre

ASEGURADOPollza

De forma análoga al caso anterior. transformaríamos la interrelación Perteneceentre ASEGURAD()RA y ASl::CURADO (figura 5.19).

.,lJ.(A\l-\~ 7R DI s1:;1'10 DE [lA S h!'i 1)10 D ¡\TOS' PR () U.:.;cI.I:.:;,M.=.oA",-S.:..:R",E.:::;SL""rE",~I....:T..::O:.:::S _

~•••••••••••••••••••••

Page 246: Diseño de Bases de Datos - Problemas Resueltos

-••••••-.-.~•.-....•~•.••

Figura 5.25. Ejemplo de código gel/erado

~ste diseño lógico se transfonnurfa en I 11', .(P/¡y,I'¡ca! Mor/el) Inediante la transforma .'6 O ~u~, .a~na ERwl~l llama "modelo físico"asociación y que se correspondcría con el c~~ e as :n~er~eJaclon.es N:M en entidadespura su transfonllilción En él s . d' d dclo relacional del slstclnu gestor elegidod '. era on e se definan aspcctose cada sístema. En nuestro Caso ) di - ff' ' , concretos dependientesI>U·· • e iseno SICO sería 11lUysÍlnila I di - Ies no teníamos njnguna interrelación N'M r a rseno ógico,

. . ya que las que aparecían en nuestro

CIooo I Ir-L-_- ....·1 (

..

¡.... 5' .tgura ._.J. Modelo 16/(/('0completo

_. -•

I ....~ .r .~•._. 1''','''l ....,••t....... t""""''''.'''.,,-, .

• "r._' ~;!.:!. -.. :,.....,---.~-" •• "-l'4,•..: ".,

" ..1 " r,.

, ...-. ,..~..... >4 ..

- 1- '1-·.. 1·, ',.~ -1:,..:."..,"

r;·--· ..-.. - ..".~. I

1"''''·°' e,. o. -.'o :~ ,_

.......•,.'1 ~,•••;c ...r::......-,.4,._ ....

r t .1••"

---- --t.,.!.....__ ..

• "<1 ji '.·I~·-;:.. •~'"''''''¡;;;.....--::-

... _..... .

... o"._J

l- __ 1

'H

1" '_.... '" .. -- - - .....t~· ,._

.. ~.... '

'. '. .~......- - _ J.... _...• 1 _ .~"..~• -_

-1I!.•

.....f..., ..... '.r rT.., •...

r ..

••

I_

.. '¡;.::.... ,,,.. "

CAPíTULO 5: orssso CON IIERRAMIENTAS CASE 481

1......

-o gJ ¡¡I~¡;;',.,

--... .:..l!.:'~ ...

r';'. . .....

,III

ERwin no sólo permite describir 1<1participación de cada entidad en cadaelación. sino también asf corno la definición de dominios, opciones de borrado.nscrción y modi ficación, y otras muchas características en las que no profundizare­nos. La figura 5.23 muestra el entorno de ERwin con el diseño lógico completo,

Figura 5.23, Transformacion de interrelaciones ternarias

___ -..JNombreApelhdosDirecclonLuga,_e.p

y _ptOpIO~Carta verdeVahdez_CVRecupera_IVAAgencia

p

,

gurado

, . r- ~Numero .. Mal_Basl (FK) Mal B._I- -(od rile (FK) PLugar p

Num.ru (r k) M.re.V«lIm.s Mod~loFeCh,.Hora conduceD.nyo, .Mal " Nume,o (FK)

Mal_Bosl (FK)... PPe,mrso (FK) ASEGU

jp N POlrza

..seuura Nom AseI ~ /Mal_Basl (FI<) ApeU,do$

I 2 Numero (FI<) P OirecC1ofiLocalidadCONDUCTOR I N_Polrza (FI<) Íl-- _ Telefono

PermiSO Dan os

VE:HICl1l ()ACCIDENTE

Dest"pclon

CIRCUNS TANCIACod_tlrc

Por ejemplo, es claro que cada accidente debería parncipar exactamente doseces en las interrelaciones ternarias Conduce y Asegura (una por cada vehículo). En1esquema ER mostrado en la figura 5.16 esta semántica no puede reflejarse debido alistinto significado de las cardinalidades. Sin embargo, en el caso de ERwin. sí seuede retlejar esta semántica, como puede observarse en la figura 5.23, que refleja la-ansfonnación de las tres interrelaciones ternarias.

ara la transformación será necesario revisar la semántica del problema, Mientras quen el ER la cardinalidad reflejaba, dados un par de ejemplares de dos entidadesarticipantes en una interrelación con cuántos ejemplares de la entidad restante sezlacionaban. en el caso de ERwin refleja el número de veces que un mismo ejemplare una entidad participa en una relación. En el caso de las relaciones bmarias elignificado es equivalente (aunque se colocan en el lado opuesto de la relación). peron las ternarias, como acabamos de decir. es necesario revisar la semántica del pro­lema.

:lO DISEÑO DE BASES 1)1-' DATOS' PROBLEMAS RESUELTOS

Page 247: Diseño de Bases de Datos - Problemas Resueltos

JFN PRIMERA FOR~IA NORt\IAL

2FN SEGUNDA FOR.'vIANORMAL

3FN TERCER,'\ FORMA NORtvlAL

ANP ATRIBUTOS NO PRINCIPALES

AP ATRIBU'rOs PRINCIPt\LES

AY ATRIBU'rOs

8:(.' B()RRADO EN CASCADA

[l:OBORI{ADO CON PUES'rA A VAL()R POR l)cF'ECTO••I B:N BORRADO CON PUES'l'A A NULOS

R:R BORRADO RESTRINGID()

LISTA DE ACRÓNIMOS Y ABREVIATURAS

APÉNDICE

La figura 5.25 muestra parte del código generado para el ejemplo anterior (verfigura en la página anterior).

Una ver obtenido el diseño completo, la herramienta puede generar el códigorelativo al modelo de implementación de un sistema concreto. El que elegiremos serala versión 7.0 de ORACLE. ERwin nos permite configurar determinados aspectos dela generación de las tablas, índices, disparadores. etc.

esquema conceptual se tuvieron que transformar en entidades para poder recoger susatributos.

.¡S2 DI SEÑ O DE HA S ES D E DA TüS. PR OB LE:vI AS ~ I,S:_t 1:.:.;.'I~.I'.:.;_;OS:.:_· ".:;_P''-''~.:..:.''

•••••••••••••••••••••••••••••••••••••••••••

Page 248: Diseño de Bases de Datos - Problemas Resueltos

ULLMAN y WIOOM (1997) A f' .. irst course In Datubasc Systerns. Ed. Prentice-Hall.

OZSU, M. T. y VALOURIEZ P (1999) p' . / .23 EeJ.Prcruice-Hall. ,. . rtnctp es ai Dislrihuled Da/abuse Systems.

FAGf.I)N,R. (1977). Mu/tiv(//ued Depelldellcie.\' (1I1d a New Normal Form [or R / ti /alabases. En: ACM 1'ODS, 2, 3. . e a 10l/tI

STANDARD QUERY LANGUAGESQI.

DE MIGUEL. A., PIA ITINT M MARCOS . _R I . I Ed ,. y , E.( I999 l. [)/SCIIO de Bases de Datose actona es. . Ra-Ma, Madrid. .

·F...

DE MIGUEL A PIATTINI MD f Ed' R' Y t :: (1999). Fundamentos y Modelos de Bases dea os. . a-Ma, Madnd.

•PK PRIMARY KEY (CI.AVE PRIMARJA)

SGBO SISTEMA DE GESTIÓN DE BASES DE DATOS

SGBOD SISTEMA DE GESTIÓN DE BASES DE DA-ros DISTRIBUIDAS

COO~A¿,~~~~.1~ Relationnl Model of Data [or large Shared Dala Banks", En:

M:N

M:O CI lEN, P. (1976). The El/lityIRe/Cl/iol1s}¡ip Mode/: Toward (/ Unified V' . if DEn: CACM, 13.6. lell o ata.

MODIFICACIÓN CON PUESTA A VALOR POR DEFEC'ro

MODIFICACIÓN CON PUESTA A NULOS

MODIFICACIÓN RESTRINGIDOM:R

IP IDENT1FICA[)OR PRINCIPAL

M:C MODIFICAC'IÓN EN CASCAIJA

FK F()REIGN KEY (CLA VE AJENA)

DF DEPENDENCIA fUNCIONAL

ElR ENTIDAD/INTERRELACIÓN

ECA EVENTO-CONDICIÓN-ACCIÓN

DI<:pm CONJUNTO MINIMAL DE DEPENDENCIAS

DEP DEPENDENCIAS

ce CLAVES CANDIDATAS

CASI<: COMPUTER AIOEO SOFTW ARE EN(IINEERING

BOO BASE DE DATOS DISTRIBUIDA

BD BASE DE DATOS

BIBLIOGRAFÍAIDENTIFICADOR ALTERNATIVOlA

)ISl:.ÑO DE RASES DE DATOS: PROOLEMAS RESU:::..:E=,L:..:..;T{~)S=--- .:..:.o.:.:...R':...::M=,\

Page 249: Diseño de Bases de Datos - Problemas Resueltos

f)

(',¡!culo del r~ul(\rimlcnlOminnnal ] 17CAS('¡\DI·, 117 "e"SE, '¡S9clave ~an¡fld",u, "8d,l\ e, ,'antl,du'.I', .1101,J 17CIIIlIhlll.ICIÓ",l,lX, I,H)Cuunu IlIrol1,l"'1111,,11.120

", e•

B.,,·, .lCD.'n, 1)I\,nh"",.,, 12'1Bl,rrad,Jm,"I,'i\.'a(IO" \.'0'1 pu\!','a 01nuk», I~hBt,rr.1Jt'¡lll,)tJI'I(0J,"'Cl'1 con pllC"'la a un \ "'!('Ir lOC,J\'It.·i.ltl. I.:!h rr4t1rr.ltlc)/111C .....,IIt.·,J\.·,CJ'l en cOJ'l:ada. I ~7O()rrJtltl/nl()(f,'if.::I\;ltJ" re ...,rln!!id(J. I.?R

Ikpcn¡JCIII",1 dc 1"I'lIl1lk.,cion. 1lkp<'lIllcnt'Ilt,c<llln,'antc, 117<lcl'('llIlcn'I,I\. 11"

'¡;lllp,J"""n. IJ I\Igeh!". KdJCII'""I, 11~\'1,11", ..._ ,'l~I-\rht" tll' cJC"·j"llpt)"l"lll. 1~I,1I<junC','tIIJ \ 'Sll\-'!SP~R(_','¡ 12'''<jUllc'c'ur¡" Ik le" ~(jHDD,-IJIA'Cf"·I~U1C'. I~c.jASSERTIO:-l, 12'1'\lnhUI(I, 1.1~!llrjhlJ(f)~.1

Atrihult), Cf)lllpuC,t.". 1.\1..l( r~bUI(" C()1I1PUC'(tl.oJ'llllpJC'\, .~",,,hUI,,, ucn\JU''', J, IJJ¡Jlrlhllt()~ cxtr.lñl),\, ), 7Airibun», "IultlVlIluao,,,, 1.12Alnhu' .. , 11<1pnll('II);'I<'" 11S'\'l'ibul,,' ohllgalllfllh, 1.1.1Jltr,11UI(1' 'lllll}!;UlUi(l .../flp(.'f()Jlal~,. ,

Alllhul<l' npClllOak" " IAtrthuu», 1'I'IIICil'lIk'" 11RAlnhu.." ullIvallllllj,\" 112JU¡¡'II"" 11I11\'lIlu"do,,/1II1I11Ivu lu.dQ" J"~'''''',I'de AII"'I"IIl¡;, "7

B

ÍNDICE ALFABÉTICO

•••••••••••••••••~.~.\..~....t'.'.'.'.' •••• '••• \.1" ••••••••

Page 250: Diseño de Bases de Datos - Problemas Resueltos

-•••~••Jorn. 140

vcnpi. 142Scgundn rorm,\ Ih)lmul, .11'1,\·I~C('ltln.1'<)SE'I l)EFAULT, 12.11SEl NULL, 12.8S(iB[)D heterogéneos. 4.11SGBDI) homogéneo. U 151111"'¡'.. \11SI\lema, compucvtov, 4~~Sistema-, federad .. ,. -111S"lcn>:\, "Iulu BJ.><.'de dut",. 4.\~

,1

xldcnt i(k.dor alIernauvo. 1-'1ldcntlficudor principul, 1J1ldcmi licllt.lllrés ,\1 icrnau "o •. 2-Idcnriñcadorcs Pr",cil'lIl,'" 2intégricJotJ refcrcnciut. I:!óinterrelacione'. ,lrucrrelncroncx E~,'III"v('" 1\7uucr-cccrón. 1.18, 1·11

,

gcmcratrzacionc-, CXC'IU'I\ a\. ~gcncruhzación parcial, .~gel,crJll/lJcl()n total, 5ecncrah/acumc-, ""- 'gcncrahzacroncs con -olapanucnto, ~grafo relacional. 129GROUP BY. I~,

Rcl~\l-i()1'4I!~rc-tricción. 1.18. 139rl.¡.,lncc,.'iÓll de cardmalidad. 3IC"!-tlrICl'l(lJl tic e lave ajena. I ~(,rcstncción de onlí~al()nC(J:J~I. 12(,Rcvtnccion ele unicidad, 1:!6rcstriccionc ...de clave pum.mu. 12(,Ke'lnccion~s de Vcnficacion ,('HI-CK l. 1~~rcsmcciouc-, inhcrcntcv, I ~(,rcvmccronev scmánucuv, I :!.(lRESTI{I('T. 11~

(;

R

OUlltt.1 It'rlll:t normal. '21rccuhnuucmo nlI111111,11. '14

réru¡UJ. de ,~I1l:"lIka.1J7rRIMARY Kf:Y. 12flt.)rllllcra r!)rl))~1nonnul, lit.)pr(Uhl~I()t·.III~,i.II"•• I ~K.14t,J1"'y~c<"in, 11S, 1 1(1

1:()I{I:I(;'1 KEY, 126f'lllllJ uonnn 1, 114rorm" n""n.1 ,k Il()~,<·(',,,hl PI)rr"l!nlCOlaclun,'¡ ,~"r;Il!mcIIt,tC'Ón h""'"OI.11. .¡1(,"r.lgrTlt·nl.'\:lr1o 111"' .. .1 \~"rJ)!fncnt;I\.Il1n vcrucul. "''\5

Enlldad. 1.12entidades. 2entidades débilc-, 1(.'fl1itl~l(I¡,,:,tuertos. JER win. 4SYesquema Lit' a,i~naci(\rt )' rcrlil':u.·I~\n .¡ \~}

o

1l~)1111JII/J":lñn. 'll XNOT Nl'!'I.. 121>

uruén, 13ft. 1401'NI()IIE, 1111UI1I\cr\" Jel I)",'UI'>(I, 1. 5

Tercer,...forma normal l~()

Iopo olecorre'ponolenl"'" .1Tran ...ftlrm~l('ll)n Je LfcpC'ncJcn~l~l'en C\I,ICnCfJ) el'

idenuf .. J .1.'Tran-formacrén de gCflcro11iJ.<lclílnc,. J ..~()

N

,11\CI~~l"C)~IJ.,,,,"'endente. ,\,1rtlCl..d.. I"~,,, dcwendcme ...U111f!IOO", de ,."Ir", t' JllJI.,.\, \ 1.1M.ldel .. !:JI!. 1"'nolelo Releer ..nal, 11<;

fr,u,,'C,rlllJI.:I,\r, ,Ic Irll~rrcl~IC:I'lrlC,de ~"'Jd\l \up.!rltlr ,1dI""~ 111>

I(J""",'III1,"'I(I', (le un C,,",UC'11U ElR J U', C\QUCllf:lrel ..<OIIII.. I. 1111

rR I( j(j[R, 1~C)

SOL9~,"~9<;QL-1)2, 142'UhIlIM", ...'"percl ..ve 117'''pe"'r'', -1

[\1I"'pendenc,a, cOIcnmbrnacum, llhDcpendcncu» l'n r" "len".. 1rXI>crukllC",,' I"n"on,rlc" 111Dcr.:nJenC'"' jerarqu,".", 111,Dcpendencr,», II"II,\'.I" ..oIó", 11~1)c,,¡!ncr2(~lO,4'9cJ,lc,",nu .., 11g. 14ClD"l'ÓO conceptual, 1I)"pó,r,odore" 1~9drvmbuc ion, ,1.11drv rvron, 11X, 141Dorrumov. l' 1

4~X I1ISl'rílO 01- BAsr:s DI- nATOS I'I{OBLEM,\S 1{:::f,:.::,S.:..;'l.:..;lI:.::'.I_l:..:'(.:;.lS.;_' ,' KA \1 \

------------ _!Ir\IlICE Al FABÉTI('O 48'1

p