Diseño de Bases de Datos - Problemas Resueltos
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Diseño de Bases de Datos - Problemas Resueltos

  • 13,307 views
Uploaded on

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 ...

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.

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
13,307
On Slideshare
13,305
From Embeds
2
Number of Embeds
1

Actions

Shares
Downloads
43,876
Comments
4
Likes
6

Embeds 2

http://192.168.6.184 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. • t ESQUEMA CONCEPTUAL
  • 2. •••••••••••••••••••••• •••••••••••••••••••••••• , INDICE PRÓIJOGO PRRFACJO oo •••••• ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• , CAPfTUI..O 1: DISEÑO CONCEPTUAl,: MODELO E1R XI , ••••• •••••• . XIII . 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 .. I 12 17 -_ ?~ 31 40 49 59 66 72 . ~~ 90 96
  • 3. VIII DISeÑO DE BASES DE DATOS: PROBI.EMAS RESUELTOS PROBLEMA 13: PARQUES NATURALES PROBLEMA 14: GESTIÓN DE HOSPlTALES PROBLEMA 15:OLIMPIADAS DE INVIERNO INTROOUCCIÓN 2.1. MODELADO REI.ACIONAL PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA 1: ALOJAMIENTOS . RURALES 3: PINACOTECAS 4: CASOS DE,CORRUPCIÓN 5: COMISARIA 6: CAMINO DE SANTIAGO 7: PROYEC1'OS DE INVES1'IGACIÓN 8: NA VES ESPACIALES RELACJONAL 9: EMPRESA DE l'RABAJO TEMPORAL 1 (): F()ND()S BIBLIOGRÁFICOS DISTRJBULDAS 429 .. . .. .. .. 429 CAPÍTUI.() 5: DISEÑO CON HERRAMIENTAS CASE .. 459 INTRODUCCiÓN CASO PRÁCTICO 1: BASURA ESPACIAL CASO PRÁCTlCO 2: SEGUROS DE AU'rOMÓVIL 143 . .. .. . 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 143 151 159 168 179 190 .. . . CAPÍTULO 4: DISEÑO .)E BASES I)E 125 .. . . .. .. .. 201 212 223 . nvros REI.ACIONALES APÉNDI(:E: I.ISTA DE ACRÓNIMOS Y Ar~REvIAl'URAS 232 llllliIO(;RAFIA DI<:f!:SQUEMAS FJR A ESQUEMAS REI ,ACIONAI"ES IX 405 418 PROBLEMA 9 PROBLEMA 0 I 125 . 2: AVES 2.2. TRANSFORMACI()N PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA PROBLEMA 103 111 1 17 .. . . . CAPÍTULO 2: OISEÑO I.ÓGICO: MODELO RELACIONAL fNDICE (lRA MA , .._ 440 443 447 452 459 .. 460 . 469 . 483 . 485 . 487 247 , 1: ('URSOS DE FORMACION 1: CAMPEONA'r() DE AJEDREZ 3: ENERGíA ELÉCTRICA 4: CONFLIC'rOS BÉLICOS 5: GES"rIÓN DE NÓMINAS 6: ENTORNO DE EJECUCIÓN 7: ORGANIZACIONES NO GUBERNAMENTALES 8: ADMINISTRACIÓN DE FINCAS 9: GESTIÓN DE HOSPITALES 10: OLIMPIADAS DE INV1ERNO CAPÍTUI.O 3: NORMALIZACiÓN . .. . .. . .. . .. .. .. fNDJCE AI,FABÉTIC() 247 252 258 266 274 281 287 292 298 305 DE REI.ACIONES........................... 313 INl'RODUCCIÓN PROBLEMA t PROBLEMA 2.......................................................................................... I')R()BLBMA 3 PR()OLEM¡4.......................................................................................... PROBLEM/ 5.......................................................................................... PROl3LEMA 6.......................................................................................... PROBLEMA 7 PROBl ... MA H.......................................................................................... H 313 325 338 345 351 3(..,7 373 83 391 1 ••• ,... ................................................................ 3 • •••••••••••••••••••••••••••••••••••••••••••••••
  • 4. • ••••••••••••••••••••• •••••••••••••••••••••••• '" PROLOG() /)isc'lio de Bases di' Datos: Problentas Resucttos se presenta en el panorama editorial corno un instrumento de valiosa ayuda tanto para los estudiantes de Informática como para los profesionales del desarrollo de software que pretendan dominar las diversas técnicas requeridas para el Diseño de Bases de Datos. Sus más de 50 problemas con su respectiva solución comentada lo convierten en un auténtico manual de auto-aprendizaje de esta disciplina y que complementan a otras obras dedicadas 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. de modo que el lector puede ir adquiriendo un mayor grado de dominio en cada una de sus técnicas de una forma amena y sencilla. Por otra parte, e!' muy grato para mí tener la oportunidad de prologar este libro realizado por un grupo de discípulos de mi gran amiga, In profesora doña Adoración de Miguel, que tan inesperadamente nos dejó. Con esta obra queda patente que su equipo sigue vivo, continuando su dedicación y esfuerzo y en la dirección que ella les • marco. de lnlonnáticu de la Universidad Politécnica de Madrid y uhnra compañera. Paloma Manfncz, por '11 capacidad para abordar la coordinación de esta obra cumpagimimlola Asimismo, me siento orgulloso de mi antigua ulumnu tic la I'acultad
  • 5. XIJ DISEÑO DE BASES IJE DA'I OS: I'ROBI.Et-.'lAS RESUfil,TOS 1) RA Mil con las nuevas responsabilidades del área de Lenguajes y Sistemas Infonnáticos del Departamento de Informática de la Universidad Carlos IU de Madrid, así corno otro tipo de responsabilidades recientemente adquiridas que se desprenden de su nueva condición de madre, Enhorabuena. Por último. no quisiera finalizar estas líneas sin hacer una pequeña rnenci6n al profesor don Isidro Ramos, quien desde el Mediterráneo siempre ha tendido la mano generosa, confiando y apoyando a este grupo que se siente en deuda con él. Antonio de Amesrua Madrid. 20 de septiembre de 2000 PREFACIO La obra se centra en el diseño de bases de datos desde un punto de vista eminentemente práctico. Nuestra experiencia docente en la universidad. ha puesto de manifiesto la dificultad a la que se enfrentan los alumnos cuando realizan tareas de análisis y diseño de bases de datos. Por ello, los objetivos que nos hemos propuesto al escribir este libro son: _ Proporcionar una colección de problernas que sirva al lector para poner en práctica los conceptos teóricos de análisis. diseño e implementación de bases de datos. - Abordar la resolución de los problemas de una justificando en todo memento las decisiones de diseño. forma comprensible _ Emplear unos principios metodológicos que ayuden a los analis:a~ y diseñadores de bases de datos a elaborar esquemas conceptuales y lógicos intentando perder la mínimn semántica. Dar a conocer el soporte que pueden ofrecer las herramientas CASE en el desarrollo de bases de datos . •••••••••••••••••••••••••••••••••••••••••••••••
  • 6. ••••••••••••••••••••••• t ••••••••••••••••••••• XIV DISEÑO DE liASES I>F: ()ATOS: PROBI.EMAS RESUELTOS f) HA MA Algunos de los ejercicios propuestos provienen de p rácticas y exámenes propuestos en nuestras asignaturas de Bases de Datos de las titulaciones de Ingeniería Técnica en Informática de Gestión e Ingeniería Informática de la Universidad Carlos 111 de Madrid. en la que los autores son profesores. La idea fue elaborar un texto que fuera el complemento práctico a los libros Diseño de Bases de Datos Relacionales de Adoración de Miguel. Mario Piattini y Esperanza Marcos y Fundamentos y Modelas de Bases de [Jatos de Adoración de Miguel y Mario Piauini. ambos publicados en esta misma editorial. CONTENIDOS El libro está estructurado cn cinco grandes bloques: Diseño conceptual. Diseño Lógico, Teoría de la Normalización, Bases de Datos distribuidas y Casos Prácticos cornpletos desarrollados con herramientas CASE. La razón de esta división viene dada porque creernos que esta estructura es la que mejor se ajusta a las fases rnetodológicas y aspectos cruciales (Iel Diseño de Bases de Datos. El capítulo de Discñ« Conceptual contiene una parte introductoria en la que se recuerdan brevemente los conceptos teóricos y notación del modelo E/R, así corno algunas guías metodológicus para la elaboración de las soluciones él los casos propuestos. El resto de este capítulo lo forman 15 ejercicios desglosados cn varios pasos; en cada uno ele los cuales se estudiará un conjunto de supuestos scnuinricos que darán lugar él un suhcsqucma ElR ti [orm a que se irán añadiendo elementos ul c subes.qucrna obtenido cn el paso anterior y así sucesivamente hasta completar el estudio de todos los supuestos semánticos contemplados en el enunciado del problema. Supondremos ~ue el enunciado constituye una descripción correcta (y casi siempre completa) del Universo del Discurso. Dos de los ejercicios de este capítulo. exactamente los problemas 2 y 14, ya fueron propuestos en los apéndices del libro Diseño de Bases de Datos Relacionales, pero no se desarrollaron las soluciones. El capítulo de Diseño Lógico contiene una introducción a modo de recordatorio del modelo relacional y su notación, reglas de transformación de un esquema E/R a un esquerna relacional y álgebra relacional. A continuación. existen dos bloques de problemas. El primero engloba 10 ejercicios prácticos de modelado relacional en los que se obtiene el esquema lógico estándar de la BD (grafo relacional) él partir de un conju.l~to de supuestos semánticos que describen el problema junto con el script de creacion 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 se resolvieron en el capítulo de Diseño Conceptual) en los que se obtiene un esquema relacional a partir de un esquema E/R. El capítulo dedicado a la Nonnalizución de relaciones se estructura en una introduccióu tcóricn en la que se mucxtran muy brevemente aspectos del cálculo de las e RA PREFACtO MA XV dependencias, cálculo de formas normales y algoritmos de análisis y síntesis, y en un conjunto de 10 ejercicios. Los ejercicios 3, 4, 5 y 6 también fueron propuestos en el libro Diseño de Bases de Datos Relacionales y aunque se indicaban el resultado final de la solución no se desarrollaron por completo. Por ello, aprovechamos aquí para presentar las soluciones completas. El capítulo dedicado a las Bases de Datos distribuidas contiene una introducción en la que se describen las características y arquitecturas de las Bases de Datos distribuidas así como los algoritmos de diseño de este tipo de Bases de Datos. Se muestran 4 ejercicios de d iseño en los que se construyen los esquemas de fragmentación y asignación a partir de la especificaciones del problema s Finalmente, el último capítulo incluye dos casos prácticos completos resueltos con dos herramientas CASE comerciales. Para el primero de ellos se ha utilizado la herramienta 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 de análisis hasta la implementación en un Sistema de Gestión de Bases de Datos comercial. El objetivo d estos casos prácticos es mostrar la potencialidad de las e herramientas CASE para ayudar en el desarrollo de Bases de Datos. ORIENTACIÓN A LOS LECTORES La audiencia a la que va diri gida el libro es muy amplia: alumnos de las asignaturas de Diseño de Bases de Datos en facultades, escuelas universitarias y escuelas de formación profesional, así como profesionales informáticos que trabajen en el área de bases de datos (analistas, programadores, etc.). OTRAS OBRAS RELACIONADAS De Miguel, A. y Piattini, M. (1999). Fundamentos y modelos de bases de datos. 2' ed. Ed. Ra-Ma, Madrid. Este libro constituye el complemento teórico al capítulo 2 de La presente obra. ya que presenta los conceptos fundamentales de la tecnología de bases de datos, analizando en profundidad el modelo relacional y el lenguaje SQL De Miguel. A., Piauini, M. y Marcos. E. (1999). Diseño de bases de datos relacionales. Ed. Ra-Ma, Madrid. Es/e libro constituye el complemento teárico a los canüulos 1, 3, 4.v 5 ele la presente obra, ya que presenta COII detalle el concepto de modelo de da/os, una metodologia de desarrollo de bases de datos. el modelado conceptual utilizando el modelo E/R, las reglas de trunsfonnacián de esquemas conceptuales (1 esquemas relacionales. la ,
  • 7. XVI DISEÑO DE BASES DI.!DATOS: PROBLEMAS RESUELTOS ORA MA teoría de la normalizacián y herramientas CASE para el desarrollo de bases de datos. TESTIMONIO DE RECONOCIMIENTO 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 Departamento de Informática de la Universidad Carlos 111de Madrid. Durante todos los años que hemos 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 humanos de gran significación para nosotros. Su gran perseverancia tant en la labor docente o como en la investigadora y la coherencia dernostrada a 10 largo de su actividad profesional han sido para todos nosotros un estímulo que esperarnos no desaparezca nunca de nuestras vidas. También deseamos agradecer a Antonio de Arnescua el apoyo r cibido para e llevar a término este trabajo así corno a nuestros compañeros del Departamento de Informática de la Universidad Carlos Ill, y a Juan de Dios García y Carmen Sánchcz por su colaboración en la preparación inicial del libro. 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 de Bases 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. Deseamos expresar nuestro agradecimiento a nuestras familias y amigos que han soportado pacientemente nuestras horas extras de trabajo y que nos han ofrecido en todo momento su apoyo incondicional. Por último, nos resta agradecer Ramírez, su inestimable ayuda. a la editorial Ra-Ma, en especial a José Luis Los autores Madrid. septiembre de 2000 CAPÍTULO - CONCEP"rUAL: DISENO 1 MODELO E/R INTRODUCCIÓN Guías metodológicas para abordar la resolución de los problemas La elaboración de un esquema ElR que recoja la semántica de un determinado Universo del Discurso es un proceso creativo para el que no existe un procedimiento definido. Sin embargo, sí es posible seguir una serie de recomendaciones o heurísticas que nos ayuden en el diseño. Estas recomendaciones no son reglas que siempre funcionen sino que en algunos casos son adecuadas y en otros no. A. ALGUNAS HEURÍSTICAS PARA LA IDENTIFICACIÓN OIS'I'JNrros CONSTRUC1'()RRS DE LOS En la primera propuesta del Modelo E/R, Chcn (1976), se distinguen tan sólo tres clases de objetos: entidades, atributos e interrelaciones. El modelo que se utilizará en la fase de modelado conceptual en los ejercicios de este libro es el modelo ElR extendido que añade al modelo básico un conjunto de constructores que ayudan a recoger mayor semántica del universo del discurso (cardinalidades mínimas y máximas en las interrelaciones, generalizaciones. dependencia en existencia y en ~ ••••••••••••••••••••••••••••••••••••••••••••••
  • 8. ••••••••••••••••••••••••••••••••••••••••••••••• 2 o RA·M" DISEÑO DE BASES DE DATOS: PROBLEMAS RESUELTOS identificación, etc.). ReaJmente no se trata de un único mod~lo. sino dc una familia de d 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 este apartado se expondrán brevemente cuáles son los cons~ructores de los que consta el rnodclo 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 la o R...·MA CAPfTUlO 1: DISb~O CONCEIYfUAl: MODELO EJR J También es posible recoger otras restricciones semánticas sobre los atributos aparte de las ya mencionadas de atributos Identificadores Principales y Alternativos. Asl, hablamos de atributos obligatorios/opcionales (si un atributo debe tornar o no un valor), atributos univaluadoslmultivaluadas (si un atributo torna un único valor o varios). atributos derivados (si su valor se obtiene a partir de otros elementos del esquema ~JR). atributos compuestoslsimples (dependiendo de si un atributo es o no un agregado 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. multivaluados compuestos. etc.) entidad se le denomina ejemplar. Los atributos se utilizan para detallar las entidades asignándoles propi~dades descriptivas 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 entre Identificadores 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~ pos~b es especificar atributos en la entidades sino también en las Interrel~clon~s (en este caso sólo tiene sentido hablar de atributos descriptores y no de Identificadores). Los atributos 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 de valores sobre los que se define el atributo). Aunque ~e .pueden representar expHcitalnente en los esquemas ElR (como se mues~ra en el slg.ulentc apartado do.n~e se reflejan las notaciones) en los problemas de este libro se co~slder~rá que el dominio toma 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 posibles representaciones en el esquema EIR se muestran en la figura 1.1. o Estado Civil ESlado Civil Notación adoptada en este libro Figura 1.1. Representación de dominios Finalmcnre. las interrelaciones representan asociaciones del mundo real entre una () 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 de ejemplares de las otras entidades en la interrelación, que puede ser IóN). Así. en el ejemplo de la figura 1.2 se observa que el tipo de correspondencia de la interrelación Participar es l:~,. es decir. un :n~plead{) participa como máximo en un proyecto y en un proyecto participan corno maximo N empleados. Al igual que en las entidades se de~omina . ejemplar: de la interrelación a cada combinación de ejemplares de' las entidades Interrelacionadas que constituyen una ocurrencia en la interrelación. Estados Civiles D Las entidades pueden clasificarse por la fuerza de sus atributos identificadores. es decir, por su dependencia o no dependencia respecto a otras entidades. Las entidades fuertes. tienen existencia propia, es decir, poseen identificadores internos que determinan de manera única la existencia de sus ocurrencias. Las entidades débiles pueden serlo por dos motivos: bien porque su existencia en la SD depende de una entidad fuerte. bien porque requieran para su identificación de los atributos i~enlificadores (algunas veces llamados atributos externos) de otra entidad, por ejemplo, no poseen atributos identificadores internos que permitan la identificación de cada una de sus ocurrencias y requieren la presencia de atributos externos. En el primero de los casos se habla de Dependencia en Existencia y en el segundo de Dependencia en ldentificocián', cMPL~Al)O Un constructor que amplia la semántica recogida en una interrelación es la restricción de cardinalidad. Se definen las cardinalidades máximas y mínimas de las e~ltidadcs que particip.an en una interrelación como el número máximo y mínimo de ejemplares de una entidad que puede relacionarse con un único ejemplar de la otra. u otras 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 ).
  • 9. () RA·MA ~ CAP!TULO l : DISEÑO CONCEPTUAL: MODELO EIR OkAMA DISENO I>E LIASES DE DATOS: PROULEMAS RESUEI.TOS (1.1). (D.N) o (I.N)!. situada en la línea que conecta representa el tipo de interrelación (ver figura 1.2). la entidad con el rombo que I:N Et.11'1.EAI)() I'ROy El-IX) (I.Nl en b,II'/.I:II/)() lIluic .. que .111 ~jCllllllllr de la 1.'lIlulllJ I 'OY/;(TO c,I(1 rc1aCIII1HUlu UII<I CI moí, cjcmpl~rc' de la l."" cllud:..1J:f>II'/J0/)() en 1.IIIIII'II~hll'"m /'"!110/N". 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. <,, s (c~n idenficador "N°-Elnp" )' descriptores "Nombre-Emp", "Fecha-Nacimiento", " Salario", "Pulsaciones"), TECNICO (con identificador "N°-Et11P" y descriptores "Nornbre-Emp' . "Experiencia", ..Años-de-Experiencia "). ldcntificarnos que EMPLEADO es una generalización de INGENIERO S/~'(.'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 la entidad INGENIERO; ponernos el descriptor específico "Pulsaciones" en la entidad :E'~RETARIC: Y,. último, ponemos los descriptores específicos "Experiencia" y Años-Experiencia en la entidad TÉCNICO, La figura 1,3 muestra el esquema E/R resultante, ~?r Figura 1,2, Ejemplo de CClrdÍl,,/lidodes niinimas y máximas N··En<p NI)nhrr·EnIJ' I)j r~C'1:IÓ n-Farn ¡llar En los enunciados, la aparición de verbos podrá indicarnos, en algunos casos. la existencia de una interrelación en el e squema E/R. De ..cripcién-Puesto EMI'I.F.AI)( I En cuanto n las generalizaciones, nos proporcionan un mecanismo de ab,stracción que permite especializar una entidad (que se denonlin,ará supenipo) ~n subtipos. o lo que es igual. generalizar los subtipos en el superupo. ,Oc esta lorma. vernos un conjunto de ocurrencias de una entidad como ocurrencias de otra entidad (COl110 sucede también en las jerarquías "es_un" de la~ redes semánticas). Por ejemplo, una . "Persona" es un "Animal" y un "Reptil" es un "Animal"; en este caso, HA'ru 111a 1" pue d e considerarse el supertipo y "Persona" y "Reptil" son subtipos de "Animal", Las ocurrencias o ejemplares de "Persona" lo son también de "Animal" e igual sucede con las de "Reptil". f_" pecia I¡«(:'ú Podren1os identificar generalizaciones s encontramos una serie ~e ~tributo~ i comunes a un conjunto de entidades, Esta situación se da con frecuencia SI se esta realizando un proceso de integración de vistas, De Miguel el al. (1999), Est~s atributos comunes describirán al supcrtipo y los atributos particulares permanecerán en los subtipos, Puede ocurrir que los subtipos no ten~an atribulOS, propios: en ese caso, sólo existirán subtipos (aun cuando por recoger mejor la senlán~lca, esto~ puedan reflejarse) ~i éstos van a participar en interrelaciones (aparte de las InterrelaCiones en las 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 los dcscri ptOI es "Nombrc-Emp". "Di rccción-Fam iliar", "Fecha- N uci miento". "Dcscri pción-Puesto", "Salario", ..l~)(periencia ..l. INGI{NIERO (con iclentilicador "N°-Emp" y dco;criptorc" "Nombre- EI11p", "Di rccción-Faml liar", "Espcciul idud" l, S/:'( 'RE7/ RIO - --------- .It- t:<lIIhnahdad ,,'11 , 011:" llt"¡ht,,, 1<',llIl:<:llIn.:' INGENIJo.RO ((1, N"III,I. (l. Nunn), (N"III" NI. (N",,,,. N/IIII!) Sh('KFrARIO Tf!.C'NI(,() f:.:xpl'l'icnc.:ia Ailt,s- f.J(l"lcrh:nciu Figura 1.3. Ejemplo de generalización Existen otras restricciones semánticas relacionadas con las generalizaciones como son la totalidad/parcialidad Y la exclusividudlsolapamiento, Si las ocurrencia s de los subliP?s de una generalización cubren al supertipo (es decir, no hay ocurrencias en el superupo que no pertenezcan a ninguno de los subtipos) entonces se trata de una generali~aci<Ín total y en caso contrario parcial, Por otro lado, si puede haber ocurrcn:"ls, que pertenezcan a más de uno de los subtipos entonces se trata de gencrahza~lones con solapamiento; en caso de que los subtipos sean disjuntos se habla de generalizaciones exclusivas, En el ejemplo de la figura 1,3 se muestra una generalización total. es decir no ex!~ten EMf'Lt'AD()S que no sean ni INGENIEROS, ni SI!CRE7í/?/OS' ni 7'ECNI('?S; además. es una generalización exclusiva. es decir, un EMPLEA/JO o es INGENIER() o SECRETARIO (l TÉC'NIC'(), pero no puede ser varias cosas a la vez. •••••••••••••••••••••••••••••••••••••••••••••••
  • 10. •••••••••••••••••••••• •••••••••••••••••••••••• h o RA·MII DISEÑO DE BASES DE DITOS: PKOBLEMAS RESUeLTOS B. ALGUNAS HEURÍSTICAS CONSTRUCTORES PARA LA EL ECCIÓN EN'fRE ORA·MA Entidades vs. atributos Los atributos no tienen existencia por sí mismos sino que tienen sentido en cuanto a que pertenecen a una determinada entidad o inlerrelac~ón. Una e~tida~ ~ebe e~t~r caracterizada 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. SI sólo se necesita un identificador para un objeto, el objeto deben a clasificarse como un atributo. Así, las entidades pOSl'1'1linjonnacián descriptiva y los atributos /la Por ejemplo, en el supuesto "los Almacenes se localizan e~ Ciudades". ~i existe alguna 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 7 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 indican información adicional para describir un campus y además se relaciona con otras entidades (por ejemplo, DEPARTAMENTO, AVLARIO, etc.) entonces debe reflejarse como una entidad. VARIOS 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 que un concepto sea un atributo. una entidad o una interrelación?; en este cas~ ~Inlcalnente se podrá recurrir también a una serie d~ heurísticas q~e nos ayuden a d.ccldlr :ntre uno de los constructores que pueden reflejar la semántica de un d etcrlTllnado concepto. Algunas de ellas se describen a continuación. CAPíTULO 1: DISEÑO CONCEPTUAL: MODELO EIR • Entidades vs. interrelaciones Lo habitual es no tener problemas en la diferenciación entre entidades e int~rrelaciones .. Las interrelaciones asocian una o varias e ntidades, mientras que las entl~ade.s n~., Sin enlb~rgo, en cuaJ~uier interrelación puede realizarse un proceso de nominalización. Por ejemplo, mediante una nominalización puede convertirse "los hombres 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 ha convertido en una entidad. Al~n cuando la. nominalización puede resultar útil en un proceso de diseño conlple~o, en especial para tratar de reducir el grado de una in terrelación muy compleja ~ para encontrar elementos de interés para el sistema que inicialmente no se habían tenido en cuenta, en nuestro caso. evitaremos las nominalizaciones que no se e~cuentran presentes en los enunciados o que no resultan evidentes en el Universo del Discurso. Notaciones "tributo. Por otro lado, podría ocurrir que aún teniendo un concepto para el que sólo existe un 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, SI existiera 011'0 supuesto "los proveedores llenen asignados vanas ~Iudades , ento~ces podría dejarse Ciudad como entidad relacionada .con las entidades Almacén y Proveedor o bien dejarse corno atributos en ambas entidades. Entidades vs. atributos mullivaluudos En este aspecto existen discrepancias. Ilay propuestas que .prclicrcn incorporar en los esquclllas H/R un atributo multivaluado cOlnn. una enllda~ y otras pre~eren representarlo corno un atributo. En nuestro caso, COI~ IIH.ler~lld.cncla tic que el alr,lbuto sea simple 1) compuesto. si se sabe que tendrá un numero IlIn.llado. y no muy elevado de ocurrencias. entonces formará parte de la entidad que descri he (siempre y cuando el concepto que representa no esté relaci~nado con otras entidadc« del e~qu:IlIa. EIR~: n U ejemplo puede ..el' "De un ernpl~ado I~tere~~ al~acenar su ,~Nl. nOlnb.r~, d~recclon y teléfono ... : en e...e ceso el atributo Teléfono es un atributo rnultlaluado de la " t ~ con~i~uaci~n se mues~a~ las convenciones seguidas en los problemas para la representación grafica de los distintos constructores de un diagrama E/R. • Entidad (fuerte) I ENTIOAD • Entidad débil - I • RNTII)AD _] Identificador Principal (IP)' I F.n el MndL'lo Relacionaí, Clave 1'(1mari a
  • 11. ~ CAPíTULO 1: DISEÑO CONCEI'TUAL: MODELO ElR 9 ORAMA ORA MA ¡¡ DISEÑO DE BASES I)E DATOS: PROBLeMAS RESUELTOS • Interrelación • Interrelación con Dependencia en Existencia • Interrelación con dependencia en Identificación • Dominio i ldcnti ficador Altemat ivo (1A) I • r • Atributo I Atributo Multivaluado • t • Atributo Compuesto N.. IlIhrc 1)(l"liJlll' • Atributo Multivaluado • COlnpucsto Atributo Opcional • • Q , , , • Jerarquía solapada y parcial (sin ninguna restricción) Jerarquía solapada y total Atributo Dcrivado I Etiquetn •• ••••••••••••••••• 11'".,1 t-hllkl" RclallCIl1al. Clave All~.'n~liva 'ti" :,'n' 01,'" "iv""lún • ••••••••••••••••••••••••••••
  • 12. ••••••••••••••••••••••• ••••••••••••••••••••••• 10 DISEÑO DE BISES DE I)I1'OS: PROBLEMAS RESUELTOS • • Jerarquía exclusiva y parcial Jerarquía exclusiva y total o R....M¡ CIPITULO 1: DISeÑO CONCEPTUAL: MODELO fJR II metodología de realización de un esquema conceptual que tiene en cuenta estos aspectos constaría de los siguientes pasos": l. Estudiar el enunciado que describe el Universo del Discurso y elaborar dos listas; una con los candidatos a ser entidades y otra con las posibles interrelaciones 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). 2. Construir una Matriz de Entidades en la que las lilas y las columnas son nombres de entidades y cada celda puede contener o no nombres de interrelaciones. Esta matriz tiene el siguiente aspecto: El Cómo se estructuran los problemas A fin de faci litar la comprensión de las soluciones propuestas a los problemas de modelado, cada problema se desglosará arbitrariamente en varios pasos. En cada paso se estudiará un conjunto de supuestos semánticos que darán lugar a un subesqucma E/R. En cada paso se irán añadiendo elementos al subesquema obtenido en el paso anterior y así sucesivamente hasta completar el estudio de todos los supuestos semámicos contemplados en el enunciado del problema. Supondremos que el enunciado constituye una descripción correcta (y casi siempre completa) del Universo del Discurso. Una aproximación utilizada habitualmente en la construcción de esquemas EIR es identificar primero las entidades, luego las interrelaciones y por último los atributos de las entidades e interrelaciones. En nuestro caso se identificarán todos los elementos (entidades, atributos, interrelaciones, cardinalidades, etc.) por cada conjunto de supuestos semánticos analizados. Ello puede irnplicar que algunos conceptos se representen en los primeros pasos con determinados constructores y que posteriormente, en sucesivos pasos, los nuevos supuestos semánticos analizados nos proporcionen información adicional que modifique alguno de los constructores seleccionados. Por ejemplo, podría ocurrir que un deterrninado concepto se representara en una primera aprox imación corno un atributo y que según se avanza en el análisis de los supuestos del enunciado se descubra que debe representarse corno una entidad. A veces también se suele recurrir a otro tipo de herramientas que nos ayudan a detectar infonnación que no aparece explícitamente representada en el enunciado y que resultan tic gran utilidad a los diseñadores inexpertos. Así, una propuesta de E2 E3 EN El E2 ... EN Las entidades son EJ. E2, ..., lEN Y las interrelaciones son 1l. 12..... IN. Corno la matriz es simétrica. las celdas que aparecen con una cruz se corresponden con interrelaciones que ya están especificadas en la otra mitad de la matriz. El sfrnbolo -- en una celda indica que no existe interrelación entre las dos entidades referenciadas. Además. habría que indicar los tipos de correspondencia de cada interrelación. Por ejemplo, 11 podría ser una interrelación 1:N. Es importante destacar que esta matriz no recoge las interrelaciones de grado superior a dos. En la elaboración de esta matriz es posible detectar interrelaciones que no aparecen explícitamente representadas en el enunciado y que, sin ernbargo, podría resultar interesante que se recogieran en el esquema EIR. Este tipo de interrelaciones se detectan, generalmente, por sentido común, aunque sería necesario siempre validarlas con el usuario. 3. Utilizando la matriz de entidades se construye un primer esquema ElR con las entidades, atributos, interrelaciones y sus tipos de correspondencia. A este esquema se le añaden las cardinalidades mínimas y máximas. 4. En este último paso se refina el esquema JlIR del paso anterior estudiando las posibles redundancias siempre y cuando existan ciclos con interrelaciones .. E~1aaproximacién se urili71lr:Íen el PIirner ejercicio de este terna.
  • 13. 12 DISEÑO DE BASES Oc DATOS: PROBLEMAS RESUE1.TQS o RA.M/ semánticamente equivalentes. Existe redundancia en un esquema E/R cuando la misma semántica se recoge de manera duplicada. por lo que ese esquema podría representarse manteniendo la misma semántica con menos elementos. En general, puede haber redundancia cuando existen ciclos en un esquema FJR (varias entidades unidas por varias interrelaciones relacionadas semánticamente formando un ciclo). En este caso. habría que comprobar si eliminando una interrelación, la semántica representada en ella puede obtenerse mediante las interrelaciones restantes. Para ello. hay que estudiar detalladamente las cardinalidades de las interrelaciones y hacer la comprobación tanto en un sentido como en el otro. Este proceso se describe en De Miguel et al. (1999). Se mostrará algún ejemplo en los ejercicios de este capítulo. PROBI~EMA 1: HABll'ANTES y MUNICIPIOS CAPíTULO 1: I)ISEÑO CONCEPTUAL: MODELO FJR e RA·MA 13 Familia, pues en realidad es también una Persona. Dejaremos la clasificación de este concepto para el siguiente paso. • 20 paso: Construir una matriz Entidades/Entidades para representar todas las interrelaciones junto con su tipo de correspondencia. Para ello. iremos analizando los supuestos semánticos explícitamente representados en el enunciado, así como los que están implícitos o son de sentido común. A) Supuestos dados en el enunciado: • Cada PERSONA sólo puede HABrrAR en una VIVIENDA (interrelación Habita (1 :?) entre PI~'RSONA y VrVIENf)A) • Cada PERSONA puede ser PROPIE'fARIA de más de una VIVIENDA (interrelación Propiedad (?:N) entre PERSONA y VIVIENDA) Enunciado Supongamos el siguiente universo del discurso sobre municipios. viviendas y personas. Cada persona sólo puede habitar en una vivienda y estar empadronada en un • Las PERSONAS dependen del cabeza de familia (interrelación C.F. (?:'?) entre PERSONA y PERSONA) municipio. pero puede ser propietaria de varias viviendas. Nos interesa también conocer las personas que dependen del Cabeza de Familia (C.F.). Se indicarán los supuestos semánticos que se consideren oportunos para justificar todas las decisiones de diseño. • Una PERSONA está empadronada en un único MUNICIPro. Discusión del enunciado B) Supuestos no dados en el enunciado: Para la resolución de este ejercicio se seguirán los pasos indicados al final de la sección 3 de la introducción. en la que se exponía una guía metodológica para diseñadores inexpertos. • En una VIVIENDA pueden HABI1'AR muchas PERSONAS (supuesto lógico del Inundo real) • I '" paso: • Una VIVIENDA puede ser PROPIEDAD de muchas PERSONAS (supuesto legal) Elaborar las listas de conceptos candidatos a ser entidades e interrelaciones e indicar también los conceptos que no se sabe cómo catalogar. Las listas obtenidas son: interrelación Empadronada (1 :N) entre PERSONA y MUNICIPIO interrelación Habita (1:N) entre P/~RSONA y VIVIENDA interrelación Propiedad (M:N) entre PERSONA y VIVIENDA Entidades: Interrelaciones: MUNICIPIO Habita entre PERSONA y VIVIENDA VIVIENI)/ Empadronada PERS()NA Propiedad entre PERSONA y VIVIENf)A entre PERSONA y MlJNICII"/O ¿CABEZA DE FAMILIA? Las entidades e inrcrrelaciones anteriores están explícitamente representadas en el enunciado. En principio. no sabemos cómo representar el concepto Cabeza de • Una PERSONA sólo puede tener un cabeza de familia y un cabeza de familia puede serlo de varias PERSONAS interrelación C.F. (1:N) entre PERSONA y PERSONA • Un MUNICIPIO puede tener muchas VIVIENDAS pertenece a un solo MUNICIPIO. y una VIViENDA • interrelación Está_En (N: 1) entre MLINICIPIO y VIVIENDA ••••••••••••••••••••••••••••••••••••••••• ••••••
  • 14. ••••••••••••••••••••••• o RII·Mi 14 DISEÑO DE !JASES DE DATOS: PROBLEMAS RESUELTOS • Interrelación Está_En: Una VIVIENDA está en un único MUNICIPIO yen un MUNICrPIO hay, como mfnimo, una VIVIENDA La matriz obtenida se muestra en la figura 1.4. I'rH.WJNA I'IVII:N/)A MUNICIPIO PERSONA e.•.(I NI Rmpad ro ....d. . IoIUNICIPIO VIVIf.NOA (1: N) lI.bllo (1 NI I'nlpiedad(N MI t:'la E.., (N 11 La figura 1.6 muestra el diagrama FlR con las cardinalidades máximas y mínimas. IN Figura / .4. Mutri; de entidades/entidades • ( 1.1) PERSONA 3" paso: Obtener una versión preliminar del esquema E/R. En la figura 1.5 se muestra una primera versión del Esquema fJR correspondiente a los supuestos I:N (0.0) (0,0) (1.0) (1).0) mencionados. MUNICIPIO I :N I :N ( 1.1) ( 1.1) ( 1,1) (O.n) I:N PERSONA N: I Figura 1.6. Esquema E/R con restricciones de cardinalidad I :N • VIVIENDA 5° paso: Análisis de redundancias. Cumo existen dos ciclos en el esquema ElR hay que estudiar si existe alguna interrelación redundante, es decir, si hay alguna interrelación cuya sernántiea pueda obtenerse a partir de las otras interrelaciones. N'I Figura /.5. Yersián preliminar del esquema ElR • 4" paso: Análisis de las cardinalidades mínimas. Hasta ahora se han estudiado sólo las cardinalidades máximas de las interrelaciones. A continuación, se estudiarán las cardinalidades mínirnas. El prirner ciclo lo constituyen las interrelaciones Propiedad, Está_En y Empadronada. La primera condición para saber si tenemos un ciclo en el que haya alguna interrelación susceptible de ser redundante es que las tres interrelaciones estén semánticamente relacionas. En este caso la interrelación Propiedad no es semánticamente equivalente a Está_En y Empadronada, puesto que el poseer o no una vivienda no influye en si la persona reside en el municipio en el que se encuentra la vivienda. • Interrelación C.F.: Una PERSONA tiene obligatoriarnente como mínimo una PERSONA que es Cabeza de Familia y una PERSONA que es Cabeza de Familia puede que no tenga ninguna persona a su cargo. El segundo ciclo lo constituyen las interrelaciones Habita, Está_En y Empadronada. En este caso las tres interrelaciones están semánticamente relacionadas", Veamos si alguna de estas interrelaciones es redundante: • Interrelación Habita: Una PERSONA habita como mínimo en una VrVIENDA yen una VIVIENf)A puede que no habite ninguna PERSONA. Interrelación Habita: Si intentamos eliminar la interrelación Habita debe ser posible obtener su semántica a partir de Está_En y Empadronada; así, si queremos obtener las personas que habitan en una determinada vivienda, a partir de Está_En se obtiene el municipio en el que se encuentra la vivienda y con la interrelación Empadronada se obtienen las personas que habitan en ese municipio. pero no sabernos las personas que habitan en la vivienda sino las que habitan en todas las viviendas del municipio, Por ello, la interrelación Habita no se puede eli minar, • Interrelación Propiedad: Una PERSONA puede que no sea propietaria de ninguna VIVIENIJA y una VIVIENDA puede que no sea propiedad de ninguna I'ERS()NA (una vivienda podría ser propiedad de una empresa, por ejemplo). • Interrelación Empadronada: Una PERSONA está empadronada COrno mínimo en un MUNICIPIO (y corno máximo también) yen un MUNICIPIO como mínimo está empadronada una PERSONA. 1 SUpOllCIll0S que las personas , habitan en l0' IIIUIlICiplOS en los que están empadronadas.
  • 15. ~ 1(> ORA·MA DISEÑO I)I! BASE.'; DE DA'I OS: PROBLEMAS RESUEI.TOS ~C'!.!/~l'j:.:.1 !.:lI:..::1.0~1 : DISEÑO CONCEPTUAL: ~O:.::R~A .!:!MA::._ MODEI_O EIR 17 Interrelación Está_En: Si intentamos suprimir la interrelación Está_En debe ser posible obtener su semántica a partir de las interrelaciones Habita y Empadronada. Para conocer las viviendas que se encuentran en un determinado rnunieipio. a partir de Empadronada obtenemos todas las personas empadronadas en ese municipio y mediante la interrelación Habita obtenemos las viviendas en las que habitan esas personas (pues una persona obligatoriamente debe habitar en una vivienda); de esta terma. sabremos las viviendas de ese municipio. En el otro sentido de la interrelación Está_En, para conocer en qué municipio está una determinada vivienda. a partir de Habita obtenemos las personas que habitan en ella: sin embargo, puede ocurrir que en una determinada vivienda no habite nadie (cardinalidad mínima O). por lo que no podemos alcanzar la interrelación Empadronada entre persona y municipio. Así. la interrelación Está_En no es redundante. SUPUESTOS SEMÁNTICOS COMPLEJlfENTARIOS y SEMÁNTICA NO REFLEJADA 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 conoccr el municipio en que está empadronada una persona, mediante Habita obtenemos la vivienda en la que habita esa persona y con la interrelación Está_En obtenernos el municipio en que se encuentra la vivienda: Por ello. conocemos el municipio en que está empadronada esa persona. En el otro sentido de la interrelación l<:tnpHdronada, debe ser posible conocer las personas empadronadas en un determinado municipio: mediante la interrelación Está_En conocemos las viviendas de ese municipio y 11 partir de Habita sabernos todas las personas que viven en esas viviendas. conociendo así todas las personas empadronadas en el municipio. Consecuentemente. la interrelación Empadronada se puede clirninur del esquema ElR sin perder semántica. La empresa organiza cursos internos de formación de los que se desea conocer el código de curso, el nombre, una descripción, el número de horas de duración y el coste del curso. Enunciado El departamento de formación de una empresa desea construir una base de datos para planificar y gestionar la formación de sus empleados. Un curso puede tener corno prerrequisiro haber realizado otrots) previamente, y, a su vez la realización de un curso puede ser prcrrequisito de otros. Un curso que es un prerrcquisito de otro puede serlo de forma obllgatoria o sólo recomendable. Un mismo curso tiene diferentes ediciones. es decir. se imparte en diferentes lugares. fechas y con diferentes horarios (intensivo. de mañana o de tarde). En una misma fecha de Inicio sólo puede impartirse una edición de un curso. De los empleados se desea almacenar su código de empicado, nombre y apellidos. dirección. teléfono, Nlr (Número de Identificación Fiscal), fecha de nacimiento, nacionalidad, sexo, firma y salario. así corno si está o no capacitado para impartir cursos. 1:N (0.11) PERSONA (0.11) ( 1.1) Un mismo empleado puede ser docente en una edición de un curso y alumno en otra edición. pero nunca puede ser ambas cosas a la vez (en una misma edición de curso o lo imparte o lo recihe). (0.11 ) (O.n) 1:N VIVIENDA PROBLEMA 2: CURSOS DE FORMACIÓN Los cursos se imparten por personal de la propia empresa. El esquema ~jR definitivo se muestra en la figura 1.7. (1.1) Toda la semántica del problema ha sido reflejada. y no ha sido necesario realizar supuestos adicionales. Discusión del enunciado ( I.n) N: 1 ¡:igura /.7. Esquema ElR sin redundancias ..La empresa organiz« cursos internos de /01'1I/(I("i611 de los que se desea COIlO('er el códigQ de Curso. el nombre, 111/0 descripríán, el IIlílllero de horas de duracián y el coste del curso ... ••••••••••••••••••••••••••••••••••••••••••••••
  • 16. ~ ••••••••••••••••••••• ORA-MA IR DISEÑO Oc RASES DE DATOS: PKOBLEMAS RESUELTOS "Un curso puede tener co/no prerreqlllsllo hab er realizado .o~r()(s) prev;'"l1enle, y. a Sil vez/a realizacíén de un curso puede ser prerreqlllsllo de otros. Un curso que es IIn prerreqll;s;lo de otro puede serlo de [orma obligatono o sólo reco/llel/dable. " Parece evidente a partir de los primeros párrafos que. cad,~ :urso de formación será una entidad: un CURSO tiene un "Código" que I~ Iden~lf~(;a, y lend~á corno trib t S el "Nombre" (el cual consideralnos que además es úmco, es decir, es un a 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.mos utilizar un atributo, ya que un curso puede ser prerrequisuo de v~nos. La forma de rcprcsentarlo es Inediante una interrelación refl~xiva en ~a en ttda~ CURSO. Las cardinalidades mínimas y máximas en ambos sentidos de la Interrelación son (ü.n), lo cual signi fica que: • • ~ '. ••••••••••••••••••••••• CAPíTULO 1: DISEÑO CONCEPTUAL: MODELO EfR ORA MA Puesto que en un misma fecha sólo puede comenzar una ú a nica edición del mismo curso, será suficiente con la fecha (junto con el código del Curso) para poder identificarla. Por lo tanto, una eDICIÓN será una entidad débil que tendrá una dependencia en identificación con respecto a CURSO. Las cardinalidades con respecto a CURSO serán (1,1), ya que toda edición lo es de uno y sólo un curso (además, toda dependencia en identificación ha de tener, evidentemente, cardinalidades (1,1) con respecto a la entidad regular). La cardinalidad máxima de una edición con respecto a un curso será 11 (puesto que puede haber distintas ediciones de un mismo curso). En cuanto a la mínima, será O si pueden existir cursos de los que no se hayan impartido ediciones, y I si todo curso ha de tener al menos una edición. Hemos elegido la cardinalidad menos restrictiva, esto es, 0, para permitir que la empresa pueda tener planificados distintos cursos de los que todavía no se haya celebrado ninguna edición. La semántica anterior se refleja en el esquema de la figura 1.9. o z Un curso puede ser prerrequisito de ninguno o de varios otros cursos. ... o Un curso puede tener corno prcrrequisito haber cursado previanlente ninguno o oI <U ... tlJ . .o ~ =8 varios cursos. c: e Z U Por otra parte, el atributo que indica la obligatoriedad ha de tigu.rar el~ la interrelación. Y no en la entidad, ya que no es propio del curso el ser oblt.g?tono o recomendable, sino de un curso con respecto a otro del que es prcrrequisno. Las consideraciones anteriores aparecen en el esquema de la figura 1.8. N:M " .o. 'o Cl 5 -o ::J (O,n) U .. '" 'C u c .- ... e u o'" U (O.n) N:M CURSO Fecha Obligatorio ....._~I CURSO td_Edición Figura 1.9 Figur« 1.8 PAR1'E 3 "Los cursos SI' ;/l1/1t1rl(!1I personu! de la propia empresa .. , flor "(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~,!,ao tic tarde J. EII /I/UI 111;.111(1[ech« de inicio sélo {JI/(!I/e muiarurs« I/I,a edlcián de '111 ,'/lt (1 " 1<) "/)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). fecha de nacimiento. nacumalidad .. er>,firma y salario. así C(//I10 si está o no (;ul'(/C;la(/(/para imparnr curso» ."
  • 17. ~ ORA M.o. 20 4) CAPíTULO 1: OISIiÑO CONCEPTUAL: MODELO EIR RA-MA 21 DISr:ÑO OE BASES OH DATOS: PROBLHMAS RESUELTOS ..UII /ni,~III(1 empleado puede ser docente en U/la edicián de 1111 curso y alll/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), .. • Que en una edición deba haber al menos un alumno y un docente (la solución sólo exige que haya un participante) NM El esquema modelado hasta ahora ha sido bastante sencillo, Sin embargo. ~ara modelar 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. En cualquier caso. tendremos una entidad EMPLEAlJO. con un conjunto de atributos, de los cuales "Código de Empleado" será identificador principal, y "NIF' identificador alternativo, 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". 111,11 1 EMPLEADO ( I.n) N:M A continuación ofrecemos distintas posibilidades para modelar la participación de los empleados en las ediciones de los cursos, y veremos ~as ventajas y desventajas de cada una de ellas (por claridad, en estas figuras no se Incluyen los atributos de las entidades): HMI'LEADO I'I>ICION Figura I.JO La solución más sencilla (figura 1.10) sería modelar la participación de los empleados en las ediciones de los cursos mediante una intcrrel.ación .~art~c~pa ~?t~~ EM PLEADO 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 un curso un ernpleado sólo puede participar como docente o corno alumno, pero ~o ~omo ambas cosas a la vez. Sin embargo esta solución no recoge las SIguientes Podernos ampliar la solución anterior, dividiendo la interrelación Participa en dos interrelaciones, Imparte y Recibe. corno muestra la figura 1,11. De esta manera resolvernos que en una edición deba haber un docente y, al menos, un alumno, La cardinalidad máxima de Imparte sería I si un curso lo imparte una única persona O N si suponemos que lo pueden impartir más. Sin embargo, seguirnos sin resolver el hecho de impedir que empleados no capacitados puedan impartir cursos, y además hemos 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 como alumno. Esto no se resolvcría mediante una restricción de excl sividad (en u EMPLEADO), ya que significaría que un empleado o siempre es alumno, o siempre es profesor, pero no que pueda ser unas veces alumno y otras profesor, pero siempre en distintas ediciones de cursos. N:M (l,n) ....-------, EMPLEADO I {exdl,¡,in } características: • Figura /.// (0.1) (1),1) Que un empleado no capacitado para impartir cursos no pueda participar en una edición COIIlO CAPACITADO docente NO CAPACITADO NI • ESIIl es ¡"i porque ~tl los requisitos se nos indica que la cap~cílac~ón depende úl~ic;lI1lenledel empleado p"t.lría pl;rnlcar~c una ,ampliación del problema ~rmitiendll que dicha cap~cl~a~~o~~_ependl~r:1 nu ",1(1 t.lt'I"lIlpkmlu "1141 lalllhlén de cada CUfl;1 CC~ decir. que un empleado eSIUVlcr.1 capacitado par,l. Figura 1./2 •••••••.•••••••••••••••••••••••••••
  • 18. ••••••••••••••••••••••• ••••••••••••••••••••••• 22 CAPITULO 1: DISEÑO CONCEPTUAL: MODELO I'/R ORA·MA DISEÑO DE BASES 1>1'. DATOS PROBLEMAS RESUELTOS Una mejora a la solución de la figura 1.1J sería añadir una jerarquía de empleados (CAPAC'ITADOS y NO_CAPAC/7'ADOS. o únicamente CAPACITADOS) en la que el atributo discriminante fuera "Capacitado", y dos interrelaciones. Imparte y Recibe. Con esta solución. que se muestra en la figura 1.12, resolveríamos los dos aspectos que no se recogían con la solución de I~ .figura 1.10'. pero se.g~~lnos sin resolver el impedir que un mismo empleado participe en la rmsrna edición corno alumno y como docente. ya que en la interrelación Recibe particip~n tanto .I~s empleados capacitados como los no capacitados. Para resol:erlo deben.alnos eXI.glr que una ocurrencia de la interrelación Recibe no apareciera en la interrelación Imparte y viceversa. es decir, una restricción de exclusión. Esta notación procede de los modelos de objetos. y puede consultarse en De Miguel el al. (1999). Propuesta de solución Hemos elegido la opción de la figura 1.12 porque, COI no hemos visto. es la que más semántica recoge. La figura 1.13 muestra el esquema definitivo. 23 PROBLEMA 3: CAMPEONATO DE AJEDREZ Enunciado El club de Ajedrez de Villatortas de Arriba, ha sido encargado por la Federación Internacional de Ajedrez de la organización de los próximos campeonatos mundiales que se celebrarán en la mencionada localidad. Por este motivo. desea llevar a una base de datos toda la gestión relativa a participantes. alojamientos y partidas. Teniendo en cuenta que: En el carnpeonato participan jugadores y árbitros; de ambos se requiere conocer el número de asociado, nombre, dirección, teléfono de contacto y campeonatos en los que han participado (como jugador o como árbitro). De los jugadores se precisa además el nivel de juego en una escala de I a LO. Ningún árbitro puede participar corno jugador. Los países envían al campeonato un conjunto de jugadores y árbitros, aunque no todos los países envían participantes. Todo jugador y árbitro es enviado por un único país. Un país puede ser representado por otro país. (n.lI) !'1M Cada país se identifica por un número correlativo según su orden alfabético e interesa conocer además de su nombre, el número de clubes de ajedrez existentes en el CUKSO mismo. (1 1, Cada partida se identifica por un número correlativo (Cód_P), la juegan dos jugadores y la arbitra un árbitro. Interesa registrar las partidas que juega cada jugador y el color (blancas o negras) con el que juega. Ha de tenerse en cuenta que un árbitro no puede arbitrar a jugadores enviados por el mismo país que le ha enviado a él. u.") Todo participante participa en al menos una partida. (exclulión} 1 ji). 1 ) tt',n) I·C'.:II., ()j...--.41 NO EDICIÓN eAPAcrr AOO Figura Ll l SUI'UES'r()S SEMÁN,.,IC()S COMI'LEMEN1'ARIOS y SEMÁN1'ICA NO REFI,EJ"ll" • Tanto jugadores corno árbitros se alojan en uno de los hoteles en los que se desarrollan Laspartidas, se desea conocer en qué hotel y en qué fechas se ha alojado cada uno de los participantes. Los participantes pueden no permanecer en Villatortas durante todo el campeonato. sino acudir cuando tienen que jugar alguna partida alojándose en el mismo o distinto hotel. De cada hotel, se desea conocer el nombre. la dirección y el número de teléfono. El campeonato se desarrolla a lo largo de una serie de jornadas (año. ITIes.día) y cada partida tiene lugar en una de las jornadas aunque no tengan lugar partidas todas las jornadas. Se ha considcrudu el nombre dcl curso corno un identificador alternativo . •
  • 19. 24 e RA·MA DISFÑO DI,. IIASFS DE DATOS: PROFll.EMAS RESUhLTOS 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 cada sala, 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 de varios medios distintos. De cada partida se pretende registrar todos los movimientos que la componen, la identificación dc movimiento se establece en base a un número de orden dentro de cada partida: para cada movimiento se guardan la jugada (5 posiciones) y un breve comentario realizado por un experto. Discusión del Enunciado PARTE I ..ElI el campeonato purticipan jllf.(ador('s y árbitros; de ambas se requiere conocer el IllÍ/nero de asociado, nombre, direccián, teufono di' (OIlIIlCIO y ca/I/peollatos en los que /1(111 participado ((;(I/nojugador (i ('0//111 árbitro]. De los jugadores se precisa adenuis el nlvel di'juego ('1/ Hila cscalu de I el 10, .. En este primer supuesto aparecen dos entidades: A/?BITRO y J(JCADO/(: que comparten muchos de . us atributos, por lo que puede pensarse en abstraer ambas entidades a un supertipo PIRTICIPAN1'E del cual éstas serían subtipos, Loe¡ atributos comunes son: número de asociado ("N_Sucio"), que actúa corno ideruificador principal, "Nombre", "Dirección' y "Teléfono". que se consideran atributos obligatorios y, por ultimo, para recoger los distintos campeonatos en los que han participado tanto jugadores corno árbitros, se crea un atribulo "Campeonato". que será multivaluado, opcional y compuesto por "Nombre' del campeonato y "Tipo" (árbitro o jugador). Se podría haber considerado "Campeonato" como un tipo d entidad. de esta forma se e podría guardar mas información acerca de éstos pero al leer todo el enunciado nos damos cuenta de que no precisamos mayor detalle. El subtipo JUGAI)OR tendrá un atributo propio denominado "Nivel" de juego. ('APITULO t: DISEÑO CONCEPTUAL: MODEl.O ElR ORAMA 25 "Cada país se identifica por 11/1 lIú/flero correlativo según su orden alfabético e interesa conocer además de Sil nombre, el IItí/llero de clubes de ajedrez existentes en el mismo. " Se crea un lluevo tipo de entidad PAís cuyo identificador principal es un número correlativo según un orden alfabético que no podernos representar en el esquema pero que debernos tener en cuenta a efectos de implementación. PA!S tiene otros dos atributos más, "Nombre". que además de obligatorio se considera identi ficador alternativo y "N_Club". .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 que en ~l t~xto se Ind.tca que puede haber países que no envíen participantes. Las cardlnalt.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 esta Int~rrelaclon SI no se hubiera introducido la jerarquía de participantes, pues se habría tenido que establecer al nivel de los subtipos, duplicándose esta interrelación. Como un país puede ser representando por otro país se creará una interrelación re~cxiva Representa cuyas cardinalidades son (0,1) para reflejar el hecho de que un pal~ puede o no ser representado por otro. y (O.n) pues un país podría representar a vanos países, La figura 1.14 refleja las consideraciones anteriores. NI 1'/1 RTI('II'/lNTI: 1'... 1" l' ,t '1uf',r.. tU ti I I" "Ningún árbitro puede participar COIIIO jugador ." Jl:GADOR ARBITRO El haber reflejado el anterior supuesto como una generalización 110S permite reflejar esta nueva especificación en la cual se aclaran cuáles son las propiedades de la Jerarquía anterior. Las personas que participan dentro del mismo campeonato son o jugadores o árbitros y sólo pueden actuar corno tal, por lo que la generalización es exclusiva. puede suponerse además que es total por conocimiento del universo de .n.,. PAIS fU n, discurso, 1)lIIe~ 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' 1111 1;"iclIl'l" (111 ptlfl 1'lIetll' ser rf'pre.'f'lItculn 1/lIr otro paú •.. NI "/..11 t ••••••••••••••••••••••••••••••••••••••••• • Figura 1.14 •••••
  • 20. ~ •••••••••••••••••••••••••••••••••••••••••••••• ISEÑO DI· 13/';l:.'; 1>1'nATO"' PROOLLIIAS RESllJ - lOS • K '" rnrrclativo (('"d_P), la jl/"!.!I'" dO,1 Jllgado/'es v 1(/ arlntra 11/1 arbitro. /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(' "Cada parud« tenerse el ,'1/ "';,1'/1/1/ t' ldentific« flor 1'111'''/(/ (11('un « II/íllll'r" árbitro "11 //II"t/(' arburur fI(/r.~'I'{(' 1,' hu /'11";(1(10 "T'III" /)(/rl;(';/II//1I1' 11/1 partiripa 1/ a ¡IIgf/(IIIr(,'1 ,'/II';"¡/,/ P"! l'." t 1'111 1() 1 DISI,NO CO:-1CI ITII' 1.: IIOI>I·LO I'¡R R' 1 contemplará que en un momcmo dado puede que no exi stan participante .. ulojndos en el mismo. Adcmus, la... cstanciuv de un parucipantc pueden ser intcnuitcntcx, con lo ruul la imcrrclucion PO!CC UO), arributus muhivaluados, "F_Enlrada" y "F Salida", que rccogcnin csrc supuesto. Para reflejar las mstancias ac uralcs, e las cuales, n cvidcmcmcmc 110 hahn¡ una fecha de sulidu. el atributo "(,),aliua", será opcional. en all/II'I/IIS 111/<1 purtid«. " adicional deducida de la irucrprctución del Universo de Di'l'urso se iícbcrfu aseg urar que la lecha de salida sea mayor que la de cntruda y que I)~ periodo, de tiempo no se solapen entre sí. ('111110 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. rcvtricciún La <cuuimicu anterior aparece reflejada Una partida de ajedrez la juegan dos jugadores)' la arbitra un árbitro, hecho que .presenta mediante dos interrelaciones binarias. ya que existen dos asociaciones ntas, Juega y Arbitra. La interrelación Juega tendrá como cardinalidades asolS a PII/?1·II)A (2,2) Y las asociadas a .I(fCAD()R serán (I.n). Además. para saber qué color ha participado cada jugador en las distinta» partidas disputadas, tenlOS un atributo obligatorio "Color" en la interrelación, cuyo dominio estará comto 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(). IIJ~" '''JI :>. ... I..~ J ! IIO!'!'I. I "1""" 4D , '. 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 a inalidades, se refleja con mayor precisión, en este caso mediante interrelaciones nas. "Tanto jugadores ('01110 árbitros se alojan el/ 11110ele los hoteles en los que le desarrollun 1(/,1 partidas, .I! desea conocer el/ qué hotel _I' en qué [echav ,11' ha alojado cada 1111(1 de 10,1' participantes. /.. /~ participantes pueden /111 ( Iler/lUIIII'C,'r e n Yillatortas durante lodo el ('(/1/11'(,0111"11, :';1111 acudir cuando tienen 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. " 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 atributos manvox se presentarán "Dirección" y "Teléfono". y 0;1.' relacionarán II(rr/~'L y ~77('IPIN7'/~' 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.' e-quema 'I 1II,."l, , ~I I 1.'11el de la figura 1.15, ,,,...., 1 . j¡,¡ , Q i 11. f'AkTICIPANTlé 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-, del lULO "Color" sean distiruo« para jugadores que devarrollen la misma panilla, pero -or este hecho debernos de ignorarlo sino que la guardaremos para contemplarlo en nplementación, pues se trata de supuestos semánticos que el modelo E/R no c' IZ de recoger. C0I11~)los ~7 Jl'(jAI)( 11< ÁI<BII RO I' • ,I I I " 1 ,1 el'" I " I I 111 PAR IIDA Figun¡ 1.15 ..(~'I( (//11111'111/(//(1JI' tlrxrtrrnllu (( /0 IU/',litl 11,' 1/1//1."'I'It' tll' jornoda» ((//70, dtu¡ ,tilia partit!« //1'1/(' /lIglIl "/1 unu d,' /II.I!II/lltlllt'/t/1 mdav las jnrnadu-; .. /1" 111.1jIJ/'II/II/tI.I' 111(///(/11' ///1',1, It'lIg(//I . Dependiendo de la mlonnucion qu se quicru recoger acerca de la~ jo e rnada .. del l"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"
  • 21. It 1 cxraría compuesto pilr tres atributos. "Arlo", "Mes" y "Día". que recogerá sólo in nación acerca oc los ola, en que se han celebrado pan idas, Se iomani e-tu última ión, ya que en el enunciado no ve refe rencia a las jornadas en que no hay punulas 1 que el 'l'IClna de inlonuación contempla s610 lux jornada, donde éslas CI'11.'11 ~, ,, ~ .:..( ':.:.,~I'.'.!.IT,lIl I>ISI,NO ('0( () 1. '1'I'rt'i1 , ~1()1>"1.() f'JI~ 2') El esquema de la figura 1,16 refleja los comcnturios anteriores. 1111 11 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, t1iSI'IIIII' t nuho, /e//''I;oll. I'IIC'I<'/IIHII. .11' .11'1'" « vulco...) Una suln pur.h: Aparece en este púnufo una anocor lu 1''''I(II'idod /'1/1'(/ (/,,'/'""1''' el,' Y mvdio» d, ,/1/1' k« ilitur la r..transtnisurn d« ',"'1",1 IIU'.I;o" I1 II /" , disunto» " a entidad S,[j. cuya existencia depende ¡k'l el 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'~ del lo no aparece ninguna caructcrísticu de .:ada :-ala que pueda ejerce: las luhurcs de ruificador principal. se uñadc a los atributos de ésur, que 'ion "Capacidad" y lcdiux". un "C'úd_Sala", EllIlrihllhl "Medios" es multivuluado y opcionnl. ya que en a sala pueden existir. 1) 1l1lC 110,tli:-lintos 11Iedi)~uudiovisualcx. I l. 1• ('".1 l' 111111,1,1.1 La iutcrrclacion I)ispulu' tille a~(lcia H()T/~·1. y SA/.A. C0I111'lllad" unrcnnnnentc 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. I 1.111 r 1'¡¡!lI), ( 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 han · ndido para una determinada '1 punida. Una restricción que se deberá tener en cucnu t -stcriormentc pura I¡¡ implementación de este esquema cs que el valor tic e,te atributo 1,1 1 .., , 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 el mpeonato aunque el hotel pudiera tener más, "De cada partldu ,1' fll'I'I('''¡(t' /(',~i,III'III uulo« /(1, 1110 "lIlli('1I1I1,1 II.n I 1( >VI:'l II:NTO ','¡gllra /,1 () 11'11' /11 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." ('(I/II/UJlI 1.'11 /0 , 11111.·llft~ it/elllll;('(/";Iill Propuesta de solución lus distinta:; soluciones parciulc« ubtcnidns en la liguru 1.17. /glupalllo, 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, para identificación de cada movimiento xcrá necesario el identificador principal de PAN fI)A. por lo que tendremos una iruerrclucióu en iucnlificaciún dt:lllllninada ('unsta. • • •••••••••••••••••••••••••••••••••••••••••••••••
  • 22. ••••••••••••••••••••••• •••••••••••••••••••••••• CAPrTUI.O 1: DISEÑO CONCEPTUAL: MODELO EIR 31 JO DISEÑO DE BASES DE DATOS: PROIlLEMAS RESUELTOS , , PROBLEMA 4: ENERGIA ELECTRICA "1 Eounciado j Se pretende llevar a cabo un control sobre la energía eléctrica que se produce y consume en un determinado país. Se parte de las siguientes hipótesis. I ,. 11' t I 11'.11 ¡.RBrntt) (.11.1 'ii 1" t 1.11 "'.1 I'g 11."1 (Inl :.. ~_~ ,L-_--'C--__'_'< l'Akll1M In..n..JJ. l.", • --' ~ Existen productores básicos de electricidad que se identifican por un nombre. de los cuales interesa su producción media, producción máxima y fecba de entrada en funcionamiento. 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 n os interesa saber su ocupación, capacidad máxima y número de turbinas. De una central solar nos interesa saber la superficie total de paneles solares, la media anual de horas de sol y tipo (fotovoltaica o termodinámica). De una central nuclear, nos interesa saber el número de reactores que posee, el volumen de plutonio consumido y el de residuos nucleares que produce. De una central térmica, nos interesa saber el número de hornos que posee, el volumen de carbón consumido y el volumen de su emisión de gases. 1N Por motivos de seguridad nacional interesa controlar el plutonio de que se provee una central nuclear, este control se refiere a la cantidad de plutonio que compra a cada uno de sus posibles suministradores, (nombre y país), y que porta un determinado transportista (nombre y matrícula), ha de tenerse en cuenta que el mismo suministrador puede vender plutonio a distintas centrales nucleares y que cada porte, (un único porte por compra), puede realizarlo un transportista diferente. Figura 1.17 En la solución obtenida, hay ciclos. pero no son sClnánticaJuentc equivalentes. SUPUES'fOS SEMÁNTICOS COMPLEMENTARIOS y SEMÁNTICA NO REFLEJADA • Se ha supuesto quc no hay más participantes que árbitros y jugadores. No se ha podido reflejar: • • • • • Un árbitro no puede arbitrar partidas en las que participen jugadores de su mismo • 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 número de movimiento dentro de cada partida. Una red de distribución se identifica por un número de red y sólo puede tener una estación primaria como cabecera. La propiedad de una red puede ser compartida por varias compañías eléctricas, a cada compañía eléctrica se le identifica por su nombre, La energía sobrante en una de las redes puede enviarse a otra red. Se registra el volumen total de energía intercambiada entre dos redes . Una red está compuesta por una serie de líneas, cada línea se identifica por un número secuencial dentro del número de red y tiene una determinada longitud. La menor de las líneas posibles abastecerá al menos a dos subestaciones. del código de partida. Sccucncialidad Cada día, los productores entregan la energía producida a una o varias estaciones primarias, las cuales pueden recibir diariamente una cantidad distinta de energía de cada uno de estos productores. Los productores entregan siempre el total de su producción. Las estaciones primarias se identifican por su nombre y tienen un número de transformadores de baja a alta t nsión y son cabecera de una o varias redes de e distribución •
  • 23. 32 Una subestación es abastecida sólo por una línea y distribuye a una o varias zonas de servicio. a tales efectos, las provincias (código y nombre). se e ncuentran divididas cn tales zonas de servicio, aunque no puede haber zonas de servicio que pertenezcan a más de una provincia. Cada zona de servicio puede ser atendida por más de una subestucién. En cada zona de servicio se desea registrar el consumo medio y el número de consumidores finales de cada una de las siguientes categorías: particulares, empresas e insti luciones, Discusión del enunciado PARTE I .. ¡';_ti,I'I('/I prnductorcs lnisicos ell' electricidad qlle St' identifican p ar 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. Ve 1111/11/11'1'. . uuu 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' ,I/II/I'/jich' /II/a/ de 11(1111'/1'.1' soiares. la media (//111111 hnras de ,1'(11 la de Y tipo ((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 v e/ lit' rrsiduos nucleares qu« produce. De IlIla central térmica, nos interesa saber el IIlílllero de hornos que posee. e/ 1'011l1l1ell carbán CIIIISII/nitl(/ )' de 1'0/11/11('" ".1'11 ('I/';I'IIÍ" de 811('.1', CAPíTULO 1: DISEÑO CONCEPTUAL: MODELO EJR ()1lA,MA DISEÑO I>E IlASI,S DE DA rOS, PROBL.RMAS RESUELTOS 1~ La lectura de este párrafo nos obliga a introducir dos nuevas entidades SUMINISTRADOR y TRANSPORT1S1'A, De los atributos de cualquiera de Las dos entidades se puede considerar el "Nombre" como identificador principal, pues como DO se nos dice nada en contra podemos suponer que éste es único, Las centrales nucleares compran plutonio a s ministradores, u el cual es transportado por distintos transportistas, Esta frase nos induce a pensar en la posibilidad de introducir una interrelación t rnaria Compra entre las entidades e NUCLEAR, SUMINISTRADOR Y TRANSPORTIS7'A, Pasemos a analizar la s cardinalidades de los tipos de entidad que intervienen: 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 varias centrales nucleares (cardinalidad máxima 1/) y como mínimo a una, pues si no suministraran a ninguna esa ocurrencia no int rvendría en la interrelación. Por último, e 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 vari s o suministradores, por lo que las cardinalidades rnínima y máxima respectivamente de esta interrelación en el extremo de la entidad SUMINIS7'RADOR son 1 y 11. N:M 11,11) ,..--------, NIICI I:AR el .. PIUllll"" En este primer párrafo se ide ntifica inicialmente el tipo de entidad PR()IJUC7'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 ser de 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 los atributos de cada uno de los subtipos es de interés mencionar el atributo "Tipo" del subtipo S()LAR. este atributo estará definido sobre un dominio compuesto por los valores -cfotovoltaica, termodinámica>, de manera que no podrá tornar ningún otro valor. no tiene la suficiente entidad para considerarle corno atributo discriminante de una jerarquía. "1'111' niotivos de .1/fgllJ'iclllellllll'illllllll/llert.iSII qu« pou« 1'11 ,'l/t'I/(1I (1 ('(11/(( L'/ 11';.1'/11(/ suministrador [nombre (1 111cantidad .v matricula}, Ita di' puede vender plutonio v que cada porte. (1In único porte 1111 relll vportlstu di/ere lile, .. / 1'1'1111'1111',1 ,/,'are.l' IIII, n« di, 1111" 1',1(1' ('(111/1'111 refiere Si' 1111 dc!I('r"';IIII1/11II'II/I.I'(/I/I'/i,w(/ 1/"1' el /111110/1;0 ele que .1'1' de 1'/111011;1/ 11110 de ,~II, posihles suministradores, (/111111/)/,1' y (/111.1'), Y 1//111'('(' 111111/'I'II/I'IIIIII/('/('(/r, "111' ('II/I//,/'a controlar 1('111'1'.1'(' distintos ()or compra), puede ti ( 1.11) TRANSPORTISTA 11.11) SIJMINIS'I'KADOR FiRU/,(/ /,/8 El enunciado nos dice que d ebernos controlar la cantidad de plutonio comprada por una central nuclear, por tanto esta cantidad debe ser un atributo propio de la interrelación ternaria, Además parece" claro, aunque no lo diga explícitamente e l enunciado, que ca central nuclear puede comprar cantidades distintas o ig da uales en ••••••••••••••••••••••• •••••••••••••••••••••••
  • 24. ~ •••••••••••••••••••••• ••••••••••••••••••••••• . 34 - CAPITULO 1: DISENO CONCUPTUAL: MODELO ElR ORA,"'. () MII·MII .15 DIS¡¿ÑO Dh fiASES DE DATOS: PROBLEMAS RESUELTOS distintas fechas, luego se debe introducir un atributo multivaluado "Fecha" en la misma interrelación, Corno siempre que nos enfrentamos ante in~errelacio~l,CS ternar,i,a~:de?en;~~ hacer un análisis para ver si podemos descolnponer la interrelación tcrnuna en ~Inallas como se 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?rtlsta ha realizado el porte de una determinada compra), No obstante las curdln,lltdades n:áxirna~ de los tipos de entidad i~vol~cr~dos en la interrelació~ ternaria~sa~<;í corno los atributos 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. , En es le párrafo se introduce una nueva entidad ESTACI6N PRIMARIA que se relaciona con PRODUCTOR a través de la interrelación Entrega. puesto que los productores deben entregar la energía producida a las estaciones primarias. Además las cantidades se entregan diariamente y pueden ser distintas. por lo que la interrelación Entrega debe tener dos atributos "Cantidad" y "Fecha". este último multivaluado. pues cada productor puede entregar cantidades distintas o iguales a una misma estación primaria en distintas fechas. En cuanto a las cardinalidades mínima y máxima de esta interrelación en el extremo de la entidad ES7'ACI()N PRIMARIA el enunciado nos dice que deben ser I y 11 respectivamente. Cada estación puede recibir energía de varios productores. lo cual nos indica que la cardinalidad máxima en el extremo de PRODUCTOR es 11, en cambio, en cuanto a la cardinalidad mínima, si suponemos que toda estación debe recibir la producción de al menos un productor. la cardinalidad mínima será l, si por el contrario suponemos que puede darse el caso de que en una estación primaria no reciba energía de ningún productor en una fecha determinada, la cardinalidad mínima sería O. Nosotros hemos optado por esta última suposición en el intento de reflejar el caso más genera 1. , 111.1 I 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 se supone único, el segundo debe almacenar ,,1 número de transformadores en el rango de baja a alta tensión, ll·RMI( t ..UII(I red de distrtbuciún ire' RC.K,:'tuOi Rl"iUUi flullllll" (',11 ""O I".tn,.~c.;a...c'" 1,,, I ·1RANSI'ORTISTA • Nt)nlhrc lI.nl SlIMINI!>' RAIX)R Figura 1.19 I)AR1'1~ 2 ..Cndu tifo, los proclllC'/ort',1 C'lI/l'e1!tllI /a ('lIerRftJ , ('SIClCIIIIII!. rima rias ICI~ (,1I1I/¡'~ IJII(·tll'lI recibir p ' , ,o" , IlflJ/~II(,;clCI (1 111111(1 V(I!íClS diariamente 1"'(' ,. ",""1"" ,"1'114" tlt' ti; vu ihucián. r' Cada estación primaria es cabecera de una o varias redes de distribución, por lo que debernos introducir un nuevo tipo de entidad RED que se interrelaciona con , ESTAC/ON PRIMARIA mediante la interrelación Cabecera. Cada estación primaria es cabecera de una o varias redes de distribución, por lo que es claro que las cardinalidades mínima y máxima de la interrelación en el extremo del tipo de entidad RED serán 1 y n respectivamente, Por otro lado cada red sólo puede tener una estación primaria como cabecera, lo que nos indica que la cardinalidad máxima de la interrelación en el extremo de este tipo de entidad es l. y por tanto la correspondencia sera I :N. Si suponemos que una red puede no tener ninguna cabecera. considcrarfamos la cardinalidad mínima del tipo de entidad ES7'A.C/6N PRIMARIA O. si por el contrario suponemos que toda red debe tener corno cabecera a al menos una estación prirnuria, la cardinalidad mínima sería 1, Nosotros hemos optado por esto último. 1/110 1'(IIIt/dad • disnnta de cado UII() ele e,IO~ productores. Los ~r(IlI~I('IOft'S('/lIr~'R~"1siempre el /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 I1l1JCI (//1(/ tension v SOIl el , " ,f,- CO/110 puede cabecera. Lo propiedad de 11/1(1 red puede ser compartida pOI' varias compañias eléctricas, o cada rompañta eléctrica. se le identifica por SlIlIo/II1Jre, .. N.M:I' .t. tener una cstacián primaria se identlfir« por 1111 III¡/I/ero de red y ,lCi/o último. debernos introducir UII nuevo tipo de entidad C'()MPAÑIA ELÉC7 RIC'A. para reflejar que toda red debe ser propiedad de al menos una compañía eléctrica y lo reflejaremos a través de la interrelación Pertenece. cuyo tipo de Por
  • 25. ...:(.:.;'''I'I ULO 1: DISEÑO rONCIiI'TlJAL: ]1101>1'1.0 EIR r ~O:..::R::.:/I..;;M:.:;A~ 1(, I>ISI 0:01>1' II,'<;I'S 1)1' II¡TOS: I'ROIIII:M¡<; 31 RI'SlIFI.TOS ,Ollas de servicio que pertenezcan {/ mds de una provincia, Cada "Olla de correspondencia es N:M, pues una compañía eléctrica puede compartir la propiedad de varias redes. Además suponernos que al menos cualquier compañía es propietaria de al menos una red. "1'// 1"Ierglit sohrante en /11111e las redes /IIII'tll' d registra ('/1'01111/1('/1 /(//01 ¡f(, cncrgu: interccnnbind« cuviurse 1.'/1/1"1' servicio puede ser atendida por más de I/lla suhestacián. .. ..EII rada :'0/111 de de consumidores [inules 11 otru rrt] SI' panicuiares. dos rnlc», .. Este párrulu 110S indica la necesidad de in troducir una int rrelación reflexiva e Envía en el tipo de entidad I<El), En principio, si una red dispone de excedente de energí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 10 que debernos introducir un atributo "Volumen" en la interrelación Envía. 1 diferencia de lo que sucedía en la interrelación l~ntrl'g;1en la que era preciso iutroducir el a tributo multivaluado "Fecha" para diferenc iar entre diferentes entregas, en este caso, el atributo "Volumen" tiene carácter acumulativo, por lo que no es preciso diferenciar 10:-' <.1 ilc rentes envíos de energía entre redes, servicio desea 1('Mi~/,or el ('OIISIIIIIO medio v I'III/;I/f(!/'o de ctulu 11110 de las .fiJ(IIIt'II/es categorias: ,1(' I'/ll{)/'("'CI' I! ;11.1'///1/('/(1//('1, .. En estu última parle se pueden distinguir claramente cuatro tipos de entidades rmis tiuu«. SUBESTAC.'I()N, ZONA y IJI<OVINCIA, LINl::;A será un tipo de entidad débil con respecto a RElJ, pues una línea existe en función de que exista la red que la incluye, l.a interrelación Compone entre estos dos tipos de entidades será de de.pendencia en identificación, p ues parece claro que el identificador p rincipal de LINEA está constituido por un número Il1ás el número de red en el que se incluye la línca: el tipo de co rrespondencia 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 (cardinalidad mínima 1). L._,,;;;.:;:. __ .t...... MI " W«I Todo lo expuesto en esta parte queda reflejado en la figura 1,20, ... " "UI JI N t 1,111 r,.!::=::::!= =i1.--.J-o II,n. , .. N 11I'~' Ii! 1""-11 NI ~ f I.n. .,----- ....,1 11.' r L.r'~Ji!'''''''''R'''''e=-'' CII1PANIA .. - '''''''''' Figura 1.20 PAR'rE 3 I 'III"~ ~::·~·:~~'"iC1J,I ... " "/11111 red (',lItÍ ('IIIII{I/('S/(/ 1111 ¡";"/I'¡O IIII/gi/I/d, ('411.' ...... · '[ " serie de lineus. rudu ltnea le iC/('/I/ifll'l/ por ,('/'//('/u'ial dentro del 11/;1111'1'0 de red v /11.'/1(' 1111(/ dotermintula {.(/ 11/('''0), IJI'" de 10.1 /1111/ I(,,('OS posihles IIhIlS/('C'I'I'/; al 1111'/111, (/ e 1.. 11.'1 I I ,111 dos /flN II/h/'I/IU /I/III'S. " hncu .1' II/I/IIIII/'(' a /1/1(/ (/ di' .11''''/1';0, (/ /0/(' t~/¡'(/()I,/11,1 provinclav (cfÍdigll" nomhre), se dividula» 1'/1 talr» ;(JII(/~ de sorvicio. 111/111/'"' /11/ {I/'I'de hube .. {/IIO I//lI'I'/IU 1'1/111" ;(/11(/' "111111'/1/1'111/ >11.11" ián C' 1/"111/('( 11111 .ltÍlo 1"" l' 11 /11111 • 1,¡,,'lIlI 1,21 ••••••••••••••••••••••••••••••••••••••••••• ••••
  • 26. ••••••••••••••••••••••• ••••••••••••••••••••••• 311 D IS E ÑU 01; 11AS 1;S DI: 1> A'I~'(!:;lS,,-: B:!.!L~E~·"'::.:l U:!.!E;!;L:..:T.:..:():::.S ~rl{~(~) A~S::...R~¡.;~:S.!!·· , CAPITULO ORA·MA 1: DISEÑO CONcevruAL: MODELO EIR 39 __.;.':..:;K::.!II~~~'A , 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 al menos dos subcstacioncs (principio y fin). por tanto las cardinalidades mínima y má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 que indica 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. '.N 11.1 O. ., NIl' ... ", '" , " l'•. ~ ....... , Aunque no se nos dice nada al respecto. debemos suponer un atributo "Número , de Suhestación" corno identificador principal de la entidad SUBESTACION. rMJtr-50PURT' I t l''''f A ) 1I---jQ N 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. con tipo de correspondencia N:M, pues cada zona de servicio puede ser atendida por más de una subcstación. Las cardinalidades mínimas y máximas de esta interrelación en cada uno de sus senridos ~0f1 respectivamente I Y 11. ,." +' 1::.:'·::..' ---< ,,'1ft ljftCa .IJl1 Id UrIC'''' ~lJML'III.sTRAIX)K tu.! ) '·N (],nl Ilntl~Url(~llJ" 1,1111"'11 1';III.."III(r, (',111,)1'''1 I ,.1. 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 atributo tornará varios valores (17 instituciones. 400.000 particulares y 35 empresas. por ejemplo). por lo qué lo se podría definir como multivaluado. sin embargo, dado que siempre tomani tres valores, una alternativa más simple es considerarlo corno un atributo cornpuesto. Además se debe introducir un nuevo atributo "Cód Zona" C0l110 identificador principal de la entidad ZONA. I ~l ." • Il)N,I r'igurcl 1.22 SUPUESTOS REFLEJADA SEMÁNTICOS COMl>t.RMENT ARIOS y SEMÁNTICA NO Cerno último punto. el enunciado nos dice que las provincias están divididas en zonas de servicio. esto significa que debemos introducir una nueva interrelación Se Divide entre las entidades ZONA Y PROVINCIA. Cada zona de servicio corresponde a una única provincia. pero cada provincia será dividida en varias zonas. por lo que el tipo de correspondencia será I:N. • Se ha supuesto que una estación primaria puede no recibir energía de ningún productor. • Se ha supuesto que el atributo "Transformadores" del tipo de entidad ESTACIÓN PRIMARIA es un atributo multivaluado que recoge todos los posibles tipos de transformadores de cada estación. Todo lo analizado en esta parte aparece representado en la figura 1.21 (ver figura • Se ha supuesto que toda red debe tener como cabecera al menos a una estación primaria. • Se ha supuesto que toda compañía eléctrica debe ser propietaria de al menos una red. • Se ha supuesto que cada red debe estar compuesta de al menos una línea. en la página anterior). Propuesta de solución La rigura 1.22 agrupa las soluciones parciales anteriores. No se puede recoger el siguiente supuesto seruántico: • Que la energía sobrante de una red no se envíe a sí misma. , •
  • 27. ~('~;I'ITIILO 1: DISEÑO CON('hP1'lJAL: MODEl.O FJR -1 I ~O~MA:;:.;:.!M.::..A -lO nlSLNO 1>11I/"ES DE I)¡ lOS' "ROIII.EMflS RI·.SlIl:I.TOS , PROBLEMA 5: CONFLICTOS BELICOS Enunciado Una organizaci6n internacional pretende realizar un segnill/icntCl de los conflictos bélicos que se ploduccn en todo el mundo. Para ello creará una SD que responderá al siguiente análisis: Se entiende por conflicto cualquier lucha afinada que afecte a uno o varios países y en cl cual se produzcan muertos y/o heridos. Todo conflicto se identilicará po~ un nombre 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 B D cada 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 de muertos y heridos contabi 1 izados hasta elll10lncnto. Los clIlllictos 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 o raciales, 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 religiones afectadas. en l()~ econótnicos las materias primas disputadas y en los raciales las etnias suministrar. Se mantiene el número total de armas de cada uno de los diferentes tipos de armas suministrado por cada traficante a cada grupo armado. Los líderes políticos se identifican por su nombre y por el código de grupo armado que lideran. Además se recoge una descripción textual de los apoyos que éste posee. 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 le identifica por un código, además se recoge el rango que éste posee, y dado que un jefe militar 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 jefe pertenece. se registrará el líder político al que obedece. 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 cada conflicto y el tipo de ayuda que presta en cada conflicto que será de uno y sólo uno de los tres tipos siguientes, médica. diplomática o presencial. Con diversos fines, los líderes polfticos dialogan con las organizaciones: se desea recoger explícitamente esta información. As! para cada líder se recogerán aquellas organizaciones con que dialoga y viceversa. enfrentada .., En los conflictos intervienen diversos grupos armados (al menos dos) y diversas organizaciones mediadoras (podría no haber ninguna). Los mismos grupos armados y organizaciones Inediadoras pueden intervenir en diferentes conflictos. 'ratito los gr~pos annados COI no las organizaciones mediadoras podrán entrar y salir del conflicto. en ambos casos se recogerá tanto la fecha de incorporación como la fecha de salida. l'enlporalmente, tanto un grupo armado corno una organización mediadora podrían no intervenir en conflicto alguno. De cada grupo armado se recoge el código que se le asigna y un nombre. Cada grupo armado dispone de al menos una división y es liderado por al menos un líder político. Las divisiones de que dispone un grupo arn~ado se numeran cOllseclllÍvéllnente Y se registra el número de barcos. tanques, aviones y hombres de que dispone. asitnislno se recoge el número de bajas que ~léltenido., Para los grupos armados se recoge el número de bujus corno suma de las haJas producidas en todas sus di visil )lles. I.()~uaficantcs de urmas sutninistrun diferentes tipos de afina a los grupos unnudos. De cada tipo de armas se recoge un nombre y un indicador tic su capacidad de~trucliv¡¡. De cada lruficantC se recoge un nombre. los diferentes tipos de arma que puede suministrar y cantidad de armas de cada uno de lo" tipos de arma que podría Discusién del enunciado PARTE I "Se entiende por co/~/lit't(Jcualquier lucha armada que afec:« (1 UI/O () "lirios paises y en el cual se produzcan muertos y/o heridos. Todo conflicto se identificará por UII IU/II/hreque habitualmente hará referencia a la zona o C{!II.~a provoca el conflicto. aunque dado que este nombre puede cambiar que con el paso del tiempo, dentro tic la BD cada conflicto se identificará mediante 1111 código numérico sin significado alguno. Para cada conflicto se desea recoger los países a que afecta. así como el luÍ/nero de muertos v heridos contubilitiulos has/a el JlIO/Ilt'I/lO. .. _ 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 entidad que se identifica por un código numérico que üamaremos "Código", aunque en un principio podríamos pensar en el atributo "Nombre" corno AIP. En el enunciado se nos aclara que se prefiere un código numérico para identificar cada conflicto, ya que asr se asegura su invariabilidad, por lo que el "Nombre" sería íderuificador alternativo. • •••••••••••••••••••••••••••••••• •••••••••••••••
  • 28. • •••••••••••••••••••••• 42 DISHÑO DE BASES DE DATOS: PROBLEMAS RESUELTOS Como un conflicto puede afectar a varios países se podrían considerar dos posibilidades de modelado: , • • Pensar en PAIS corno un tipo de entidad que se relaciona con CONFLICTO mediante la interrelación denominada Afectar. Representar "País" como un atributo rnultivaluado. Si se siguen leyendo las especificaciones del problema se observará que no se vuelve a mencionar ninguna característica de país y por lo tanto se puede concluir que no 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 entidad CONFLICtO, cuyo valor por defecto sería cero. ..Los conflictos pueden ser de distintos tipos según la calisa que lo ha originado. clasificándose, a (o sumo, en cuatro grupos: territoriales. religiosos, econániicos o ru cia les, ('11 cada LI/IO de es/os grupo» SI! recogerán diversos da/os. El/ (os conflictos territoriales se recogerán (as regiones afectadas. el/ los religiosos (as religiones afectadas, en (os econámicos (as materias primas disputadas y el/ los raciales (as etnias enfrentadas. .. En el segundo párrafo se presenta una clasificación de los conflictos en varios tipos, consideraremos esta clasificación como una jerarquía total y exclusiva. El supertipo será la entidad C'ONFLICTO, mientras que los subtipos serán las entidades TERRIT()RIAL. REI,IC;IC)SC), F.C'()NC)MICO y RACIAL. Estos subtipos tendrán los atributos 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án en cada caso lus regiones, religiones, materias primas o etnias afectadas en dicho conflicto. ••••••••••••••••••••••• CAPíTULO l: DISEÑO CONCEPTUAL: MODELO EJR ~.~ ORA·MA PARTE 2 "EIl los conflictos imervienen diversos grupos armados (al menos dos) .1' diversas organizaciones mediadoras (podrta no haber lIinglllla). Los mismos grllp<ls armados y organitaciones mediadoras pueden intervenir ell diferentes conflictos. Tonto los grupos armados las organizaciones medindoras 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 no COIIIO intervenir e" cOl/flicltl alguno ... Como se indica en el texto, en los conflictos pueden intervenir, además de los grupos armados, organizaciones mediadoras. los cuales se considerarán como tipos de entidad que se interrelacionan con "Conflicto" . 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 de salida en los conflictos de los grupos armados y las organizaciones mediadoras, , respectivamente. Se puede observar que las fechas de fin de las intervenciones, tanto de los grupos armados corno de las organizaciones, son atributos opcionales. ya que puede darse el caso de no haber acabado COII la intervención. Para contemplar el hecho de que tanto un (jRUP() ARMAI)O como una , ORGANIZACION pueden no participar en un conflicto de forma temporal, pondremos la cardinalidad rnínima de ambas a cero. La cardinalidad máxima será 11 en las dos entidades. También se indica en el texto que en un conflicto participan al rnenos dos grupos armados. con lo que la cardinalidad mínima de CONFLICTO en la interrelación Interviene es de 2 y la máxima de 11. El esquema de la figura 1.23 refleja las consideraciones anteriores. Las cardinalidades de CONFLlcro en la interrelación Media son O para la mínima. ya que en las especificaciones se expone que puede haber conflictos en los que no participe ninguna organización, y 11 porque no existe limitación en el número de organizaciones que intervienen en un conflicto . ..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 al menos 1111 lider politico. Las divisiones de que dispone UII grupo armado se numeran consecutivamente y se registm el número de barcos, tanques, ~"'_"Mrf 111 .... aviones y hombres de que dispone, usimismo se recoge el número de bajas que I/(I tenido, Para los grupos armados se recoge el númera de bajas como SI/lila ~. 1'11'" I I;¡gll ra t.:3 1,..,.. de las bajas producidas 1'11 todas SII,I' divisiones. .. El tipo de entidad CHUP() ARMA/J() se identificará por un "Código", el "Nombrc", suponiendo que este es único, será un atributo alternativo y los líderes políticos se podrían considerar corno un atributo multivaluado, pero si leernos el problema hasta •
  • 29. .:;n:.::M.::.'..::'I~I ~~ IlISI'NOIlI, 1, 1) 1), lOS Il¡SES I'i{OB!._1 :.:E~M::.:fI~:-'....:.K::.I::.:;,S:.:.l:.:.IE::.;I.:..:.T.:..:()::..:S 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 se tiene 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 I la mínima y " la máxima :-i se considerara que ,,610 querernos en la BO aquellos líderes que se relacionen con algún grupo armado. COI no es el caso. Por otro lado. detectamos la entidad déhil /JIV/S/()N que depende en idcnt ificación de (jI? Ul't) 1 I?MA[)( J, es decir, cada ejemplar de f J/ V/SI()N se identifica 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 que debernos especificar 11 efectos de una posterior implementación), Todos los atributos que posee la entidad I)IVISI(JN son ohligatoriox. aparezca el número de bajas por cada división. en el enunciado se especitica que uunbién se desea conocer el número de bajas en total para cada grupo armado. y para reflejarlo consideraremos un atributo derivado (que se indica en la figura 1.24 COI' 1) 1) en 1:1 entidad CUUPO ARMA/)(), 1,,:.1figura 1.24 muestra el esquema correspondiente a los supuestos anteriores, -.'l(t.'Irr,II/C -15 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, 101 dijercntes tipos de (11'111/1 qn« (/lIt'd,' vununistrut r ((lI//Ic/IIC/ di' /11'/1/(/.1 de cada 111111 de los tipos de armu 11'1(' podrta vuministrar. Si' mantiene el número total de lIr/lI(l~ de cado 111/0 de 10,1diferente tipos ele annas suministrado por cada truticunte /1 cada 1(1'11(111 rnuuln. '. n "Lo,1 trnjicautes En la frase "Los traficantes de afinas suministran diferentes tipos de arma a los grupos 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ón ternaria, Para hallar las cardinalidades fijamos dos entidades y vernos COI1 cuántos ejemplares de la otra entidad está relacionado, por ejemplo, fijamos las entidades GRUP() ARMA/)() y 'tIPO I)E ARMA, lo que significa que para un determinado grupo 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 de arma puede suministrárxclu ti varios grupo» armados (cardinalidad (O.n) que reflejaría las 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 Suministra considera únicamente los sumi nistros cfcct ivos, por lo que su cardinal idad es ( l.n). 14" fl.a1.1...l . , ... __:C~.APiTULO DISf.ÑO CONCEPTUAL: MODEl.O FJR 1: PARTE 3 ')!t!!¡' t .~ " __ _ el final se comprobará que se necesita corno tipo de entidad. ya que se relaciona con más entidades. Aunque _:_ f ,,1., ti.", tiRITO AKllrXl III~> ,R,l¡ 1..... f_, Alllla.. 1I ltl "' ni t4.,11 1:.nl N,M "U'III'U ..1t,1 N ~11) .'t,1fIi (l,") 11,111 " I KAH('AN 1b , I III Figur« 1,25 Figura 1,24 Esta interrelación ternaria tendrá un atributo. "N° Armas", que indicará la curuidad de, armas suministradas de cada tiPll por un suministrudor a los distintos grupos •••••••••••••••••••••••••••••••••••••••••••••••
  • 30. ••••••••••••••••••••••• ••••••••••••••••••••••• ~(> DISI:ÑO (lE IlASI'.S 1)1' DATOS: PROBLEMAS ReSlIELTOS armados. Este atributo nos da una pista sobre la no utilización de interrelaciones binarias en lugar de la anterior interrelación ternaria para considerar este supuesto. ya que no serían semánticamente equivalentes, Como identificadores principales de las dos nuevas entidades. TRA/:ICANTE y 7'IP() ARMA. se tendrán los nombres. suponiendo que éstos son únicos. Además, en la entidad 7'JP() ARMA se tendrá otro atributo "Indicador" que informará de la capacidad destructiva de cada ejemplar de dic a entidad. y que se supone un valo ohhgutorio. h r C'¡P(TlJI.O 1: DISeÑO CONCEPTUAL: MODELO E/R ORA·MA 47 Siguiendo con el estudio de cardinalidades la interrelación Obedece, que asocia las entidades JEFE MILITAR Y LíDER POLíTICO, tendremos (1,1) para JEf-E MILITAR, ya que siempre obedece órdenes de UI1 Ifdcr político y (O,n) para el otro tipo de 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. (1,1, I I --o O.Ap"Y'" Nr.lll~r:~t--l:,;~;;;;;;;;;~ C,.h~" I.N . I 1r>F.R POLlT Para reflejar el tipo de arruas que posee cada traficante y qué cantidad Puede Suministrar (es decir, su stock) sc creará una interrelación binaria entre estos dos tipos de entidad y se indicará con un atributo, "Ex. Arma' en dicha interrelación, la información sobre el stock de cada traficante. La scmánt ica anterior se refleja en la figura 1,25 (ver figura en la página actual), (1,11' PAR'rl~ 4 , 1.1 I I'N (l .n) "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 . (/1/(' ('SIl' 1/(1,11'(', ).!0!,1GRUPO ARMADO Ihj",( JEFE MII.ITAR .. r--_~(I,II ( 1,1) Estc párrafo es e que confirma la existencia del tipo de entidad Lfl)ER l rouitco. Pero adcmús, se añade que este tipo de entidad es débil respecto a la entidad 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. I.N N l)ay "Cada divisuin 111 I,,((.!e/('II dirigir conjuntamente 1111 máximo de tres jeJe,f militares. aunque cada jefe mtlitur no dirige más de una division. A cada jefe ,..------- IN militar 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 que siempre obedece [(1,1 árdenes de UII único líder político de entre aquellos que lideran al grul'(I Orillado al que el jefe pertenece, se registrará el líder nolitic» al (/U<' obedece. " Aparece un nuevo tipo de entidad JE/7E MILITAR Y dos 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, La entidad .IEFf: MILI7AR tiene corno AIP un "Código" y un atributo obligatorio "Rango" , Las cardinalidades asociadas a J ¡':;I"L~ MI LI7iR 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 jefes militares. 0-11;=====' Id 1 )1'100 I.'=="==:::;-¡ DIVISiÓN U.I' ...( .... Avil)IK: T.,nquc~ HClIIJbn.'" Figura /.26 PARTES "De las organizaciones mediadoras le recogerá su código. tipo igubernumental, Sil nombre, Sil gubernameuta! o internacional). la orgunizacián de que depende (1111(1 COJIIO JII1Íxi,IlO), el IlIíl1lerO de personas que mantiene desplegadas en cada couflicto y el tipo de ayuda que presta el! cada conflicto que será de 11/10 y ,(510 111If) de 10.( tres tipos siguientes, médica, dipltnnática o IIt'esellcial. 110 " En este párrafo se indican los atributos de la entidad O/?C,ANIZACIÓN, el AIP será "Código", un atributo alternativo "Nombre" y un atributo "Tipo" cuyos valores pueden ser gubernamental. no gubernamental o internacional. Este ÚltiIT10atributo se podrla haber pensado como una clasificación de ()RGANIZAC/()N. es decir tina
  • 31. (' KA M" ~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 • -IX IlISEÑOI)I' IlISI;_<; IlE nATOS. "ROBI I·.MAS RESUEI ros jerarquía. pero se puede prescindir de ella ya que los subtipos ni tienen atributos . propios ni se relacionan con otras entidades. con lo que se recoge la misma semántica definiendo un dominio para este alrihuto. •, Propuesta de solución Agrupamos las distintas soluciones parciales obtenidas en la figura 1.28. ,N aparece en el texto que una organ izución puede depender de otra, se rcndra en el CSqUCI11U una interrelaci6n rcücxivu, Depende. cuyas caruinalidaocs son (0, 1) para representar este hecho y (ü.n) para recoger que una orgunizac ión puede representar a cero o varias organi7aciones. C0l110 ,1 11 Id I ¡J.-¡ ,, '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 el tipo de ayuda que se definirá dentro de un dominio cuyos valores serán los tipos de " ayuda expuestos en el párrafo. El que dentro de un ¡;ontlicto una organiza¡;ión sólo pueda prestar un tipo de ayuda. Silllplirica la solución. Una hipótesis ITlÚS general supondría bien tener que introducir un atributo 111l1ltivaluauo. bien añadir una nueva entidad y proJllocionar la il1terrelal.:ilÍlI Media a un gradll superior a dtl~. "('011 cI¡'.'¡'o div ('I'lIS );11('.'. rc« o,l:('r I¡'¡'''/o:('/I;I/ ( ......... ( ...t, t". 1111 tidcn: (!l/llíci/(/I/J('/I/t' 1111"(,11<1 ol'g¡lIl1:a( IloIÍli('o., ¡·,/a dil/logo/l II/{onl/ar;fÍ/I. /1111<" ('011 CO/l 111., l'/oIIIII/:lIC/lll1t": O A ,í 11(1111 cad« lidl'" 11"t! dialoga ' d( ('I'(·"a 1>, '. 11 ,.11, 11",lo( " tC •• " •..t•• (.101."1'(1 ,I<~t.I)() R••,:... ," • 1.1 I 1I 111 II t "1), II (",JI 111 , , kl(',,' SI! lit ... .,¡. 1'.... 1 , ., .. v...... , ~ . ,,,,. Para recoger que los Hdcrcs políticos pueden mantener conversaciones con las orguni7.aciones mediadoras Y vi eversa, crearemos c una nu eva interrelación para cOlnpletar el esquema, que se muestra en la figura 1.27. tlr.1 M"" .. ,u'" 1"... •I rt' lMiIKAklt- IN Figura 1.28 111.1 NM h' 1 ,,'~I tltn. II ctl.n) No es difícil determinar que los ciclos producidos equivalentes. por lo que no SI! tiene redundancia. no son semánticamente SUPUESTOS SEMÁNTICOS COMPI ,E l1ENT ARIOS y SEMÁNTICA NO REFLEJADA n) • I N Secuencialidad del número de divi'lión oc un grupo armado . PROBLEMA 6: (;ESTIÓN DE NÓMINAS Enunciado 1:¡XllltI 1.17 Una empresa decide informaii/ar su nómina. Del resultado del análisi« realizado. se obtlcncn la" siauicntcs informaciones: - ••••••••••••••••••••••••• ••••••••••••••••••••••
  • 32. ~ •••••••••••••••••••• •••••••••••••••••••••••••• I( i}1~1:..¡) 1I,,">I'.~ 1J, 11)">I'I« llll.!:~ ~ 1<1"H IO::.~ I JI 1)1' ILI __ I, 11e1110en que UI1 empleado pierda Sil condicié» de perceptor de nomi na. se iinarín cl corrcxpoiulicntc eje plar d la entidad EM/'LEA/)(). m e El inconvcrucute c:-. se perdería la inluunución de 10:-' empleados que ya 110 l'"iÍn en activo. ()tra., mauvas povihlex ... mcluit un atl ibuto de l·:-.Iado (¡II.:li1I 1) (10). c)II,ldl'ral umbo .. 011. IS de empleados corno parle de una jerarquía (11:empleados. 11 bien 1~lalltcllcl una paralela con ..inulur e... uucuu a qUl' CI1I1 ten)!a la illrOn11a<.:iúll referente ,1 1<1' picado, dado, de haju, La entidad t'¡ l11jidala /1//:') ,e ha deducido I tic la inlormación que diclalllina 1" iodicidud de recepción de lo-, ju ...ilicantl'" de nomina. !Iín es prellt;.ll~r() e ...uhlcccr t r tratamiento de la id mcnxión temporal. pero la inclusión d una entidad para lo!'> e 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 ... e le tan sólo de U I1atributo de cxtu entidad. .. 1 I __ ('I'IIIIIC'!__!?II':>'_(I('(IN< 1I'II,I..r.I()l)I·.l.lJl:J~ 5' . "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 único ulcntificadru principa l. Se trata por turno de un a tnbutu com puesto u patir de lo., r ,llllhlllO ..."Bunco". "Sucursal" y "Número de ('IICnl,,". P(ldna pl'lI.,ar,e que "Departamento" "'C trutu de 1111 atributo multivaluado. xin l'lllh.lr!!1l ~o e a.,í. darlo que. 111anICndrí~~una relación N:tvl con F.MPLEAI)(). lo que nu ¡; posible. ya que 10' arributos mulrivaluadov maruicncn una relación I:N con la cuud.ul a la que pertenece». Además, en el ...iguicnic pún afo del enunciado. se dan prnpicdadc-, adicionales de los depanamcmos. por lo que definitivamente se trata de 1111,' cntidnd C(l11 iuformación pr pia. o 1)/:'/'AR'fiM/:NT(J tiene una interrelación N:M (Trabaja) con EM{-'LEA/)O' l' 1 1Inc ion" 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 el nu-mo empleado pudiera trabajar I:'M /'/.1-:1 1)( J ) lnliuade~ ' 11I.ís l'inucs tan sólo pueden couxidcruo-c l'OIIlP tale ... su[vu N()MIN/. [)e 11111111CI1til S<.: reconocen I'OIlIl) -srtncwm: tn: 1.' xe (Iponga alguna inlununción Hu este párrafo poxrerior. 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í llna n c ...a inl<.:rrcla<.:ión l'S linO .... in 'n1hargn, por cOlloci!llicntll t u d!I11inl{l tic dl~<':UI' el hcn10S que un clllplt'ado rccién Clll1lt atado no recihiriÍ ha:-.la .fina.I!!:--de ... 1.pl'llllCI !lIC' 1 , trahajo llillg.Úl1 ju:-.liricallle dc 1lIlIl1in,I. pl1r lo que e:;la cardInalIdad Il1lnlll:I c:-. .ccrll 1 cuanto a la cardinalidad l1"Iil1a, .'n prl cipiu no se atinna nada. pcro ,upo l n nlclldll C~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' nuesro co l nOCImiento acerca d<.:1dOn111l1l1 dl scurso. No parece lóg.ico que 'urins c lpleados n recihan el lui!'o.nlo jusli lican.lc dI.' Sn1ina. ni que haya ju ...ilil·allte., d<.: nÓlnina que n sea~ rct:~hJd(ls ~lIr nll1~UI~ t o npleado, Se I iene, 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. "A ('lit/O uunbiéu se intuye la mtcrrclucióu ,/' f¡' 11/,111/11 1111 1I1;III('/'O l'II/{llelldo la ;'1('(/rl,o/'oc;úII 11 ;¡II'"rijil'o(';líll. I¡/I'IIU;,I. "UI/,I, I'II/'('("(/U;,' (/"t: SI' '/1' 11' ;III{/'(',(/ y ('/lII'I'I'SII, 1'(' Ir~/I' (', I'I',II;"II'UII /,1'1,'1/(';111/ ,'1 t1ill('IO el ti" 1111111';('11111 1.'1111111/1<'11/0 SIl 1'11 ¡/e lisa do di' c/ /!/lT(lIt'lIdll, ","111)/,(', 11/11/11.'111 de I'I IlI;I/II'1'1I (·1 NIF existente 11 1'(1'('/rlV ;lIr~'nll~, 11111'0111/(';1:/11111, t1ullls ¡f¡- 1:"1'11111 1'111.,.11.'111" 1'" 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(1 IIIII'dl' rrohlljl/l ",11 (/<,/,urrCIIIII'/lIIIS ' ('11 ,'otlo 1/11(/ tic I'I/I/S Irlllllljord ('1//1 11/111 fill/I'llí/l tlllllll/tI. ESlc p'írr'Ifo dc),(,'nhc b¡i~icall1cntl! propiedades 'ucd<.:~ de~c<.:;ar... Illle' a... cnt idadc... candidala~. c '(I/:N'/i ('()/(I</L:'Nl'/ ~ /,(/{I(·I(JN. con distintas tuncioucx en el mismo departamento, h..bna de e.I~lplcar!.e U." atributo multivuluudo. o Cual tcudríu implicaciones l en la 11;"I~llIl'Illal'I()11al relacl,onaL pues entonces, el atribulo "Función" debería pasar a fl)r111:11 parle de la cl~)'c pnmanu de la correpondiente s relación. 1'aru 1 e:-tll ver lit... curdi nal idadcx de la anterior inrci relación precis~lIn()s considerar '11) 'UPUl· ... O ,CIlI;1l11ICn ('·lllnpll.'lllenlario. t Sc sup"lldr;,í que pUl'dc haher c1eparlanlclllos 111 l'(llpk':ldll"¡: por l·IClll lo. un depaJ'lallltlllo p r<':t' t'l'l'at!o al cual 'Hin no :--cle haya ién ,"I!!I,uln pCr"lll1al. aunque IUl puede hahl'r l'lllpl('ad()~ :-oindepallanlclllo, ~II~ ¡~~rt~U t~~' tl,)'" I:l.Cllli~~d !:ft.! PI.I~~/)() ..:1 "N" de .~all íeula". cl "Nonlhrc", 1.' 1 11" . ~ l. N ~~ H IJII' . lo... Dalos tle ( lienta C'llrncnte ) el Por,'enlaje " de Relen,11111 • 1:1~dl!nllllcad."r dl' la enl idad 1:',1PI.E,/J(). corllo se e~lahlece en el enunciado. , l'l _atnhlltll "Nulllero ue i'v latrícula". 110 el alrihuto "N IF". que un siendo a 11"lltltcador de la entidad no es identilicaúnr principal. "1l1 idenlificador ' alternalivo. ' "1),- UII ¡{('flllr/U/llt'IIIO ~t' II/el/lliell,' ('1 IUI/I/bre ' 'licia ,,·dC·I... 111111 di' '11. pIJ.I'ihlel ... pueslo se Olienen los ;¡lribulo~ "Nolllhrc" y "Sc(lc" d' l' ~ 'd' d u o /1//', /f/iM/;N7' ."..... , c a enll <1 .' (J, La S ede se consluera CO lll0 un :,Ilnouto Inultivalu'ldo pues ,I 1lIle "lrto~ v' I ' di' " ' '1 ,', ,1 ore). y e enunCIado nn ~(!ucsprt'ntle que leng~1 alrioulns propios y l" .L l)Il<;ldl'rar~L' por lanto una entidad propia. 1)<: e,te la ' l"~~'II',' ace rca de IllS elllplcadll .... ;llIn((lll' /)/:'P¡ 1<71¡'vlF.N·/Y /)tI ·r().) 1JI J, "SII// ;/1I1()~ , propio,, rll' UII ' '(//" .I/I.~ 1 /('1111/1' 1" 1/01/111111 l' {' 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,11 di,'liIlC'Ílíll ('1111'1' do, 1111I/ICllllh', '1 . / • / ' /'1 ' ' de luí/l/;II ,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' c'}('II'ic;1I Ji,'cal ' 1I1;11I1'/'1I (/c· IIIC',' (11 que {1I'/'{t'III.'C'I' el (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<'.. "
  • 33. I IlISE;;UI>E BISI'~<; IJI' 1);"I11:-' l'lHHll.l',llAS ¡{EStll'l A cada empleado se le entregan lOS múltiples justificantes de nómina a lo largo de su Ida laboral en la empresa y al meno-, uno mensualmente. A cada empleado se le asigna un numero de uiatrfculu en el nuuncnto tll' 'u icorporación a la empresa, y é-ac e), el número usado .1 elecl~l' in telnll, de lcntificaciún Ad emás, <e regl'lran el N1F del empleado. nombre. nUIIIl.'11l de hijov, orcemajc de retención para Hacienda. dato, de cuenta corriente en la que <e le igresa el dinero (banco, ... cur ... l y número de cuenta) ) dcpartumcntuv en lo ... que u a 'abaja, Un empleado puede uubuj.u en varios dcpartameruo ...y en cada UIlO de ello:" 'abajará con una función di timu. x De un departamento ... mantiene cl nombre y cada UII<I e :-.us posibles xcdc-, e d Son datos propios de un justificante de nómina el ingreso total percibido plll', el mpleado y el descuento total aplicado. La distinción entre dos jusnlicantc» de ,l1Úllllna e hurá, además de mediante el nÚlIlCI'O de matrícula de empleado. mediante el l riscal y número (1<.: es al que pertenece y con un número de orden en el caso m le varios justificantes de nómina recibidos el mismo IIICS, jercicio de nómina cunstu de varias línca:-. (al mcnus L1IHI e ingl'l':-'Cls) y d '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 :1I1h~, cao" 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 'lIh la le .uul se aplica y el porcentaje que se aplica para el cálculo de é:-.lo:o., Cada justificante '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 al 11ismo coneeplo retnhuti'o, 1)1.' lo, eonecptos rctrihuti os :"e Illantienc UIl códIgo )' Jna descripción, De cara a la c.:Ol1tahilidad dc la cn1rrcsa, catla línea dc un juslific.:anle dc nlilllina ;e inlpula éll lnenn~ a un clenlenlO tic t:llste, Al Inislll() elelllcnto de co:-.tc pueden Il1putárse le vari as Iínea:-., Para eada elelllenln de co:-.le, se recoge un código, una jescripeión y un saldo, 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, 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'll1tahles (clÍdign y ctll1tieJad) y ~I ulla tl varius l trallsferencias hancarru', de la' que "1.' recogcn Ini'odatos de euent:1 ellrricrnc (hallen, :-.u:ursal y nÚIlerll d~' Clll'nt<l) )' la eanliúatl, Pllr caúa apunle contahle y trlln,l'erencla hancalÍa "l' Plfl'dcfI hquid:1f :11'111' lllcnt)~ de coo.;lC, ek' __ H ". _.:(.:..'I.::.l'l'Itll() 1 1l1'>t.Nl)('O[C'I'I'rlIAI .. MODI',I () 1'11< '1 Discusión del enunciado ", ""/f,f"(lda hf" !"f>"ruf , ,(/.10 ti" ,,, 't' fl' cntrrgun multipic» I'//Iu l.n ete pnmer párrafo I,A!I'L/~tll)(), pero j{ISJ1FI('AN71~ ('11111/1'.'11 I ClI//II'IIIII pueden detectar-e 1)1:.'NCJAIIN/. 11/1///('1111/1'. cll' 1/11/1111/(/ (/ IU/OIIII '/I,I/II(¡IIC'I/(t', 111 ftllgo .. la viguicntc-, entidades vio: I.AJJ{)RAL, candidatas: 1:.'MPRESA y NII:;S. i"" de ella ... no llegarán a tener J¡J conxidcración de cnt idade~ reales, Así. por diler,).., motive», que <e explican a continuación, se de-echaron c,11 PR ESA, 1/1)/ I ,H I,Af/()J</IJ,) A./I:'S, ser dexechada. dado que lo tille interesa a este Sistema de luformaciun no e, recoger empresas en general, sino recoger tan sólo los datos referentes a una y sólo una empresa (la propia empresa), por lo que en e caso de l recoger una entidad I::MPRESA, ésta contcndrfu tan s610 un ejemplar que estaría dcscribicmlo ;t la propia empresa. lo cuul curccc de interés y tan sólo complicarfa el esquema de d.uos resultante y las aplicucioncx desarrolladas sobre el mismo. Es preferible 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 desarrolla l'l Si'I~'IlI:1 de lnlurntnciún e-, parte del contexto del mismo. !:'1I4l'RI:S¡1 puede 1'//),1 I.JIU( )R/IL no ve trata realmente de una entidad: parece que aunque el plOpOS1l1l de este Si,tcrna de Info/'nlat:iín ~ea rCl'ogc1. al 111ell S cn pane. viua" O 1,loor:lle" I.':-.Ie Cl11 1t'c.:ptl1no está clarall1clll' uctíni o y adll1ile diver<;a~ interprcu 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 o que le l ,ucede a UI1 clnpleaúo, taD s(Ílo aquello que resulta de intel'l!s para los propósitos del Si"tenla de Inlo/'nlaei<Ín (la gestión de as nlÍlninu~), Adelll,í ... de csta consideración l l'lIHU entidad, 'iúa lahural puede interprelarst' eU lnn infonuación d contexlo, de esta e IUrllla, el ~'onccptll dc vida laboral -:erviría :-.inlplelllentc para úelilnitar el nlaren 1c'llIporal en que UIl clnpleado puede recibir juslilicunte1> de ntllllina, El e~tahle:iI11icnto de este Inan:o tenlpnral induciría a restricciones sobre la illfnrlllaei<in adlnisihle en la eXlensi'lIl del e squcllla, Si n()~ f1janl0s en este conlexto Il'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<)ninas. lo cual nos llevaría u replantearnos l el lgnifieadu de la cntid,ld f.'MPI,/~//)(). ¡,Qué va a contener esa entidad? ¡, lnpll'ados c t'lI ~eneral () Solilllll'nle elnr>le~ldns ren.:eptores de lIílllinas'! 'rodas eSlas cuestiones y 111;~tlee~1>~'IlHíl1lic(), hahrran dI.' aclararse reviSallthl la lnr rlll¡¡ci<Ín dispunihle O dcl 1I1I1'e1'SO discul Sil y los reyuerillliento:-. de dll Sisleln:1 de InfonllaeitÍn, ' realilando poihlcll1l'nle un ;lnÍllisi1> nl:'t~ pfofulldo del presentado c el enunciado n dc este prnhk'lIla POI lnlplifil',lr, C lu :-'OIUl'lln pr ,'pul'ta, Il ~e cO II"idera que lu entiúad f f!'f,/'.'/I/)() l'ílllllenL' 'cilo elllpleauo:o. [lCll'(.'ptlln::-. tll' I1Clflllll,l: por lanl" ,'11 el •••••••••••••••••••••••••••••••••••••••••••••••
  • 34. ~ ••••••••••••••••••••••• •••••••••••••••••••••• 5.¡ DISENO DE BASES DE DATOS: I)ROflLEMAS RESUEI.TOS CAPíTULO 1: DISEÑO CONCEPTUAL: MODELO ElR SS En este apartado se introducen los atributos "Ingreso Total", "Descuento Total", "Mes" y "Número de Orden" de la entidad JUS71FICANTE DE NÓMINA. , Dado que la, identificación de un justificante de nómina se realiza a partir del numero 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 su identificador principal engloba ti tocios los atributos del justificante que se emplean corno parte de la identificación: "Ejercicio", "Mes" Y "Número de Orden" junto con el "Número de Matrícula" del empleado. 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 una nl~nera de dl.lerenclar los meses ti lo largo de los años: entonces, o bien se incluye este atributo O bien se establece algún convenio. como enumerar los meses consecutivamente 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. 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 un atributo que indicara la clase de Hnea de que se trata; sin embargo, dado que en el caso de los descuentos se tendrían las propiedades "Base" Y "Porce~taje", es preferible introducir una jerarquía Y considerar a estas clases como subtipos de LINEA DE NÓMINA, La interrelación Consta entre las entidades NÓMINA Y LfNEA DE NÓMINA es similar a la que se da entre una factura Y sus líneas de factura o entre un pedido Y sus líneas de pedido. por ejemplo, se trata de una agregación todo-par~e, En, esta interrelación se tiene una dependencia en identificación, por lo que la en~ldad LINEA DE NÓMINA es débil respecto a la entidad JUSTIFICAN7'E DE NOMINA Y su identificador principal estará compuesto por el identificador principal de JUSTIFICANTE DE NÓMINA junto al atributo "Número de Línea" (que tiene numeración consecutiva dentro del mismo justificante de nómina). El resultado de todas las consideraciones real izadas en esta parte se presenta en el esquema mostrado en la figura 1,29, O,I,!- , • .1'1 -, '" 1.1'1 ft' .. I"'tl" NI! 1I Id_line. Figura 1.29 PARTE 2 m.1 ICl,I "Cada justificante de náiuina C()II.~/(I de varias lineas (111 /l1('1I0S /11111 de ingresos¡ y cad« linea ,1'1.' identiflc« por /1/1 número de 1(111'(1 del l'O/'l'I'.I,/lIl/lllil'IIII' [ustijirunt» U,,(/ lineu puede corresponder 11 /111 ;1181'1'.1'11 11 o 11/1 tll'S('U(·/I/II. r:1I ambo» ('11.1'11,1', .'1' recoge la ranüdad que corresponde a 111 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 se 1If1li('(/ y ('1porcentaje que le aplica para el cálculo ele éllo,f ... I{II('/I ('11 IN(lRIiSIl DESCUENTO Figura 1.30 Dada la anterior interrelación. puede señalarse ahora que los atributos "Ingreso Total:' y "Descuento Total" en la entidad JUSTIFICAN7'E DE NÓMINA son de-
  • 35. ~ 51l DISEÑO DE BASI'~<; E »A'I OS; I'ROBI,EMAS RESUELTOS n rivados, pues su cálculo puede realizarse a partir de la cantidad que figura e las líneas n que componen cada justi ficante. La jerarquía existente en la entidad LíNEA DE NÓMINA es total, dudo que toda línea es bien una línea de ingreso o bien una de descuento. y exclusiva, dado que sólo puede ser de uno de los dos tipos, realizadas en esta parte se presenta en la DISEÑO CONCEPTUAL: MODELO ElR 57 UDaestructura arborescente propia de las jerarqufas implosión-explosión. El tipo de la interrelació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 un elemento de coste no puede contener a ningún antecesor suyo, pues en otro caso no se tendrá un arbol, sino un grafo, El resultado de todas las consideraciones El resultado de todas las consideraciones figura 1,30 (ver figura en la página anterior), r- CAP('llll.O 1) RA,MA realizadas en esta parte se presenta en la figura 1,31, PARTE 3 ,-l----'---', l.Lt--J.'''IIo'T() ruvrt. "Toda linea de ingreso de U/Ijustificante de námin« responde (/ 11/1 ,íllico concepto retributivo. E/I UII mismo justificante, puede haber varias lineas que respondan al 1/';,'//10 concepto retributivo. De los conceptos retributivos se mantiene 111' cádigo .Y una descripci/m. " 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 si no dispusiera de atributos propios, Se supone el atributo "Código" como el identificador principal de cstu entidad, El subtipo .fN/~'AS I)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 manera explícita, "De cara a la cnntahllidnd de la empresa. cada linea de 1111 justificante de IIá/l'¡III/ se imputa al menos II un elemento de coste, Al IIli.5/110 elemento de pueden imputársele varias lineas. Para cada elemento de coste . se recoge 1111 I'(ítlij(o, 1111(1 descripclán y WI saldo ." ('0,111.' 11,.' ~--<:::- IINf~ .. __ . IN UI;'''('' 1t:'1TC) ... ('tJ~("F.PT(). Rl-:.'" Figura 1,31 PARTE 4 ..El/ detenninadus [echas, 411e se deben recoser. cada eleiuenta de coste liquida cargo a varios apuntes contables «('(id;,,?o cantidad) y y CO/l (1 una .I1! ti varias transferencias bancarias. de las que SI' recogen 10. tia lOS de cuenta corriente (banco, sucursal y número de cuenta) y la cantidad. Por elida apunte contable v transferencia bancaria se pueden liquidar varios elementos de coste, .. 8..••• 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 principal. II,n' (".-dl,",'" 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ín as, por lo que e se establece sobre el supcnipo). Se trata de una relación N:M en la que se fuerza una cardinalidad rnínima uno en el extremo del elemento de coste, por ejemplo toda línea se imputa al menos a un elemento de coste. "/:,'1(1'1' 11111' UII (,!t'/I'I'II/0 los /'/('/lU'/lIII.I' de coste se establece 11/10 jerurqui«, 1'11 1'1sontido de elemento de coste puede contener el otros elementos de coste. pero 1111 di' coste ,w¡ff/ ¡JlIl'dl' estar contenido en. 11 lo .'1111'11, otro elcniento de ('0,111', " 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 t+;ullkl.",1 4 r'------'-., APUN"rti('(),NTAIlI.F. «tl't.ll$." I~ 11('."'0 'S.lldo r...h. ",11 I 41 __ .~ t "~= () ( II,.'..r'---'-___Jc, INM ELf.MfNTO tU.11 Ct)STP. tn.1I1 .~ Figura 1,32 Se obtiene UII'I nueva entidad 1'1?ANS¡,'f.R I~N('/A, con atributos "{ 'ódigo" (se precisa 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 •••••••••••••••••••••• •••••••••••••••••••••••
  • 36. ~~ •• ••••••••••••••••• •••••••••••••••••• •••• ~ CAPÍTULO 1: DISEÑO CONCEPTUAl.: MODELO ElR 59 1) RA·Mi OR...·M" S8 DISEÑO DI'. BASES DE DATOS: PROBLEMAS RESUELTOS En la solución obtenida, no es preciso realizar análisis de redundancias, pues no 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 la que se supondrá quc el atributo "Código" es el identificador principal. relación existente entre las entidades TI{ANSF/~RENC/A. APUNTE CON7'AJJLE y ELEMEN7'O DE COS 7'E, se rnodelará con una interrelación ternaria Liquida que posee además un atributo propio "Fecha", el cual es rnultivaluado Y permitirá distinguir las liquidaciones que afecten al mismo elelnento de coste, transferencia Yapunte contable, Nótese córno a partir del conocimiento del dominio de discurso, se deduce que la cardinalidad máxima en apunte contable es uno, por ejemplo cada elemento de coste y transferencia que se liquidan se hace con cargo a un se han producido ciclos. SUPUESTOS SEMÁN'fICOS y SEMÁNTICA NO REFI,EJADA La único apunte contable, COMPLEMENTARIOS • Se ha supuesto que puede haber dcpartarnentos sin empicados, por ejemplo. un departulnento 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. No se pueden recoger en el esqllelna ElR los siguientes supuestos selnánticos: • Un ernpleado no puede recibir nóminas tras la extinción de su vida laboral. 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 • El que cada empleado reciba al menos un justificante de nómina cada mes. cOlnbinan de las distintas entidades, • El que haya al menos una línea de ingresos en cada justificante. • Secuencialidad del nLÍ ero de orden del justificante. m • • Secuencialidad del número de línea del justiticante. El resultado de todas las consideraciones realizadas en esta parte se presenta en la figura 1.32 (ver figura en la página anterior). Propuesta de solución Agruparnos las distintas soluciones parciales y se obtiene el esquema ElR de la La cantidad en las líneas de ingreso se expresa corno un número positivo y en las líneas de descuento COI110 un número negativo. PROBLEMA 7: EN'rORNO DE EJECUCIÓN figura 1.33. Enunciado ~,",oN(-----lJ[_"AIC1""fI¡Wl". """<*-~-_.. ...,,, Una empresa decide crear un único entorno de ejecución que controle la seguridad de acceso para todas sus aplicaciones infonnáticas. Para ello considera conveniente dividir sus aplicaciones en subsistemas funcionales especializados Y .... _"" ;:;P-:G~=~"~h_j~~"".--~'''~~I~'''''~'~-~''~'J~ establecer el control de acceso al nivel de estos subsistemas. Se desarrollará un motor ... e-__ " de ejecución que. tornando como parámetros los contenidos de la SO. controlará la ejecución de los slIbsistelnas Y el acceso a los mismos. Este motor se hará cargo también de la navegación dentro de los subsistemas. Profundizando en este enfoque. I~ f , .... f'" _1A.f se establecen los siguientes requisitos: ( "" .... 1 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 los distintos perfiles de que disfruta (al menos uno). Un perfil permite el acceso de al menos un subsistema y para cualquier subsistema habrá siempre un perfil que permita .1 lo ...... ,.."".. .. t, acceder al mismo. Figura / .33 • •
  • 37. t I'II111C) - --- - I)~ cada - -- u... ano u - M 1, _-- perfile' "e manucne ~I IJNI. nnmhrc, )' icrnunalcs teléfono en que c(iuI).!o y una dcscnpción. que In l11is1I10qUC de los ~uh:-.isl~lla .... se 111i1IlIICneun De los suh"i~ll'11UI"" se nl~1111ICIlC. adL·ln¡Í:-..la 'C11lal1~1n la e ¡II rnnr:i. 1.u... vcnumu» esuin cllnlpllc'I,I'" ptH cunrrolc ... toda 'l'ntalla ICIHh.t UI1cuntrol que : permita ccrrurlu. Todo control ha UC Clllplcar ... en alguna ventana y cl Ini"'111ocontrol e puede ser empleado en di tinta' que no tenga usuanos n USU¡RI(). Irahaja. De lo~ pcrl ile' U~ acceso, . ¡¡ Por tanto. las entidade .. candidatas } S( LJS/S1 t'A4A xon enridadcs reales J /'ERI-'/L ..l u: cada ventauav De lao; ventana ... conlrole ... se mantiene . 1IIIIIIr/(I vi~LI"li/ala. I.a :tLlIaLilln LIt' un cnnllollle11l' CllllHlconsecuencia la cj ccucion de L11"1única <ll'CIOIl(1111..10 control elceutara una uccrón al meno ... . l lna aCl:l(i11requiere ...cmprc un ) i conuol que pueda cj ccut.u la. De la ...llI'CIOIlC "'1.' In¡II11Icll('clcllthgo 1;1 de ... c.:lÍpclon. La" aCl iones pueden ser de uos llpl1, de íuncron ;.de llamudu La ...aCl'ione<; de función ejeculan una función interna del propio entorno ¡de la quc ,e ha L1cguardar el nlll1lhrc). I.a:-. :Il'<.:ioncs de llalnada invocan una única ventana, l)isclIsiún del enunciado , . , • "1 > .. los I)('rli/I'I "i(lIgo l' "1.11 "III1Jad 11ú.,,('a tlt' lI(t ('(' ('11 1111111';0 le/l'/ni dt.' !Jahfl/ ",,'1111'1'(' /1(',lil 1111 " a,'( ( 1't'1'/'/"1 a/ ""'/l/JI It" 1,,1,,;IIt'/IIt1S t'1 ,'1 ¡/t'/lO/llllllltlo ,ti ti ''',/tI~ ~1I/"III'I/Il'1 .. 1,1 .1(' (/'11' d,,(nllll 1111 1I1¡'11~1,,"((1 (al /l1,'/H" Itll {)(' /111 /0.1' .I'U"S;.I'Il'/I/ilS. suhsistcmas. .It· w· nuuuirne nunülene. 1(11 /11 tull'llllÍ., .. ... C... iu dando !tI' atrihutos de la, elltlda(k';o, I'F-:RI'/L SL e u 'R/S· Tf ,.(,. alllhJ' uencn corno uurhuu» un "Código" > una ..De... cnpcion .. y v: supone en alllha, que el "(odigo" e el IdenlilreauClr principal. La cnltdad SLIHS/."fEflf¡ lcntlna · s adcltlás un atrihulo "Ventana dl' Aranque" que servirfa para de~cri la 'cnlalla cn r hir que arranca cada subsiSlClntl, 1:11 c-ae piirralo de odas las considertlciones t ealizadas en esta parle ~e pre~enla en la r 11110) _' //11111 (I/"It,llll'/' III/i' /'('111111'1 ,,(" ,·tlc, tlI/lIIIIII" n'il1ih.l'.n.r.Il'.I ".,.t.. , !Ir I o 1" • ," t o • I t ,¡n,'" Il" 1 .: "'" .... .. " ,1 1'1)1'1-. (/lIt' /'t""I;II'1I tlll /ll'/fil 11<1>.;Ilell'O Fi~lIr(/ /.3-1 .. ¡l'('C!dl' l'l1lrc I'/:I<I:/L ) 'i(I/lS/S//'.f1(". d.: la cual e l'~l:ín ploprc.:illllanuo las , c.lldil1;tlldade' 111111ln,,". l'lll 110 la ...IIl,iXlIlIa" (POI lo que '>l' ha dl' "'''poller el Ctl'O 1l1ás P gl'lll'I¡II). 'dl.III;I ....:-.ellene olla 111lC IIChlclon ()isf.·ula cntrl·{/.'i(I,IU/() V l'I.I?/·ll.dc la cual "l' dan ILI' cardinalrdalle ... del u'lIa1'10 re"pe to d !t,... Pl·rt tlc .... en el '>entrdo c c COllt1¡IIIIl. l1ahn:lno ...de reali lar 1<1.. pllsleitÍn de que ario" UU .u ¡III0 pucden conlpanir ".".".' .1"... 11/ /1111/1111 11"t' d« (U'('(',W/. una dl'IIII'('io/l, I'l'rfil dt' Fn e...c p~rrahl puctlen dl'tel'tar:-.c las silluiente~ enlidadc:-. calldidalas; SiIHSISTF· t ,,(,1. /'/'U/'// y I/Sil/IN/(), ¡ln,i ... 1I1Ptl(·111pll... C esta illlrllduCIl'lldilllntllllll'rrelacillll . .••• ell ,/ue figura 1.3·l_ PAKTI': 1 (I('('('/} d" 1,'/111111111'11 lu 11111' <I/I(IIU'II I~ el tvrnunules se obtienen los atributos de la entidad USLJAR/O, se decide emplear el "ONr" corno identificador principal, mientras que el atributo "Teléfono" puede considerarse corno un identificador alternativo. Se considerará "Terminales" corno un atributo rnultivaluudo. El resultado IU'IIII1II' le(éj(J/III 1 De e-te párrafo , '/;,I;,lItJI {,ll)NI. nombre. (' /lItlllll('/lI' uaha¡« ." l.o-. controles pueden ser de dll!-.lipo!-o:hotune o ítcm-. de mcnu. Para soportar la c~llllclura )l....irquica de menús. de un IICln de menú pueden dcpcudci 011'0' ítcms. pero 110 puede daro;c la situación d que el mismo ítem dependa dc ari()~ úcms, En I() e ítcms rlc menú se ha de mantener fnr'l.(lSalnCnle el text que se 'i'lIalil.ar:í en p o antalla. De lo!-o controles de tipo botón xc 11I;IIltic11C nombre del icono que opcionulmcnte se el ,1< «(''/('1 1,,1 (por genealidad). r I 11una lectura altcmuuvu de este primer párrafo. podria huhcrsc pencado que upmecran la" tres cntidudc ... anlL'1iorcs y entre éstas una so inrcrrelucrón terna: iu la Accede. E...a alternativa, sin cmluu go, puede desecharse. ya que la relación entre r lJS(I/II</() y SUHSI.'i7·Ffl(, II() es directa, srno que tiene a /)F;/?/o'/L como elemento intermedio. por ejemplo el usuario accede " aquellos subsistemas cuando se lo permite elüos) pcrfiltes) de que disfruta. tal11hi011un c.:odigll ) una de Lripc.:ion. · tI< ,t',,' 1I.1()[JI·lol-:JR11 I IHSE¡;O('Cl"C'II"ll',1 PAR'rE 2 "(..111 1'1'1111111111('11(111 1'(1/11//111'1<11 ,IIII/I/)/ (/U" 1'<'/1111111 (','/11111" 1"',,'a/lCI.I ,,/ ""I/lII /('IIIIIro( ,'/llIlIltI 1 /011//111,' l' 1"'/ '10.1 .. 1 01/11 1111'S: 1/)111/111 I/I/I'de 11'/ (,//I/,I"lIclo /lIII/lIII/H' 111111/11';11 "" '(ld" hll tI(, 1'('/11""" 1'/I/fl/'o,,,1' ('lIdrll ,,/1 11/.(:/1111/ ,'11 (//111111111 11'/1/1111/11 /), ,(Í(/¡,l(lI ' IlIltI dl'l( I/fl' /111 ftll I,í/l .. ¡.... ;e_ ••••••••••••••••••••••• ~ .IC.UC; ...
  • 38. ••••••••••••••••••••••• 1.2 DISI:NCl 1)1 IlJSI'S ni' 1), 1OS I'KOIILEM,S RESl'I-J lOS __ •••••••••••••••••••••• CA PI I U1.0 I DISEÑO CON,EI'r t1AL: MODELO E/R (•.' ~O~RA~.:!:M~" ';_;' ,11M ~ El resultado de todas las consideraciones figura 1.35, Se pueden distinguir dos nuevas entidades VliNTANA y ('ON7'/(()L: la), dos entidades tienen l(l~ mismos atributos. "Código" y "Descripción" y se entiende que en ambas cntidadcv "Codigo" es e ulenrificador principal. l 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 control que pcrmue ccrrurla no' l"ta mdicundo que cualquier vcntuna nene l'01110 unnimo un botón. precrsamcnte el que permite cerrarla, En este ca-o. el sentido de la Irasc nu pretende que haya diferentes tipos de co ntroles; corno se vera más adelante. 10 controles se podrán dstingurr entre <.( por la acción que realizan Centre otras cosa~ i cerrar la ventana). pero no procederá introducir un tipo especial de control para cualquier acción que éstos puedan realizar. Si se hubie e introducido el subtipo de los s controles que cierran una ventana. al darnos cuenta de lo anterior. debería eliminarse. Al aparecer V/;'{'T;NA COIIIO una entidad. se debería replant ar la necesidad del e atributo "Ventana de Arranque' que aparece en la entidad SlJIJS1S7'f:/v/, y preguntarse 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 emplearse corno punto de arranque de diversos subsistemas (no se afirma nada en contra). Por ello, se introduce 1" intct relación Arranca. realizadas en esta parte se presenta en la 11 ~------L....¡ .O,nl ( 1. IJ ,1 • I .n I ('"tligo CON I ROt 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/11 puvdc« ¡{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/;flflllll'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, " "{.III' 1'''II{1I1/('1 pueden ('/ de c/II,I '1 Ct(l (11,11 Se Introducen aqui tlo" clase ...de controles. los botones y lo~ ítcms de menú, que requieren 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" que contiene el nombre del fichero con la imagen que opcionalmente se vis alizará, u hay que destacar que este atributo admite nulos, pues aquellos botones que no requieran que -e ixualice un icono no tendrán un valor en este atributo, Estas cntidadcse relacionan con la entidad C(JNJ'U()L mediante tina interrelación Es-Un. por ejemplo ¡,e trata de una jerarquía que es total (no hay otros tipos de couunlc-) y exclusiva (un ítem de menú I1l1 ¡;~un botón ni iccvcrsu). NUl''alll~'lIte i"p~l1'l'CC ¡Iqllí unu estructura jcnirquicu arborescente en el caso de Ilcn)~ 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 so (ü.l ) Y (0,11). es decir. UIl n hIJO SI)I" puede tcnct UIl padre, mientras que UII padre puede tener varios hijo", Para cviuu Ciclos, e~ ]lll'ci'lll':-.igil que un ítem de menú no pueda depender de SI mismo ni de ninuiiu allle(.'l'~"1 ,"'O e- BOl 01 ITEt-! I:N , Figura 1,35, PARTE 3 "UI (/('ti,'(/ciÚ/I elt' 11/1 ('011/1'(/1 tiene 1'(/1111/ 1;/1;("(1"CC;ÓIl (uu!« control requiere s iempre 111(111/;1'111' el CÓI/¡!-I1I • 11/1 (1/IItr"{ v [a <,),'clltaf'ti que /1/111 (/111'(/0 ({("W'I'I(1C';f¡", .. consoruenria {II ejccurián (I('ciríll a/ "Iellos), ejecutarla. {)I! las de /1/111 UI/a (/C(;ÓIl (ICI';Olles SI!
  • 39. l':I'ITULO I>ISFÑO 1: l'ONCI:: YIIIAL I MODELO E/K I 1>1 1)1""1'11>III n,"1 'i DI D- ros' - _-- I'ROIIII:Cl S ItI.SLlI'I TOS - -- -- - - ---rw"ol I 'o ac ( I/lItI'S tic [uncion '/111' le' /UI .. 1'('111'11111, de guardar ,H'I' di' {:je('II/lltI 1'IIIII/lIhll' 11(1' //1'1/,, 1111(/ /IIIIC'I/ltI de ,filll/'/fl/l tic " 1I/1I//(/(ltI, f';o ... , ...... ("., ,t oC( _.. ot, - "', P')I' Q ~ " ,1 _,jI _ L,., ,, - l.II, !I,11 dl'l "1'111'/11 ('''(/1/110 (de ,1(1 efe llanuulu //11'11111/1 1111/111///('(/ ;1I((-/1/(1 J, / ÁIS (1('( ionev • I oL Se introduce aquí. nuevamente. una jerarquía con los <uhupr» l,/.JMADA y filN('/()N lit:I supcrtipo ¡('C'/()N: c-ru Jerarquía es total ) e,'Iclu~I~'a, La" íunciones irih t "N "lllllrc" que puede con ...derarse como Identlltcador uncmanvo i len d ran un a I u (1 " ' , ' ' d e a entlual 1 ¡'C/NC'/()'N 'o, '.' Por el contrario , la, Ihllnadas no llenen atributos propios y, ' , 1 sin elnhargo, tienen una interrelación I:N I~voea con ventana que pennllc que en cada acción de IbulIad" se refleje la ventana que esta IfI'OCll. .. • , r realizadas en esta parte xc presenta ti!!ura 1..16, e ....h "' __ '. _r¡ '11." <,1. , v.. " , ,. [,~",::-~~---'l ,u lo' en la Figuru 1,37 ~f"". , . I " ,1 1, I,",' ..... ..,~ ", _1' .~" _.*' "-~-I~"-'~ o El re~lllla(h) de todas las cnnsidcraci)ne~ I.~. c'IH I -~.~,....--,-'" J ", . . 1 1'- ... ........ l. ,......... 1 -._ _t,te"" . "'" _~- ~ -- ' ..).. '.J,.·.. 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' cuta e que relaciona la~ acciones con los controles que las InClr~,ICll ' , I ejecutan. Se tiene carLlll1alidau 1l1ínl1na I en auibos extremos de la mtci re ¡¡CIOn, "/~I' 1Ii'/'i(J1I1'.~ pueden 115 R.-. ~'A 1'1 '1 • "1 Aunque existe u Ciclo en el e-quema El entre Invocu, Compuesta ) Ejecuta, n R 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 Invoca e diferente de la representada pur Compuesta y Ejecuta. la de Compuesta drferente a la de Invoca y Ejecuta. y la de Ejecuta diferente a la de Invoca y CIlOl- puesta, SUPUES'ros SEI'IÁN'rICOS COI'IPL,EMEN'rl{IOS y SEI'IÁN'rICA N() l REFLE.I/f)A I '1 (tl(,' -1 -1.1-'--~---I-"~~LlI.IIMIIII.'t.)'1 •• K=-~.)~lIr 1 •• 1~ • Se supone que un ítem de menú no puede depender de él mismo ni de ningún antecesor suyo, • • • Figura 1,3ó I)rnpursta de solución en la IICllla la<; di"tlnta' I 7 . Se ha ... pucxío que val i)~ u sLibsl:-.tClna~puedan arrancar en la misma ventana. Se ha supuesto que la misma vcntuna pueda ser invocada llamada I• I ( N( ION ¡~Illpandl Se ha supuesto que varios usuarios puedan • i '1 Se ha supuesto que UII perfil perrmta el acceso a vario' subsrsterna puedan acceder varios perfiles, tener el misnu I pcrf I de No se ha podido recoger en el esquema IcJ el siguicnu' R 'OlllCIIIIC p<lIl'lulc se ohuenc ell"lJlIcllla subsistemas pOI y que a un acceso. varias acciones de <upuc-ao selnanltco, E/R mostrado •••••••••••••••••••••••••••••••••••••••••••••••
  • 40. ••••••••••••••••••••••• h6 • DISFlO m- fiASES DI" DATOS PROBLEMAS •••••••••••••••••••••• Cualquier v entana tiene entre sus controles correspondiente acció de cerrarla. n PRC)8LElVtA 8: ORGANIZACIONES CAPITULO l' -----_ RESlrEL-1 OS uno cuya acción asociada es la Illsr,Ño CONCcf'rUAL' MODELO ElR 67 Discusión del enunciado PARTE 1 NO GUBERNAlVll<:NTAI ..ES "ne/ol OI(l(/I/C (1101'IIICIII, 1/1 '''II,'~ l' dcsc« ttp¡ 11/11111(1'11'"// , I""II/"~IIII, illll'.I//II' ¡¡)/I, ('/F, dL'III1II1/1I1ICirill. dcvarmllo .. 1. dc« lurutla de UII/II/lld publu:« 1'11' 1'/ 10111I1I/L'1I0 de/I/I(('1I111 Enunciado La coordi nudora nacional de Organizaciones No Gubernamentales (ONG' s) desea mantener una base de dato" de las asociaciones de este tipo que existen en nuestro país. Para ello necesita almacenar información sobre cada asociación, los socios que las C0l11pOnCn, los proyectos que realizan y los trabajadores de las mismas. De las asociaciones se desea almacenar su Clf , denominación, dirección y provincia, su tipo (ecologista. inte gración, desarrollo- ..), así C0l110 si está declarada de utilidad pública por el Ministerio del Interior. 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 que colaboran y 1,1 aportación anual que realizan (que se obtendrá multiplicando la cuota mensual por I()~ 1l1CSeS año). del /In direccián ,'01110 11 C,/(I .. "Cllda a.HICllI('¡tÍlI ('(tÍ [armada l'"! IO( IlI~ dr ln« que It I're("/lu conocersu nN/. nombre, direrrum. provine la. 1,'("0 de 0/((/ en lu e/lll( lucióll. la cuota mensual 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)". Primeramente podernos distinguir l ~ entidades ASOC'/AC'/()N y SOCIO. De los a atributos del primer tip de entidad, se p o uede tornar el "C'I F" corno identificador principal, pues se supone que éste es único para cada asociación, además podernos suponer que no existen dos asociaciones co la misma denominación, por lo que el n atributo "Denominación" puede ser identificador alternativo. Cada asociación Los trabajadores ele estas organizaciones vol untar ios. pueden ser de dos tipos: asalariados y Los axalanados son trabajadores que cobra un sueldo y ocupan cierto cargo en la n asociación. Se desea a lmacenar la cantidad que éstos pagan a la seguridad social y el tanto por ciento de IR PF que se les descuenta. Los voluntarios trabajan en la organización de sinteresadamente, iendo preciso s conocer su edad, profesión y las horas que dedican a la asociación a efectos de cálculo de estadísticas. Cada trabajador se identifica por su DNl, tiene un nombre y una fecha de ingreso. Un socio no puede ser trabajador de a asociación. l Las asociucroncs llevan a cabo proyectos a los que están asignados ss u trabajadores. U trabajador puede trabajar en diferentes proyectos de un mismo país, n De cada proyecto se desea almacenar su número de idcntificaciún dentro tic la asociación. en qué país xc lleva él cabo y en qué zona de éste, asr corno el objetivo que persigue y el número de beneficiarios ti los que afecta. Un proyecto se co mpone a s u "C7. de subproyectos ( ue tienen entidad de proyectos). q De entre todos los atributos que se desea almacenar para el tipo de entidad SOCIO, el "I)NI" se puede considerar COIIIOidentificador prin cipal. Entre las entidades ¡S()C'/AC/()N y S()('/(), existe una interrelación F..stá_Furmada, UII SOClIl debe pertenecer por lo mcuo« a una asociación. por lo que la cardinalidad m ínuna es l. adcll,i), en princi io el enunciado nu nos dice nada en l p contra de que una persona pueda ser 'ocio de va asociaciones. por lo tanto la llas cardinalidad máxima e" /l. Por otro lado una asociucron puede estar formada por UIlO o varios socios. por lo que la interrelación Eshí Formada es N .M. Además e-ra interrelación tiene un atribuo propio UF_Alta" que almacena la fec en la que un sot ha cio es dado de alta en una avociación determinada. Supondrernos por simplicidad que sólo interesan los datos de los SOCIOS actuales, por tanto, un socio só tendrá una lo única fecha de alta. aunque se hubiera dado de baja y vueto a apu l ntar en diferentes . ocasiones. En cuanto a los atributos "Cuota Mensual" y "Aportación Anual", los pOdCI110S considerar corno atributos de la interrelación Está_Fornlada pues, si los consideramos como propios de la entidad S()('/(J, no ,,C recogerían l s cuotas rncnsualc-, y a aportaciones anuales realizadas a las distinta» asociaciones de las que se puede ser socio. Además. el atribulo "Aportación Anual" lo podemos considerar corno derivado, pues se puede calcular mediante una función de la cuota mensual. trabnjadorcs de 1',11"1 asalurindos " "0/1111111/((11. " ..tll .. /.111 (1111la riado 1 Ion cargc: en la (/SOC;UCII)/1. orgoll/"lu·rolll'.1 / rohlljlltlllr(' Se desea 1 I/"f' wr ((1/)/ 1111 /1/1 I ucld« (1/111/11"1'11'1/' H'~/lncllld vocia! ('/ '''11/0 {'ur t/,'I(/(I pueden tI('/R/'''' ia cantulad ¡J" l' dOI I/I",,//{rn (/111' él/o,1 11/1/11" ("/1'/111 pagan qu« ,I'e /1.'.1 c/,'W'UI'II/IL" 11 lu
  • 41. <:11'111'1.01: DISEÑO COKCEI'lll1 "/.111 voluuuu mv Ir(/¡'ClJ,1I1 edad, /111'1/1(1 ,.11"(1,1'/ 1// en /u orX'"It::uc;ún /,ralt'l/úll v ..fl','IIII uututunt.» 1/111'dctluun u /UI/I(/, siendo iacián 11' ulcutttu « /'I'/' 11 /)NI, 1 111111 techa 11('111' 1111 1I11/l/hu' a dt, /1If.i/'/'III, " {I 11lIt /111111 /," , introducir una nu eva jerarquía /'/RTfC'fPtNl'E donde esta enudad actúa corno ~lUlper1:lpo 7 RABAJAf)OR y S()('/() corno subtipos. Esta jcrurquía será lOla,1(pues no y existen mas tipos de participantes) y sin solapamiento ( ara cxigtr la exclusividad): a p l esublecer 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., di' (U/CII/O dt' ,'Iud,II;I'(/1 "("11/0 las horus tI('I/lIII'rt'I(/¡/CI/""//((', 'vIOlJEI () !-JI{ t /'1/1" /(' ,('/ tt uhujculen: dI' /11 11,11//1/('/11/1" defini , 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 a uuroducii 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 desea almacenar el I)NI e 1nomrn e) 1" ce h d (' Ingreso, por lo que é~t() serán atributos L. ' ,. .' a a (.:(l,1l1U,nC~ propios del supcrtipo 7'R, IIIAJA I)()R. siendo el "DNr" el identificador principal. En, cuanto a lo atributos de cada uno de n ... subtipos, IllCIlCi<Í1lespecial s I ~le~'C~'L' a~nhll1:1"~~a~l" de la cntid~d !()I.UNTAI</(): cualquiera que sea el tipo de c,l CIJlI,d.l~1 en 1: I que se inclu ya. este atributo debe ser siempre d erivado de la fecha de' llaClllllt',lll0 (pues :~e pllC'd~ calcular en función de ésta), lo que n()~llevuría en el caso de considerarlo, a introducir la lecha de nacimiento l'OIIlO atributo, una in tel re Inc Ión Trabaja entre A S()( 't /t (,'1()N Y TRABAJAI)()/? 1:N, suponiendo que ningún trabajador. aunque xca voluntario, puede trabajar en más de una asociación. Todas lux consideraciones relativas a esta primera parte aparecen reflejadas en la figura 1,3K ( el' figura en la página anterior), Adenuis rCJ110S ~, , Para modelar que un trabajador no puede ser un socio, se podría haber pensado en DO construir la jerarquía PAJ<TICI PAN'! E, sino en una interrelación exclusiva. c()~o se mueslra en la figura 1,39. pero entonces no habría forma de reflejar que un SOCIOno puede trabajar en la asociación, pus con esto lo que se repre e sentaría, es que por cada ,'asociación o bien trabajan trabajadores o bien está formada por SOCIOS,pero no por , ambos a la vez, N 1 ",,,( 1)("10 1",1(1 ,"", i' "', t l'" I ... ... lit 111 IMII( I n 'I,.h '1,1 M)( H' "'1. TR 'IlAJAD(11{ ., 1 I~,',,, " ... ' ...... . " I•. ! '·II,.. ~t,,, fI,,,, Figllra 1,39 ., " I,~,t ..... ," 1.1..1 ,~O( 1( lO¡ , Por último, en ninguna asociación. deberla ser exclusiva ser exclusivas para . ,.' 11 la solucum de la figura 1.3X, un trabajador 110 puede ser socro de Si queremos que xe permita, la jerarquía de PART/C'/PANl'J-.. no y además las Interrelaciones Trabaja y a.:st:í_Formada deberían impedir que en una misma asociación una persona trabaje y sea , IOCIO, PARTE 2 /,'lgIIl'1/ 1,38 ..UII IIIII( 11/('111111'1 11,'1'1/11 11 /TII/lIljlu/ore,l. 1'11 la' a,oli..cioncx trabujan tanto uluntario ... corno ...,¡¡Iallado'_' ) ha} que teer n en cuenta que un '{ll un puede ... r un Iraoaj<ldor, E, .. cxcluxion nos ob 'IO e liga a .. pai«. "Ie/llt{tcc/('uí/l ",/(1110 Un uuhujadot Lh' {'(/(/II dC'lllltI cabo /1111"'" 10 11 111,11/'11' ('1/1111 tI,l/gIIIU//I" (/III'tll' (111111'1/0 ¡fc' (11 (/lII'/(I<ltÍlI, 1/0/I(I}lIr Il' deveu ('11 Jilclt!IIICI 0111/(1('('11(/1 1'''/'I'(ltJ~ ~1I1 dt' 11 /IIí/ II('((I 1 '11que pai» ~C' I/c">1I 11 «/¡'(I v 1111 di' 1'11 «111' ••••••••••••••••••••••• •••••••••••••••••••••••
  • 42. •••••••••••••••••••••••• •••••••••••••••••••••• 7() IHSI''C) nI- H SF~ D DtTOS,I'R()[lII'[AS I RESl'EI:_::Ic_:.'(:::.)S:.._ CAPíTU1.0 l. DISEÑO C'ONCcl'TUAL: MODEl.O EIR 71 _ d« este. (/.1 COIIIO el objeuvo qlle persigue, . el "IÍII'er(l de heneficiarios lo« que afecta LI" provecto Il' compone a JlI ('~ de ~lIh"f()"I'Cl0J (que Propuesta de solución ~"I/(/ (l 11<'1/,'11 entidad dI' provecto»¡ ''. La figura 1.41 muestra la solución definitiva. Se incluye en esta palie UI1 nUl'VI tipo de entidad I'/?() )'/:('7 O, De cada proyecto ~t' L'~L'a d :III11aCCI1UI el numero de Identificación dentro de la :I'llciacitÍl1 que lo lleva a caho, por tanto PR()'F.,C'·r() e~ una entidad débil COIl respecto a IIS()C'/AC'/ÓN, que i.'~tar¡í relacionada con ella a través de la dependencia en identificación I:N Lleva. Si supoucuu» que toda asociación debe llevar a cano ul menos un proyecto. la cardinalidad m ínima será 1, en otro cai'>Ola cardinalidad mtn ima será O. nosotros hemos optado por la pri mera suposición, Por otro lado parece lógico pensar que cada proyecto es asignado u una única asociación (cardinalidad mínuna 11. '1 I! , 1, 1" •I !l' TRABAJA()OR SO("IO Un pro) celo se puede componer de subproycctos que tienen cmidad eje proyectos. lo qu pOdl.'1l10S establecer una e interrelación reflexiva Compuesto. I:N con PR()/F.C·TO, puesto que cada subproyccio (en el caso en que lo sea) de he serlo de un único proyecto. L'~ decir todo subproyecto e" un proyecto, por SS '.'".1 I","~"'''''' IRPI I&I'II'II~ 1 Todo lo expuesto hasta ahora queda reflejado en la figura l,oHI. '''' I "I!.I ,,1 1'1" 1 1 .... ,.... , • I',',h , l. .... I () -o 4.,... ''- -, ,., .. , """1"",,,1(1 o •• '"' ' )10 1, I, , , , ¡"ig ura / ..JO 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 en PIO)'t'l'hIS de un determinado par". pero I,IS curdinulidudc- admiridu .. 110 lo permiten (lo qUl' lelll'ja l"ta intcr relación c~ que IIn proyecto asignado U lIl1 trabajador se lleva a cnho en IIn paí" y no que todos lo, proyectos asrgnadnv a nusmo trabajador se lleven a cabo en un 1111,'''111 pall, Figura 1.41 SUPUES'rOS SEMÁNTICOS COMPLEl1EN'rARIOS REFLEJADA Se podría haber pensado inicialmente. sin tener en cuenta la entidad débil, en establecer una interrelación ternaria e ntre AS()('/¡('I()N, TRiBA.lllf)OR y I'U() )'!:..("/'(), pero al "el' cada trabajador)' cada proyecto de una única asociación no es III'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 completo lit' sent ido, '''1 1""., , I, 1" l. 1 , L 1 " 1 011 o ,.. . ,. Illt.·' .1 ,'ú",•.,. , y SEMANTICA NO • El atributo "Tipo" se puede describir como un domimo que agrupa a todos los tipos 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 . viceversa. • labría que comprobar que los subproycctos de un mismo proyecto se realizan en J el misrno país en el que se realiza el proyecto. • Tampoco se puede reflejar el hecho de que todos los proyectos trabajador sean del mismo país. .. •, , en ningún caso puede ser voluntario y asignados a un
  • 43. .-----------" 72 • Ill.f->U l>l II.SI S ni Il OS, PR( HII I'MAS KESI"I~I:~L:..!.r.:.:()c:.:s l Con nuestro diseño no podernos pueda llilhilJal en olla, o bligar a que _ _ __ " HIM un SOCIO de una asocíución horario (en caso de que esté en uso): SI es una oficina no 'ari os vocales comunidad de Cl'1110' tiene adelnas un prcsu I t e y en (nombre. apellidos y propiedad de la que son dueños) ele~ldOs entre Cada propietario .... que se encargan de tratar dlreetalnentc problemas Enunciado de finca' desea tener una hase de duu» para facilitar la gt'''liún de la in formación d ... s clientes. es decir. de las e u disiinta« coruunidadcs de vecinos que administra. La información qu debe contener la e BD concierne a los a-.pcctos que se describen a c ontinuación. La firma tene varios ahogados y cada UIlO de ellos ejerce de administrador i d una e ) Inás comunidades de vccino-. pOI lo que cobra a cada una de ellas 11110'i honorarios anuales. Una cumunidad de vecinos es gestionada por un único administrador (Nombre. I)NI y N" de (:olcgiado). Las funciones de un ad inistrador. m s bre tus que o CII cxtc raso iutcrcxa g uardar infonuaciúu, consisten en llevar la cuntubilidnd de la comunidad. g ~·,tl(lnalld() Il),~ recibos que pagan lo, vecinos mensualmente. así t'OIIlO In~ P"!!O " I;I~ distil1ta~ compuñías que proporcionan algún servicio a la comunidad (1i IIlpil'¡ a. a~~'enS()1c-, 'l' gtu idad. IU/. ctc.i. teléfono ) en distinto' persona de contacto. "'ctO C (Iu«, ,cguruJad. I UII,l ! De cada c omurudad de vecinos gestionada por la firma de ahogado, interesa almacenar UIl código identificador . su nombre, calle. código postal)' población. Cada comunidad ,'OII',ta de una serie de propiedades que pueden ser de tres tipos (vivienda surgu el código del banco en el qu se encuentra. e apuntes Es necesario .; contabiiidad'' a lrnaccnar dos tipos de d cada comunidad de v e ecinos. (ingresos y gastos) para la Por un lad o. aunque es ..:1 banco ul que emite los recih()~ .de lux c.l~ola... de cOJllunidad ti los distintos propictarios, 1:1auruiuistrador gU4lrda IJlforn1aclo11 sobre diches recibos que ... ingresan en las cuentas bancarias de las cOlllunldadl· .....es e decir. el nÚITlCrO de recibo. fecha. unportc y 'i¡ se hu podido cohra~ () no. lista última inforn1aC1<ín es irnponuntc para relizar a final de cada tnrnesire una a • las distinta ...comumdudcx de 't','111P:-' (por ()TIS. ctc.) !'>c guarda "u nombre. CIF. direccron, Además. interesa tener c'tas compañra-, agrupadas asccnvorc-. eu., l. que pudieran con el adllllnl"trador . 10~OS lo'i los distintos En cuanto a la contahilidad. cada cOlllunidad devecinos llene una cuenta en u n banco. De los di ...intos bancos se almacena el código de banco, el nOll1hr; y un~ t persona de contacto, mientras que para una cuenta ,b¡~nc~n~ ~e guarda un c~)dlgo de cuenta (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 I)e .1' Cl1lll1,·,;I que tienen contratadas ejemplu, lbcrdrolu, Uruún F'·III"H. a la que se destina. I)I~()RI,1~jltA ADl1INIS'l'RACIÓN DE "~IN('AS 9: Unu firma de abouado-, dedicada u la administración ~ se guardará la actividad relación de impagiulo .... • 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 eo hr~ln ..sus recibos (Número de recibo. fec a e importe) cargando los en la cuenta de «Ida h comunidad. particular. local comercial y oficina). Cada propiedad se caracteriza po un número de r portal, planta y letra. un nombre y apellidos del propietario c su dilección completa on (que puede ser c-ta u otra) y UIl teléfono de contacto, un porcentaje de participación en Discusión del enunciado los ga~tns de la COllll111idad así corno lo" datos de la cuenta bancaria en la que el propietario desea 'l' le domicilie el pago de los recibos PARTE 1 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 la hahit¡1 IIHlll1hle. apellidu, y Il'lélnnll dc conlactu), en (aso tic qlle esté hahitada la propiedad, Si l'l pl<lpictario ha hlta e11 la propiedad súlo ~OJl neccsarios s s dalns u (1I11111hl~"lpeIl1dn" tt·!t:lnno de contaclo). : SI 1,1 1 ienda l'., particular se g uardara el nÚ111l'n1 tic hahitaclone~ de q dispone: uc ...1 l':-' UII Inl'all'ollll'l~ial "l' alinaccnar;í el lipo dc COll1l'lcio quc t' de"arrolla en él y el "La Iinnu ,i('1I1'1'(";''' tlI)('!illdol de 11/111 (/ nlfís r'f/lllllllllhllll'S dI' II"ns , i iul« '1I1e1 de ('//0 ('/I,,.,·e tll' adllll/llllrcl(ll)/' pOI /" ,/'IC' ('11/1/ (1 (/ ('lu/a 11110 ellas de hanorarlos (l/HUI/es. Ulla (1II/IlI1Ihlll(/ d(' Vl!cillo. ('~ /otl'sriolla(/cr /"" 1111 ,¡"ir'(/IU/¡lIillISrI'IU[O/ (NII/I1/¡I'I', 1'(" i"CI, I>NI l' N" ci,' ('IIII'~I/I/III)," Se detectan COIllll pO~lhlcs entidades ;/)MINISTI?A/)()!< y C'()Ml]NII)AI) I)E VE('IN()S, No es ne¡;e ... riH una cnl1dad l' II~MA rl1C~;t(lque se trala de gc ... a tlonar "o10 la rC;lliJ,ld t",I~1I !!"'I'" 1 ¡,¡a.'l. .'.' •• ".".'1.'. '.' •••••••••••••••••••••••• '. UII'tll~~II la IIlt." ln~:'::~laclnn ,.".n.n,.".n.u~•• ,lIhr~ 1 4UI'~l.IblÍ¡¡ 4UC~ll"rd:" ..,
  • 44. •••••••••••••••••••••••• •••••••••••••••••••••• 74 OISE~() nI- B.'<;I$ n,. DATOS: PROBLPI,<; I<ESUELTOS firma en cuestión dedicada a la admini tración de fincas, es decir. sólo habría una s ocurrencia de exta entidad. Con el fin de reflejar la semántica de que un abogado ejerce tic administrador de una () varias comunidades de veci os se requiere la n interrelación I:N binaria Gestionll cuyas cardinalidades indican que una comunidad de vecinos c gestionada por un ú !> nico udministrudor y un administrador puede gc-;tionar (l bren ninguna o bien variux comunldades de vecinos. Tamhiéu ve disungue un atributo en la inrerrclacrón (;c!>li()na, los "Honoranos" que cobra cada adnunistrador a cad comunidad de v a ecinos 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 definirá corno idertillcador alternativo) v el "Nombre" . • "La.1 [une III/U" .(1)1(' 1(11' t«: ('/1 elle ('(/.10 interesa q guardar iniornuu ItÍlI. CiJIII/(t!1I ('11 llevar la cnntuhilidm! de ItI comunidad, 1!('.I/lllIllI/ld" 1 01 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 la comunldtul de e ,I'ITl'IJ) ORA M 1 El esquema EfR correspondiente aSI"'1I lores, seeuridad, 11/7.,etr.). " estos ~1f1)lICII)' scmánticc», <;e mencionan lo, recibos de la comunidad que pagan lo-, vccmo-, af COrno lo~ pago" que !'.e realizan a las compañías que ofrecen di-almos servicios a las comunidades. Estos conceptos se detallarán con SUPUCqOS adicionales en la Parte' "D« lell ('/III,rc.l'lI. C¡IIC tic ncu ('0111 rutadas las dis: I/IIl1S COI/IIIII idtules de 1'('1 inos (1'"'' ejemplo. lberdrola, Unián !-1!1I0W/. ()f'IS, ('1(',) ~e guarda .1/1 nombre, Ct F. direccum. Il!lé/ollo v 111111 persona de contacto. Además, illlC'II.'WI ICI/er estas cmnpañia« agrupadas I!II dl/II1If).~ vectores (/11:. segurulad. ti,( ,'11 lores, etc.}. .. Este supuesto semántico concierne a las empresas que prestan sus servicios a las distintas comunidades de vecinos. Así. se distingue la entidad COMPAÑÍA cuyos atributos 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 -, . . comparua pertenece iI un umco sector, apare la intcn clacirut Cuntrata entre las cutuludcx C(J!vII./NII)AI) !)F. ce I'/:('/N(JS y ('()Afl>¡ÑIA con cardinalidades ¡I,N) a cadu lado. de tal manera 411l' una comunidad de vecinos puede tener contrutadax varias cllrnpallra' (puede que no tenga nrn~lfna al pJlllcrp'o) ~ una cornparila pueue ... cOllratada por una () ':lrias cr t l (11l1UnIU,ldl" ue eCl11l1 a e primera parte se muestra en la figura 1.-12. sta tl;'"I~+I'''' t 1 II ..' ,I f.. «)"1 1 11) 11 "t.(.'IS()"j o-- "i• Figura 1.-12 PARTE 2 "D« cada COI/IIUdc!lId interesa almacenar EII DISEÑO CONl'LP11 Al 110011.11E/R ,~ I~ 1/11 udminrvnulor. tlininie:a. 1. 1111 ele l'eCI/1/)1 ,1<1'./;011(/(/(/ flor la firma de ahogados código idenuiic ador .. 1// nombre, calle, ('(;(/¡gopostu! r poblacurn. " r..n este párrafo se r dicu que 10-; a n tributos 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". " "("IC/a comunidad C(I/I.I/tl de 1111(1eru: (h' />rllllledllde,ls que JI//et/('I/ ,11'" di' tres local comen: ial y O);CIII(/). Cada proptrdad se ramcteriza pOI UII /uí/III'ro dI' portal, planta v le/ro, 111/nomln c v aprllutos del propietario COII 1'11 dtreccián completa (</111'puede ser ést« 11 otra¡ l' UII /el¿/ol/o ele COI/I(/( 10, 11/1 porcentaje ele purticipacum 1'11 los gasto« de la comunidad así CO/II11los datos de la cuellTa bancaria en la que el propietario desea se le domicilie el pago de los recibos ... 11¡1t1l tviviend« panicular. En estos supuestos semánticos se PROPIEl)AD que engloba las viviendas oficinas que forman cada comunidad interrelacion Consta entre CO!vfUNI!)AI) que una propiedad pertenece a una única propiedad corno mírumn. que existe la entidad denominada particulares. los locales comerciales ) las de vecinos. Identificamos, además, la !)F. VECINOS Y I'R(}PIEI)AD de tal forma comunidad y una comunidad consta de una indica Tmuhién l.ox ainbuto ... de la entidad I'R()PIF.{JAI) ~lIl1 "Porta!". "Planta". "Letra", "Por centajc" (que representa la pauicrpncrón en lo, gatns de la comunidad que no es 'gual para totla, la' propiecladl· .... pUl." depende dc su ta laño) ) "N° ('ul'lIta". La entidad n /JROPIl:.I)¡!) es una entidad débil pues t'atla proplcdad requicre para ... iUl'lltifit"ll'llIrI u el "Cúdi¡!.I1de ('ollllJnidad" a la que pertenece. es decir, el portal. planta y letra tll' una
  • 45. --_ u&.:lcnnill:.lU;¡propieuau pueden repetirse que ex ucccsarin añadir el "Códizo de una Plopieu¡¡d e- en distintas e ---- __ - - .' --_.c::..:...~ , ". (.~ .t:onlulllda~es de vecinos, esros atnbutos para olllunldad.1 1>,11;1 reflejar 10 d;¡I()~ del IllO(¡¡IUII :1 l'O1l1 iIlli~ll'J(1I 11(1 /'"hl(l/ "S/ 1'/ /1/'1I/'/('/rl/fO ( I/{/III'/,(', 1 I/I{/'II I/J III qu« qtu«, /11/ '/ /1' dl/t'{ II/N'//I.lfll, lu II(/hllll ,'1/ 1/1 l' 'l'l;r ('(UI/ 1 ,ahilada la /1/(1!1/('dllt! . ¡III(II «( I 'ji'l ,. 111' "0111(//(/Jllh,., nc« cvaru»; I I u'« {/{ a/, '11 / (1111111/1,.(. . ,I '1 / ('II/(/II( f'l 1, ' 1/ ,,{, "l I 1 01 1 11' ('1(11/11 ' :, '11' 1 ( !,I O{'/t'llIno e, (//J, dC' 1/11 la/os I t/ll , /111/11 (IS ('1/111 1 I ) 1 1 o). -n 1 /¡uhíla 1" I • "1(/(1// I cu: cont,« 'lo (ti (' 1'1rULO L IllSEKO ('ONCI-IYIU/L M()[)fl () foil< dr! en caso de J 1 Se modelarán la" comunidades de ecinos corno interrelaciones, A<;Í, eXIIC la Interrelación Presidente entre ('()A1UNII)AD (>/: VECIN()S) PROPIE(>AI> tic ral forma que una comunidad de vecinos tiene una única propiedad cuyo propietario e-, presidente y para una determinada propiedad puede que su propicuu io sea ti no presidente de una comunidad de vecinos. También existe 1.1 irucrrelación Yucal cuyas curdiualidudcs indican que una comunidad de vecinos tiene varios vocales (como mínimo unoj y que una determinada propiedad puede que sea Iltl vocal de una comunidad de vecinos. Además, las interrelaciones Presidente y Vocal son exclusivas pues si una propiedad figura corno presidente no puede figurar C0l110 vocal y icev ersa, El esquema 111'/"1111,( {', /'(II((c U//l1 '1 glilllr!CIIl/ 11111'111/,,: 1/ {', /111 10l'CII (: 111 • • l sr ul. l/¡',(Ir/'ollll gUllrllllra/1I ('1/ cr« la II el l' r! horan 1 (" ( 1I ('(jl'¡IIad a /1/ qiu: /1 e ( "/11/;111"/'(1 (',J (',IJI '<111,11111 H 'IN()S ('(1' ,,11 ("¡llllUllttl.tll -o (,,11e --o ( lid JI(,'I••I ~!'7" I!J:'~.~1 -. --O __ t ,(1 lit d, /¡lIhl/lle'((111", tiC' / ( {' t:»! ('(lIII"I'('i(l {/lte qu« .. , ,1 1 , , 1,'" , W' 1i,'1I , ,11 ('1 //1111"//('11/11 ,I'I! ,1'(' tlt',I'/iJltl. ..' l:~IC supUc~tn concierne '1 1) l' '1 . ' , • l ~ IpOS (e propled;JtI~, , b" 1 d 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 atributo IIdaeJ /.()e'AL ('()lIFRC'/AI ¡' I (. . e/NA lI~ne el atnhulo "Aclividad" y la enrio" ' lene os dtrrhutos opclonale~ "Tipo ('tllllcrcio" y "Hora- ti" (1111/11 I'1", "1,('IIi,{11I 10,1 1"(/IIII'I(/1I0,~, /lIldlll 1111 t/II/I/I/III l' l/lit. 1." ( /'1'''/11 '1 1(' ,{/ /I{'III' 1 / 1 (( (fc 11' (/ ('II( '{Ir'" I 1"'oh/('II/{/I (/ {'II/t/l' /11/ 1/11(' /'" ' iC(1/ l'{ 1, ( 'flllutln 1'(/I'/fll' ,,111/ I t' 11111t//' (/ir '('/ ' ,/ ( '"llIllIt' qlll I/II( 1i'1'tI11 IlIrXlr ... (111/ {'f/l/t' c'l I'kllllllntl l,n(,,"uhl o ~lIl" 'lile IN,' 1',1<11('1 1 AI< ~IIII It ,- ) I '1 ' l. (( 1/0,1 (' ('g/c (11 tlnl.h.:lil I'Ir!.:",', 1'111',lr III'~I.> 1'('1'/1/111 11 III I I .I "( 'II,I{/ rtl l/l/(/I/,{lId J)ll"luj.'ltn • I'f' 111/1(/('('1/ " '1 / U/{,I { "/JlI aso { e que EIR correspondiente a esta segunda parte se muestra en la figura 1.43. • I:n l'IHIIIlO iI lo, dutc», de] IlIquilino. ulili¿arCIlH) .', , (pu~~ puede que la propIedad no 1(.'",' ilinc .': IIn .ttnbulo l(llllplleSto opCional I ilino" ga InquI rno) lormado 1)) I ' h IIqUI 1110 (que contIene cl nurnh ' ,. 'l' '. or o..,,Iln utr», "Numhre lo" re) .11" Itdu' t.Iellnqutlll)O) v "Tclctonn de Cornac- la y vocales de wílo I'rll/'/t'(/al IlIOS. te 1:/tI(/(J {{(, 1'(lI/I(/c III) •.. t-.lodel·11'111 I(l~ ("1(10; de propicrar l" . · ' t; OS " , , :lInhUlo cOlnpuC"'IO.., Corno l l' .. ' ,¡¡110, e IllqUtllllO eje una propiedad corno atri] ' . 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 ri bUlo ope') . I " Ir e el Ion , 1'..1 n buto "Di rec . al • ,1 ,1 1 11.1 que no tcnúra valor si el ' . propll'U:tu: tcndrti un valor ~i 1'1'(11) '1' " I h' l'l (, propletano habita en su , 1<.;,1110 la Ita en otra vivienda. "S/ los presidentes O 1 e ~ 11 ('OMI1« '1,11 l'tI('{/le,I' 11It/IIS (/t!//I/l1/1 J.'lgu/a 1 -1 ~ •••••••••••••••••••••••••••••••••••••••••••••••
  • 46. ••••••••••••••••••••••• ••••••••••••••••••••••• L'''' I),'TOS. 7ll 11IU;¡() DI- 1l!,I'S PIH)IILEMAS RESIIEl OR... M~ · ro~s ____ _ e API rri,o 1, IllShÑO CONCEI'I lIAI.. MODEL.O F.IR 71) ~.):..::Rc::A...::M::.;!. Podría pensarse que e necesaria s PARTE 3 "Ln ,111111/11 a 1'/1 /111 /'tlIII ti /I,II/I/',t' 't' y RECIBO CUENTA la I),'!ln 1 11110//,'1 guau/u (/'/llalllllC/ad, dll!l/{I de 'l;t'lIltI l' lo, '0/111 d« (0/11111 ("11//11/ dI' aiuultr 1/1I1.'/l/ra tuuc (11('/1/(1 " 1111 numero 111" ,'1,1/'10 'CI/lIII banco» se 1I/II/LlC{'/lC/ '1 ( d/IIIIII'/ 1111("dIgo canunudud de "1/(/0 de tO/I,/(1 ('111'/1/11) 101 11/ ('(Jdi~o de 11/1 11/111(111'/11(1 d,' I'o/hlt0 hO/lCO, 111111,'I/,'/lltI 1/111' {'(IIt1 ti" I;I'/lt' (o,lIgo d« saldo. Puro (111'111111'/ (odl,l!o puesto que Corresponde dl'//IIII/I'O información y Controlada, "FII C/lCIIIIO o los 1!1I11(/.1 11' tienen 10. 11I1/,orle,1 que C"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 dOI Id('II/Iti(',/I CUe)TA el /111111'(11/11 II((U/IU/, e ta s una int rrelación Se Ingresa entre las entidades e C()MUNIDAD, pero esta interrelación es redundante pued obtenerse a través de las interrelaciones e 111111 careándolos t'1! 1'/ (/IIt' lo: UI'IIII/e, ,eIOIIl'(I, t'" lo (IU'1I111 di' cada 11 (,OIlIIlIlIl/lId" Il' ( 11('lIt'II//'/ 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 "Persona de Contacto". La cntldad ('I/E¡V"/i es una entidad d ébil pues una cuenta necesita el código de banco en que se ellcuentra para su identificación; por ello, el identificador principal de ('I/E¡V'li es la concatenación de los atributos "Su,cursar', "()C". ~<.lígllO de control), "Número" y "Código Banco", Además, la entidad (l/ENI, también contiene el atributo "Saldo" Paru ":tlIHl":<:' mtcrrclacron qué cuenta ('ulllrubula t icnc entre cada comunidad ('()A11/¡V/[),/) de vecino- /J/:. '/:(_'/¡V()S xc necesita )' CI/LN7, cardinalid"llk'~ dcnoum que una comunidad ti ne una única cuenta asociada e dcterminuda cuenta CIlIIC"flondl' a una única comunidad de vecinos , F1 l 11(1 ,'(II u» 0111,,,(','1111/ 1I1"'~de el/JI ontalululcul dI' , ,lcI<I ""/III1/II.1<1d dI! 1'1 1/111' 1'1I111e 101 prol,il'l,1I10, H'( ti"" .Ir <,1lI,hlll/llllrat/o/ 1' 11I1:/'t'11/11.'11 {¡H ,1I1'/I/{l1 la -; El esquema E/R correspondiente . cuyas )' qu una e " , '('1'1/10.1. 111. CIII'/lIS de (,(//IIII1II1/atl ~ ~) -J-_-, I "., l -JI"". ~'·I~_..., _ _.. o • 110 ('lIdtl .. v , última trunrstre /lIU/ no). Pala ,al)l'r ,1 qué propiedad pertenece cada recibo se IlCCC:lllI la illlclll'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 única rl'l)pil'rlad y que a una [1I0picdatl le corresponden vanos rec ibox. <» o!-r "". " . E.IO -c. - , f.) . .;:,..._·=r- I ,,, '1"',,, :V e 'I!' l· I ",",'1 ~¡'llll/(/ re( Ibo;, que rnfonnacion sobr« dtcho« banciu ias de la-; camuniduilrs, es decir. I'I/IIIIIU'/'I> .11 ...¡II -, ti •• • ,.! l." ",! • I o '..¡,o. ¡ O' ,. -(). "'1 '~""'!'-- ..... r.. -<> 11 "," guard« f) a esta parte se muestra en la figura 1,44, .... , " 1'lIgr,',, l' ~II.I/'" J P,'IO la P"r 1111lado. '11111<//1<','.1 ('1 "11111'11 En cuanto a la gestión de lo... recibos, en este párrafo se distingue la entidad RECI/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 l - ,IPIIIIII'I de recibo. [crh«. 11111/1)/'/1.' y SI ,le "a podido cobrar 1lIjon/lal'itÍlI t', importuntr para realizar a [inal de rclcu ItÍlI di' 1/l1"Il~CII/()I''. se ha cohrado En relación con los gastos de las comunidades. se necesita la entidad RE('IR() , COI1PANIA 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 un recibo corresponde a una única compñía y que una compañía puede emitir vario a s recibos, Por último, la interrelación Se Carga entre Rt.'C/B() ('()MPAÑÍII y CUEN7A denota en qué cuentas se cargan lo distintos recibos que emiten las empresas (un s recibo se carga e una única cuenta y en una cuenta se pueden cargar varios recibos). n , =5 , _ i) ,,' " , . F;~lIr(1 /,..J..J O!--I jI •
  • 47. ~ ( RÁ '1/ XII 1l1"1 ['() 111 1 ~I "1_11 11, 100;' I'KOBl I'MAS RI-.SliELTOS QRA·MA ( lrfTUl () 1: nlSi!Ño CONCEPTIIAL: lo.10DELOF./R 3J_ ______________ Propuesta de solución 1:1C~qUI!111UFJR final mue-ara en 1 figura 1,45, a C ..¿;: o 1 , .. , .. " .... r • -, " 1 ~__ l ':" '. ( . , 1 -<;". I / I . . r ", ~' ... , 1"'"'''',, ..,..,.' 11'' ","'.." " " , ,., ,,',.., , [ "'" ~ '. " " 01. / .,... ',11 " . o , _() I / ..j,~""" "'-' " 7-"- " . , <> E~ ..' _,o 1 .. '.1' ,- , '" ' ro t l' " .' 1"""";/1 " '" 'ti, /' "'11 "." ,,'11 ,/ -,r, 11' , .. ' ( , "1 " ,I , I r"<) tI' , ,_, • -_.. 10'1 j , ,! ,,!. II'H """'10 , ... , , ",,,1 ' "',, .. '..... ,.. , "." ..... .... 10, t ,, -~. l 11 ~..¡ ,.. I,,,,,"~ . (,~(" ('> O [ t .. + +! (1 " + '" ,, ~ "., 1" ',' ti, O .", ' 'I'! " "._- ...... ,1-, ", (j . , ! , () 111'1', 1'11'1' I It 11. , . . ~ e'''''' '.11'1' 0--1 " t k)tIW'cl.'I 'Ioo.'lll.' c,,,,,"··I '. - 1:~ {j".• - , .- - '" ~ v U I "'~""l'" ,..~." .. ,-, . l. " ~!I _. , 9 ~--" .......... • 1 ., ,ell.'1! 4 , . , • 7 o , " ,---' ,I I tI, ',11 ., 1, <:» ,_,,,,-O, ''','/ / ... '," ¡ 'r' ~ '1' ,,~ " .... / .....-, 1" 11' "/ -, <~' , '-4 , ' n" " .. ,- - '" l·...... "y_y ,,... (1, 1 "', , T j ~ "I[ - .... _.I'_;V"1_ _".'.".' 1, (1 "., ,"~II ,C"IIII",f 4.lf~'f .... l...... ,. , , Fivura /,46 Figura /,45 lixistcn otra' posibilidades de modelado de algunos "'UI~u~sto<; emánticos de este s C¡I<;O Por ejemplo. en la:- entidades R/~C~/R() C'()tl1PAN/A. i. I?EC'/RO, (:~?~A C'()/'.1UN/I>A/) se ob-crvu que existen tres atributos comunes r Número Recibo", l-echa" e "lrnportc"): esto nos indica que sería posible definir una jerarquía total y exc lusi va cuyo supcrt ipo fuese la ent idad R EC'/ H() y cuyos subtipos f~esen RI;;('/IJO ('()ftt/P,ÑI, y 1?/;('/lJ() ('l/()7, ('()A1UNIIJ//J, C0l110 muestra la Iigura 146, La entidad 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 subtipo mantcndr mn las 111isIIHIS intcrrclacroncs que las definidas en el esquema E/R propuesto como xulu, ion. ,'PillO Sl' pueden observar eu la figura 1,4h, Otra posibilidad es mantener también una jerarquía de cuenta" entre las cuentas bancarias de las comunidades y la~ cuentas de los propietarios. C0l110 se muestra en la figura 1.47, Así, la entidad supertipo scrfu (-UENTA con "Cód Cucrua" corno identificador 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 eliminada el atributo "N° Cuenta' de la entidad /'/«)/'IEDAD y se definiría una nueva interrelación denominada Es De cnuc la~ entidades PR()P/E/)AD y C'IJJ:_'N1i /'/((). PIETAR/(), de tal forma que una cuenta de propietario pert nece a una única e propiedad y una propiedad tiene una única cuerna de propietario, • ••••••••••••••••••••••••••••••••••••••••••••••
  • 48. ••••••••••••••••••••••••• t •••••••••••••••••••• PII·() Ill: 11.<'1 11111 1 S Il I{I 111·110:-' l'i{OIIlI"I' • ~ , , 1< "-1, • • .llIecl, ion) 1 ~lflllLI()I:/R PII()(I)i:(II'1l ('aua 'ahncallll' puede trahnjur con vurros drxtnburdorcx 11.lh,q.1 al 11IL'no, COII un tahrrcnnte. r)l' un dlll1hlllt!Or 'L' ",,,,,,,,,.1 ... . C 1'1111(11 1' ~1 y carla di-tribuidor UI~pOl1e del lit 11 brc. 11 de numen» de 11.'!t'lolHl 111101 rl'lal'lon Un'! l')I, 111.1 1,1 componen una '1:111,' de muehle-, tlt' l'OCII1:1 de tll ...unto upu, l'ada 11uchlc IIl' l'lIllll.l '010 pod r" Ionn.u P,lIlt' U<.: una UIIII.:.I cocin.i t De una COLIIUl no, e 1 nutucro JI.' mueble 11Il'II.";1,,,hel que la l,'0I1I)10l1l'l1. a'l 1.:'011111 cuúntos tic ello, h.l) .11,' l.lda Ilpo • • Iw_~ (·.ld.1l'Ol'lna la puede vender un único dr-tnhurdor CI1 una determinada 1' ,,'dl'l una L'CH;iIHI .,... dixrribuidor vender varia ... cocinav, a otro, para que éstep"l,'da venderla. i1U 1rq U 1,' l·at.la vcniu. pu ede al 111CII<,"" n 1111l111ad11. u ('ada cocma la dehe montar , ¡, •• • , lJI1 disrrihuidor cocinas. 1)1.' un montador 1l0~ interesa su NII'. nombre. 11l111H:1'<1 dl' tel':fell)(l y el número de cocin.rx qut' ha monuulo. <:« ~II.,': .~~Jj , puede y ,'1 111i~lnl) montador puede uronrar varias , 1:<.:h.1de dirección, único , I • pueden coruprarlu UIHI () 'ar,,'~ chcurc .... ) el 1111"1110 el icntc puede ,,'lnpl"l I'ari,¡o.,'ocin,J" I)c un cliente no~ 111<':II,' xu NIF. '11 nomhr«. dirección y , ... a 11111,'(numc, (1 .11,' 1~' k'lnl1l1, 1 ;1;/1/11 1 -li' •, Discuskin del enunciado ('ada , ,l'I"UES'f()S Sf~t1'"rl('()S ('()tII'I,EIE1'T¡I~I()S" SE:ItN ru. vo 1.'0Cill;1 l' R l'l' 1 :tJo:FI ,Jo:J ¡ 1), 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", un« "//11 '1'/1,' ,Ii".' (,/I/( //0 ('1,,111"11/('' Enunciado f'oJo, rquello- elementos que le a 11'<.:1 Del resultado un. del all;íli,i~ quc rcali/a obtiene la~ .iguicrucs inlurtnacioncs Hay una ~l'rÍl' tll' ,'ahl il';lnle de 11I1Il'hle~ cucin», de Jc un nombre. una dirección y uua rclacrón de I1Ullll'I()~ varil1~ 11luehk'l tll,' (:'(I'lIla. l fn Il1l1l'hlt, tll' delel nlil1:tdll l..'olclI. IIl1a' dlllll,'II~I()nC~ dadas 1111:1 tlt· 1,1 ,igllll.'l1ll'~ l': tll'gull;" l'l 'hIY'1I1l'~: .111 '111,'11111,'1':1 ,·lIlI1I1CI.I' I)e /lI r~o}, alt t» , "11>1'1' /11 /i"" ttnurmn! ,1 {I/I('d, < de lu» "t:II/I'lIf," pan«! 1'11, 111/('10. /)(' 'I'II' , 11//0 11111('/'/" h,iO aluu « ,,¡('n' ,,/ vurl« lI~/"""'I(1d(l¡. " 1" lu» ,'//( "lI(('t:(I,.,~/ /0' 1I11/('II/¡., 1/{II'/III' ;///1'/'(',"(/ dedil'ada a I'Cl1l11'ICi:lli/:II' cocina-, desea <l1I111I.:nlal su control ,11(1I'C Una l'llIprt'a i';lhrica ,1/1 /(/1>11<<1111(" 1/11I"hlt, ;11/('1 ,"O "11",, ,/, Út' L'Ol'IIHI (alltlHl l:ad~ luhricuutc 11.'1151'01111, l'ada [)I.: li!':IIC '1 altl) IIHII,·hk' allo, IllIa '1 C 11I1l1 de dell'lIllill:ld" lalgo). IIHll·hll.' y clhls lil1~'a, pl.l.'dc 11,'111..'1 h"jll. IIl1ll'hl', halO' IlIlcrC~:t ,ahcl la ,dllll;1 ,(lhlc cl 0.,111,'111 1I11l·I'l".1 'ah.: 1 '11 111'(1 (1llarlllolo aglollll'I"ldo I 111 dixpunc palll'l , dI.' 1,1' En l'~It' pnmcr párrafo se la~ cntidadc«, 1''AB/?/('A,fl/7'E o /1 1:I1I.1~.n, lahncnntc ucnen una "'CrIL' ue utrihuto-, que '011 "Nombre" "I)ircl'l'irill:' I "Ielcrollo", l'SI~' uhimo se Irala de UI1 utrihutn multivnluado. pues ~111 fabricante PIII"!.: tener I'ano, numcrox de l(.'lé"lIl)~. l', tiL' suponer l]1I1.' dns Iuhricanres no pueden iL'lk'l ..:1uusmo 1l0111hrl·. por I'CL'IIIH1CCllinicralmeutc 1I1 que :--1..' empleara el alrihllltl "Nombre" t'OIl(1 ldcrultl- ,':.dlll prilll'lp:d de 111 di~llllll), e.l cllplarl·s de 1.'1;1 l'1I1i¡!;ld. adl.'lll;í~ plI<.:de t.1111hil'll '"II(~"l'I~C tlllC 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;1111, )1,' Ill'l1l' "dl'1I1;1' IIP"lIl'III<I, '1l1c' lI¡dl! IIl1l'rrl,·I.I~ 11111 1 N Fahril'u ('lItlC l·... do l·nllt!,uJe:--. "1 t:I r"hlll,':ll1ll' de IlIuchlL" dI,' 1,"11.111,1 1" l', ]11114"' lahrk'¡) 111111,'hlc 111,' IIl1a
  • 49. mxtxt im II,I,IH Pc.~ l l' ~IIIIII~I"!(I,IIIII):-' I Il 1 1 - { 1'111 11I1 1111( J c 11( I 1'11 1 1()11I101 -- iR s,i Il·ln.1. pomlremo-, l'arLlIIl<llldaJ nunuua l. ahora bien. ~i ... poncnu» qUI' podcnu», u 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 ... 1aran 111, l'ablll:<ll1ll· ... ante ... de qlll' l·,lo ... 1 I1PI.·I.II,111.1 prucluc u 'l' pOllIl,1 "'IIPIlIII.·r l.lIdlnalrdad 1111111111:1 O. 111(.111111 IIlIe ... I11 ... CI1 1 1 1) plll la prllll 'I<1 tl ' la ... 11Pllllll·... Plll c oniru. ... l l IIlJo mueble lo debl' 1.11111 UI1 . .11 -rcrrnin.ulo r.lhnl·,lIl1l· ~ 110 ... l'OIK ibc que ha~ a mueble ...no labnc ..J", plll n.uhc, pClI e que 1;1lartllllaltdad 111111111'I.1 1 'l1.1 l.n lualllo ;1 la cnudad /1 'l-Bl l.. note ... la JI ... ron en ario ... lipo ... que dc l·... .1 e une I . hace. l'II1'ldcrarcnlll'" que l' ... :I 1.1.I..l icución da lugar .1 una jCI urquui .jUL' "'L'I;r 101." ~ I .i cclu ...vn en la que el "UpClllpll -cru 1 cnridad ¡ll't:UL/:·. micntra ...quc lo, ... i .. ubupo ... :rall la-, cntidadc-, /-./'1/('1,.1/:/( ... ,ll'I:·UI./: ,/.T(). ¡ti'FUI.!:' HA}() y l'rI,V/:L. C'ada no de 10 L'j'lllplalc~ de ¡Ji ,~nl./: tiene unas caructcnsuca ...que "L'r:ín L'OI1UII'" 1 . .ialquicra de IIIS xubtipo-, )' que con ...uuirtin por tanto lo., aiributo-, del <upeu ipo. "" i -ndr.i asi l(l~ amhut.» "Linea". "Color", ",ncho", " lto .. y "Largo". Dado que <e reA uicrc un identificador en l.''''a entidad )' ninguno de los atributos. ni lIin~lIJ1;1 ,'11111· inacióu de é~tcl,> idcntiticu lll1lll'~IIIl'IIIC a l(l~ di'cl'~lI' cjcrnplarc ...de 111/1:81.1:. 'l' 11 roducc UII urributo "('('HII)1p" (jUl' ...'r:.í el identificador l principal de c,ta en tidad. 1:11 u.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" (",/,/ ,0/'I/.cllll,· ,[1(/,¡/'II/c!1/1 ,/1/10'111' (I,t/'II(tI /I/I'·.lc o/ .l1·[II,'"""C'. dllc', 1/1/1'/11111 C(l/l suru» , /O/'II( 011(, 1)(' 1/11 ./I(III'//ld", 1111'1rrlm ron d,' 111111/. /'(1 1/' (""'1"/1" " 1//,111/ ,"11 11"11 cl'I/II'"I.I,,/,·, l ItI/ " T r.__ _.!.-l-~1>,1, 1'1 11{IHljI",11 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...l un.1 , 'l ~cnl'rali7.ación de alllha. (·Jllluad.' y que é~ta:-. d(~ l·J11idac..lcs no ,tlJI sino "'UPllpns de : JI la cnliJad qUL' podrril 11: 1I11ar'l' 1:',1PR I:.S/: C...la ~.'nL'raI il aci6n ral'cc ca I'l'll' ( ur ' nlcré:-. ~I1 estc L'a~ll, ya 4uc l'~,1 cntuJad 1111 ~ería In:ís que UIl concl'J11n anificlalnlcnll' :slablecido q c C¡¡ll·l'l.'ría tll' tilia tll' la ... plllpiedat.lt.'s ese u nciales 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' :-'1 nll l la', ~illo lan ~(llo ll4uellas 11 qu!..' puedall s'r lahri<.:aJ11C t) lislrihuiLlol'il!o. PI)! ' tI' 1111i 1•.l' rL·l.;l1a'l.<I 11 c),lu ¡.!cll.'rali/aclúlI. I'.nlr.' 111 lahli :IIIIC:-' ' IISlIihuldllrc,. c eXiste ulla inlcrIchlCIÚn 'I'rahaja. 1'1,1 11l1l'11'l'la¡:ioll c' tll' tipO N.11: ad.'llla~ 1.:01110tod( t.Ilslllhuidol dchl' 11ah~lial al 111.'1111' CIlI1 llll t'ahlicanle :-.clÍl'IIL' ull.ll·;¡rdlll.llidad 11IInlllla ,1 il ~X) ______ 11 JC I l' " I I .,., tI,·, 'h' l: itt //111 I.'¡,' l' Irl Jo. ! "/ 11(/ ,,1, 1I1t/ ",d,/ lo 111111 ,'111 '1'11111/'1/,'// .t" ¡III/I !>Ie''/, el,' , 11//1111.I, '/1111//(1/ /11'". pur¡« el.. 11//(/ 1111/111 C/I'IIIII /Ji' 11/111 11111";'/", , IIC IIIU 1'"/'1''/11111'"1/111 / '''' //11111.. ' 111(1'/""1 ,,'/,," '-/111/111('1(1 .tI' 11111['1>1,', ,/1/,' , 1I/1IJ1", d, ,1111, d,' ,,,,/(/ (//'(1 " un u II11 ;1 cnudad /}/.~ IN/ni 'II)()/( ~ una mtcm-lacion Trabaju ,·,HI l•• C IItidad rARR/(·,fo,'ll. lo'> alllhuto ...c..Ic)1/ R¡RI 'II)()N. de J1lanCra ,iolil.lr.1 1 In qlll' )a ... ba l'on la enlidad ¡.UNI( .V·I1.:.,cr:.ín .. "'IlI11pr,· ... ")ircl'l'illll" u I ~ '" IL'léflJ1O" 1.'1)11 "" l11iSI1I(I' caracterí'lll'¡¡'" qut.' Il'l1í¡¡1I J1 /'-, UN/C AN7'1:, ~ J l. I l •• ,'1,/" Sc tiene 1 ..... 1'.11 k: ' "u, "'l' /11 , ""1/'''//('11 1/1 ('1111/11 uiuoducc una nueva cnudud (·(J('/N. que mauucne una uucrrelución I:N ( "nl_pune l'~1J1 1.1cnlidad ,/{ 'F.HL/:·, JlO todo Il1lK'ble fllnnarú p .lrtc de una cocina c . arhn.dldaJ ITllnlnl.1 O. rcro ~í IOt.lu cocina la 'lo(npondrá al nlCllO ... un 1l1lIchlc:. cardillali: ,,1 1111 I1na 1. Para di~poner UL' un idcnlificador JI prineipal l'l1 la l'nlidau ('()CINA. re. ",11110"; IJllroJ~It.'lr el alrihUlO "Cót.ligo" adCl11ü'" dc C...c alnpulll. , l e~la enlidad lien:los .~lIIL'llIl'" .:11nhulo.... "'l_J'vl uchlc", .. N_All(~" . "N_Rajo...... "N_Enc i lile ras .. ' P;¡nc'IL'~ . IOJlh ellos son cnk'ulabes l ¡j partir de lo~ Inucblc, qu<.: COlllrl)JlC cad:, n " 111,1. cl1(1 ,e tratan ((lIno al pUl ribulos dcrivado,. "Clltlo I"'/II~ ,'u, 11111 dI' ,I1.'II/h/l/l/ol' '(J II/Ic'd,' "1'1111"1 1·,'11(1/. (111111/1/,' ClII/(/ PUI'rI,' C 'I'tll'I'UIIII /11/ ';,1;('1/ IIII(,.,I>UII/OI 'lit 1/1(/ el t!;"r¡¡'l/itl(l1 /II/I'dl' ,'11 111111.1"("111111111<111 l't'/ldl'l /1(/,,,. /)(//1/ (//1/ ' ('."1' 1111'111.('(//';/1111. /I//,'do //1/ 1'/'//(/1'1'/(/. " )l' lillIC tilla iJlIl'rr.'laclon ' :N Vende l'nln: la~ l'lIlidade ... ('()('/N1 I i 1/, 1 11'/1// 111)( J/' "l" , . l' . . 1, ~S.I Illtcnt '1'11,:11)11 . un atnhuto . .' lll.'JIl' pUpll1 que l'~ la "Fecha dc IVell) l . I S.' inlerrel;H :llÍn r.'llc:-.iv1 N'~l ('''de "1) l' en l'd' .tt 1 /1//1<1/111 !I'IIC .Idcln:.í" • , olra ,. · . ... ... .1 I I I 11)()R, dU1It11ll' 110 .... UIl'C en el CIIlIIIl'latlo c pUl·tle SUpoJler-;e qu UI1 e ,IIIIIllllllI J'U l'lk'll'lc'r ~ lC!'oIOI1." a 'unn, ll~tn 1 1llI 1 '. ' l' •1 • l (lre qUl' l'l Illi~lnll u''''lnhuitlor I ,tu " Il',lhlr lL'1I1I1C t.Ic ario ...di"lnhllid(J't:, . •••••••••••••••••••••••••••••••••••••••••••••••
  • 50. ••••••••••••••••••••••• •••••••••••••••••••••••• ~ñ IlIS1.:':() 1)( flA~I~1I1 1), IO.".I'K(HII.I·M,S KI'SlIr.1 I()S El resultado de rodas las consideraciones figura 1.-19. ORA MA realizadas en esta parte se presenta en la 1111 1'" 111. 1 , /-_,L___ 11'1 111L .J..__-', (1)(1;· IU.nl I Lnl N I ncuucra I)IS I'RIIHIII ___."' Dircccion CAPÍl ULO 1 DISENO CONCEPTUAL: MODELO ElR -----' Xi pueden ceder varias. Además, cada distribuidor que cede y cada cocina cedida sólo puede cederse exactamente a otro distribuidor (uno y sólo uno). Por último. por cada cocina y cada distribuidor que la recibe sólo se la puede haber cedido exactamente otro distribuidor. 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 misma entidad DISTRIBUIDOR aparezca dos veces en la Interrelación ternaria no influye en el proceso de s simplificación. Debería asegurarse además mediante una restricción u que no se puede reflejar en el esquema E/R que siempre que haya ejemplares en la interrelación Cede debería haber ejemplares en la interrelación Recibe. dado que en otro caso podría haber cocinas cedidas por un distribuidor p ero no recibidas por ningún otro )()I{ 10.'11 d) DISTKIIlUI nOR IU. 1) ¡: N:M 'Tnl.1 LN 10, I ) IN l'lgll/(/ Con la antcllol ((J. e..dc : 1) 1:N /.-19 inrcrrcluciou Cede se rcgistranan tan sólo las cesiones e tre n di ...rihuidorc-. 111 tener en cuenta qué coci a ha "ido cedida en cada cesión, dado que t n el enunciado no dice nada al respecto, se haptado por esta solución a fin de o simplificar: <rn embargo, si "equisiera captar mayor semántica y reflejar en cada cesión la cocina ccdid u, xe tendría que establecer la interrelación ternaria presentada en la figura 1.50. 11, 1, IJI~TRllllII J)Of{ 1.1 I 1 1 11) (0.:-: I COCINA Figura 1.51 PARTE 3 "Cado cocilla la debe montar al IIII'III1I 1111 montador, y e/ 1//;/1/(1 montador puede 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 Ira IIIOII/odo. " (11111' II N Figura 1.50 La lectura que de l·... interrelación ternaria se reahzu e que plll cada disu ihuidor tu qur cede l::lda dl..;1Iibuidor que recibe se cee una coc d ina corno mínimo. pero se Surge una nueva entidad M()N'/i/)()!< con una interrelación N Monta con :M la entidad CO('INA. esta interrelación tiene cardinalidad rninimu 1 en ambos extremos. 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 este dato esta implícitamente presente en la imcrrelación Monta. además consideraremos COl1l0 identificador pri ncipal de e~la entidad el "N 1F" y COl110ident ificador es
  • 51. (.,PIII'LO I DISEN() ('O"CI ----- -----------'X~ IlISI1() 1>1 11"SI'" DE ,'> KI.Sll'[ D' ros I'KOIlII'I ,'nI 1/111pued« cliente plII'dl' ,('1 ('()II'f)/,(1/ ('tI,n/'nulll ,'orUI,1 "(1,,11'/'1', t!I/','(','i/l" lí,"('(I 1101' ,'(/ci/lOS, numrrn II()[).. LOI·JR XI) T()~..:<;:.___ Puede observarse .... I embargo. que la interrelación Compra entre C'()CINA y n CUENTI: e<; semántican1l'nte cO lllplclllcntaria de la Interrelación Vende entre COCINA y n/STRI8{JI[)()R, y que aunque por el enunciado no sería ec;lrtctamentc alternauvo- la "Dirección" y el "l'eléfono". En este caso. "Teléfono" no es un atributo multivaluado. puc, por cada montador so ,1.: nene un uruco numero de teléfono, lo "Cadu 1'11I,L. "/111 1I ,'(11/0 1)1' 1111 (/i,'IIII' (/11'/111',1, /1(11 ('1 preciso, podría recogerse mayor __ cmánticu tratando de fundir estas dos interrclaciollc'o en una úniea il1ten'elacitílllcmaria <figura 1.5:). '/11.1111) 1/11"1/',(/ ,111 NIF, elt' fl'lcl;/III1, ., I IN Aparece una nuva cnudad ('LI/-~N'IE con atnbl1t()~ similatex la entidad e A/(>N'I,n()u. puede pensarse aquí nuevamente en una g,cnl'lali¡aCIÚn similar a la que planleaharl111S con FAURICANTF. y /)/STR/IJUIL)()R. pero se rechaza por motivos , 1, I ) I I II IIIS I RIBI IIII1K ...mitares. i cut.. 1 Del enunciado se desprende que hay una interrelación N.M Compra entidad ('()('/IV¡.la cual tiene carúin:¡lidad mínima 1 en alllho, extremos con la t l. N) l 1 1I N'II- El resultado de todas las c()n~idcracloncs realizadas en c~ta parte, se presenta en la tigur ¡¡ I ..i2. ' Figll ru 1.53 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 IXII II. ip.uuc-, adenIa ...dado que la .. f~l.ha ... de cntu ) de COIl1)!' a coincidrrlan se tendría para las compras l'~le dato corno Illlllnl1al'illn athLIOllal Si a"" Itl I1l~ lIOK 1 níciéramos. resultaría la intcrrclacióu ternaria presente en la figura 1,5:, Aunque en esta solución no se recogería. al 111'':110<; l'xplícltarnentc en el csquernu E/R, el hecho de que un cliente puede comprar varias cocinas (,11 mismo o a diferentes di!-'Iribuil.lurcs) que SI se refleja en el enunciado. Por este motivo. optamos por la primera solución y no rundir esa~ I Lm interrelaciones. Propuesta de solución Agrupal110'" las disllnta, "'lllucione'< parciales obtenidas en la figura 1.5ol. Vemos que en la "'lhICI1l1 llhtenlJa aparece un ciclo, Icalilan10s un análisr- de redul1thlnCliI para C0l11plPhal que 111 hay ninguna inlcn'claci{nl redundante, lu cual resultu claro, pues la :-;cln;ínlic¡¡ Il'c(1)::!Ída en cada una d las interrelaciones e es diferente de la obteruda a lo largo del ciclo, L'I ¡¡ni!,.'n~'aso dudoso se presenta con la intcnl'la!,.'i<Í1l 'I' r ahaja, de la l ual pouría pt:I1~;lf~l'que l'-; r,;-dundantc. "in embargo. e-ro nO e~ a-;í. Y¡I que el diqnOllllh 11 que ende una cocina puede no trabaju con el [abricunte (porque le haya r Sido cedida por otro quc "'1 trahaFI con el fabncantc), I'nl tanto. no hay ninguna IIII'NI! intcrrclac HIn redundante ""1111/ I 'i2 • ••••••••••••••••••••••••• ••••••••••••••••••••••
  • 52. ~ •••••••••••••••••••••• 'JlI DISI-.ÑODE BASES DE DATOS' PROBLEMAS RESIIELTOS n 1....1 •••• ) ',. ...., )' • "1" 1111'" .'I! I ¡'¡, ,..' T 1 ~:' ", l e <riTlIl.O 1. DISI:'510CONCt'l' 1IIAL: MOllI'I.0 EfR 'JI ___::Q:..::R::::A::::.M~A 11 1'" ,~. ",.,1 ,· .. •••••••••••••••••••••• , ,, 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 dos clientes se di Icrencian por un código unico . Cada cliente puede ser avalado pOI ouo cliente de la empresa. I ,llkll'""1 Una reserva la realiza un unico cliente pero puede involucrar a varios coches. Es importante registrar la fecha de inicio y final de la reserva, el precio del alquiler de cada uno de los coches. los litros de gasolina en el depósito en el momento de realizar la reserva. el precio total de la reserva y un indicador de si el coche o los coches han sido entregados. No se mantienen 11 I t ti, I I v, " L' I~.I ........ .. .... '" ,'l 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. ' o" los datos de reservas anteriores. .~ Cada reserva se realiza en una determinada "'iRII/'(/ 1.54 agencia. Discusión del enunciado SUPUEST()S SEl-lÁNTIC()S REFI,EJADA COMI)I,EMENTARI()S y S":I-IÁNTICA N() PARTE 1 • 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 cocina cedida. entre distribuidores no interesa recoger la • Se ha supuesto que todo rnontador ha montado al menos una cocina. • Se ha supuesto que todo cliente ha comprado al menos una cocina. Por último, no figuran supuestos podido recoger. semánticos ileternunado cliente IHlt'tlt' tener t'1I 1I11 1I101l1C/I/O ciado 11"I'lIa.l varias reservas. De cada I'lí('III(' tI' desea uhnnrenar Sil DNI, nombre, direccián v tetéfono. Además dos clientes se diferenrian por 1111 códígOlíll/('(J. " "["/1 "Cada cliente 171/(,(/{' ser 11I-akula flo/' otro cliente de la empresa. .. 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 el código ("Cód_Cli") como identificador principal y el "DNI" corno identificador altematí '0. en el enunciado que no se hayan Enunciado Entre las entidades C'LI/!NTE y RESERVA existe una interrelación Realiza. Como los clientes pueden realizar varías reservas. y no se nos dice nada en contra de que los clientes puedan no realizar runguna. las cardinalidades mínima y máxima de la interrelación en el extremo de la entidad reserva serán. respectivamente, () y n. En cuanto " las cardinalidades ele la entidad cliente y, por tanto del tipo d e correspondencia de la mtcrrrclación. todavía no tenemos suficiente infounación para dilucidarlas. Se de ... diseñar una base de dato, sobre la información de la ...reservas de una ea cmpre ... dedicada al alquiler de autornóvilc-, teniendo en cuenta que. a Cada cliente puede ... .1 alado por otro cliente. extamov ame una interrelación el reflexivu. cuyas cardinalidades mimma )'máxima serán O) l en este sentido, E" mus. PR()I~I.EMA11: ALQUIIJI~R DE VEHÍCUI,OS
  • 53. '12 I>I<;I'NO 111' Il SI,S 111 1), I(lS I'_I{OIlII''IAS RESI'EI.T;_::0.c:.S ( AI'Ill.1l.0 _ serñ I:N, hechas hasta el momento quedan reflejadas en la figura 1,55, KI.~IR , , 1)11 ;111'1 .. ~ 1 " I '111"<'11 '>1 En cuanto a los atributos de la e tidad I?!~'S":RVA,como en el enunciado no se n nos dice nada acerca de corno se identifican In" distinta" reservas, podernos considerar un atributo código de reserva "('úd_R" como identificador prin cipal. El precio de alquiler de cada coche "P_ilquiler" debe ser un atributo propio de la interrelación Involucra, Por último, el precio total ele la reserva "Precio , T" será un atributo derivado calculable a partir del precio de alquiler de cada lino de los coches involucrados en la reserva, In, 11) Todo lo descrito 11) o E/R Por otra parte, C01110 una reserva puede involucrar a varios Loces, tenemos UII h nuevo tipo de entidad C()CH!~', que se relaciona COII RESERV, mediante interrelación Involucra, co cardinalidad n m áxima 11, Además. parece logico pensar que cada reserva involucra corno rnfnimo a un coche ( ardinalidad mmima l l. Por otro lado, un c coche e"tá involucrado n una uruca reserva (recordemos que no se almacena la e historiJ de reserva ... con lo que la~ canlmahdadcx l. mnuma ~ m irna de la entidd áx a R/:.,L:.I<'A con respecto a ('()('I!F son I )' 1. rcspccrivameruc. Por todo ello, el tipo de correspondencia de la mtcrrelacrón Involucra c" 1'N, En el l a~o en que se preci ... ra a almacenar 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). un cliente puede avalar corno mínimo a () clientes y COIIlO máximo 41 11, pucs el rrespondencia enunciado no impone ninguna restricción, Por lodo ello el tipo de co rod<l~ I:I~ convrdcractone« 1 DISENO CON(,I,P1 tJ¡l.: MODFl en esta segunda parle aparece reflejado en la figura 1,56, 1) '".tll 111I I ,,,l' 1, ~-----------------~ IN .ü 111 ._ 11 1I Figura 1,55 , 111.111 [ll I',c.... ", r PARTE 2 r,'('/1'(/ ItI rratr:a hes. .. "(111(1 cO( 1111 IÍ/I;CO clsente pero puede mvolucrur n 1'(1/"", (1 I , 0'11 "--1 de inicio vfinul de la reserva. el prerio del alquiler de cuda U/lII de 10,1 coche», los 1;/1'0.1 de gasolina ,"1 ~'Idef'lÍ.~;(()1'11 el I/lO//lC/I(" tic realiza¡ {ti reserva. el precio total de la reserva v 1111indicador de li el t aclu: (! 11/1' ('II( ""1' han VIlI(/ entregado», .. "1:. ..No ;1I1{'OII(//I(" lUt:-'1 E rn. I :" n) 1I'~I,II"",.{n [echa VI'/1/(1//(;"11('11 11/ d% dI' /1',1,''''(1, nnterinres. (f 1,l. .. ___ [ lJll:1 I'CSl'IV¡1 c-, rcali¡ada por un único cliente. esto significn que la~ cardinalidades ntinimu v uulxi ma 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 de L()lle~pllndcnl'ia de la interrelación Realiza e~ 1:N, ..L.':":", "1 ( '()('I~I,,] !.'¡J.iIIl'O 1,56 • •••••••••••••••••••••••••••••••••••••••••••••••
  • 54. ••••••••••••••••••••••• ••••••••••••••••••••••• ___ _'J-l_ IlII'NO III B/SIS lu: 1;('lIt' 1¡,' cad« I'IIC ,""111>1111. 'J~ PI flA-IOS.PI{Ofll I'MAS R¡'SlII::II (",,)S:....__ --- Como cada reserva se realiza en una agencia, entre las entidades RESERVA Y AGENCIA podernos crear una Interrelación Realiza, cuyo tipo de correspondencia es I :N, pues cada reserva se reahzu en una única agencia (cardinalidades mínima y máxuna I y I para la entidad RI:S'~RVA). pero en una misma agencia se pueden realizar varias reservas y, en particular ninguna (cardinalidade~ mínima y máxima Oy TI para la entidad ACEN(.'/¡ l, PAR'rE -' "T"dll CAPITUI.O 1. DISEÑO CONCI'fJTUAI.. MODELO f'll{ 11('1I1()/t' 1II,~lllldtl 1111 d<:II'I""lIl1ll1lo ,~IIIrIJt' qu« /111 (IIlt·d,. t 1)( hr 1,' 11'((/11"1 l' (11 1111111iculu, e! IIH/lh'/II, el 11I1t" 1 lu /l1I,fel', " "('(111" n'lc'n'il " rruli:« ('11 1111(/dc'It'f/IlIl/tUIt, UgC:Il!'ICl," 1)('1 aniilisis de esta última parte ~e deduce la existencia (JARIJE y AGI:'N('/i, De cualquiera de estas dos entidades. al respecto, supondremos un código corno identificador "Cód_A", para (¡ARA.! E Y A Gf.'NCIA, rc.:-,pccti'arnenlc. En cuanto a los atributos de la cntidad ('()CH E, Todas estas consideraciones oc do:-, IHI!.!va~entidades, no se nos dice nada principal. "C'ód_(," y aparecen reflejadas en la ti gura 1,57, ClI110 supondremos Propuesta de solución La figura 1,58 muestra el esquema definitivo, =Matrfcula" corno identificador principal. ~ntre las entidades ('()CHI:' y Gi/iA.lE existe una interrelación que denominaremos ¡signa. Un coche siempre cxtá asignado a un único garaje, e~ll1 significa que las cnrdinalidades mínima y máxima de la enudad (i¡RAJE serán 1, Sin embargo. un garaje puede albergar como mínimo a un coche (cardinalidad mínitua 1) Y corno máxi1110 a 11 (cardinalidad rnáx ima 11), pOI' 1(1tanto el tipo de correspondencia para la in- I ,. tt'ITclaeion ¡signa será I:N, ti "it' ' .... 1 '" ," T I, I , ¡" I ..;.•• 1I n'N 11, .U.l I--"~ ,1 l' (()('H~. N , I t.,1I ,1 I I~ " j ," 11 Figura 1.515 11 .. I I !t I I,.kll ( IX " ' StJPtJEST()S SEMÁN'rl('()S COMPI"I<:MENTA({IOSy SEMÁN'I'IC¡ NO REFI.EJAI)" 1,,,1, 1.. /1~lIr(/ t. ')7 , 1oda la sernántica del problema ha sido reflejada, y no ha Sido necesario realizar sUPUCSH1 adicionales,
  • 55. 'Jr, 111')1:0111 111<;1)11111) r()s l'IHIIIIIl,SKI'SII:l )I (' 1'11 1'1 () 1 1)I~t-N()CON<' 1'P1I'AL' kA MA Una descripción, que podremos utilizar para especificar leyendas que aparecerán en la moneda. ~1(Jf)l't() EJK 'J) l s distintos motivos o o PR()BIJ~~MA 12: I~MPRESA NUMISMÁTICA • Enunciado Una moneda se acuñara de acuerdo ,1 UI1 ÚI1I1.;O 11111ldc troquel. S111embargo. ) para UI1 1111'1110 molde pOUrlJIl obtener-e UI'"1l10' upo .. de 111011etla Esto ocurrirá en el ... caso de que por causa de rotura- en el troque]. defectos tic aCUllaCIOl1,o cualquier ouu circunstancra. un conjunto de 1110neU,I prc curen alglin upo de anamc re-pecto ,ti troquel original. Solamente e ...arno-, uuerc ado" en aquellax uriumes que apar~l'l'n t recogida" en los catálogos uuhzudos por In.. cnlccClllni"ta". Toda moneda (incluidas las variantes cutalozadas) se identificará por un código único, y tendrá corno características propias si es l 110 variante y. en ca ... de serlo. una descripción d error o el I~ d que presenta la 1l10nC a . l'lllpn";¡ dl·lheau.1 ;¡ 1.1 cumpru-vcntn de Illall·n.1I trkuéhco y nunuvnuuicu. ha u~lllll(l dl·'¡lIl1lll.u una ha,~ de dato, para 11-:al lIll 111I:I(1r C(1111101 de '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íses Tra ... una convcrviciún COI1 cl dueño de la empresa ) la lectura de divcr-,o ... libros y pubhcuciom.. e... ·' pcci,lIl/ado. h~TlII), ohtcnid« la ...guicntc inlonnnción: i 1)IIRII(),,. " . de monedas, identificados por un c1iLli1:!ll.) curactcri/udos por una serie de proprcdudcs, que hanin 4l1C un modelo sea idcntificahlc externamente por lo:>l·iudadanns'll. lalc~ C)111I1 el valor lucial. la unidad monetaria (pe ... ta-, euros. ctc.), e di.imctro, peso e gr¡lIllll, y uua descripción. l lahrá de cxpccificarsc. udcuuix, el metal n n merulcs que ~e emplearán para cada modelo, así COJl10 la proporción de éstos y, en su caso. la le)' del mismo (por ejemplo. plal; de l):2S). Exixtcn 1111)(1.'1,1 lo~ autcnorcx modelos, se realizaran moldcx 11 u oquclc ... que scrvuun (1:11<1 1;1:tt'Ull"l'ioll de 1;ls I1H)l1eda~11 Un molde l',larú itk'nlillL'ado pOI un Clllligo. vvndra l'al al'tl'll/adll por un ;11;0 de acuñación. y CSlHIlH)S intcrcsudc», en ahllarl'n;1I dl'tl'lllIlnada l·¡Ia(·tl·ll ....il·a' que pueden apan'cl'I lO no) grahadas en el l ljllt;llIdll"'l' ti 1111'1110: • FI <líio. gr¡lhado ell l'araClere, al'Un<lLHIn llhles. ' y que no liel1L' por qué L'llinCldll con el dc Las monedas. en función d su e-rado de conscrv ación. tcndnin un precio e aproximado. 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 precio estimado de una moneda según su estado de conservación. La empresa tendrá ejemplares concretos de monedas, que se idenrificarún por el có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 .. vn mercadillos. regaladas. IIcg¡ltla~ a nuestro POUl'I 1))1 el uso cnlldILlIl)~ ele) Aunque e~13nlIS uucrcsado ...en almacenar ("il'lllPll' qUl' IOl'ol1o/l'HI11),) el precio y la lecha de adquivrcron dl eJelllp[¡II, ~nl() c:.lalno inll',e,adll'" e la procedclll'ia de aque~lo!'> qlle e l1 fueron ad4uinJo<; a pro'eedore~. de lo ...que no, íl1tL'rt'<;aconnct'r tI 1I0lnhre. dlrel'Llnn y teléfontl de t:ontaclo. i '1Illl'i1110. los ejcnlplarc • 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 p de e"lrellas cn CII)O ar interillr ... glilha ell dilllilllll11~ caracleres la fecha (habilu<llinente. la de acuñaCión). c No eslall1n~ tan Il1ll·I~' a d()~ en conocer el núnlero deeSlrella ...que contiene <.:on10 ... la cilra quc aparece grahada en ('11",' (caso de exislir!. 1.. 1'", '1'111111" 1111111".1'1.. ,,',,<1 ..,1 u'"e,pJntli"'lIl~ •• 1", I'..,lllll:" .. ' 11I"lIl't1.., ti: i l'e,<!J,I~ que 1111'"'"' c""I,'I/:II"" ".1<1111:11"'" p.IIIII de 1')!I), /111)(1111' PUl'U"1I 1c'lIlT ""11111<" ¡!I':thud", l'lI ""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'~ IIl<l<h'l" .h· n'''II<''',I'. d<'lllll'''''' 11 "'""1111' 1'1 ,'.1'" lila, 11U'llt'(ltI 1 ,u,,''' '1I Il1lcnor, ,11 alllell"l "~'l' 11,"111" :111" ,,' ,' ,k ~(lI'I' , 111"'1111:"'1ut' al :l1l) LI'II 1'1 ell' 1"""1111¡;.lllllI1 Ik "l'l "" l~lll n" M' "l!lIICI1ll' Il':" !l':III/) 'l' .1" la "') ','l' "lO" de 1111 If)old.·, n que 11111):111 111111<.' 1 del ""'lklll .IlIII"" l."" d", "".Idl'~ dl'IIIII" """r,' .) 1.1.),"11,1<,,"1 lll"I~'f 11'111:11.1' , .If.ll Il"I1 1,.,1, I ... .. ,11,1 1.1 1111'I'II~' 'foll() ejclnplar se clll'ontra¡¡j en Ull~~lad(1 dc cOllservaclón delell11inado, Éste, ~il1 enlharl!o ..n;) tiene por qué coincidir exaCl;lInCl1le con los especifícados anlerillrn)ente. sino q~c puede neecsitar un p equeiio ajuslc (indicado por los signos '+' y .-') y Ull comentario (por ejell1plo. Be . "Pe4uelill)!olpc e el horde"), l1 :11," dl' IIliJII'" qll' 'c :Il',"1aroll h:I~I:1 1111"'10 al1" 11.lh,lll.11 C' 1(11" 1.,111:1 :til" l' 1~':lIkt; 1111IllOldl' 111,,1' 1'.11:1'''1 11111kll Iladll 111,1'1.1 'I"l' ",11' .I1·1" .1<' 111111/,11 IHI,·tI" "CI" 1" 11"<.','1) 1111 ,,", "" 'o,' "',11 In' 11111,1.'111111 "1"1111'111 ,'11 l'l ,II(' 1'1111 1'111 '111"'1'111111"111":11.1 IIIOI),'d.1 pod ;ín lT l·ndulo ... a el iente. ('ada cJel11plar puura l ser CIl<lido COI110 Illáxilllll a un el ientl·. ~ no ,e adl11 devoluciones. llen InlCrL'... a conocer 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. .. ,""llIdll 1'111 tl'l, '.," 1111.11t1, l i .1111,1.'11. '1lltl 'Illl' Pllt'llt" '1"<.' , ..., de 1.1 1;,1111111,, tI t,II'I"l' ..1II .1 ¡• I~I . qll~1:" :""'111,', "Iklll"":l "'h,'I'" ,1 ",,"'" .lIliulllll'lll<: ll;¡,illL;¡hlc" UIIII.·:II,Wlllc ,1... 1;1111111,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"~ 11110,k 1", ,." Ole' Ill,¡' (1111111111." c' , " IIl1l'l).) (',"1',11. a, 1'-'", luv HIICIIlI ('<ln"'1 .Iclllll. 1 lra,lIdlll;¡n:ln"'nlc Ru,·"a (,""C''~~I"II Sin alnla("',lll.!lll'" ("(.11111 l' ll.l (Il."'-' PU"l"'" *1'I.lt III ••••••••••••••••••••••• ••••••••••••••••••••••• '1 '1 ,
  • 56. ••••••••••••••••••••••• 1)" 'JI! IlISI''=O 1)1', ,SI'S B D.. lOS I>ROBLEMtS RI-:SUEI.TOS ORA·MA Discusión del enunciado ",lft'lI 1110,/('/11,1 1'11/ 11110 I,'I/t' ,'IIc'I/IIII",'''(, 11"111,'(,,1/,, de 11I0Ilt',/¡I, /01 Idt'II(Ifi('(/e/OI por '1111' /ICIIIIII IC, 1111 II/e/lgo, que un I 1lI"tI"OIl,) , (aJ. 'I "11110 r! l' rum« r"I/:"e/t1.1 ~I'O ulrntifu ahl« "I/It/,./O 1,1t ItI/ 1'''/0/ 1, duunctro, {'t'ltI ('JI ~nll"(l1 tulemtis, ('1 metal " metulev que {/','I('(tll, ,'/1/01, 110/,,0 di' ",I{'I"'ljl('cI/ 9') se graba en 1I;IIIiIlU/O, caracteres la fecha (habitualmente, la de (/c'llIlaciríll l. No {'S/(""OI (all interevados 1''' conocer el I/lílllt'ro de estrellas qu« contiene COI/lOla cifra qUI' aparee t' 'traJ¡ada ('" ('11tH (CII.I'O de 1'.li~II"), d« l'IIII/It'e/tle/t'I, P"! ("/1'1'1 ur.() 1, IJISI,ÑU CONCEPTUAl.. MUDI:LO E/K o RA·M.' en CI/I'O interior PARTE I "F •••••••••••••••••••••• 1.'((' /0 unuku! 1 /I11t1 .1,',1(,1/1,,'1011, (.111(/ ell';rl'lpc/(í", qu« podre/TI" CI It'l 1'11t/a.1qlle aput cccrun ('/111 numcd« H' "<ll/iCl/tÍ 1, en emplcurun para Ic'" del IlIiH"O I/C C(lICl, la En el primer párrafo podernos detectar claramente la existencia tic una entidad M(){)EL() de moneda. que tendrá corno identificador prncipal "Código", y corno i atributos "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 sigan ese modelo, podrfamos pensar en un atributo multivaluado o bien en crear una nueva entidad M/:"/i1L rclaciouada con M()[JEL(), Hemos optado por esta segunda opción porque supondremos que en un futuro se añadirán nuevos atributos a la entidad t1/:'1'AL. De n10<l'1 que crearemos una entidad METAL. y 1;.111tO "Proporción" la como la "Ley" de un metal en un molde loro,modelaremos COnlO atributos de la interrelación entre ambas entidades. Las cardinalidades máximas son bastante evidentes, En cuanto a las mlnimas, parece claro que un modelo necesita al menos un m etal (cardinalidad mínima I l, mientras que hcnu», considerado que podernos tener almacenados metales que no formen palie de ningún modelo (cardinalidad m ínima O). Las consideraciones anteriores se reflejan en el esquema de la figura 1,59, ( ..d,!!.. lolmhrc LI!}' (O.n) ......... ,...()~__ (_I-I.n.,)~1ET Al. 101 eI,IIII/(O; I/IO(/!'Ol 1'/1 111 111"//(,"" dr u lit 11"1./" 1111 1I111e'O mold« ti troquel. S,,, 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/' ausa de III(Unll ('11 el troque]. C d,'Ji'c(os de CI('uiicl('irÍlI, 11 t uulqut«¡ utr« , inunstanciu. 1111 conjunto tle rrnburuo. para monedas cada IIlodelo, av «ontn la proporcuín ele tlII,H (plll cjanpto. plata d« 925 J, " It' utilmu par« I"p('('/I;car presenten. algún 1'" 11111110 de '(/riCI/IIt' respecto al/roquel (11'0 original. Solamente estamos interesadas en uuuellns 'II/'ltl//(eJ qu« aparecen recogidas 1'11 los catálogos tuilitiulos por 10,1 c nlrrrionistas. Toda moneda tinciuidas IIIS variantes catalogadas¡ se itle/l(i/;I"'lcí ,U¡r/III código IÍlliC(I, y tendrá como características propias si es ti /11' I'ariall(e y. en CIIO de .1'1'1'10, 1111(1 descripción del error t/II<' presenta la II/III/edct, .. A continuación pasaremos a modelar las monedas en sí. Tal corno se nos especifica en el enunciado, roda moneda :-.~' cuña utilizando un determinado molde o a troquel, el cual se basa, ti su vez, en un modelo. Tendremos por tanto una interrelación Sigue entre M()/})I!. y Me)/)/:'L(), y una interrelación Acuña entre M()NI:'/~/ y MOLDF., De cada moneda catalogada (que pUCUl' o no ser variante del molde original! tendremos distintos ejemplares co ncrctuv, los cuales. scgtin nos dice el cnunci.ulo. necesitan para su Idenlificación del crxligo de la moneda, Esto nos especifica claramente una interrelación con Dependencia en Identificación entre fl,1()NF./), y EJEMPL¡!<. "UII numcdas. C'II.lUIICllII' ch' ~II ('(.ICI" ell' I ')/IIt'n'C(ricí/l, tendnin 1111I",'('io aproximado. ¡I'I estad» de ('0/1 ('1'lit ion le ulenufi.:« /,,1/' ,HI.I I/II( iales (BC', ~f BC, 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('1 cJlI. ellzpresa /elll/rú ejl'lIll'llIre. ('Ollt're((l1 dI' 11I01ledclS, por el código de la IIZO//('Clt,IItÜ "" ",i,llt'ro ('orrel(l(;'o. I cllle UI Figura 1.59 Todo eje/Ilfllar PARTE 2 Ésle, 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 ptlr 11/1 (',ie/iK", I c,,,¡frcí c(/rel. rer;~acl() por 11/1 {lil0 de ll( ",¡<lei/i/l, v l'sr,IInns "AjUS/';lIdo,H! ti //lrt'n'"oc/nl /'/1 {/ll/llI('I'/llIr r/I'II'I/I/i/llldas (" /Ir! J Q/UJ¡,UIIlI ('/1 1'11111 ~lIur 1.'1(/1111, ~/lIhcrdll ,,1 tf" (/,'IIIi(/,;,;" 1)1'/I'II/II"luIUI ,'" l'ara('lert:~I/('a~ 110'/1,'11, /1/11'11111//11,'/11,' U II/IIh", "'('1"1 elhh(l, 111" Irollu<'le,1 lodol de 10/i'I"'(/ (1IIIt'l'¡III. ell('(Jllll'ClrlÍ el/¡hargu, /1O rit'lIt' especificados (1T/(I'riorlllt'lltt', ('11 11/1 flor ' " I <'S(lIdo de COIISI'n'(lc;,íll dt,(t'nllillllt/o. qué ({I/I/ridir eX(/C/lllllf'/lI(' ('0/1 los '/1It' silltl los :;iglll/I 'T' l ' "1'CC/III'/la glllpi' "/1 ('1 h"rrle" J. " (illt/icarlu (1'1/ ;c/I'lIli{iclIrá" ' 1//II'dl' UII II(,CI',lilClr I'''II'('II(II/'i" /111 I't'qlle"o (flor c'jt'l/lfllo. ajllsre He '-, l/UI' 1111t'e/en 1,11'111'1''-1'1' 1"1/11('/1'1'1'1 !';,,!llcs, l' 1111(' /111 (11'//1' "0/ 1/III/lI'rlII.' (o, ~ill .,1' { ... le '1111: 1'0;//1'1'/" ""/1 l/lit' 11// P"I .Ie (tI// (/('II/illlll dI' "Irrellell Con rC,pl:cIO al ¡:;S711)() CI1cl qlle e 1'1ICdl'n encontrar 1:1';nl()ncda~, decidirnos rnotlclarlo COlll0 1111.) enlidad por d()~ I1H1IIVOS: ell prÍll1cr lugar, una 1l10llCUa cal<llug:lda en delcllnl nau) e~tad) (ielle 111pi e,'H) ;'1'1 ox i rllad(), con In que dicho prT,' io ~l'ría1111 atrrhulo que depende no ~()II tll' 1111:.1lHlltl'da, sino de ul1a 111011,'d" en un e,lado I delcnninadll. [.:n segundo lugar, lo ... plnplos cil'lnplares Clllcreto~ ue rllonedas (1<1 moneda' "reales" que l'Orllpr;lnHl~ Vel1delllos) <;e encucnlran en un l"lado
  • 57. _- H I A dcteuninado. /,STA/)() e cual l particrpa ver ajustudo hacia arriba ti hacia abajo Es decir. en uo' 1I1Icnclacillne", una con, / 1:1 11I()ne~a~, C(~I1(;rela~ con 1,1 l111neU:1 calaIO~;lda (fI./()¡[·nAl. Adcnui-. e0I111) la qUI/~1 IlceC"IC IfJt.·I//'[_'HI, lltra cnud.id LST,/)() 1.:11I1Il'lIdl,1 (lClIrrCnCHI para los c-aado- "(/h/~,~(/II'I, 111.:,1l~,I(lgado' tic moncda-. IIl'l'C'llarl'll1ll' "lIn;Il'l'II,U el "AllI"IC" que modificará 1.:'1 c-audo de ,un ejclllplar. ('l)n"'lul'I.lIl10'" que t.1I11n(."ll' atributo l'01110 el que cnnucne una dc-cnpcion acial "Inri" dcl C:'lado dI' 1" 1110nCU:l C"('olllenlario" I deben 'CI aUI huu» de la interrelación Est" I':n, que relaciona LJI,,/I'/..AN con t.S7,/)(), 1,1' En cuanto a lü cartllllalrdauc" podernos comentar que ..e ha convrdcrado que la mlnimas de la..; iutcrrclucioucv que en lazan f;S7,n() con FJI:'/'./Pl./R J uouen» son () porque 110Il'nCI110' plll qué tener almacenada informución uccrca del valor de .1 • ,1 eduuCll'rlllll1aua~ 111111 u' (111' 1)llr supuesto CJ'cIlInlarcs) en alzuuos cslad¡)~ (de hecho, . es l , • . ' t··::. .. habitual que para monedas tic reciente ac uñación sólo xe eo.;rC(;1I1~UCll precios aproximudo-, para 11)1)l1c(l;" en l'o.;la¡]o S('): Con respecto.<I las ca~·~Ir~l;¡lId,,~.C~, un de r::.!/:·,W/'/AJ( (;(111 respecto 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()S ejemplares (cardi alidud nunima 11. aunque también scriu perfectamente admisible n l;ab~'I'I() modclud« con una cardinalidad minima O. es decir, dando a entender que de tlcll:nllllladll~ cjcmplurc- no (;1l1l01'CIllOS su estado (por crcmplo. porq.ul' nuestra cruprcsa no diI')()llga tll' un l",,,dor), Fu este tiltimu caso, o.;l'rí¡.¡lila, apropiado t¡ue el 1 .. n " l' d ejemplar, Y' IlO de la uucrrcla"CnlllelllarrO .. acerca. uc I eI.ll 1 t ucra 111 propiedad del -r..u. ciun, La figura I,()() mucxtra el c'lJUl'IlHI que refleja la scnuinucu urucnor. '.1 t tl '" I ,1 I IL '1.11 o 11 1'1 I ~) K ...:."~. CAI'II 111() 1 i)ISEr';O(,'ONCEI'TUAL. OI)!,l.O F)1l M _ 101 PARTE J "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'''/ c ualquu: 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. 11I/lI/u(' "HIUIIO, mtetrvado» ('" IIIIII</{·,'III// (11'/"1'''' (/IIC {II , 1>1/1);"'11//10' I 1'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. "'"11/ 11111, 111.1 cjemptar«, podnin .11'1 vcndulu» 11 CIIt'II/('I. Cadu eje/lIl'/at' 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 que podrá ser 110 ha t eulitnd«). " Por último. nos ralla por representar las ventas y compra ...de ejcmplare-, ele moncdas por parle de los proveedores y (;licI11C~, respectivamente. En principio, podríamos representarlo como se muestra en la figura 1.61 (no se han incluido los atributos), es decir, limitarnos literalmente a la.~especificaciones de enunciado. l I'IH )Vt·l.l)(ll{ ('III:Ntl 111. t ) 11). 1 ) J 11-- ------( '1" 1'" 1I~II'I ~M oo, III.n) h ... 1 [}'JI.IIPl , + .tt, Ulll' , 1" "4 1'"... 1 1,1'" t --0"'1=,,1 .., o (In' ",1,11(' ~-,()I"l"I' '" Figura 1.61 -lw_............. ...I agrupar a la~ cntidade-, ['J«()v/:'F..r)()J< y eL/EN7'!:' mediante una gene ralización. De hecho, en el enunciado podcn1os ver que ambos cOlllparten los ITIislTIOSatributos, exc eplo el alnbulo "Núrne ro tle C'olnpra..,", que e~ propio de los clienles. Sin embargo, ( , .. , t "" 8 "1' .111" .... " .. " .... l ; , .•h,hl" I •h,' 1 .11.11,1 t, l., J 1, o- .h " . l{ podría pensarse en • "1' ... ,1 f"j Propuesta de sc)lución "1 I '1, " . ",lo", 1",.. ,,"ltl' I.(JO Por lo tanto, el CSQUC111Uefinilivo d I ' "",,-Q flgllra '1,.1., , ! I h' '11 1 1 el caso d(,' los clientc~ y prnvcetlorcs principal El atrihulo de ('L/ENT/:' "Nlínl quedaría l'1l1l10e n111e~lra en );.1 fIgura I 62. En s ~e ha aj¡adillo un "('{Ídi~()" COUIO idcnLitic,ldor C'0l11pras" e, un alribulo dcri atlo. v ••••••••••••••••••••••• •••••••••••••••••••••••
  • 58. ••••••••••••••••••••••• J •••••••••••••••••••••• __:..IAI'¡ ~O..::RA:::.:.::.::M,:!..' • nu.o I OISENO CONCEI'rt!AL: l10DELO F)R Deberíamos exigir que el atributo opcional que recoge la "Descripción 1111 del Error" sea obligatorio en el caso de que la moneda sea variante. PROBLEMA 13: PARQUES NATURAL¡':S 1(1 o ti 1I 1I 1"1 11-i' n- f'RIl 1 1 1')(IR Enunciado 111.1 I 111 1 La ministra de Mcdio Ambiente ha decidido crear un sistema de información sobre los parques naturales gestionados por cada comunidad autónoma. Después de realizar un detallado análisis, se ha llegado a las siguientes conclusiones: 1N 1 N Pro" ".¡()-~ 1 '.'1. t,.lU-~ I () 111 IJ I LI,''''pl,u l.,,, Una cornunidad autónoma (CA) puede tener varios parques naturales. En toda comunidad autónonla existe uno y sólo un organislno responsable de los par ues. Un q parque puede estar compartido por más de una comunidad. NI (D,n I Comcntano AJ,,je (().oo, ~I N'M l'" I.rIUlllt.g- 1)~'I.'IJ't:~II 1:1111 In11. i :d~'" o1 11 ,·sTADO 1( ¡NI·.DA N(ll,hrl.' 0"( IIP('ll)l (O.nl ( 'C.JI}I( I'I.'l Ul_ Arrt,'t En cada úrea for7OS3nll:nle residen especies que pueden ser de tres tipos: , vegetales, animales y minerales. Cada especie tiene una denununacrón Científica, una denominación vulgar y un número inventariado de i dividuos por área. De las especies n vegetales se desea saber si tienen floracion y en qué periodo se produce é ta; de las s animales se desea saber su tipo de aluncntación (herbívora, carnívora u omnívora) y sus periodos de celo: de las minerales se desea saber si se trata de cristales o de r cas, o Además, interesa registrar qué especies sirven de alimento a otras especies, teniendo en cuenta que ninguna especie mineral se considera alimento de cualquier otra especie y que una especie vegetal no se alimenta de ninguna otra especie. '.JI e .",1)" I 1 1I o~o_ ~IO"O~ "0 O~' 1111 tI ... 11 1e'l~_I:>I,dl~'O MOIIlL ',. (1(X1"n O 11.11 J NI ( 'flll~'" .lhll l ItI,l~tJ r'1'lllhr.' ~ ~1 I 1 1I I.l'~ I I .n ! 10[)1-1 () MFIAl 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 de 1)¡;'II1Clf,' i''':,,1 I~"I ,p...IIO I Un parque natural se identifica por un nombre, fue declarado en una fecha, se compone de varias áreas identificadas por un n ombre y caracterizadas por una deternlinada extensión, Por motivos de eficiencia se desea favorecer las consultas referentes al número de parques existentes en cada comunidad y la superficie total declarada parque natural en cada CA. l>rI.1p()r.:i ón personal: Figur« 1,62 : SUPlJES'r()S SI~MÁN'rl('()S l'()MPLI~M .. Nrr¡ltl()S I~}1:FI,EJ ¡ I)A • 1'11 el l'sqllenHI no p(ldl.'nl0~ representar 110 • que un ejemplar y SI,:MANTIC¡ NO que tildo Personal de vigilancia: vigila un área determinada vehículo (tipo y matrícula). • Personal de conservación: mantiene y conserva un área detcrmmada del parque Cada uno lo realiza en una especialidad delcrn1Ínada (limptcza, caminos ... ) adquirido por un cliente puede ,el dl.''lll:lto. '-;l' 'UPlltll' • Personal de gestión: registra los datos de los VIsitantes del parque y están destinados en una entrada del parque (las entradas se idcnt ifican por un n1'1 mero). • , 1I10ldl.'ucuñu al menos un tipo de moneda, del parque que recorre en un
  • 59. ••••••••••••••••••••••• •••••••••••••••••••••• ~O~R~.~"~,, .:. (·"-' ...f'lTlJLO I DISEÑOCONCI:PTIJAL: IIODELO ElR 1()7 10(1 DISt-.ÑO ni flA't:S 111"n/ lOS' rKOALI::M ...S RF.SllELTOS interrelación contiene el atributo "Individuos" que representa de cada especie en cada úrea del parque natural. el número inventariado PAR1'E 3 "Del perso/lal del paqllt' r H! guarda el IJNI, IlIíl/lerO de seguridad social. nombre. dirercián. /eléjilllo tdomiciua. IIl(íl'll) ' .111I'ldo. Se disunguen Lax especies ,c clasifican en vegetales, anunalcs )' rninei ales: a..,1.se tienen las cnudadcs ANIA/AI, VECifrAL y A1/NfRAL 4uC son subripo- excluvivos de la entidad I: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" (fecha, que representan el comienzo ) el final del p eriodo de celo de la especie): la entidad 'EG El AL se caracteriza por los atributos "Floración" (ndica si la especie i vegetal tiene floración () no) y "Fecha Inicio" y "Fecha Fin" (atributos opcionales que representan el pcnodo de floración en caso de que lo haya): por último. la entidad MINERAl. contiene el atributo "Tipo" que puede tornar los valores cristal o roca. .I/Rltle/l/I'I tipo» de personal. Personal de geHIII/I' /'egll/rCl los duto» de I(I~ I.II(III/e~ del parque y están del/I/lodor en 1111(1entrada del parqu« (1a.1 r',lIra¡{a.1 se utentiflran por un IIIII/lero). Personal de vigilancm: vigila 1'1111/1ehiculo (Iipll) v Personal El esquema F/R couespnndicnte en la figura 1.64. a 10<; supuestos semánucos anteriores se muestra I, ,1' 1 1" ",i); , I I '.' 1 "~.",,, " , ,-_.... .. ,o,¡, rin'a determinuda del parque que recorre de conservaciólI: manuene e/l v CO/lsen1a UII área de/enninada del 11/11/ l!spt'(,lalidad de/erllli/lado (linlpieZlI, UIIIl I;III/O('ióll qUI! Ira de recogerse y pueden caminos. __ J Personal i/lvestigador: realizar tincluso Tiene conjulltellnente) proyectos de investigación sobre 11110 d"tennillada especie ." En relación con los empleados que trabnjan en los parques naturales ~c necesita la entidad PERS()NA L caracterizada por lo~ nu ibuu» "DN 1"' (identificador p rincipal). "NSS" (rultnero de la seguriduu social que por ser único para cada empleado se considera idcnt ificador alternativo). "Nombre", "Dirección". "S ueldo" y cl atribulo multivaluado y opcional "Teléfonos" ( ues un empleado puede tener más de u p n teléfono). , ..... llt>o. II/l 1I11111'ít'ula) parque. Cada 11110lo realiza Para reflejar qué especies sirven de alimento a otras e specie!' se requieren dos interrelaciones. La interrelación refl xiva N:M Come relaciona la entidad ANIMAL e consigo misma, de tal forma que una det erminada e specie animal puede servir de alimento a va rias y una especie animal puede alimentarse, a su vez. de varias especies animales, Por otro lado. también existe una relación de alimento entre las especies animales y vegetales representada por la interrelación Se Alimenta; una especie animal puede alimentarse de varias especie!': vegetales y una especie vegetal puede servir de alimento a varias especies animales. los 11.11' '1;11 1 .. 66," •I! • ." Fi~lIl(1 l.ó./ T¡1I11bién existe una generalizaciol1 iotaí y exclusiva entre los empleados. Así, se distinguen 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 caractenza por el atributo "Especialidad" (epresenta la función que h el empleado): el subtipo r ace VIGIlANCIA posee los atributos "Tipo" y "Matrícula" (datos del vehículo que conduce): el s ubtipo INVES7-IGADOI? posee el atribulo "Titulación' y, por último. el subtipo GESTIÓN no posee atributos propio" pues la entrada del parque a la que están asignados será una nueva entidad, corno se estudiará a continuaciónEn cuanto a las Interrelaciones. entre las entidades PERSON/1L y PA I?QLIE NArURAL existe la imcrrclnción N:M Trabaja cuyas cardinalidades indican que una determinado e mpleado trabaja en UI (1I1ic~)parque natural y en un p arque natural trahajan varios empleados (corno mínimo lino). La interrelación IN Conserva entre : ÁREA y C()NSEI<VA('ICjN refleja que UII empleado de conservación está a:>lgnado a un único área y que L11 área está conservada pOI LIno o varios empleados de conservación. La intcrrclacron I:N ViJ.ila cutre ARIi¡ y VI(jll AN('IA denota que un empleado de vigilancia controla una única área y que un arca es controlada por uno o varios empleados de Vigilancia.
  • 60. _ I :..:'AI'11 () I IlISENO('01'1('1-.1>11111 ,110l>1:('() "'iR LlI 11l'l ---- " l( " , __ .- l(l~ IlISI ,II()llI'!I''I1 - - - - ,111 1lICl:' l' IH)IIII-~1.SRES~:l.T(._:_)S..:_' - - - --- - -- - - PARTE ~ Aunque de tlllircl1o, dl.!'pué, la entidad PR()Y:~Lr,()' eSlu(~i~rel,1~ ahora la inlcrrelacion tcrll¡llla Rcaliz'l entre I:SPEC'If.·. PROl I:C1() e IN ~:S11(jAI)()R que refleja la partlClpacllÍn de l0' emplcadov tic invc<;tigaelllll e diverso- pn1y.cctO n c,tudlando di ... unu» e,pl'cIC I ,1'" cartllnalidadc... Indican que un dClcrllllna~o IIIe ...lgadol en UII PIOl't't) puede l'''ludiar u,ria .l',pec!l·, una detcl1lnuda espccre t l en un proyecto puede ser e ...udiadu por vanos 1~'cslIgad(le ... ~. por ulurno. una t e... ccic puede ... e'llullada pO un IlIC,tl¡!ador en divcr-o- proycltll v. p cr I Por ultuno ....e ncce ... la entidad ita la' c,ltrad<l' que l posee un dctenninado parque natural. a,j como las entradas l}U~ucncn a"'lgl,:<1u:,,,,os l clllplcauos de gc...iln, La entidad f.NTUAI'>A llene corno umco a~nbu~~) Número t 1~lIlrada" <identificatlor principal) y está relacionada c 1'¡'U{]l'E NAI1JI?¡'I. meon diantc la ímerrclacuin I:N (-h,y (una entrada pertenece a un unico parque ~' ~n parque tiene varia" clll¡auaS), AdclIl<ís. existe la inlerrelación 1: I Controla entrc I:NlI<AI)A Y crsrto» para rl'l1cjar que UIl cmplcudo tic gestión cOlltrola una única entrada ~I:I . parque y que una detel'lninada entr:da tiene aS, l i~nad(l un único cll1pleado de gesuon (SUp(lll'nl(l~ que hay IIn único clnpleado de gc uon en cada entrada). s La figura al1teriOl1l1elltc 1,(1' mucvtru el F.IV1·UA{)A para poder recoger E/R corrc..;pnntlicnte CqUCIlHI ¡¡ los supuestos dC~i.'1 itl)". l' I " " ,,1 ;IIII.',I/I.rIIIC'/Óll 111'11/' //11 111I',llIplll' sto 1/11 ¡Jel iodo d" ",tlti-oc ¡tÍlI" bstc 'UPUCto 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 tic realización. visitante (L>¡V/, 11(11111>1'1', domic ;111/ , l,r"fi',";líll) debe 111";01'1' dentro de los alojamientos de 411e dispone e/ purqiu', ti .IIIIS tienen 11110 capacidad tunitad« . '/I'/U!II una c!e/I'nllillclda l,I/I'II"r(II". v ' .. / '11 Se necesitan ahora la entidad V/SI7¡NTI:' , caracterizada por, los atributos "DN!" (identificador prin cipal). 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~NT() recoge los alojamientos de lo~ que consta un parque natural Además, C~ una dependencia en existencia, parque. Puesto que un visitante puede ivitar valla, vece ...e mismo parque natural se l ha añadido en la interrelación e atnbuto 111UItI uluado "Fecha Visita" para poder di ... l tinguir las ocurrencias de la interrelación. ,11 , , .. ,,,' ' JI! vtsn sur« • 1 "1""1' I "l. ",.O)·('('/(I Aunque descota tic forma implícita en el cnunciudo. 'l' requiere la interrelación N:M Visita entre y f'/J<Q/JI' N, I L'RAL pala recoger la, i:,il:.l' a l ". I ~"l '"n" "UII ~,",,,, l ,;0 I !I ... I Por otro lado. también xc tiene la mtcrrelaciún N:M Aloja entre 'ISI1'rIV7 E y ALOJAA-fIEN7'() para almacena: la~ estancia .. de determinados isitantcs. Al igual que ocurría en la nterrelación Visita. también se requieren l , atributos multivaluados i o "Fecha Llegada". " Fecha S alida" y "Hubitación" (un visitante puede alojarse en el mismo alojamiento en distintas fechas y 1'11 arias habituciuncs l. 11,1I-;( 1 M·,4 ¡¡¡¡c... , .;. l'K,"'t't 11. ,, "" Como se mencionó en la visitante" en las entradas de ENTRAI>¡ y VISITAN7/'; recoge multivaluado " Fecha Registro" en la misma entrada en di:-.tintas "[,/ (I/lJjalllll 'II/'" /'11 clel'Tllllllllcll/ I";~IIIII parte ' uunhiéu se almacenarán os registros de los l los parqlles. 1.;1 intcrrclución N:M Registra entre esta inluuunción (la interrelación contiene el atributo para indicar que un mismo visitante puede registrarse ()etl~illneS 1. IIrgcUII :IIII tlíl/ dI' 111 t'( 11/1'"11', H'IIIIIIIII 01/1111'/111', l' 11 111111"/)/'11 ,'( 111',1111/('.1'111'.1/' (11'11.1" C 110/("/11'1 111/(/111,' /.(1') '" ( IUI "('/IIC 11/" c1"'t'IIlIlIll/clo " (1 111/', , /'111, clt'l fllln/IIC'" ••••••••••••••••• ••••••••••••••••••••••••••••••
  • 61. •••••••••••••••••••••• J.~.~~~~ •••••••••••••••• e R 0 111) IlII.'Olll I'K081I.M¡SRt·SI'EI _-- O'iI.SDI-I>AIOS , ---- ro,; ~" o __ _ • ...:(.::..!. t_:c' Pc..:1...:.T::;U,!::L::;O...!I_.:_ ::.:tS:.::E:!.Ñ:.:O:...C~'O~N;C,!::t~ty.:..TI~J !éD A.:.:.I....:. !.,! M=O.:,:D::::E.:::L::;O...::EI::.;R:::........:.I.:..:..It ----- Para almacenar la infonnaclón de las excursiones se ha creado la entidad 1:','('(IR'i/()N con los atributos "Cídigo Excursión", "Vehículo" (para indicar si es a pie (l en "ehículo), "Día" y "IIOla". La 1I1Icrrehlclón Organiza entre AL()JAMIENTO y r:;«('IIRS/()N recoge que un alojalni nto puede organiL¡1I o no excursiones Y que una c excursión puede ser orgCllli/aJa por vanos alojalnicntos. Propuesta de solución La figura 1.67 muestra el esquema E!R completo. "O " ., Por úlrimo. la interrelación Disfruta refleja lus excursi()lIc~ que realizan los visitante« de los parques. Un uetenninado vi itante puede que no realice ninguna s excurvión y una excursión puede ser realizada por vanos isitantc-. ... '" ......... ..--...1.......,..--- ,.. '.. '" •• ~...I .... J... '....... ' ',11· , f, I El esquema E/R corrcspondiente ... a esa parte se mue-ira en la figura 1.66. t '., t::::F-§'" I'!1(" '-, '1 " ...,t. "" ~.x.._J..) -o. .. .. 'o ~+ 1" , .. " ". ... .",(... " ,,.. __ _...__l.---, ,'¡'I I ,1 .... h. ".~" ,j " ••,.. I I! ... ¡,¡ I" I Kl)t I _ .. ( ,. ...... ,11 H'" I tul . l.•• r o" , .. I , I ,,, ... '.t ..A " . 1" , . ... U "'. _" 1 __'101'1 I ,., l. 11,..,.11" •• '" r"i}!.ura 1.66 'o. ... , ,.I1't.". ¡.. c>-1L",........,.J-0 I '" Figura 1.67 Observando la fi ura 1.66, existen tres ciclos que hay que analizar con el fin de g dt:tectar posibles redundancias. En el ciclo compuesto por las interrelaciones Disfruta, Aloja y ()rgani7..a no existen reuundant:ias. pues las interrelaciones no están semánticamente r lacionadas (el que un visitante se aloje en el parque no implica que e vaya a realizar excursiones y viceversa). Isn cuanto a las íntcrretacioncs Dispone, Aloja y Visita ocurre algo similar (el que UII visltanle acuda a un parque no implica que vaya a alojarse en algún SUPUESTOS SEMÁNTICOS COIVIPLEMENTARIOS y SEMÁNTICA NO REFLEJADA No han sido necesario «upuesios adicionales. PROBLEMA 14: GESTIÓN DE HOSPITAI,ES C sta h lec 111 e 111 ). i o 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 Enunciado Una Ctllllp'lñia ascgllladora de ipo sanitario desea diseñar una SD p t ara informatizar parte de s ge<;tión ho:-pitaluria En una p u runcra fase sólo quiere contemplar 10<;Igulcntc ,",uput:tos scmániicov
  • 62. I 11~ I HSrNO 11 11/<;I'~ 111'1),'1 OS PI{()flll'MtS Los hospitales de ~Úred pueden comunes a todos ellos corno son el numero de camas INUIII e). etc .. cspccít reos 1:011111el ple ... puesto I P). u R¡':SI '1',1.r(lS~ t¡ RA __ ser propios o co ncertados; a demás de UllOS datos código de hospital (CodH), su nombre (N_H), cuando e hospital es propio se tienen otros l tipo de scrv icio (l'S). etc. .::,:.M,'-'..' _ '- __ Lo, 111éul¡;O', que se Iden tifican por un código ('od_~1l, tienen 111 nombre « (N_l1), teléfonos de contacto, e Interesa conocer las áreas a las que está adscrito un tc. médico, Existe una dependencia je rárquica e ntre médicos de forma que un méd ico tiene un único jefe. Discusión del enunciado PARTJ;: I "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 .' ,'f( 'ripo_H (O, (J, I ) I) (:()NCER'f ADC) PROPI() Figura /,68 PARTE 2 Exixrcn ¡íll'a" idcntihcudu« por un código (('oú_il y con oatlls sobre su superficie (S). número de habitantes (NUM_II). e Lo!' hospitales concertado, tienen tc, que estar asignados ti una única área. que no puede cambiar, nucntru-, que lo'> propios no e<¡l;in a~ig.lladn, a ¡Ílea, (7:'), P Ts 11 ..,-__ ....J t--0 Nunl_C '---<) (o c uin) hoxpi tal izados los ases así COl110las fechas de inicio (FI) ('(1/1111('/ (l1't',I'II(III('I/O I--oN HOSPII Al asegurados c ubiertos por una misma póliza pueden ... r de dis e tintas categorías. Mientras los asegurado", de primera cat egoría ¡ IC') pueden ser t hospitalizados e cuaquier hospital. los de segunda categ l oría tAle) sólo pueden ser hospitalizados e hospitales propios, Aunque las otras categorías no ti n enen derecho a hospitalización, en la BD se guardan todos los asegurados sea cual "ca su cutcgorla. (11/0,1 (',I(lfl'/Jil'IJI I1 ,---------,0-- .... H Cod Los (Jrll/J/1I s,' tirncn 1 ItISI',NO CON(T.PTLItl.: lvl()DELO I-JR 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, Lo modelaremos por tanto COl110una jerarquía exclusiva y total. tal y corno se muestra en la figura 1,68. Se ha añadido el utributo Tipo de Hospnal (,'l'ipo_H"). q no aparece ue en el enunciado. y que nos perrruurá identificar el upo de hospital de qUI! se trate, Una póliza. que -c identifica por un numero de pÚlil~.({'oo PI. uene varios atributos que, 1.'11 pi incipio. no uucrcxa especificar y que se agrupan bajo el no bre de m datos de póliza (Dato,,_P lUna pól i I.a cubre a varios asegurados. 10<; cuales se identifican por un número corrclauvo (N um), añadido al código de la póliza. y tiene n UI1 nombre (];¡ l. fecha oc nacimiento (FN), etc, Interesa sah('1 en qué hospitales han estado gurados. el médico que prescribió la hospitalización. '! de fin (f-FI de 1:1 nusma, Af'ITtll 1) (1'). tipo de sct viri« " LI l'llIlnCI~ld() "0' dice que los hospitales pueden xer de dos ti o". y qUI: existen p "lgUIH1~ auihuu» que "UIl comunes a iodos los hospitales) otros que so propios de n determinado tipO de huxpital Este es el típico ejemplo que pllUe I1111modelar mediante 1111<1 IcrarUllla I'~"'''''l· d ·dul'il e de CllulH.:iacln, '! a'ií In SUI,olldreIl1l1", que un hopital l "(//111 (lIi(i:(I, 1/11I/'lIllIS //<lIIII>,e que. que s« ie/I'/tllll('1I "///'/;'11';(1/11, ('11/ 1/lI/I/IIIle/o tll' (I¡jIt:CI /111 1I11,'/('(1 ",1/"'( Ili"II/ .1(' da/o,' de ,1(j/i:11 (l)t1/",_"J. «'(ld_PI, 1/('/11' I'c,l'llH l' 1(111'1(' IIglll(1(1I1 hO)(1 1'/111 I",/t-I/ll/IIII' (/1'(///(11 1'/ asegurudr», I()~cuales se ldenujican por 1I11/1I;1I1('/III'I)" .. lativo (NIIIII). añadido (/1 códIgo de la páii:«. y tienen 1111 nomhrel NA J, 1('1(la di' 1I(/("ullú.'II/(l1 FN), err. " Una P(jLI7~ la modelaremos mediante una entidad. Además, puesto que c ada asegurado que c ubre una póliza se identifica po IIn número correla r tivo i corporado al n número de póliza, tenernos un claro ejemplo de dependencia en iden tificación entre PÓLIZA AS/::GUFUDO, Por ser una dependencia e identificación, las cardinalidan des de la' interrelación entre ASl:.GURJ.D() y P()LIZA serán (1, 1), Esto nos implica que cada asegurado sólo puede estar en una póliza o, para ser más exactos. significa que cada ocurrencia de ASI:~GURAI)() está relacionada co una ocurrencia n de PÓLIZA, Puesto que cada asegurado se identifica con un número correlativo a ñadido al de la póliza, podría ocurrir que una misma persona apareciera va rias veces e n distintas pólizas. aunque como ocurrencias de ASEGUI?¡I)() distintas, Para poder recoger adecuadalnenle esta ct cunstancia dcbcrfurnox añadir supuestos nuevos, o bien i modificar los existentes, Por ejemplo, se !lndlÍa plantear a la compañíu de scguro« que identificara a ca asegurado por SI I)N 1, con lo cual desaparecería la dependencia da anterior. y no duplicaríanlo!'- la lntonnacion d un ascgurudo que estuviera cubierto por e varias pólizas. . •••••••••••••••••••••••
  • 63. ~ •••••••••••••••••••••• ••••••••••••••••••••••• ' 11 I 1HIÑO 1)"', 1l,,~ES DE DA ros I'ROIlLt:t-1¡S RESUELTOS .:.:.:_----- PARTE 3 "Lo.' avcguradn» pOI una ''''I''III/(íli~(I (lIhli'IIIH ('/1 ("/la/,,'II{'I '/11/11111/.1 d" prunera (tll golltl e II/(lP'O,I, AIII/(I"I' /1/, (1111/1 ('lI/t')io/'las a 110,11';/11/;:11/,;0/1, 1'/1 1/1 81) s,, guurdun todos los 11/1,'11"/1.1(" hll,llil(¡/I~a"I/,1 no tienen derech« asegurados se« ti" lA IC') 1'11/''/''/1 se 110,'(>110/, los de segund« categnun (Al(,) lO/O '/lI,'g(l"'II~. A I"'/III(/1 10 .1 /I.'I'g'II,II/OI "1)1I/11/11:lldfl.~ PII('J,'/1 srr ('11(1/"('(1 ,'/1 hlllllll/l/¡',I .1'1/ (,IIII'gll/lú, .. Dejaremos de lado de momento la~ hospitalizaciones de los a~l'guradlls. y que se a 1I0!'! uclururá en el párrafo siguiente. J nos centraremos ahora en la distinción entre tipo" oc ,,egllrauo. ('OIlHJ vcmn-, en cl enunciado, In~ a-cgurudo« pueden ser de di<.linta categorías, hecho que modelaremos mediante otra jerarquía. Parece deducirse de lo-, requisitos. al igual que en el caso de 10'- hospitales. que IInasegurado no puede pertenecer a IllLÍSde una categoría ( o existe solapamiento). Sin embargo, el enunciado n también n indica explícitamente que existen otras ca ox tegorías, por lo tanto la jerarquía 110 será total. La figura l,(llJ recoge In semántica anterior. 1 1 (' 12C ro, 1 ) ('"pi 11.11() () RA·M.., ( O. 11 ('ud P r):II,"_1' 1: IllI".ÑOCONCI1'11111 t-l0DEI (J rJR 11' asegurados de primera ca tegoría, pero el razonamiento es equivalerue en ambo' casos) Cada interrelación ternana no puede sustituirse por tres binarias, ya tIue no recogeríamos la semántica completa que nos especifica e enunciado: por ejemplo, l podríamos saber en qué huvpitalc» ha estado mgresado ca asegurado y qué médicos da le han pre'c.:rito ingresos (cada uno oc estos daros con una de las intcrrelacionc-, binanas), sin embargo 1111 podríamo« saber qué médico les prescribió calla ingreso en cada hospital. Las cardinalidades e todos lo~ casos serán (1.11), y¡¡ que no cxixte en el n enunciado ninguna restricción que n()~ impongu participaciones máximas de ninguna de las eruidades. Por ejemplo, dado un asegurado ingresado po prescripción de un r médico. puede haberlo sido en vanos hospitales, Adcnui-. como en los rcquixito- se no ...dice que estamos intcrcvados en conocer los hospitales en que han cvtado ingresados los asegrado, u (e, decir. ljuerclllo, almacenar un histórico). :-.erá imprescindible que las techas de ingreso y de alta del hospital. modeladas COI110atributos de la interrelación, sea atributos multivaluados, n ya que un asegurado puede ingresar en UIl mismo hospital pr scrito por el mismo e médico en distintas fechas. Supondremos, sin embargo, que este Laso no puede dar-e en un IlIisJlIO día. es decir .....upondrcmos que un asegurado no puede ingresar en UI1 mi... o hospital prescrito por el mismo médico más de una VCL el mismo oía. Adcmá-. m la fecha tic a sera UIl atributo opcional. yu que no tornará ningún valor hasta que el lla asegurado no vea dado de alta en el hospital. Sería necesario controlar que la fecha oc alta de un a... gurado sea posteuor a la de ingreso Esto, sin embargo. no podcmov c . reflejarlo en el esquema PJR PAR'rE 5 ( 1, 1 I 1 ,11) P()LIZA ASK(,lJRADO "1:,.1111'/1 "'1'1'rii«! e Na «(/1/'/"(11', NlÍnJ <'/1 adscrito /.ó9 10111/(/ l/l/e h(l,lplIlIl':IIt/O,' 1(1" ;,'", ,111 ((//11(1 la,l /I'I'hll,1 1',1(11/) IlllldclarCIIIl~ 10, illt!rl'~(I~ oc I()~ :tscplll:td(~ ~'1l los hnspitalc~, Lo:> lequi,llll ~' lel:lricLlIl ljue l0' illgll'~O~ de lo, a'l'gurauos J CI In" hll~pilales ,o I n rreClllo, plll Illeucos. l:.sto podenln:- Ilodl'larlo Illediantl' una IIl1enclal'ion te l rnaria (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, hnpitale<; )l{l~ 1 ~nnlllllr¡ICilíll tienen "'I! única mientras 111Ii' 111.1' prOI'/II.1 /lO e,lltÍ/I asignados a 1/111' estar asignado: 11 11110 áreu, (/"1' /lO pl/edl' (Ín!(I~, .. 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á ,/lIt' hl/lI'"(I/t', hllll e,Hado (o 1II,'gllJ'(lI/fI , ('/ /I](1(/i( (/11"" prclI'I'I11/(i la hl/l/';llIl;:lI( dI' I/llr,r> (FI) ' d,'fi/l ,. F) d,' lo 11,1111111, .. sall,.! /1 lí "L(l1 Figura "III/t'I"WI ,S). concertados Id-Asea, , l"!' 11/1 ('"digo (('ud_A) ' CO/l da!IJI sobre 111 ro ti(' habi 1111/1<'. ( N [//11_' /), l' le Los hospi tal e área«. id,'/lIif;t'(Il/(H médico. Exivu: una dependencia jerárquica entre mrdico« el,. 1111 II,étli,'o I;el/l' 11" '¡II/eo 1elt' .. (111 El :RL/ la IlI(ldclan':1l10~ LnnlO una entidad. tIlIC es tará rclaeiunaua, tal COl1l0 n o Indica el enunciado. co ho<;pitale ...l'Ollccrtados. S n upondrel11os que rlll.!de hahe úreas r ~In ho~pitales tcardinalldad 111ll1 O), rcro tal COI110IIOS exigen l s requi:'ltos. todo ill1a o ho~pital cOllcertado ha de e~tar a,igllHtlll aUlla LÍnica área. En l'l esquellla co nceptual 110 PUdClllO'" recoger qu esta aSI)!rH,ciúlI 110 pueda call1hinr, ya 'lile para ello C()N c CF:.R7'I)(J dl.!hcna scr una cl1lid:HI lh:hil. ,'o"a que 110 liclle dl'llIasiado "'l' tll)o. n I.a ... arca talllhicn e",'all Il'lat:iollad ......con los l11édicos, ltn /'.I/:/JI('() ... una cra entluJd qUl' Il'llIlrá una intelre I<lclon Il.!tlex 1va Jefe que no ... Pl'rlllllI;i 1 ecog~'f que 1111 l nlcdl«(l tcnga un unlco cle (C¡lIdlllalld,ldc 0,1). Y que un Ill uico pueda 'l'l Jef d ... I c e
  • 64. ('11'111'1 () 1 IlIS'I·.ÑO (.'ll:-1CI·.I'ltIAI. 11-1(1)1:.1.0 I-iR 1_16_ l_ll_SI'_':_( 1 '01 II_)I 'i 111 12;. I~ I'H(lB!.0I¡~ HI ·.SlIl-.LTOS_- -- -- -- -- -- - ~.,~ SUPUEST()S SEMÁNTICOS REFLEJAL)¡ vario, (o ninguno, nledl¡lIl1C canlinalidadc, ü.n La entidad ¡1¡";/)/C'() llene un nuibuto ). Illultialllado "'1'1':10110". que podríalllll'i hubcr modelado de otra manera. pOI ejemplo mediante una entidad rl'lacillnad¡1 (.'011 la entidad AIÉI)J('() 1.'011tipo de corre-pondcncI<1 N 11 (111 cu.rl ..ignificuna que un II11,nll) tcl¿lono podrían clllllpanirlo va rios IlICUICO 1 La ad,cn pClún de lo, nledlco, .. a la' urca- la rC~llgelll(l, mediante la inlclrclacllín ,d-;criICl l.a-, c.lrdillalluade .. clegula- uhligall a que tO mcdicu e..e Ull t ad ..crito al IIICnO a un arca, ~ que toda área esté adscrua al meno .. a UII médico Oc igual forma p 1<11110' odt haber decidido que no fuera obligatorio que toda arca tuv lera al menos un médico } todo médico estuviera asignado al mens a un área, para ello las o canlinalidadc nlínillla, de la interrcluciún Adscrito scrfan O • no puede camhrar el área a la que No xc puede recoger que la fec de <lla de ha i 1111 a'egurauo se posterior a a la de Ingrc ... . o • la solución completa del ejercicio. Tampoco se puede re coger que 1:1atnbuto un número correlativo. "NUln" de la entidad ASEGUt<AD() sea Enunciado Con10 parle de la organizaci ón de las próximas olimpiadas de invierno, se decide la creación de un sisema de información para realizar la gestión de las pruebas de t esquí. Del análisis realizado se obtiene la siguiente infoonaciún: 1-..<: N 11 o. _-y""-.::;:::::-----------------'----,,...--J--c N,"n <- , 1.nl .;1--<11'1"' l' 1'" .n 11) 1 1 11 LlI juegos !>c co mponen de una scnc de pi ucha- , en cada una d la ... cualc ... e intervienen una serie de partiCipante" Cudu p'll trcipante en una pru eba puede intcrv coir a utulo indiv idual (exquiudoi indi idual 1 (1 bien tormundo parte de un equipo. en v cuyo caso el participante será el equipo ( o el esquiador). n De cada csquindor (indiv idual () de equipo) ..e desea tener el T)NI. el nombre )' la edad. A cada participante en una prueba (esquiador indl «Iu l ti equipo participante) se le asigna un a código de pan ieipa ción d entro de la pr eba ( ombre de la prueba )' un número u n secuencial l. De cada equipo se manuene un nombre. un entrenador. los esquiadores que lo componen y el número de éstos. l~1 que un equipo participe en una prueba no significa que odos los esquiadores que lo componen l inter engan v en la mism l ln a. esquiador que forma parte de un equip no podrá cambiarse a otro ni actu a títul o, ar o individual mientras duran los Juego Tampoco un esquiador individual podrá pa a s. sar formar parle de un equip . o 1, PKOPIO tll.II' t 1.11) t I '1) ¡".III 1 H:DI('() 1 "' "1 1" 11 L..,-r---r~.-'" 1 l' l' 1 1.111 'J 1 I I l' , I.n 1 l 111 ( 1.111 N Ale ('"d , (11.1 ) 11 1 I NI (I.111 ~S 1-(¡!IR1 I)() 1 ~ N() PROBLr~MA 15: OLIMPIADAS DE INVIERNO I-I()SPIT i L I y SEMÁNTICA e ....í a~ign¡¡d(). t .--------,~-(',,''_" h COl1PI.EMENTARIOS No <e puede recoger que un hn,pnall'llIeerHldll • Propuesta (le soluciún l.a Ii!!ura 1.70 Inueslra , 11' 11 1 Num -- ,L (1 ,11.--- .__ P()I.lZA .1111 11 Exi-aen una serie de Icderacroncx de esqur, cada una d las cuales tiene un e nombre y un número de federados (el) la" federaciones se federan los esquiadores a título individual). Por IIn acuerdo exi tente e s ntre distintas fedcraciun cs. n(1 "e permite que ningún esquiador se federe en do Icdcrucioncs distintas, 'I'ampoco se s admite que participen esquiadores (ni a títu indivldual lo ni fonnu ndo p arte de un equipo) que no e-aén lcdcrtulus. 1"" Cudu federación pu ede udmuusu.n una serie de cxuununc« de esquí. y toda estación se adrnirustrurá al menos por una Icdcrucrón. aun cuando puede ha er e...tab cione-, tic esqui Jthninl"trada'i l' onJunt¡lIllente por varias fedcrucioncs. Una e ...aciou de t •••••••••••••••••••••• •••••••••••••••••••••••
  • 65. •••••••••••••••••••••• r~~~~ •••••••••••••••••• , C,,,I'ITUI.O 1 IllSl:-,NO CONCEl'rUAL: ORA MA II~ 1,1,,'l(IP11lSI111 lJ,IOS ------------- I'I{(HHI:~I,SKI:Sl'I'LT)S _:'R'tA C<;4uí <e Ilk'nlific<I por IIn codrgo, tiene un n OlTIbre, unas per~()na" de contacto, una duccción. UII icléfon« v un nU111Cf1 total de kilómetros ('quiahlc~. <I,í corno la" pistas • de la que dl"'I)I,"~' Dcnuu Ik'l ,,ll'lna. cada pistu ,e identil1ea a paitu del coth!!.lI de 1" e,t¡lllÓn de c-qu: Y un IlUllh!1I1l'lllenclal Se con ...deran talllhicll ('OIlU) p, ...;" (para la rcalllacion i t de prueba ...de 1.lIl!0 rl'corrido) a vanus de estas p,o;las (,ienlprc de 1" 1111...,11;1 e,t;,clúnl que pOI su' caral'tel i-..IIC.I hvicu ... pudieran cnluzar-e. ,.,1. por CJClllplo, la p, ...u diez t est.lria cOlnpll~"ta por la... p,<;ta... JOS) cuatro. Se requiere, para poder planificar las pruebas. mantener e ...a utilización cOlnbinada de a, pistas. Para cada pista se t l mantiene también su lonuiiud en kilólIlelros y xu grado de dificultad (en la escala azul, ,. verde. roja y negra). La reali7aciún de cada prueba se dCS:JITllllarú a )(1 "11 ¡,!,O de varias jornadas en tina serie de pi,ta:-- de tina única estación. Los equipos o l:,ql1iadt)re~ individuales podrán conlp":lir en dilcl"cl1tes pruebas y en distintas pistas. Para cada participante en una PI 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 se obtiencn tic IIls cnrre,pnndielltes a cada uno de los csquiadorc- del equipo que han intervellidlll'll l pruebn. a (. uda PI uchu se identifica por un nombre. será de un tipo (fl)Jldl. ,,1:110111, salto ...l, tcndra una ...lechas prevI~la" de reillilucióJI Y se reglslran' el participante vencedor y el tiempo empleado pOI éste. I)iscusión del enunciado "L»¡ J,u'gll' (' //lIe/l 1/'11,'11 111111 /1I/,,,,,,',,il I,I/n,' tfc 1111 "l/lIiflll, /)NI, 1'/ /)(' t (/1111'0 1I/1./lUI serie dr i"díl'irlllfl/ /I'/Ido ('l/llipo 1'11 l'U'11 C(lS(I 1'11("ada 11/11/ Cae/a /1ltrl/l'i[J/Ilr1t' ¡('I/I/i,te/or 11I1I/il'IIlIlItlC) //lIlíl 1'1 /)arcl<'iflIlIlCr' ,(' " ,,/ III¡IIII'/''' IlIdll, le idual, ellas, Sin duda, habría distintas poslhilidade, de recoger esta sClnántica, pero una fonna elegante y sencilla sería repre~entarlos por separado, construyendo dos jerarquías. Una de ellas recogería los participantes, divididos entre aquellos que son participantes individuales (l'_/ND/V//JUAL) y los que son equipos participantes (P _EQUIP(», La otra recogería a [os equiadores, dividido~ entre los que únicamente pueden participar s corno individuos (E_INIJ/V/DUAL) y los que :-;(110 pueden actuar en equipo (E_EQUIP(»), También lendrell10s una entidad EQUIPO. que almacena los equipo, s identificados por un "Nombre". Entre las entidades se establecen distintas interrelaciones que reflejan In sClnúntica del enunciado, Así. tendremos una interrelación Tiene con una dependencia en cxi~tencia entre IlIs equipos y los equipos participantes, y otra Es entre los esquiadores i dividuales n Y a uellos que son rarticipalllc~, También q existirán interrelaciones e ntre 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 íormu podemos recoger tanto lo~ c"quiildIHC' que componen l e; equipos (rnediunic la o Inlcrrelacion Conlput'stol co rno la alincacion del equipe en cada prueba. es decir, lo!> e~quladurcs que efcctvanll:J1le tornan parte en esa prueba (mediante la in i rerrelacion Forma_Parte), Podría plantear-e que la interreación l entre los equ ipos )' los esquiadores de e quipo también presentara una dependencia e existencia. La figura n 1.71 muestra el esquema realizado hasta ahora, el,' la' cuales -- 1'11 IIIIU prllchll .1,' ¡II((I 1111 {'IllrI'/ladol, 11 (1111 (111 ,','1111111,1/11 '/111' 1111" /lt 111/11/1/ ti IllItllI I'IIIIIU llIl lil'ltllU¡/ , /111/'1///1' 111,(1l Irllllt/l'"rI/"I1 /'/11/" '11Il' /(1 de 11/1 1I111'lIll'a, 1','111 11 II,n/ulr />1' I'(II/irllll' ,'Olllfl,I/I('11 1'1/11//'", 1,1 cI,,,,," IllIrll' d,' 1". " (1 n 1(111'1 ('(ldll 1/11l' 1111"11"'11,1:011 ('" JlIl'go, 1'/llIllllalvl' I IIIIIIU/( - /0 ,I ' ,'/1 11/111 IJI 11('1111 1111 111>/"11/1'1; l-()I ¡ ·ll·'K ht..JC> -'-c;ZZ::¡II!'ls:%lI I'lIr/irll'I/('itill /0,1 {'SlllIitU/III'<', (/111' 1111 /'I/lIi/l(/ /0,1 I' ,IIIIIII/(/orr' de I'(III'III'ill/), " 1111 111;/11('''(/ IlN,.--r ""IÍi'!(I.'~ () IJlI'" Iorl/llllle/o 1,1 1''[III/)O .H'nl 1111 ('/ltligll ilsiM'UI (IIOIIIIJ, l' de 111 /)/,III'f¡" 11' 1I11111/h'nl' 1111 Il/IIII/JI'C, I1 ,/IIt' /I/l/C/UI', 11'1 A partir del prim supuesto podernos detectar la existencia de do conceptos er s dislintos. 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 los juegos, bien inolvidualtncnte, O bien tonnandn equipo con otros, Los participantes será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 como participante en varias pruebas De Igual forma. habrá equipos que podrán actuar COlnO participantes en distinta ... pruebas y CU) a cOlnpoc;ición será diferente en cada una de "d" I!(/II/llelnr (illr/iI'idlllll /) de "l/lIil'lI) St' de,'I'tl 1('/1<'1 el /a I'dlld ti I'arlll /"/'-/I('i[llllll<' e/l II/1U 11/1I"ha (l'SlIIlItU/OI el,' /" 1'/'1(,'(111 {'/lI/lI"IIII'II '1""llir 1 /1111111111' 11I,(II,id,IIlI/l .!('ltlI" (1 IIl1a el,' parliciplL/IICS. ('/'I{, l'III'lft' /',(II,;"tflll) d{' 111111/"'/1('11 .==:.:-------------- MODELO EfR ,..,,,I~I·. - 111 Il'IlIt'II,,,I.(>'"I ...... 11)' 11'(1 o- j ,:'-t. 11 _ !, 1"1 I' 11 11/1 ¡'igura, 1111('(/111/'"'" • / 7/ _- -_- _- •I !I
  • 66. ----------------.--1~n 111"1ÑI • 1JI' 1l,·SI 'i IJI' n lOS 1'1{()1l1.1'~I¡S RESU1:t,TOS de lu PAl{'fE 2 01' rll' C'I/1I1, cutlu II'rI"/(1t I""C'I I 11/1 III,IIU"" ',IIIII/'/( 11"" <rn« d« d« I,../('I<II/,H (('/1 1"rI"lele /(/1 ,,//11'1 1' estacián¡ (/II/! /11 /'(/11 I!jl'/lIplo, P"! ¡/'I'- ,111,1 rnractrrisuca» III'/lr' '''' tl'e/C'''''' /"' 1.t1""",// 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 a IIIItI" 11,'/, uluu! '" /O/l/IIII"It, (ltll 1(' d« 11" C'(/"'I'0) qu« /111 ('1/ 11 t('d, / «uln» ,/1 v e/lli, 1111/1'11'/" de 1/IIIId ¡(lCII, C'/I/I//"/e'I/1I /'01 ,'IIIII'UI ,c /,'(/11;(,1'(', /'"1'(/ poder /I"I/Jlttl (11 1." ,'0111111111/(/(1 1111 1".<1111, Para Cl/dl//III'eI de dr lu» , IHI/" 11/10 IIJ1VIIUI flor A,I, /111'11 () 1 IlIS".Nc)('ONC!'I"Tl 11: ).Ion!'! () E/R _-:('11'11111 GR ....MA pudieran enlatnrsr. I(I~/",IIII~ d/)I /1111,·/1111, 11111/11"111'/('l/ti 1/' (e'lI tll ,'( I~I 111111111"11" tamluc» alu " "fl/, crdc, v (1/011'11, I/lIli:u('iúlI .<1/ ""lgl/11I1 1'''/'' l' ('11 ""1110)," 1 " II/It/" "(/1"'''/''11 Este purralo urucamcnc t denota la existencia de una mtcrrcluci Federa I:N ón entre lo, e~quI:Jd(l1 c-, y la, federaciones a I~Ique pertenecen. t lcdiantc las cardinalidades 1.1) recogemos ( que todo esquiador csui federado en una única federación y mediante la, cardinalidade~ (O permitimos .n) te ner almacenadas fedear ciones de las que 11(1participa ningún esquiador en la olimpiadas. La figura 1,72 muestra la intcrrclactón Federa entre !"¡'JJERAC/()N v F-SQlJ/AIJ()R, ¡";Clmhr,' 1,1-.1) A( '1( ) N I:li N'1111I.'I' ( 1. I, Emrc 1;1 fedcrucione ... ) la ... e,>tallone' hahní una intcrrclución N:~1 Admin. que recoja que ícderacion o tcdcracione ....nímuusuun lada estución. Por otra parte entre la . estació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 ódigo de la etación. El atributo que reco c s ge los kilómetros csquiable ...de una e!>lacilÍn <crá calculado a partir de la" longitudes de las pistas que la componen. y el atributo que almacena las persona" de co ntacto scni multivaluado. para permitir que pueda existir más de una persona de con tacto en cada ., estacion. Medianil' relexiva f Cllnti('lll' rccogerelllos quc una pista puede estar compucxtu por otras. Sin embargo. no es posible recoger en el esquema qu todas e ellas pertenezcan a la misma estación. El atributo que almacena si una piSla es o no compuesta sera dcri vado. ya que l'~calculable, I-n cuanto al al ri huto "Longi tud", que contiene In ...kilómetros de la pixta. también ,cn¡ calculado. a unque ,,610 en el caso de lav pl,ta compuc-ras UC olra ....111 cual 1:1I1l!l0lll pod~!n() le,og_t:l1o en el esquema. E l donunio ul'l atributo "Grado Dif" c:-.l:lr( Itl1l11aUO '01(1 pllr Il)~ cuatro valores pcrmuidos (verde. azul, rojo) negro). La tl~unl I 7' IIHI('~lla el esquema correspondiente " esta parle IN ," (11.111 ...r-__JL---, J)'I N, "llhr.' la inrcrrclución o---l I-SQIJAI X)I{ .t ,'.,"<lO----l...... .." 1"'' ' • .'I (, • • ,1' ",1 1...... u .... 'l ·n"~ 1, L'I."'" lO. ( 1.n M~·r ,. Figura 1,72 l" I 4"r.ld.,lh1 I"U¡:ltUJ "( 'IIe/O /I'tI,'/II' {'1/(IIII1// hol,,'/ ,1' ~""I/"'/II/I ~ ••••• d,' 1111" IlIc'lIlI,l /'01' ('I(/IIt' "t!/I11I1I,V(I'IIt1,, dt' "11/'" 1/1'11111/0, "11/1//,11,/"1,,111' //1/11 eI,'/IIII,'/II", ,J, ",/"/ tll' (11111/,1(,,, //1// 1111111/"'1'"""1 (11 ,III/11;1I1,1(1'II/rI ,'1(111';11111'1 • 11111,'1 /), 11111 pl/ed,' '1/I"liIIlS/11I1 11'//11/111 I " " 1111111'", 1(' 1,',11,'11' 11/1 rll' 1'1/,1('1"/1"1 11//11 II,,"'/'(/<,/(ill, /111/ '''' /'rI, "líd;~II, 1111 /1'/1'/""1' rle ('11/"', ' "" 111/'111,1 lie ",1/"1' tinr r '''1 nombre. 1111/"1'111/111111 rI,'/ ,"cI/I':" el,' I IIII"eI.'IIIII 1(1111/".'/1 /.73 PAR'rE ... [cden! tic "1 ,1 / ('(I/',II,'i,íll el,' , /ldl/ tic ,'11 1/1/11 S,'fll' /",11<1,1 el,' /11,1'/'/(' ,hl/'IIII" ir/ell".I;( 1111 Figuru ""/U 111/11IIIU/I¡/" /"tI'¡/I' "OIf.JI/III1/1I1I"'II' v,' ',{('/lli1'1'1I 111111 d""I'I'íáll, (,(1,111 /"lleI scru: , 1111111/''''11111'111'(/ lu "II1e1 1 elrllI n'g/,-/n'''; P"I'''' [" de /1/'/1/1 111.1",dIlU/I'1 "lIdr"" /11 ,'11,"/1111 /"'111'1>(1 11' "C'(" /11//01 /1'1 "u 1111(11//1" el 1'11/11"''', e 1/111/'1'/1/ '/"1111" " ('11 ,í a 111 1'/1 dl/,'/('/ff,'1 11/'" 1",111/1 '/1/1 ',,1 //11/11' '/'11, (1 ti" I ,'/1 tll"lIlIell ('1'/1111111", 1'/ '11/11/1 11I/IIOi/II,1 1"/111//1'1 11 "1(/111111"1/"1 1,/11/'/11/ /'/111'/111 (1'1/11//'" ('1/ /Ol'XII lí"/II/,I) //I.It/V. IlIdll"dtUI/) CIIII,I,'otlr! ,,,' l' /11 '•• '.... '• ('e' ."¡/IIe '¡"~e "e'' . '¡". ••••••••••••••••••••••••• ¡ 1,,"1' "'" "/'lr/llc1o ,,,,./, ell" el,' ,"(IIIP'" ,'lltll tI/lllIl 1' " ","',,,'" ti. /111
  • 67. ••••••••••••••••••••• ••••••••••••••••••••••••• _---,":..c' 1 , 111'1 "/1(111t111'''"' 1111''1",,'/11.11' 1''' ,,, i ud« 1"111'/1" , 111/111 1, undru .. /,,1111' a t 1111(/ 1(/111 .1" /11, (,,11/111111/011' .1,'/ equi¡») '/'1" tpun« ('lit "'/tll , /11"/"/'" ('/lII'I,'a,{ .. I '( 1,,,,:"1',/1,, e! ' /(',dl,O"II" 1"'/ ("1< F()rllla_Parle. 1I11('ITI'LIl'II1I1 ti, 111111/'" r/(I/I'/,·, ,/a/IlIIt, 1'/11 12 ' 1)1.' ..:,Ia manera, 111, .unbuu», de Forma Parte comen11,11111, v.rlurc-, p.u a el cavo de Ins c-qui.ulorc-, qu !OIIlHIII parte de 1111equipo purtie 1.11'.1"1', lo, .urihutos de PNl'FU. 10 valore para el ca,o de 10 p.uuctpantc-, mdrIldu,dc, l de Cljlllpll I:n el 1.'.1"0 dc ("11 111111110' ,('rall ("Itlllado, a p.uur de I)~ de 11,,11 /'"11"'" 1.1""11/11 " 1'''' 1111""'11/'" 11111" [c« ha» 1"'" "111' d« 1'''1'11111l' 1 1>11 ,e JI '()"'( I "'11'. 1 11>1.11.1 I-IR () H , ~Cll'nla Parte Sin t'lnhargo, al Igual que (}l'UIII.Il'lIl'l • 11 PUdl'IIHh rcprc-cnt:u el e'lfUl'III.1 cu 4U( 1'01'1 dl' la hlll~IIUd de una prstu, 1111 rhtuo "Ir "eol dcriv udo ,010 en tklL'nlllnildu...lil ... v, " Por "lla parte. Iillnhll;n añadircmo-, IlUCO'" <t la entidad prueba: IIp' de PIII,'h,," 1!Il11dn, -lulom. ~.tltll. l'k'.). "lcchu-, Pl'l' Ila dc Rcalizucion" (que ,.-1',1multi , ulu.ulo}, "Panicipuntc Vencedor" ~ "I icmpo !-,rllplcado" 1'01' 0,le. F.'tll~ dos 1I1l1l11lh .urihuro-, 'lT:íll dcrivudov. ~ podr.in uuuar :11111 nulo, :;j que nmc-, dl' ~ I ,l'khra ,, , '1 ....c !" prueba icndr.in no ninuun ~ cuatro .uubuto-, alor. .,.' l· 1 J, .. Propuesta de solución " ~ ,, -, '_ 'Ab I .;" L "."" 1" ,1 ;1 ri~lIl':t J I 75 1lIl>,II';1 1'll'SqUL'III,1dl'finillI, , 1 , , ., ,, ~ 1~ -, .1I11CrlOrc", aparte de alguno- atributo" nuev 0" de In" que rablarcmov a continuacron. umcamcnte añadiremos la interrelaci n 'rienc_l,ugar, ó que contendrá 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 mivnu estación. Podría pen-ar ... en una interrelación e 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. , ¡~ y , lo Fieuru 1,7-/ • ¡ It 1 ir¿;¡Ji: e , T " L I' . 1'. A parur de lo" p"rra!o" • t ," ~ .,.1 1' 1I ~" " - I l ........_ ,," H I '1 1' 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 un participante ":1>tUII en utribun» EIl pnncipto, I)~ P()lll'Il(I~ en la entidad l'AR7'1(,1/'AN·r¡.~ (que, cnmn sahcllHl', tilla prueba, l'l ucmp« empleado eugloba tanto tI pauicipuntcndivulualcs co i rno de esta manera no ICCIIl.!l'IIHI l'SIlI:-' datos pala equipo (en e cnuru iu.ln 'l' nll<; dice que para l ~,¡tll'ul(J1I " punn dl' lo, dI' lo, ("qllladlll'l" que !tI l., que ,IP,II''( " 1'11 1I 11,1:111'11 7-~ e, y la posición obtenida. a los que son equipos), Si" l'lllhar!!I', lo, esquiadores componentcx de 1111 el caso de 111 equipos ItlS ualll' !'orlllan), Una pO~lhlc "'0 11 11111 qll(' IL 11l('llrpllr:.l 1 c,lt,.. "Irihulo.., 1;lIllhil'll ,,' , , . ,. '" 1 1 I~" t" l'll l' , 1' • ,1 >• l."!.,, (I ! l' l. ! ,1',' 1"1'1 " ,¡ I
  • 68. W 1 lPlJES'r()S SI<:lIÁNTIC()S l'()IIPLt<:",IENTAI{I()S ·:FLE.JAI), v SEII.Á:'Il'J'I(', N() Aunque el e-quema Il·lll¡.!l· que en IIn 11IllI1l1'1IIod ..do un "lJllI.ldlll IIltI" ulu.rl l de equipo. 110 1'l'O)!l' que ni' pucd.r cumbiar tll' equipo. cvquuulor 'l' Il'l'Ogl' o qll' P;I'" c-, dI' de l'qlllpo .IC'III1I.ldor mdiv ulu.il o JI fe"" Lunpocu 11111 .Illh·llIl· que una 1'''1.1l'lllllpUI"la ',lalil)II, ni que una I1ll1l'l1" 'l·l'l'k,hll' El 1"11"1.'111<1recoge la -ccucnciuhdad 1111 e'IC IOII1I.Id,1 pllr 111'1.1-' dl' ...1I !,1,la, del de la 1111'111,1 1,11111'111;1 l"I.llI"" "['11111'10 de Panicip.unc" 'o" J ,1 hl'IIHI' dicho. en l'l l"lJ"ellla no puede rl'(.'igl'r qlle 1111 lnbulo pucd., a ser derivado -.11111 '11 1k'1'lllllnada' I'l, .... ionc-. ('111110 t •••••••••••••••••••••••••••••••••••••••••••••• I)ISEÑO LÓGICO: I"fR()r)ll('( MODEIJ() 'I<)N Rt'cor'daluri" de la estática del 'lude'o 1-1 ell'l111'I1IClcentral 1I'llIh, c. un REI_;ACIONAI_; l'lIl1JUlIl1I ;I~.I,I' I~Ul',~II.·lu)en del modelo rclacronal de atributos Relacional l· ... 1.1 que representan Rel,I.·lon tilla su " rrllfll edude 1'1'1;1'11111 ) tiene UI1 IIn conjunto de lo-, '¡¡-",H'C' que cada UIII) de 10 atnbuto-, tnlHa para cada ek'llll'lllll 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ón k rlt'llllnaU.l /t.L'IIN() 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'l '. 1.1 1~1.llIClIl LII]'l,rclal'lolI 't l' , ," , 111.1Up.1 LIITTc!<oplnulCnlca II11ll·,II"11 1'( 1(> A 1,( II1N() It, I'f{l( '111.1 N()1'v1RRI~ ('11IIJ/I) J( ) I Juan rvllllllt'f) lo.:! 1 lrnrc, In Alicia (rls(llhal - - _ I!.l_a Vallck) Ignacio l.opcz I.egallt·, I "gane'> t 11l,tllll' 11'11l'l:J1lanílll'/ / 1'1 H 1'1111 .:!O] ,lOO IOl • ll~ dalos de lIll ¡¡lIlIlInl)' , t ('(JI) (iRIII'() II II 21 JI •
  • 69. ••••••••••••••••••••••• I( "A Los atributos de la relación se definen sobre domini fo os rmados por un conjunto de valores homogéneos y atómicus Por ejemplo, el dominio del "Cod jnarricula" es códil:!()~, tounudo por el conjunto de cadenas de longitud 3 caracteres, '1umbién es posible definir d(l11111110~or extensión (enumerando lo, poxibles valoree; de loe; que p consta el dominio) u bren indicando n rango de va u lore .., Ll modelo rclaciona l unponc una vcrie de rcvtrtc: n) Fn una relación no puede haber •••••••••••••••••••••• ___ - __ ('AI'iTIILO 2' ~.:...: .Er.fPLFAUO (N()MBRE OEPARTAMENTO, DEPA RTA~IENTO (obligatoriedad de clave primaria), 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 tomar un valor nulo (regla de i tegridad de entidad). n Por otra parte, lux mecanismos que proporciona rcstri: ('II)/I(,~ scnuintiras o de /(.1'1/(/1';0 son: de una rela ción el modelo relacional puede para ecoger r NOt.1BRE Pablo Montero " Beatriz Cristóbal J. Luis Martín Almudena López Angel Vallejo Pedro García (NUM ERO DIi!1T, NC)M BI< 1:.1 EMPLEAD() SALJRI() DEPARTAMEN1'() 220,000 14 300,000 13 l50,()OO II 350,000 13 400,000 14 - FECH J _ N..:..,:A:.,::C,-+E=X:..:,T-==.T_Lrc_' _-1 200, ()O() II NUMER-O-_-n-E-p,- II 10-) 1-67 20-9-68 25-(Í-77 4-5-(Í() J 5-4-72 12-3-70 6543 6577 6433 ---1 6422 6321 6323 _ '':::''::'::''_ _ I l NOMI3R.:.::.E_ _ ~ 13 14 Contabilidad....;.----1 Marketin In formát icu La integridad eferencial r asegura que Jos empleados de l relación a EMPLEADO sólo pueden trabajar en departamentos que hayan sido dado, de al la en la relación DEPARTAMf~N"rO, el La re ...ricción de ohligatoriedud (NOT NULL) permite declarar si uno o t varios atributos de una relación deben tomar siempre un valor, es decir, no pueden tornar valores nulos. ,l' EXT_TELEFé)NICAl DEPAR'I'¡MEN1'() 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 tuplas de una relación 1 , de clave ajena (F()RElGN KEY también ), denominada ;'I/I'grid(l¡[ 1'(:/('II'"l'i(//, se utiliza para, mediante c laves ajenas (conjunto de arnhutos en una r lación que es una clave primaria en otra o la misma e rclaci!," cnla/tll' Icltll'i(Hlt's de una base de datos, La mrcgndad referencial nos itldi~':I que lo 'ahI.!' de la clave aje nn e la rclucion n h ijo deben (()! Il'~pnnlk'I'1: COIl In, valore- de la clave primurin CI1 1" reluciun padre ) hicn 'l'l 11111, '1 -c admiten nulos, Los atributos que son clave ajena en una Il'lal.illll 1111lleCl"lt:1I1 tener lo ... IIIIStllO' nombre que lo, atributos de la clave 1111111,111:1 con 1" cual cllll' ..e corc<;pondcn, A cominuacion r C muestra 1111 l'll'ltlpl" 11..: uucgridad referencial ((111 la ... rcl.uronc Ft-.1Pl I',/[)ü y P I~ t 11 'J I t ) FECllA_NAC, 1~7 , a) l.n i csn icclon de 1/111'(' primnrio (PRIMt'RY K E'{) permite declarar IIn atnbut« CI conjunto de atributos corno la clave pumuria tic una relación t identifica uruvucumentc cada tupla de la rclaciún). En el ejemplo mostrado antcnor mcntc de la relación ALlJMN() a clav e pruuaua l es le ainbuto "C' Id_In a t r íc u I a '. dI La SALARIO, t10LlELO RELACIONAL Las claves prirnarius de la relación hija E~tPLbA()O y de la relación padre DEPARTAMEN"IO son "Nombre" y "Númcro jíept", respecivamente. t El atributo "Departamento" de la relacron Efv1PLEADO es una clave ajena que referencia a relación DEPARTAMENTO, l es decir, los valores del atributo "Departamento" deben corresponderse co los valores del atributo n c lave primaria "Núrnero_dept" de la relación D EPARTAMENTO, Algunas lupias de estas relaciones se muestran a conunuación: /(1//('1 1I111t'l('/I/( l' do" tuplas iguales D1Sl',NO LOGI(O: Además de la integridad referencial relaciones entre sí dando lugar a la estructura d la SD, el modelo relacional permite también c definir las opciones de borrado y modificación en las claves ajenas. l.xtas opciones indican las acciones que hay que llevar a cabo cuando se produce un borrado o modificación de una lupia en la relación padre referenciada por una relación hija, L posibilidades pura una operación de actualización as (borrado o re ... tricción que nos permite enlazar modi [icación 1son: • • Borrado/i nodi ficación en cascada ((ASC'A I)E): ' El horrad o (o modificación) de una tupla en la relación padr ocasiona un horrado (o e modificación) d todas las tuplas relacionadas e e la relación hija (tuplas n cuya clave ajena coincrda con el valor de la clave primaria de la tupla eliminada 11 modificada en la relación padre), A«. en l ejemplo anterior de e
  • 70. I~~ IlI1 '0 ni 111 S In: n, 10 I'ROIIIIII ., RISI'EI TOS Lmpleados y Departamentos. el borrado de un departamento nOt rado de todo-, los empleados que trabajan en él. supone un • rC'll1llgidn (RF.STRICT), l-n cvtc cuso "i existen hija rclncionadu-, con la tupla de la rclucion padre sobre la que se rcali/u I~Ioperación, entonces no se pcnniriní llevar a cabo dicha operación. En el ejemplo anterior, no IoC podría borrar un depar uuucnro que tenga cmplcad.», que lrahujl'n en el • con puc:-.ta a nulos (SET JLILLI: Eta posibilidad no, permite poner el .ilor de la clave ajena rcfcrcuciudu .1 N l J).). cuando se produce el horrado 11 modificación de una t.,pla en 1,1 rclncrón padre, Conunuandu con el ejemplo a nterior, el borrado de un departamento implic.u ia que todos 10 empleados que trabajan en él pnsunin a contener N LJLL en el atributo [)EP AR'I'A M ENTO, Evidcntcmcruc. esta opción está pcuuitida siempre } cuando la <.:1<1 e ajena admira nulos. • CA 1'11I I () ~ o itA ,.., _ Burrudo/modificuciún lupIa, en la rclución DI"I io 1rx del) 11()1>r:IO REI..lIO;.1. !:!'I f) Aserciones (ASSER rION)' O tro tipo de restricción. que generaliza al anterior, l forman la~ aserciones e las que la condición se establece sobre o n elementos de drxnntas relaciones (por ello debe tener 1111 nombre que la identifique). Su luncronamienio es idéntico al de las rcstnccrones de verificaciun. La unicn diícrcncm co nsiste e que las rcstriccionc n de verificación n ('IIE('K ienen corno ámbito una única relación, Continuando t con nuestro ejemplo, se podría expeci ficar una aserción para la restricción qu e establezca que "no hay ningún empleado que trabaje en el departamento de comabilidad que ga e mas de 200,000 ptas." n Borrado/modificacion puesta a un valor por ~'I'~'l'I(l (SE'I' I)!:FAULT): d Su funcion.nuicntu 'l similar al caso anterior. con la excepción de que el valor ,11 que C 1)1111:11 h, cluv e~ ajena' rclcrcnciuda .. C~ un valor por dclcctu que 'l' habru cvpc crucado en la dctrnicion de la tabla corre ..pondrcntc. Fn l"tl' l'<I,n, en el ejemplo untcnor. cuando <e horra un dctcrnunudo departamento , e poxihle a'gllal l U empleados a un departamento Iicticio (que debe encontrarse cvutcnr mcntc e prese te e la n n Il'I,1( ion I)EP t R 1', rvl EN"r() 1, Horrudo/rnodificacióu En la' restriccione-, que involucran algún tipo de subcousulta e la condición n (por ejemplo, si ve utiiza alguna funcón de agregación sobre la~ tuplas de una l i relación! puede ocurrir que puedan implementarse COI110 un (:HECK, Sin embargo, es necesario studiar que la restricción no pueda ser violada en e ningún caso por cualquiera de las operaciones que puedan realizarse sobre el esqllclna, Por ello, ti veces es necesario ir plemeruurlax n co rno una Aserción. l lllmnn y Widom ( 1<)97J, ~'{11l I ,¡¡~ Ilpl'IOnl:' de horrauo y rnodillcu<:ión pued ell ser distiIlta~ dl'lcnninada cave ajena d una relación: p{ <.:jelnph), es posihle l e lr horrad,) CII .'ascada y la I1H)(Jilicacicín restringida, para una definir el c) Reslflcciones de ~/criji('(/('i';lI (('HEC'K): En algullo" ca"o:. p ueuc ocurrir que ,ra necesario especificar una condición que dhen cUlnplir los valores de c detenninados alihulos de una lelación de la BD aparte de la, re ..lricciones y r a ila, de cla'e prlInaia, u r nicidad, nh ligaloriedau y lac ajena, Para ello se c uelincn l ~ reslriccionc'i a uc veificación quc. al igual que la~ ya es r tudiadas, il'rnpre llevan illlplícitas un reL'hallll!n caso de quc 110 se cll1l1pla la condición l'S)1l'cificada y que lalnhién ~c cOIl1pruchan anh' una inscrcic1n, borrado o IIHldili<.:al'i6n, ('c)lno las rl'sll i('(.'ioncs de vcrificaci6n sienlprc van lIgadas a un lillIt'O l'II.'1I1l'llIo de la BI) (gcIlrlaIIllcntt! un re)¡Il'iún) 1111 l';-. nece,~:Jrio que a t'Il!!'lIl ,111 1I11I1hre,Por l'jl'rllplo, para la rcl;,¡ción ErvlJ>I.I~II)() podría dl'linirsc ulla 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 lIcil'lI entre las I (lO,()O()) 1 'i()O.OOO plas, Así. .., '1 "l' a a Inerlar un cnlplcado COll un sueltlo ~upl'rinl a 1 50().OOO pta~, la .. llJl1'1 al iÚII ... rech'l/aria e Pl)J' ültimo. a veces puede interesar cxpccificu: una cuando no se cumple una dctcrminuda restricción -em.imica'". Fn e..c (',1'0, ..e recurre al u... de los drvparadore« 1) Ingger que o nos pcnnueu ad ema-, de uuli car una condición. cxpccrúcu: a acción qu l e qucrenlo~ se IICl' ;¡ caho SI la condicion ..e hace vculadcm 1,0<; drxparadorcv pueden rntcrprct,u se como regla .. de tpo evcnto-condrcron-accion t F('A 1 que i pueden interpretarse CO regtas que especifican ll10 q cuando se produ ue ce un evento, si se cUlllple una condicion, e ntonces sc Iral17a una dctenninacla acción, Los disparadores no están soportados e el SQL-l)2: "in enlbargo, n exi,len prouuc!OS relacionales que los soportan aunqu con diferencias l'n el c n1odo de fun cionanlirnto, En nUCSlro ejelllplo, se poúría tlefinir un di purador s que "informará a adlninistrador l de la BO cuando haya un ell1pleado que gane lnás de -l50.000 pla" y que trabaje en el depanaUlellto oe Markeli ng", ('onlo 'erclno!> Inás adelanle tanlbién son conveniente.. para nlante ner algunas restricciones de eSlJuen1a ElR que no tienen contrapanitla l c el 111odelo n relacional. gl l nspnradores ('1'Rl(¡Ci)',Rl acción di ..tinta del rechazo Notación Un csqll~'lna relal:innal rcprescntuní tl diunte UIl grafo, cC)Illcidn COnl) grafo e rclacion<ll: h,íIC¡lIlleIltc, ~(' trata de un gr,lf) dlrigiulll'lIyo~ Ilodo, son las rcl¡u.:innl" úe Sé " Al cUl1lr~"(l'Iu", ~111;" ""Ir,,'<'IIIlll" oper,llllí" lk III'l''',I'''' hun, ..III" dlspalauulc, la aCLlúnc'p,'''lll;IIla COOlhllll" "'1'1."< IIIGIJ~ ued,IT"II;" "'la' h,,,t, 1 "hllr" ,'11la, 'Iul' 'c ,,:~h,.I,.la 1I1,,,hl,,adlll1 " NC) 'c cumpl~ 1,. lHI1JKIHII, en el ':,1'" .k' 1 .., '11 ':U<'II''' Jd J"p¡uadnr 'c cle<.:ul" d '"'Inr'~ cU¡lIIdll 'e <U'II('I" la ) ••••••••••••••••••••••• •••••••••••••••••••••••
  • 71. ••••••••••••••••••••• ••••••••••••••••••••••••• , 1 f___.1 • - • ,y <:>: e • 1. -- - - 1 o 'r- I (J I'I{()I:I-J)()I{ '1 '1 n ,','dol ' , o o o 1 ...... ~, <> • /,,1>,11,' • i/ I It/I I/II/I¡ 11c(" , "N" • I , [. ,, ¿ , 0 1, t_> • 11 de 1:1 entidad ~all.'lIl" ",hll' dll'lhUln ,k't'i 1:" 1,1I'L'", 111"",(, 1(1,.j' atributos. En qu' 111.'111' ¡¡'(lC iad"" IIlIa ,}I11l11(, 101 ( I()',I IIl' "('PÚ 1'()1 l' "l ,,, 1L'l'(lI11hl)" 11 • touu.ru 1;11'1.111.' 1'11111,11 Id, ()/'I'R,I/<I() valun- dI.' ll'll<)llE. IJ'I!,!III:1 ' 21) 1" UII E:I au ihuto idcnuficador 'l' obucncn l,'llIllllll."lIllado la ligur~1 2 1 Id 1'lIlld,ld que ...... hlielll' o ad) "[:unl_lh)ra~" 1 ,'011 1:11"1111.<'11'11 ilrihIlIO"ClI)O' )Inl~ <1 1:1 l·lIl1ld!,'I1.1LIIIII d... ,,!','rano. (/';1>/1/111 1)1 1/IIIdo,: • I jUL' Atnhut« 1//"1"111/111'1': l', '1111 .11"'".'lllllll" 1 ,1 1',lile I/hll -vtnbuior-, !-.I'g ~tll.¡al' ,tllTIl~11¡ l primun., !nhllll" ()/'''t:III",I,, Ide'IIII/IIII'/'" 'f clave l'lla • ,. .¡ 1 1'111 1 (i . " O , ' 'f Q ! dctcrm inada tic al~líll tiene I<r.I'¡I/?A('lcj,v d,' 1" ,1I11l~1de 1:'1 1:1duración de l(lda~ ll'p;¡raL'1I 111, ( 1 , • o , II'¡('/II, 1 1'>1111,1d(' Il'JlII'''I'IlI.l1 :11111111111' '111 1", l' ,'lllIljll1l1'1I (1111ha 1111 .unhui» ,'11111111."111 "III.'IIIII1k'llIll"lal:iII1,II), 1 "//111/11',/1' • : Se Ilal1,IIIIIII'1I1 cu ,", • /11.:/1111 -' 11"e IIlel , ,N 1I~SF()I{" ( 'I()N 1)1-: ('EI~RI'.I./(1()1FS IN 1:1' 1)1' 1 i 1111 I)F~, I'RIHl J'()S" I)()"''I(IS : 'SF()I{:'I ('1('' ('"dd I , l ntid.«! 1"'1 ""'1",'111.1 1'11< d;lI;1 11I~al ,11111<1 1111,'" Il·I..,le'" 11I,III,ll·'LII.I,'IIII1I,.ld"1 I'IIIILII'.II ,11.' L·I.II ,1l'I,IIIIIHI,HI t ',tÚ;] .vt nbu«, d,' unu 1.1111".. d ' e Ilal1"IIIIIII,1 ,'11 un .unbui» tie 1.1 lL·I.11.'11111 Lle:ltl.. a la l.nud,ul. ,11I1)tJlh' 11.1) ti 11 tener ,'11 c ucnta ... -, dl,11I111" ¡¡('ti,> d,' le'lflCl'I'IIIL' l' u "·a... · 11,1111 1 ).111 IIII!.II " UII .unbui« , ,1(0111111/1 1'11/ 1lll/ud"l 1.'I111dad I l'(lhlllll1,I~' 111'/1)/(/(1 (J( (J/'.'() / ()/{. , da "Cod "'lllllllllola" /'.1111/,,"/11"'/1' 1II1I1IIatltl d'1 ,IIIIhullIlIllIlll'¡)lI:It!1 II'Pl'II,I""I'~, l', SI 1,1 IIlk'1I1'JaCI()I IIIld.l 'Ullll':II' UI (',I,IIJI() 1111111:111<1",1.1 1·1I111.,I1'>I'"Il". '1 ,'1 1",ll' ,111111 elal' ucn.: el alllhulll <u 11,111,1111'111.1'11111:111111111.''''1'1"1"11.11 d..,la 1 para Itlt'.tl.l , .uubut« 1"1I1I:llla I'PI 11I1I111alllad" 1111;1Il'lalllll 1111,1 1,'1,11",,1 1"':111.' 1.1 1~ ..ItTrel'II':lIíll. 1111111'1 p'l'/a, ,1 1" 1111:11 11' 1;1 1111111:ld 1'11 1:1 qu,: <e ,1111:1 el :111 la i"lIl" l'll'IlIpl .. , ,'11 1.1 11)..'111.1 1 1.1 1'l1ll1lad ~ 1'1(1'1'''''' . rl'I<I,'11I11'1'11 el 1111'111111I1I1I1"L' COIl In" 1 1):111111).:.11r uua IIU':'.1 ICI:llllllll'II).lll:t, . nn», L'IIIIIIIIIIIl' 1111"dlllll<, IIlIa "lcc hu 1I11LII'" 01111"hll" . LllI1L':lll'II:I'I,1I1 111: 1:1 LI.I" muluv aluado 111i':1I " , de' la 1,'I,IL'IIII1, 1 11 1:1 II!lUI,1 2.1, 1.1 , - la utnburo-, e... o, pa ... ran ;1 1"1'111.11parte de la rclaclúll l u Por cjcrnpl«, la IIlI<.'lIclacillll IrH'luYt, tiene 1,1 utribuu, relaciun ""'111;1' de 11, :llllhllll~ 111111'111PII'I,,," ,!lIt' IN('I.IJ toun.m YI' crcadu la lave 1'<11':1 ',la contiene IIlll'lrl'hll'llll1 prllll:1I 1;1, IIl1a l'OIUIIIIl:1 dellolnll1ad:; 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" 1 11111 1 , 1, 11 I 1( 'I( )' ' LIIIIIII.'lll' 01' l,I 1 l' ,1.'1"111" ohl,'l1ld.l' I I • 11I1I1(I:tlllad .. I'UI1II1.I,·1(111 llll,' r jI'lI 1111 "1'11'111111 l'11 ,'Id 1 11111' i' 111, 11 d " allll111111 ' , l 1'1" en" L d 1 ,1 ", l' ,,", qlle
  • 72. Il , 1 H)) lila, JI), :In:(l' tI~· la, I.h 1~'JII~"t'IlI.l11 lll'lllll.l' IL'I.ll'IIlIl·' tlL' , ·I ••ve Il",lliCl.lllllL'", nomlu« de 1:1' hUllI'''' cu nvgruu hUIO' LIIII 'U r.ihl.r-, tll' lla1.: d~' ,"1,' .lJl.:lla, ) en el qlll ,1111 1111111') 1.1' IL"IIIt.'L'lllIll" 111I.1,.·ldJ •• pIIIII.lIl". Il!t':.d ••, par •• 1.1 1~·pl'·"·III.II,.IIIII 1.1 ("llIllIl1l1l.'''' ) ol1h¡1;IIOrll·d ••d 1,.'1<1 e L.I~ • l.a-, • l,a' l'I:It', .t.f~'lld' ••d,' ,'1 . 1 ,, arribuu», i tilll' 'l' IIltlL"lla IIJ!l'llIlll' en 1I'11a ~ur,i,. al.l1l,." 11111(1~p:II'L'll'lI a 1'.11.11.1 111I(·;.'III1,ld Il'I"I''Ilt'i;¡) 11,.'11,.'1,'11,1..11 1.1 .. I ,1ft ti' ,It "'/1 ,1' uu, (1 ....111. ',¡II/III"tl ti, "JII(' tuu. tll ;I'(r ti /11' /tll'( u ( /1,' CI'IIIIII :1.. IL'II'l'II " un /JI/I./( ¡, r t'III.', a« Itl/t ·."f. It"",1 1,.'llIl 11111"1.1;1.1"11 plll dl'IL·I,.III, I ,"11" J 11 1111,/ ,1, 11 1'" /11 :,1" ,1 ./ •• 1"11.1,/ /"" 1",1" 11/1 "1"' /'1 , ,1/', '.'/1 1,,/1/11.1 '111'/1'/ 11-.','"111111.1,1" ,l. , "1'.(1'" nuuu ", ,J. 'tlll,/(II.I,, cll' un csqul'nla I'JI{ a un l'<;qucllla l'/II/'/t ,ltl,, ('/1 r-C/í/tl Itll','l./ /(I,I'-e/, 1,lIt lit.:' rl',l!la' "<JUl'1l1:l h;.'I',I' 11'Ial'IIlII:11 '1111 • • l.", un" 1,.·l1lpl'.td,l' p.ll.lli:IIIlllllll.t1 1111 t:qll"III.II,.I'llll'pIU.d 1-/1{ ,',1 'l/II,' d« r tIJ~/I{,,111 lill (¡t' II'rll,':(11 ""'/"It"/" J"/)"I"lr /'(1 /t'( 11/1(1 rl ('/1 "('/11'(11'(' /)111(1 '/llc' 1, , I ,/I"l"/( ",/,,11,1,";"1 tl" j d« f It .l, u p.u,« " (11111 1111/ /)( /'iIJtlllt"'III (1.111,,/11,, "//'1' fIIIIJI,~ 1,t, I 'l't'l /1// If'llrll"t'tllIJ ur, ",/,, 1111,111('11,/,,1,1 1/,,)(/ 1'.'11 1, I'ellllt 1111 1",1/". 1,,;1111,/, 11/,1,11(11 "'11,'1/ /"'I'I"lellllt. .ulvm«« ,,1,( 1 1,. ,,'11/1111'1/1 /",11 ,'11/"(41,1" ,11 /" le/'IIIII(/,"I ,1,' unu / 'le '1'1' ,'1/ e (1 "c"t;" /('/'1//1/1 1/' "I/1,'c ,'/ /,' 1'"."",1"" '/f' ,,/,,'/'11/1,/ ,'1/1' ~I'ill./tll f', {'tll "", 11111111"1""1 "-",,,,'t cula f/~' /" I'Jltlll (",1,1.;", "~/,1/1111"~/111"~/1,/ ton 1 " "11/111"" /1"1"", 1,', /11/ ,/c' 1('1' 'l'Ilt (' (1, t "I't Ilelllll,'III,', t "'1111 .", /,, le , I'('-(') 1111"1(' 1;/1,/(' Il( "(IIIII,'II!,I ('/'( -. ",1,:(1,1", ('I"t Ilcllt ( tIc' 1,, f '1'('( 'tIIJ~llll'l t f,·, 111/'" ti" "'/'< /,/, //, '11 /I,V/, /lIIl/d'I< f.., /rUI/" l/U, /////I'/I{" 1(/. , 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 'fll/,'I, 1'11 1/" t'lt, / 1/('" 11 11,'1 I,IIII/.'/JII) /,' uu« "11111('1(1, 11111/111'_,11, ('II,l.?"cl(', (' /""'(14' //;,//1"~//,/,. ('111/,/('C/f/tl ""1 1/ 1",11,"" 1(111 (,(11111 t/f'tllllfi'I'), r '//1 1/1,',1 '11'1"'1"1,, " 11/"lllí 1"", ,'1/, ",1"',11,'" "'1"/'1"/11"1 ".""I,/~ .. .l, , ',; /e'/'(II'I/( (1 (~II'II l' 1/' "1..',-, /'1' ,1,'", ,'1, I ,1",",. J(,~ (1111,1/(;/rJ. ~/t I(/('III,J/II(I/I', ,1(, ,I I-('tl '111'( 1""1' , /1 ,,'/',llllt /11", ,1,' /('/1 ,1, /)111", ,' 'fJI 1/",t:.!,'/¡", lit '//1/1/' /ll'lrlt/(/' ;'/"'1,111," " ' 1 1 r ' I 1,,'(/'1, '11 ,,/11', JIIII< ,", ,1, "'/'1" /,'( ( '(It/II ttll 1,', 1"",,11 /1,/,,/1<1, 1,111 /"11 '1'" 1,'/1,/ 1""1/ l.a, ,i¡.'lIll'llll' 1"'" ",II,t.", Ir {íJI'I/ su ./1/('I'lilll,/,I" 11(1 t:. ""Itl 11'/1 ",/"/'", II.lltl,/ 1/(1/"1,,,(, 11 '.1/1 I¡'I} 1/ j" /'(JI rI,' el/(/c!( I 1,',""/'" tlll /rll<',/I 1(/'tll(l, "II,.IIIJ/tl /". ./"('/1/" I</>e/'-(/' ;¡'/III,';,I, /'. {'I Ir ,'(II',/e ./, .I, (1 ; /'('t II¡J, 1,.1'1111111"1.1.1 11110, glas de transfoJ'1l1al'Í('1l al'iunal 1.. 111,'/111 IIII/,J,(I,I,, ,'" cu t u, t, ".-(1 1 (11'( .1 11'11..'11(1./'" 11:1> HIIII.HI" par:. 1.'110 1/1""'1, t,' ,/f' (le. J (1.'t:.llcIIJ t It ll,' c (11'(,,', 1~/i~(I/I:,«'Jll(' rl c l. 'tI (111./ l 1I0Il.Idll ('IIIJlk'<llldo I ~ qtl· 'l' 1,. I l"PIlIlI k' LOII 01 /1,,,- ,J, /),t"l ,,'//"11, /"'I'f,111 ti' ,/1" ,1,1" conun, I t, "'1, llel "1,,, /./ ,,",I",Illt' t ruh ,11 .1/11111/11' B,N. 2 '11 1;1 Il,l!lIlo1 tul!« I , /1, J '/"t' ,' ll« "," ti, 1,, /'" ,"'1"/,,,,/, I ti /111,"-,lll{' 'e'll ,/, 111", 11/1' "t:I"c nt "'1""'/" '11"I~/e'/I, • l..t , ·,Ia ... 111,." 11't·l." 1>1 .11,."< IIp< IPIl, 1", 1I, '!'llIa l.rv« 1)1I111ana 1I1,·tllallll' tilia 111' ...ha. '1lll' plIl'd'·IIIIIIII.t1 (,II,.·lJII1·11I:I I'/R I f tull» I {¡"1'ft/le ,1, "",/ c l«« ¡,II "'. (","'1111/(;1',', .rd .. v. e,I •• 1I 1I'J1IL"~'nl.ld.l' rc l.rcion CII la que <ou • .ll'al"l'lIl'll 1 ;1' (lll1I.:IILllIlIl·' l'1I 111:1) lIllll,l' l.tI 1~II.d que ,,,, 111 1111111 de 1.1 rcl.u ion .1 conunu.« 11111 l' '11, pi 1111.11 .11',11,', '11 vu 111 1'" ": .1;1 l', ,tlll·II1.IlI.I' ,111.:11:. i111111 hrl,.' cmcnn" il 111. 'l' dl'll t n.¡ ",/"/,,,IIIrl cmrc p.ll .·nle", • tla1.: iuu.u , ,ollt 1 ~I.JIII <on 1,.',1.. Il·l"l·'l·III 1'1111Il'llI ,'1'.11", l' de ap:lIl'l'l'lall I 1'1111 rl ' 111'1'111 (lId' I1 lr 11111 111<11 1 I()' I , '1 /"'1 "I//rI. 11/IIJIII,1 1I.11'III·I.I'"I1.' ¡I,IIJ,/", 1('1.1'11111 1.1' 111 1'111"'1'" /('( ,'1 /, ' 1'1'/' It., (/('/lllt lit/Ji 1 11')' .,/1, t II " 11 , "1 t ,/1/,/,1,,,,/,1 'It' ,1, 1(';II(t/. "1/1 111'" 11,1,. ,', r, ,ltll~/' 1/(' el" 1111. ,·,/llltl,I,) r', f "11 ""1" • •••••••••••••••••••••••••••••••••••••••••••••••
  • 73. ~ ••••••••••••••••••••• •••••••••••••••• 1" 1'1'1"'111 HI~I,I'II'I"'~ 1'''''1,111'1<111110' ~ 1 lo: t ~ 1 1'111 1 I)J 1"1 .() 101.[( l' IOPI 1 1) HI 1 1 1"'.1 1 ¡, - -_- h.I.""IIUII ,ela, 1 ,1 11,1I"follll,ll c tuvo" "('od 1l!1I,lh', '. "ti,,, "il 1 I H'11 11111 ,llllllHll'lo l'l,lc 1'"I1IU,KHlII, 1 ,,,tltll,,I, lOIIl', "1"',11" l'l:dual'H)n" 1111111,11'1,1. intcu chu'ion 'CI,II'IOll,d de (',1.1 P"II1.1I,1 ,'III(ICI1I' la J,I dI' lOIIl':"I,'I1.IllOII '111 (·1I1h.II)':II. PU,"Ie> 'I"C 2. Plllpag¡¡r l" 1)1 1.11.1 ,'11 l' 1 l' ,1~' de :1111UII" con UI1:, di IIICII... , 111 1"IIIP' h i ""111" unrvalu.uh«. jlll ...ihllltl¡ld,·, l', 1I'·l:';II'"."ltllli.1I ...que 1,'l'rC'I'III"11 Requiere Id Illl"II,'I.lll"" 1I1111l11 alll,ld'h plll'd' ulill/;II"l' 11I'II)liL:' ti,,," , l'll una '1',','11" '11);1 ,'1:1,' 1'11111,"1" ",la ;¡llIhlllll tlt' 1 11'1. . ('od 1;11,'.1 ele I'para,i,ill l', ,'11 .llr'·I,'llll" 1,,'lrallll,,'I1I;I" Il'p"I.1ll1I1") 111;11111.10,'" l ,.I!ld 1.ldt, Irall,ItIl,IIo1l.lnlt. 1 ... d' col'''' I L'j,'l','I"I'l>, pi 111111..,1''''' tlt' L II'" de ;llI't'IlCla e pnm.m.u, r libro PII' ejemplo. . :"únl_hora", IJ I!O :.t unu ) 1.'11 la fi¡:lIra 2.1. la ~ " ..('Iid (':s de - en una 1.()('()!f(JTC)RA hacia la -iguicntes atributos. UI.' lo, tic In ... uucrrclucirin tranvtoruu¡ "'l· de ... la rclacillll de N:M, esta en 1:1 resolución L()('()A /(}/"()R,I • Fl'l'h¡¡_lllícln 111(1:'1 rclaruin -'01'01111 llora" "Cod reparal'ióll (l.·IJ 1 l' ujcna) la cardinaliJaUc ... 11l1111111;¡ Ill:íxillla ... de la ... , uucuclucion para no perder 'l·lll;Ínlll.·:1. E"'IO" ca ... , ;.,(.irán c ...IUdl;IIH-lo iI nlcoida que o '¡¡~:l1I 'lIrt!iclld'l ell I()~ cjercicto ...pr"plll ....h). d,' c(1I1l0 controlar 1~1~()IIII·.RI "NUIII "Iln 'I'ransforlJli1ción de otros rlelllelllos t.uc.. I':/I{ extendido dt'IIlnd('lo . cununun, IPIl "'C dt:l I 11"'11 hl,' l'III,'llIl' 101Ir an,l, 11 IIl,ICII'," dl' 1;" l' ll'II'1l1Ile, 11I,'klo 1 IR 1'11 allall,,' 111:1'dl'I.III,llh, 'l' L·I1 ...1I1·l1lr., CIII)l' i111!1I1'1 ('I,iI. (JI)!)!')I 1111"Il,II.1 1I,'llIIIIIII.IlI.1 1111 .. d... 1 RI 1.1,1.1" 1'.11,1 n" !l"""'1 lk'l , 1111 1R SF< )I{II ( '1()1 I>E I)EPE 11)F 'J r 11'1( . ( '1 < )j 111'111.' 11.1"', ,,'11 1.1' ,.IIt1II1,"III,ld,·, L 1.1 IlIll'II('I ..... hll proparagarun. "'CIéi la que ve adopte que con-tanu No ha) qlle olvidar dl·~II. 1.. 1,,';1. 11,'1'1.111111'''1.1 I,·,h .. IIl' 1111,1" 11,'1 1111111,11' ~ l' 1Il" ,",11111 1,'11," ,'11 se d,> 11/ HU 111 ,VI ,1 Plth':"lkllll' ",·l'Ialllll·III.1 ,,,1,. 1'".11... '1,1 111"'/.11'<' ,'11 1111" 1.1Il',1. ,'III"IIC," IIIIIIIall" p.III"lk I.t, I,Ill' .!,' 1.11,'1"""1111RI ()1 11 RI 1.1111"11'11 ,', en el lado dr clave}, ~I I'XI...ten que 'l' cncuenuu II~ur;¡ IlIlcII.I"I, d.. 111~ar .. 1.1 rcl.uiou dI' 1,11,'1,1",1<'" 1<1'()1 II'J~I' 11I110C.. 111,·I1I<· ,.ld,1 1111'1 .. l.r 1el.I cvulucionc 1?/:/',IRtl('I()N rclucion Rf-P,R¡'('I()N .lIl1b"I", no-, indic.m qllc una 1 qur Ih'l 111' .unbuio-, ''l'lld ('"IIJlUI''''' 1111<.111 u,p' "I"~h" 110. I'nr crcmpl ... 1'11 <l fil1_II"'" [Il'1I1pI1. 1,,1 11.. 11,11'111',11'11111 1"1:1 1I1l,'l'Icl:I~'IPll d,' prnccII"III," ,·... " ... 1¡II11hil.'lI 1 cluve ("('OU_lol'tllnnIOla") pflll'.lg'H..ItHl de 1.1,,'111;11111,.1lk'l UI1I1t.:I'" .1,,1 .11'1 111 ,'1111l'l 'e> inl"rJll,Il'I"" Elllldad el I.I(ID N (prllp:.tgal.lolI 1.'11 la illll'rrl.·l.'l'iúll ... en C ...te 1'11111.'1"... l'IlIIUadl's curre r.R/· ~ /II·./?I<: .... //I-. 1:1 Ill'I1' d", ("1""'11,1 inicr» hcn .. 1I1Íl·IlI;¡ de que l'1<.'f'l·Il·II 1'''lplle~lo .... rin d,' UCIl'rl1l1l1:11 cu.ilc-, all;¡ '':11", .uubuto-, que f"rllll'n 1.1 ,·I.Il· pr un.ma de 1.1 rcl.« 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 dI ., 111l1l11 lu"d", a IIl1l'rrt'lal.'lÚIl. dl',dl'I;J 111101111:1'11111 1,1;1('<1 ¡JI 1'01111111'11 111-I¡dlll, .... 11Id,,, que se IIILIIH.'jarán 11 de SI CXI... en t la ,I;).' 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 2.1. se cncucnu., que 1'11 la T'rin"'lp.tI .,olueloll <ll' pl'opil¡;acioJ1 dI' clave "i i11I'IIIII:II!!'. • intvrrcl.uionc 1'1 klcnuhc.nlor ""lid.IO ,llrlhlllll 1111.unhur« 1.11111111'11 1111'111,111:, 1',1111' d,' 1':11.1 "1'1111).:11111,,, 1 '1"1' a UI1¡¡ 1111"1'11'11111/1'".111,1 .. hll'nCI 111''''0. '1'11:1 111""'.11111 .m.ulu 1'11 1111dl'Il'IIIIIII.,d" luv.rr 1)1'.1(,'1~ E J.. : IS'I'''I<,'I, ' J. 1111111111." 1 'l'III,'"[II,.' 1.1 t'l1 '1' II.tJl 1',IIII,:llId .. a 11I,'dld'I lJlIl' ...111 'III~ll·IIIII"·11 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 h" ('"",,':ld,1, e'" dl'l'ir, 110 PUl'dl' l·.I ... il lIill.!.!UII.1Ol'urrl'lll'l;t l 1"ll' 'l'laCIIII1"u .. ,""1 tilla llI'UI'Il'll,'i" L1L' la l'lIlid"d padrc. ,'11 IIl' la elllldad hijo qlll' lit) 'I'I~:NSF()RIL('I(H' )E I~ I'ERI~I-:I.:('I()"íES I I:i 1111.1 JIIICIIl'I.lllI'n I:N prllpa,!!¡¡l'I~'" dc ,'I:IL' dc,dc l'lilldad 1, ('Il'ar cl dI' la' IcloI'llHl una IlIll'l" IL'LI,·I,.n pal.1 1.11111,'1,·I.IllI'", r N'I. lUII 1.1 ...,JIl'd.IJ ; 1I11'·III'J.I,I"lll" 1'111'1:1101l'l Id"IIIIII.:ad11 d de que).I 11 11',11,,"11,'11111 ,,'11.1 100u.1Iqu, Ill'nc 1'''1 1""llIplll l' 11 101 11~'II¡;I ],1 ,'11 '111:1 11'1:1,'1<'" "III'I'.RVIS "ll'Ihllh" 'l' l·IllIII·I1II., ,'11 cl laell' (llllrit ..... 1"1;1 l', 1111 'uhh:inll .. 1.1 11111II·I.ICI'·'11 SIIPl'''' l' (11)<1 ,:I;,Il' 1"lIlIall" l', '1 )NI oIpll'llIli/' 11'"'" 1111"pel.lIlll .1j111'1It111111'111' 111"llil'" "'111"'1 i""'11 , 1 I .I''''llla ...lil' It'''' .Ill1l1llll" "1 ):'-IJ ,"1'', iall/;IlI,," l' 'I''llla 1:IIIIIIl'Il/"" isa plldll.l ,'1 alllhlll" 11"1.:' rcqulcrc I~gllra 2 1, la lil' _dCCOnII1IHll' ..-I¡III' 1'11111.111 dI' 1" I1UCI., .. 1'1'I11'lpo1l dI' );, 1'1111"".1 qUl' 'J ...11.' la 1111<.' lallllll . .1 1,1 inll'rr,' I.Il'''"1 111' rd/'":1h'" Irall,I"llllloll'l' lU) lIl'h" prnpa).'III'" de f)Cjl"nJL'l1l'ia 1.. I'lIliJ"d ue la "IJve el! flll'tll'" Idelllilio.:al'il'1l1 la l'lllid"d d,' 1", "l1liuad luene déhil para depL'lldellChl l' 11 IUC01IIII'<I""1I1I1 dl'nolad:1 ha .... que 1.. 1:1;1o: 00: RI:PrR,('¡()N t· la Il'l"ll')11 T¡RE/ da IU1!.tr a de (al 10;llla ... IUl'lllifieal'lóll u UII:I qUl' 1" En la por la 11l1l'rn.'laCI,íl1 ("('od_reparaClón") 'l' d' 1.,J 1IIIII.ILJlle 1.1elalL' prlll1,lIi,1 til' l',I .. 1I111111;¡ eq" '"llll:td" Ihll 1"... ,lInhlJl{l~ "( ·od_rl'p.llo1l inn rllll'I;¡. "",'111;" dI' Jt" "lnhuIU'" "1)1"1 1Il'lltlll" , "NUIII Inr,';]" "1)llIaCI""" 1.. 1 IclaciuJl 'rARI'/:" . 1.1)11101 ... --_ I ,1,,, ,..u, t 11., I I 1(1, "ltl,1I 11 II .1" ' ....II.I ,It"' ~1.1 I 1,1 1< .'11 I 1,IIIIII. 1.1"11 '" ,11"11.,,.1,,1 1,1 "" "'11 t, .11, I,! I ,1 I 1 ~~·t r,h"~ tll '"1.1., '111.'IIII'.tJ I Ilfl",.h 1111. '111t 11" r 1111.1 ).'1".. 11,1,'11, '1' I l' 1 1 ' 1,' 1 .. 11Ilo 1 I.' "1 "t"tlrlt' fl'lr 1.1 .11.1 )I,.'I"".I,I.*llll.1 .". 1I 1) I I • l. '(" "1' ,'11 1. "'1 '.'I~·lh II.t 1 ,,"It' 11tlr 1.1111. 1"11111"011 ),'1"'11,1"1''.,"11 I.1 .. 1111.1 '" r t
  • 74. lO, I'H ISF()R1'l Aunqu, ('I(), 1)1,:(;E'I'_H,LIZ IL'),IL11111.1)L'1l )0' L,I'O' plllpUC'ln, a couunu.u-ron dC"Lllh,' requiere (_'I()IES paru lu 1.'1,11.'1111',' p""htlldad..:, lr;1I1,IIIIIII..ILIIIII dL' 11.'1:1111"1,1' 1110''-:)0 ,d L'II ",1,' )111<1 .ldllplar;1 'l.' 0: .10:,11,1UII,I 1"lal'HIII 1111load" 1'111Hlad p.IIII,'IP;IIIIL' para L'I 'U)1l'rlipll ppdl:l "ICIIl)11<'. l'lI 1" IlgUI.1 2 1 'Uhllpll' / 1'/.( '1, I/./Z /)() R)() (H'I:R L,'llllt'llL' :-..;_~":t·_I'LI;¡1 el .llllhlllo I'nl el .llIihlllll 1)'1 ~ "1'11''' . 1..llcl,II.'IOII 1...1.1l' 1 1').( prun.m.u. 1 LI/ I)() '"111"1"', 1 .;1 I'C,IIICI' 1;lIllhll'111I,1 '1'11r.uu Il'", de ",la 1.1 1t'1.11. i'll1 '1"',11;1 ," 1101". prim.ni.¡ ... .IL' prillldll,l. I 1il 1;'11/1 1:11,i.l Ild.ld ~ l',' 111'1 Idad/" ,11 l)11l' 1.111111111"11,,, 1.'11hlll.1I1,lúnll.II.·lllll )11<1111"1"IIt1"1", 11",'1:11'11," en ,'1 '(1)1l'llIpn ,'''"1101;1 ~ )", ,1:11.' "11'11:1. IlIIl" 1) 11 1.1Illt"l'Il'ldl.'inl1 l' plll.'dl' 10111.11 .¡("I':' 1'''u,1I"1111.' 1'11 '1,.1,,' 1111,.11'1"1'1.1I.1'lllal t'11,·11I)11.11 j1I,'rit'I1",'I':t ,',Iu,,, 111111 1", 'Uhllp" ,k- .... )1I,'rllllll,' ,,,I,IP;lIlli"IlI<1 ,. 1.',10' .. d pt'rl1 qll,' de ';lIllhí':ll ~ "011 1111 dl'Pdl;ld,11 1';11" llli j)l'ldl'l :o.l'lll;Ínlil1 L'II Ii! tran-Ionnacrón dI.' l';lhlda 111101 ;",'ll'II'11 I1l'l'C"lria a 1111,'11' ;')"It" e'II1III1'lh;1I1dll ,,/'R/:,V/)//. pUl'de l'llllrn)ar'l' ('KI' 11' "1 R') )( li {olllllllal ('11'" (1IIIHI"'"I"I'<':c'lalll.ld,,· ¡NI) ,;"JI) N()I 1 IS I)u<': la, 1'11111111;1 a'l'rt'illn 4111.'rl·l:lI.'III1;1. tll de rOl') oc 411l' la, adil'iull(i1 al rcl.u.ron.rl. La intcirclucion d,' 1,1 ri¡':lIra 2.) d .. Illgar .1 1111,1 ..:lal·I~111 1 TR¡U ,I'IIL'alL'lIdlll'l1 el ternaria cuya 1.')011.'pnmuriu JA dc c-, 1" pnmanu- de ARI::, RI-,PRAC'(ÓN, <)PERtRIO "ilIlll urc.r. ()j;(". '('otl_reparaCIIIl "11I111 tarea' AtlO:ll1,h: 1:II11hi¿11cl cump, ";o.¡III1I_hura s . I,b 1 RE ) qlle ',111 l',l;,t Il'laLIlIII"ollll":I1C LloIl· ... 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 ... orJlIa..:i6n ,11 relacional f sin perdc: -cnuintic«, por ejemplo. CII 1,'1l'a(1 lit' que alguna cardinalidad 111IIIilllLl sea () 1) en el 111 "lllh;II_!!II, 1', (k que alglín (k' ladu la intcrrclacion 1l'llg,1 1.·'lIdill:lIidad 1,'11 rl.'s,IIIICIClIl de lel' problemala ,,' ,"llldiaran l~,sla, disrinra-, (1,11 J1rnplll·'IU.~ cn vvtc lihro. lJIII' .111'" vlc uucrrclu ... 'ICllIl" ('1,'111'" ,1', ,',1,1, 'l' 11 :111""1111.111 1.')1110'l' ha 1'10,'11 I 11L'I ',1'" ,,1' 1111'111".Ip.lrl.ld", PL'IO L" n<':l'l",III" 1111c ail;.dll h« J.. que l'lll1lll1l1l'hl' que '1 UIl '1"1111'1,11 1.1"llIld,ld 1',1111,'11',1 ,'IlUII.IIlI'IIIIClll'I,1 .!L· ).1 dL' 1111.1llIl'l'II.'I ..,'IOII llllollll" I )lIlL'd,' 1'.11l11.' 1P,II l'lI 11111;':1111.1 rl'II,liI tll' la llr;1 IIIICJ'll'I.1L 1l)J1. ClL'11J 11 .. 11111~1I1l dl'p,lIadol lJlI(, :11111111111.'11,' ,i 1111 qUL' .....0.:11111111'1,', pUl'dc P,'I'lI,'I1,'1,,'1 " "" ,'o, l' 1" ÍJII.t1i,l l'S la l,'Olll'alL'IIUriú" (I,N 1 110 es Ill'rl,'s:1I io IlIllgUI1 mccuuixmo I'rahaja cnud.ulc-, P cvtahlccc l,lIdlll,dldddl', 11I1'lhilid.tlk, una a,l'rciúll dI') ;,lIihllll, h" dl'l1"í ... SI '111111;11;1 );1 ul·ul'lencia .11'1,11111111.111'" 1';lIa 1", .... ,·,I.ill ,lgullos a,"'pc<:tossobrl' la pérdida de serll~¡n(i<:aen I;..¡ trans"ornlaciül1 al 1l1odl'Io rrla<:ional dI' 1.1 ,"hll)'P' P'lI' l'jl.' Inp 111 ,'11 la 11¡':III,1 2 l. la ,'I..)u ...i ¡Jad Clllle / ../'/ ('/ l/JI. /)() , ,n).Ip.lllllClllo adt:l'lIad", idold ,,' r,'qUll'r,· luya cluv .. IIl1a rclucron N 11 )¡I' 1 a l'II,lIid.ld 1.1 1',lIll,IIIII ..I1. l.') .1111""111 .11,,11111111.1111,· 11111.1' 111,,'11;1 IIl'l'l·'.IIIO 1.11 1'11;1111" 1;, ,1 ..:elu'Ild .1" Ja lugar 11l1~lIl'I¡¡L101lé, (élllall,l Principul« de -van ( I,N l. (I.N 1 ~ ,;"" 111"1'1'1:1111 qlll' Ihl '1.',1 111l,'I"'LI.¡(II,ld,' 111.11'1,'11.11/, ,1'1, ,,' 11.11.,' 1111,111",'1"'11111"111.111.'1.1,'1111 (J/'/ R I//() h.l~ 1)111'1tll/,II .1 1111.1U','r,'llIl I L'U L,I ,"11111'1 ,1111", k' 11" Idl·llIi),il'.IJl1n~, 11.1)1.11111"1111' PUl"~ 110 1'11".1,' h,I""1 Lll.ludl UI1 cxtudro h.lel.'l 1,1 "."0 ¡!L'l1l'la) de Ir;1I1,loll1lalllill lill.1 11I','IL'Il11 ,'11 UIl 'Uhlll"l III'L'III: 1,1111"11,'11.'11el '"1','1111'1 (,111.'111.1' ,'10111"1111<' 1 I1l'l1 11111 I(,' 1111poLi 11.1 1"111011.11111," 11111,"1 1,1 !.!,:lh'I.¡)I/.I,I,1I1 dI.' 1.1 Ilglll.l ~ 1 ,', 11.11 "'I,d, 1' 111 "1,,'11,'11,1;1". IIL'I1I,' "'"1110 111111'".. u ihut« ·I'RI·j.)))/ l; 1/,le) 11,'11, ... lIlIll'LI,I,' · 1)' 1 1,'1;1,' .1J,:1I.11~ ... dcm.r-, 111'111' .tll ihllh propio l'1 1111111111 1'10I,1l'" 1,1 11 '".11'1' IC11I1 KI 1 ( 11" 1 1l' evhauxnv« de 1.1, l.·arJlIlalldilul·' munma-, 111;11111,1'>aró! p Ik.1I .1,'.lhll 1,1 translouu.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 111dll.l l' tender 'l' .1 1;1 dI.' !.!I "dI) 'UpCI iur a -' I l'll 101 L11'l..rilnlllollll": dI.' 1.1 11.·¡¡lIqlllol. P"I 1.1 ~~I.'II":10I)J/,ILII1IIL'l1lr<, l'l <upcrup» etl'l ~ 1/'1</.. / )// J,I lugar ,1 lit" rL'loI,II'II'" 111' .llIlhu"" "1)1'011",qur 1,lIl1hIL'I," 'l' 1.'111 11,'1 I te :c PIClL'IL'IIIl'IIII'111, 1.1 que 'L' lCIOIII)III.I (1111;1 1l·1.1,11111pala el -upcrupo ~ 1111.1 p;lIa L·;I(.laUIHl .1,' 1", ,111111)11<,1. l,d dI' 1.11'111;1 que t'1 -upcuip« propagól ,1I IdL'lIlillCadlI )111111.'1)1<11.1 l,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.Il' .111.'11.11 .;, Il·).ILil111 ) l'1l'dJ.1 1 1'111 1el:' 1'11 1.'11 111 de la ,i_!:.uil'lIll' 1111111.1 1 ' ....1,·11dIYIlI1.Io; 1'1."1I,'I,'í llill', quc 1.', ll','l',arin r 0111111,1.,1" 1");'cIClnaL ~ 11ll1lpk·lIl. PI.r Ir.II"I"flllacHIIl a) 1l1odclo ,i"ll1prc Illlphl'a hay que ( »){ '1l'llIpICl. d"p.lIauorc, (11)11 '.II'H'11I111 iNI) LIS 1 ¡I'RI-.N))II. INI) I:.IS 1 I',SI'!:< 'IAI.II.,))())1 l:Il'II1.1 ,'I, ) I!(rr rl'la"·lllIlal. lit) alll1ylll' d,'1 IllUd"11l rt:lacioual no que 111.',',""1'1,1 el;lhlt'cl'r t'llll 1l1,'1'¡¡1I"J1(l, ,'11.'1'111" 1 1" dll~rencl¡¡ illll'lt'lllCJllal1 1'lIlHI <,e ha 1l1CllL'lonad'l 0:11In ... apanado, '110. 1I1'·l¡¡n....lllll' 1 AI'RI'N)ll/1 l" h" S(jRJ) L'IIII1t'r,'I.III" lI"l' Il'I.Il'IOllal .111110I1Il'lalli,nll' 1.'1,'111'1Id,KI gCllI.·rah/l'IIIII I'IS 11'''1'1-('1 11/ 1)() llIUI conlrolar "1.' dara prt',enll'~ aquí ,e para tI..- recoger 1I1'l'l'''"111 "llIlIl'llIpl:l1' l'lI 10111001I ..f'III'III¡Il'i,in ¡ti IIlotk'ln .1'l·l' 111111" 11 dl'paral!ol'l'" a la dl' (he( J.. ;¡'lTCillll'" iOIK·'. l',I", l:Sd de til). lo qllt' rc,lricCII)llt:, allllaL'cl1ado. la .. leslriL'cillll~~ l.' relaCional dcdit'adoo; gl"lllll" l'1l la 1-11), plol'cuillllCIlIIlS ,'IlUllll'r;I,11I11 IIlUdcl" ll,'l101' re'lril~ hahle CII 111 ",[ellla, Inl'dlll, el I1lodclo .II1ICl'lorr' pilra illlplenlenlar ,"1.111 dl'l'0nlhl', rO:,'111111 ull", a aqul el Clllr,' trlll ~1)1lil'aelllle, dl' los l'SlIUCllI:I' I-:/R lJlIl' 1'1,'laciOI1III 11I,'diilllll' ,'111'( J.. 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)()~ (·;lIdlll.tlldadL·' 11;1'1.1 ,'1 111,)llIl'IIIII ,,'11.1 ~l' )¡;¡Il 1l,ll.ldo 1 11< ~ '" 1I11'·rJL'l.llllII1C' hlll,III.I' "1 l'l1 l'l ,"qUl'll1;1 ,'11,11,'1111,111 1111,'lIl'1.11.11111" l' ):1.ldo "11"'11111 11":111"11,1'. 1,11.11,'111.111.1', d l'IL 1 ,,' ••••••••••••••••••••• 1111 11 11 II ,1 .ll)lIl'II, .... qllL' ,e llllllnll;11I pi IIp,I~.I'11l11 dI,' ,'1,1 t' l. 1'" 1 ('11 1I11lTIl'laCIlIIC" '111 la IC,lfll'Clnn N<) ( :"J 1.1 ) NIII 1 N (L'tlul'lIdll 1 l'II.lIl1lo 'C Il':III/.1 • •••••••••••••••••••••••
  • 75. •••••••••••••••••••• •••••••••••••••••••••••••• 11S I ''JCI()( 1I~1~11111I(I~ I'K(IIHIlIUI'III()S 1 Cai dinalidade en uucrrclu e iones hinariu-, N:r-.t) 111:11111a, conoculu-, I'N l' interrc 1 acionc ...ICrll~UIJ' F.elu,,, Idad en _ 11 1 la • Ilill:t,.i,t, l' I 1I t '''1'11 I1 '" 11'' 1 1 ))I"r,'nd.• ·llIl,t'!.RI ohll!.!JI'III1". • 1 'I(), 1 1'o') Ikl ¡t1gL'hra rclacionul {'I(I.' 1 Por último. puede mcjorur-,e hl cnlul.ul del dl,cño rc-uhuntc vu el cuuucrud, ruadas ) cOI1el1iCIIIC' (por Cll'lIlpl", ol'iglllal rcxtricvionc-, introduciendo 1"""" 'er, ,llra' implican "111.,111111. "111. h,n II'Re 111 ( 1, l·Il.'.lll,'ll) «<u I.I.. l"" p":lll que se conxidcrun que l nari"I'u, ., '1 11 .. 1I1,·",m" 1( 1< 1t:SI :-. PR()IJ[( 1I !',,,dlld" 'i,'eiones que IlO fit!uranall 11 1111 I C1101 Uprrudores primitivo; 1I111'IIl'I,II':101l"" 11l1lh1 luado-, a ceu« NII (J/'UN I)(IN":S IJI:'I íl ..11 10111o, dcnv .Ido ..., Atribuu», 1) l.u II~lIJ'a 2.2 11111C,II:t operadores primuivov y dCII.rd(" l(l~ 1 I)!11'a 2 ~ una J L:ple~t'l1talion gráfica de l'.,to, OpCI¡llhlll" J l." .!cnl 'r:IIII,ll'11l11e" Fvcluvr, id.rd entre "01 <Ie.t< ___:(....:..:.!I_!·II.1_. PI'I 1 () "IH STRlt lt'l ,1 ("II()'I 11<); 1 Operadores derivados opcuulorc .. de Cnmbiuacién parución de Icchus). (.I()!' 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{ ,.;) ("'l1lhlll<l'''''' () C"lllhi";ll h'l1 :-.i;¡III1<t1 , t rámica del Modelo Relacional: ilgehl'a Relacional lUlll)111,1i.. ll~l' 1::<11.:1'11;1 St'lll' v 1111It1ill;lt'Illl En los apartado, lll1l..:rion.:, ~c lid ":'IIIIIICldll la parlecvuuicu dcl modcl» t'L'laci(Inal usarcmox uhoru hll' ,'III('llIe la dlll:lIl1il'a del l11i'"10 de,dc el punto de 1,la (IL'I hra rclucioual No ,',llld""L'I1Hl' :Iqlll la ,illla:>.l' dt:1 lellgllalc SQI, 1):', puc 1..'11 hh propuL"hl' liL'III¡¡, en cvtc l'<1plllllo 'l' mo-rnuan i", para la c icucron "('IIIt'Il .... ."/""f 1 I'rtijl'fl T 'Tui/lit·... ripulucion de una BI) en este 1l'l1gu'lIC, RI..'111ltill1l1S al I.'L't,,( a I)l' ;'vll~lI,'1 l'i"llilll ~ 191 p:lI<I pltlllInul/;1I l'I1 C,ltl' apl'tto" I.'I~ opeuuhu dtado cltol :tl~·l'hl.c Il'l.ll·lClfl.d c l·' I •• lo .tplrl.t11 a d.uulu ,"111" ('lIdd UCIIIIICI lIl'ho lljlt:ladcll":' en d", 'l' I1Ue,!'. 1l'laI..'IClIll" (hll'III,lIla IIlClltL: rclac ~ h ronc-, '1(1.,: , '- 1.,1'. opcrartonc-, uudicioualc producto caneviau, L:I' operacronc-, de conjunu», 11111011. uucr-cccion. dill'f,'IILI.1 [J'{j. r. '" ( 1, rcl<l':IIII1.cI..:.,"Pl'l'I.tle.,· l restricción. proyercron. lOll1hll1,Il101l ,J- div ivión. I 1" I t' "l'( " I nr , , r 'J L , 1 1 ~ t vuturuh )011' ... ...... H .. a~hL h~ el a I~ a, h. "-1 h (' j h~,,1 h, h e' I 11 ( al h ~ ('11 al h( el. :l. h 1 ,1 a, b (2 u, h. r, H 11 ,,1 h 1 Ih 11 jh~ al a2 hl ~ I [ a,' 112 Una opcracion del algl'hr;¡ IclaclI'll:tll'OIl'I,te en: () - ()pcradol ,k'l :llgl'hra r / ¡g(/ra 1l'1.1":111I1(11 11I1l1t1l1. l'Cln1hin¡¡cltill, ell,1 :.3 1<1'/'/'('11'1110(';01/ gni/i('lI el!' oprrodo¡cs clt'III/~('h/{t rclu¡ ionul Rel:tl'I()Il(l·~)I'¡;¡ lal.,) lJUl' ~(' aplll'a eluperador () Rl·la.:illllll'Milladn tal qUl' ()(I) IIl' la n]1,'I,ll'IOII 1{('lt ..ilTi(Í1I ,1 fI sl'lcl'rilín 111,1 l'CIlll"":IOI1 ,"p"llrk'ada, la' lupia, dt.: Uila 1.:I:il'lll1 d ..d¡¡ lIll,' ~llli~la"all Por Cjclllplo, ,"'!t'CCIIlJ1;11 Itl~"lllplL';¡dl" ~'lly;1 F Na~< (a). LXlral' 1111111/)1)72 Lil' la l<lhl .. Il'vlPI.r·,iI)()· ~C·II.lI.III,llt' 1.. /0. 1IIIt'., lit' III~.I CI.l "¡-Irl 111'11 I~ 'lllllll .'111.11111 (1 ,1, 11'1.. 1'11... ·' ,.'Il ,,·11"11" ... ·1 t.I,,1 ,~·I.,'l,I.1I1.;'¡Il' 'J'"l.ulll 1111.11"
  • 76. • •I I , , I (Fl ) I'rU)l'l'l'iún 11111.111"11a, l 1,1 .unbuu» 1 vu uc lupia, ti" o.:'pl.·~llíl'adlh 11111'11..111:1'1>111 l·I'·llIplu. '1.·lt'.'l'IIlII:11 IIl1a 11" 1'1.'1.11.'11111 d.III.1 111111hll.·' 1!L' 1,, 1''''.11111 de la 1,·1.1~HlIl 1 11'1 1 I)() 1.1' t : 1'111 1'1 lntvrxeccidn in). (.·I)fl~lruyl' do, Icl"I.·IOlIl" l"rl.·I..'III,·..tJ.I'. Il'I.II.·I'>ll,·, l·'Pl·I.IIII.'ad." 1111111 tUl .lqIlILI.I,h: . l.., d,, 1111.111.·1.lllI'l1 1.1111 I"d;" 1.1' 1111'1.1' qlll.· ('1111111.' l••, dI" Par,1 uv.rr C'I.· Ul'l'I,ld", .unhut.», rupl,« l', qlll.' aparezcan 1 11 CII IICl'l""n" dcllllldo, que 1,1, do, ",hll' lo, 1111'1111) puede dcfinn en IllIllllllI dl' 1:1UIIII'II 1.1dilcll.'lll.l.1 ti 1PI l , 1)( )1 I)Í j...ion 1111"r~·I.L ion con :ll)ul.·II.I' .... 11.·lIg.1I1111, Ini'1110' ,111111111111.11I11c",','l'11I1I 'l' .1 1t ,. ,"1>, ' "I~I "1 tll,1I " ;1111111 1< 1 ·I() 1 (, 11 .11'.11"/, .111 .'11 1"1.;, II>lll' ,"1','1.'111.'.111;1' 1'.lr.1 "';11 ",11.' l'p,'r.III"1 1I.'I.I'·IIII1l' "'1'1','111,.1.1.1' ,> IK','C',1I1" 1111'11111',111111111" lk·llIlId .. , , .. brc 1.. , , 1,·II~.lIl In' una ti l' UII .unhut« tll.· 1<1pi 11111.'1 iI 1,1" 11111Idl 1.11.'11.1,,1qlll' llllll.Ul'ld,1 con Ildo' 1", .IIll1l· dl' 1", .1111111110'de la ,::ulld.1 11.'1.11.'11111 ltlr) .....' )1Ul'tll' .1.. 111111 1 11111. d.. 1,11"111.'1., iou, Jel prlltlU~'hl (.11 1 1.'11 ron ,.lllL·'I.Llh' d~' 1.1dill"'·llll..t . 1:) ('''1111 U) l' r.'I.II.'I"" 1.'011lo ... ;t!"Il' '111,1 11111111111" grupal'ilín Diferencia (-l' ("'1I11U<.· un.i rr lnc ron ,'parl'cl'l1 en la '1.'~'1I1l1" :11.'1'11(', l"pl'c!lie:ILI 1.'''" 1',11"1 ut rh z.u lI:n~an . 1Il' la la, lupia' prinu-ru quv que 1.1' ,1", Il'la,'I'll1 opci ador <' 11l'(l',:lrll' 1111'1111)' :lIrihulll' dl.'linidll' 'I)hr" 111 Ini'lIl" 1", ",[,' '" (v). " parl 1r ,le' dI" lo.:l"eilll1l." C'I ,,','i ril';ld:I'. Cartcsiunn l·I1II.::II,'II:ll1du .',111.11111'1 dc 1.1 pi uucra .. t!lIl1d,l. 1.;1 rl' 1.11.' 1 1l' '1111,11111.',1.1 ,klllllLhl ,,,hll' i"1 .. al..'io" . l.tl.·i,lll<:, l',pl'l' 1.('11,11'11l' ;"' -- un, , c on C:ld:1 11I1:JdI.' 1<1' IlIpl:! .... de l., la umon Ik 1(, alllhlllI ,11.'1:1,01", , ,k, 1;1' 1,·I.lllll1<:' p.lIl" o.:'Pl'I.·11il.·:ld:I.... LIIl1tlll~,· "11 ,'. " "1 j.! " 1111.1 JI' I , llllhll1aelÚII un llalur¡¡II*ll" I'llId 111.1" ... , j I 1'" a ti 1) , l' -- I1 a:UI ti :!.J I " -- -- ,'1 A', tl.Hlt' '. Ir 11) I'IJJI" ""--,71 -,'---,-,- , , (1 1(1, L , III~/I ,1" 11', 'JI~ • .. 1..1I1l',i;IIHl ,c_;!III1I" de una 1'1.·'1111.·'11111.1 e I.k· rc-ari .... cI111l p,'r 'gU.tld,,.I l.-arll.·,I:lIIO ,cgllidll 1{2 A a •¡.. I • ' ~ 1 1 'ivun¡ ( ',íllll) (¡VafUrlll) Join RI -_ " " " ., I I I ' ni s pruycccion. l ln cjcmplo 'l' mue-un en 1.1 Ilgllra 2.4 A I1 1.ll1llllk'~ 1 '1 1111Pllldull'l , 1 /(1 1:11. 111 bin.« 111'1CI.'I 11.1'l' 111l'11I)'1I 1", lurl.!'> dl' un.i 11'1.1,'11'" n l ((-jI l" I 11' I• II," ,. 1101."1"" rcl;II.·IIIII.III." ~"" "11.1 11'1.11.'"11.~"lk ..IlI.·II.IIHlo .... nulo"11 1..1 1.·lIllhlll<lli,in , de ciertos '"111;1. 111<.'tll".. 1 . a ca<.la (Irl·CUl·,k'I:I. 1-- '11, - '1.');111111,1. '1~I1II"I.· qll' .1111":1' tllpl .., aI,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,1 ,1111111110..,11111111 -c dl.'llIlIlIlIl.I ' 1.,1 1 JI. , ',1 1 • ,• 1.1.11111 conc.ucn.uulo , :1.1.11111'1.1 1.11'1I111l'1,11I.'IallOll Lt1IlI..ld.1 unn d~' 1.1' 1111'1.1'd, ,!l' >11;11111,11.'1,"; nauu.il. ''',''lhl~' , .. I.lojlll p," valore lupl., =.., I ".1 "o 11il.·;d.l' Cumbinacion .~llIp:1 .,lIlhuIO' ~ .Ipllca 1111.1 tune ion de a¡,!,egal.'iol1 d'''"IIIIIIII. 1 ;1 lí.!.!lIr.. 2 :) muc-uu UIl cjl.'1l1plll. 11111110'. Produrto UY); (;R()l'P (' R / H (' x a ti a y 1) '/, a ti " y 1) v 1. ('''1//1'//11/1/0/1 ,ti 11111/11 ~_5. 1-.)('1111'/" ch IXrll/'IIC'III" se ('SI ruct U ran los prOI>'enlaS '1'1' p,ohk'llla, de 1.':-'11.' capÍlIlIJ 'l' e,lrtH:(llrall l'l1 do, gl':lIlde~ hlo(IUt'~· I)or llll 1'> 1110hl('lll' .. 1. " t '" 1.1l~0 1) )JCl)O c.'" ú"l'ña, 1111 l·'tJUCI11.1 11.·I.Kinl1al a 1)'lrl'll ,l.' 1111'1 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· ...jlll.·,I1i1 E/R (para "'~ qlll' ~l'lllli¡;II;LI1);" l I r ,,,1'1 1.111"01111;1,1011'I~('I" '11 '1 '1 . 1 1 l' /, . I 1:' ' ... , .•. l c.: p.lr d( ,) I/'X (1 ( l' / /'(/II,(fllIlI/lI'11/1/ • d,' /1/1 1:l'IIU'/l1I1 l/N "" 1 "'. , 11/11'11111 II'II/( 11"111/) 1'.".1 el 11rlllll'l ti 1 l, 't 1, 1 1 1 tI. PIO) t:llla, lu 1[Clll'lIllI tll' 1111 C'II"l'lIll ""1111· 1 ) • . . .1111 'l "·!-'IIII.1I1 1,,, "~IIIl'IIII.· I'a't" • ~ : . 1'I'll'IO'I'11 ." ...............................................
  • 77. ••••••••••••••••••• •••••••••••••••••••••••••• ~ "1 'ti PI JI 1' 101 1> 1'" 1'1(<11111 RI "1 11 1'" 1 n.rl1/.11 "Id .. 'UPlh:'I" <cmaur 1(11 1.1,'111 ",',11Id" 1',11.1 1.1' H'I.I' 11111(' l', 1,ll'I11<', ti 11.' 1111111;111.1,dI' ,"1.1' i clucumc-; 1.1' ,1.11." :111.'11.1:- "" ~ "'>lI"'11l1l1dl"I1II." 1(' de hOlladl I1IP,l1li,':I"OI1. "'1 lol1111 1.1' 1"'11 i,"'II'lIl" d,' "hh",llpll,'d:ld ~ .ul, ,k' , Rl·.llt/a,itil1 UI1 ,<111)11111" dl' ""11,"11,,, 1.111111 ,'11 "()I .'1.' ,1111" en ,tI:"'III,1 '11;11 .11;1 ...1 ...... lInd" 1111,. de "r"hIL'111,1' ~ na, F/R lIa"'I'1I1 :1 ""pl,'ln;l' ""11 1"1111, l..:laLIIHI:dc' 1", Il''lI'cc'i,)jlc'' 'l' .lpll".11;1I1 ,"pli",ld:l' 1,1' IL'~kl' ,1l1h'l'IlIrllll'llIl' '1.'11),.I1I,·a, (1"' h,l~ .!L' 11",111,101'111,1 Ion ,le- ~ '1UL' 'oC L'1111111'1';1I1 .1 'PIL' (llll"1I11'],,1 ,'n 1111 111;1 1'1:"'11111:11 2.1. MOI)ELADO 1,.II1'IIIIlII.llIIIlI d,' 1111,'11,,1,1.11111," 1 ...... dl' 1)1.')11'11.1"11'1," en 1·'.... 1.1 1"11' REIJACIONAI.J I 11";K'it 111 l.nu nciado 1,1 ('tlIHlllld.ld IIII,dl" 'llll,lla que 1.'1'1,'11 :11 dlc"" ... "!.!lIl,·nll· " 1'11 .IIlllólllllClllll ) InCPlpOIJr qUe' .¡hol" .: ...IOI1,', ,h' 1I,,,.1111qlll.' 11<1(111Jt:1I1 r,',og,'Po,' "111.'1"''1",'111" mclurr 1.'11L'I'''QUl'11101 "'I,I'"'I1,,I'(1'lr cjcmpl«, 111,',11;1111,' 1.. , I'C,llllLI"lle' C, 11',"",III1 "L' 'ladrid JI."I.''' &l1.lId,1I comunidad, Para ml oruurcron ,,,hl: l'lIl1 1), aloj.II11LCI1111' decide crear una h¡l'l' JI.' 'dal)' 4U" ... l:11I1"dl'lat:1I1l1t".1111.11"'C IJI.'I1IIII'1 "'l I Ill'I1,' IIn.1 dll,''lllll1 I'L"""I1:11 del .II"I.11I1I,'nl(, ("Vdl;, -xurora". "1..1' Ro',I'''. ~ 1111" (1CI'Ollól de C'llnl;"llIlJuc pertenece .tI P"I un Iclc'flll1l' 1111110111hrc ,Il' l'l ti i,':1,' IPII1 1',11 Lada lIdl~1l :"111:111111'11111 1I,lh,,,:1I1 lit' 1'1''''''11011. Se Il'qllll'l~ llIlqUC en 1111 ,1I"I,lIlIll'lIlI. OIlI,tI'lj,lIl1il'l1h' 1111.1~l'lll' ,'011'1"1'1' 11:lh:lj,'n dI' PI'I,,)II:1' que '1: id"nllflL'all l'l 1101111'll' ,'pIl1rk'IO. la dirección :11 ia, p..:,,II1.I,'. UIIOIJI"I '111101,nlo puede 1'<111111 y «. '1NII, 1I':ahal.tr l'lI
  • 78. 1,,, " I'f{''111111I~ lO 1 11 t'l" 1 '1 H 11" 1' 1 1'1<" :IIIlJdl1l1l.'lIl')'> 1.' inl"· ... lllfllPillll'11 .rlqurl.m 1 ,1I,!!.lUIII dl' '.Id", 1111:, ,,' "Jade' 'l' dl'l'" l ','l1nll', Ilpll (inuí íUUJII.". dilhli.', el ~ 1 1' )1111 111' I~II C ,11,1111,,, "/'/1'1,,/<1 (//"/,I/llIc'/I/I< {/U/IU;<l1I 1111"0"'.0:" Ilpll· ...) l', .l« ,/,'/ 1,1,,,,, 1'11."111 hllllll.'l:1 d l' l'l, 1I111l1l.lIia, (11",( ,, unu qi«: /,'C/I/I,'n', 11//"" / ,'//1,1/1///1, lo, /11 ,h,.,." 1 11' 1,' 1'/,'11/1111,"//'/, ''''"/'/, 1<'/11'" .. /" '/ 1 ""/1 tc , 1"/1 1 '1,1' I 1 ,.11.' 11111.'1", ',lh,'1 cl uomhrc dl' 1.1.!ll' 111,,,1 lit dllha 'l' Il",1I/.1I1 UIl dl,l .1 ",'11 Id.ld (1 1" 10t, ,,'111,111.1. pnr ejemplo. 1.'11 1,1''''.1 .. 'l'I1JI.'" ...lIh' 11" IU"," ~ 'v d,',('.1 ~u.lId.1I'''.1 1IIIIIrllldcíPII all:!"l1lha ,'Ilel que 111''l' Pl.llllllll'· nill~lIl1a a, 't" Id,ld .. '1.' praCllca 1.lh,', '1 t (',111/.111 .1l11 111:1.1," IIIUlt1.1l'lIluI,1 'l' 1'l'lIdl" ""1(1, "1""111 ('1 mvvl d(' dllllult:ld y U,III<)dl' h,lIiu .t!OI,IIII1i'IIIIl' l',1<1 Id"I1It1Il.1I1 PPI 1111'Pdl"" , 101' ;ll'll .1,' que '1 P"'l.'l·ll' hUI.''''p'·IIl', pal" I1tll h,l¡'il;H:tnll~" l' l .II'II.IIIIIi.'I1II1 . 1,' dI.' (',I;¡-.. h"btl,lllnll"', ¡ 111., 1"" 1,, 111'11~llllt('IJlt' . ' (1It/'II/tIJI '''//1/'''"''/1 hulsit,« ¡'(Ir 1(111," ; '/e"c 11 """'1 ti, 1111"1,,, ,{, '111(' /11'" 11I1"1I1"lIclt,', '/"/''''1, /1/'/' " , , (cid" unu dr csu¡« huhua, III/It", ,/ /"",'1"1 '/1,11/" d, lnnu» 1 «' /I,¡J'//,I. 1""" r] ulojumunto. 1"'" n» 1)l'hl'lIlil [111.'1i<l1,,1 l'qlll:llI:¡ rvl.« IlIlIal la, ,'I:lIl' alt'J'nali" ... ) J¡urr;ldn) fll1dil ir.u ruu. ~ 1:1,,':11"1111un vulorc-, nulo" ;"<'"11.1, 1)1' l'I,[ ~ JlIII ulum» ,'1.[1 l', 1~"l1dll., 1'1 IIUIl1,'II) uhim.«. "')1"L'IIIC';1I 1,1 11111(1,,, , d r 1111111 puv.lc d¡¡r,c' 111.1"':11'en el 1.1 .:1:1 LO, prillldll:I'" ,IIL'ri'l'11 ( • ) 1(1 l':III1I1'" Ijlll' ,I"l'pl<'1I <fUI' ':'1" uulrc,u 1 t.:ill' ,dgllfl alnhuliI ."~lIfla IC,11il'lIin " 1111 II1,1l1ll'lIl'l l.llll1<'l.!ndad .1" • • de 1:1ha,v d,' ,kllllll ~llIlIhll.' dl''"I""lll Jl'II"IIIIII.ldll 1 ,lIlll'II,I' • ilIllIhll' dl' ,1l'11Id.III,', "1 e:bCl de que '-¡l' d,',':¡ P()dCIl1C1~,'C1I1~It,h:r:¡rque pn'l'I<I, , IC'c'CI).!l'r'1 111I1I1,'rn h.lhll:ll'lIlIlc" , tlL' IIlI¡odlllll 1111 IIlIl' "III! 1 '1: mucvu a CI 1.'11 la ,k' qUI' JI'I)ll1l' c.ul, :dllJ'lIl1il.·1110. P,H l l.rhu.," en .11,,1111(11 "(,IIII,'¡II li~II:1 la 11.'1",'1111 il' .,1<'1.11111"11"1-.. lJUl' 1ll:IlL'II h,lntl:llltlIlL" dohl," Il'.III/ .,1 "',,dl'II'llIll (l 'l nomlu, di' 1.1.K'líl ulud lO, ....·lIdl·J'I'11l1' I 111":'1"" "/.1' I.,S I<I·,I.('I()"ES .. B,Sll',S 11, .[,, II/f~/(/"llt"'lr', :':"'II.~lJ,I'I /'111'" 111("1)(·,1,' "~e1"'/eI,,./," ,,' /", IUI/j, ,111/'"'' '11/11/"",1, /'1 d,'" '1/" 1"" , '¡/"/<I/lII,'/I/,' ,. y cu.il ('~ 'u nulos , ~i una 1", 'IFI(',('I()'1I)E ',«I( cll' 1I111l1I1l<tL'II)nc,'rC<I a .1" 1.1' .1,11 u l.u lcv lJIII.' -c II:.tll/,1I1 en l'l .11"10111111 111 .. fl, 1'(If/ Ihl <e tuciluc dalll' sic)n del enunciado "'1 IIlIII:!1 l'OlllO eh,tll' ,!L' !1;,hil:ll'¡OIl ("N_~~al1ll¡j") .JUIlI(1l',lil 1.'1nornhn, Ik'l alojamiento. dl'll'llIHflada .1,1:lh~ld~, iril~,lil.'lle 1,~ai1('l~ nI) 1", .tlllhlllll Ballll y I'r"l'lI admiten , '1u,' 1I..:h"I1Il" 1 ( ).1 .. 111 N I () • HtBI1/('[()J, l'ndl'lIlIh una rrlación ClllhJdl'¡;¡r IIII.¡/ " 11('llt /lllel rdcnu¡« ,/tl('( t "I't d /"'/ "11 /11/ If,I,'/(I,'" ""'///1/' 1 " II'1"/J,,, ill« (11,,1 ,1,' 11.'1111;(/11 11' 111//,,,1,' t (·'111,'1111111, b« If IC'{II u» ",;.1/1:0, E« d,: ./i/jlul/,/,/ ([1111"'/,1,' ,,, 111,,11111(.'1111'.(1 d« montuuu. (le •. J. /"/11 suh« «l noml», el, .1" hu ,/, u, "/ud (/ /11/, /1', .. l.a» 11'",,/", r ""(f/. c' el, lu /(11' ti"" I)t.: cxtc 1111111111 p;írr:lrn <e dedlll''' la Ilt', 'l''';ld:ld de IIUl':1 rl'I¡Il'illll ( IIVII)¡I),l'u}a cl:ll' p lilllilri:1 '('la l'l e6dl).!o de ;¡clil Idad ("( 'IlUIl:!1l ;'11", • LIIl1lntll ltlld 1111111" 1.1 Icl.I,11l1l ,I.( l.I/~I"'N'r() dlll1d,' 'lO ,llina'l'II,'tI aIOI:tlllll'IIIU lur:,I(' d,' I;¡ ('Olllllllld,¡d d(' ~1a(lrld SUll:l1.' prlll1;lIl:t ,1,11'1 :IK'lIll" ,1 , del allll;lIll1l'llI() (' N""lbll' 1I ("('Illllal'lil', PUL'tlV ad""11l 1111""). ('lIlhilk'I.IIII1I~ ;¡J'l ll" ' dl' d<: :llla 111111111'1alill:tllll"tllil 1.1tnd,,, la qu' ,,1 :llrlhu'" d.: llllll:I,,'I'1 (l'Cldl~''-/l'II', NOlnhn: Arlil, 1)1'~l'flJl(,ll)n, Nll'IJ Pl'lo,¡lll:t di 11111"..; p:lI:t pVIIIIIlII 1" IHI!-o,htlid;ld ll' '111' 1. 11"'1011:1 A("I'IVlr>,I> 1111 ":I:¡ ~ I.ISIS I>E I.()S S (11'1'ES'I'()S SEI t Á NTI ('()S 'II¡" 1'" ,tI/l/"III/"/I/" 1<",(/ oo. ,o/, J ,¡ftl /"" 1/,,,,/,, /II/(/t ,,' ''','/III/Ic 1 1111'1 /11'/,1/1/111 11 [/,,1' /111 ""111/'1" d,' '/lII/,lc {" ,/,1< I " 11l/u /'<""'11'" " '111'/'/(1" "t /"'/II'""t /.//1 d,'/ • ••••••••••••••••••• ••••••••••••••••••••••••••
  • 79. • ••••••••••••••••••• .•...•.•..•.....••. ........ •• " ' (SEÑO DE BASI,S I)r.l)/ TOS: PR()BLI-,M¡S RESUELTOS 1(. i 2 1, MODELADO RI!I.ACION/L 147 :n cada alojamiento trabajan na serie de personas. sin embargo. aunque cn un u niento trabajen varias personas, una persona sóo puede trabajar en IIn l nicruo". alquilan por hobitaciones v se desea conocer cutintas "ah/I(/CIOfle,1 componen el alojamiento ... ''. ~n un alojamiento pueden trabajar una serie de personas. pero una misma per~Ona puede trabajar en n alojamiento, por tanto debernos introducir u un atrihut o ibre Aloja" en la relación PERS()NAL, que será lc ave ajena de esta relación ) -ncíará a ALOJAMIENTO. Corno los alojam,lent.os disponen de una serie de babiraciones y la~ habitaciones dcpend~n de lo ,alOJamiento, en el sentido de que para hacer referencia a una s habitación n ecesrtamos el nombre del al iarmenro o 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 demás todo alojamiento tiene una persona de contacto que pertenece al pers onal lojamiento, luego el a tributo "Contacto" seá clave ajena que refereneiará a r ;ONAL, "Los alojamientos JI' ,..... ALOJA!11F.NT() (Nombre Aloja, Dirección, Teléfono, -l' eontacto -, Núnlero_Habita) B:C.M:C UOJAMIEN'ro (Nornbre Alo!, Dirección. Teléfono, Contucto=, Número Habita: HARI'I'ACIÓN (Nc/lnhre Aluja, N Habitª, Tipo, Bnño=, Precio=) O:t'.M:C Figura 2,1,2 I B:C,M:C PERSONAL (Código P, NombrcP, Dirección. Opciones de borrado y modíñcacínn NlF. Nombre Aloja ) Figura 2,1.1 Entre las relaciones ALOJAMIEN'rO y PERSONAL. exi te un cic referencial s lo rnpide la crcaciún de las misma» según las especificaciones del SQL_92, EIC erna se puede solucionar creando las tablas sin las claves ajenas y posteriormente ulas. corno sc muestra en el script. Si ~e e,lill1ina o se modifica un alojamiento se deben elim inar o modificar toda ' I.IS habitncioues de dicho alojamiento por lo que tanto el borrad 'Is 'f' .. ' ' ... o cOlno a d Illtl r icacron se deben hacer en cascada (B:C,M:C') I{cglas E<.:A Se debería LOJAMIENTO. ones de borrado y modíñcacíón Si se elimina un alojami ento de la base de datos, se elimina todo el perso nal que ja en él, en cascada (B:C). Lo nusmo ocurre con las modificaciones (M:C). Sin embargo, si se elimina una perona que resulta ser una persona de contacto tll s lojamiento, no se debe pemitir que se elimine le alojamiento, r pero como el ato "Contacto" admite valores nulos, podernos considerar el borrado con puesta ;1 s (B:N), La modificación puede hacese en cascada, pues si se modifica 1111,1 r ina de contacto en PERSONAL, se debe modificar en ALOJAMJEN1"O (M:('), controlar mediante un disparador la cardinalidad , ' mmuna en . A~emás, como se desea conocer el núrnero d habitaciones de la~ que const, e d ,llo,,~rnlento, deberíamos ten er un di parador que, cada ve? que Í>C dé d s l' a ca a dlllllnc u a h bi . , . e a ta o se , n a naci n, se 1 ncremerue o decremente ó en uno el val del . t ib or 'Junlcro_Hahita ", a n uto ..En algunos de estos alojamienm-: S(' realizan (/c/ÍI'idadex multraventura organizadas 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 esa int'onnación. Pero t iaber algun día en el que no se practique ninguna actividad'', asRCA controlar ')$ una persona, mediante Es necesario que la persona de contacto sea una de las que trabaje en el Se deberían miento. controlar un disparador que en un alojamiento trabaje al C~ldHalojalTliento puede proporcionar <1 IlllSl11aacti vidud puede sc' . 111' , • r propuesta e crear una n ueva relación REALLZA IlIlflUesta . l" ('TIVi pOI" as claves pnrnanas ''''~CIÓ dDAJO. Cada una de ellas será a n e a cual provienen. 1111' c iertas actividades Inultillventura '¡dCnlás ". • ( , por vanos alojamientos, por tanto tenernos ACTIVIDAD cuya cla e ,.. ' '. _• v pnlnana eSlará de las relaci ones ALOJAMIENTO su vez clave ajena que eferenciará r a I~
  • 80. ISEÑO DE BASES DE DATOS. I'ROHI.EMAS RESUEI.TOS _:~~'~'::.:.'i--- )cbemos introducir el at ributo "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 relativa de la semana en que se realiza cada actividad, Además podemos considerar que tributo admite valores nulos. para contemplar la posibilidad de que a una cierta dad propuesta por un determinado alojamiento todavía n se le haya asignado o n día, ...--"'AWJA!flENTO ("'¡¡mbre Am REALIZA_ACTIVIDAD ('REATE DOMAIN N ombrc_ Válido CHAR(30): CREATE DOMAIN Tipo_Código CHAR(J); ('REATE DOMAIN Tipo_Baño CHAR(2) CHECK (VALUE IN ("SI", "NO"»): CREA rs 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) e (Nombre AfIlLII. CódIgo ACliI',Día_Semana*) ____JI r-r-: c: 140J SCRIPT EN SQL_92 Drreccrón, Teléfono. Contacto ". Númeru Habna} R (.M 22:.!., MODELADO RELACIONAL 1,1:, B'C~I:C ACTIVIDAD (CÓdig'LA<:Il'. Numbrc..A<';liv,Descripción. Nivel) l. Figura 2./.3 ('REATE TABLE Pcrsonal( CódigoP TipuCódigo, ones de borrado y modilicación Cada vez que se elimine o se modifique una actividad se debe eliminar o ficar la tupla correspondiente de la relación intermedia. por tanto el borrado y lit ficación serán en cascada (B:('.M:C) asECA Como una misma actividad es realizada por al menos un alojamiento. deberiarnoun disparador para controlar esta cardinalidad mínima. 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 CASCAOE ON DELE1'E CASC AOE l' • L TER TABLE Alojamiento .FO RELACIONAL Fi'ALOJAlU¡':NTO ADD FOREIGN KEY (Contactoj RE¡""ERENCES Personal ON DELETE SET N ULL ON UPDATE CASCADE' , (NIl1Tl~[~ólul~Dirccciln. Teléfono, Con ((1('((1*. Númerl,_Hahi(3) B:N.M-(, I -yr B CM:C' ERSONAL (C(lligl,l I~ NombrcP, Dirección,NIF. Nombr.e_A laja) lB HABITACiÓN CM (' (NllIl'!J(!' Afoitl..N_H~bj.l1j ipo, Baño", Preci T lI:r',M (' REA LIZA ACTIVIDA D i!l/tlmh'·I'...LV.('¡". CódiÍ'tJ ...- Atti" Día_Semana·) ....J Il.CM,l 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 A loja N Habita) l'OREI(iN KEY (NOrllbre~Aloja)' REFERENCES ON UPDATE CASCADE ()N DELETE CASCADE Alojamiento 1, ......ACTIVlOA (C6d11!9A'liS Nnmhrc..A"I~ Dcscnpción. Nivel) Figura 2./.4 •••••••••• •• ~ •••••••••• • '•••••••• e ••••••••.• te ••••••
  • 81. •....... •••.•••.....• .••.•. ••..•••••.....••••. SEÑO DE BASES DE DATOS PROBLEMAS RI'_<;UELTOS (l KA '" 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) ' , ' ' R- lA AND 2 I MODELADO RELACIONAL I~I WHERE A.Nombre_Acliv = "Senderisrno" AND C.Tipo = "Doble" (B.Codigo_Activ B.Nolnbrc_Aloja = A. Codigo_Acliv ANO = C.NoITIbre_Aloja); , Algebra relacional (nNlI"'h'< AlllJo'(Tlp,,="D"hl<"(HABIT O ACION) )*(n;>ill"'ort' _/1",. «REALIZA_AC'rIVIDAD)* nC""'glOA,h' (ONIOmo«_ Scndcn",,,,' (ACTIVIDAD») 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 A ctividad JN UPDATE CASCADE JN DELETE CASCADE, 'GN KEY (Nombre Aloja) REFERENCES Alojamieruo )N UPDATE CASCADE )N OELETE CASCA DE Se quiere diseñar una base de datos que contenga información sobre las observaciones realizadas a distintas especies de aves en la Península Ibérica. Para ello -c han de considerar las sigu ientes cspecificaciones: 5ULTAS Cada especie de ave se identifica por su nombre científico. Se desea conocer su nombre vulgar y una hreve descripción de las características más importame, que la diferencian del grupo omitológico al que pertenece. nbre y descripción d las actividades e ominado "La Huerta". que se realizan PROBLEMA 2: AVES Enunciado en el alojamiento grupos ornitológicos clasifican las especies según sus sirnilitudes c~lructura~es. por ejemplo, cl grupo de las zancudas se caracteriza por ten patas er I~rgas pICO largo. Por lo tanto guardaremos información acerca de las patas, dedos y y Los prco. SELECT A.Nolnbre_Activ, A .Descripción FROM Actividad A, Realiza_Actividad B WHERE NcmbreAloja = "La Huerta" AND A.Código_Activ = B.Código_Activ: Cada especie de ave esta siempre asignada a un sólo grupo ornitológico. Existen asociaciones uirección y el teléfono. omitológicas de las cuales se quiere saber su nombre. la ebra relacional 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 la ulrecclon. Además un observador sólo puede estar adscrito a un asociación. ( REALIZA_ACTIVIDAD» lbre de los alojamientos enderismo. que tienen habitaciones ;ELECT Distinct B.Nonlbrc_Aloja =ROM Actividad A, RealizaActividad dobles y realizan acti vidadc- B, Habitacion C . Las zonas de observación tienen un código de zona que es úni o. También se c qUiere saber el nombre de la misma, la comunidad auténoma a la que pertenece la Jlrovin . l' . , , era y e upo (SI es una laguna. un rí . una zona costera, etc.). En cada zona se o -ncuentra por lo menos un observador, y si existe más de uno en la misma lona pueden ser de distintas asociaciones ornitológica,. Cada observador está asignado a ina determinada lona.
  • 82. ---_._. DISEÑO DE BASES DE DATOS. PROBLEMAS RESUELTOS 2.1 MODELADO RELACIONAL 153 También se desea guardar información aceca de la fecha e la que el observador r n a una determinada especie, teni ndo en cuenta que ésos realizan trabajo de e t JO cada tres días y que además sólo anotan el primer avistamicnto de una minada especie por día. Esta información es muy imponante para controlar las cíes de aves que existen en la Península y, por tanto tendremos que guardar las , rvaciones aunque los observadores ya no se encuentren activos. Diseñar el esquema relacional. Indicar en él las claves primarias. claves alternativas y las claves ajenas. De estas últimas especificar los modos de borrado y modificación. Marcar con un asterisco (*) los campos que acepten valores nulos. Escribir las siguientes consultas en SQL y en álgebra relacional: • Nornbre científico y vulgar de las especies observadas por los observadores pertenecientes a la asociación ornitológica "El Petirrojo" • Se desea conocer el nombre y la zona a la que están asignados aquellos observadores activos que no han realizado ninguna observación. zusión del enunciado NTIFICACJÓN DE LAS KI<:I,ACJONIo:S RÁSICAS "Cae/a especie de ave ,1' identifica flor ~IInombre cienttfico. SI' desea conocer 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 ". De este párrafo se deduce que podemos establecer una relación ES PECIE, cuya ! primaria será "Nombrc_Científico". Podemos tomar "Nombre_ Vulgar" como ! alternativa. pues podemos suponer que este nombre es único. ESPECIE (Nombre Científico, Nombre_ Vulgar. Descripción) "Los grupos ornitológicos clasifican las especies según sus similitudes estructurales, por ejemplo, el grupo de las zancudas se caracteriza por tener patas largas y pico largo. Por lo tanto guardare/nos informacián acerca de las patas, dedos y pico ''. Al tener los grupos ornitológicos características que se desea almacenar en 1<1 n de datos, debernos introducir una nueva relación GRUPO_ORNITOLÓGICO. 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 que nas de e stas características no so comunes a todas las ave del grupo. n s «íucirernos además un atributo "Nombre", que con tendrá los nombres de 1o, ntos grupos ornitológicos y que puede ser, por tanto, clave alternativa. j .••••••.• ' GRUI>o_ORNrrOLÓGICO (Código G, Nombre, Patas·, Dedos=. Pico") "Existen asociaciones onlilnlúgicas de las cuales se quiere saber su nombre, la direccién .Y el telefono ". Tendremos una relación ASOCIACIÓN. primaria el nombre de la asociación. ASOCIACIÓN (Nombre donde podremos considerar corno clave Aso, Dirección, Teléfono) "Cada una de estas asociaciones consta de un grupo de personas, los observadores, que son los que realiza" los avistamientos de las distintas especies. De los observadores se requiere su código de observador, el DNI, el nombre completo y la direccián", Debernos almacenar los observadores en una nueva relación OBSERVADOR en la cual el código del observador ("Código_Obs") será la clave primaria y el "DNI:' la clave alternativa ()RSJ.:RVADOR "UIS :(JI/(lS «(~ódigo Obs, DNJ. Nombre, Dirección) de observucián tienen 1111 código quiere saber el nombre de la misma, !1t'flL'III'C(', ItI provincia y el tipo (~I es I/IU/ etc.. ) . ,'1' .. de ;;Ollll '1/11.' ('S único. Ttllllbiéll ,(1 COlllllllidac! autánomn la,l(IIIICI, a la que 1/11río, 11"(/ :011(/ COSIera, De la lectura de este párrafo se deduce una nueva relación 1.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 "Cada especie de al'e está siempre asignada a un solo grupo ornitológico ". Aunque cada especie de ~~upo .puede,? estar .incluidas ( Códlgo_G) sera clave GRUPO_ORNITOLÓGTCO, ave esté asigna a a un único grup ornitológico, en cada d o v~ias especies de ave, por 10 tanto el grupo ornitológico ajena de la relación ESPEC IE, que referencia a como muestra la figura. 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*) Figura 2.1.5 • e e.· .... :. " •• •••••••• e -•••••••
  • 83. •••••••••••••••••••. ......... ~ )ISEÑO DE BASES DI::DATOS' PkOBLEMAS RESUELTOS 2 I MODEI.ADO kbLACIONAI. ones de borrado y modificación 155 OBSERVADOR (Código Obs DNI, Nombre, Dirección, NOllrbre_As¡1',Cód'go_:) ,------------------_j B R.M:C ~l borrado y la modificación de la clave ajena "CódigoG" puede ha cerse en da (B:C.M:C), pues si desaparece un grupo ornitológico desaparecerán todas las ies que pertenezcan a él. ..... Z()NA_OBSERVACIÓN lSECA (Código Z Nombre, Comunidad, PrOVInCIa, TIpo) Figura 2. J. 7 )i se exigiera que en nuestra base de datos todo grupo ornitológico s una especie de ave, esta cardinalidad tu viera al la deberíamos controlar mediant un e rador. "Cada una de estas asociaciones consta de un grupo de personas. los observadores. que SOIl los que realizan los avistamientos de las distintas especies.: Además UIl observador s610 puede estar adscrito a UIl • 'i asoclaccon . 1I ASOCIACiÓN (Nonlbre Aso, Dirección, Teléfono) El supuesto del enunciado que comenta que si existe más de un observador en la nusma zona, pueden ser de distintas asociaciones ornitológicas, no es necesario contemplarlo, pues pueden ser de distintas zonas o de la misma. Opciones de horrado y modificación La eliminación debe ser restringida para evitar que se borren los observadores que pertenecen a una zona de observación eliminada (B:R). La rnodificaci6n se puede hacer en cascada (M :C). Reglas ECA B:N.M:C OBSERVADOR (Código QhS DNI, Nombre, Dirección, No", re_As"') Figura 2./.6 :omo se muestra en la figura, "Nombre Aso" es clave ajena de la r lación e ~RV ADOR, que referencia a ASOCIACiÓN. Esta clave ajena puede admitir para recoger los casos de los observadores que no tienen asignada nin guna ación en un momento dado. Como cada lona de observación tiene asignada al menos un observador, dchcr(arnos controlar esta cardinalidad mínima con un disparador. . "Tamtnéu se (~I!.eaguardar in/Uf/nación acerca di' la fecha en la 1/11(' el ob.w:n'ador divisa 11110 determinada especie, teniendo el/ cuenta que estos reall;;.all.rabajo de campo cada tres días y C¡1It! además sálo anotan el primer t avtstamtento 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 observadores ya 110 se encuentren activos ". ones de borrado y modificación ..-a eliminación de una as ociación ornitológica no debe implicar el borrad en o da de los observadores pertenecien tes a ella, ya que, como se nos dice más nte, estamos interesados en conservar las observaciones aunque desaparezcan los vadores. Por tanto al admitir la clave ajena nulos podemos optar por un borrado uesta a nulos (B:N). La modificación puede hacerse en cascada. "En cada ZOfla se encuentra por lo /nenos UIl observador y si existe más de uno en la misma ZOlla pueden ser de distintas asociaciones ornitológicas. Cada observador está asignado a una determinada ZOna''. :olno cada observador está asignado a una zona, el código de zona será clave de la relación OBSERVADOR. que referencia a ZONA_OBSERV ACiÓN. Se desea guardar ~nformacióD acerca de la fecha en la que el observador divisa u~ad.etermlnada es.pecle. Un observador puede divisar varias especies y una misma eS~le puede ser dlvlsa?a por varios observadores, por lo tanto tendremos una nueva r~'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 fecha d~. Vistamiento ( Fecha ), pues un observador puede avistar la misma especie en a diferentes fechas (los observadores sólo anotan el primer avi tarniento de una espe " s por día). ele El supuesto de que los observadores sólo realizan el trabajo de campo cada tres d{¡¡~ es relevante para el diseño de nuestra base de datos. no ~nc Como se. desea guarda~ la Información aunque los observadores ya no se uentren acuvos, debernos introducir un nuevo atributo "Situación" en la relación
  • 84. :ÑO DE llASES DI DATOS PROBLEMAS RESUI:1. ros 2.1. MODELADO RELA( ·IONAl. VADOR, que nos permita saber si un determinado observador r tanto solo podrá tornar dos valores' Acii ve' o '1nací i ve' . está en activo o CREATE DOMAIN Nombre_ Válido CHAR(60): CREATE DOMAIN Tipo_Código CHAR(5): CREA TE DOMA IN Tipo_Situación CHAR(l{) CHECK (VALUE IN ('Activo', 'Inactivo'j); "ECfE (Nombre Científico Nombre_ Vulgar Descripción. Ccídign_G) ERVADOR(C6digo Ob§ ONl, Nombre, Dirección, ---------,1 I S·R.M:(_, NOII¡[1"1'_A.~(/*, CÓdign_Z Situación) CREA TE TABLE Grupo_Ornitológico Código_G 'ripo_Código . Patas CHAR(20), Dedos CHAR(20), Pico CHAR(20). PRIMARY KEY (Código_G) S:R.M·( ,RVACJÓN (Códign Ob:¡Nombre Cielltífico, Fecha) Figura 2. J.8 borrado y la modificación de cualquiera de las claves ajenas debe ser jo, 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 se irni nar especies con observaciones. I RELACIONAl. SPECfE( NQmbre C'lentífico,Nombre_ Vulgar Descnpción. CtK/¡gll_G) ------------ __J G Nombre, Pala);", Dedos", Pico*) Aso, Dirección. Teléfono) BSERV AOOR(Código Ob$ DNl Nombre. Dirección,Nofllbre_Asff. ix1igo_Z: Situación¡ C ______________________ --------, J_jiB:R.M:( (Código Z. Nombre, Comunidad, Provincia. Tipo) S:R.M:(, I: CREATE T Aa LE Asociación ( Nombre_Aso Nornbre , Válido. Dirección CHAR(50) NOT NULL, Telefono CHAR(9) N01' NlJLL, PRIMARY KEY (Nombre Aso) ): B·N.M:C )NA_OBSERVACJÓN 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 Grup o_Ornitológico ON UPDATE CASCADE ON DELETE CASCADE Il C.M ( , SOClACJON(Nombrc ( 1: ~ de borrado y modificación RUPO_ORNJTOLÓCJCO:Código SCRIPT EN SQL_92 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: I [j·R.M:C 8SERVACIÓN( CÓdigo Qb$,Nntnbre Cie,ll/fOc(! Fecha) Figura 2./.9 ...... .••.•••• I • ' CREATE TABLE Observador ( Código_Obs 'fipo_Código DNJ CHAR(9) NOT NULL. Nombre CHAR(40) NOT NULL. 157
  • 85. •••••••••.•......'. ••. " " ' DISEÑO DE BASES DI: DATOS' PROBLEMAS RESlIl:1.TOS 2.1 MODI::.1.ADORELACIONAL 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 CASCADE ON DELETE SET NULL, IREIGN KEY (Código_Z) REFERENCES Zona_Obscrvación ON UPDATE CASCADE 159 Sql SELECT Nombre. Código_Z FROM Observador WHERE Situación = "activo" AND Código_Obs NOT TN (SELECT DISTINCT C6digo_Obs FROM Observación); - Álgebra relacional n Nombre. Código (OBSERV ADOR) * (I1Cód•EO_Ob, (oSlIua<ll'ln='acl."u·(OBSERV DOR») * n Cexhgo_Obs (OBSERVACIÓN)) A tEATE TABLE Observación ( Código_Obs Tipo_Código , Nombrc_Científico Nombre , Válido, Fecha DATE, ~MARY KEY (Código_Ohs, Nombrc Ciernffico. Fecha), )REIGN KEY (Código Dbs) REFERENCES Observador ON UPDATE CASCADE, )REIGN KEY (Nombre_Científico) REFERENCES Especie ON UPOATE CASCADE Z PROBLEMA 3: PINACOTECAS Enunciado El Ministerio de Educación y Ciencia desea mantener información acerca de todos los cuadros que se encuentran en las pinacotecas españolas y toda la información relacionada con ellos. De cada pinacoteca se desea saber el nombre (que se supone único), la ciudad en la que se encuentra. la dirección y los metros cuadrados que tiene, ONSULTAS Nombre científico y vulgar de las especies observadas pertenecientes a la asociación ornitológica "El Pelirrojo", por los observadores Sql SELECT DIS1'lNCT E.Nombre_Científico, E.Nolnbre_ Vulgar FROM 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" Álgebra relacional n Nombre «OBSERVACiÓN) Cicnufic«, Nllmhrc_ Vulgar * (1tCód.go_Obs (ESPECIE) * n N'>lllbrc_Cielllílic" (ONtllllhrc .A,<)~'EI peIllTo.lo,(OBSERVADOR»») Se desea conocer el nombre y la zona a la que están asignados observadores activos que no han realizado ninguna observación. aqllello~ Cada pinacoteca tiene una serie de cuadros de los que se q uiere guardar su código, nombre, medidas, fecha en que fue pintado y técnica utilizada para pintarlo. Cada cuadro es pintado por un determinado pintor (nombre, país, ciudad, fecha de nacimiento y fecha de fallecimiento). Un pintor puede tener a otro como maestro; a su vez, un maestro puede serlo de varios (o de ninguno). Los pintores pueden pertenecer o no a una escuela de la ue se desea saber su q nombre y en qué país y fecha apareció. Los pintores pueden tener también uno o vaios mecenas que los protegen r (nombre, país y ciudad de nacimiento, fecha de su fallecimiento, y fecha en que se inicia y termina el mecenazgo). A su vez un mismo rnecenas puede serlo de varios pintores. Se desea recoger la relación que existe entre un pintor y su mecenas. - Diseñe el csquerna relacional. Indique en él las claves primarias, claves alternativas y las claves ajenas. Oc estas últimas especifique los DIOdos de borrado y modificación. Marque con un asterisco (*) los campos que acepten valores nulos. - Efectuar en álgebra relacional y en SQL las siguientes consultas:
  • 86. ISEÑO [lE BAShS nI-' nA roS PKOBII'MAS KI·$lIEI.TO~S:__ ...::'):.::K::.!'...::.I'. • 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 a la Escuela de Florencia usién del enunciado rTIFICACIÓN P, Ciudad_P, Dirección_P, Metros_P) "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 para pintarlo. .. 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: Tenemos la relación ('UAI)RO CUADRO (Código C, NombrcC, Medidas, Fecha*, Técnica) "Cada cuadro es pintado por 1111 determinado pintor [nombre, país, ciudad, fecha de nacimiento y fecha de faltecimiento J ... conocer al artista que ha pintado cada cuadro debemos construir una nueva ión PINTOR, en la que, como no se nos dice nada en contra, podernos considerar Iombre" como único y por tanto clave primaria de la relación. Para Si consideramos que la Fecha de Nacimiento ("Fecha_N") y la F echa de cimiento ("Fecha_F") de cada pintor pueden ser desconocidas, estos atributo' ten valores nulos. PINTOR (Nombre E, País_E, Fecha_Aparición) "/..0.1 )e este primer párrafo se deduce una relación PIN .<COTECA en la que el re ("Nomhre_P") es el atributo identificador principal: (Nombre 161 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 en que se imcia y termina el mecenargo¡ ...... DE I,AS RI<:LACIONES BÁSICAS .. >INACOTECA AL Esta frase implica la creación de una nueva relación ESCUELA, cuya clave primaria es el nombre de la escuela C'Ncmbre E"). Podría pensarse en considerar la clave primaria formada por Nombre y País, pues por ejemplo el Impresionismo puede ser francés o inglés, dando lugar al Impresionismo Francés y al Impresionismo Inglés. pero supondremos que en el nombre de la scuela ya almacenamos esas variantes. e t ESCUELA ..De cada pinacoteca se desea saber 1'1nombre (que se supone único J. la ciudad en la que se encuentra. la dirección :v los metros cuadrados que tiene. , __,2!.:..!_1 .!!M~(!!.)I)!!I!::!:L~A f-:LAC ION DO K _!oH.:..' ~:::.I~::._ Se desea recoger todas las características de los mecenas que protegen a los artistas 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, pOUelT10S pensar que es único. Además, y al igual que en la relación PINTOR. la fecha de comienzo ("Fecha_Ini") y la fecha de fin C'Fecha Fin''), pueden admitir valores nulos, MECENAS ~ccha_¡';in*) (Nornbre M, País_M, Ciudad_M, Fecha.Fallecimiento, rccha_Ini*, Tanto PIN"r()R corno ESCUELA y MECENAS hacen referencia a países, para evitar anomalfus de inserción y modiñcacíon, podría pensarse en crear una relación PAIS, con lo que !>c tendría un esquema más normalizado, algo parecido sucedería con 1,1' ciudade-, de las cuales habría de registrarse además su dependencia de lospaíses, 'lÁLISIS DI<:: OS SUPUI<:STOS SEMÁNTICOS L "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 para pintarlo ." ~odelnos suponer que un cuadro no puede estar en varias pinacotecas a la vez, de cxta forma podemos introducir "Nombre P", como clave ajena en la relación CUADRO 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. PINACOTECA (Nombre P,Ciudad_P, Dirección_P, MelrOS_P) II:R.MC (Nombrc_PI, Pafs Pt, Ciudad_Pt, Fccha_N*, f'ccha_F*) CUADRO (CÓdigo ~ NOlnbrc_C, Medrdas, Fecha", Técnicll,No/llbrt'_P) ..Los pintores pueden pertenecer o 11(/ {/ tilia escuela de la que se desea saber su nombre y 1'11 (/1Ié paú v [echa apareció ." Figura 2.1.10 • •••••••••• •••••• ••••••••••••••••• •••••••• •• ~ ~
  • 87. "~e ••••••••••••• '••• '. ~ • ".".-- ...... _llJ~~~~~~~~~~ 2.1 MODFI.ADO KELAC'IONAI. 163 ... DISEÑO DE BASES DE DATOS, PROBLEMAS RESUELTOS 'R~:::M~h-- pe iones de borrado y modificación , Todo maestro es ,un pintor y por tanto sus características (atributos) son los nusmos que los del pintor. Estamos ante una relación reflexiva, Introducimos un ~tnbuto "N~mbre_Maestro:·. cuyo contenido es el mismo que el del atributo Nornbre_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 v alores nulos, • 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 una inacoteca, deben poderse modificar en cascada lodos los cuadros de la orrespondíeme pinacoteca modificada (M:C), .eglas ECA PINTOR (Nombre Pt. PaísPt, CiudadP; Fecha_N., Fecha_F., NOfl1bre_Maestro*) _j Il:N,r.I:C' L-- Deberíamos controlar mediante disparadores, que todo cuadro pertenezca siempre una pinacoteca, "Cada cuadro es pintado por 1111 determinado pintor (nombre. país, ciudad, fecha de nacimiento y fecha de fallecimiento)." Opciones de borrado y modificación Del análisis de esta frase se deduce que un cuadro no puede ser pintado por más e un pintor, por lo que "Nombrc_Pt" es clave ajena de la relación CUADRO, que eferencia a la relación PIN'fOR, ._. CUADRO (Código Figura 2,1./2 e Nornbre_C, Medidas, Fecha", Técnica, NO,1IiJl'e_P,Nombre un ,~intor puede ser maestro de otr pintor, si elirninamos un pintor, no o dcbcr~os permiur que se borre al maestro, por lo tanto 'el borrado es con puesta a nulos , C 0l110 (B:N)_I, ..Los pmtores pueden pertenecer o Pt; 110 II una escuela de la iJlle se desea saber su nombre r en qué pats yfecha apureciá, " K'K,M:(' Los pintores pueden pertenecer o no a una escuela y no se nos dice nada acerca ~e que 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 que referencia a ESCUELA, . PIN'fOR (t-!Qlllbr.. J'll'a(s_PL Ciudad Pt, Pl'cha_N*, Fecha_F'") . Figura 2.1.11 Jpcíones de borrado y modificación ""NT()R (,Nombro?PI. Paí'_PL CiudadPt, FechaN", No se debe permitir eliminar un pintor de nuestra base de datos, mientras existan uadros de ese pintor en alguna de las pinacotecas almacenadas, por tanto el borrado lebe ser restringido (B:R), Sin embargo la modificación debe realizar e en cascada s M:C), Fecha_F·, Numbre_Mac'lro*. NOl1lbre_f.'*) r-----------------------------------_jl ESCUELA (Nombre .5 Paí,_E. B,N,M e: Fecha_Aparicitín) Figura 2,1.13 ~egLasECA Opciones de borrado y modificacjón Al igual que en el caso anterior. necesitaríamos odo pintor tenga al menos un cuadro, disparadores para controlar qu e: No se debe permitir eliminar los pintores pertenccientes ., una escuela d esta sc climi d . u , cuan o cum .c e Inlln~ .. e base de datos, por tanto el borrado es restringido (B:R)' en ~ bio la modlh~aclon de una es cuela debe permitir 1<1 rnoditicación en cascada cid los pIntores pertenecientes a ella (M:C), !~ ~estricciones de rechazo Se deberla controlar mediante un CHECK, que la fecha de nacimiento de I()~ iíntores siempre sea anterior a la fecha de fallecirnienlO . .,Un pintor puede tener a otro serlo de varios (o de niIlRlIlIo)," CO/1I0 maestro: (1 su vez. un maestro puede ,I PII~deeleuirse eSI' operen. pues I clave ajena admite valores nulos '• ' , e .1 a '
  • 88. ...QI.SEÑO DE B/SES DL, OA TOS I'IH)BLEMAS RhSUELTOS . .1 k"- tA __________________ 1:J...MOI)I-'I.iOO RELACIOi':¡L I ~ itricciones de rechazo Opciones de borrado y modificación Deberíamos controlar mediante una ASERCIÓN que la fecha de aparición de una uela fuese anterior a la fecha de fallecimiento de los pintores pertenecientes a ella. Como se ~~sea g uardar debernos permiur el borrado d . . horr~ o d.e.be ser restringido modificación debe hacerse en 165 ..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 puede serlo de varios pintores. Se desea recoger la relacián que existe entre 1111 pintor y Sil mecenas ." Como un pintor pu ede 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 primaria de la~ s aciones PINTOR y MECENAS (HNonlbre_Pt", "Nombre_M"), y de esta forma itar grupos repetitivos en las dos relaciones principales. Cada uno de esto dos s -ibutos son clave ajena de sus respectivas relaciones. la relación existente entre el pintor y su mecenas, en cascada en la relación MECENAZGO , el> d eClr. cs . (B:R). Al no decir el enunciado nada en contra, cascada (M:C) . eI la Restricciones de rechazo Deberíamos cont~olar mediante una ASERCIÓN que las fechas de inicio y fin del mecenazgo sean amenores a la fecha de fallecimiento del mecenas. También debe.ríamos controlar con un CHECK que la fecha de inicio del mecenazgo es antenor a la fecha de terminación del mismo, GRAFO REI,ACIONAL PINAC()TF.CA (Nqmnre p. Ciullad_P, DirecciónP. Metros P) 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. n K.•I e CUA I)RO (C6diso C. Nombre.C, Medidas. Fet'ha·. Técnica. NO/l,bl'('_)'NO/l,br('_ft) [n Además, en un principio se consideró las fechas de inicio y finalización del ccenazgo como atributos propios de la relación MECENAS, lo que significa que un cccnas s610 puede serlo en un determinado período. Pero si quisiésemos que 1 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. '1 iponemos que un mecenas puede serlo de un mismo pintor en distintas fecha'. :;echa_lni", "Fecha Fin" deberían formar parte de la clave prirnaria. no Lo.: ~ PINTOR (~mhr, R.M ( ~l. Pa"yL. Cn,dudj'l l'echu_N' . l-'echa_F·. N(lmble_Mtl~,lIro'. Nombre _E· ) ON.I( 4 ESCUELA (Nombre 11 r-..M (' E. Paí,_E. Fecha_Apanción) ~ I'vIECENASiliombre M País_Iv!. ClUuad_M. FechaFallccirmemoj Nuestra opción ha sido considerar que un mecen puede serlo en distinto, as eríodos ("Fecha_lni", "Fecha.Fin" atributos de la relación MECENAZGO), pero no e un mismo pintor (clave primaria formada por "Nombre Pt" y "Nombre jvl"). _. I R:I<.M.C MECENAZGO (Nombre PI, Nombre M, Relación. Fechajni", Fecha_Fin') PINTOR (Nonlbre.,Pt. País..,Pt.Ciudad Pt, Fecha_N·, FechaF", Nombre_Maestro", Nornbre.E" MECENAS (Nombre M Paf~_M. Ciudud_M, Fecha_Falleclmienlo. Fech:lJJj+,Fecha_Fin*) 11K.M.e n K.M.C' Figura 2./.14 •••••••••••••••••••• .R.R.M.C Figura 2.1.15 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álido Ciudad_P CHAR(20) NOT NuLL Dirccción_P Cl-IAR(20) NOT NULL • •••••••••••••••••••••••••
  • 89. DISENO DI:: BASES DE DA TOS: PROBLEMAS RESUELTOS Metros_P lNTEGER NOT NULL, lMARY KEY (Nombre_P) BATE TABLE Escuela ( Nombre_E Nombre_ Válido, País_E CHAR( 15) NOT NULL, Fecha DA TE NOT NULL, JMARY KEY (Nombre E) !.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) _ <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 ( Pecha Ncfecha F), )REIGN KEY (Nolnbre_M) REFERENCES Pintor ON UPDA TE CASCADE ON DELETE SET NULL, )REIGN KEY (NombreE) REFERENCES Escuela ON UPDATE CASCADE _ _ 2.1' MODELADO RELACIONAL ORA 'lA 167 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 ); CREATE TABLE Mecenazgo ( Nornbre_M Nombre_ Válido, Nombre_Pt Nombre_ Válido. Relación CHAR(IO) NOT NULL, Fecha_lni DA TE, Fecha_Fin DA TE, 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 ); CREATE Assertion Fecha_Mecenazgo CHECK (NOT EXlSTS SELECT" FROM Mecenazgo NATURAL JOIN Mecenas WHERE fechafallecimiento» FechaJnil): CONSULTAS 1. P,intor que pintó el cuadro llamado "Saturno devorando a uno de sus hijos" y en qué ptnacoteca sc encuentra .. Sql REATE ASSERTION Escuela; válida HECK (Not exists) ( SELECT * FROM pintor NATURAL JOIN Escuela WHERE Nombre_E<> NULL ANO Fecha> Pccha Nj): 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. SELECT Nombre Pt, Nombre_P FROM Cuadro WHERE Nombre_C = 'Saturno devorando a uno de sus hijos'; Álgebra relacional 2. Nombre y país de nacimiento Escuela de Florencia. de los mecenas de pintores pertenecientes a la
  • 90. DISEÑO DE BASES DE DATOS: PROUI.EMAS RESUELTOS I SELECT Nombre M, País_M FROM Mecenas WHERE Nombre_M IN (SELECT Nomhre_M I¡ROM Mecenazgo WHERE Nombre_Pt IN (SELECT Nombre_Pt FROM Pintor WHERE Nombre_E~l = 'Florencia'): I RA 1; 2.1' MODELADO RELACIONAL 169 Diseñe el esquema relacional. Indique en él las claves primarias, claves alternativas y las claves ajenas indicando las opciones de borrado y modificación, Marque con un asterisco (*) los campos que acepten valores nulos. _ 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". gebra relacional: Jueces que investigan casos en los que hay implicados miembros del partido "YYY". Discusión del enunciado ROBLEMA 4: CASOS DE CORRUPCIÓN "1)1.' cada caso de corrupcián se desea saber Sil código, nombre por e/ qUI? se le COIlOrl:, 'lila breve descripción y una estimacián de los millones que SI' han desviado ." nunciado 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 a epatar una base de datos que con tenga todos estos datos. 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 estimac ión de los millones que se han desviado. Cada caso es investigado por un juez del que se desea saber su nombre. dirección. cha de nacimiento y fecha en que come nzó a ejercer. Una vez concluida 1;1 vcstigación del caso emiten un dictamen que se registrará. En cada caso hay una serie de ciudadanos implicados. cada uno de ellos con un ugo 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. 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, 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'l finidad con varios periódicos o con ninguno). Nótese que IOEN'fIFICACIÓN DE LAS RELACIONES BÁSICAS hCII10S supuesto "l -lorencia .. como nombre de escuela t ••••••••••••••••••• 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 re lació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 por nrngu~o, t~mblen podna tornar valores nulos el atributo "Millones" en el caso de que la estimación no se haya podido realizar, por último, supondremos que el atributo Descripción" no tomará valores nulos. Tampoco podrá tomar valores nulos el atributo '(.'00"dado que constituye la clave primaria de la relación. CASO (Cód, Nombre'. Descripción, Millones') •Cada caso es investigado por IIn juez del que se desea saber su nombre direcciá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á," . 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 de r~aCllnlento,y fecha de ejercicio de un juez pueden ser desconocidos, los ,orrcspondlentes atributos podrán tornar valores nulos. ~stamos considerando que el atributo "Nornbre" contiene no sólo el nombre sino (JlI1b' I . ren os ape 11'Idos del Juez, y suponemos que no hay jueces con exactamente' el •••••••••••••••••••••••••
  • 91. ~.' •••••••• ~ I ••• • ••• '•• 2.1: MOOELADO RELACIONAL DISEÑO DE BASJ:S DE DATOS: PROBLEMAS RESUEI TOS nombre y ape llidos, por lo que la clave primaria podrá ser este atributo rbrc" que bajo la anterior suposición identificará unívocamente a cada uno de los es, Si no estableciéramos esta hipótesis, deberíamos proporcionar un medio de tificació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 o go de colegiación en el colegio de abogados), o bien. por último, mediante una binación de campos cuya coincidencia para dif rentes jueces sea prácticamente e asible (por ejemplo, con el nombre y la fecha en que comenzó a ejercer). 10 JUEZ (Nombre, Dirección', Fecha_Nac·. Pecha Ejer) Los dictámenes que emite cada juez no podrían recogerse en esta relación, pues recesitaría un atributo que admitiera varios valores, lo que en el modelo relacional es posible. Más adelante daremos solución a este problema. • En cadel caso hay una serie de ciudadanos implicados, cada uno de ellos con un cargo principal detenninado en el momento en que se produjo el caso. De cada U/lO de estos personajes se desea conOcer su DNI, nombre. di rección y patrimonio." Para recoger la información de los ciudadanos implicados se introduce una nueva ación CIUDADANO que co ntendrá los atributos "DN1". "Nombre". "Direcci 6n" y urimonio", la clave primaria será "DNI". Puede suponerse que tanto la dirección no el patrimonio admiten valores nulos por ser éstos desconocidos. CIUDADANO (DNI, Nombre, Dirección', Patrimonio') "Estos ciudadanos pueden O no pertenecer a 1111 partido político determinado y. a veces, desempeñan I/n puesto en él. De cada partido quiere conocerse su nombre, dirección de la sede central y relé'fonos. " Se precisa la creación de una relaci ón PARTIDO que permita ecoger la r =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~ran cogerse introduciendo un atributo en esta relación, para recogerlos se precls anl cluir 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. PARTIDO •Cada (Nornbre, Sedc_Central) de corrupción es descubierto por u/! periódico (nombre, dtreccián V tirado) en una fecha deten tlineula que se desea saber. C"da pertádico ¡,¡¡ede tener o no II/Ia afinidad con l/ti partido político (por otro ('elSO lado un partido político puede tener afinidad tIlIlXIIIIO) ." COtl 1 71 varios periódicos o con Para recoger la información sobre los periódicos, se requiere una nueva relación PERIÓDICO, SlIS atributos son "Nombre", "Dirección", y "Tirada", su clave primaria es el.atributo "Nombre" y el atribulo "Tirada" es el único que admite nulos para poder reflejar los casos en los que se desconozca su valor, PERIÓDICO (Nombre, Dirección. Tirada') ANÁLISIS DE LOS SUPUESTOS SEf1ÁNTICOS •Cada caso es investigado por U/I juez del que se desea sabe su nombre r direcci~ll. fecha de nacimiento y fecha en que co/nenzó a eje rcer. Una ve~ conchuda la investigacián. del caso emiten fUI dictamen que se registrará '." 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 caso puede que no ~aya sido asgnado a ningún juez, este atributo podrá tornar valores i nulos. ~ara registrar el re~ultado de la investigación de cada casohabrá de añadirse a la relación CASO otro atributo "Dictamen" que podrá admitir valores nulos en tanto y cuanto no haya concluido la nvestigación. i CASO (OXJ. N:ni:re', D=i¡rién Mllale;*, Nlllnl'l' .J11f!'¿ alhre _Pe/iódia¡ fu:ha_D:sc.l.lC1llTlUl*) N r--------------..J O·R.MC Figura 2. J. J6 Opciones de borrado y modificación . Las opciones de ntegridad referencial podrán ser en el caso del borrado i cualquJera salvo en cascada ( o tiene sentido que al borrarse un juez se borren los n ~asos de corrupción que éste investigaba) y e el caso de la modificación será en' n cascada. Reglas ECA En principio. no por Conocinuento di" . '> e Iilforma .Ó di CI n pu lera serían necesarias con las hipótesis consideradas ahora bien si " .d I un iverso de discurso para el que se desarrola el sist l l. ema e afirmarse que todo caso que se registra en el mismo tiene
  • 92. DlSt-::'IO DE BASES DE 1)ATOS. PROflLEMAS RESUEL ros tJ KA (1" gnado necesariamente un juez que lo investigue (afirmació~ no necesari~lnentc rta en el mundo real) deberían considerarse las reglas precisas para reflejar ese cesariamente, al tiempo. esta condición harfa imposible otra opción de borrado que fuera el restringido. Podrían realizarse también comprobaciones deducidas de nuestro conocimiento I discurso corno, por ejemplo. una comprobación de la corrección de las fechas echa de nacimiento + 18 años <= fecha de ejercicio). 2. 1: MODELADO R~I.A('JONAL ., K; ¡1A 173 Opciones de borrado y modificación Las opciones de integ ridad referencial de ambas claves ajenas podrán ser las de borrado. tanto en cascada como resringido dependiendo de la semá tica pretendida t n (no podrán ser ni nulo ni por defecto pues ello podría violar las condiciones de la clave primaria en la relación IMPLICADO). por su parte la dernodificacién en ambos casos ,crá en cascada. Reglas ECA "En cada caso hay una serie de ciudadanos implicados. cada WIO de ellos CO/I un cargo princtpal detenníllado en el momento en que se produjo el caso. De cada IUI(I de estos personajes se desea conocer su DNf. nombre, direccián y patrimonio." Los ciudadanos están implicados en casos. por conocimiento del ominio d ibernos que en el mismo caso pueden estar implicados diversos ciudadano~ '! que el rismo ciudadano puede estar implicado en mú ltiple~ casos de COr I?Clon. Est~ ~ tuación no puede r cogerse simplemente afíadiendo atributos a la relación CASO III e .m poco a la relación CIUDADANO, pues ello limitaría el número de casos que se odrí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,1I1 npl icados en él. en esta relación podrá recogerse también el cargo principal del iudadano en el momento en que se produjo el caso. que suponernos puede ser iferente en cada uno de los casos. Los atributos de la relación IMPLICADO serán "Cód Caso", "DNI_Ciudadano· • "Carao". la clave primaria estará compuesta por los dos primeros atributos que al iernpo serán claves ajenas. la primera referencia a la relación CASO y la segunda eferencia a la relación CIUDADANO. El único atributo que podrá tornar valore' rulos será "Cargo", pues un implicado no tiene por qué tener un det rminado cargo. e Si se exigiera la condición de que en todo caso hay ciudadanos implicados. esta condición debería controlarse de alguna man era. sin embargo, los implicados en un caso podrían no ser inicialmente conocidos, por lo que no es preciso asegurar esta semántica. Por el contrario, cualquier ciudadano en la BD lo estará corno consecuencia de haberse visto implicado en u caso. por lo qu todo ciudadano" está implicado n e necesariamente 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ía Impedirse el borrado del último caso en que se ha visto implicado un determinado ciudadano. "Estos ciudadanos pueden o tia pertenecer a 1111 partido politico determinado y. (/ veces, desempeñan U/l puesto I!/I él. De cada partido quiere conocerse .~II nombre, direcrián de la sede central y teléfo/los. H Existe una relación de perte encia entre los ciudadanos y 10' partidos políticos. n para reflejar esta relación. recogeremos para cada ciudadano le partido al q ue pertenece (único, en caso de que pertenezca a alguno) y el puesto que ocupa en el mismo (único. en caso de que ocupe alguno), lo que supone añadir ala relación CIUDADANO dos nuevos atributos "Nombre Partido" y "Puesto". ambos admitirán valores nulos y "NombrePartido" será una clave ajena que referencia a la relación PARTIDO. CIUDADAN() (DNI. Nombre. Dirección". Patn.omo=, Nombre_Partido·, Puesto» .. CASO «úd. ... CIUDADANO Nombre'. Descripción. Millones", Nombre juez, 6 "l. ,,(' Dictamen") I~PART'DO (Qt:!l. Nombre. Dirección", Patrimonio» ~========;--~-Iu e n,c, M C' IMPLICAO() «('ód 7"so, f>NI M'(' (Nombre, SedeCenrral} Figura 2.1.18 ('¡¡,dada/lO, Cargo") , Figura 2././7 bien 110 todo CIUdadano. si al menos todo ciudadano desde In perspectiva del dominio de IIll'l'e, al sistema de mformacrón que se está desarrollando. SI . ••••••• ~ ~ •••••••••••••••• ••••••••
  • 93. ~ ••• •••••'.'.'.'•....'. '. •• ' ' ' I DISEÑO DE BASES DE DATOS: PROBLEMAS RESl/EI TOS 2.1: MODELADO RELACIONAL pelones de borrado y modificación La opción de borrado de la clave ajena "Nombre_Partido" podrá ser tanto stringida corno puesta a nulos (no se consideran adecuadas para la semántica del ercício ni la opción de cascada ni la asignación de un valor por defecto), por el ntrario, la opción de modificación será en cascada, , 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 estos sos (relaciones introducidas para recoger los diversos valores que puede adoptar un 'ibuto de la misma tupla) sería que la clave primaria estuviera formada componiendo ibos 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 atributo ombre" será una clave ajena que referencia a la relación PARTIDO. 175 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. CASO (~. Nomhrc". Dcscripcróu, Millones', Nom/'Il'_JIII!¡. Nombre PeriÓdico.I'ccha r---------------------------~ "--+ PERIÓDICO Dese. Dictamen') B:R. M:C' <NQru!m;.Dirección. Tirada) Figura 2.1.20 Opciones de borrado y modificación ~a opción de borrado de la clave ajena "Nombre_Periódico" será restringida (no podna s:r puesta a nul~s y las opciones de cascada y puesta a un valor por defecto no se ~onsl~~ran convenientes para la semántica del enunciado). La opción de modificación será en cascada. PAR'fIDO (Nombre, Sede_central) B:C. M:C TELÉFONO_PARTIDO (Nombre, Teléfono) Figura 2./,19 pciones de borrado y modificación Tanto la opción de borrado corno la de modificación de la clave ajena "nombre" rán en cascada. ~glas ECA Si se exigiera que todo partido tuviera al menos un teléfono, deberíamos asegurar ediante 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 en relación TELÉFONO_PARTIDO. "Cada caso de corrupción es descubierto por un periódico (nombre, dirección y tirada) en ulla fecha determinada, que se desea saber. Cada periódico puede tener o /10 una afinidad con un partido político (por otro lado UII partido polttico puede tener afinidad con varios periódicos () COII ninguno) ." 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.1 scubierto y la fecha en que lo ha descubierto. Se añaden por tanto a la relaCII11 SO los atributos "Nombre Periódico" y "Fecha Dese", ninguno de ellos admllira Reglas ECA Debcrfa asegurarse mediante 10l> correspondientes disparadores que cada tupla en la 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 cada penod!co el partld~ polüico al que es affn. Se añade para ello a la relación PERIODIC? el atributo "Nombre Partido" que será optativo, pues no todos los Jlen~dlcos ~lel1enpor qu~ ser afines a un partido político. Este atributo será por tanto una clave ajena que estará referenciando a la relación PARTIDO. PARTIDO (Nombre. Sede Central) 8:N. M:C PERIÓDICO (Nombre. Dirección, Tiradas. Nombre_Partidc") Figura 2.1.21 Opcionesde borrado y modificación . .La~ opciones de integridad referencial de esta clave ajena serán la de borrado r~~trtngtt.la con puesta a nulos y la de modlñcucíon en cascada. o •
  • 94. DISEÑO DE BASES DE nATOS, I'ROflJ.EMAS RI,SUI:LTOS 2.1: ~IODELA[)O RELACIONAL las ECA No serían precisas, pues toda la semántica precisa mente con opciones propias del modelo relacional. se estaría AFO RELACIONAL En el siguiente grafo relacional se refleja lodo lo obtenido: ~ CASO (ero. Nombre", Descnpoón, Milkn:..·, Nmilre_ 1 Mil lit'(. lB R. ,tC JUEZ (Nonm, ' Dirección, Fecha_NacO, R:ch'LEjer*) JDADANO ( ONI, Nombre, Dirección', Pmrinn,io*, Nombre_Partido', Puesto") recogiendo Fecha_Nac DA TE. Fecha_Ejcr DA TE. PRIMARY KEY (Nombre) ); (REATE T ABLE Partido ( Nombre Nombrc_ Válido, Sede_Central Dirección_ Válida UNIQUE. PRIMARY KEY (Nombre»; (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 NULL ON UPDA TE CASCADE _ 1; ~ARTIDO (Nomh~. &~Ie, 'élllfUI) ( UN Me' PIOOÓOlCO (N,rrbl Du'Uxuln,lirJda·. (1 M{' C'. 1IVIPlJCADO MNllbrl' J'arrido·) U.e' ,ti' , 8(' Me Figura 2./,22 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 RESTRICT ON UPDA TE CASCA DE. FOREIGN KEY (Nombre_Periódico) REFERENCES Periódico ON DELETE RESTRICT ON UPDA TE CASCADE RIPT EN SQL_92 :BATE :BATE ~EATE :BATE DOMA IN Nombre Válido CHAR(40); DOMAlN Dirección_ Válida CHAR(40); DOMA1N Tipo_Código CHAR(5); DOMAIN Tipo_DNI CHAR(9); ~ATE TABLE JUCl ( Nombre Nombre_ Válido, Dirección Dirección_ Válida, 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 PRIMAR Y KEY (DNT), ' _ ••• •••••••••••••••• ••••••••••••• 177
  • 95. , ..••.......•.••.....••••••••••••••••••••••••• ' 'X DISEÑO DE BASESDE DATOS' PROBLEMAS Rr.SI1ELTOS ORETGN KEY (Nombre_Partido) ON DELETE SET NULL ON UPDATE CASCADE REFERENCES ' ~~:;.:.I"- ---'~~I ~M()I)I,I.I 1)0 RELACtON/L ,~ 179 Wll ER E Periódico.Nombre Partido = .y yy' AN D Caso.Nombre Periódico = Periódico.Nombre: Partido Álgebra relacional n(·..... I'fllhf' 1),.-"""1'11''1.~'IIItn!,f'11m"'r,,_JlU," ~ '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 E ON UPDA TE CASCA DE. ~OREIGN KEY (DN1_Ciudadano) REFERENCES Ciudadano ON DELETE CASCADE ON UPDA TE CASCADE r~,. )llol.t""'n«CASO) .1 * rl~"",,,,,,(o',,m"l' P""ld.~·", (PERIÓDICO») ,. Jueces que investigan ·'YYY". ca sos en los quc hay implicados miembros del partido Sql SELECT DISTTNe'r Caso.Nolllbre_Juez FROM Caso, Ciudadano, Implicado WHERE Ciudadano.Nolnbre_Partido=' YYY' AN D Ciudadano.DNJ=Trnplicado.DN AND Trnplicado.eód_Caso=Caso,eód); , , :':REATE T ABLE TeléfonosPartido ( Nornbre Nombre_ Válido. Teléfono CHAR( 12), >RIMARY KEY (Teléfono), ::;OREIGN KEY (Nombre) REFERENCES ON DELETE CASCADE ON UPDA"rE CASC ADE ',.n,~r~_P,·rI4""~I'. '",h I_Ci udadano ÁIAcbra relacional n '1.",,1',,· '''''1 (nC'"J """,h" .J,"" (IMPLIC ADO)*(nll'il( Partido ( CASO) ON ..mhr,' 1'.lIld , ... * (Il n,'11. ('"" ('10'" ,(el u DA DANO»») 1: PR()BI ..EMA 5: COMISARÍA CONSULTAS Enunciado l. Implicados (y partidos en que militan) en el caso "XXX", Se desea recoger en una base de datos información acerca del funcionamicnro Interno de una comisarfa de policía. Sql Se consideran los siguientes supuestos: SELECT Ciudadano.DNI. Ciudadano.Nombre_Partido FROM Implicado, Ciudadano WHERE Irnplicado.CódCasoe' XXX' AND Itnplicado.DNI_Ciudadano=Ciudadano.DNl: En la comisaría trabajan una serie de policías (DNI, nombre. pueden desempeñar funciones distintas: administrativos, agentes. etc. Álgebra relacional que Cada policía tiene un único jefe, aunque un policía puede ser jefe de varios. nIlNI. Nombre1'lJrll~"(CIU DADANO)* 2. Casos descubiertos categoría), nIlNI_Clu~udun,,(o(','i<I_('u",_'xxx,(IM PLIC ADO)) , 'EJ1.I¡~cornisarta ex iste un arsenal de armas. Cada arma está identi ficada por un ,odlgO UIlICO. pertenece a una clase y tiene un nombre determinado. por los periódicos afines al partido "YYY". Sql SELECT Caso." FROM Caso. Periódico Cada pollera puede utilizar una o varias tirillas en un momento determinado. Es 1I,llpOrtante onocer el grado de habilidad (puntuación de 1 a 10) de cada policía con C ',Iua una de las armas que utiliza. •
  • 96. IX() DISEÑO DE FIASES Dh DATOS. PROBl.eMAS . Ro" RESUELTOS Un delincuente (DNI, nombre, teléfono) es arrestado por uno o varios policías. 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 lo instruye); interesa saber cuál es el principal cargo (robo, homicidio. eic.) que se le imputa a un delincuente en cada delito en que está involucrado. 2,1' 'vIOI)f,I.Af)(} Rf,LACIONAI. lA COMISARÍA como relaciones, pero hemos de tener en cuenta que estamos modelando 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íamos almacenar los datos del arsenal sería aquella en la que las armas pudieran almacenarse en distintos arsenales. De forma análoga. ¡,i existieran distintas comisarías deberíamos planteamos crear una relación para almacenar i formación referente a éstas. Sin n embargo. no ocurre ni lo uno ni lo otro. y tanto la comisaría como el arsenal son umcos (o al menos no es significativo que no lo fueran). ARMA (Cód Anna, Clase. Nombre_Arma) Uno o varios policías investigan cada uno de los casos. , POI,IClA Se pide: a 111' Esquema relacional IDENTIFICACiÓN DE LAS REIJACIONES BÁSICAS calabazo tcádigo y ubicación). Los delincuentes están involucrados en casos (código de lo instruve¡". ('(lSO y jusgado que 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 suponemos que 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 que alll1aCenarcm~s el juzgado que lo instruye. Podríamos habernos planteado haber diseñado un Juzgado COIlIOuna relación. Sin embargo. puesto que cada caso lo lleva un único juzgado, y no disponemos de ninguna otra información acerca de los mismos tcomo, por ejemplo. su dirección. teléfono, etc.), hemos decidido modelarlo como .aributo. CASO (Cód Caso. Juzgado) DELINCUENTE detenninado" . ARMA (identificada según nos especifican. por un código) será otra relación '.y o tendrá como atributos, de , momento, la clase y e I norn b re de la mi e a misma. N lo será .' SII1 embargo, ARSENAL. ni COMISARÍA. Se podría pensar en ARSENAL . varios A cada delincuente que permanezca en la comisaria .H! le encierra en IIn "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 esta identificada por 1111 código úllico. pertenece a una clase y tiene UII nombre Tras una primera lectura del enunciado! se ~etec~an algunas relacione de ~ornl'~ s 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 fu nción que realiza. La funció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 un policía puede realizar varias funciones. O policias. 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 es le inculpado el delincuente "Ellnono". • Todos los datos del jefe del policía que utiliza el arma W 1 234. (DNl Poli. Nombre_Poli, Categoría, Función) "VII delincuente (I)NI, nombre, teléfono) es arrestado por uno Diseñar el esquema relacional indicando claves primarias y ajenas. nulos. opciones de borrado y modificación, etc. • Códigos de las armas que utilizan los policías que detuvieron delincuentes que están en el calabozo número 13. 181 CAI,ABOZO (DNI Deh, Nombre. Teléfono) (Cód Cala, Ubicación) ANÁLISIS DE LOS SUPUESTOS SEMÁNTICOS A continuación pasaremos a modelar los conceptos que se refieren a "enlaces" 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é armas Illlllzan 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. ' cl:lr: • •••••••• ii • ••••••• i ••••••••••••••••••• ••••••••
  • 97. ,2 DI~1::¡;;ODI'. BASES D~ DATOS: PROBl.EMAS RESUtLTOS "Cada polícta tiene . vanos " 1111 RA 1A único jefe, aunque IIn policta puede ser jefe de ,..--------------------'S.H. ~.( (DN! Poli. Nombre Poli, Categoría. Función, Jefe) .Se debería .implementar un di parador que obligue a que, en caso de que se s modifique el policía al que se le asigne un afina. se revise también la nota o nivel de habilidad del mismo. "Uno o varios polictas investigan cada uno de los casos". En los requisitos se nos especifica que uno o varios policías investigan cada uno de, los casos. ~u,pondremos, adem~s, que un caso puede estar siendo nvestigado por i ma~ de un policía. Por tanto, ne~~sltamos una relación intermedia cuya clave primaria este formada por la concatenacíón de las claves ajenas de las relacione POLICÍA y s CASO. Figura 2. J .23 Opciones de borrado y modificación RI<.MC' POLICÍA La opción de modificación será en cascada. y la de borr do restringido. a prohibiendo eliminar un policía que todavía tenga subordinados asignados. "Cado policta puede uúlizar 183 Reglas ECA El enunciado nos dice que cada policía tiene un único jefe. Esto lo modelaremos ncluyendo en la relación POLICÍA un nu evo atributo que identifique a su jefe. que erá clave ajena que referencic a la propia relación POLIClA. Llamaremos a este itributo, "Jefe". Supondremos, además, que todo policía debe tener un jefe, por lo que 10 admitiremos nulos en dicho atributo. POLJcíA 2.1: MODELADORELACIONAL (DNJ Poli. Nombn:_Poli, Categoría, Función, Jefe) B:C. M C o varioJ armas en IUI 1I1 01l1l.'1I/0 determinado. Es importante conocer el grado de habilidad (puntuación de I o 10) de cada policia con cada II/la de las orinas que utili:a ". IIna u( M (' CASO (Cód Caso. JU7gadol Debido a que los policías pueden utilizar varia armas en su tr bajo. no podemos s a almacenar esta información en la relación Policía. Si. además, cada arma pudiera ser utilizada por distintos policías, necesitaríamos una nueva relación que almacenara esta asociación. Supondremos, sin embargo. que cada arma es utilizada por un único policía. Propagarernos, por tanto, la clave de la relación Policía a la rclació~ Arma. corno clave ajena y s admitir valores nulos (esto es, to arma ha de estar asignada a in da uno y sólo un po licía). En esta misma relación incluiremos un atributo que almacene el grado de habilidad que tie con dicho arma el policía que la utiliza. ne Opcionesde borrado y modificación Las opciones de borrado y modificación serán en cascada Reglas ECA . ~I hecho de que cada caso debe e tar siendo investigado s corno mínimo por un ~hela deberemos recogerlo por medio de disparadores. Como no nos indican otra cosa. ~upondren:os qu~ u~ policía puede n estar asignado a ningún caso. y por tanto o no serán necesarios mas disparadores. ARMA (C6d Arma, Clase. Nombre_Arma, DNI_Poli, Nota) I B:R, 01 e ¡ Figura 2. J .25 BR.Me POLICíA (ON! Poli. Nombre_Poli. Caicgorta, Función. Jefe) Je' De~erno.s len~r cui~a~o a.la hora de borrar un policía, ya que puede ocurrir que l'~e~nosun caso sin .pollcla asignado. Este hecho también se controlaría medianre un 1¡~PIarador que no dejaría borrar ni al p olicía ni a la tupla que lo relaciona con su caso en a relación INVESTIGA. Figura 2. J .24 Opciones de borrado y modificación . No permitiremos borrar a un policía que tenga asigna d as amas restringido). y la modificación de aquél se propagará a éstas en cascada. (Borrad,' "Vil delincuente (DNI, nombre, lellfollO) es arrestado por pohcias '. 11110 1) varios .
  • 98. DISEÑO DE BASE DEIJA S rus: PROBLEM,.!:A~S..!:R~E.::!.S~U!.C~.L!::.·l~·O~S:...._ ...::()::..::R:'::',::'M~. Es necesaria una nueva rela ión análoga a la anterio para el caso de los arresto, c r lelincuentes que llevan a cabo los policías. El enunciado nos especifica claramente todo delincuente el) arrestado por uno o varios policías, es decir. que t do o ncuernc es arrestado. Esto no significa. evidentemente, que etemos modelando la s iica situación de un mund sin delincuencia, sino que únicamente guardarcmo-, o rmación de los delincuentes arrestados. SIn embargo, puesto que no se nos dice a en contra, puede haber p olicías que no hayan arrestado a ningún delincuente aremos, por tanto, una relación ARRESTA cuya clave primaria estará ormada por f , oncatenación de las claves ajenas de las relaciones POLIcrA y DELrNCUENTE. Z,I: MODEI.AOO CASO (Cód Caso. Juzgado) 11 INVOLUCRADO -, ARRESTA (Dni 11 DELINCUENTE 1 ( 1 C' (DNI Dcli, Nombre. Teléfono') c. M e pJ¡¡, Dni Figura 2.1.27 tuu. Fecha) 11l ('. r- ¡ DELINCUENTE ------1a <'. l e (l)Nf fJeli. Cód Caso. Cargo) r+: <,,,,,O,,,,n,_,_i _,_P -"o:.!,!li, Poli, Categoría, Función, Jefe) Nombre +L 1115 DELrNC~ENTE. Esta rela~ión tendrá además otro atributo que alrnacenara el cargo que se le Imputa a dicho deltncuenre en el caso. 1 SoR. M'C POLIClA RELACIONAL M'(' (DNI Deli. Nombre. Teléfono') Opciones de borrado y modíñcaclón Las opciones dc borrado y modificación serán en cascada. Reglas ECA Fif:urll 2./.26 Mcdrantc disparadores coni.rolaremos que no pueda haber delincuentes uivolucrudos en ni ngún caso. clones de borrado y modiflcaclén Las opciones de borrado y modificación serán en cascada. tlas ECA , sin estar . "" cada delincuente que pennGl/e"ca en la comtsuria .(' le eIlCI('I ra el! 1 111 ('{/I{/ho~(1 (l'fÍdiglJ y ubicactán J. Gil 1.'1calaho;o pueden estar encerradas I'anos delincuentes oo. Tendremos que controlar mediante di paradores que todo delncuente haya sido s i :stado por, al menos, un policía (o, lo que es lo misrno, que toda ocurrencia d la e .ción DELrNCUENTE está incluida en la relación ARRESTA). "Los delincuentes están involucrados en casos (código de caso y juzgado que lo 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" Al igual que los policías investigaban casos, lo que nos llevó a la creación de IJ ición INVESTIGA, los delincuentes están INVOLUCRADOS en dichos casos. L:I rántica que considerarnos es muy sim ilar, es decir, todo delincuente sobre el que iacenamos información está involucrado en al menos un caso (de hecho, como mos antes, está arrestado). En los casos, están involucrados varios o ninglin incucntes (de esta manera, se permite tener información acerca de los casO' mtras estén siendo inv estigados). Crearemos por tanto la relaciún v'OLUCRADO. cuya c lave será la concatenación de las claves ajenas de CASO) Por último. sólo nos faltaría por recoger en qu calabozo está encerrado cada é Jcltncuente mientras permanece en la comisarfa. En principio. un calabozo podría ~Iar vacío,.pero consideraremos (de forma bastante razonable), que todo delincuente nrrcstado (SI recordamos, todos nuestros delincuentes lo están) está encerrado en uno Y ,:110 un calabozo, Por ta~to, no será necesario crear ninguna elación auxiliar, sino que r PldrenlOs usar la relación DELINCUENTE para almacenar el calabozo en que ~ncuentra propagando el código del calabozo a dicha relaci corno clave ajena, ón se DEI~INCUENTE (DNI Deli, Nombre, Teléfono", Cód_Ca/a) r------------------_ CAI.ABOZO (Cód.Cala, B,R. M,e Ubicación) Figura 2, /.28 •••••• i.(.~ •••••• ••••••••••••••••••••••••••
  • 99. SCRIPT EN SQL-92 iones de borrado y modificación Las modificaciones en la relación CALABOZO se propagarán en cascada, y iderarernos que no se permite eliminar un calabozo mientras haya algún icuente dentro (cosa por otra parte bastante recomendable), es decir, IOl>borrados 1 restringidos. lfo relacional El grafo relacional completo se muestra a continuación. ARMA (Cód Arma, Clase, Nombre.Arma. Dni_Poli, Nota) I S·R. M:C ¡B:R. M e ~POL[C ÍA (Dni Poli, Nombre; Poli, Categoría, Función, Jefe) j lO 1:('. M'C INVESTIGA (Dni Poli, C6d Caso) , BC.MC CASO (Cód Caso, Juzgado) A • .... DEL NCUENTE roN! a.e, M:e Deli, Nombre, Teléfono', C6d_Cala) B:R. M:C r CALABOZO (Cód Cala, Ubic ación) I e-e, M.e ARRESTA (DNJ Poli, DN/ lle.M.C· o-u. Fecha) Figura 2./.29 CREATE TABLE P olicí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 ); CREATE TABLE Arma ( Cód_Arma Tipo_Código Clase CHAR(20) NOT NULL, Nombre_Arma Nombrc , Válido NOT NULL, DNI_Poli Tipo_DNI NOT N ULL, 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 TABLE Caso ( Cód_Caso Tipo_Código, Juzgado CHAR(20) NOT NULL, PRfMARY KEY (Cód_Caso) (DNI Deli, Cód Caso, Cargo) I CREATE DOMAIN N ombre_ Válido CHAR(40); CREATE DOMAIN T ipo_Código CHAR(5); CREATE DOMAIN Tip o_DNI CHAR(9); ); B.C.M:C INVOLUCRADO 2.1: MODELADO RELACtO:'o1AL 187 .,RA ~IA )tSEÑü DE BASES DE DATOS: PROBLEMAS RESUELTOS J: 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 ON UPDATE CASCADE ON DELETE CASe ADE, FOREION KEY (Cód_Caso) REFERENCES ON UPDATE CASCADE ON DELETE CASCADE Policía Caso :J Esta restnccién también podría recogerse mediante un dominio. I
  • 100. 2.1. MODELADO Rbt.ACIONAL DISEÑO DE BASES DE DATOS: PROBI EMAS R"-~UELTOS 189 Sql SELECT Nombrc_Poli FROM Policía, Investiga, Involucrado, Delincuente WHERE Poi icia.DNI_Poli=I nvestiga. DN I_Pol i AND Invcstiga.C6d_Caso=lnvolucrado.C6d_Ca~o AND Involucra.DNI_Deli=Delíncuente.DNI_Dcli AND Delincuente.Nornbree'El Mono' EA TE T ABLE Calabozo ( Cód_Cala Tipo_Código. Ubicación CHAR(20) NOT NULL. MARY KEY (Cód_Cala) EATE TABLE Delincuente ( DNT_Deli Tipo_DNI. Nombre Nombre_ Válido NOT NULL. Teléfono CHAR( 15), Cód_Cala Tipo_Código NOT NU LL. IMARY KEY (DNT_Deli), REIGN KEY (Cód_Cala¡ REFERENCES Calabozo ON UPDA TE CASCA DE 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 CASCADE ON DELETE CASCA DE. 'REIGN KEY (Cód_Caso) REFERENCES Caso ON UPDATE CASCADE ON DELETE CASCADE); :.EATE T ABLE Arresta ( DNT_Poli Tipo_DNI. DNT_Deli Tipo_DNI. Fecha DATE NOT NULL, lMARY KEY (DNI_Poli. DNI_Deli). IREIGN KEY (DNI_Poli) REFERENCES ON UPDA TE CASCADE ON DELETE CASCADE, )REIGN KEY (DN1_Deli) REFERENCES ON UPDATE CASCADE ON DELETE CASCADE); Álgebra relacional n 1'o",,,I>«_I',,IJ «n "NI_P"Io. (Fl UNIDeh. c,,,,_c.,,, (DELINCUENTE»» N"mhrc_l'oh (POLICiA» (INVOLUCRADO» 2. Todos los datos del jefe del policía que utiliza el afina W 1234. Sq! SELECT DNI_Poli. Nombre Poli, Categoría, Función FROM Policía WHERE DNI_Poli= (SELECT Jefe FROM Policía WHERE DNI_Poli= (SELECT DN1_Poli FROM Arma WHERE Cód Arma = 'W 1234'» Álgebra relacional n ONI (POLICIA)*( n D'II_Puh. (POLJCIA) )*( n 1<-1<' 0:>11 l'oh(<JCtd (ARMA))) - Arma:·WI2.W· Pnlo. "lnmt>",_Pnh. Ca'cguría. I'u",,¡r.n Policía 3. Códigos de las armas que utilizan los policías que detuvieron que están en el calabozo número 13. Sql Delincuente ONSULTAS Nombres de los policías que han investigado delincuente "El mono". algún caso en el que e inculpado el sté SELECT Cód_Arma FROM Arma WHERE DNI_poli IN (SELECT DNI_Poli FROM Arresta WHERE DNI_Deli IN (SELECT DNT_Deli FROM Delincuente WHERE Cód_Cala = '13'» • • * (Fl (',""('.• ,. ()NI_P.~,(INVESTTGA» * " *(n I)NI_I"''' (<JN"mhrc='EI mono' ~ •••••• a los delincuentes
  • 101. e'e ••• e • e •••••••••• ISERü DE BASES DE DATOS' PI{OBI tiMAS RE$Util. - ros I itA ·¡1A ... (Fl UNI rlo.·"(OC..I ,.1" p ...(Fl 0-;1 P"II( n 0-;1 PIl".n~I_I)d, (AR REST A» (DELINCUENTE»»)) RhLACIONAL 191 • Nombre de los peregrinos que han realizado el Camino de Santiago cuentan solo aquellos que han llegado a la localidad de Santiago). gebra relacional n ¡-..d_A.. ". « n DNI 1'.. 11(""U A,mu (ARMA)) '.'e"•• '.'.'.". 2 l : MODELADO (se • Nombre y Comunidad Autónoma albergues para peregrinos. • Número de albe rgues Camino Aragonés. IBLEMA 6: CAMIN() DE SANTIAGO por localidad de aque llas localidades pertenecientes ociado a la primera te apa del Discusión del enunciado ...a Consejería que no posean IDENTIFICACiÓN DE LAS RELACIONES BÁSICAS de Cultura de la Comunidad Gallega ha de idido guardar c nación referente al Camino de Santiago en una Base de Datos. La información esea almacenar es la siguiente: Teniendo en cuenta qu la peregrinación a Santiago se puede realizar por e tos caminos (el camino francés, el aragonés, ctc.). se quiere guardar informa ción a de éstos. Esta información se refiere al nombre (que los identifica), el número lórnctros totales y el tiempo estimado para la realización del camino. Cada camino se compone de distintas etapas que se identifican por un número lativo dentro dc cada camino. y para cada una de ellas se desea saber el número lómctros, el tiempo estimado y las distintas localidades por las que pasa. Además iere recoger la localidad de salida y de llegada de la correspondiente Clara. "Teniendo en cuenta que la peregrinacián a Santiago se puede realizar por distintos caminos (el camino francés, el aragonés, etc.}. se quiere guardar infonnacián acerca de éstos. Esta informacián se refiere al nombre (que los identifica), el Ilú/nero de kilámetros totales y el tiempo estimado para la realización del camino." .Para recoger. ~a información acerca de os distintos caminos de peregrinaje, se l requiere una relación que los contenga, se crea asf la relación CAMINO que tendrá los atributos "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 esta relación será el atributo "Nombre", pues identifica de manera unívoca a cada uno de los posibles caminos. Ninguno de los atributos de esta relación podrá contener valores nulos. Se recogerán las distintas localidades por las que pasa cada camino La . mación que se recogerá de cada localidad será: nombre de la misma, Comunidad noma a la que pertenece y código postal. Se debe tener en cuenta que pueden ir localidades comunes a distintos caminos. CAMINO (Nombre. Kilómetros_T. • 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 desea saber el/tú/llera de kilámetros, el tiempo estimado y las distintas localidades por las que pasa. Además se quiere recoger la localidad de salida y de llegada de la correspondiente etapa." Se desea guardar información sobre los albergues para peregrinos que existen en las de las localidades que perte necen al camino. Esta información consta de: ore del albergue, capacidad y precio (si lo tuvieran). Por último, se quiere registrar los pe regrinos que realizan el camino. Para llevar control cada uno de e llos 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 ll egaron a dicha idad. Diseñar el esquema relacional indicando opciones de borrado y modiñcación, ele. claves primarias y ajenas, Efectuar en álgebra relacional y en SQL las siguientes consultas: Tiernpo T) La información acerca de la distintas etapas que cornponen un camino de s ~eregrinación, se recogerá en una nueva relación E TAPA que contendrá los atributos No~brc_C" (nombre del camino). "Núme ro" (número de orden de la etapa dentro del cam.lno). "Kilómetros P" (kilómerros de la etapa), "Tiernpo P" (tiempo estimado de . rcalrzaclón de la etapa), "Ciudad_s" (ciudad de salida) y "Ciudad LL" (ciudad de llegada). Ninguno de los atributos de esta relación podrá contener valores nulos. ' nulo'. " La clave primaria de esta relación estará formada conjuntamente por los atributos Nombre -C" y "N'umero " , pues identi filean de manera unfvoca a cada una de las . 1 enn POSIblesetapas. De este esquema de identificación se deduce que no puede haber ,
  • 102. DISEÑO tnllaría de una clave alternativa, por último si se supone que podría no conocerse dirección de un determinado peregrino, el atributo "Dirección" admitiría nulos. ipas comunes a los diferentes caminos, por lo que si hubiera etapas de diferentes minos con el mismo recorrido, se considerarían como diferentes. ETAPA (Nolnbre e, NúmerQ, Kilólnetros_P, ~., . .10DELADO REI.ACIONAL 19J R' MA 1)". BASES DE DATOS: PROBLEMAS R~Sll['LTOS PERI<:GRINO (Número TiernpcP, Ciudad_S, eiudad_LL) la 1,NombreCompleto, Dirección) Además, corno dice el enunciado. se debe registrar las ciudades por las que va pasando cada peregrino. esta información no se podrá recoger 1'610 con atributos ni en la relación PEREGRINO ni en la relación CIUDAD (pues como máximo se podría recoger una. ciudad en cada peregrino o un peregrino en cada ciudad). se precisará una nueva relación que se comentará en el siguiente apartado. •Se recogertin I(lS dlstlntas localidades flor 10. que pasa cada calrlillo. UI infannocián 'lile Sé recogerá de ClIda localidad serd: nombre de la misnut. CVIYIII/lidad AlIlólloll1a a la que pertenece y código postal. Se debe tener en cllenta que pueden existir localidades COlnlllles a distintos ("allli/los. N Se precisa una relación CIUDAD que recoja la información de las distintas calidades 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 que enenece 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 haberse ensado en elegir el at ibuto "Código_P", sin embargo para ello, debería asegurarse r ue no hubiera localidades que compartieran el código postal. por ste motivo no lo e Jnsideralllos c lave (ni primaria ni alternativa). Ninguno de los atributos de esta elación podrá lomar valores nulos. , , ANALISlS DE IJOS SUPUESTOS SEMANTICOS •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 desea saher el nlílllero de kilámetros, el tiempo estimado y las distintas localidades por las que pasa. Además se quiere recoger la localidad de salida)' de llegad« de la correspondiente etupu." Un camino tendrá varias etapas. pero cada etapa corresponde a un único camino. -c,sahe además que la identificación de a etapa está formada a partir de la del camino, l 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 . CIUI)AD (Nonlhre. Comunidad Aut. Código_P) •Se desea guaulur i/lfornlaciáll sobre IOJ albergues para peregrlllils (/'1(' existen ('/1 lllglllla~ de las localtdades que pertenecen al ca/lIIlIO. Fsta infonnacián ('(",1/0 de: nombre del albergue, capacidad." precio (ll lo M~('A~IJN() (Nomb[~ .. Ktllímelro~_ .Tiernpo J T 1 tuvieran] ." Para recoger la información sobre los albergues, se requiere una nu eva relación LBERGUE, sus atributos son "Nombre_A", "Capacidad", "Precio" y un atributo Ciudad". La clave primaria de A LBERGUE será "Nombre A" m ientras que el único itributo que puede tomar valores nulos será "Precio", pues éste puede n siempre ser o '" I..!.. Figura 2.1.30 Opciones de borrado y modificación conocido. ALBERGUE (Nombre e L'TA I'A (Nombre N ~i.!.!.!l.!..S.~.,~U!!!·lnne!<.!r:ll.ul lórnclro_P.Ticmpo P, C'iudad_SCludnd_LI) Ki A. Capacidad. • Precio, Ciudad) Veamos qué sucede con las opciones de integridad referencial de la clave aiena en el c aso en que se borre un cami 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. <:1 rmsmo r:nOIIV~:cuando se modifique el nombre de un camino habrá que realizar ,1 rmsma modificación en todas las etapas que le componen. En ambos casos. tanto en el borrado corno en la modificación, las opciones de integridad referencial serán en ~ascada. • Por último, se quiere registrar los peregrinns que realizan el camilla. Para llevar 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 las localidades por las que ha ido pasando (,1 lo larga del recorrido )UII(O cnll I?I dto que llegaron a dicha localidad." i. 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_CoITlplelo y "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 • Reglas ECA Puede recogerse mediante disparadores la restricción que se deduce al razonar nhrc el uruv crso de di . e iscurso y d ase cuenta de que un camino tiene que tener al .' r •• ~ •••••••• • • •
  • 103. 4 DISEÑO DE BASES DE DATOS: PROBLEMAS RESUELTOS enos una etapa. Así, por ejemplo, no podría modificarse en la relación ETAPA la ave ajena "Nombre_C" cuando la tupla que se va a modificar sea la última de algún . 2 1. }.¡10DELADO RELACIO~AI. 195 un recorrido) ello 'ó dependerá del tipo de tratamiento que se prefiera real' Izar. por Otra .. dif parte, 1a mo I icaci n en ambas claves ajenas será en cascada . rrmno. Reglas ECA Es interesante además observar cómo el cálculo, tanto de los kilómetros del unino 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ía ensarse en la inclusión de disparadores que realizaran estos cálculos. •Se recogerán las distintas localidades por las que pasa cada carnillo. La informaciá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 ell cuenta que pueden existir localidades COI/lunesa distintos caminos." Para reflejar el recorrido de los distintos caminos podríamos pensar en recoger on dos atributos "Nombre_C" y "Número" en la relación CIUDAD la etapa a que orresponde esa ciudad. sin embargo esta solución asume que por esa localidad sólo uede pasar un camino y el enunciado afinna que puede haber distintas localidades omunes 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 que sta pertenezca. Los atributos de la relación RECORRIDO son "Nombre_C" (nombre del arnino), "Número" (número de la etapa dentro del camino) y "Ciudad"; los dos mmeros atributos determinan la etapa del camino. Todos estos atributos serán no uilos y la clave primaria será el conjunto de los tres atributos. además, se tendrá que os dos primeros son una clave ajena que referencia a la relación ETAPA, mientras lue el tercero es una clave ajena que referencia a la relación CIUDAD, pues tanto la stapa como la ciudad tienen que existir previamente. . De lnane~a siJni.lar a lo que ocurría entre los caminos y las etapas, puede reco~e.rse mediante disparadores la restricción deducida de nuestro conocimiento del dOJ_O,n,o dls.curso de que toda etapa ha de recorrer corno mínimo dos ciudades" de ~ongen y dcstl~.o). Así, por ejem.plo, para poder crear una nueva etapa debería ase~u~ars~ prevla~l~~~e la presencia de l.as correspondientes ciudades de salida y llegada. SI la restnccion se asegurara mediante programa, la creaciIon en caso d e que . . . no eJUs~l~ran las Ciudades debería realizarse de manera simultanea en la is transaccion. rm ma . . Por otr¡~parle, si ~n la BD se v~n a recoger solamente ciudades que pertenezcan a algún reco.rndo. debería asegurarse igualmente mediante disparadores la restricción de que 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 ciudade In~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. ETAPA (Nllmbrf' C. Númeru, KilomelJo_P. iernpoP, Ciudad S, CiudadLl¡ T ----a·R.,1:r U.M,M.r l _1 '-..j~~IUOAD C (Nombre. Comunidad Aur, Código_P) ...-.ETAPA (Nombre e, Número. Kilómetro_P. Tiempo.P, Ciudad_S. Ciudad_LI) Figura 2./.32 L1UDAD ( Nombre, Comunidad_Aut. Código_P) ()pciones de borrado y modificación B:C.MC B eMe En ambos casos. las opciones de integridad referencial serán borrad inaid rno se pe 'f /.b . . restnngl o o fin I Ira orrar una Ciudad mientras que haya una etapa que se' .. fi li en ella) y modificación en cascada. . mrcie o ina Ice Figura 2.1.31 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 . . POdrf? considerarse una alternati va que elimina la necesidad de las do' l' dJenas "Ciudad S" "C' d d LL"" '. s e aves recorr~rá' -' y IU a , S asumi mos que en cada recorrido una ciudad se I ijlribul "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á " Salvo que ve admineran etapas circulares. claro e~tá
  • 104. 1"6 2.1. MODELADO RELACIONAL DISEÑO DI-! fiASES DI-! DATOS PROBLEMAS RESUELTOS aquella que tenga orden l. mientras que la ciudad delIeg~da se~á aquella que tenga el mayor valor de orden en cada etapa. por lo que no sena ~reclso man~ener su v~l r o explícitamente en la relaión ETAPA, pues am~os atributos podrían calcular~e c mediante disparadores a partir del atributo "Orden?". Dado que no ~~ h~c~ ~1enCI()n explícita en el enunciado a este orden, nos quedamos con la solución inicialmente propuesta. •Se desea guardar III/orlllaCIÓ/l sobre 105 albergues para pere!/.~"I(/l que existen e/l alguna f de las localidades que pertenecen al ca/lIl~lo. ~.,/a infonnacíán C(//I~/(I ele: nombre del albergue. capacidad )' precio (SI lo tuvieran} ." El atributo ciudad en la elación ALBERGUE detenninaría para cada alhe~gue la r ciudad a la que pertenece. se trata por tanto de una clave ajena que referencia a la relación CIUDAD. rCIllDAD (NplTlhrc, Comuni(J¡,d_Aut, aquellos peregrinos que han pasado por e lla. En esta rela ción se podrá además recoger la fecha en que este paso ha ucedido. s La relación CAMINO_PEREGRINO tendr los atributos "Número_l" (número á de identificación, clave ajena que referencia a PEREGRINO), "Nombre_C" (nombre de ciudad. clave ajena que referencia a C IUDAD) y "Fecha Paso" (fecha en que el peregrino identificado mediante el atributo "Número_l" pasa por la ciudad identificada eu "NombrejC"). La clave primaria de esta relación la constituirán el conjunto de l s o tres atributos. por l que ninguno de ello podrá ser nulo. Si no se hubiera incluido el o s atributo "Fecha Paso" como parte de la clav primaria, podría haberse dado la e ,iluación de que el mismo peregrino realice varia veces el mismo camino (e incluso s caminos distintos que compartan la misma ci udad) y no se podrla recoger más que uno de sus pasos por esa ci dad. u PEREGRINO (Número 1,NombreCompleto, Dirección") Código_P) . ALU E Re II E t NOlnbre A. Capacidad._Prcclo*, In.c. vr.c IBI"1.C CAl'IINO_PEREGRINO Ciudad) (Nrí/ne/'o /. NO/libre C. réchil Paso) Il <'. M Figura 2.1.33 Opciones de borrado L y modiñcacién La anterior restricción de integridad referencial podría tener opción de borrado en cascada o re stringido dependiendo de la semántica pretendida, mientrs que la a modificación se hará en cascada. ReglasECA Si suponemos que n puede darse la posibilidad de ciudades sin albergues. podría o controlarse con disparadore la existencia de al meos un albergue en cualquier s n ciudad . • Por último, se quieren registrar los peregrinos que realizan el canlÍno., Para llevar este con/rol cada lino de ellos lleva un camet que consta de tllI nlllllero de tdentíficactán. el nombre completo del peregrino, Sil dire~ciólI y la,s localidades por tas que ha ido pasando " lo largo del recorrido )11/110 con el dta que llegaron r1 dicha localidad. • Para registrar las ciudades por las que va p.a.~ando cada pere~rino se. ~rea UI~a nueva relación CAMINO_PEREGRINO q recoja por cada peregrino t~das aqllcll,l~ ue ciudades por las que éste ha pasado y respectivamente, p ara cada CIudad, todos '1, CIUDAD (Nombre, Comunidad Au]. Código e PI Figura 2.1.34 Nótese cómo aunque se han recogido la ciudades por las que cada peregrino ha s pasado, no se ha recogido explícitamente el camino realizado por cada peregrino, si se hubiera querido registrar los caminos queun peregrino ha realizado (podría realizar más de uno) y los peregrinos que han reaizado un camin habría de i cluirse una l o. n nueva relación con esa información y que tendría claves ajenas a las relaciones t PEREGRINO y CAMINO. y modificación Opciones de borrado Las opciones de integridad referencial en ambas claves ajenas podrán ser: la de horrado tanto en cascada como restringido, mientras que la de modiflcación será en cascada. Re~las RCA Podría controlarse mediante disparadores la restricción de que todo peegrino r dehería haber pa sado por al menos una ciudad, es deci r, que por cada tupla en la Naturalrnente "orden" nll dcbena admitir nulos. "e e~ .- 197 . J V .) ') ) J ~ ~ ) a ,'.J ) - J :) j ~~ a D .•••••••••• 1 - <.) ) ..... ..) 'l) ~).) )
  • 105. •••... •..••••••• ' 2.1: MODELADO RELAC10NAL DISEÑO DE BASES DE D/ ros PROBLI:MAS RESUELTOS I .. CAMINO ción PEREGRINO haya al menos una tupla en la re acron . . _ fuera aplicable . por ejemplo SI los > cGRINO En el caso de que esta hirpÓ· tesis no . • u:. .' .' so pues scnan egrinos se registraran antes de iniciar el ca~lno. no. sena precn • . 1isibles los peregrinos que no han pasado por ninguna Ciudad. CREATE TABLE Ciudad ( Nombre Nombre_ Válido, Comunidad Aut Nombre Válido Código_P CHAR(5) NOT NULL. PRIMARY KEY (Nombre) _ _ ): :.AFO RELACIONAL om re JiTAPA • u .. _ -. R.R.M.( ~ .. J'iUDAD (Nonlbre .• Comunídau_Aul. CÚuígo_P) " ij (' M'( .RECORRiDO , u C'M:l 1 ('.r-.,(' (NlJwl)/<!...Cltilllll'ro, (';II(/(Id) aeM1 AL8ERGUE (N(llllbrt; A. Cnpucidad, Precio". CIUdad) . 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 CASCADE ON DELETE CASCADE. FOREIGN KEY (Ciudad_S) REFERENCES Ciudad ON UPDA TE CASCADE ON DELETE RESTRICT, FOREIGN KEY (Ciudad_S) REFERENCES Ciudad ON UPDATE CASCADE ON DELETE RESTRICT ): PEREGRINO (Núlll~ru 1. Nombrc_Complelll. DIrección") i CAl'UNO _PEREGRINO lurlc (Número 1,Nombre C. Fecha Paso) a.CMe Figura 2.1.35 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) ): 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 CASCADE ON DELETE CASCADE. FOREIGN KEY (Ciudad) REFERENCES Ciudad ON UPDATE CASCADE ON DELETE CASCADE 1: CREATE TABLE Albergue ( Nombre_A Nombre; Válido, Capacidad INTEGER NOT N ULL. Precio INTEGER. ) Ciudad Nombre_ Válido NOT NULL, I RIMARY KEY (Nombre A), I'OREIGN KEY (Ciudad) REFERENCES Ciudad ON UPDATE CASCADE 199
  • 106. o 2.1. ~ODELADO DISESO DE BASI,S DE DATOS· PROBLEMAS RESUI:'.I.TOS (SELECT DISTINCT ON DELETE CASCADE RELACIONAL 201 Ciudad FROM Albergue) Álgebra relacional REATE TABLE Peregrino ( Número 1 lNTEGER. Nombre _Completo Nombre., Válido NOT NULL, Dirección CHAR( I00), RIMARY KEY (Núrncro.j) 3. Núrnero de albergues Aragonés. por localidad pertenecientes a la primera etapa del Camino Sql SELECT Nombre. Count(Nombre_A) FROM Ciudad. Albergue WHERE Ciudad.Nombre=Albcrgue.Ciudad GROUP BY Nombre 'REATE TABLE Camino_Peregrino ( Número_1 INTEGER. Nombre C Nombre_ Válido. Fecha Paso DATE. 'RIMJRY KEY (Número_l, Nombre_C. Fecha Paso), =OREIGN KEY (Núrnero jl) REFERENCES Peregrino ON UPDA TE CASCADE ON DELETE CASCADE =()REIGN KEY (NombrcC) REFERENCES Ciudad ON UPDATE CASCADE ON DELETE CASCADE , Álgebra relacional (fIN,,"'h u-. N.1l11>r"_,,«CIUDAD)(ALBERGUE) AGRUPACIÓN * ClJENT A(Nornbre_A) POR (Nombre), I: PROBLEMA 7: PROYECTOS DE INVESTIGACIÓN CONSULTAS Enunciado 1. Nombre de los peregrinos que han realizado el.Canlino de Santigo (se cuentan sólo aquellos que han llegado a la Localidad de Santiago). En la Universidad Carlos TII se desea llevar un control sobre los proyectos de investigación que se desarrollan. Para ello se decide emplear una ba de datos que se contenga toda la información sobre [os proyectos. departamentos. grupos de mvcstigación y profesores. Esta información se detalla a continuación: Sql SELEC'r Nombrc_Cornpleto FROM Peregrino, Carnino_Peregrino. ,. WHERE Peregrino.Número_1 = Carnlno_Pereg~lno.~u~ero_l AND Camino_Peregrino.Nombre_C= San tiago Un departamento se identifica por su nombre (Informática, Ingeniería. etc). Tiene IIl1a sede situada en un determinado campus. un teléfono de contacto y un Director. que ha de ser un profesor de esa Uni ersidad. v Álgebra relacional nNlunt'lrc "-""'P 1 r- «PEREGRINO) ~'hl 2. Nombre y Comunidad . para peregrinos. * (ON",n1>r< c.~Jnll"~,,{CAMINO_PEREGR1NO)) Autónoma de aquellas localidades que no posea N albergue' Dentro de un departamento se crean grupos de investigación. Cada grupo tiene un nombre único dentro del departamento (pero que puede ser el mismo en distintos dC~art.amentos) y está asociado a un área de conocimiento (bases de datos, inteligencia <lMlfielal. istemas y comunicaciones. etc). Cada grupo tiene un lídcr que ha e ser s d profesor de la Universidad . 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. Sql SELECT Nombre fROM Ciudad WHERE Nombre NOT iN • te. ,.le -~~ ••••••••••••••••• f"::!
  • 107. 10~ DISEÑO OE BAS¡",SDE DA TOS: PROBLEMAS RESUEL • k' ~t- ros ' un código único.P un Cada proyecto de , mvesugaci 'ó' llen u.n nombre n e , ' inació or otro resupuesto fechas de ,micro y tcrmmaci n Y un grupo que lo desarrolla, ,d P .' . ' progr a I . Dentro . de cada programa ca a nas lado puede estar financiado por vanos '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 vario proyectos, En cada ~royec~ ~~ in~?rp~ra s en una determinada fecha y cesa en otra, teni endo una delermlnada e icacion en horas a la semana) durante ese período, , Diseñar el esquema re1aciona I indicando claves primarias opciones de borrado y modificación. etc, y ajenas. nulos. ~.I: Ñ10DELADO IU,',LACIONAI ~o,' Del anélisis de este párrafo se deduce la existencia de la relación GRUPO, Como el nombre del grupo es único sólo dentro de cada departamento. la identificación de cada grupo requiere 10l> atributos "Nombre_O" y "Códign D". GRUPO (Nolnhre G, Código D, Área. Lfdcr*) Por los mismos motivos que en el caso anterior podernos admitir que el atributo Lider tome valores nulos "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/ el que desarrolla su labor y proyectos en los que trabaja, " Tenemos una nueva relación PROFESOR, cuya clave primaria es "Dbll". pues es el que identifica unívocamente cada ocurrencia de la relación, Efectuar además en álgebra relacional y en SQL las siguientes consultas: • Profesores que trabajan en el grupo del prestigioso científico "J uan Pérez". • Programas que financian los proyectos del grupo que dirige ese famoso profesor. Discusión del enunciado IDENTIFICACiÓN DE LAS RELACIONES puede admitir valores nulos, al igual que el atributo Grupo, pues pode mos considerar que cuando entra un profesor nuevo, todavía no se le ha asignado grupo, BÁSICAS "Cada proyecto de investigacián nene presupuesto, fechas de inicio y terminacián . lodos los datos anteriores necesitamos la relación I macenar Para a .. ' d d nto Ade maDEPARTAMENTO, cuya clave pnrnana será el nombre e epartame . , ' .... ,debernos " incluir una nueva rel acion SEDE que almacene los datos sobre las distinta. " sedes de la Universidad ("Campus" y "Nombre_Sede ), SEDE (Nombre (Código D, Teléfono, Director") Sede, Campus) :<;:~ Podemos considerar que el atribut "Director" pued~, admitir nul~s. _.y de o forma permitir introducir un departamento de nueva creacion al que toda VI U no S haya asignado ningún director, c: ' departamento SI.' crean grupos de i El /lIVeSIIR(lel 'ó11. 1 d (1 xrllPO ( , tiene 1111 nombre líllien dentro del departamento (pero que puede ser el.'TlI.WIIO ..Dentro de 1111 , partamentosl l' e~tá asociado a 1111 área de CU IIOCllIl/elllO e1isuntos - d e, ., etc) b inteligencia artrjieial, sistemas y eO"'lIllIeael(llIt',~, ' . I ( ases te d (ItOI ., U' 'd d " Cada grupo tiene /1" líder que Ira de ser profesor de la 11I1'erSIti • en No debernos incluir Proyectos corno atributo de la relación PROFESOR, puesto que un profesor puede trabajar en varios proyectos a la vez y por tanto sería un atributo rnultivaluado que no está permitido en el modelo relacional. Adernás podernos considerar que el atributo "Experiencia" "VII depurtamenta se identifica por 5/1 nombre (1IlfonnáticlI. Ingenieria. etc J" Tiene tilia sede situada en UII deterrlliTlado e(lIllpl~S, 1111 telé~ono de COlllaCIOy 1111 Director, que ha de ser 1111 profesor de esa Universidad. DEPARTAMENTO PROFI:<:SOR (DN!. Nombre Prof , Titulación, Experiencia*, Grupo") 1111 _I' 1I011lbre, /111 cádigo único, UII grupo que lo desarrolla", UII , Tenernos una relación PROYECTO donde la clave primaria es "Código_P" y al Igual.que la anterior, no podernos incluir el atributo Programas. pues éste sería multivaluado, lo que tría en contra de l s elementos permitidos del modelo relacional. o Además. .. podernos considerar el nombre del proyecto como clave alternativa , . pue~, n ~nnclpro se puede considerar único, Los atributos "Presupuesto" y Fecha de e termmación ("P _Fin"), a priori pueden ser desconocidos, por lo que pueden admitir lalores nulos. PROY¡':CTO (Código P, Nonlbrc_P, Presupuesto*, F_fni. F_Fin •. Grupo) "Dentro de cada programa cada provecto tiene 111/númern asociado v una (',,"ri(/ad de dinero financiada (por ejemplo, el proyecto "BDC _ Ra,,:es de Datos 111/Colores" tiene el IlIílllero 31/3 dentro del programa "Avudas al Pobre Investigador" que le financia C(/I/ 30.000 pesetas). .. . •
  • 108. 2.1: MOI.)~,LiDO RELACIONAL 20_¡ DISEÑO DE BASES DE DATOS: PROBLEMAS RESU,"LTOS 205 E~iste una interrelación entre DEPARTAMENTO y PROFESOR, que se efectúa a través de la clave ajena "Director", de la relación DEPARTAMENTO. como se muestra en la figura. Tenemos la relación PROGRAMA, donde en principio, pod mos considerar el e número de proyecto ("Número_P"). junto con el nombr del progr~ma e ("Nolnbre_Prog") corno clave primaria, puesto que un proyecto puede ser financiado por varios programas. L. PROGRAMA (Nornbre Prog. Número p, Financiación) DEPARTAMENTO (Numbre I 11 '.ll ~ROFESOR~. ANÁLISIS DE LOS SUPUESTOS SEMÁNTICOS p, Scd~TeJéfono.Dtrcctor+¡ Nornbre Prof Tuulacrén", Experiencia". Grupo") Figura 2.1.37 ..VII departamento SI! identifica por Sil nombre (Infonllálica. lngenierta. etc). Tiene ulla sede situada en '11' determilla(/o campus ... ''. Opciones de borrado y modificación 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écnica Superior tiene, entre otros, los departamentos de Informática y Maten1á~icas: Esto IO~ obliga a introducir una nu eva relación UBICACIÓN cuya clave pnrnana será la concatenació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 cual Si se .elimina un profesor director de algún departamento, se debe controlar que no s: el~n1Ine.el departamento, por tanto el borrado debe ser con puesta a nulos (BN) o restringido, sin embargo la modificación puede hacerse en cascada. "Dentro de ~ada dep~rtalllento se crean grupos de investigacián ..., además cada grupo tiene UIl lider que es UII profesor ... Se desea conocer el grupo al proviene. que pertenece cada profesor ''. '---'S'EDE (f'!olnhre Sede, Campus) 11C.M UBICACIÓN Por un lado. debemos interrelacionar DEPAR'rAMEN1'O y GRUPO. Esto se hace J I.ravés.del atributo "Código D", de la relación GRUPO, que es clave ajena que referencia a DEPARTAMENTO. e Secle N /lIbre D (No/nb . Por otro !ado debemos relacionar GRUPO con PROFESOR, a través del atributo l.íder, clave ajena de la relación GRUPO. que referencia a PROFESOR. O·C.M:C ~OEPARTAMENTO (Nombre Q Teléfono, Director") p Po.r,último. y puesto que todo profesor pertenece a un grupo, debernos relacionar J'~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 grupo Nombre_G ) y el departamento al que pertenece el grupo ("Código_D"). Figura 2.1.36 Opciones de borrado y modificación Las opciones de integridad referencial de ambas claves ajenas pueden ser en De esta forrna el subesquema relacional queda de la siguiente forma: cascada. ~"":._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) , .) r Reglas ECA _.. I ... GRUPO r--- Si consideramos que todo departamento tiene que tener al menos una sede y que en cualquier sede al menos hay un departamento, debemos asegurar e~ta' cardinalidades mediante disparadores. ,.... todo deportamento universidad. " tiene U/1 I (Nombre ..__. PROFESOR ... director que ha de ser prufe.·()r de la (DNJ. IB:C,M.C Gt{o/nbre D, Área.Lídet*) _jTn N 0111 b re I N.M J> ro, f. T'itulucién. Figura 2. J .38 e E o e ' .' t: , (:~o (~) o , · : .~.e·.e~e e e e e •• ",e• e e. e e e e e B :-.I e .M e E xperiencia lll:N.M:C -. C;'I[JO")
  • 109. 206 DISEÑO DE [JASES DE DATOS: PROBLEMAS RESUELTOS Entre las relaciones DEPARTAMENTO. referencial que impide la creación de las SQL_92. Este problema se puede solucionar posteriormente modificarlas añadiendo las como se muestra en el script. 2.1: MODELADO RELACIONAL GRUPO y PROFESOR. existe un ciclo mismas según las especificaciones del creando las tablas sin las claves ajenas y restricciones de integridad referencial. 207 Cada proyecto de investigación es desarrollado por un grupo. por otra parte, un mismo grupo puede llevar a cabo varios proyectos. La manera de hacer constar este hecho es considerar el atributo "Grupo" de la relación PROYECTO como clave ajena que referencia a GRUPO. Opciones de borrado y modificación Opciones de borrado y modíflcacién Si se elimina un departamento n tiene sentido dejar los grupos pertenecientes al o mismo, por tanto el borrado se hace en cascada (BC), al igual que la 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 o modifiquen todos los proyectos que llevaba dicho grupo. (MC). Además, si se elimina un grup se debe poner a nulos (BN) la clave ajena o "Grupo" de la tabla profesor. porque de no hacerlo eliminaríamos a todos los profesores pertenecientes al grupo y eto no se puede admitir. En cuanto a la s modificació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íamos de la relación PROFESOR, caso que no está adrnitido. Reglas ECA Deberíamos controlar mediante un disparador que, cuando se inserte un nuevo grupo, exista el departamento correspondiente y. en caso contrario insertar primero el departamento. Lo mismo sucede con las claves ajenas "Código_P" relación FINANCIA. Restricciones de rechazo De~eríamos comprobar rnediante un CHECK que la fecha de inicio del proyecto es anterior a la fecha de finalización. ~e debería conlrol~r mediante una aserción que el presupuesto de cada proyecto sea siempre mayor O igual que la suma de las financiaciones otorgadas por cada prograrna a cada uno de los proyectos. :' VII profesor puede participar en varios proyectos. En cada provecto fe incorpora en IlIIa determinada lecho v cesa en otra, teniendo una determinada dedicación [en horas a la semana¡ durante ese pertodo ". "Cada proyecto de investigación tiene I,n nombre .... y un grupo que lo desarrolla. Por otro lado, puede estar financiado por varios ¡lrogra/llas ". rPROGRAMA PROFESOR CDN!. Nombre Proí, Titulación, Experiencía=, (Nombre ,prQ~) PARTICIPA CDNI. Có!li.i'-l'-LF.lnicio. F_Cese"'. Dedicación) ,---- FINANCIA (Nombre Prog. CQ¡/jg() P, Número_P, Financiación) _l Gr-"po') Il R.M C' I B:(.M.(. .-- y "Nornbre Prog" de la __jI1 :R.,'vt:(· 6,c.M. PROYECTO {Código P, Nonbre_P. Presupuesto', FJni. F_Fin'.Grllpo} PROYECTO Código P, Nombre_P, Presupuesto", F_lni. F_Fin". Grupo) .-- __jB.C!,(' GRUPO (Nombre GNombre l)Árca.l.Jdl''-') Figura 2.1.39 Como no se nos dice nada en contra, podernos suponer que un mismo progran1a puede financiar a varios proyectos, pero dentro de cada programa los proyectos llevan asociado 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 de las relaciones de las que provienen. Por otro lado debernos incluir también :n ~~t;t nueva relación los atributos "Número_P" y "Financiación" que en un prrnclplll habíamos considerado dentro de la relación PROGRAMA. Figura 2./.40 n Lógicamente .en un proyecto pueden p~ic.ipar varios profesores, por lo tanto ccesll.amos incluir en el esquema una relación Intermedia PARTICIPA, cuya clave pnmana 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 puede udicel caso de profesores que continúen participando en un determinado proyecto Si rUllcra darse cl caso'. de que el' rnrsmo prorcsor participase en el mismo proyecto • en r . . 1IlrCr' " l.. cnt~s pe.rrodos de tiempo, se habría de incluir la fecha de inicio como parte de la -rave pnmana de PARTICIPA.
  • 110. pciones de borrado __,:;!.I: ODELADO Rf,I.,CIONAL M .!:k.~~:!::'A I DISt-:ÑO DE BASES DE DATOS; I'ROIlI.I,MAS RESUELTOS 20e¡ SCRrPT EN SQL_92 y modificación Los borrados de las dos claves ajenas de la relación PARTICIPA deben ser stringidos para poder guardar la inf rmación acerca de la fechas y la dedicaci a o ón s proyectos, de cada profesor. La modificación en cualquiera d los dos casos es en e scada. ('REATE DOMAIN Nombre_Válido CHAR(30): CREATE OOMAIN Tipo_Código CHAR(5): CREATE DOMAIN Tipo_ONI CHAR(9): CREA TE T ABLE Sede ( NombreSede Nombrc, Válido, eglas ECA Cuando se introduzca un nuev proyecto, en él deberá participar la menos un o ofesor. lo que podríamos controlar con un disparador que por ejemplo. cada vez qu , e sertemos un nuevo proyecto, se le asigne al menos u profesor de los existentes y en n ISOcontrario rechazar la inserción. testricciones de rechazo Se debería controlar con un CHECK que la" fechas de inicio de participación ida proyecto sean anteriores a las fechas de cese. SEUE (Nlllnb¡c Scd~Campus) Il ( M UBICACIÓN (/.;".:", e e;,«. Al", ,I"D 11l( ~ -Jo D ) Me ARTAMENl'O (Numblc D, S~d~Tel¿fono, OI¡<'¡j'Ñ,:1 e IIlCI't( . GRUPO (NQmbre (j. NQmbre !lArca, LI,def.) 1.. ,,, ,,·c lQf::lJ. Nombrc_Prof. TItulación, Experiencia", G;;/P{1~) PARTICIPA P F-inicio. F_Cese". Dedicación) r-, (nNI lB R,M.C 1" (' .M e PROYECTO <Código P, Nombre_P. Presupuesto", FJni, F_Fin' );'," po¡ 11 e,M ( I .. ('ROGRAMA ("'" FINANCIA " I f!CIM(' (t:{gJlllul' 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 ('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) . RRlMC Uf 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) ): 11.'.~Il' • ); ): ·RAFO REI,ACIONAL 4 en Campus Nombre_ Válido, PRIMARY KEY (Nombre_Sede) Pro!). CQdillo e Númel'o P, Fmancmcrén! I n r ,M e 1: 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) ) . Figura 2. J ,4/ ...:. .~~ .•.•••••• ._ •....• •.••.•••.•• ~". . ,,.,, ~ ~ . ~ . "
  • 111. t' •• ".' ••••• '•• '•• ,.' ••••• '•• ••••••••••••••••• 10 DISEÑO DE BASES DE DATOS' PROBLEMAS RESUELTOS 1• ....::::=------------ L TER T ABLE Departamento ADD FOREIGN KEY (Director) REFERENCES ON DELETE SET NULL ON UPDATE CASCADE; .',.,.1•..•,.1. CREATE TABLE Programa ( NOlllbre_Prog Nornbre , Válido. PRIMARY KEY (Nombre Progjj: K, "'" Profesor ('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 CASCADE ON DELETE CASCA DE. FOREIGN KEY (Nombre_Prog) REFERENCES Programa ON UPDATE CASCADE ON DELE'fE CASCADE); LTER TABLE Grupo ADD FOREIGN KEY (Código_D) REFERENCES Departamento ON OELETE CASCADE ON UPDATE CASCADE. ADD FOREIGN KEY (Líder) REFERENCES Profesor ON DELETE SE'[ NULL ON UPDA TE CASCADE; ALTER T ABLE Profesor ADD FORElGN KEY (Grupo) REFERENCES ON DELETE SET NULL ON UPDATE CASCADE; Grupo ('REATE ASSERTION Subvención Cl1ECK «(SELRCT Presupuesto FROM Proyecto NATURAL JOIN Financia) < (SELECT SUM CFinanciaci6n) FROM Financia NATURAL JOIN Programaj): 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), _ _;2U·I...!M~(~)l)~él.f'I)O I(I::LACIONAl. _ t'()NSUL TAS UNlQUE (Nornbre P). CHECK ( F_lni<F _Fin), FOREIGN KEY (Grupo) RErERENCES ON UPDA TE CASCAOE ON DELETE CASCADE 1. Profesores trabajan en el grupo del presligioso cientffico "Juan Pércz". Grupo Sql ); 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 ); . SELECT Nornbre Prof FROM Profesor. Grupo VHERE Lídcre 'Juan Perez' AND Profesor.Gnlpo=Grupo.Nombrc _ G'. :Igebra relacional , n'1"",h,,· 1',." (Il N"",hr<_",,,, • P'llgr f (;n¡p,,(PROFESOR)* n)j •. (.(r<. . lIn.,rlO_ I vi h .l!f.. JUJII Ptf'/' (GRUPO) » . amas inancran los proyectos del grupo que dirige ese fumoso profesor. :-,c¡ I .~ELECT Nonlbrc_Prog I'ROM Prograllla. Financia Proyecto Grupo VIIFRE P N ' , ~ • rogral~a. ornbre_Prog= Financia.Nombre Prog ANO Flnancia.Código_P = Proyeclo.Código P AND Proyecto.Grupo=Grupo.Nombre_G A NO Líder=')uan Pérez; 211
  • 112. DISENOD~ HA'iI,S DE DA ros, PROBLI-JAS RESlll"I'IO~S~ _ &'W. t 21J Discusión del enunciado Álgebra relacional 11 "I'Hllhll' ~.I: MODrLADO REI,/CIOI"AL "." ... « PR() G RA MA)* nN 111Tl e I,,, «FINANCIA)*n(',i<I,~,, r ... {PROYECTO»*(nN""lh'" (I(ON"1I1Ne' 'Juanrc".,,(GRUPO»») Ittll~ p«n( ,,J,~,,l'·flUIO' IDENTIFICACIÓN R()BLEMA 8: NAVES ESPACIALES RELACIONAL El 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! 1 nombre, 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, ' l 1." D isen- e e esquema relacional. Indique en, él las claves primarias. clav (k . if lox rnodolternativas y las claves ajenas. De estas últimas, especi ique os m a . , ccptcn borrado y modificación, Marque con un asterisco (*) los campos qu,~ a valores nulos, y por último, indique si existe algún atributo que eXIJa dCÍli111 alguna restricción 11 fin de mantener la integridad de la base de datos, /111'" Tras la lectura del primer párrafo, parece claro que DEPENDENCIA va a ser una relación. que tendrá como atributos un código (que será clave). un n ombre de la dependencia (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 toda dependencia tendrá obligatoriamente un nombre (de hecho. la hemos eonsidcrado corno clave alternativa). pero permitiremos que tanto la función corno la ocalización l puedan tornar valores nulos, SERVICIO será también una relación, y sus dos únicos atributos, el nombre y la clave. formanin la clave de la relación. SERVICIO (Clave, Nombre S) I>F.PENDF.NCIA (fódigo Se quiere llevar al día una relación de la tripula ción de I~ nav,e, ESI:i Inform~CII'~" »uiene el nombre, código. categoría, antigüedad. procedencia y suuacion adrmnistru va (en servicio. de baja ...). Cada tripulante está asignado a una dependencia que .,l' esca conocer. a:-oí orno la cámara en la que se aloja, Una c~lnara es una dependencia c uc 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':1I IpU acto , ' D d la lCl'j e uede contar a la hora de realizar una exploración interplanetaria. e c a pi.' a 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~~:l antidad de individu os. De cada raza se almacena información sobre el nornh ' .oblacióu total y dimensiones medias (altura, anchura, peso), 8ÁSICAS cspucut! se compone de distintas dependencias, y cada 11110 de ellas 111'/1(' un nombre. 1111 C6digo túnico para cada dependencia), IlIla [uncián y 1111(1 localizacián. Cada dependencia I!SlIí bajo el control de U/I determinado Servicio, identlficado por IIn nombre y 11110 clave. .. "Lo nunciado I)E LAS RELACIONES "S(' qutcr« /{('I'(l1 al dia D. NombrcD, Función, /11/0 Localización') 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! ". 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, Consideraremos que tanto la antigüedad corno la proced encia de cada tripulante pueden ser datos Je~conocidos, por lo que admitirán valores nulos, El enunciado también nos habla de un tipo de dependencia especial, las cámaras, cuya función es la de servir de alo¡.uniento a Jos tripulantes de la nave. Aunque posteriormente resolveremos cómo tratar d hecho de que una cámara es un tipo especial de dependen cia. 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, , CAMARA (Código C. Categorfa, Capacidad) Escriba las siguientes consultas en SQL y en álgebra relacional: • Razas que habitan en los planetas visitados por Flash Gordon 'rRIPULACl(~N (Código T. NombrcjT, Categoría, Antigüedad", Procedencia', UIII) • Cámaras que han llegado a su capacidad máxima. • Nombre de los tripulantes asignados a alguna dependencia de seguridad "Por otra parle, fe desean conocer los planetas que ha visitado cada ttuemhru di' la trtpulacián _I' el tiempo que permanecieron en ellos para saber •••••.' •••· ••••••~.e •••• • ~ ••• ee , •••• e •••••
  • 113. l.·•• '••• '. '•• 'e •••• U KA 1.< 2.1: MODELADO RELACIONAL ~ DISr.ÑO D¡'. BA!>ES DE DATOS: PROBLEMAS R~SUEL lOS las personas COII quien se puede contar a la hora de realizar 11110 exploración illterplalletaria. De cada planeta se COlloce SI4 nombre )' código. la galaxia )' coordenadas ell las que re ellcuentra. AlgIIIIllS planetas se e l1cuentrall poblados 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 v ditnensiolles Inedias [altura, anchura, peso)". En este último párrafo deectamos la presencia de las últimas dos relaciones t ásicas: PLANETA Y RAZA. Con respecto a los planetas, el enunciado nos dice que sndrá un código (que será clave primaria ). un nombre, la galaxia en la que -e ncuentra y sus coordenadas. Cada un de éstos será un atributo. aunque o onsideraremos que tanto el nombre com las coordenadas serán únicos para cada o -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ás nformación, lo trataremos simplemente como un aributo. En cuanto a la r lación t e "{ALA. tendrá un nombre, que supondremos único y por tanto será la clave primaria Ie la relación, y una serie de atributos: la altura. anchura y peso. medio de la raza. y I~l población total dc dicha raza en lodo el universo. El enunciado también nos exige almacenar la pob lación de u raza presente en un p na laneta. Esta información 1111 podemos guardarla en ninguna de estas dos relaciones, ya que un planeta puede e~1i1l habitado por muchas razas, cada una de ellas con sus poblaciones parciales. y una rala puede vivir en distintos planetas. Posteriormente veremos dónde situar este atributo. PI.ANETA ANÁLISlS R, Altura, Anchura. Peso. Población_Total) DE LOS SUPUES1'OS 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.1 Para controlar la primera restricción, puesto que toda dependencia está bajo el c0l1ln·1 de 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~IO e'. 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. Mediante una tabla SE RVICIO tendríamos suf . . obligara a que cada vez qu' ciente con un disparador que e 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 de Ierrruinado serVICIO. n na o o n:~dlficar el • Si almacenaln.os los servicios sólo en la tabla DEPENDENCIAS ' borre o modifique una dependencia ten dremos que controlar . cada vezd que Ise .bJ posi es valores que pudiera tomar . . que to os os dependencias. de fo rma similar al un serVICIO.aparecieran en alguna de las bastantes más problemas si desearn ñadf: antenor. Sin embargo, tendríamos , . os anac Ir un nuevo servicio que modificar para ello la propia bas d d (p: . . • ya que tendríamos modificar el código que com ba e e aros para cambiar los dominios o para dependencia). pro ara que todos los servicios controlan alguna I ~SERVIClO(llave. Nombre S) DEPENDENCIA (Código I . • B e.M e I • ombreD, Función. Localización', Clave S, Nontbre_S) DN SEMÁNTICOS ..... Cada dependencia está baj el control de Iln determinado Servicio, o identificado por 11/1 nombre y una clave. Todo servicio de la nave (Servicio de Operaciones, Comando)' Control, Seguridad. etc.) ha de estar asignado por lo /TlenOSa Ilna dependencia" 215 Con respecto a la tabla SERVICIO es necesa . únicos atributos de esta tabla son los que forman . no un pequen? co~entario: los pensar en eliminarla, y únicamente uardar los se~~~~ de la e.lave pnmana. Podríamos en la tabla DEPENDENCIA ( dg. ICIOS asociados a cada dependencia que ejaría de ser clave ajena iría si tornar valores nulos). Sin embargo no' 'f' 1. • • pero segui a sin poder restricción anterior (que todo servici~ es~us~r.1 ,~as. cdornPllcado controlar la segunda viera asocia o a una dependencia): (C'ódigo p. Nombre..P. Galaxia, Coordenadas) RAZA (Nolnbre '. e • ". te le. '•• Figura 2./.42 () . pciones de borrado y modificación Tanto los borrados como las modif . . :n (acada a la dependencia que cont Illcaclones de cualquier servicio se propagarían ro e. "...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 . oJa, na C IIlara e v u 1 dependenci posee l os caracteristicas propia. . , . lit epent ene/a que ", .111 categorta y Sil capacidad e, . 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 se 1't"lhlhdad de crear suposiciones adi .~ pendenclas no~ podría hacer planteamos iciona es. como por ejemplo que las cámaras se r••
  • 114. 11") 2.1: MODELADO RELACIONAL RA lA 217 DISEÑO DE BASES DE DATOS. PROBl.EMAS RESLlEL'rOS . . tanto la dependencia a la que sté e icen única~ente como al~dJalnIento~ ~á~~~~sto podríamos resolverlo, suponicnznado un tripulante no pue a ser un '. . .' "que existe una jerarquía en la dependencias. ex~st~endo unas ~ue son ca,:,~ad~ s s as que no lo son. que podría Ino reflejar ?e dl untas formas (ver CCÁ~t~~A e s s «íelado EIR). por ejellplo. 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 camara ndencia a la que e asigna o un tripu an ste la que él mismo se aloja. ,., de que una cámara es un tipo especial de dependencia la haremos L a restnccion , d I dependencia .ciendo que el código de lacámara sea también clave ajena e a ndencia a la que está asignado un tripulante Y la cámara en la Para 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 que ida ~::~o~:;e~:~~~~e~~o (ya que corno hCll10Sdicho, todo tripulante trabaja en una o 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) ",,,,,,.,A' TRIPUlA(.]ÓN «(¡'digu T, Nontf'e T, C'lIlcglll'ld. Ant't-.....- , f'roo:dencia Adm. 0.:/, CiulI) ' ..Por otra parte, se desean conocer los planetas que ha visitado cada miembro de la tripulacién y el tiempo que permanecieron ell ellos para saber las personas con quien se puede Contar a la hora de realizar una exploración nuerplanetaria .... AIKU1l0S planetas se encuentran poblados pOI diversas razas, cada una en 11110 cierta cantidud de individuos. De coda raza se almacena mformacián sobre el nombre, poblucián total " dimensiones medias (altura. anchura, peso). 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 cada planeta. Para ambas necesitaremos crear una relación intermedia, ya que, por una parte, un miembro de la tripulación ha podido visi más de un planeta, y cada planeta tar puede haberlo visitado más de u tripulante y. por otra, una raza puede habitar en n d¡~tintos planetas y en cada planeta pueden convivir varias razas, La relación VISITA recogerá las estancias de lo tripulantes en los planetas. s l-ormarán parte de su cave, por tanto, las claves ajenas de las relaciones l , TRIPULACJC)N y PLANETA, además dc un atributo que contenga la duración de d..:ha visita, Además, si suponemos que un mismo tripulante ha podido visitar un planeta más de una vez, necesitaremos incrementar la clave para evitar que ésta se rcpua con cada nueva visita. Para ello añadiremos el atributo "Fccha_ Visita" que recoja la fecha de la visita, y que formará también parte de la clave primaria. Esto unplicará 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ón 1,l/onablc). . It(' 1l Ht rkll'ULACIÓN (Código T,Nombrc_ T. Categoría. Anuguedad', Procedencia", Adm. Dep, COI1I) 'tt ¡;igura 2,1.43 )le Opciones de borrado y modificación . ., I caso de "Código C" de la relacion Las opciones de borrad y modlficaclon en e o . _ d TRLPUI 1 CÁMARA serán claramente en cascada. En el caso de las clav~s ajenas 't~n ido o· en , rrado , podría ser res g ClüN la mo dificaci . <ería en cascada y el bo I lcaClon " ' , cascada. En la solución propuesta se ha optado por este último. 11 ISITA(Código_T. Planeta. Fecha; Visita Tiempo) neMe r-----__J I'I.ANETA(Código P. Nombre_P, Galaxia, Coordenadas) Figura 2.1 44 Reglas ECA Opciones de borrado y modificación Restricciones de rechazo . . ecc en el enunciado pero que P'¡rcl.'" , • Una restricción adICional que no a~a r , á .: 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 ., . , Los borrados y modificaciones '11 ca~cada. de las claves ajenas de la relación VISITA serán • 30 ••••••~-i.~· •••• ••••••••••••••••••••••••• V ~I , ) .J J j , ) } ) .: ./ I U ) ~ ,~ ~ ~
  • 115. •• o RA·MA 218 1 •••••••••••••• ..'...~'... 2,1: MODELAOO RELACIONAL I RA·MA DISEÑO DE BASES DE DATOS PROBLEMAS RESUELTOS Para recoger las razas que habitan los planetas, crearemo.s la relaciáón HI BIITA, A 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 la primarias de las relaciones RAZA YPLA , que d . dividuos de dicha raza que relación), junto a un atributo que contendrá el numero e In I I habitan en el planeta. PLANETA ~ódigo P. Nombre_P, Galaxia, Coordenadas) rSERV1CIO (Clave. Nombre S) Ih("e 1 ~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) e TRIPULACIÓN (Código T. Nombre_T. Categoría. Antiguedad. Procedencia'. Adm. Dep, a11l) ~8'C.M,C SeC.M:C HABITA (Planeta, Baza, Población_Parcial) ~ l B:C,M,C ":C.M'C VISITA (Código T. Planeta. Fecha Visita. Tiempo) RAZA (Nombre R, Altura, Anchura, Peso, Población_ TOlal) R:e.MeC Figura 2.1.45 PLANETA (Código P, Nombre_P. Galaxia. Coordenadas) Opciones de borrado y modificación IlABIT ¡ (Plalleta, Ra?,a.Población_Parcial) ~ CM C' Los borrados y modificaciones de las claves ajenas de las relación HABITA serán en cascada. -+ RAZA (Noll¡bre B. Altura. Anchura, Peso, Poblaciéu, Toral) Reglas ECA n SI. suponemos que toda raza habita en al menos u planeta deberetnos controlarh mediante disparadores. Restricciones de rechazo . . bli a que la población total de Será necesaria una restricción adiCional q~e.o igue d I acione' bl . I ió RAZA) coincida con la suma e as po , una raza (contenida en la re aCI n 1 habitacontenidas en la relacion ( parciales de la misma en todo~ los planetas en ~s que POBLACIÓN TOTAL sea un HA BIT A) por ejemplo haciendo que el atributo Ó lAL atributo c~lculado a partir de los valores del atributo POBLACI N_PARC . Grafo relacional El grafo relacional completo se muestra a continuación. Figura 2.1.46 SCRIPT EN SQL-92 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; CREATE TABLE 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'RIMARY (Código-='c), KEY 219
  • 116. 2.1. MODELADO RELACIONAL DISEÑO DE RASES Oh DATOS. PRORI.I.:MAS KI:.SUELTOS J NIQUE (Nornbrc js), )REIGN KEY (Clave ,s, Nombre_s) REFERENCES ON UPDATE CASCADE ON DELETE CASCADE Se rvicio REATE T ABLE 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 CASCADE ON 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 A R(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 CASCADE ON DELETE CASCADE. FOREIGN KEY (Cam) REFERENCES Cámara ON UPDATE CASCADE ON 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 CASCADE ON DELETE CASCADE, FOREIGN KEY (Planeta) REFERENCES Planeta ON UPDATE CASCADE ON DELETE CASCADE 1: 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) . ): CREATE T A BLE 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 CASCADE ON DELETE CASCADE, ¡'OREIGN KEY (Raza) REFERENCES Raza ON UPDATE CASCADE ON DELETE CASCADE ); l' • CREA TE T ABLE 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) CREATE ASSERTION Capacidad Cámaras CHECK (NOT EXISTS SELECT Código_c FROM Cámara WHERE Capacidad < (SELECT COUNT (Código_t) FROM Tripulación GROUP Byeam HAVING Caln=Código_c); ); CREATE TABLE Visita ( Código_t Tipo_Código. Planeta Tipo_ Código. • •• •••• • •• ~. '.'.'.' •• e •• ~ •• e'. 221
  • 117. •••••••• ••••••••••••••••••••••• 2.1: MODELADO Rhl.!CIONAL RA ¡IA ", OISl:ÑO DE RASES DE DATOS PROBLI-.IlAS RESUELTOS Álgebra relacional "-- CONSULTAS Fl ''''''0'''_' . . o s por Flash Goroon l. Razas que habitan en los planelas visita o. . Sql Ixp. :-I".. h,,· I (TRIPULACIÓN» * lX,,"("nJl~"J (n (""h~" ¡) PROBLEMA 9: EMPRESA DE TRABAJO TEMPORAL Enunciado La empresa de trabajo emporal MITO ha decidido crear un sistema t mforrnación para realizar su gestión, considerando las siguientes especificaciones: de La bolsa de trabajo de M ITO almacena toda la inf rmación relativa a lo o s ucmandanles de empleo, considerando como relevante el DNI nombre, dirección, , leléfono, clase de camet de conducir y currículum. Estando este último compuesto por nümero de titulaciones (de I a 4 en media 2), nombre de las mismas, especialidad realizada en cada una de ellas y uni versidad donde se tituló. 2. Cámaras que han llegado a su capacidad 111áxima. Si el demandante posee experiencia profesional también guardaremos el nombre de la empresa donde realizó el trabajo, el tiempo y el puesto que desempeñó. En ecncral existe un promedio de dos trabajos por persona. SELEC'T Código_c FROM Cánlara WHERE Capacidad:: . (SELECT COU~T (Ccxhgo_l) FROM TripulacIón GROUP BY Caln HA VING Caln::Codigo_c); 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. Álgehra relacional , , '. CÁMARA) n (TR1PULACIC)N n Có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 . Sq' «n cr:-;" ~". "'Sc~II",';"I'(DEPENDENCIA»)) m SELECT Raza . FROM Habita,Visita, Tripulacló~ . , o rden' WHERE Tripulación.NOlnbre_t~ Flash V~.ita Cóoigo t AND Tripulación.C6dlgo_t=- ISI . _ AND Visita.Planeta=Habita.Planeta: Sql 223 SELECT Nombre_t . FROM Tripulación, DependenClad . Co'digo D . 1 ., Dep-Depen encla. WHERE Tnpu acion. -. N b s '::'Seguridad'; 2 AND DependencIa. om re., Los clientes solicitan al menos un perfil. Un perfil se identifica por un código de palil y lleva asociada una descripción. Además un perfil puede ser requerido por ..Irio~ clientes. Un perfil puede asociarse a distintos demandantes kmandante puede responder a diferentes perfiles. de empleo y a su vez un Diseñe el esquema relacional. Indique en él las claves primarias, claves alternativas y las claves ajenas. De estas últimas, especifique los modos de borrado y modificación. Marque con un asterisco (*) los campos que acepten valores nulos. Y por último, indique si existe algún atributo que exija definir alguna restricción a fin de mantener la integridad de la bas de datos. e Efectuar además en álgebra relacional yen SQL las siguientes consultas: • Nombre de las empresas que piden el perfil de "especialista en circuitos impresos' . " Suponcnlo' que en e 1campo Nonlbre_, se almacena clllpo de DependencIa e
  • 118. .kA MA , DISEÑO DI" BAS¡",S DE DATOS. I'ROAl.EMAS 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 o programación en buses de datos. )iscusión del enunciado DENTIFICACIÓN DE l,AS RELACIONES BÁSICAS realiza a el! Cll ., d d cír dos relaciones, la primera scrvma Oc este supuesto podernos e u l. , mantener los datos de cada uno de los dClnandantes de en1pleo. DEMANDANT": p ar.1 (DNI. NOlnbrc_S, L)irccción_S, Carnct ) . "ONr' Tcndría corno clave prilnaria el alTl?uto atributo "Nombre.S" corno clave alternativa. que se podría considerar ,11 , aun ' La segunda relación sería: CURRÍCULUM (Número ru, Nombre_Til. os Especialidad) considerado como atrihul .k o Esta relación n la .. , nal~ o ra cada tu la de la relación Ip.'1 a DEMANDANTE, pues admlllna vaTIos. valores, PI I p. I no está adn1itido ,'11 . I ejernp o, por ca d: demandante habrá vanos curncu ums), o cua a haber el modelo relacional. profesional también guardaremos el nombre de la empresa donde realizá el trabajo. el tiempo v el puesto que desempeñá. EIl general existe 1111 promedio de dos trabajos por persona ''. (Código Exp. Nornbre E, Tiempo. Puesto) Donde "CódigoExp" es la clave primaria. Se debe sup oner que en esta relación aparecerá una tupla por cada puesto ocupado, no por cada empresa en la que se ha trabajado, estando por tanto su granularidad fijada al nivel de puesto de trabajo, no de empresa (en caso contrario, un demandante de empleo no podría haber cambiado de puesto dentro de una empresa, salvo que hubiera alguna manera de evitarlo por ejemplo que se nos dijera que bastarfa con registrar el puesto máximo alcanzado dentro de la empresa). Como consecuencia. esta relación no se encontrará normalizada. por ello introduciríamos una nueva relación: El11~RESA(C6digo E, NombrcE) y modificaríamos ligeramente la anterior relación de acuerdo con ésta hipótesis "Las empresas cliente se caracterizan por UII código de cliente, su Cll", el nombre, la direccián. el teléf 0110 y el número de fax ". Del análisis de esta frase se deduce una nueva elación: r CLIENTE (Código Cli, CIF. Nombre_Ch. , ., 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 ndante de empico 111CJ",l1h' "". :K Se podría CO~~cglllr el. nÚI~~r(:() ~t:t~~I~~~~D~~ ~e s~~pl:::nle conlando el núl11CfI' de 11'1' " 'n del LengllaJ~ de I1nmpuaCIIn e él! "Si el demandante posee experiencia El promedio de trabajos anteriores por persona no es relevante en el diseño. podrí ~~r~~; El hecho de que las titulaciones varíen de I a 4. en media 2. no es relevante para el diseño lógico de nuestro esquema, aunque sí pudiera serlo para el diseño físico. EXPERIENCl.._PROF a donde se tituló" Podernos considerar que el atributo "Especialidad" puede admitir valore nulos, s pues una determinada titulación puede no tener ninguna especialidad. De este supuesto se deduce que debemos crear una nueva relación que almacene los trabajos anteriores dc cada demandante de emple así tenernos: o, 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 universIdad de las ,nis/11(1S,especialidad 225 RESUELTOS , ndantes de empleo que se ajustan al perfil Nombre y apellidos de los demOa O· ele" así como los datos de la o las • 2.1' MDDELADO REI.ACIONAL Dirección_Cli, Teléfono_Cli, Fax) Donde "Código_CIi" es la clave primaria y "CIF"' es la clave alternativa. "Los clientes solicitan al I/lenOS un perfil. VII perfil códillO de perfil y lleva asociada IIf1t/ descripcián. " W' identlfica por 11/1 Se deben almacenar los diferentes perfiles que puedan ser, tanto pedidos por las ,lllprcsa cliente. corno ofertados por los diferentes demandantes de empleo, por tanto 1l'JIl()~ una nueva relación: esta relación corre:,p!lndicnlesa ese demandante. ••••••••• •••••••• ~ ••••••• ~ ••••••••• ~."i ~
  • 119. ~ 1:MODELADO RELACIONAL 226 227 DISEÑO Db BASESDE DATOS' PROBLf.11AS RI,SU~.LTOS "Sr el demandante posee experiencia profesional también guanlaremos el nombre de la empresa donde realizá el trabajo, el tiempo ' 1'1puesto que desempeñá. /;"11 general 1:1.11' 1111 promedio de dos trabajos por persona", PERFIL (Cóchgo p, Descripción) Donde "Código_P" es la clave prilnaria. Un demandante de empleo puede poseer experiencia ANÁLISIS DE LOS SUPUES'l'OS SEMÁNTICOS " 1 d bai d MITO Il/lnaCellCl toda la ;n!orlllucióll relallva a los La 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;IIIO direcció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 se InismllS, especialidad realizada en cllda U/la de e os: UIII ers . c rrículum compuesto por una o va u nas Cada demandante de empleo . llene., un ede correspon er varios demandantes d a , 1 " titulaciones. Además una nusma titu acion pu 1" CURRÍCULUM DEMANde 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 atripendientes lltulaclones. De, ~~ta forma, d I pales es clave ajena que referencia a butos "UNI" y "Número., Tlt, ' cada uno e o~ cu DEMANDANTE y a CURRICULUM respectivamente. _ DEMANDANTE (DNI, Nombre S, Dirección_S. Teléfono_S. Carnet) ~ Ei'-IPRESA (Código E.Nombre_E) tituló ". ~ profeional (varias), pero s una misma experiencia profesional corresponde a un único demandante, por otra parte. iendremos que relacionar la relación EMPRESA con EXPERIENCIA_PROF. por tanto tenernos el subesquerna siguiente: DEMANDANTE (DN.1Nonlbre_D. Dirección_D, Teléfono D. Cernen UC.I'·IC CURRíCULUM_DEMANDANTE .-- ....... CURRíCULUM .--JIJ I LL --, B:C.:<l·(, I EXPERIENCIA·PROF (CÓdigo Exp, CÓdigo_E, Tiempo. puesto. DNI) 13:('.M:(, Figura 2,/,-18 Donde "DNI" es c lave ajena de la relación EXPERIENCIA_PROF. que referencia a DEMANDANTE y "Códigc.E" es clave ajena de la relación l:XPERIENCIA_PROF que referencia a EMPRESA. Opciones de borrado y modificación DNI NÚlllrro /} C.M e í!'IúmeroTil Nombre_Ti!, Especialidad. Univer~idad) Si eliminamos o modificamos un demandante, su experiencia profesional debe ser eliminada 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ía considerando el borrado restringido. Figura 2. J .47 Opciones de borrado y modificación . ede hacerse en cascada. El borrado y la modificación de ambas e1aves ajenas pu , d . lica la pues el borrado o la modificación de las tup~as de,: ~~~~ ;;.~;en~:p:n~~e~~~ de l o re erenci pérdida de información en la eltabla que podría también "",. restringido. " sepretenda ser borrado ser restncuvo que ' Reglas ECA . d i d odo demandante tiene al t Deberíamos controlar rnedlante íspara ores, que ícIUITI de un menos un currículum. así, por ej~ mplo, ~o se podría borrar un curr u demandante si éste es el único que llene regIstrado .. De manera "Código_E", similar podría considerarse las opciones para la clave ajena "Los clientes solicitan 01 menos IIn perfil. Un perfil se identifica por un código de perfil y lleva asociada una descripción. Además UII perfil puede ser requerido por varios clientes ''. Las empresas cliente solicitan al menos un perfil, y un mismo perfil puede ser requerido por varias empresas, por tanto tenemos que introducir una nueva relación CI.IENTE_PERFIL, cuya clave primaria cstuní formada por las claves primarias de las relaciones CLIENTE y PERFIL, es decir "Código_Cli" y "Código.P", cada una de las cuales es ti su vez clave ajena que referencia a las relaciones de las cuales son clave Jlrllllaria •
  • 120. - _______________ K " lA D1S¡:'l':O DE BASES DI! D,", 1'0$, PRUHI.t-MAS ~ IL CLrEN'fE HI:;SU"'I.TOS ~ 1 ~I()I)EI.¡D() RELACIONAl GRAFO RELACIONAL '. (CólhgqCli. Clf'. Nombre_ e l '1 O'ireccicn.s Cli• Teléfono _Cli Fax) i¡ Be.M' ~DF.JI¡NDANTR (ON! N<lmhrc_S. DlréCClón_S. lcléfuno S. l.lIn.:t) CJ,IENTJo: PERFIL (Ctldll!(/ CII. Ctidlgo ~) III("( n r.I e , ~ CURRICl:LUl-t t Figura 2,/.49 EMPRESA (Número'Tu Nombre Tu Especiahdad. I B:C.M EXPERIENCIA-PROF ., . zones el borrado y la Como en 10$ caSOS anteriores y por 1as mismas r~. d: . B'C M 'C:) aunque nodificación de las claves ajenas. lo hemos supuesto en casca a ( . . . , iodría ser restringido. l!:(',M,t' ~ CLiENTE (Código CÜ CIF, Nombre Cli Dil'ccciólI_CIl Teléfono_eli Reglas ECA Ul'Ml' . Figura 2, /.5 J SCI{IPT EN SQL_92 CREATE DOMAIN Nombre_ Válido CHAR(40); CREATE DOMA IN Tipo_Código CHAR(5); .. L------------,8' e, ).o1.(' iDN/. Código p) O:C.M Gli!J~(I_f) IB I'.M l cesidad lit- _ .... PERF1L <Códlgo_~Descri¡x:ión) L--------___...¡I R 'C M (' (!:'Qdig~1 P. Dcscnpcrón) DE!'.1ANDANTE_PERFIL(Q,Nl.. (DN!. Nombrt: D. Dlrección_D, Teléfono-D. Carnet) DEMANDANTF._PERJo'IL .. PERFIL 1111 perfile. , 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. ...- ... DEI1ANDANTE I 11 dif('n!IIII!,~ l' t· I pcrhl(es). , . 11(' ,M F ax) L(Ctídi~()(,It, Códjgr_l_' , CLIENTE_PERFI ., I ' un perfil debería asegurarse qur Corno cada CI11prCSa cliente solicita a Inenos .' . habrá un siernprc se registra el perfil al tiempo que. se da de alta al cliente y que nunca , /,('.1'!1011l/,·r C (Cópjgo_ExR, Código_E, Tiempo, PUCSIO. D NI) I "Un perfil ",U'e11' asaciorse () e1iS1illl¡)~ ¡/(,lIl(lIldan~~s de empleo ' 11,~II I'e: Universrdad] (CódIgo E Nombre_E) )pciones de borrado y modificación demundante pued« IWJ.....fl nero TII 1 11 <':.11 e CURRtCULUM_UEJ.lANDANTE( l.....l~PERFlL (eÓdlgu l'Dl!scn¡X:IÓn) cliente sin el (los) correspondicnte(s) 229 e ¡.'iXllro 2, J .50 CREATE T ABLE Demandante ( DNI CHAR(9), Nombrc_d Nombrc_ Válido Dirección_o CHAR(20) NOT NULL. Teléfono jí CHAR(9) NOT NULL, Carnet CHAR(2) NOT NUI~L, I'RIMARY KEY (DN]) I, Opciones de borrado Ymodlñcacíén if .: d las cl:I'" Análogamente a los casos antcriores. el borrado y la modi rcacion e ' ajenas puede hacerse en cascada . • ••••••••••••••• ('RI:ATE TABLE Currículum ( Núlnero_ ru Tipo_ Código, N0l11bre_ CHAR( 15) NOT NULL, Tit .••••• •••••••....•••• '
  • 121. D1S.... ÑO DE BASES DE D/TOS. PROBLEMAS RESUELTOS Especialidad CHAR(30) NOT NULL. Universidad CHAR(50) NOT NULL. :IMARY KEY (Númcro., Tit) ~EATE TABLE Cliente ( Código_CIi Tipo_Código, NombrcClí Nombre_ Válido Dirección_Cli CHAR(60) NOT NULL, Teléfono_Cli CHAR(9) NOT NULL. Fax CHAR(9) NOT NtJLL, UMARY KEY (Código_Cli) 2.1: 110DELADO RbLACIONAl t) NA 11 231 pRlMARY KEY (DNl, Código_P). FOREIGN KEY (DNI) REFERENCES Demandante ON UPDA TE CASCADE ON DELETE CASCADE, FOREIGN KEY (Código_P) REFERENCES Perfil ON UPDATE CASCADE ON DELETE CASCADE ): CREATE T ABLE Empresa ( Código_c Tipo_Código, Nornbre_E Nombre_ Válido, PRTMARY KEY (Código Exp) : REATE TABLE Perfil ( Código_P Tipo_Código, Descripción CHAR(70) NOT NULL, RlMARY KEY (Código P) 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 CASCADE ON DELE1'E CASCADE, '()REIGN KEY (Núlnero_Til) REFERENCES Currículum ON UPDA TE CASCADE ON DELETE CASCADE . . ~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 CASCADE ON DELETE CASCAD E, ::¡OREJGN KEY (Código_P) REFERENCES Perfil ON UPDATE CASCADE ON DELETE CASCADE 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 CASCADE ON DELETE CASCADE rORElGN KEY (Código_e) REFERENCES Empresa ON UPDA TE CASCAOE ON DELETE CASCADE CONSULTAS 1. Nombre de las empresas que piden el perfil "Especialista en circuitos impresos". Sql SELECT Nombre CJi FROM Cliente, Cliente_perfil, Pertil WHERE 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: : REATE TABLE Delnandal1te_Pertil ( DNI CHAR(9), Código_P Tipo_Código. • =
  • 122. 2.'~ --=2 I Mor~.AD(l ~KA:.!:~::.::tA"-- t)RA¡ RELACIONAL 233 DISENO DE BASES ot, DATOS: PROBI.EMAS Rf};Uf:LTOS . de empleo que se ajutan al perfil s 2. Nombre y apellido de 10Sddem~~~n~e~E" s así como los datos de la empresas ..Adlninislrador de bases de atOS ' que lo solicitan. Sql S en- Nonlbre cu. Dirección_Cli. Teléfono_Ch. Fax SELECT Nom re_, , -P mi B Perfil C FROM Demandante A. Oemandant; . e _ Código PANO C .Descripción WHERE A.ONl=B.DNl ANO B.CÓ<hgo_ -. LE''Adlninistrador de ba de datos ~~C se ANO C Código P IN (SELECT Codlgo_P . . _ FROM Cliente_Perfil. Cliente WHERE Cliente.Código_C~i = el iente_perfil.Código_ C1I); b ~::C = Álgebra relacional: . ., [l N brc 111)1 re .. ,,(DEMANDANTE) S (.'11 Ni!n,~n.:(.'11,1)111,'(( Hl".( h. 1¡;h:I~'ntl_(. 1,. 1, .• ('" 'lchlnl' . * . h TE PERFllJ) * (nc,,,lg,, I'.CII·N,,,,,o,".Ct,.I1'''«"'''' .. '.' '(DEM A ND AN _ ( t.~, t"I,,,,,OH<11 , *(CLIEN1'E PERFIL»)*nc,~hl'; l' crn<~'rll"·"·,n='A,lnl""I,,,J'f" .•"", . «(CLIENTE) "_ (PERFIL)))) (. t',t). , antes de empleo que hayan trabajadu n. ,t e 3. Nombre Y apellidos de aqUello~.dl.e~~an,ddOSon la programación en bases de da111' ~ menos, dos puestos de trabajo re ,IClona , Sql SELECT Nombre_S, FROM Deman.dudn.te DNI IN (SELECT DISTINCT DNI . . P f WHE RE Deman ante. FROM Expenencla_ ro ,. WHERE Puesto::.·%bases de datosqc ). De cada fondo se desea guardar el formato o tip (libro, revista, audiovisual, o ctc.), el número de ejemplares disponibles, el título, el autor. la editorial, la fecha de edición y la clave de localizaci n, a efectos de poder saber de forma rápida su ó ubicación en la biblioteca. Como cada fondo posee una serie de ejemplares que tienen la misma clave de localización que la del fondo del que pr ceden. se tendrá un número correlativo para o poder identificarlos. Además. se quiere tener la información de si se puede prestar o no). en caso de que esté prestado, de cuál es la fecha de devolución. Los usuarios que pueden acceder a los fond s de la Biblioteca son: profesores o o .dumnos de la Universidad Carlos JIt De ellos se necesita saber el número de socio, l e i)'J1. el nombre, la dirección de correo electrónico (si poseen), y si se trata de un profesor, el departamento y el área a la que pertenecen. 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 qu ha comprado su área tendrá un trato especial. e 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 ioteca I'"dr¡ítenerlo durante un mes , 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 se , ucucntran en un lab oratorio y poseen una línea de investigación principal que .lltlhlén se desea almacenar. Diseñe el e squema relacional. Indique en él las claves primarias, claves alternativas y las claves ajenas. De estas últimas, especifique los modos de borrado y modificación. Marque con un asteri co (*) los campos que acepten s valores nulos, Y, por último, indique si existe algún atributo que exija definir alguna restricción a fin de mantener la integridad de la bae de datos. s - Efectuar además en álgebra relacional y en SQL las siguientes consultas: • Número de libros prestados a a Jurnnos de la Universidad Carlos 111en este último año. PROBLEMA 10: FONDOS BIBLIOGRÁFICOS • Profesores del área de Bases de Datos que no hayan utilizado el servicio de biblioteca. Enunciado • Título de los ejemplares que no han sido devueltos junto con el nombre del usuario que los posee . • "1 "t"U' '11 ' " IIl des m Base de Datospal, e1 La Biblioteca de la UniverSIdad CarloR I ~S~~e~t:s especificaciones, !.Iu!:1);I1l' sus fondos bibliográficos. ~ara ello expone as sig tenerse en cuenta para su diseño, _ ... .• ., "'iI r, F , ~ ~ . • ••••••••••
  • 123. '••••••••••••••••••• DISEÑO DE BASES DE DATOS: I'ROIlLEMAS RESUEI.TOS DE LAS RELACIONES 2.1' MODELADO REl.ACIONAL () KA "' ... .cusíón del enunciado ~N'rlFICACIÓN ••••••••••••••••••••••••• BÁSICAS se desea guardar el [ormato O tipo (libro. revista, audiovisual, etc.), el/llí,nero de ejemplares disponibles. el utuio, el autor, la editorial, la fecha de edtcián y la clave de I?call~.ción. a efectos de poder saber de forma rápida su ubicación en la biblioteca . 235 "Los usuarios que pueden acceder a los fondos de la Biblioteca SOIl: profesores o alll'III1OS la Universidad Carlos 111,De ellos se necesua saber de el fllí/llerO de socio. el DNI, el nombre. la direccián de correo electránico (si poseen) y si se trata de un profesor. el departamento y el área a la que pertenecen. • "De cada fondo Para recoger toda la información necesaria acerca de un fondo ~e la biblioteca .esitarernos crear una relación FONDO compuesta por la propledade~ qU,e se s ican en e ste párrafo. De entre todas ellas elegiremos com~ ~lav~ pn~ana, el rbuto "e_Localización", ya que supondremos ~ue todo f~ndo ~tbhogr~fi o se ubl~~ ~ un lugar único dentr de la biblioteca, Los at~?~t~s obltgatorloS"seran "Formato, o , ." _ EJcmp 1ares, "Tít U1 .. , "Editorial" y "F - Edición . El atnbuto . Autor se puede " t o ,,' .delar de distintas formas, ya que si hacemos uso del conoclmlent~ del dOln~~I , ~ iemos que un libro pued ser anónimo, lo que su~ondría q~e el atribut adm'ttn~ e o 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 e stos su~~estos, y de a 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 obligatorio yo valor será el nombre completo del autor. FONDO (C Localización, Título. Editorial, F_Edición, Formato. N_Ejemplare~) • Corno cada [ondo posee 11110 serte de ejemplares que tienen la ,mis/lla ,clave de localización que la del fondo del que proceden, se tendrá .'ln n¡lIn~~o correlativo para poder identificarlos. Además, se quiere tener la informacián de si es prestable o 110 y. ell caso de que está prestado. de cual es la fecha de devolucíén .• 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~aCIIlI1 JEMPLAR para saber si están disponibles o no cada uno de ello~. Como se In~lca en enunciado 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 ~ ~l oc 1" n esquema relacional no podremos representar. La relaci ió n EJEMPLAR tlllnhlCIl . . , tl uará compuesta por los atributos "Prcstablc", definido dentro del dominio boole,111. ~"P_Devolución", que podrá tomar valores nulos para consiid erar aque os f o ndos' ¡¡lIl' , 11 o estén prestados, (C Localilación, USUARIO (N Socio. DNI, Nombre, Tipo, e-mail*) 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 nulos en dichos atributos, Para evitar tener muchos valores nulos en esta relación se podría considerar otra solución. que es la que adoptaremos creando una nueva relación PROFESOR cuya clave primaria sería "N_Socio" y co rno atributos obligatorios 'Departamento" y "Área", PR()FESOR AUTOR (Cód Autor, Nombre) EJEMPI,AR Entendemos. por tanto. que los usuarios de la biblioteca son de dos tipos, profesor o alumno, y que éstos comparten ciertas propiedades. Por lo que se creará una relación USUARIO cuya clave primaria será el número de socio, "N_Socio", el DNI ("DNI") érá clave alternativa, el nombre ("Nombre") y e tipo "Tipo" serán atributos l obligatorios 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 clave alternativa, ya que cada usuario, si tiene dirección electrónica, es única. Número, Prestable, F_Devolución"') (N SOCIO. Departarnento. Área) • Existen fondos en la biblioteca que SOIl comprados por distintas áreas de la Universulad y se necesita conocer esta informacián, ya que los profesores que 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 que tanto para alumnos COIIlO para profesores. un fondo s610 puede ser prestado COIIIO /Iláx;,no por una se/nana. Sil! embargo, si el profesor pertenece al área que ha proporcionado dicho ejemplar a 1(1biblioteca podrá tenerlo durante IIn mes." •De los departamentos se guardará su nombre, titulación, y director de éste. Cada departamento está formado por una o varias áreas que se identifican por un nombre, se encuentran en IIn laboratorio y poseen 11110 1(111'0 de investigacián principal que también se deseo almacenar, • , Aparecen en este párrafo las relaciones DEPAR1"AMENTO y Á REA con los ,111'I~lltos se quieren almacenar de cada una de ellas, Para la relación primera se ha q ue 'kgl(.lo Como clave primaria "Nombre", suponiendo que cada departamento tiene un 11I~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. • I
  • 124. DISEÑO DE B¡S¡';S nI' DA ros. PROBl.Et-1ASRESUELTOS DEPARTAMENTO ÁREA (Nomhre. ____________________ K~~ ~.~ R 237 cada fondo posee una serie de ejemplares que Tienen la misma clave de loca{¡:(lciól! que la del [ando del que proceden, se tendrá un número correlativo para poder identificarlos. Además, se quiere tener la infonnacién de si es prestabl« 11 IlO y. en ('11'0 de que este prestado. de cuál es ItIfecha de devolucián. " Investigación) Donde se ha supuesto que un dcpartamemo e~lá inscrito a una sola Tilulac~ón y e el laboratorio puede ser compartido por distintas áreas, por lo tanto el atributo o Laboratorio" será un atributo obligatorio pero no clave alternativa. -IÁLISIS DE LOS SUPUESTOS 2.1: MODEI.ADO RELACIONAL • COII/O (Non1bre. Titulación. Director) Na_Lahoratorio. ~t" Existe una clara relación entre FONDO y EJEMPLAR. de donde suponemos que lodo fondo tiene al 1l1CnOS ejemplar y donde lodo ejemplar procede de un fondo, un 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. SEMÁNT ICOS "De cada fondo se desea guardar el [ormato o tipo (libro, re vista, audiovisual, etc.), el nlÍl1lerOde ejemplares disponibles. el titulo, el (lulor. la editorial. la fecha de edicián y /(1 clave de locali:ación. (1 efeCTOS poder de saber de [arma rápida Sil ubicacion el! la biblioteca ". fONDO ~_. Como se ha comentado anteriormente, se supone que un fondo bibliográfico .ede haber sido escrito por más de un aut r e incluso ser anónimo, por lo que para o ntemplar 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. F()NUO ee 1.,x;3hl~C,.Q.u.Títulu, EdItorIal. F EdiCión. rnrmalu. N_Cjemptarc~. tc..L,x;alizaciQI1, F:JEI1~'LA R "_C'__ e Título, Editonal, F_Edlción. Formato, N_Ejemplarc~. AuTor.) ---, _ I e I.()ctlli;a("ióll. Número. Prestable. F_L)~voluclón*) Figura 2.1.53 Opciones de borrado y modificación AII/J') 11 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 SOI1 rc-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á en lacada. 1I((tt AUTOR (Cód Autor , Nombre) Restricción de rechazo Figura 2, /.52 -pciones de borrado y modificación Una restricción que se debe tener en cuenta es que cuando el atributo "Prcstablc" ruma el valor TR UE el valor del atribut o uF_Devolución" tendrá que ser nulo. Esta restricción se podría realizar con un CHECK O una regla de verificación. No sería conveniente que al borrar un autor de la relación AUTOR se borrar.ln Idos 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 en Reglas ECA Con la clave ajena "Ci.l.ocalización" controlamos que todo ejemplar proviene de lino y sólo un fondo. Pero si quisiéramos que todo fondo tuviera un ejemplar como nummo en la biblioteca tendríamos que implementar un disparador para controlar dt,ha restricción. aseada, !eglas ECA 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 rediante disparadores e que cada vez q se .Incorporara un nuevo aulor ' é!"ll' l ue ostertormente se relacionara con algún fondo. 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 la dUcI6n EJEMPLAR tendrá que aumentar en uno "N_Ejemplares" para el fondo ,orrespo ~ dilente. S e ursrrunuira en •uno St estamos borrando un ejemplar y si se realiza .1' • " I . .It~ nlolhlicactón en el atributo "CLocalización" _ de EJEMPLAR tendremos que .•••••••••••••••••••• ••••••••••••••••••• .. f·" .": , ~ . ..... .
  • 125. " ••• ' •••.••• ' ••••• '••• '. 'e ~. '. •• .". o) kA 1 , 2.1: MOOEI.AIX) RELACIONAL , RA MA 239 DISEÑO DE BASES DE DATOS: PROBLEMAS RESLII~LTOS "N _E' Je lares" en la tupla correspondiente mentar en uno mp inuir en uno en la tupla del antiguo fondo. al nuevo fondo y dis- '.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. como virtual no se almacenaría y cada vec que se realice una consulta a la r lación e PROFESOR se calcularía. Ésta es la solución que se presenta en la figura 4 y la que adoptaremos. ÁREA (Nolllbre, N°_Laboratorto, tnvcsrigación. Departamento) '. ., Al crear una re I aClon USUARIO Y otra relación PROFESOR para recoger 10. . tributos propios de éste, existe una asociación entre ambas. ya que l<~ .cla~~~~t;~;.1 e profesor es un número de socio cuyo valor debe aparecer en la relación . USUARIO (N Socio. ONI. Nomhrc, Tipo, e-mail *) PROFESOR (N Socio. Área) Figura 2.1.55 Opciones de borrado y modificación La opción de borrado será restringida, ya que no queremos que se eliminen profesores de un área eliminada. La opción de modificación se realizará en cascada. PROFESOR (N Socio. Departamento.Área) Figuro 2.1.54 ..De IIIS departamentos se guardará Sil nombre, titlllación, y director de éste. Cada drpartumento está [armado por una (1 varias áreas que se identifican por IUI nombre. se encuentran en /Ul laboratorio y poseen II/Ul linea de invr.'fll.'1I1('uínprincipal que tambtrn .Ie desea almacenar." Opciones de borrado y modificación mo un profesor es un usuario. SI borramos o tnodificalnos algu,na tupla en 1 .. Co . f sor esta acción se dehen. relación USUARIO que se corresponda con e I upo pro e, , . propagar en cascada a la relación PROFESOR. Reglas ECA En primer lugar se tendría que implem entar un disparador para cuando se i~s..:r>' el tipo profesor en la relación USUA RIO se inserte también en la re aCtOJ.l 1a d una tup . /, d .' r fcsor se encuentra o PROFESOR, con esta restricción se cumplirá que to o usuario p en 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' " , rofesor este valor debe corresponderse con una tupla cuyo atn uro IpO sea p , . . .a el área y el departan1ento al (jUl' b También se indica que necestlalnos sa c . r . PROFESOR I 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'" 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 definir IIn ..tributo "Departamento" en la relación ÁREA que torne valores de la relación l>F.PARTAMENTO. es decir. se definirá una clave ajena. U!::PARTAMENTO (Nolnbrc. Tilulación,Director) B.C.JI:C ÁREA (Nombre, N°_Laboraluno.Investigación, Departamento¡ Figura 2.1.56 Opciones de borrado y modificación Si se elimina o rnodi fica un departamento se tendrán que borrar o rnodi ficar las .Ir~a~ componen. flor 10 que las opciones de borrado y de modificación serán en que ,,",ada. referencial,. es decA~rRE' teAndrí~E~~R~~~~~~d.C~:~~~~í:~!:~~~~t:~ir~i~~~ ~~Iatrihll' correspondientes, y li . a con,ut., .. ya que con la infonnaci6n del área se podría rea llar un ib "Departamen l O • d f . derar el utn 111. para saber el departamento al que pertenece. Y e esa orma consi t •
  • 126. 240 DISEÑO DE BASES DE DA ros 2,1: MODELADO RELACIOKAL PKOOLI:iMAS KESUELTOS Reglas ECA , to se compone al menos por un arease La restricción de que cada d epartarnen d I de DEPARTAMENTO tendrá que recoger mediante un disparador. yla qule ~~ aÁ~~ e decir el nombre de s . por lo menos una ve7 en a re aClon . . llene que aparecer . . o valor del atributo "Departamento" en la mo los departamentos tendrán que aparecer e relación ÁREA por lo menos una vez. . . un SI se considera que e I di irector d e I departamento es también ..' profesor. dcomo ('11 . " . 1, general ocurre en eI d OITIlnlOd e las Universidades. el atributo Director a ernas l ~ . ., SOR ser obligatorio, será clave ajena que referencia a la relación PROFE . 241 Hemos dejado este párrafo para el final, ya que de esta manera, teniendo todas las relaciones básicas. veremos mejor cómo reflejar las restricciones que en él se . enuncian. De los fondos de la biblioteca existen algunos que han sido comprados por un arca, información que se necesita recoger para luego saber CÓmo realizar la política de préstamos. Lo que realmente compra un área es un ejemplar y además se supone que un 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. ó EJF.l't1PLA R (e Locali;{I('ión, Número, Prestablc. F_Devolución •. Are *) DEPARTAMENTO (Nornbre. Titulación. Director) n ~N.M ( B:R,M (' ÁREA (Nombre. N°_Laboratnrio. Investigación, Departamento¡ PROFESOR(N Socio, Área) Figura 2.1,58 Figura 2.1.57 Opciones de borrado Y modlficacién , .. al borrar un PROFESOR. si éste es director de ¡llglll1 No se deberíu ~ernllllr que. I ción de borrado será restringul« departarnento. también se borre este, por lo que a op la de modificación en cascada. Reglas ECA " d ue en la relación DEPART AMENTO aparecicr-n Podría darse el caso e q 'b "D' tor" lo que significa q un ue l l mi smo 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 qu uuh/.u e del dominio se sa e qu es e un disparador. . "Existen fondos ell la bibliOlcca que SO/l comprados por ditsuntas are~~s de la , .r. "a U' ." 'd d y re necesita conocer esta mjormacion, y que los profesores nlversl ~ ~ • l' pr-<r/o"IIO de 1111 libro que ha comprado Sil área tendrá 11/1 que so ICllan e e., d 1 i 'que .' 1 Esto ~igl"ifi,ca que, en general, la [ilosofia . e pr stamo e.l I trato especuu. ., , r. d '1 de s preflatll tanto para alumnos COIIIOpara pr(~re.50res. un J.o111 o so o pue tI' ser e al' área COIIlOIlIóxilllO "" S' bargo SI e profesor per enec 1111(1 .I'e~n(lna.. , 1/1 ~m la biblioteca podrá tenerlo dU/,(lIIII' que Ita propllrclo"aclo "" mes. • dicha I'Jt III/) (Ir 11 üpciones de borrado y modiflcactén 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 aunqu e d á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. 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. Si se hubiera lomado el segundo supuesto significaría que un socio ~Ihliotccapuede sacar prestados varios ejemplares en un día pero un ejemplar rU~dc. prestado a un socio. Para modelar este hecho tendríamos que añadir ser 'daClon EJEMPLAR un nuevo atributo no obligatorio. "N_Socio". que además 1.II'c ajena que referenciaría a USUARlOS . de la sólo a la sería . ,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 va rios "IIJrlOS a lo largo del tiempo, Y, por supuesto, que un usuario puede sacar prestados k la bihlioteca de cero a va rios 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
  • 127. DISEÑO DI> BASES DE DATOS PROBLEMAS RESUELTOS -_ ',¡k·' 1 cuatro atributos, "N _Socio", "C_Loe", "N um' y "F _Ini". El primero de ésto será s ive ajena que referencia a la relación USUARIOS, los dos siguiente también s -roan una clave ajena que referencia a la relación EJEMPLAR y el último será el que fique la fecha en la que se inició e préstamo. l En esta relación intermedia, que llamaremos PRÉSTAMO, debería aparecer 'ibuto indicando si el ejernplar se ha devuelto y la fecha de devolución. Por lo que 'ibuto que aparece e la relación EJEMPLAR, "F _Devolución" desaparecería n , 'restable" se calcularía a partir del atributo "Devuelto" de la relación PRESTAM() GRAFO RELACIONAL AlffOR (Cód Autor. Nombre) j FONO() (C' Localización, Título, Editorial, F_r:.dición,Formato. N_Ejenlplares, Alllt,.JI<) el } . B:C.M:C EJEMPLAR (e Loca ización, Número. Prcstable, Área*) B:SN.M:C t B R.M" , PRESTAMO L(I<', B:R,M:C un USUARIO (N Socio. DNI, Nombre, Tipo, e-mail *) PRF.sTAMO (N Socio, e -22.1. 'vIODELADO REI.ACIONAL ...!K~;':"1~~ (N NI/III, F 101. F_Dev, Devuelto) I B:R,~:C Socio, e Loc. NlÍl/l, F Ini,.F Dev, Devuelto) ..J I3:R.M:C • n·K.M:(' ___. USUARJ() (N Socio, DNI, Nombre, Tipo. e-mail") Figura 2.1.59 ipcíones de borrado y modificación r I3:C,M:C PROFE.SOR (tL~p('in ,Area) Ir-------I B R.~1·(" R R,M,e Las opciones de borrado en amba claves son restringidas para no permitir qu 'l' s e orren usuarios o ejemplares que a lo mejor no han devuelto un préstamo. E~ decir, ~I orrado en la relación USUARIO debe ser controlado, no se p ueden eliminar usuariouc no hallan devuelto los ejemplares que han tornado prestados de la biblioteca. De iual 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. DEPAR'r AMEN'f<) (Nombre. Titulación. Director¡ , L,.ARF.A (Nonlore, N° J .aboratorio, Investigación. _j 8:C,M:C , Figura 2.1.60 teglas ECA Para controlar que de tributo "Devuelto" tome rsparador que se ejecute 'ALSE la lupIa no se borra l)ep{/n{/IIIf~III())'__....J la relación PRÉSTAMO no se borre una tupla ond~ d d valor FALSE, se tendrá que asociar a esta elación IIIl r en la acción de bo rrado y compruebe este val r. Si l" o y. en caso contrario, se eliminará de larelació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"1 lue compruebe que lIi e usuario es un profesor que pertenece al mi l smo área qUl' 11" .roporcionado el ejemplar que qui re sacar prestado. la fecha d devolución .Id e e iré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, SCRIPT EN SQL 92 CREATE DOMAIN Nombre_ Válido CHAR(40)' CREATE DOMAIN Booleano C HAR(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'); 24
  • 128. DISERo DI' HASES DE DA'I OS:...!' P~R~O~BI!..!.I~M!!:A~S~R.!2:I-.S~'l~E~L 1~·(~)<;~ ....l:2.~1 MODr.L¡()ORELACIONAL ~I_- '.:...:' =M., R:....:_' ~EATE TABLE Autor ( Cód_Autor Entero_Obligatorio, Nombre Nombre , Válido NOT NULL. PRIMARY KEY (C6d Autor) Investigación Nombre_ Válido NOT NULL. Departamento NombreVálido NOT NULL. PRIMARY KEY (Nombre). FOREIGN KEY (Departamento) REFERENCES Dcpartarnento ON UPDATE CASCADE ON DELETE CASCADE ~ATE TABLE F ondo ( 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 245 ); :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) CREATE T ABLE Profesor ( N_Socio CHAR(8). Área Nombre_Válido, PRIMARY KEY (N_Socio), FOREIGN KEY (N_Socio) REFERENCES Usuario ()N UPDA TE CASCADE ON DELETE CASCA DE. F()REIGN KEY (Área) REFERENCES Área ON UPDATE CASCADE ('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. I OREIGN KEY (C_Localización. Número) REFERENCES Ejemplar ()N UPDA TE CASCADE . • :::REATE T AB 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) l. I.TER TABLE Ejemplar ADD FOREIGN KEY (Área) REFERENCES ON UPDATE CASCADE ON DELETE SET NULL; ); 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. I.TER TABLE Departamento ADD FORErGN KEY (Director) REFERENCES ON UPDATE CASCADE' • •••••• Profesor ()h~c!rvación' H ,',1 • , , I '.' rnos lenlu~ que añadir lal> restnccioncs de integridad referencial en e .re~aclones Profesor y Area porque se produce un ciclo referencial. Cuando se 11 ,enen .tuplas en estas tablas se deberán desactivar las restricciones y luego activarlas 11,1 vez Insertadas para que el SGBD donde se implemente compruebe la integridad .. I~: • ••• Área • ••••• •••••••••••••••••• ~
  • 129. )151::.1'10DE BASES DI- DA ros PRORI.EMAS RESl!EI.TOS ~SULTAS úmero de libro prestados a alumnos de la universidad Carlos m en este último flo ql SELECT COUN1' (*) FROM Usuario A, Préstamo B WHERE A.Tipo = 'A' ANO B.F _lni < '31-12-2000' AND B.F_lni > '31-12-1999' AND A.N_Socio = S.N_Socio; ~Igebra relacional ,GRUPACIÓN POR (TIPO), CUENTA(*) (nl'_S,,,,,o.f'p" «(J,,!'O=·A·(USUARIO»)* :>rofesores del área de bases de datos que no hayan utilizado el servicio de iíblioteca. 2.2.TRANSFORMACIÓN DE ESQUEMAS EIR A ESQUEMAS RELACIONALES ;ql SELECT Nombre FROM Profesor A, Usuario B WHERE 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): Álgebra relacional PROBLEMA 1: CURSOS DE FORMACIÓN nNllmhrc (PROFESOR * (nN $,l<'''' «J'r< ue O"'c,,I,' D4",,·(PROFESOR»- nN_S,.,,,¡(PRÉSTAMO Enunciado *(JArca.·Bu'", l)"t",·(PROFESOR») tic Título de los ejemplares que no han sido devueltos junto con el nombre del usuariO que los posee. Sql SELECT A.Título, C.Nombre FROM Fondo A, Ejemplar B, Usuario C, Préstamo D WHERE D.Devuelto = 'FALSE' ANO A.C Localización = B.C_Localización ANO B.C- Localización = D.e_Loc AND B.Número = D.Nutn AND C.N_Socio = D.N_Socio Oiscusióndel enunciado , Presen~amos en la figura 2.2.1 (ver figura en la página sigueinte) el esquema ElR ,Id que partiremos. Álgebra relacional Tltuln (Fl-, 5<....,... N"nlbn:(USUARIO) * (ne_1,,,,.IIIJc,<I. T"ul ..tFONDO) .. (Il, Ntl"",n,(EJEMPLAR) * nN s.I<II,.('_L.,<. "'um«Jl)c,ud,"- ~I..!>"(PRÉSTAMO»») Nombre. Transformar el esquerna EIR obtenido en el problema 2 del capítulo I en un esquema relacional en el q se indiquen las claves primarias y candidatas, así como ue la., claves ajenas .. Indicar, asimismo, la semántica que a parece recogida e el esquema n !'JR pero que se pierde en la transformación al modelo relacional. la entidad CURSO y la interrelación reflexiva ."oclada a e 11 La ennca d se transformará en una relación, con clave primaria el '.' r . a. ,'1{)I"O del e ) e urso C'C o.r: , C urso " y con clave alternativa su nombre ("Nombre"), urgo .En primer lugar, transformaremos 1... ·110'''' •
  • 130. !4R 1.2' TRANSFORMACiÓN DE "'"<¡QUEMAS¡:jR A HSQUEMAS RELACIONALES K 'tA 249 DISEÑO DE BASES DE DATOS: PROBLEMAS RESUELTOS mientras que la interrelación Prerrequisito, por ser N:t-¿. se transformar.á en. o~a e relac ión a donde migrará por duplicado, como .clave ajena,tr laa clave pnrnana son . I los cursos que CURSO (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.1 relación PRERREQUISITO. Además, se añadirá el atributo "Obllgatono . Podernos ver en el esquenla que existe una dependencia en identificación entre los cursos Y sus ediciones. Como sabemos, esto se transforma en el modelo relacional añadiendo la clave de los cursos a la de las ediciones. AsC, crearemos una nueva relación. EDICIÓN, cuya clave primaria la formarán la fecha de celebración de las cdlcione~ ("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, si no permitirnos borrar un curso mientras existan ediciones del rmsmo). CURSO (Código Curso, Nombre, Descripción, Duración, Coste) t Obligatorio CURSO '------'1 :C, MC EDICIÓN (Código Curso, Fecha, Lugar, Horario) e _ " ~ B -- ._ e y .,2 .~ '. Figura 2.2.3 ~ .- u O 1" N:M rl-...L..J._.J_J_.l._..J...-'t:::-o "'1fl1. Sal...,., IU.n) (exclulión) I 11).1 ) 11 1) 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 implemenlar dependiendo 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. Corno SabCI110S,para transformar la jerarquía de empleados tenernos varias rlternativas. En principio seguiremos la que transforma cada entidad de la jerarquía en UIW relación. El supertipo EMPLEADO propaga su atributo "Código Empleado" a ,'aJa uno de los subtipos (CAPACITADO y NO_CA PA C1TA DO) que pasan a «lenriflcarsc por el mismo identificador (COIlIO clave ajena). Además, la relación I:MPLF.AOO contendrá el atributo discriminante "Capacitado". Por ser una jerarquía total, el atributo discriminante "Capacitado" no podrá tomar v.dorcs nulos. Además. por ser exclusiva. será necesaria una aserción que asegure que unempleado no pueda estar a la vez en los dos subtipos. Habría otras soluciones posibles. Por ejemplo, corno dijimos cuando diseñamos el e-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 a realizar serían distintos. "EMPLEADO (Código EmpleadQ, Nombre, Apellidos, Dirección, Teléfono, Nif, Fecha_Nac, Nacionalidad. Sexo, Firma, Salario, Capacitado) B:C. M:C CURSO (Código Curso, Nombre, Descripción, Duración, Coste) tt PRERREQUISITO CAPACITADO (Código Etnplead.q) 1 B:C, M:C 1 B:C, M:C (Tiene Pre, Es Pre, Obligatorio) B:C, M:C NO_CAPACITADO Figura 2.2.2 (C6digo Erl/plelldol Figura 2.2.4 '. •
  • 131. t .".,..'.' 250 •• '."e ••• '." •• "••••• '' 2.2 TRANSFOR~1ACIÓ~ DE ESQUEMAS EIR A ESQUEMAS RELACIONALES DISEÑO Oh BASES OE DATOS: PROBLEMAS RESUELTOS 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 la relación EDICiÓN. donde será clave ajena. En cuanto a Recibe. será necesaria una '6 nueva re IaCI n cu ya clave prirnari'a .será la concatenación , de las claves de 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 lo reciba un empleado, En cuanto a la restricción de exclusividad establecida ~?tre las. int~rrelacione~ Imparte y Recibe, deberemos controlarla mediante una asercion que Impida que una ocurrencia de una esté presente en la otra. ;EMPl,EADO (CPd.igo_EmpleadQ, Nombre. Apellidos. Dirección: Teléfono. Nif, Fecha_Nac, Nacionalidad: Sexo, Firma, Salario, Capacitado) I--------'IB:C. r+-~CAPACITADO l._-----------,IB:C' '-- IB:C, M:C CAPACI~rADO (Código E"'l?Ieado) I NO_CAPACITADO B:C. M:C (Código E11lpl eado) lB:C,M:C RECIBE (Código EI1II2/eado,Código Curso, Fecha) I B.C, M.e . B:C. M:C 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) M:C I:l:C, B:C, M e M e (Código EIIIP/eado) PRERREQUISITO (Tie"e Pre, F.. PIe, Obligatorio) --,1 B:C, M'C Figura 2.2.6. Esquema relacional solución RECIBE (Código Elnpleado, Código Curso. Fecha) I _-------~==r-__..JB:C. I M:C 'f L EMPLEADO (Código Empl cado, Nombre, Apellidos, Dirección. Teléfono, Nif, Fecha_N ac, Nacionalidad. Sexo, Firma, Salario, Capacitado) M:C (Código_Enlp/eadQ) NO_CAPACITADO ~ • 251 EDICIÓN (Código Curso, Fecha, Lugar, Horario, Cód_Ca~a('jtad()). __.l Semántica no recogida B:C, M:C Llegados a este punto, se debe considerar con que medi s (aserciones o JI~paradorcs, procedimientos almacenados, modificaciones a los programas que .'(ceden a la 80.... se controlarán las siguientes restricciones no abordadas e la ) n Iran,fonnación al relacional: Figura 2.2.5 • Exclusividad de la jerarquía de empleados. Propuesta de solución • Exclusividad entre las relaciones IMPARTE y RECmE. muestra En la figura 2.2. 6 se el grafo relacional con el resullado de l.• • Todo curso lo recibe al menos un empleado, uansformación. 1o""dPor otra. parte. en el enunciado original, no hay restricciones que no se hayan , .. JI o reflejar en e esquema l ElR' nI se conSI era necesario introducir otras id r~'l ' ' _ ' n(CIOnesque no figuraran en el mismo,
  • 132. -2,2: TRANS¡--ORMACIÓN DE ESQ1IHMAS ElR A r:S<.,>UEMASREl.ACIONALES 'ROBLEMA 2: CAMPEONATO DE AJEDREZ ~nunciado . btcnido en el prohlema 3 del capítulo I en un Transformar el esquema E:JR ~ I l' ~primarias y candidatas. a~1 como ' I '1 q e se indique as cave" n -squcma relaciona en e u " á' e aparece recogida en eI esquema as claves ajenas .. LnddleC'e,rn' alaSltl~I~~~;I~l~:~~~ ~t~~:o r lacional. e :IR pero que se pier ' Discusión del enunciado 253 eficiencia crearemos una relación correspondiente a supertipo y ve l remos mas adelante cómo transformar las interrelaciones asociadas a los subtipos. Por tanto, la entidad PARTICIPANTE dará lugar a la relación PARTICIPANTE y sus atributos serán "N_Socio" como c lave 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 tuplas correspondientes al tipo de participante árbitro y que tomará un valor en el corrcspondicrue dominio para aquellas tuplas correspondícnre, al tipo de participante lugador, Corno puede observarse, las propiedades de la generalización, totalidad y exclusividad se conservan al introducir el atributo discriminante "Tipo", El atributo multival ado u " Campeonato" se transforma en una relación denominada CAMPEONATO cuya clave primaria será la concatenación de los .uributos "N_Socio" y "Nombre" y donde "N_Socio" será clave ajena que referencia a 1.1 relación PARTICIPANTE, Las opciones de borrad y de modiñcacíon de dicha o clave serán en cascada. .. Presentamos en la figura 2.2.7 el csque ma FJR del que partiremos. HUII'I PARTICIPANTE(N 1 I .11 t (:Al1PEONATO I, (', I a-c. M:C IR.Rllk~) 11(¡AI)CUt .. , , .01 Socio, Nombre, Dirección. Teléfono, Tipo, Nivel*) (N Socio. Nombre, l'IPO) Figura 2,2.8 ,U.nl . 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 correlativo cun 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' I I 1I e •• 1 l' l •• I '11 , ~ART1I)' 11 • '.1 l.a entidad PAÍS participa en dos interrelacion es binarias que pasamos a estudiar: ;, !_a inlerrelación Envía. cuyo tipo de co rrespondencia es I:N, propaga la clave de 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 para 1,Ir411csc eliminen participantes al intentar borrar un país y la de modificación en .ttl~J! :I'i".. ("IIII1I:IU.IOII ' ~, Ftgura 2,2, 7, Esquema ElR a transformar , li ., creada para los paruci 'pal11l" 11 Se cornenz~rá trans~on~and~!>I~;~~~~i~~~al~I~~nsformación d~ una campeonato. EXisten varta,S for~ mu pocos atributos propios Y bu l, y este caso co rno los subtipos llenen jCr~~l::::;: _.'e ". . •••• . ~. .•..'. ~ inlerrelación Representa es reflexiva y para evitar valores ::I/,lt una propagación de clave, crearemos una nueva relación, Irll"I:1de dos arríbutos "País" y "País_Representado". Ambos ,lfl,1O en principio la clave primaria, sin embargo, dado 1" nulos, en vez de REPRESENTA, atributos juntos que cada país - .....•.•..•..•• ••••• ~ ~~
  • 133. .••••••••.••• •••• .•••• ~ .~ ' • RA·MA DISEÑO ()!1 BASES DE DATOS: PROBI.EMAS RESUP.LTOS epresentado sólo puede aparecer una vez. se tendría quela relación REPRESENTA -ndría a lo sumo tantas tuplas como la relación PAÍS. por tanto con el atribut o País_Representado" sería suficiente para identificar cada tupla de la rela ión c .EPRESENT A. por lo que será su clave primaria. Cada uno dc e stos dos atributos es lave ajena que referen cia a la rela ción PAís. En ambos casos las opciones de borrado modificació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 q un país representado no ue uede representar a otro países. s ~ + I M C' fl r De ESQUEMAS ElR A ESQUEMAS REL.ACIONALES 255 , ~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 y máxima de dos Juga.dores y un árbitro p partida. Sin embargo no podernos recoger or en el esquema relacional que todo participante participe como mínimo una vez en el campeonato, HOTEL (Nombre. Dirección. Teléfono) t H K f e AL()JA (N ParlCipante, F Entrada. F_Salida", Nombre _H) REPRESENT A <PaÚ ,ellreSe/lradQ. País) r;c 22: TRANSFORMACiÓN + M (' 8 R, M,e PARTICIPANTE (N Socio, Nombre, Dirección, Teléfono. Tipo. Nivel*, País) , PAIS Ceíili, Nombre. N_Cluhes) Figura 2.2. / O U k.i'1C' PARTICIPAN'rE U::l."Socio, ombre. Dirección, Teléfono, Tipo. Nivel"'. Pais; N Figura 2.2.9 La entidad PAR7'/DA se transforma e la relación PARTIDA. Esta relación n .endrá corno clave primaria el atributo "Cód P' y como atributos que no admiten valores nulos él "Año", "Mes" y "Día", La interrelación que asocia PAR7'/DA con JUGADOR es N:M, pero no se transformará en una relación sino que excepcionalmente. dada la cardinalidad (2,2), para optimizar las comprobaciones que se tendrían que realizar si creáramos una nueva relación. como por ejemplo, que una partida ~óln la jueguen dos jugadores y quc cada uno de ellos participe con un colo de ficha, r distinto, se ha optad por introducir en la relación PARTIDA dos atributos. o "Jugador I " y "Jugador?". Ambos serán claves ajenas que referencian a PA.RTICIPANTE y que tendrán como opción de borrado restringida y de modificación en cascada. Además, se añadiría un atributo "Color 1" que tomaría el valor negro o 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, ):a que evidentemente será el co no elegido para el jugador 1. Ni siquiera es necesario lor este atributo si se adopta (como nosotros haremos) el convenio de que el jugador I siempre 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~llr 2 y que los valores que tornan ambas c laves ajenas se correspondan en la relación PARTICIPANTE a u tupla cuyo atributo "Tipo" torna el valor jugador. na También existe una interrelación entre PARTIDA y ÁRB/TRO que al ser I:N propagará la clave de PARTICIPANTE a la relación PARTIDA, por lo que se ICI,H,h':1 un atributo "Árbitro" que no admite valores nulos, clave ajena que referenCIa ,1 PARTICJPANTE con borrado retringido y modificación en cascada. Se necesitarla la s restricción de que el valor que torna el atributo "Árbitro" se corresponde en la relacl<1ll PARTICiPANTE a una tup cuyo atributo "Tipo" toma el valor árbitro la . Los participantes del campeonato se alojan en hoteles, entidad que se transforma en un~ relación HOTEL cuya clave primaria es "nombre" y COI no claves alternativas la '¡d~recclón" y e "teléfono". Existe una interrelación l N:M entre HOTEL ; P~R71.CIPAN~E que se transformará en una relación denominada ALOJA cuya clave pnlnarr.a estará compuesta por dos atributos. "NombrcH" y "N_Participante", que rc:~pectl~amente refer~ncian a HOTEL y a PARTICIPANTE, ya que tambié son n claves aJen~s. La opción de borrado para "NombreH" es rcsrnngida, ya que no se puede pcrnutir ~ue borren un hotel y se pierda información acerca de los participantes q~e estaban aloiados en el mismo. Las demás opciones que fallan serán en cascada. 10 se puede ~ecoger en el esquema que un participante al menos se ha alojado en un hotel, restricción que se deberá considerar p osteriormente. . Como la intcrre~ación pos~e dos atributos multivaluados, uno obligatorio y otro npcIO?al, que n~ .hablamos cons~derado en la rela ción ALOJA, podría ocurrir que para un ~llsmo. partlclpan~e y un mismo hotel tengamos distintos valores, ya que se ha podido alojar en el mismo hotel durante período de tiempo distintos. Para solucionar s e'te problema se ha adoptado la solución de aumentar la clave primaria con la fecha de entrada. pero puede ob servarse que bastará para identifi car a todas las tuplas los ~lnbutos UN-. Partíicrpante ,. y UF_ E ntrada " , ya que nu . " nca ocurrirá que un participante c aloje en la misma fecha en dos hote distintos. les llOtTEL (N9mbre, Dirección, Teléfono) 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Ú) Figura 2.2.// •
  • 134. -_ DISEÑO DE BASES DE DA'I OS: rROBLEMAS RESlJEL lOS Transformaremos la entidad débil SALA en una relación, SA LA, con clave maria el atributo, "CódS". Esta relación tendrá. además, los atrib utos "Capacidad" N_Hotel". donde este último será clave ajena que referen cia 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' se nsformará en una relación MEDIO cuya clave primaria estará compuesta por lo, ibutos "Sala" y "Medio". El primero referencia a la rela ción SALA y su opción de rrado y modificación será en cascada. K!fl.lo __ 2,2 TRANSFORMACiÓN REPRESENTA ('-¡l!!~~!:Ll.J~IilllO, r.==--===:!....::.O=-c_::~1~.I t ~ "ARTICIPANTE _j1 u c. 1 I I ( N SOCIQ.Nombre. Dirección. Teléfono. Trpo, Nlvcl*. I (1'/ L..!:~========::;==C=A=M=I)=jE-O-N-A-T-O B R. t < 111 R M< 1 uk Uk 1( PaÚ') IlC tI SoCtO, Nombre. Tipo) 1( PARTIDA (Cód P. Año. Mes. Día. Jugador l , Jugadorl, Árbitro. N_Sala, Entradas) L ---. I~(.·.~t( MOVIMIENTO IlII. M:( I .. HOTI<:L HOTEl, (NQJ11bre.Dirección, Teléfono) tL País) - PARTIDA (Cód P. Año. Mes. Dra. Jugudorl , Iugadorl ; Árbitro, N_Sala, Entradas) _J 257 PAís (flili, Nombre. N clubes) Las partidas se juegan en una determinada sala. por lo se ha de añadir a la ación PARTIDA un atributo no nulo denorninado "N_Sala" que además será clave ena que referencia a SALA y que tendrá como opción de borrado restringido y de odificación en cascada. También se añadirá el atributo "entradas" que proviene de ti terrelación Celebra. r= DE ESQLaóMAS EIR A I:S(Jllt-:MAS RC,LAC:IONAI.E$ ( Nornh[c. Dirección, Teléfono) ====~----------_--~ 15.(' 1 ----, 0'(' M(' ALOJA SALA HI ,MI F Entradª, F'_Salida", NlIlllbr/!_ff) r Hf 1 (' (Cíd s. Capacidad. N_hotel) t +L.:=- MEDIO (Sula, Ms:dio) H R ,, (' e: (N Participante. SALA (~7ód S, Capacidad, N_liotel) 1 (Partida, Jugada. Movimiento, Comentario) --, ti e 1 ( MEDIO (SIIICI. trls:dIQ) Figura 2.2.12 Figura 2.2.1./. Esquema relacional sotucián Por último. sólo queda transformar la entidad MOVIMIENTO. que se convcrur.i n una relación llamada MOVIMIENTO, cuya clave primaria será la concatena ció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' Semántica no recogida . . Además de I,a sernál~tica considerada en el correspondiente ,IJlllulo. se debenan considerar las siguientes restricciones: ejercicio del primer :ascada. t I 11 C'. MOVIMIENTO • F.n la relación PARTICIPANTE se debería construir una regla de verificación para c~ntrolar que las t~plas correspondientes a lo árbitros del campeonato tcn~a s ~;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". • PARTIDA (~ód P.. Año. Mes. Día. Iugadorl , Jugadori: Árbitro, N_Sala. Entrada~1 En .Ia,relación PART~A se tendría que crear una re la de verificación g para controlar que un Jugador no puede ugar consigo mismo, j ~I(' (fartidll, Jugrul.a. Movimiento, Comentario) Figura 2.2,13 • :S debería 'Jc controlar con di paradores s que las claves ajenas "Jugador!" , l~gbador2:' en PARTIDA son valores correspondientes a 'J'ugadores y que eYI .1Ift uto "A r bitro" t rne e I valor de u participante , . uro o n que es "un árbitro. Propuesta de solución En la figura 2,2.14 se muestra el grafo relacional con el resultado lk 1.1 • rodo participante se aloja en un hotel. transformación. ( .1 -••........•.....• •• •••••• . ..•..••.•• r ~ o CHECK ~ ...l "'' ~ ,,' ... '
  • 135. ,.i"•• '.,.,.l.,. l.••••••••••••••••• 2.2: TRANSFORMACiÓN DE CSQllEMAS "'IR A ESQUEMAS RELACIONAI.ES • En cualquier sala se celebra al menos una partida. Discusión del enunciado • Todo jugador juega al menos una partida. • Cualquier árbitro arbitra al menos una partida. Para realizar 1.2.15. • :!59 En toda partida siempre hay corno mínimo un movimiento. la transfonnaei6n p artiremos del esquema mostrado en la figura Se deben proporcionar elementos para calcular: • Secuencialidad del código de país. • Secuencialidad del código de partida . • Secuencialidad del número de movimiento dentro de cada partida . ., I l. Debe considerarse además, aquella semántica presente en el enunciad y o pudo reflejarse ni en el esquema F)R ni en el esquema relacional: que no I." • IN,;" ] Un árbitro no puede arbitrar partidas en las que participen jugadores de su mismo país, • Por último. se han convenientes o adecuadas: • • • • • de in cluir aquellas restricciones que I• 1--10 ...I !I"'~ 1.1 I 11.. . ¡.I I xe consideran lo f •• El número de entradas vendidas para una partida, no puede super ar la capacidad de 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 mismo hotel. Corrección de los anteriores intervalos, Un movimiento se describe con una cadena de ci co caracteres eorrectamcn« n compuesta'" y que representa un movimi ento legal para la partid que se (.',1.1 a jugando. ''lo' l. <... ~ o., ...._ ;1,,,,.... ~ • •• • ....."...., . , ." ",0",,< 4- 1111'~ ,' I ........ ~ Figura 2.2./5. Esquema éiR . (I transformar Como ya sabernos, toda entidad del modelo E/R se transformará en una relación ~11 el ~lodelo. re~acional. Así las e ntidades 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, ZONA ¡C,ódiflo.Con~unlo_~1edio. Núm_Pan. Núm_Emp. Núm_Inst) PROBLEMA 3: ENERGÍA ELÉCTRICA RED (R~-º) COMPAÑÍA (Non1bn:) Enunciado el esquema EIR obtenido en el problema 4 del capüulo I en 1111 . I ., .I·d· esquema relacional en el que se indiquen las caves pnmanas y cancn atas ,'·'IS{ :111111' ... . , . 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 rela ional. c Trunsformar PR(.)VINCIA (Códiflo. Nombre) TRANSPORTISTA (Nomb~. Dirección) SUREST (N ~lIbesl) SUMINISTRADOR (Nombre. Pais) ES'!' PI{IMA CN!!mlm:.Transformadores) Figura 2.2./6 :Q Se ennendc, para to' expertos en 3Jedrel.. que 'e trata de la notación algebrarcu '
  • 136. ~(ln DISEr':O DE HASES DI' DAIllS '( S I'KUIl1.E~r..!!II~S~· R~E~S~U~E!: 1.1:!Q)·L :':" --'- . '. . tid: d débil con respecto a la entidad RED, que La 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...e Últl1l111 t 'd' b .1 po r e l atributo "N _ 1• inca" y .por la clave I pnman~ de laYrel,lclon. 'U~opciones e orrauo atributo será adernáv, clave ajena de la re aCI6 n LINEA • s . modificación serán en cascada. RED (~) B:C.I.IC LÍNEA (Re¡/. ~ 1. TRANSI'ORMACIÓN (lIM " N Línea, Longlludl Comenzamos el estudio de la transformación J f-.SQUEMAS REl.ACIONAI.I'.5 de las interrelaciones 261 1:N. En primer lugar tenemos una interrelación Cabecera que enlaza las entidades t.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 una red solo puede tener como cabecera una estación pnmaria, por lo tanto la Iran,furnlaClón la haremos propagando la clave prirnana de la relación EST _PRIMA hacia la relación RED y elite atributo será clave ajena de la relación RED que rdcrencia 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 no podrá hacerse con puesta a nulos. tendrá que hacerse en cascada o restringido. La modificación se hará en cascada. Figura 2.2.17 EST_PRJl-lA .• el esquema E/R. f ormacion de la J' crarquía que .•aparece enS'OLA/? NUCLEAR ll' En cuanto a la trans . ' PRESA 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 ql' la lransfornlación al r lacional se rara consi er e . las 1" , . '. no una relación de esta forma. tendremos as re ,ICIlIh' conforn1a~ la Jerarq~lI~ c~OLAR NUCLEAR y TÉRMICA. Las cuatro últimas lIa PR()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 .1 pnrnaria de la re aCI n . I . a de los caSLIS se haru ,"1 I .. 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 1>1-. ¡":SQUEMAS E/R (Nonlbrc. Transformadores} 13:('. M:C' RED (Red, Nombre¡ Figura 2.2./9 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. LíNEA (Red, N Línea, Longitud) PROD"JCTOR <t'Qmbrc. Proo_Mcdia. Prod_Máxima. ¡:_Inicio. Tipo) B<:.MC SUBEST PRESA (NO/libre, Cap_Máx. Ocupación. Turbinas) (N subcst, Red*. N_Ltllea*) Figura 2.2.20 B.C. M·e SOLAR <fVcunl?rc. Superficie. Horas_Sol, Tipo) R·C.M:( NlJCLEAR (N",,¡!Jre.. Rcactol'c~. Residuos, Plutoruo) H:C,M e . ~or último, la interrelación existente entre las entidades ZONA y PROVINCIA, se 1.1Il,lorma. como en los casos anteriores, propagando la clave primaria de la relación I'~()VINCIA hacia la relación ZONA. En este caso la clave ajena no puede admitir Illrc~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 se 1IIIInc un" provincia de la cual dependan. La modi Ilcucién sera en cascada. 'rÉRMICA (NQllr¡,rr. Carbón, Hornos. Gases) Figura 2.2. /8 • •• •••••••• ••••••• •••••••••••••••••••••••••
  • 137. •••••••••••••••• r••••••••••••••••••••• 4..' R." 11 ~6! DISE.NODE B/SES DE DATOS. PROBLEMAS RhSU~,LTOS e I'ROVINCIA 2.2: TRANsrORMACIÓN ~~ ••••• OC ESQUEMAS E/R A ESQUEMAS REL¡CIONALF.s 263 RED (lkQ.. Nombres (Códl~Q.Nombre) _ 1(' I1K 1 ZONA (CÚdliQ. Con~um(l_Medlo.Num_Par1,N "'_ Ernp, Nllm _In" • C(Ítli~J •. P,lilO"" B:C. M·e 111) RED_COMPAÑIA (Nonlbre.Rl/dl _' B:C. M:C' rr--: Figura 2.2.2 J .__. COl1PAÑIA (l:':l)olb!cl Continuando el estudio de las nterrelaciones, i transformación de las interrelaciones N:M. vamos a comentar la Figura 2.2.23 Entre I as enuid ad es SUBEST y ZONA existe una interrelación, Distribuye qued e-, 1 . " diIS .tribuye a varias zonas y a una ITI1Sma . , a puchará zona en 'M pues cada su b estaClon . N.' .' ,'. . L t ansformación de esta Inlerrelaclon se ar a distribuir 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 la ZONA además cada una de ellas será clave ajena qu ".. ' . l: '. cua I provienen. El borrado de ambas se hará en cascada o restringido rnienn as que ,1 . modificación será en cascada, La entidad RED posee una interrelación reflexiva N:M que, además, tiene un atributo propio "Volumen". La transformación se hará consid erando una nueva relación ENVfA_ENERGÍA cuya clave primaria estará formada por la red que envía energía y la red a la cual es enviada la energía. Ambas serán claves ajenas que rcferencian a la relación RED. Además la relación ENVÍA_ENERGíA tendrá un atributo propio "Volumen", pues en el enunciado se nos decía que se deseaba recoger Id cantidad de energía intercambiada entre dos redes. El borrado se hará restringido en ambos casos para conservar esta cantidad. y la modificación será en cascada. r-........ Nrnnbrei REU (&U, O.C. M 111 e ENVÍA_ENERGfA SUBEST _ZONA (Codigo. N Sub,st) ,.-----------' R. 'w1 C ( ~edI Re 2, Volumen) u.e, M:C • y~ ZONA (C6digo, Consunlo_Medio. Nun'l_Part. N'1111_E,1l1P, Núm -' lnst , ('ódigll - Provincias Figura 2.2.22 RED Y C OMP A ÑIA e l az a las. entidades aci , La interrelación Pertenece que en form análooa al (,':1'" ' , 1" N'M y por tanto su trans ormacion es e también una Interre acton, . ' ," sc ada o restrin!!ld,' anterior, Los borrados de las claves ajenas son, como antes, en ca. las modificaciones también son en ca~cada. Figuro 2.2,24 La última interrelación N:M que nos queda por analizar es Entrega. que enlaza 1,1 entidades EST, PRIMARIA y PRODUCTOR. En principio y Con10 ocurre con todas 1.1 interrelaciones N:M, su transformación se hará considerando una nueva reación l "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 la nUC¡j relación; en principio las claves primarias de las relaciones EST_PRIMARIA y PRODUCTOR se propagan hacia la rela ción intermedia EST _PRODUCTOR, pero '''111(1 un productor puede hacer entregas a la misma estación primari en distintas a kdla~ y. además, una estación primaria puede recibir diariamente energía de cada uno k' l()~ productores, podernos incluir el atributo "Fecha" en la relación 1)'1 PRODUC1'OR, haciendo que pase a formar parte de la clave primaria d la e :doll:1')1) , junto con las claves primarias de las relaciones EST PRIMARIA y 1 l'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,
  • 138. M DISEÑO DE flASES DE DA TOS I'ROfll.bMAS RESlHol.TOS 'IN1' CEST_PRIMA .- ....EST _PRIIVIA (NOD1OCe. Transformadores) EST _PROL>UCT()R r+: (Na/libre _J '-i~ PRODUCTOR R R. Me Prod. NO/libre Esl. e --l ...-~ PRODUCTOR (Nombn;, Prod_Media. Prod_Máxinla. F_IOlCIO, e r. 1 e PRESA (/Vol1lbre. Cap_Máx, Ocupación. Turbinas) 2.2.25 BC.MC SOLAR (Nol1lbre. Superficie, Horas_Sol, Tipo) 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 sumini trador y que este s plutonio puede ser transportado por un mismo transportista en distintas fechas. lo cu:d indica que la clave primaria debe estar formada por la concatenación de las claveprimarias 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.1 siguiente figura, El borrado de las tres claves ajenas será restringido para mantener l'l histérico de las compras dc plutonio. La modificación será en cascada. s.c. M:C .-. NUCLEAR (No/nbre. Reactores. Residuos, Plutonio) R:C. M:C TÉ _RMICA (NO/libre, Carbono Hornos, Gases) SUMINIs'rRADOR (Nombll:, País) RANSPORTISTA (NQmbr«. Dirección) e R. M e R R. M;C .....--<.~ e IR e, M e (jk{I. Nombre¡ ~-------~==~IB~.R.~le (Nmllbre. Reacturev, Residuos, Plutonio) ENVÍA_ENERClA SUMINISTRADOR B R. M COMPRA (NoulbCl' Nuc. NOlllbre SIIIII. Neulbre Taull. ¡'echa. Cantidad) ~RED r---I~NUCLEAR R R. M (NQmbre, Prod_Media. Proo_Máxima, F_Inlcio. Tipo) B Tipo) 265 (Nombre. Transformadores) ...- Fes;ba. Canudud) B R. ~t Figura 2.'2: TRANSFORMACIÓN DE ESQUEMAS .... A ESQUEMAS REI.ACIONAI.ES JR It. MA RED_COMPANIA (t:lombre. Par~) JRedl, RJd2. Volumen) (Noy,bre.Red.) B C. M;C R:C. M C ~RANSPORTISTA COMPRA ._.. (Nombre. Dirección) R·R.~I.C (NQ/Ilbre Nltt:. Nonlbre B;R. "'I:C 1 r--+ LÍNEr (Red. N Línea. Longitud) B;R. M:C SIIIU. Non, re Trans. B:K. M'C Fecha. Cantidad) ~ Figura COMPAÑIA (Nombre) SUBEST (N subest, Red", N_linea*) 2.2.26 B:C. M:C SUBE'''' "",T_ZONA (Codigo. N slIbesl) II---------_jl B;C. M e Propuesta de solución ~ En la ñgura transformación. 2.2.27 se muestra el grafo relacional con el resultado de 1.1 ZONA (C(!sJi¡':Q. Consumo Medio . Nüm Pan, Núm_Ernp. Núm_lnst. I .....PROVINCIA C'lídi¡,¡o,../71'()lIll1l'ia) ! O.R. M:C (CQdi¡tQ. Nombre) Figura 2.2.27. Esquema relacional solucián •••••••••••• •••• i ••••
  • 139. r·.·•••••••••••••• ·•••• • ••••••••••••••••• - 2 2: TRA!"Sf'(lRMAC1Ót DE ESQUEMAS EIR A F.SQUE.,1AS RELACIONAI. ...S I...IRA 1 . DISEÑO DE BASES ~I; DATOS: PROBLEMAS RESUr.L ros • , -mántica no recogida """".e ( ·.1Ir·' Se deben controlar las siguientes restricciones acional: perdidas en la transformación al 1011.. 1.: '(' "1 IlIllkl,III' '" ,1) I tll.lI' 4IKC.ANI/ c 'f(tN ¡jI.., N,~"!,,,O IN '11' • ". I Exclusividad 267 I " t'¡jl" ¡ de la jerarquía de productores. N .' Todo productor entrega la energía que produce al menos a una estación primaria. j(.,,¡ Cualquier estación primaria es cabecera de al menos una red de distribución. ,. O Toda compañía eléctrica es propietaria de al menos una red de distribución. ., t <..!.t>' ",,~,.-lll l •"'J;.I 1I "UIr.R Una red de distribución es propietaria de al menos una compañía eléctrica. 11... '" , '" (.KII't'.kf .., 111-", la. '111) _~Illt 11" Cualquier red de distribución esta compuesta por al menos una línea. lit,' I Una línea abastece al menos a dos subestaciones. 1(.(',,,1 r~ , 1'· o-l-r==~== Toda subestación distribuye al menos a una zona. ':>--~~"~ A una zona le distribuye corno mínimo una subestación, 1)1'1..111, Rt" I~hlll ,1 PItA"'" <lo)Wr ," l. IS Una provincia se divide en al menos una zona. Habría que considerar, además. la siguiente restricción que no pudo reflejarse esquema E/R. ':1 La energía sobrante de una red no puede enviarse a sí misma. Por último, no se considera guraran en el problema original. necesario introducir otras restricciones Figura 2.2.28. Esquema I:.'/Ra transformar que n" 'ROBLEMA 4: CONFLICTOS BÉLICOS l:nunciado Transformar el esquema EJR obtenido en el prob lema 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. )iscusión del enunciado Presentarnos en la figura 2.2.28 el esquema ElR del que partiremos. 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 r lación e denominada CONFLIC ro compuesta por l s siguientes atributos: "Código C" corno o ll¡I'~primaria, "Nombre" como clave alternativa, "Muertos" y "Heridos" donde estos J()~ultlm?~ admiten valores nulos. El atributo multivaluado "País" se transforma en una relación PAfs cuya clave primaria se formará con la concatenación de dos J(~~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ó CONFL1CTO y cuyas n "pCionesde borrado y modificación so en cascada. n :a:a facil itar el control de la totalidad de la jerarquía. se incluye el atributo tI"crltntnant e "Causa" que, natura 1 .. . ausa mente. no admitirá valores nulos. La exclusividad de la Jerarquía se controlará con una aserción. ~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 CH Junquc . d I • llene para ev~tar que ca a uno ~e los atributos multivaluados que estos subtipos n se convierta en otra relacón y dado que no tienen ni más atributos ni i nterrel'c'Iones propias, se h a pen . a sado en tomar corno clave primaria el ódigo . del c I
  • 140. !(¡) __ DIS¡'::'40 DE BASES DI. DA lOS PIH)BI I'MAS ¡{ESll!:L TOS ..:.' _.!:Il , 1, , . .." "el nombre de la región, la religión, la materia prima ~ la e~nia conflicto. 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. !!.:.'.,~.'c._ ....:2,~'1¡{ANSfORMACIÓN DE ESQlif.MAS ElR A ESQUEMAS IlEI.ACIONAI.F.S CONFLICT() (Cndi~Q e, Nombre, Muertos, Heridos, Causa) --,II R .M r "C.... INTERVIENE(Grllpo. .. r----_JIII ~ -- RACIAL «(c!d;~o C. ----,I EIDIíl) L-__ r .-J lit" H c. M e -'1 p¡is <(Qdigo C. p¡~) ....------'j I! r. 1 1 l---'~¡a.CONF~,IJTO (Qli/i¡:o 1 e ..., 1 11 ~ A rones, Tanque" Bar<.'n" Figura 2,2,30 ( ECONÓMICO (CÚd,~(I C. M Prinla) ...- R 1 f 101, F_Fin DIVISIÓN (enfeo, DlISIÓp. Bajas, Hombre', RELI<;JOSO (C!)dl~o C. ReligiÚn) ~ COIlj1I1;IQ, GR 1'0 (Código, Nombre. Bajas) ~(M 1 TF.RRITORIAL (CódIgo C. ReglÓn) I II( le _....J ~ 2f1'1 (, 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 (,;11n10lave alternativa tendrá el atn UIO c o I,l rn pnmana , . ivad "N B" s' que se co nvierte en un atributo de ~ 'I.I Tenernos un atributo d(,;nv~1 O 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 ,1 ' DIVISI N (proviene e a en 1 , de recalcular el nÚI11erO lolal de bajas, L 1" DIVISiÓN se compone de los atributo "Grupo" y "Divisiól~". JU11l1" s: , a re acion • ' ., ya que existe una interrelación en identifi cación I:lIl1l aciuan como clave pnrnan a., .,.' ou , referen bh GRUPO por l que el atributo "Gru o po sera clave ajena que , esta ta a y, , '" . d Otros atributo GRUPO y sus opciones de borrado y modificacíón ,~e~~11 ca~c·~'Ba. . .: y "Bal.l' ~n bligado , serán "Honlbres". "Tanques. AV iones, arcos , cuyo va I 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 PI rtn~abS o tcl~';SI~i" paru ti'" , 'a sino que además se me uira e a uo las dos relaciones que asoci ,1 , id d 'd' I clave primaria Esta re lación III:IK de esta forma se pueda asegurar la uruct a ,e da "F F' " En l'a transfoflllacintl 11' , ' otro atributo que admi va lores" nulos denomina o , -, In . rmtc 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 c uyas opci ,, d' .do y la rnodificacii1tl ,'1 o en cascada, Elegiremos la opción de borra o reslnngl cascada, Construimos las relaciones ARMA y TRAFICANTE provenien tes 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ón rRAFICANTE sólo tiene un atributo, "Nombre" que obviamente es clave primaria, P"ra recoger las armas que pueden suministrar y la cantidad, se c rea 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 embargo 1,lri! N_-rraficante" será e cascada, En ambas la opción de modificación será en " n ,',Il'ada, Esta relación tendrá un atributo "Cantidad" que controla el número de armas .lccada tipo que puede proporcionar un dete rminado traficante, La interrelación ternaria existente entre los tip de entidad 7'/P() ARMA, os II<AI'/CAN,/'é y (;Rl/PO ARMADO se transforma en una relación, SU MINISTRA, 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 las relaciones 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 ca cada. Aunque como hemos dicho las opciones s "'ltlrían ser otras dependiendo de la semántica que se quiera recoger. pero siempre ,klllro del espectro restringido o en casca da, Esta relación además contiene un atributo ' .Armas" que proviene del atributo que posee la interre lación Suministra, uoee La entidad 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 mod ificación serán en cascada, También eSI:! co mpuesta por un 1IIIhuIOue no admite valores nulos denominado "Apoyo", q 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 dos It'T'l'Iacione~, una con LíDER POLIT, y la olra con OIVISI6N, La clave ajena ,. .................. •••••• ~ ~ ~.~' '.~ .• ~
  • 141. u DISEÑO BASES DE DATOS: PROBLEMAS RESUt:LTOS DE '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 ompucsta por d os atn ibuto,s, "División" y "C- Grupo" que si" que admitirán valore, l. . 1 ulos. 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) I ij R, " e 2.2, TRANSFORMACiÓN DE t:SQUEMAS ElR A ESQUEMAS RELACtONALES t> litA 1 , B,R, M,(' ~,...------' 271 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 MEDIA cuya 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", donde eSte ültimo admite valores nulos, Para que el atributo "T_Ayuda" torne solamente valores de su dominio (médica, diplomática o presencial) se creará la correspondiente regla de verificación, Tanto "Conflicto" como "Organización" serán claves ajenas que referencian a las relaciones CONFLICTO y ORGANIZACIÓN, respectivamente, y tendrán como opción de borrado y de modificación en cascada GRUPO (Código. Nombre, Baja~) ~B(',M(, ARMA (Nombre, Indicador) + 1>IViSION (Grupo. División, Bajas, Hombres, Aviones, Tanques. Barcos) III:R, M e IHRMC STOCK (N Arma, N TrqtiC(llIle., Cantidad) r-r-: ..... 1 »,(' ~I (' JEFE (Código, Rango. e_en/po', Ditisión', CÓi_Líder, Cfd_Crllpo) + TRAFICANTE .r---------------~I (Nombrc) LfoER (QóJ Líder. Cód Gn//'f}, Apoyo) ____J 11'(' M (' L.._ Figura 2,2,3/ Puede observarse que en esta relación, JEFE" aparecería dos vece~, ~I CÓdig~,d~ de ( C_Grupl ) grup o armado , la primera como clave 'f ajena proveniente("Cód DIVlSIÓN los valores 4"" G ") la segunda como clave ajena proveniente de L O ER _ 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:' ' se pretende mantener las dos claves ajenas, Hay que tener en cuenta q~ ,no todo J ,1 e SI , "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 L ,), I , 'loar la clave ajena a DIViSIÓN, claro que habría que añadir lgún m~c~nl~lnl': a el un ib " D'·"", , dis arador) que compruebe que cuando el atn uto IVISlon se a distinto II , (tipo I PI" "O' VISl n" , al t1enl(l" ' ió , el de "C Grupo" aparezca en la re ación 1 nulo, su va 1or Junto con '1' d borrado debería implementarse algún mecanismo que supliera as opciones :11 . l' ', difi ió n de la clave ajena eliminada, , Otra so Iucion, mue ho rná- •d' , una' con"" d,, o mas sencr a regla mo I IcaCI , d.rí 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, Los eonñíctos también se relacionan • con las organizaciones Inediadora~, 1 P:II,I iI "J d ORGANIZACIÓN en la re aCII' representarlo se transforma la entu al, .. " " "NOlllbrc" que la componen son, Código". , l' O RGANIZACiÓN y los atributos 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 ' ij:R,,IC Figura 2,2,32 Para reflejar la interrelación reflexiva Depende se creará dentro de , ORGANIZACION una clave ajena a ~í isma que podrá tomar valores nulos y cuya m "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~'e ajena que referencia a ORGANIZACIÓN, Ambas claves tendrán corno opción dc borrado la restringida y de modificación en cascada, CONFLICTO (Código c. Nombre, Muertos, Heridos, Causa) LIDER (Qrupo, Nombre. Apoyos) .L__----;::::J...~u e 1 I I DIALOGA (Grupo.Uder, Qrgal[t:(!CIÓII) K, 1 + 1 o K '11' e OR(.jANIZA~IÓN (CÓdigy, Nombre, ripo, nepJ/ldl.'_Dc') B N, M __10C M( 1 L~Il~r~'~I(~,_T~_~--MEUIA (C'l.!ltflicro, Orgel/ti;acjólI, F Ini. F Fin', T Ayuda, Desplegados) Figura 2,2,33
  • 142. , It .tA DISEÑO DE BASES IJE DATOS: PROULEMAS RESUELTOS DH ESQUEMAS FJR A ESQUEMAS RELACIONALES 273 Semántica no recogida ropuesta de solución s muestra e _.. En la fi ura ")2 33 g 2.1: TRANSFORMACIÓN el grafo relacional con el resultado msforrnacién. de l a Se deben controlar relacional: • las siguientes restricciones perdidas en la tr nsformación a al Exclusividad de la je rarquía de conflictos. • Cualquier jefe militar obedece al menos a un lfder político. TERRITORIAl. (C6dleo C. R'&160) ~----------' • ,.-- -J K r." ( Prima) (CÓdigo C. M ECONÓMICO Una división es dirigida por al menos un jefe militar. • ' ... ( R ( Una división es dirigida por tres jefes militares como máximo. • Todo grupo armado dispone de al menos una división. nePotC Par,) PAÍS e CÓdiea C. L-_-, • Todo grupo armado es liderado por al menos un líder polftico. 11(" M C. ~;;;;~l NfLICTO (códi~Q e, Nombre. Muertos, Heridos. Causa) • En un conflicto intervienen como mínimo dos grupos armados. • En un conflicto intervienen al menos do grupos armados. s ~RUPO eCódi¡¡Q,Nombre, Bajas) + HR.M~ I INTERVIEN"; "!R, ~t.(.. I (unIDII. • Cualquier conflicto afecta siempre como poco a un país. CQUfl¡cro.F loi. F_Fin) 10(.M(· . IlJVISIÓ"í (GLIU1II, Qi~I~lón, Bajns, Hombres. AViones. T Con un disparador. programas. se deberla: procedimiento almacenado o dentro del código de los se.,,, (CÚO I.(OC(. IJ~ER (ti" • Calcular las bajas totales en cada grupo armado. a partir de las bajas producidas en sus di visiones. COIPQ, Apoyos) I 1 JEFE .CódilW. Rangu, (_Grup". • 8 R "1( D"("" ',s' C'd _L d er, 11. (; I (oel. Grupo) BI< l ("" ARÍtA TRAFICANTE .,. del úmero de división n dentro del grupo armado. Por otra parte, en el enunciado 1l<l(!Jdo reflejar en el esquema EIR. eN2mb~) [8R'I( STOCK eN Auna, N Traficª"te. Cantidad) B(' lrj I a e.u e 8 (' M r ORGA Trati Arma SUMINISTRA ( .. la sccuencialidad <C6<II&.O. Indicador) •• r • Generar y asegurar 11 no hay restricciones que no se hayan . Por último. podría considerarse la ntroducción de otra restricciones que no i s lI!!uraban en el prob lema original. pero que proporcionarían calidad a los datos rre-emes en la so: nte, N_armas) e, M e IZACIONES (C~i¡Q. Nombre. Tipo. Depend IA('.Me OlA LOGA (!J.OIJ,!(.!.I..Cd,fC. Qc~a!l¡zaci.ó.a) 111. .,('1 original. • Una organización no depende de sí misma ni de ninguna de las organizaciones de ella dependen. • Separación entre intervalos temporales de mediación de una organización mismo conflicto. que en el j ~ e, M r , S~paraci6n entre intervalos temporales ll11snlO conñlcto. 1 C",,.t l • Corrección de los anteriores intervalos. Figura 2.2.34. Esquema relacional solución de intervención de un grupo armado en el
  • 143. ~ •••••••••••••••••• .~ .•.• •" •••••••• '.'•••••• .'•••• " 274 DIS[,IO DE BASES DE DA ros: PROBLEMAS RESUELTOS .' R.', PROBLEMA 5: GESTIÓN DE NÓMINAS R 0 ,tA. 1.~.TRANsrOKMACION DE ESQUEMAS E/k A ESQ! ¡'olAS REI.ACIONALES 275 podría repetirse: sin embargo. no parece lógico suponer que diferentes departamentos no pue~an cornpa~ir sede). El atributo "Departamento" es una clave ajena que referenCIa a la relación DEPARTAMENTO, s s opciones de borrado y modiflcacíon u s~rán ambas en cascada, pues la relación SEDE proviene de un atributo multivaluado. Enunciado Transformar el esquema E/R obtenido en el problema 6 del capítulo I en un esquema relacional en el que se indiquen las ~Iavcs primarias y c3n,didatas. así corno las claves ajenas. Indicar. asimismo, la semántica que apare.ce recogida en el esquema EIR pero que se pierde en la tran sformación al modelo relacional. I)EPAtrAM;;NTO (N9mbrn) 11 r: M e SEDE (Wslrtalllí!IIIQ. Sede) Figura 2.2.36 Discusión del enunciado Presentamos De transformar la entidad EMPLEADO obtendremos la relación EMPLEADO que te~drá los atributos "N.Mat" (clave primaria de la rela ción), " NIF" (clav¿ ahemativa), "Nombre". "N.Hijos", "Retención", "Banco", "Sucursal" y "N.Cuenta", Todos estos atributos no adm itirán nulos. pues en el esquem EfR se habían a en la figura 2.2.35 el esquema E/R del que partiremos. considerado C0l110 obl igatorios. La interrelación 1,1 1".11•• , , 11 ( '" ""l. ,>,¡"I 11011'01 It n! I ('~h.a t N1 ,I '" Ilnl ~ N :M Trabaja entre las entidades DEPARTAMEN1'O y l: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 dos pruncros atributos, cada uno de 101> cuales será a Su vez clave ajena a las relaciones ():PARTAMENTO.~ E ~:LEA?O. respectivamente. En ambos casos, las opcioes n Jl bor_rado y modificación seran en cascada o rest ringidas depe ndiendo 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 admite valores nulos, N I ,1<',. 1:lJ'.(,.. NT(.(·()~f', ElIII'LEAfJO (N.Mal. NI"", Nombre, N,HiJos, Retención. Banco, Sucursal. N.Cuenta) I "1 " 11 "1 1,,,.- ",,,.,j' ,~ OEI'A TAr.fENTO (Nombr~) , 1.1 B:(".~l<: a c wr TRARA.JA tDeparIpmelllQ. N.NlaI Funcrén) J Figura 2.2,35. Esquema ElR a transformar Comenzarnos transformando las entidades, C ada entidad dará lugar a 1111.1 relación: así. al transformar la entidad DEPARTAMENTO se tendrá la re.la¡;HlIl DEPARTAMENTO con un único atri uto "Nombre", el cual será su clave prllll,:'II,1 b (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,.!)I esta relación tendrá como atributos "Departamento" ( ombre del de,part¡lnlen~lll ,~ n "Sede" y su clave primaria estará compuesta por estos dos atnbutos (~1 h . 1" departamentos no comparueran sed e. "S xlc"e sena• I a eave prirnari a dado que 11· e Figura 2,2.37 JlI ~a. entidad JUSTIFICANTE D NÓMINA se transformará E e la relación n SllfrCANTE qu tendrá los atributos " e N,Mat" (proveniente de la entidad I,JIPLHADO) " "Ejercicio" "M " y "N .Orden l' ; Ios atributos den vados "Descuento" e 'L.. ' ,es ' hillllrcso" 1) d.r.11 consi erarse como Virtuales y cnlcularse en cada recuperación. "', ,u 5 ' .id o ,len Illillenall7,arse y recalcuíarse según se van realizando operaciones so bre el "I.jUcma. Optamos por materializarlos. con lo que la relación JUSTIFICANTE t ndrá e I.l1llhrénlos dos utribi Itos• "O escucnto ""l ngreso' ' y. como consecuencia habrían de .• e 'n'ldcrarse las reglas de cálculo de los mi ... os, m
  • 144. I,U,'I I)I~EÑO DE B,SI'S Dr, DATOS' PROBl.EMAS Rr!)l LLTOS k' Ii TR '"') _,_o La clave primaria de la relación JUS TIFICANTE estará formada por os atributo, l ercicio", "Mes" y "N.Orden" junto con el atributo "N.Mat" que proviene d la e idad cM PI.EADO. al tratarse la interrelaci n Recibe de una dependen ó cia en ntificación, Este atributo "N.Mat" es una clave ajena que referen cia a la relación 1PLEADO; 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 n ulo, dado que forma parte de la clave mariu 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 denómina c' único de su mes siempre tendrá númer de orden 1, Además. cada vez qu un o e jpleado recibiera más de un justificante d nómina en cada mes deberfamoe egurarnos. con un disparador, de que el val r que recibe la correspondiente tupla ul'l o lSTIFICANTE se incrementa secuencialmente como se afirmaba en el enunciado iginal. EMPLEAD() (N,Mal. NIF. Nombre. N,Hijos. Retención. Banco, Sucursal. t I n (', .JUSTifICANTE (t{"WIII. I M·( t 1 (N.Mal. Elercicio. ~. INGR~'SO .. I LfNEA <N.,MIl/, Ejercicio, ~ I N,Orden. Ingreso. Descuente) 1°('.1('. N.Orden. N,Llnea. ' Canudad) Figura 2.2.39 , ' r.A suce di' o mlsnlO quC ,'''11 ,,1 Con el atrihuto "N.Lfnea" en la relación LIN'" e 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 reación CONCEPTO. que 1,·,,,11.' l . >stO~ )Qr atributos "Código" (clave pnnlarla). y "O es "6" n, N'Inguno d e c. . al 1111111." cnpcl ldmitirá valores nulos. ,... ••.. •.. ' ~ '~ [:IR A ESQUEMAS REI.ACIONALI.S (Códi!:o.De,cripciÓn) (Al ." .. , ~'. ' <.W 'UU. ~frt'l( In • MLL 11-(' ',r , .r 'IC' , ~'..!>LIill:lI. .. II/c'a. Concepto¡ u L' Al "-./ .., Al I>ESCl'ENTOtAlA'." siaauu. !!L(..I. (!.Qr,'·· .. ti / .lit I( ~'; " A,_ I.LJ'J.UJ. .w,.u. .J.J!JlJ.l. 8~'e. Porccnlajc) Figura 2.2 -10 L.t entidad r.:LhM/::NTO COSTé' • , ' .:nnutos "Códi "('1 " se tran~lonn¡¡ en la rela ció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 admie t , , . eXlva onuene pod • . "'r,lgaclóll de clave. reflejando a" ." d e na transfonnarsc med iante " ((l~leque le contiene ,SI . . par ca a e a lcmento de COste e J' posible clerucnn, ., Opta I ()NTIEN . Inos por transfonnarl . d C 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 reación COSTE } l 'npl" I icacron en cascada o " , , ~ar os dos atributos de la relación corn j, ,restnngldas, Evitar mos el e '~~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íj sólo o .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 n coos ,1I1J1onen la clave prinlaria de la rela'cl'ón' ten. . nea" y "Coste"; todos J' untos ''''ene', a I a relación LINEA' el atributo "cY . odosalvo "c os.tc " son clave ajena que. . s ,,' , ' la ,: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 Integ dad referencial serán en n L.t entidad TRANS¡;/:.'Ré'NCIA I(), atributos "Código" (Clav~se lr~nsf~rma en la relación TRANSFE RENCIA pnmana). "Banco". "Sucursal" . "c uenta " y ., •••••• ( I'.svur IAS rt:i.!-1.aL furciC/(J. Mil. N,On/w.. N,l.jnej!. Canlidad. Tipo) EjercicIo. Mes, N.Orden. lngreso, Descuento) Figura 2,2,38 JUSTiFICANTE EA CONCEPTO La entidad LíNl::A se transformará en la relación LÍNEA con atributos "N.I1.,. ~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 so clave n ajena que referencia a la rel.Ie"," USTIFICAN'rE: las o pciones de borrado y modificació n de a misma scran ,., l aseada o restringida dependiendo de la semántica pretendida. DE ~77 !ran~fom1<lremos la generalización de u • relación diferente para el supertipo y a cad pos de línea optando por crear una ra relación DESCUENTO con clave p . . a uno de los subtipos. Obtenemng así la atriburos "Base" y "Porcentaje" adi~~:~~;~~ I~r~al que la de la rel ,ación LíNEA y dos Iw considerado en el e-quema ElR T bié guno. de ellos admite nulos pues así se misma clave primaria y que re'cl'bue01Idn s: obtiene la relación INGRESO con'la . u elilas por pO" interrelación I:N Responde el atrib t "c' r pagacíón de clave de la " C()NCEPTO cuyas opci nI 'd.o b oncepro'' uue _sera. una clave ajena a la U .' relación .d ." restringidas dependiendo de 1'1 s~ e~ t'~ orra o y Inodltlcaclón serán en cascada o I,)rnlal~ la clave primaria ta~ r;aJll~ca PI re~eóndida. El conjunto de atributos que to DESCUENT() , . serán clave , ajena a la relaci n aCI n INGRESO e n .1 re LiNEA ó .. ,olno en 1 a, relación ~ borrado serán en cascada o rest - id y sus Opciones de modificación iratamientn que se pr~tendan E~ Inngll a~ .nueL:amente dependiendo de la semántica y " ,a reacron INEA se incluy J ib . 11(1 admue nulos para controlar la t t lid d . ce atn uto "Tipo" que ~~neralizaci<.lnse ha de forzar con la i~~ I ~ ddeIla Jera rquía, ,La exclusi vidad de la USI n e a correspondiente aserción. N,('uenla) 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 un (todo justificante de nlÍl1l111 o )nsta corno mínimo oc una línea, que además es de ingresos) no se podrá recoge: ANSFOR.IACIÓ"
  • 145. ~ •••••••••••.•••• •••••••••••••••••• •••• DISEÑO DE BASES DE DATOS' PRORLatAS RESUtLrOS 1•••• • ' ' "R;, MI antidad": ninguno de ellos podrá admitir valores nulos al haber sido considerado, mo obligatorios en el esquema EIR. ¡-~ RA (10 2.2 TRANSFORMACIÓN DE E:>QUf.MAS I'JR A !'SQUEMAS RtlACIONAlES EMP ~E~ ~DO(~,MªI. NIF, Nombre. N.HIJo~.Rerención, Banco, Sucursal. N Cuenta) LfNE/ (ti,Mot. 6jercic¡Q, Ma {l{.Orden.N.LrneA,Canudad,Tipo} o C()S E (Códi¡o. Descripción.Saldo) SEO E (/.fflJaOtto¡ell/(J. Sed~ t tL PA TAMENTO (~Qmb[!.) 11 o (. M el , R-,,-.-M-¡.'1B(',Ml I CONTIENE (Coste. Cosie D) ue. M" U" Me 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á admitir ilores nulos al haber sido considerados como obligatorios en el esquema EIR. La interrelación ternaria Líquida se transformará de acuerdo a lo establecido por caso general de transformación, Sin embargo, esta interrelación tiene un atributo ultivaluado 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 atributoS claves ajenas que provienen de cada una de las entidades que asocia c'ta terrelaci6n. por ejemplo. "Coste", "Transf ereneia" y "Apunte". tendrá además, un ributo "Fecha". Estas claves ajenas tendrán las opciones de integridad referencial .ie corresponda (en cascada o restringidas) dependiendo de la semántica pretendida a 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 coste quidado con cargo a una transferencia el apunte contable está determinado cardinalidad 1,1) por lo que no se necesita el apunte para distinguir las lupias de esta elación; sin embargo, sí se necesita el atributo "Fecha" para distinguir tupla, orrespondientes a liquidaciones iguales aunque realizadas en diferente fecha. H c. M.e TRAB AJA (1kI2artnUlenlq,. N.Mar. Función) IMPUTA (N.Mat, fJercieio. Mes. N.Orden. N.Unen. Coste) Figura 2.2.41 H'C M.e I s.c. M·e JUSTI~ICANTE (N.Mar. Ejercicio. ~.lS.Ordcn. I ! 3~EA - I I IU("te (l!L/dot. Ejercicio. Mes, N.Ordell. N,['ínca. C anudad, Tipo) t CONCEPTO (CÓdigo, Descripción) He.M( IIC,M(' INGRESO (ti.M<lL JJJ:rcicin Me.l. N.Qrdfll, l!L1..{lJfiJ.. COIICl'l'tO) J u ( . 'Il D[SCUtNT() 10S tE CN,l!tll1. tJ€r(io.p. Mn. t:!..!Uck.tL tli.J,!fil. Rase. Porcentaje) 'úl;'"" o.~dp";ó" 5,1d" I O.C'.M.e lo ('. ~I C CONTIENE (Coste, Ca,lIe Q) H e COSTE (Código.. De~ripci6n. Saldo) APUNTE <Códilio. Cantidad) Uf ~1r LlQUJnA (Co.Vle.Tr<IIIJ[cU/lCI<!. A¡.mnle. Fecha) nc.u r ~e'H Figura 2.2.42 ~I.¡ HC' M IMPUTA TRANSFERENCIA (Códi¡¡Q.Banco,Sucursal. N.Cuenta.Cantidad) Ingreso. Descuento) (¡'{.Jol. EierJiciO. M~.r N.or1ell. e N.I..J.z,a. enSle) + TRANSFERENCiA (Código, Banco. Sucursal. N.Cucn la. Can!idad) .... APUNTE (CQ(Ji~. Cantidad) Il,¡ , M ( I.IQlJ rOA (Cu,:I'. IJ:¡JJI.Siiu.·ell~'¡!J, OJ'III1/f. fe.ffiu) ue 11(" a (, Ml Propuesta de solución El resultado de la transformación puede verse en la figura 2.2.43. Figura 2.2.43. Esquema relacional solucián 271} 1'-'.
  • 146. - DISEÑO DE BASES LJE DA1'OS' PROBLEMAS RESUELTOS :80 DE ESQUEMAS ElR A I-'_"QUEMAS RELACIONALES 281 PROBLEMA 6: ENTORNO DE EJECUCIÓN Semántica no recogida No ha sido posible recoger dentro del modelo restricciones que sí se recogían en el esquema EIR: • • Exclusividad • las siguientes Enunciado Transformar el esquema EIR obtenido en el problema 7 del capítulo 1 en un cxqucma relacional en el que se indiquen las claves primarias y candidatas. así corno la, claves aj~nas. Indicar. asimismo, la semántica que se recogía en el esquema EIR pero que se pierde en la transformación al modelo relacional. En cada justificante hayal menos una línea. • • relacional de la jerarquía de líneas del justificante. Una línea se imputa al menos a un elemento de coste. Cada empleado trabaja en al menos un departamento. Todo departamento 2.2: TRANSFORMACiÓN Discusión del enunciado tiene una sede. Presentamos en la figura 2.2.44 el esquema EIR del que partiremos. Se deben proporcionar además mecanismos que soporten: Ik.,.,,1o. .111 f ••.1-,: r _J • IJII • 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 .U,n • ,~ ftStn t" - .. .-----~~~-IN !I ni del número de línea del justificante. Habría que recoger, además, bien mediante disparadores: asercione- " codificándola en las aplicaciones que ac cedan a la BO. la semántlc~ que. clandll presente en el enunciado, no pudo recogerse ni en el e squema ElR ni en el mOl.kl. relacional: • Cada empleado recibe al menos un justificante de nómina cada mes. • • • Existe al menos una línea de ingresos en cada justificante. • La cantidad en una línea de descuento es negativa. Un empleado no puede recibir nóminas tras la extinción de su vida laboral. Figura 2.2.44. Esquema ElR (/ transformar La cantidad en una línea de ingreso es positiva. Por último. se consideraría cualquier otra restricción que se considere apropiada • ,O . . Un elemento de coste no se conucne a SI .' rrusrno ni es! á contcm id o en ninguno'!.' sus descendientes. O e( ~"~•••••••• .,;O O eO C~n1enzamos transformando la entidad USUARIO en la relación USUARIO t "DNI" (cave pnmaria, por tratarse del atributo identificador principal con I .. I .1 U os 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ón I RMI~AL que tendrá los atributos "ONI" y "Tenninal" COn10 clave primaria. El .ilnhlllo ONI" se trata di' una e ave ajena que referencia a la relación USUARIO '. . . e sus 'PllOncs d b d . y . us IFRM' e or~a o y modificación serán ambas en cascada, pues la relación . INAL proviene de un atributo rnultivaluado. 1,, atr b ) T..~,,, ••••••• O 13·_ ) ) O :> 4> [¡ ) J ') O • ••••••••••••••••• oe O
  • 147. 2R! 2.1: TRANSFORMACIÓN DE ESQUEMAS EIR A ESQUEMAS RELACIO'liLES DISEÑO DI- BASES DE DATOS. PROBLEMAS RtSl.ELTOS USUARIO (PNl. Nombre. Teléfono) a.e, TERMINAL Ao<.L-'L' M:C' casos, las opciones de borrado y modificación serán en cascada O restringidas dependiendo de la semántica que pretendamos recoger. Además, deberíamos asegurarnos de alguna manera que las cardinalidades mínimas uno (todo perfil accede al menos a un subsistema y todo subsistema accede al menos a un perfi 1) siempre se cumplen. Icollinal) Figura 2,2.45 De la transformación de la enti ad PERFIL se obtiene la relación PERFIL, que d tendrá los atributos "Perfil" (clave primaria de la relación y "Descripción". La ) interrelación N:M Disfruta entre las entidades USUARIO Y PERFiL se transformará en la relación DISFRUTA, la cual tendrá como atrib utos "DNI" y "P~rfil" que compondrán la clave primaria y cada uno de ellos será a su vez clave aJe~a aa, l relaciones USUARIO y PERFIL, respectivamente. En a mbos casos, las opclon~s de borrado y modificación serán en cascada o restringidas dependiendo de la se~antlca que pretendamos recoger. En cualquier caso, habría de asegurarse que la cardinalidad mínima uno (todo usuario disfruta al menos de un perfil) que no puede recogerse siempre se cumplirá. USUARIO (DNl. Nombre. Teléfono) La entidad VENTANA se transformará en la relación VENTANA, que tendrá por atributos "Ventana" (clave primaria) y "Descripción". Ninguno de estos atributos admitirá valores nulos. La transformación de la interelación l:N Arranca ya se ha r realizado mediante propagación de clave, .---+ PERFIL (Perfil, Descripción) VE:'IlT.t.NA (Ventana , Descripción) 3:C, M:C SUBSISTEMA <SQ.bsistemil, Descripción, t ti ACCEDE PEIU'lL "83 c. M.l' I A'C, M Ventuna) e (Perfil. SI/bsistel/Ul ) <Ped'U, Descripción) K·C. M.e ae, M;L D lSFR UT A (12f:fJ., P er.ti D Figura 2,2.46 La entidad SUBSiSTEMA se transformará en la relación SUBS ISTEtvll: conteniendo los atributos "Subsistema" (clave primaria), "Descripción" y "V~nt~na terrelación Arranca con la entidad VENTANA), La cardinalidad (p roveniente de la in mínima I que refleja que todo subsistema arranca en una ventana . im d'Ir á ~ue este pe " atributo pueda t mar valores nulos. Este atributo "Ventana" es una clave ajena que o referencia 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 (1 tratamiento 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 clave ajena a las relaciones PERFiL Y S UB SIST EMA , respec tiivarn ente ' En 'lll1hll" ' Figura 2.2.47 La entidad ACCIÓN se transformará en la relación ACCIÓN que tendrá como atríbut():~ "Acción" (clave primaria) y "Descripción" (ninguno de e stos atributos admitirá valores nulos al no haberse considerado como opcionales en el esquema EIR). Tran~form~remos las dos generalizaciones del esquema EIR optando por crear una 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ÓN lendr.á, además, el atributo adicional "Nombre" (clave alternativa), mientras que la ~elacl6n ~LAMADA tendrá además el atributo "Ventana" (clave ajena que r ferencia e 01 la relación VENTANA, resultado de la propagación de clave de la interrelación l:N Inv~c:,). ~odas las claves ajenas cn estas relaciones tendrán sus opciones de . lIl,Odlft.caclony horrado en cascada o restringidas dependiendo de la semántica y Ir,ltalnlcnto que se pretendan.
  • 148. )(-1 DISEÑO IJI~nASI:':;; 1)1-, DATOS PROHI EI1AS R"SUEI.I'~).!;;S~ _ " M, 1, ~',l: RAN$FORMAl'IO:--r DE ESQUEMAS ElR A ESQUEMAS RELACIONALES T 28~ AC~IÓN (Acción, Des<.:ripción,Tipo) La totalidad de 1<1encralización se controla con el atributo discriminante "l~ipl)" g en la relación ACCiÓN mientras que la exclu~ivi¡Jad se controlaría con una aserción. lB (, ~1 e CONTROL (Control. Acción, Descripción.Tipo) 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ón ACCIÓ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ón . serán en cascada o restringidas dependiendo de la semanuca preten~l.da. NI~guno de los atributos admitirá nulos y la cardinalidad mínima I (oda aceren la ejecuta al t menos un control) no se podría reflejar. ~ , SC.~IC ITEM (Con/rol, Depende', Texto) t H·C.~1:CJ B,C. M'l' BOTÓN (Control, Icono') Figura 2.2.49 VENTANA (Ventana, Descripción) '-'ACCIÓN (Acción, Descripción. Tipo) t ue. M,e I!'UNCIÓN (AcciÓn, Nombre) He MC I_LAMADA (AcciÓn. 11C. 1 ( VI'II/anCl) , :'01' últílno: ral,t~ transformar la interrelación N:M Compuesta entre las entidades VF: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 restringidas dependiendo 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 menos p~)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.-18 ~ VENTANA (Ventana, 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 el I 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?~c tendrán sus opciones de modificación Y borrado en cascada a reslrtngld,,~, dependiendo de la semántica y uetarnlcnto que se pretendan. . Ilscrimi , La totalidad de la gencrali7.aelón se controla con el atributo. ( íscnmman le "'rip(1 <,(: en Ia re 1ac I )11 CONTROL mientras ' que la exclusividad se corurolaría con ,1 correspondiente aserción . ••••••••••••••••••••• .. Descripción) ONTROL (Control, Acción, Descripción, Tipo) a.e. ~1 e COMPONE (Ventana, Control) L...,_ _' S.C. M:C Figura 2.2.50 Propuesta de solución El resultado de la transformación puede verse en la figura 2.2.51. ••••••••••••••••••••••••
  • 149. , •••••••••.•••••••.•• '. .. DISEÑO D¡.- BASES DE DATOS: PROBLEMAS RESUELTOS 1.~' TRANSFORMACiÓN DE ESQUE~1AS EIR A ESQUF~1AS RELACIONALES , USUARIO (DNI. Nombre. Teléfono) + Semántica no recogida ... No ha sido posible recoger dentro del modelo relacional que sí se recogía en el esquema E1R: rERFIL (Perfil. Descripción) 11.('. '( M TERMINAL(D • • '1/. I!C[llliU(Il) ... e DISFRUTA (DNf. • !le' Ml' 1 SUBSISTEMA (Subsistcma. Descripción. ACCEDE I de la jerarquía de controles. Un perfil permite el acceso al menos a un subsistema, s.c. M.r (PerOl, Sub.l'jste.Ulfl) Toda acción es ejecutada por al menos un control. • VenTl//la) ... ~ Exclusividad • • • S c. 1.( I B:C.M:l' de la jerarquía de acciones. • En todo subsistema hayal menos un perfil para poder accederle. Pf:.d1l) ~ Exclusividad la siguiente semantica • Un usuario disfruta al menos de un perfil de acceso. VENTANA (Ventana. Descripción) 11.(".'1 2117 Todo usuario trabaja al menos en un terrni na). Una Ventana esta compuesta por al m enos un control. Un control pertenece al menos a una vent na. a Hahr~a que recoger '. además. la scmarulca que. estando presente en el enunciado no ha podido recogerse ni en el esquema ElR 111 en el modelo relacional: . ACCiÓN (As:ción. Descripción, Tipo) t • IIIC.Ml FUNCIÓN (A"iáu. Nornbre) Toda ventana tiene un control cuya acción asociada es el cierre de la misma. Por ~ltilno, presentamos adecuado Introducir: aquellas restricciones que id COnSl eramos lógico o I tI,C,M'l' tl e M:(, LLAMADA (Acción, Ventalla) • Un ítem de menú no depende de SI,. mismo ni de ninguno de sus descendientes. . e ni . !l,('. M (' .. CON~ROL (ContrQI. Acción. Descripción. Tip o) r íTEM s.c. M,: (CoIITrol. Depende': t I tl L 'Il Texto) PROBLEMA 7: ORGANIZACIONES NO GUBERNAMENTALES Enunciado ~:;~~a~: . Transfont_lar el esquema EIR obtenido en el problema 8 del capítulo I 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 m odelo relacional. .q , , BOTO N tCanuul. Icono) tl:t' M el Iu.t·. M:t' COMPONE (}!el/tClllCl, CO/lIrol) u t Ml I Figura 2.2.51. Esquema relacional solución Discusióndel enunciado Presentarno<; en la figura 2.2.5? el esquema EfR del que partiremos. . -
  • 150. D 15EÑü DE B SloS DE DÁ TOS: l'KilO~B.!:L!2Erv~I~Á.:!.S , .!:5R~E~S L~II:'r:!:¡.:.!.T~O~S:.__ ":'·_::R::!".::.M~' 2.2: TKAN$FORI-IAC'IÓN DE ESQUr.M,S r.lR , ESQUt::MAS RELACIONALES 289 Se incluye el atributo discriminante "Tipo", en las relaciones PARTIClPANTE y TRABAJADOR que. aunque no son estrictamente necesarios, permiten un control más sencillo de la totalidad y exclusividad de las jerarquías. lIi •• • 1,111' ,... TRARAJAIXII( ~O("IO 11 .. , Salvo en PARTICIPANTE. en las demás relaciones. el atributo "DNI" es clave ajena que referencia a PARTICIPANTE con las opciones de borrado y modificación en cascada. .....,..... !lo,... 1ft Una alternativa de transformar estas jerarquías que reduciría el número de relaciones. 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 las lupias de esa relación. Sin embargo. l presencia de atributos e interrelaciones propias a en las distintas entidades participantes en la jerarquía (incluso en el nivel intermedio) y el hecho de que en esta solución habría una ma yor cantidad de nulos nos ha hecho decantarnos por la solución expuesta que al tiemp refleja de una forma más fiel la o semántica del problema. OLl'NT"I(1() I "It~ !.nf,J ...... 1.1'" l't.hl .... ,'1 ni 'N ------:~"I.' d ? l' " f'iXllra 2.2.52. Esquema ElR a transformar 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 .• Se ibtienen, así. las siguientes relaciones, las cuales comparten la clave pnrnana DNI ) icnen los mismos atributos que poseían las correspondientes entidades. ninguno de ellos admite nulos. (121il. Nombre. Tipo) PARTICIPANTE ia.r. SOCIO (121:11. Provincia. Dirección) ..TAAUA.JADOR l , ASOCIACIO:'ll CQE. Denominación. --, B:C. "t.- TRAHAJAD()R Provincia. Tipo, EnudadPública) M'C (DNl. F_lni. Tipo. AsociaCIón) Figura 2.2.54 La interrelación Está_Formada entre las entidades ASOCiACI6N y SOCIO es 'l:M y posee atributos propio su transformación proporcionará una relación s, FORMADA. cuya clave primaria son las dos claves ajenas "CIF" y "DNI" que respectivamente referencian a las relaciones ASOCIACIÓN y SOCIO. En ambos casos, 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 atributos de la nueva relación que 110 admitirán valores nulos. M'l' I Transformamos a continuación la entidad ASC)C'iA C'I()N y la interrelación Trabaja. 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 de borrado y modificación en cascada. pues se cree que los trabajadores de una asociación dejarán de interesarnos cuando ésta desaparezca. La clave primaria de la relación ASOCIACIÓN es el atributo "CIF". y el uuibuto "Denominación" será clave alrcrnauva. El resto de los atributos de la entidad se pondrían ambién en la relación. t :-.llngunode los atributos de esta relación admire valores nulos. B.C.M:C (l2J:i1. 1'_101, Tipo) IB.e. M·e ASALA RIAOO /2lIl. SS. IRPF) I"C.M(" V()LUNTAItIO (/l1:://. Edad. Protcsión, H(>ra~) Transformamos por último la entidad PROYECT() que está afectada por dos 1I11~rrclucioncs1 :N. la interrelación Lleva que es una dependencia en identificación. y la Interrelación Compuesto, que es reflexiva. Se obtendrá así la relación PROYEC1'O. Figura 2.2.53 O" ._._._._.- ...................•~p' ~ ~ " (... -. It. l'{ ..I'!I LJ U ..... ,. ... ••.••• _.. .. ) . ~ .) ) ) _.. ){) "
  • 151. "e •• e ••••••• l.2: , k, IA (~)_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~ le tendrá en Beneficiario" . principio lo atributos s "N_Id", "Zona", "País", "Objetivo" e ••• 'e ."e". e".'e".'-."e TRANS¡':ORMACIÓN DE ESQUEMAS El I:SQUF.MASRELACIONALES RA 29 1 B:R. M:C y PROYECTO (AsociaciÓn. N Id, Zona, País. Objeuvo, Beneficiaric, A_Padre. P_Plu/re) ASOCIACiÓN (ClE, ~ Denominación, Provincia. Tipo. Entidad_Púhlica) B·C. M.C FORMADA «u: , . F _Alta. Cuota. Aportación) I B R. M:C ASOCIAC~N '-- B;C. M:C ---, B C. 1'v1:C FORMAOA SOCIO (DNl. Provincia. Dirección) (OE. Denonunación. Provmcia, Tipo. Enudad Publica) (e/F, 011. F_Alta. Cuota. Aportación) S:C. M:C Figura 2.2.55 PARTICIPANTE (DNI, Nombre, Tipo) Al ser Lleva una dependencia en ide tificación, propagará la clave de n SOCIACIÓN a PROYECTO como pa de su clave primaria. con lo que la clave rte orimaria de PROYECT() estará formada por los atributos" Asociación" y "N_Id". El atributo "Asociación" es una clave ajena que referencia a la relación ASOCiACiÓN Y Jara evitar que al borrarse una asociación se eliminen los proyectos que ésta lleva su opción de borrado será restringida O por defecto (no podría ser. nula p~es el. ~trib~~o no admite valores nulos), aunque lo habitual en las dependencias en identificación es poner la opción de borrado en cascada. pensando en la seguridad. se ha optado plll ponerla restringido. La interrelación reflexiva Compuesto se transformará mediante propagaci n de ó clave. 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 tant clave ajena. a la o propia relación. Si se hubiera supuesto que los subproycctos deben llevarlo la mrsrn« s asociación que lleva el p royecto padre. habría bastado con un único atributo Da~a IJ . cardinalidad mínima cero (un proyecto puede ser componente de otro). este atribuui s admitirá valores nulo Se considera que no se debería per itir borrar un proy s. m ecto mientras éste tenga subproyectos, por lo que la opción de borrado será restringida y la de modificación en cascada. SOCIO B:C. M:C ([JlV/. Provincia. Dirección) B:C, M:C .B:C. M:C [ ....... RABAJADOR (ONI, F_Inl, TIPO,ASOctQciún) T t B:C. M:C ASALARIADO (ON!. SS, IRPF) I U·C.M·e VOLUNTA RIO (fJ!iJ.. Edad. Profesión. Horas) Figura 2.2.57. Esquema relaaonal solucián Semántica no recogida .N~ ha sido posible recoger dentro del mod elo rcstncciones que sí se recogían en el esquema EIR : • (Of. Oenolnlnoción. bl· Provincia. Tipo, Enlidad_Pú ica) En una asociación trabaja corno míni o un trabajador. m • ..-- _ __¡J O R, M·e las siguientes Exclusividad de la jerarquía de trabajadores . • PROYECTO (d~Qcj(lCjÓII, N Id. Zona. País. Objetivo. Beneficiario. A_Padre. P _Padre) relacional Exclusividad de la jerarquía de participantes. • B:R. M:C + ASOCIACiÓN j Una asociación está formada por al menos un socio. • Todo socio forma parte de a! menos una asociación. Figura 2.2.56 • Toda asociación lleva al menos un proyecto. Propuesta de solución En la figura 2.2.57 se muestra transformación. S . se d e b en p roporcionar además mecanismos que soporten: el grafo relaciona! con el reultado s de l.• • Reglas de cálculo del atributo derivado "Aportación" en la relación FORMADA.
  • 152. , OISb::O DI- 1{,St-.S 1)1-. Uf ros: PROBLEMA'> RESIII.:!,L:..!·I..:,;()~S -- le 1 , __ .PE ESQUEMAS ElR 11ESQUEMAS RE!.ACIO"lALES 291 [nrma unívoca el administrador que La gestiona (interrelación I'N) L . d borrado y modificación pueden ser en cascada o restringidas ',' as opciones e ha optado b d . segun convenga (aquí se ~or orra O y modificación en cascada). A continuación se muestra el rafo correspondIente <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 se aña iran en las siguiente transformaciones), . y por supuesto. medios para recoger. además. la semántica que, estando presente el enunciado, no ha podido recogerse ni en el esquema EIR ni en el modelo acional: Los !>uhproycctoSde un mismo proyecto se realizan en el mismo país en el que ~ ~: TR,NSFORM¡(.'ION .-- 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, II,~,,~ .... ,1 H Por último. se consideraría cualquier otra restricción que se considere apropiada: I 11 ... , ... ... .. oh 9 Un proyecto no depende de sí mismo ni de ninguno de sus descendientes, "' ... " -- .... -0(............... • t ..... . _ .....a t r-__:L...-l,', '" , o 'Ii" 'IIIUI" ", , '" .... ,_ ._n /'-""'l"'--~~ l ........ ... t,. ... " ... " ., >ROBLEMA 8: ADMINISTRACIÓN DE FINCAS ItlCIMj, t :!:nunciado + '" 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í como las 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. 1)~11""' ,¡.,,~, ..."""1 l. , .l. """." o ( 1", o o O , ~p Discusión del enunciado , En la ñgura 2.2.58 se muestra el esquema E/R que transformarenlos al relacional. Figura 2.2.58. Esquema E/R (/ transformar 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 del esquema ElR dará lugar a una relación en el modelo relacional. Así. la entidad ADMiNISTRADOR se transforma en la relación ADMINISTRADOR cuya clave primaria es el atributo "Num_Colegiado". el atributo "DNr" es clave alternativa ~ "Nombre" es un atributo que no permite nulos. La entidad COMUNIDAD 1)1 VECINOS da lugar a la relación COMUNIDAD DE VECINOS 1.:1111 "Cod_Comunidad" corno clave prilnaria y "Nombre", "Calle", "Cód_postal" ~ "Población" COl110tributos descriptivos, a ~~ DE VECINOS t GESTJ()NA (N,;m AOl11NISTRADOR I Ul 'l .... r----- (~ód_CofQu",dad. Nombre. Calle. Cód_Postal. Població •. '. ) In '11 oieeiado. Cód Comunidad, Honorarios¡ tH. M.e CNú.m_Coleglado.DNI. Nornbrct Figura 2.2.59 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(), d atributo de la Interrelación "Honorarios". La clave la fonna el atrihull' "Cod_Conlul1ldad", ya que una detemlinada comunidad de vecino" detennlna d,' '" COMUNIDAO ... ~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 .••• ••• •••••• ••••••••••••••• •• ~ ~ "") ~
  • 153. •••••••• !9-1 DISEÑO DE IiA'iES DE DATOS rOllPAÑIA L- ({'11:'. :>Iollllwo.IJlrcCCIII.P~I,oml C"nll"lo, TeléCtII,"1 Se"lur. --, M e M (' CONTR;'J'A cC'¡d_Ctlnrlllud",/,C/D ...-COlUtIDAD --'1 s-e M' DE VECINOS ¡Cód COllwn,dJII. Nombre, Calle,Cód_p(I~tal. Pobl,,<:,Ún. Figura 2.2.60 Veamos a continuación la transformación de la entidad PROPIEDAD: puesto que existe una dependencia en identifi ación (interrelación Consta) con la entidad c COMUNIDAD DE VECINOS se transformará en la relación PROPIEDAD con la concatenación de los atributos "Cod_Comunidad", "Portal", "Planta" y "Letra' corno clave primaria, siendo "CodjComunidad" clave ajena q~e re~:renci~ la ~elación COMUNIDAD DE VECINOS (opciones de borrado y modificación obligatoriamente en cascada). Además, la relación PROPIEDAD contiene los atributos "Nom~re Propietario", "Tlf_Contacto" (ambos como no nulos) y "Dirección" (que a.dmlte valores nulos): en cuanto a los datos del inquilino, se tienen los atributos "Nombre_lnq" y " Tlf_Contacto_lnq" que a dmiten nulos (pues una dete r:ninada propiedad puede que no tenga inquilino). Por último, la relación PROPIEDAD Incluye los atributos "N_Cuenta" y "Porcentaje" que no admiten valore .. nulos, Para completar los atributos de la relación COMUNlDAD DE VECINOS val1_l~' a transformar las interrelaciones Presidente. Vocal y Controlada. La interrelación 295 1: l Presidente se transforma mediante propagación de clave, es decir, la clave de PROPIEDAD pasa a la relación COMUNIDAD DE V ECINOS con el nombre de "Presidente" (no admitie ndo nulos, pues una determinada comunidad de vecinos siempre tiene que tener un presidente). Obsérvese que por simplificar el grafo resultante sólo se ha propagado corno atributo compuesto. realmente, habría que desagregar en lodos sus atributos componentes; las opciones de borrado y modificacién pueden ser restringidas o puesta a valor por defecto según convenga: la interrelación I:N VocaJ la transformaremos en una nueva relación denominada VOCAL que constará de los atributos "CodComunidad". "Portal". "Planta" y "Letra", todos ellos formando la clave primaria de la relación, Por último. la interrelación 1: l Controlada entre las entidades CUENTA y COMUNIDAD DE VECINOS se transformará también mediante propagación de clave. Para ello, tenemos que transformar primero la entidad CUENTA, COJ-IlJNII)AD DE VECI~OS ({:Jid_Comumd.ul, '<,,,,,h,'c, C~lIe, CÓd_Po,tal. Población.. t ) I BC. M'(' 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 101t:'1DA PAR 1'l(.'J.;LAR ((',id C"",,,,,,d(/d. Be M', t.aru. NÚOl_Huhit3<'OIlC" 1'1111,11, {'{¡mIli, '------;:::==::;:¡L--,-_ .....r M ( O =='-'-"~' :",:,=""",,,,",,,," A ..tl ul, ..1I l tOCA 1. ('OIFRCIAL Respecto a la jerarquía de propiedades, cada subtipo se transformará en. una relación mediante la propagación de clave del supertipo. Así, se tendrán las rclac~one~ VIVIENDA PARTICULAR OFICINA Y LOCAL COMERCIAL. Todas ellas tienen como 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 endrá el atributo Nurn Habitaciones". t OFICINA tendrá el atributo "Actividad" y LOCAL COMERCIAL tendrá los atributo, "Tipo_Comercio" y " Horario" que pueden admitir valores nul~s., Las op~~ones de borrado y modificación serán en cascada (cuando se eltmlnaJmodlltc~ una determinada 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 de CHECKS 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 un atributo discrimlnantc ("Tipo_Propiedad") que indique si una propiedad es VIVienda particular, oficina o local comercial que nos ayude a controlar la totalidad de la jerarquía, A continuación se m uestra el grafo relacional correspondiente a este conjunto de transformaciones. '•• '.' •.• le • . '. '. '•• 1.2: TRAI'SFORMACIÓN DI; ESQUEMAS ~JR ESQUEMAS R~LACIONALES A PROIlI.F.MAS RESUELTOS 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. '•••• ((',i,/ MI'l. C,uL,mJall, p}'WI,.f'''''¡'I, l)lrll, T'P"_('OI11CIl""', Hcrano} Figura 2.2.61 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 los atributos "Cod_Banco" (que es clave primaria), "Nombre" y "Persona Contacto". La relación CUENTA consta de los atributos "Sucursal", "OC" (dígito de control), "Número", "Cod_Banco" (clave ajena q ue referencia la relación BANCO con opciones de borrado y modificación en cascada) y "Saldo"; l clave primaria de está a relación es la concatenación de "Cod Banco", "Sucursal", "OC" y "Número", En este momento ya es posible transformar la interrelación Controlada prop~g,lndo la clave de la relación CUENTA (que 00 puede lomar valores nulos) a la rClac,lón,COMUNIDAD DE VECINOS (con opciones de borrado y modificación rcstnngldas o puestas a valor por defecto, según interese) con lo que esta relación ya estaría completa, por simplificar, al igual que hicimos con "Presidente", "Cuenta" se ha propagado como atributo compuesto sin desagregarle en sus componentes, El grafo relacional correspondiente muestra a continuación. a este último gru de transformaciones po se
  • 154. ~ó DISEÑO DE BASES DE DATOS 2.": TRANSFORMACiÓN PROBLEMAS RESUl:.LTOS COMUNIDAD con el nombre de "Propiedad" nulos), como se muestra a continuación, BANCO (Cad Banco. Nombre, Pc",,,nu_Conl.,IIl) t I 6Clt CVENTA 1(",1 8111,,11. Sllt''''''~ /)C,(',,,'It{!!. S.ldo' t C01l1lNlI)AO na Ot' 't:l'I'IOS De eSQUEMAS f'JR A ESQ11l:MAS RELACIONALES 297 (clave ajena que no admite valores RECIBO Cl 0'1 A C()!fUNIOAO INÚrn Rcclho. FCLhJ.lmJ1',nc, S,Ildo.f'r"fll,d,,,f, _j MM ICM_CS1!l)UDldgcJ Nombre. CJlle. Coo_P",w.l. Pnhl3clOn. ("'·'1111. tik "1ft 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 P"'''j/. ,," I O R 111 PKOPIF.D¡O 1('1<1 ("'''IIIllItlgÚ, P",wl. Plulllo. I~ Ir... Nombrc_Prop. TII_Conlaclo_Pn,p. Tlf Conlaclo_lnq·. N°_Cuc:nld.Porcenlaje) L----;::===;::L_-.-_-, N'''110",_ln4 . Figura 2.2.64 fI R. M R Propuesta de solución VOCAL ((',NI ('01",,,,,,/,,,1, Po,.,,,I. P/oma. l.!·/ru) Figura 2.2.62 El grafo relacional completo se muestra en la figura 2.2.65. -, y COA1PANIA Las últimas entidades que hay que transformar son RECIB() RECIBO CUOTA COMUNIDAD. Vamos, en primer lugar, con la entidad RECIBU COMPAÑÍA que se transforma en la relación RECIBO COMPAÑÍA con los atributos "Nurn Rccibo" (clave primaria), "Fceha'~ ~ "Importe (no admiten ~alores nulos). La interrelación I:N Emite entre COMPANIA y RECIBO COMPANÍA da lugar ~ ,la propagació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~ntlal transformació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 umbocasos 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. RECIBO CIIO'fA IIANCO t. rCl'd COMlJNIOAO Flan,,". Nombre, Persona_Conlaclll' ) ue ~I(' CI'f:STA 1(,i¡LIJmu". Su"ur'u,1 De. Nlímerú. Saldll) +---- t _, ,...... . .. Pi t ,0 U" 'ECINOS I N"nl_Rcl"OO, Fecha, ImJ1<lI'1c.C"IIl¡""i,~,. Cucma' UN 'I'IE~OA I 18'''. .....J__¡ I PARTICllL.~R ,Cád C,mum,d"d Por",/, Planrlf. I.<",,''.!, UI1l_HJbIl3Cinne<) N I I I 1""'" OtlCINA (Qíd (',,,,ulllid,lltl.f'"rtal, Plmlta Lfrrll. Actividad) t I(,l~, Nnllll>rc. O,re.ci.n, Sector, Pcr-onu_Cnnlaclo. Telétonn) L ~:I •••••••••••••••• L__ 10 K 1 Por último, la entidad RliC:IBO ('UOTA C()MUNIDAD se Iranlo1fornla en relació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 ~ H tt . JI VOCAL c(',;d Co",,,,,,d,!d. Pon"l. P/anrl/, Le"a) Figura 2,2.tS3 t ••• f..lt tCoo Comunid:td. '","I>re. Calle, Cnd_I""'3I, P"I>I.IL',ón,L'urntn. Prendente) I H.R.~l K COllll'AÑfA _JI r(',;,/ Comunidad, Pona/. PI'!""" /...'trl/, NOnlbn:_Prop. TIf_Cnnl:,.:III_I' ..np. Nomhn: Inq,~ TIf_Conl:lelo_Inq', N°_Cuenla, Porccmajct CUE:"I'TA t[f¡'/_jJ",!<", Sl,Iu".1 OC, NUI~. Saldni ---J _ 8< '1(+ I ~ 1'iK."K " R 1. ... rROPIEUAU COlIPAÑf, . ,....-- IIASCO IC"d S"IlL·". "lnmhre. Persona CtlOlaClnl RECllIO _, . K~,(. 1110 (01 IJ A,'IIIA r Num Rcrbt¡, Fcchu. Impone, ( ""'11<//1",. (,11'",") COll'NI t (Núm Recibo, Fecha.Impone. Saldo. Pr"pw(/o,/) _- H t' Mf t,OCAI, COIoIER(.'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(!(/. mlor'lri.,,) H ,..-----'1 "1' ,IlMINISl'R¡U()K ". (N,í!lJ r'!l~gj.~, Nombre) J)NI, Figura 2.2.65. Esquema relacional solurián ••••••••••••••••••••••••
  • 155. ·..... •••• '.'..'."."••• •••• ' ' DISEÑO DE BASES DE DATOS: PROBLEMAS RP-SUELTOS M" "A mántica no recogida No ha sido posible recoger dentro del modelo relacional ~sí se recogía en el esquema ElR: la siguiente semántica 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 comunidad Toda comunidad de vecinos tiene al menos un vocal. Totalidad y exclusividad de la jerarquía depropiedades. 2.~' TRA/SFORMACIÓN DE ESQUEMAS E/R A ESQUEMAS RELACIONALES 299 En la transformación al modelo relacional, cada e ntidad dará lugar a una relación. siendo su clave primaria el/los atributos identificador/es p rincipales de cada entidad. A~í.las entidades MÉDICO. ÁREA y PÓLIZA se transformarán. respecrivarneme, en la, relaciones MÉDICO. ÁREA y PÓL1ZA. El resto de las entidades las trataremos con un poco más de detalle. ya que im plican o bien dependencias de ide tificación n entre las entidades. o bien jerarquías. De momento. nos olvidaremos dcl atributo multivaluado "Teléfonos" de la entidad MÉDICO, , AREA (Cód A . S, NÚln_H) tOBLEMA 9: GESTIÓN DE HOSPITALES umciado MÉDICO (Cód M . N_M) Transformar 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í como claves ajenas. indicar, asimismo, la semántica que aparece recogida en el esqu ema ~ pero que se pierde en la transformación al modelo relacional. PÓLIZA (Cód P, Datos_P) Figura 2.2.67 scusión del enunciado Presentamos en la figura 2.2.66 el esquema EfR del que partiremos, P 1 , TS ""_;¡;_--;;¡~ TII..~_t-1 fU,11 1(1.1, co~eERTA[)O PROPIO f I , t .nl 1(1.n1 l1li 1 , Itl 4' f I.n) S 1 P ('M_~ I!, N_ , j I '.nl Ale ('<J_P D... o~P 1 f1 ,ni " " PÓLIZA f~ A ..,,_ ,0..:11 Fu Figura 2.2.68 Ccwj A '1' I ASF.(iURAI)O I I B:C. M e N.r..t 10,1. 111 I • t 1, I f AREA I,n) A2C POLIZA (Cód P .Datos P) ASEGURADO (CÓd P, Núm, Na. Fn) Te' llflt f La entidad ASEGlJRADO presenta una dependencia en identificación con respecto a la entidad PÓLIZA. es decir. para su identificación se necesita concatenar unnúmero correlativo C'Núm") al código de la pólizu ("Cód_P"). Por lo tanto. dicha entidad se transformara en u relación cuya clave primaria estará formada por "Núm" na ) "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), NIII" Figura 2.2.66. Esquema ElR a transformar , Trataremos a eo ntinuac.ión las d jerarquías que aparecen en el esquema. En os pnl~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 r altzarem~s siguiendo el caso general que se . e pll~ó 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ón I,~O:IO.y una relación CONCERTADO. Tanto la relación PROPIO como la Idaclón CONCERTADO tendrán como clave primaria la misma que HOSPITAL re,lo es "Cód H" lc . . , .. ' _ ,que es e có igo del hospital) que, además. será c d lave ajena que rllcrcncla a la relación HOSPfT AL. El borrado y la n¡odificación será, en ambos
  • 156. (~) DISEÑO DE BASES I: DATOS: D 1)IH)III.I,M~Ié!:S~R.~'S!.!L::!II-'.:!.:I:..!..T.:.:().:..:.S 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 valor correspondiente 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. Cada una de las enudadcs hija, de la jerarquía de Asegurados la tranvformaremos tambié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" J A2C. Ambas tendrán C0010 clave primaria la misma que ASEGURADO. es dec ir. "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, en cascada. 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 que incluyera los valores "A IC", "A2C". y "Otros"). Sería neceario controlar la s exclusividad m ediante disparadores, así como controlar que efectivamente l -, o 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. II()SPI'I'AL (('6<UJ. . N_II. Núrn_C. Tipo_Hl (('tic! II . P, Ts) 11 e, M CONCERTADO ASEGURADO ""Ir 1.~ TRAI'SFORMACIÓN DI' ESQl:EMAS MÉDICO (Cód M . N_M) tL --. 1 Il r, 1( TELÉFONO (Tel, Cód M) Figura 2.2.70 Veamos a continuación la transformación de las interrelaciones. Comenzaremos con las binarias que tienen cardinalidades máximas I en alguno de sus extremos, es decir: ~'efe. '! Asignado (la interrelación Asegura. que presenta una dependencia en ulcmificación, ya la hemos tratado al transformar la entidad débil ASEGURADO), e (Cód H) • ((.'ód P, Núm. Na. Fn, Tipo_A ) CONCERTADO (Cád II Cád_A ) I r----------...J B.I<. M e , AREA (Cód A ,S. Núm_H) P, NlÍn¡) ,...--'--, REI.ACIONALES ·¡Ol El atributo rnultivaluado "Teléfonos" de la entidad MÉDICO lo transformaremos en otra relación. cuya clave primaria será el propio número de teléfono concatenado con el atributo "Cód_M", que es clave primaria de la relación MÉDICO, y cuyas opciones de borrado y modificación serán en cascada, Si qursiérarnos que un mismo teléfono no pudiera estar compartido por más de u 1l1éd1CO.la clave de la relación n -ena únicamente el atribulo "Tel". B·C. M.e AlC (Cód ElR A I,SQUI:MAS .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 la relación ÁRE~ ("~ód_A") a la relación CONCER"r ADO. C0l110 clave ajena. El hecho de que la cardinalidad mínima sea I significa que todo hospital concertado debe estar ,Ilgnado 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 (incluso mnguno), por lo que 110 será necesario ningún otro mecanismo que controle esta -cmámica . lit Me PROPIO Iot ,~~ B.C. M e Figura 2.2.7 J A2C (CÓd P, NÚn¡) La otra inlerrClaci6~ binaria con cardinalidad máxima I en uno de sus extremos Jefe. 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ó " ue p, e e aCI n re flcxi va. La transformación n cxi se real iza de forma análogaes fllpagaremos la clave primaria de la relación MÉDICO ("C6d _ M") a SI ' mIsma . . l', Figura 2.2.ó9 • ~~~~~ • •••••• ••••••• .••..••••••••••• •• ••• ~~ ' - ~
  • 157. ~ DISEÑO DE fiASES DE DATOS: P({()'.!!B.!:.L~!:!·; t.!!l~A~S ~({~(:S~U::!.!E~:I_!·I~·()~S '.::R.::.A~M amaremos a este nuevo atributo "Jefe"), actuando corno clave ajena que podrá tornar lores nulos (ya que la cardinalidad mínima era O). .. RR Me MÉDICO (Cod M, N_M. Jefe) Figura 2.2.72 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 al renos a un área y todo área debe tener adscrito al menos a un médico". P ser una or uerrelación N:M, la transformaremos creando una nueva relación. ADSCRlTO, a la ue 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 I e cada extremo deberemos controlarlas mediante disparadores. .. I Ft, MC ADSCRITO 1 «o« s.r. M{" ~ PROPIO (Cód H, p. Ts) ~ t lJl 30.1 H()SPI TAl, (Cód H , N_H, Núrll_C, Tipo_lI) ~ MÉDIC MÉDICO (Cód M , N_M, Jefe ') RELACIONAI.ES 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ás detallado de la 'clnál1lica. SI suponemos que en un mismo día un asegurado no puede ser ingresado más de una vez, la clave primaria de la relación sería únicamente la concatenación de la 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 c lave primaria será "CódP", "Núrn" (clave de Al C y A2C, respectivamente. siendo clave ,Ijcna de cada una) junto a "Fi' (Fecha Inicio). Además, "Cód_H" será clave ajena que referencia al HC)SPITAL (en el caso de HOSPIT ALIZA_A) o a PROPIO (en el caso de ,HOSPITALIZA_B), y "CódjM" será clave ajena que referencia a la relación ~IEDICO. + 111 R. M e DE fiSQUEMA '"IR A HsQtlHM¡S S 2.~: TRANSFORMACiÓN (11 t IR.R, M (' (Cód M . N_M. Je{(' ) AIC(Cf¡ Id P, Núnl) M. Cód A) ...- 111.( . M e • --' A2e «'ád P, lI'ún¡) ÁREA (Cód A ,S, Núm_H) B.R. M Figura 2.2.73 e Las cardinalidades de la interrelación en sus tres extremos son (Ln). La interrelación se transformará, por tanto, en una relación a la que se propagarán la' I B R. 1 C (jI( M (' HOSPI TALIZA_A (Cód P, NÚm, Fi, Cúd_M. Il.R.M.r Hemos dejado para el final las dos interrelaciones más complicadas. Son do .nterrelaciones ternarias con atributos multivaluados, que reflejan el hecho de que un asegurado ingrese en un hospital prescrito por un médico, con una fecha de inicio y una fecha de fin d la hospitalización. Los atributos que recogen estas fechas ~1111 e multivaluados, porque puede ocurrir que un mismo asegurado puede ingresar en un mismo 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, pala después particularizar para cada una de ellas. I IIOSPITAJ...IZA_B I I B R. 1 r csa;«. F(¡ R'R. Il' I «« P, NÚln, Fi, Cód_M, C6d_H. F() Figura 2.2.74 Propuesta de solución En la figura 2.2.75 se muestra Ir,lrl ,foTlnaci ón. el grafo relacional con el resultado de la
  • 158. )- DISEÑO DE BASI-.SDI, DATC.)S· I'K()IlI.!:!I!M~A.~S ~KI!.::'S~U!.!:E~L~TO~S~ _ BC P ROPIO (Cód H • P. T~) CONCERTADO I (Cód H. CÓ~_A) RR + . «('ód Á,:EA "e A. S. Núm_H) En el mi mo caso se encuentra s el orrado restringido b en la relación CONCERTAD() respecto a área a que pertenece. Con este tipo de borrado no pueden l borrarse áreas que te ngan hospitales concertados. I R R. M e + MÉDICO (Cód M. N_M. Jefe') -¡ t .+' , 11 r. M (' Adernés de lo expuesto, será necesario recoger por medio de disparadores, checks l' aserciones la exclusividad y la totalidad de las jerarquía y las cardinalidades s mínimas I de las interrelaciones (1 .n) ( l.n). T I<:LÉFONO (Tel., Cótl M) R C:. M (' R:('. M C' También sería necesario recoger el hecho de que un hospital concertado A DSCRITO (CÓd M, (.'tíd A) II'IC + «e« RI P, Núm. Na. Fn. TipoA ) Enunciado Transformar el esquema en el problema 15 del capítulo I en un e-quema relacional en el que e indiquen las claves primarias y candidatas, así como s la~ claves ajenas. Indicar, asimismo, la semántica que aparece recogida en el esquema I-.IRpero que se pierde en la transfo rmación al modelo relacional. Re ,t Ale (Cúd P, Ntíln) ,.. I BR'vI(" HOSPITALIZA_A 1:1 R. MC HOSPI"ALIZA_B I I B'R. M.(' R:R. :>1.(' .•• - l FJR obtenido , (Cód P, Nlílll, Fi. Cád_M. Cód_H. Ff ) I R:R. M.C' tI.R. M:(, Discusióndel enunciado r «« p, Nlíln, Fi, css.». CÓd_H. F() Figura 2.2.75. Esquema relacional solución. G6'CC sea Ir I I recoger que el número de asegurado PROBLEMA 10: OLIMPIADAS DE INVIERNO Al C ({.·ód P, NlÍlIl) I no podemos Ml I I relacional corrclauvo. ~ÓLIZA (Cód P.D3toS_P) I t no puede cambiar el área a la que está asignado. En el grafo ASEGUR/DO 305 Como supuestos semánticos, además de lo ya indicados anteriormente, se ha s icnido en cuenta el borrado retringido en la relaciones HOSP1T AL1ZA_A y s s IIOSPITALIZA_B al tratarse de hi tóricos, con lo que n pueden borrarse loe; s o ho~pltalel>, los médicos y los asegurados que participen en estas relaciones. Para borrarlos podría considerarse que tienen un código especial que mdique si son ho~pltales actuales o pasados. ~t( a e Me 2.2: TRANSFORMACiÓN Uf, ESQUEMAS ¡':)RA tSQUhMÁS RELACIONALES R/ t-iA Semántica no recogida HOSPITAL (Cód H. N_H. Núm_C. Tipo_H) ~ I • - Presentamos en la figura 2.2.76 el esquema E1R del que partiremos. 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 s clave primaria la de lu entidad regular de la que u Jcpc.llden. Esta será. además, clave ajena de la entidad regular. con borrado y s Illodl!icacioncs en cascada. En cuanto a la jerarquías, seguiremos el caso general . s • • • • • • • •J.~~ .......••• J.(~ ~ ".la ~EJ.
  • 159. •..•••••••••••••••• ~. t ••••••••••••••••••• ' o KA·1A DISERo DE BASl::S DI::I}ATOS: PROBLEMAS RESUELTOS nsformando cada entidad en una rel ación: es la solución que conserva más nántica. y además. como vemos en el esquema, todas las entidades implicadas en Ibas 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 y xíiflcaciones serán en cascada, y será necesario implementar, además. los scanismos 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 Y PARTICIPANTE). 2,2. TRANSFORMACIÓI 1)1:: ESQUEMAS EIR A F_SQUE~1ASREI.ACIONALES .107 FEDERACION (Nombre. Número) ¡+ ESTACION (Código, Nombre, Dirección. Teléfono, Kms) IRCMC PISTA (Cód ¡+ PRl)~:RA PI~la,(,()dig". Grudo_dlf. Longuud. PI~Il_COmplleSla) (tLP~uebª. Vencedor • Tiempo') III( ,MI' PARTICfPANTE (N Prueba, N Partic. Posición, Tiempo) 11(' ~Il P_EQUI PO (N Prueba, N Par!/s.> sc vc P_INDIVIDUAL (1:1 Pruebo, N Parl'!) '" EQUfPO (Nombre. Entrenador. N_E'q) '....... ('~. I '8 PlSl .... .1.1' (',,,.. ,. ESQUIADOR (Illi.!, Nombre, Edad) 1).01.... ,. I »:C 1 C r("~I,'4, ~ E_INDIVIDUAL toot "·C~IC (U.tI! E_EQ!JH'O (DNJ) t-.1'At IÓN ,) . Figura 2.2.77 , ~ ".t, " '" INI. I'Io.rnh'i" 'JlI " o l.,w.,lO o u ¿ 0, " ,'_ISI,IVIOtlAl ,,! ~•il " • IJI' , 1II I 1,.) o. (DNO 11-', Pasarnos a continuación a transformar las interrelaciones I:N que no implican una dependencia en identificación, en concreto Federa. Compuesto. Es y Tiene. Para cada una de ellas. propagaremos la clave de la relación con cardinalidad máxima I a la de cardinalidad máxima N. donde será clave ajena. El hecho de que las cardinalidades en lodos los casos sean (1.1) implica que dicha clave ajena no pueda torna valores r nulos. Además, en el caso de Federa y Compuesto. debido a que la cardinalidad mínima en el lado N es 1. implica que deberemos controlar mediante disparadores que toda ocurrencia de las relaciones FEDERACIÓN y EQUiPO está relacionada con al menos una ocurrencia de. respectivamente, ESQUIADOR y E_EQUIPO. Los borrados y modificaciones serán restringidos o en cascada (no podrán ser con puesta a nu los. ya que ninguna de las claves ajenas que hemos propagado los admite d ebido a la card~nalidad mínima 1). No permitiremos borrar una federación mientras haya esqUiadores federados. ni equipos mientras haya esquiadores de equipo que pertenezcan a él (borrado restringido). El resto de borrados y modificaciones serán en cascada. Figura 2.2.76. Esquema EIR a transformar La figura siguiente refleja estas transformaciones. 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,d egular de la que dependen (ES1'ACIÓN y PRUEBA. respccuvamemc). la ~ual s~I.1 lave 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.' .ó le su entidad padre. - quc además seá clave ajena co borrado y modi.ti IcaCI ntamblen r n .n cascada. La figura muesra el resultado de estas t ansformaciones. t r , Tr~nsfonnarcn1os a co ntinuación las interrelaciones N:M. Cada una de ellas se l()nver:tlrá en una r lación cuya clave primaria será la concatenación e d los e l~cn~lfle,adores de las entidades que relaciona. Será necesario controlar las lardl~alldades rnínimus I de la interrelación. Tendremos por tanto las nuevas rcl~clones ADMINISTRA. FORMA_PARTE. TIENE_LUGAR Y CONTIENE. Esta ~1~lIm~ merece un comen tario especial. Corno vernos procede de la interrelación , .~n~xlva que modela el hec de que una pista puede estar formada por la unión de ho ·Jnas. En teoría. la clave de esa nueva relación sería la concatenación de la clave de t
  • 160. )H DISEÑO DE BASE DE DATOS S rROBI.L.~M!.é:A~S...!:R~E:.::!S~U!::EI!....·~rO~s!-- os pistas (la compuesta y la componente), es decir, el código de estación y el código e pista. ambos por duplicado. Sin embargo, el enunciado nos exigía que cuando una ista está formada por otras, éstas (y aquélla) deberían pertenecer a la misma estación vunque 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 a l stación. Las clave) ajenas de ambas pistas utilizarán este atributo. 10 que obligará a lue en ambas coincida su estación. .-. FEJ)EKACION (Nombre. Numero) EQ~PO (~rTJ.bn.:.EOIrenador.N_Esql I He. M.I· p_EQUII)O (N_Prll~l)a. N Portie. Nombre) 4----------------, II.R.M ¡- ESQUIADOR (Qlli. Nombre. Edad. Federocion) E_INDIVIDUAL ([)NI) +----,11.<". M (' IfI'~' M.e 2.2. TRANSFORMACiÓN DE ESQUEMAS f'jR A I'S<JUhMAS R¡"I.ACIONAI.ES '_:_: Rc::.~=·M, 309 Al igual que hicimos en el caso de las entidades, de momento no consideraremos el atributo multivaluado "Fecha" de la interrelación Forma Parte. 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 primaria c!tará formada por el atributo más la clave OC la relación de la que cs atributo. Sin enlbargo. en el caso de atributos multivaluados en interrelaciones, es necesario e'tudiar la semántica, que puede llevar a que no sean necesarias las claves de todas las entidades que enlaza la interrelación. En nuestro caso. el único atributo rnultivaluado de una interrelación es "Fecha". en la interrelación Forma_Parte. Si consideramos. por ejemplo, que. un esquiador de equip en una fecha determinada formará parte de o un único equipo participante, bastaría con las claves de E_EQUIPO y la fecha para Identificar a la nu eva relación. Además. puesto que ninguno de los atributos es opcional. será necesario controlar que t da ocurrencia de las relaciones PRUEBA o , PARTICIPANTE. ES TACION y FORMA_PARTE ti ne asociada al menos una e ocurrenci:1 en la correspondiente re lación que a maeena las fechas o. en el caso de l ESTAC'ION. una persona de co ntacto. Los borrados y las modificaciones serán en todos los casos en cascada. . E_EQUIPO (V.NJ, Noml)/'e_Eqllipo) CONTACTO I'_INDIVII)UAJ. (N Prllepll, N Portie, DNf) ¡"/}iI4/'a (Código. Nonlbre) f I u L M'L ESTACiÓN (Código, Nombre. Dirección. Teléfono. Krns) 2.2.78 FE('~HAS_PRUEBA (N Prueba, I-'echa Prev) ..lue .... ...J ,l f PRUEBA eN Prueba. Vencedor'. Tiempo') , F~.U"-Rrt'ro'"t-i",nbrc. '1umero) I PRL'EBA11' + PARTICIPANTE R e, M e Pr!!W. Vcn<edol . TIempo ) I FECHAS_PARTICIPANTE DI Me '1IENE_l.tGAR IiY_Pn<"lw. C'¡'¡ P,,'a, ('lidIen. Grudojfif. ~i(' Longitud, Phla_compuc,13) + .. le'Hlig", e,;,1 Pi,Ha1 e"IIt. ('tíd l'i,'<I I '1 1" CONTII(NE I r l'_EQUIPO k. " (' IN. PWr/w. N , (f:'/ Prueba, N Parrie, Fecha) p"", C'¡di~,,) BR. PISTA leN (N Prueba, N Partic. Posición. Tiempo) R M e ,,,,.) ORMA_PARTE (N Prueba, N Parrie, DNI. Posición, Tiempo) u C. M:C FECHA_FORMA_PARTE (N_Prueba. N_Par/ie. DNI,.Fecha) tua« ..No",/lrr) , Figura 2.2.80 n C,t- v I 1" I'ORM¡ I'AI{ fE 1/YJ'(IJ.I:l!/.I •. {11 l'ul'!/¡.(>NI. Po,'eión. Tiernpu) 8R.M ~ t: EVUII)O (/)NI, N"lIIhl'( F.""i¡11I1 Figura 2.2.79 PrOI)uesta de soluci6n En la figura 2.2.81 se muestra transfornlación. el grafo relacional con el resultado de la • _.~ ••• •• ••••••• •
  • 161. ~ ••••- ~.~ ~., ••••••• •••••••••••• ••••••••.••••••.•.•• •.• ' ~ J 10 DISE:'iO DE BASES DE DATOS: PROBLEMAS RESUEl.TOS 2.2' TRANSFORMACIÓN DE hSQUEMAS FJRA eSQUEMAS REI.ACIONALES Semántica no recogida .... EDERACIÓN (Nombre, Número) F . ~s ncc~sario COnt~~lar,qu~ ~n esquiador no pueda cambiar de equipo durante los Juegos. así corno que, SI es individual. no pueda ser de equipo. y al revés . CONTACTO (Código, Nombre) t I B.C. M e ..... ESTAClÓN (Código, Nombre, Dirección. Teléfono, Kms) ~ 1 B:C, M:C Atributos derivados, R:R,M,e ADMINISTRA (Norflbre, Código) Totalidad y exclusividad de las jerarquías . .IB C, M:C ... ~PISTA (C(>!iPista, Código. Grado_dif. Longitud, Pista_compuesta) I I R.R.M:C 1 I B I{, M e CONTIENE (Código, Cód Pista Cont, Cóti Pista lns) Cardinalidades de sus extremos . mínimas l en interrelaciones con cardinalidades FECHAS_PRUEBA (N Prueba, Fecha Prev) IR:C. M:C f ~PRUE8A t • (N Prueba, Vencedor', Tiempo') R:C.M:C I.l:K,M I e I 'rIENE_LUGAR (N Prueba, Cód Pista, Código) U.C.M e (N Prueba, N Partic. P osición, Tiempo) ~PARTICIPAN'rE • FECHAS_PARTICIPANTE IBc,Me I (N Prueba. N Partie, Fecha) ~QUIPO (Nolnbre, Entrenador, N_Esq) ... I a.e, M:C _.P _EQUIPO (N Prueba, N Partie, Nombr e) Is-e ., , . M'C .' .ESQUIADOR I R:R. M:C (DNI, Nombre, Edad, Federación) .. IB:C. M:C u c. M·e E_INDIVIDUAL (DN[) , I B:C. M C IB.R. M C E_EQUIPO (DNI, Nombre Eouipo) ~ B.C.M:C P_INDIVIDUAL (N P;lIeba, N Partie, DNI} , ¡+FORMA_PAR'I'E u.e, M (. .--_,B:R, M e (N Pruel,a, N Partic, DNI, Posición, Tiempo) I FECHA_FORMA_PARTE 31 I I IBC',M,( (N_Prueba. N_Partic, DNJ, Fecha) Figura 2.2.81. Esquema relacional solución (1:n) en alguno
  • 162. CAPíTULO 3 • NORMALIZACIÓN DE RELACIONES INTRODUCCIÓN (;uías metodológicas para abordar la resolución de los problemas 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 problemas de este libro se utilizarán heurísticas, ya que son más intuitivas que los algoritmos, y por lo tanto más fáciles de entender y aplicar al ser problemas Con un número reducido d~dependencias y atributos. Se recomienda la utilización de l s algoritmos de normalización si en el caso o prJctico existen un número elevado de dependencia y atrioulos, con el fi n de evitar 'lInrllsiones y equivocaciones en el cálculo. La mayorfa de las definiciones utilizadas en la introducción de "Igorilrnos de normalízacíon. se pueden encontrar en los libros 'l<j99¡ y De Miguel el al., (1995), excepto en las que se indique "¡rUrario.Alguna definición se ha adaptado a los propósitos de este ,ll'lIrnprensión. • .....l4 ....• - ~ . este capítulo, y los De Miguel er al.. explfcitamente lo libro, para facilitar -.
  • 163. •••••••••••••••••••• f DLSEÑODE BASES DE DATOS: PROBLEMAS RI"_~UELTOS 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 una ción son los siguientes: l. • ••••••••••••••• Cálculo de las dependencia s funcionales. multivaluadas. combinación que existen entre los atributos de la relación. jerárquicas R" IA e CAPíTULO 1: NORMAI.JZAC'ION DE RELACIONES NOlllbre_profeor (!--7 DN/_profesor y en Cálculo de las claves candidatas y de los no principales 4. Cálculo de la forma normal en la que se encuentra 5. Aplicar los métodos deseada. mutuamente se dice que son equivalentes. minimal 3. .15 Si además se cum pliera que no pueden existir dos profesores con el mismo nombre, esto implicaría que el nombre también puede actuar como clav de la relación e Profesor, y por lo tanto. también determina funcionalmente a su f)N/.