Conceptos Tema 3. Modelo relacional El modelo de datos relacional, las restricciones relacionales y el álgebra relacional. • BD: Colección de relaciones. Elmasri/Navathe 02 Transformación de ER y ERE en relacional, y otros lenguajes relacionales. Elmasri/Navathe 02 • Relación: Semeja una tabla: – Fila: Representa a entidad o vínculo. – Nombres de tabla y columnas: Identifican el significado de los valores. – Valores de columna: Mismo tipo de datos. • La BD Universidad del tema 1 sigue este modelo. • Conceptos (7.1) • Restricciones (7.2) • Operaciones de actualización (7.3) • Transformación ER-relacional (9.1) • Álgebra relacional (7.4, 7.5) • Consultas con álgebra relacional (7.6) ALUMNO Nombre Código alumno Smith 17 Brown 8 Año 1 2 Especialidad CS CS • Terminología: – A las tablas se las llama relaciones. – A las filas tuplas. – A las cabeceras de columna atributos. – Al tipo de datos de una columna dominio. • Dominio D: Conjunto de valores atómicos (indivisible). Consta de nombre, tipo de datos y formato. Ej. Edades_de_Empleados: valor entre 16 y 80. © C. P. G. 2007 FBD Tema 3 1 Conceptos (2) © C. P. G. 2007 FBD Tema 3 2 Características de las relaciones • Esquema de relación R(A1, ... , An): Describe la relación. – R es el nombre de la relación. – A1, ... , An su lista de atributos. – dom(Ai) dominio de Ai . . – Grado de la relación: Número de atributos (n). • Relación (estado o ejemplar de relación) r ó r(R) de un esquema R(A1, A2, . . ., An) es un conjunto de n-tuplas r={t1, t2, . . ., tm}: – Cada n-tupla es una lista ordenada de valores t=<v1, v2, . . ., vn> – Cada vi con 1≤ i ≤ n es: • Orden entre las tuplas: No se considera ningún orden concreto (como en los elementos de un conjunto). • Orden en los valores de una tupla: – Una n-tupla es una lista ordenada de n valores. – A nivel lógico lo que cuenta es mantener la correspondencia entre atributos y valores. • Valores en las tuplas: Son atributos atómicos. – No se admiten atributos compuestos . – Ni multivaluados . • Existe el valor nulo. • Un elemento de dom(Ai). • O un valor nulo. – El esquema R se llama intensión. – Un estado de relación r(R) se llama extensión. © C. P. G. 2007 FBD Tema 3 3 © C. P. G. 2007 FBD Tema 3 4 Notación ALUMNO Nombre Código alumno Smith 17 Brown 8 • Año 1 2 Restricciones en las relaciones • De dominio: El valor de cada atributo debe ser atómico. En SQL se verán los tipos disponibles. Especialidad CS CS • De clave: Atributo(s) de un esquema de relación que identifican unívocamente a las tuplas. – Superclave y clave. – Clave candidata y clave primaria. ALUMNO (Nombre, Código alumno, Año, Especialidad) Esquema de la relación ALUMNO de grado 4. • t = <‘Smith’, 17,1,’CS’> 4-tupla de la relación ALUMNO. • Integridad de entidades: Ninguna clave primaria puede contener el valor nulo. (ALUMNO indica el cjto. actual de tuplas, también llamado estado actual de la relación o ejemplar r(R)). • t [Nombre] = <‘Smith’> • t [Cód. Alumno, Especialidad, Año] = <17,’CS’,1> • ALUMNO.Nombre • ALUMNO.Año © C. P. G. 2007 • Claves externas (extranjeras o foráneas): – Son la forma de hacer referencia a otras relaciones. – En una relación aparece la clave principal de otra relación. Califican a los atributos de la relación ALUMNO. FBD Tema 3 • Integridad referencial: Una tupla que referencia a otra relación, debe referirse a una tupla existente en dicha relación. 5 © C. P. G. 2007 FBD Tema 3 6 Restricciones de clave: Ejemplo Restricciones de clave • En una relación no hay 2 tuplas con todos sus valores iguales (si no, no sería un conjunto de tuplas). • Superclave: Subconjunto de atributos de un esquema de relación que cumple: – No hay 2 tuplas con todos sus valores iguales. – El conjunto de atributos de una relación es superclave. • Clave: Superclave donde cualquier atributo que se elimine produce un subconjunto que no es superclave. – El ser o no clave no debe cambiar con el tiempo. • Clave candidata: Una clave posible. COCHE NúmeroMatrícula NúmeroSerieMotor Texas ABC-739 A69352 Marca Modelo Año Ford Mustang 96 Florida TVP-347 B43696 Oldsmobile Cutlass 99 N. York MPO-22 X83554 Oldsmobile Delta 95 California 432-TFY C43742 Mercedes 190-D 93 California RSK-629 Y82935 Toyota Camry 98 Texas RSK-629 U028365 Jaguar XJS 98 Figura 7.4. La relación COCHE con dos claves candidatas: NúmeroMatrícula y NúmeroSerieMotor Ejemplo de superclave: NúmeroMatricula + Marca • Clave primaria: La clave candidata elegida. – Se subrayan. – Es preferible que sea un solo atributo o un subconjunto reducido de atributos. © C. P. G. 2007 FBD Tema 3 7 © C. P. G. 2007 FBD Tema 3 8 Estado de la BD relacional “EMPRESA” Esquema de la BD relacional “EMPRESA” EMPLEADO NOMBRE INIC APELLIDO • Una BD relacional contiene muchas relaciones. • Las tuplas se relacionan entre sí. EMPLEADO ... NOMBRE INIC APELLIDO NSS FECHA_NCTO DIRECCIÓN ... SEXO SALARIO NSS_SUPERV ND NOMBRED NÚMEROD NSS_JEFE FECHA_INIC_JEFE LOCALIZACIONES_DEPT NÚMEROD LOCALIZACIÓND PROYECTO NOMBREP NÚMEROP LOCALIZACIÓNP NUMD TRABAJA_EN NP B T J S K A V E Smith Wong Zelaya Wallace Narayan English Jabbar Borg NSS FECHA_NCTO DIRECCIÓN 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 1965-01-09 1955-12-08 1968-07-19 1941-06-20 1962-09-15 1972-07-31 1969-03-29 1937-11-10 Fresnos 731, Houston, TX Valle 638, Houston, TX Castillo 3321, Sucre, TX Bravo 291, Bellaire, TX Espiga 875, Heras, TX Rosas 5631, Houston, TX Dalias 980, Houston, TX Sorgo 450, Houston, TX ... TRABAJA_EN DEPARTAMENTO NSSE John Franklin Alicia Jennifer Ramesh Joyce Ahmad Jaime HORAS DEPENDIENTE NSSE NOMBRE-DEPENDIENTE SEXO FECHA_NCTO PARENTESCO NSSE NP HORAS 123456789 123456789 666884444 453453453 453453453 333445555 333445555 333445555 333445555 999887777 999887777 987987987 987987987 987654321 987654321 888665555 1 2 3 1 2 2 3 10 20 30 10 10 30 30 20 20 32.5 7.5 40.0 20.0 20.0 10.0 10.0 10.0 10.0 30.0 10.0 35.0 5.0 20.0 15.0 nulo SEXO SALARIO NSS_SUPERV ND 30.000 40.000 25.000 43.000 38.000 25.000 25.000 55.000 H H M M H M H H 333445555 888665555 987654321 888665555 333445555 333445555 987654321 nulo 5 5 4 4 5 5 4 1 Figura 7.6 (1ª parte) Ejemplar (Estado) de base de datos relacional del esquema EMPRESA. DEPARTAMENTO NOMBRED NÚMERODNSS_JEFE FECHA_INIC_JEFE Figura 7.5. Esquema de base de datos relacional EMPRESA; las claves primarias están subrayadas. © C. P. G. 2007 Investigación Administración Dirección FBD Tema 3 9 5 4 1 © C. P. G. 2007 333445555 987654321 888665555 1988-05-22 1995-01-01 1981-06-19 FBD Tema 3 10 Restricciones de integridad (RI) Estado de la BD relacional “EMPRESA” (cont) LOCALIZACIONES_DEPT 1 4 5 5 5 Houston Stafford Bellaire Sugarland Houston PROYECTO NOMBREP NÚMEROP LOCALIZACIÓNP NUMD ProductoX ProductoY ProductoZ Automatización Reorganización Nuevos beneficios 1 2 3 10 20 30 Bellaire Sugarland Houston Stafford Houston Stafford • Integridad de entidades: Ningún valor de una clave primaria puede tener valor nulo. • Integridad referencial: – Se da entre 2 relaciones. – Garantiza la consistencia entre tuplas de las 2 relaciones. – Una tupla de la relación A hace referencia a la relación B. – Deberá referirse a una tupla existente en B. A – Ejemplo: B EMPLEADO.ND y DEPARTAMENTO.NUMEROD . NÚMEROD LOCALIZACIÓND 5 5 5 4 1 4 EMPLEADO NOMBRE INIC APELLIDO DEPENDIENTE NSSE NOMBRE_DEPENDIENTE SEXO FECHA_NCTO PARENTESCO 333445555 333445555 333445555 987654321 123456789 123456789 123456789 Alicia Theodore Joy Abner Michael Alicia Elizabeth M H M H H M M 1986-04-05 1983-10-25 1958-05-03 1942-02-28 1988-01-04 1988-12-31 1967-05-05 HIJA HIJO ESPOSA ESPOSO HIJO HIJA ESPOSA Figura 7.6 (2ª parte) Ejemplar (Estado) de base de datos relacional del esquema EMPRESA. © C. P. G. 2007 FBD Tema 3 11 John Franklin Alicia Jennifer Ramesh Joyce Ahmad Jaime B T J S K A V E Smith Wong Zelaya Wallace Narayan English Jabbar Borg NSS 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 SALARIO NSS_SUPERV ND ... 30.000 40.000 25.000 43.000 38.000 25.000 25.000 55.000 333445555 888665555 987654321 888665555 333445555 333445555 987654321 nulo 5 5 4 4 5 5 4 1 DEPARTAMENTO NOMBRED NÚMEROD Investigación Administración Dirección 5 4 1 © C. P. G. 2007 ... NSS_JEFE FECHA_INIC_JEFE 333445555 987654321 888665555 FBD Tema 3 1988-05-22 1995-01-01 1981-06-19 12 Clave externa (CE) Integridad referencial en el esquema • CE conjunto no vacío de atributos de R1 . • CE es clave extranjera si: – CP es clave primaria de R2 . – Los dominios de CE coinciden con los de CP. – CE hace referencia a CP: • ∀t1 ∈ R1 ∃t2 ∈ R2 | t1 [CE] = t2[CP] . • o bien t1 [CE] = valor nulo . • Ejemplo: EMPLEADO.ND hace referencia a DEPARTAMENTO. • Puede hacer referencia a la propia relación: EMPLEADO NOMBRE INIC APELLIDO NSS FECHA_NCTO DIRECCIÓN SEXO ... NSS_SUPERV ND DEPARTAMENTO NOMBRED NÚMEROD NSS_JEFE FECHA_INIC_JEFE LOCALIZACIONES_DEPT NÚMEROD LOCALIZACIÓND PROYECTO EMPLEADO.NSS_SUPERV . NOMBREP NÚMEROP LOCALIZACIÓNP NUMD EMPLEADO TRABAJA_EN NOMBRE INIC APELLIDO John Franklin Alicia Jennifer Ramesh Joyce Ahmad Jaime SALARIO ... B T J S K A V E Smith Wong Zelaya Wallace Narayan English Jabbar Borg NSS 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 SALARIO NSS_SUPERV ND ... 30.000 40.000 25.000 43.000 38.000 25.000 25.000 55.000 333445555 888665555 987654321 888665555 333445555 333445555 987654321 nulo 5 5 4 4 5 5 4 1 DEPARTAMENTO NOMBRED Investigación Administración Dirección © C. P. G. 2007 NSSE NP HORAS DEPENDIENTE NSSE NOMBRE_DEPENDIENTE SEXO FECHA_NCTO PARENTESCO Figura 7.7. Restricciones de integridad referencial representadas en el esquema de la base de datos relacional EMPRESA. NÚMEROD NSS_JEFE FECHA_INIC_JEFE 5 4 1 333445555 987654321 888665555 1988-05-22 1995-01-01 1981-06-19 FBD Tema 3 13 © C. P. G. 2007 FBD Tema 3 14 Restricciones de integridad Operaciones de actualización • Las RI se especifican utilizando una parte del lenguaje llamada DDL: – DDL = Data Definition Language / Lenguaje de definición de datos. • Las operaciones de actualización se especifican utilizando otra parte del lenguaje llamada DML: DML= Data Manipulation Language / Lenguaje de Manipulación de Datos – Este tipo de lenguaje debe contar con mecanismos para especificar RI. • Las operaciones de actualización cambian los datos de la BD, frente a las operaciones de consulta que simplemente recuperan datos de la BD pero no los cambian. – El SGBD puede imponerlas automáticamente. • RI semánticas: – “El salario de un empleado no debe ser superior al de su jefe”. – “Dedicación semanal de un empleado a todos los proyectos no superior a 56 horas”. • Cuando se aplican no deben violar ninguna restricción de integridad. • Muy pocos SGBD soportan las RI semánticas. • Se están incorporando mecanismos. © C. P. G. 2007 FBD Tema 3 • Son las siguientes: – Insertar. – Eliminar. – Modificar. • Veremos: – Qué RI puede violar cada operación. – Qué acciones se pueden emprender en caso de violación. 15 © C. P. G. 2007 FBD Tema 3 16 ACEPTABLE Insertar Insertar (2) • Insertar <‘Cecilia’, ’F’, ’Kolonsky’, ’677678989’, ‘05-ABR-60’, ‘Calle Viento 6357, Malinalco, TX’, ‘M’, 28000, nulo, 4 > en EMPLEADO. • • Ante violación de RI al insertar: – Rechazar: • Es lo que se hace normalmente. • Útil explicación SGBD. Puede violar los 4 tipos de RI: – Corregir: – Dominio: Insertar< ..., ‘Depto 3’> – Entidades: Insertar <‘Cecilia’,... ,’Kolonsky’, nulo,...,4> – Clave: Insertar <‘Cecilia’, ... , ’999887777’, ... , 4> – I. referencial: Insertar <‘Cecilia’, ..., 7> • Se usa más para modificaciones y eliminaciones. • Entidades: – Pedir NSS válido. – Que la clave no sea nula ni exista ya. • I.Referencial: – Pedir valor existente o nulo. EMPLEADO NOMBRE INIC APELLIDO NSS DIRECCIÓN FECHA_NCTO John B Smith 123456789 Fresnos 731, Houston, TX 1965-01-09 Franklin T Wong 333445555 Valle 638, Houston, TX 1955-12-08 Alicia J Zelaya 999887777 Castillo 3321, Sucre, TX 1968-07-19 Jennifer S Wallace 987654321 Bravo 291, Bellaire, TX 1941-06-20 Ramesh K Narayan 666884444 Espiga 875, Heras, TX 1962-09-15 Joyce A English 453453453 Rosas 5631, Houston, TX 1972-07-31 Ahmad V Jabbar 987987987 Dalias 980, Houston, TX 1969-03-29 Jaime E Borg 888665555 Sorgo 450, Houston, TX 1937-11-10 ... SEXO SALARIO 30.000 H H 40.000 M 25.000 43.000 M H 38.000 25.000 M 25.000 H 55.000 H © C. P. G. 2007 ACEPTABLE NSS_SUPERV 333445555 888665555 987654321 888665555 333445555 333445555 987654321 nulo – Pedir introducción de la tupla correspondiente al valor referenciado: ... » Pedir datos del departamento 7 (que no existía) – Pedir en Cascada : ND 5 5 4 4 5 5 4 1 FBD Tema 3 » Pedir datos del departamento 7 » Una vez que el departamento existe, pedir de nuevo el empleado © C. P. G. 2007 17 FBD Tema 3 18 Eliminar Eliminar (2) • Eliminar todos los TRABAJA_EN con NSSE=‘999887777’ y NP=10. • Se eliminan todas las tuplas que cumplan la condición. • Ante violación de RI al eliminar, se puede: – Rechazar. • Solamente se puede violar la integridad referencial si las CEs de otras tuplas de la BD hacen referencia a la tupla que se va a eliminar. – Propagar: • Puede violar I. referencial: – Eliminar todo EMPLEADO con NSS=‘999887777’ – Eliminar todo EMPLEADO con NSS=‘333445555’ – Modificar: • Eliminar todas las tuplas con referencia a la eliminada. A esto se le denomina eliminación en cascada. • Poner un valor existente en referencias. • Poner valor nulo en referencias (no si es parte de la clave primaria). EMPLEADO NOMBRE INIC APELLIDO NSS DIRECCIÓN FECHA_NCTO John B Smith 123456789 Fresnos 731, Houston, TX 1965-01-09 Franklin T Wong 333445555 Valle 638, Houston, TX 1955-12-08 Alicia J Zelaya 999887777 Castillo 3321, Sucre, TX 1968-07-19 Jennifer S Wallace 987654321 Bravo 291, Bellaire, TX 1941-06-20 Ramesh K Narayan 666884444 Espiga 875, Heras, TX 1962-09-15 Joyce A English 453453453 Rosas 5631, Houston, TX 1972-07-31 Ahmad V Jabbar 987987987 Dalias 980, Houston, TX 1969-03-29 Jaime E Borg 888665555 Sorgo 450, Houston, TX 1937-11-10 ... © C. P. G. 2007 SEXO SALARIO 30.000 H H 40.000 M 25.000 43.000 M H 38.000 25.000 M 25.000 H 55.000 H FBD Tema 3 NSS_SUPERV 333445555 888665555 987654321 888665555 333445555 333445555 987654321 nulo – Propagar y modificar: ... • Al eliminar un EMPLEADO podríamos: – Eliminar referencias en TRABAJA_EN y DEPENDIENTE. – Modificar referencias en EMPLEADO y DEPARTAMENTO (las de los empleados y ND 5 5 4 4 5 5 4 1 departamentos en los que era jefe el empleado borrado). • En general, el SGBD permite especificar la opción a aplicar. 19 © C. P. G. 2007 FBD Tema 3 20 ACEPTABLE Modificar Transformación ER-relacional • Algoritmo en 7 pasos para transformar un esquema E/R en el modelo relacional correspondiente. Los pasos se han de dar en el orden indicado. • Modificar el SALARIO del EMPLEADO con NSS=‘999887777’ a 28.000. • Con atributos que no sean clave primaria ni externa: – No suelen producirse problemas. – Salvo que no sea un valor del dominio. • Paso 1: T. entidades normales (no débiles) Por cada tipo de entidad normal E crear una relación R que contenga todos los atributos simples de E. Si hay algún atributo compuesto se ponen sus componentes simples. Se elige una clave como clave primaria. • Si es clave primaria: – Equivale a eliminar la tupla e insertar una nueva. – Mismos problemas que en insertar y eliminar. A5 • Si es clave extranjera: – El SGBD debe asegurar que el nuevo valor existe. A4 A3 A6 R (de E) A1 A2 A3 A5 A6 E A2 A1 • Ejemplos que violan la RI: – I. Referencial: Modificar todos los ND de EMPLEADO con NSS=‘999887777’ a 7. A4 – Clave primaria e I. referencial: Modificar todos los NSS de EMPLEADO con NSS=‘999887777’ a ‘987654321’. © C. P. G. 2007 FBD Tema 3 21 Transformación ER-relacional (2) B1 B2 W E A3 R (de E2) A2 A3 A4 E2 © C. P. G. 2007 FBD Tema 3 22 Transformación ER-relacional (3) • Paso 2: T. entidades débiles (+Vínculos identificadores) Por cada tipo de entidad débil W crear una relación R con todos los atributos de W (los compuestos con sus componentes simples). Se incluyen también como atributos las claves primarias de la/s relación/es propietarias. La clave de la nueva relación R estará formada por la combinación de las claves primarias de las relaciones propietarias más la clave parcial de W. A2 A1 A2 A1 R (de W) B1 A1 A2 • Paso 3: T. relación 1:1 A2 A1 E1 B1 1 1 B2 E2 S (de E1, T=E2) A1 A2 B1 R1 CE R1 1 E1 1 E2 Mejor Por cada vínculo 1:1 se incluye como clave externa en S (mejor que S sea la de participación total, si la hay) la clave primaria de T. Si hay atributos en el vínculo se ponen también en S. • Paso 4: T. relación 1:N CE A2 A1 Con este paso quedan tratados tanto los tipos de entidad débiles, como sus vínculos identificadores. E1 N B1 1 B2 E2 S (de E1, T=E2) A1 A2 B1 R1 CE R1 Por cada vínculo 1:N se incluye como clave externa en S (la relación surgida de la parte N del vínculo) la clave primaria de T. Si hay atributos en el vínculo se ponen también en S. © C. P. G. 2007 FBD Tema 3 23 © C. P. G. 2007 FBD Tema 3 24 Transformación ER-relacional (4) Transformación ER-relacional (5) • Paso 5: T. relación M:N A2 A1 E1 M B1 R N B2 E2 S (de R) A1 B1 R1 CE R1 CE Por cada tipo de vínculo M:N se crea una nueva relación S para representar al vínculo R. Se incluyen como atributos de clave externa las claves primarias de las relaciones surgidas a partir de E1 y E2. La clave primaria de S será la combinación de las claves primarias anteriores. Si el tipo de vínculo tiene atributos, éstos se incluyen también en S. • Paso 6: Atributos multivaluados Por cada atributo multivaluado A se crea una nueva relación S que incluye el atributo correspondiente a A y la clave primaria K de la relación correspondiente al tipo de entidad donde está A. La clave será normalmente la combinación de A más K. A2 A1 A3 R (de A2) E A1 A3 E A1 A2 CE – Se puede usar también para 1:1 y 1:N. – Mejor cuando haya pocas ocurrencias de la relación (menos nulos). E2 A1 A3 R2 (de A2) A1 A4 A5 A4 A3 A1 A2 A5 E2 CE © C. P. G. 2007 FBD Tema 3 25 © C. P. G. 2007 FBD Tema 3 26 ESQUEMA ER DE LA BD “EMPRESA” Transformación ER-relacional (6) • Paso 7: T. relaciones n-arias *Familiar=dependiente Nombre A2 A1 E1 B1 R R1 B2 E2 S (de R) A1 B1 C1 R1 Sexo FAMILIAR* E3 C1 Fecha nacimiento N CE CE CE Parentesco ES_FAMILIA_DE C2 1 NombreP Iniciales Apellido Nombre Sexo NSS Fecha nacimiento Dirección Salario supervisor Por cada tipo de vínculo n-ario R se crea una nueva relación S con atributos clave externa las claves primarias de las relaciones surgidas de todos los tipos de entidad participantes. La clave primaria de S será una combinación de estas claves. Si existen atributos en el vínculo, se añadirán también como atributos de S. EMPLEADO N 1 SUPERVISA 1 supervisado TRABAJA_PARA DIRIGE 1 1 N Fecha inicio Nombre Número DEPARTAMENTO – Si hay algún (*,1) entonces la clave es la de esta entidad. El * es la participación (0 parcial ó 1 total). N 1 Localizaciones Número de empleados Horas TRABAJA_EN M CONTROLA N PROYECTO Nombre Número Localización © C. P. G. 2007 FBD Tema 3 27 © C. P. G. 2007 FBD Tema 3 28 Transformación ER-relacional BD EMPRESA • PASO 1: TE. Fuertes Transformación ER-relacional BD EMPRESA (2) DEPARTAMENTO NOMBRE NÚMERO EMPLEADO NOMBREP INICIALES APELLIDO NSS FECHA_NCTO SEXO ... PROYECTO NOMBRE NÚMERO LOCALIZACIÓN • PASO 2: DIR SALARIO • PASO 5: TRABAJA_EN NÚMEROP NSSE HORAS • PASO 6: NÚMEROD LOCALIZACIÓN TE. Débiles • Solución completa: PROYECTO NOMBRE NÚMERO LOCALIZACIÓN ND TV. 1:1 DEPARTAMENTO NOMBRE NÚMERO NSS_JEFE FECHA_INIC_JEFE • PASO 4: DEPARTAMENTO NOMBRE NÚMERO NSS_JEFE FECHA_INIC_JEFE EMPLEADO NOMBREP INICIALES APELLIDO NSS FECHA_NCTO SEXO TV. 1:N PROYECTO NOMBRE NÚMERO LOCALIZACIÓN ND EMPLEADO NOMBREP INICIALES APELLIDO NSS FECHA_NCTO SEXO ... © C. P. G. 2007 Atr. Multivaluados LOCALIZACIONES_DPTO FAMILIAR NSS NOMBRE SEXO FECHA_NCTO PARENTESCO • PASO 3: TV. M:N DIR SALARIO ND NSS_SUPERV FBD Tema 3 29 ... DIR SALARIO ND NSS_SUPERV FAMILIAR NSS NOMBRE SEXO FECHA_NCTO PARENTESCO TRABAJA_EN NÚMEROP NSSE HORAS © C. P. G. 2007 Transformación ER- relacional LOCALIZACIONES_DPTO NÚMEROD LOCALIZACIÓN FBD Tema 3 30 Definir esquemas de BDR (relaciones) • Más ejemplos: Convertir los esquemas conceptuales de los ejercicios BUQUES y BIBLIOTECA del tema anterior en los modelos relacionales correspondientes aplicando el algoritmo de los 7 pasos. • Un esquema de base de datos relacional (BDR) se define mediante un lenguaje de definición de datos (DDL). • El DDL nos permite: – Dar nombre al esquema de BD. – Declarar dominios de atributos: • Nombre dominio. • Tipo de datos. – Definir cada relación: • Nombre relación. • Nombre atributos. • Dominio atributos. • Indicar clave primaria (y candidatas). • Indicar claves extranjeras (claves que son primarias en otra relación). • La mayoría de los DDLs se basan en el lenguaje SQL, que a su vez se basa en el álgebra relacional. © C. P. G. 2007 FBD Tema 3 31 © C. P. G. 2007 FBD Tema 3 32 Álgebra relacional SIGMA • Operaciones para manipular relaciones enteras. σ<condición selección>(R) • De teoría de conjuntos: – – – – UNIÓN. INTERSECCIÓN. DIFERENCIA. PRODUCTO CARTESIANO. Selección • Selecciona un subconjunto de tuplas de una relación. • Las que satisfacen una condición. • El resultado es otra relación. Binarias • Específicas: – SELECCIÓN. – PROYECCIÓN. – REUNIÓN (JOIN). • DIVISIÓN. • σND=4(EMPLEADO) • σSALARIO>30000(EMPLEADO) Unarias Binaria • La relación resultante tiene los mismos atributos. • Tiene menor o igual número de tuplas. Binaria • Otras: – – – – • Condición: {=, <, ≤, >, ≥, ≠} FUNCION AGREGADA. CIERRE RECURSIVO. REUNIÓN EXTERNA. UNIÓN EXTERNA. OPERADORES RELACIONALES Y, O, NO. OPERADORES LÓGICOS Operación Unaria: Interviene una sola relación Operación Binaria: Intervienen dos relaciones © C. P. G. 2007 FBD Tema 3 © C. P. G. 2007 33 Selección (2) PI σ(ND=4 Y SALARIO>25000) o (ND=5 Y SALARIO>30000)(EMPLEADO) NOMBRE INIC APELLIDO Franklin T NSS FECHA_NCTO DIRECCIÓN Wong 333445555 1955-12-08 Valle 638, Houston, TX Jennifer S Wallace 987654321 1941-06-20 Bravo 291, Bellaire, TX Ramesh K Narayan 666884444 1962-09-15 Espiga 875, Heras, TX SEXO SALARIO Fig. 7.8. (a) ... NSS_SUPERV ND H 40.000 888665555 5 M 43.000 888665555 4 H 38.000 333445555 5 FBD Tema 3 34 Proyección π<lista de atributos>(R) ... lista de atributos: Atributos separados por comas • Selecciona algunas columnas de una relación. • El resultado es otra relación. • La relación resultante tiene sólo los atributos especificados. • Atributos en el mismo orden especificado. • Eliminación de duplicados. Propiedades de la selección: • Conmutativa: σ<COND1>( σ<COND2>(R) ) = σ<COND2>( σ<COND1>(R) ) • Combinación cascada de selecciones: σ<COND1>( σ<COND2>(R) ) = σ<COND1> Y <COND2>(R) © C. P. G. 2007 FBD Tema 3 35 © C. P. G. 2007 FBD Tema 3 36 Resultados intermedios Cambios de nombre Proyección (2) • En álgebra relacional se pueden asignar los resultados obtenidos en una operación (todo resultado da una relación) a otra relación; para así ir hallando resultados intermedios. • πAPELLIDO, NOMBRE, SALARIO(EMPLEADO) APELLIDO Smith Wong Zelaya Wallace Narayan English Jabbar Borg NOMBRE John Franklin Alicia Jennifer Ramesh Joyce Ahmad Jaime S← ←R SEXO SALARIO H 30.000 H 40.000 M 25.000 M 43.000 H 38.000 H 25.000 H 55.000 SALARIO 30.000 40.000 25.000 43.000 38.000 25.000 25.000 55.000 Fig. 7.8. (b) R: Cualquier operación o conjunto de operaciones que nos de una relación. S: Nueva relación en la que se guarda R y que tiene los mismos atributos que R. Fig. 7.8. (c) π APELLIDO, NOMBRE, SALARIO (EMPLEADO) π SEXO, SALARIO (EMPLEADO) • Los nombres de los atributos de S son los mismos que tuviésemos en R. Se pueden cambiar los nombres de los atributos mediante: Propiedades de la proyección: • Combinación cascada de proyecciones: π<LISTA1> (π<LISTA2> (R)) = π<LISTA1> (R) donde <LISTA1> ⊂ <LISTA2> . • No conmutativa. © C. P. G. 2007 FBD Tema 3 S(lista nuevos nombres)← ←R lista nuevos nombres: Nuevos nombres para los atributos resultantes, separados por comas y en el mismo orden que estuvieran en R. © C. P. G. 2007 37 Resultados intermedios Cambios de nombre (2) NOMBRE John Franklin Ramesh Joyce APELLIDO Smith Wong Narayan English Unión, intersección y diferencia. SALARIO 30.000 40.000 38.000 25.000 • • • Fig 7.9. (a) • Alternativa con resultados intermedios: EMPS_DEP5 La Unión entre dos relaciones R y S nos da todas las tuplas tanto de R como de S, eliminando las que están repetidas. Alternativa con resultados intermedios y cambios de nombre: TEMP ← σND=5(EMPLEADO) R(NOMBRE_PILA, PRIMER_APELL, SALARIO) R∩S ← πNOMBRE,APELLIDO,SALARIO(TEMP) TEMP NOMBRE INIC APELLIDO John Franklin Ramesh Joyce B T K A Smith Wong Narayan English NSS FECHA_NCTO DIRECCIÓN 123456789 333445555 666884444 453453453 1965-01-09 1955-12-08 1962-09-15 1972-07-31 Fresnos 731, Houston, TX Valle 638, Houston, TX Espiga 875, Heras, TX Rosas 5631, Houston, TX R SEXO SALARIO NOMBRE_PILA PRIMER_APELL John Franklin Ramesh Joyce Son operaciones binarias. Su resultado es otra relación. Las 2 relaciones han de tener igual tipo de tuplas: Compatibilidad de unión. R∪S ← σND=5(EMPLEADO) RESULTADO←πNOMBRE,APELLIDO,SALARIO(EMPS_DEP5) • 38 Operaciones de T. de conjuntos π NOMBRE, APELLIDO, SALARIO(σND=5(EMPLEADO)) • FBD Tema 3 Smith Wong Narayan English SALARIO 30.000 40.000 38.000 25.000 ... H H H M 30.000 40.000 38.000 25.000 NSS_SUPERV ND 333445555 888665555 333445555 333445555 5 5 5 5 ... La Intersección entre dos relaciones R y S nos da todas las tuplas comunes a R y S, eliminando las que están repetidas. R-S La Diferencia entre dos relaciones R y S nos da todas las tuplas de R que no están en S. Fig. 7.9. (b) Resultados de expresiones del álgebra relacional. © C. P. G. 2007 FBD Tema 3 39 © C. P. G. 2007 FBD Tema 3 40 Operaciones de T. de conjuntos Ejemplos de unión e intersección ALUMNO NOM Susana Ramesh Josué Bárbara Amanda Jaime Ernesto Ejemplo de Unión EMPS_DEP5 ← σND=5(EMPLEADO) RESULTADO1←πNSS(EMPS_DEP5) RESULTADO2(NSS) ←πNSS_SUPERV (EMPS_DEP5) RESULTADO← RESULTADO1∪ RESULTADO2 RESULTADO1 NSS 123456789 333445555 666884444 453453453 RESULTADO2 NOM Susana Ramesh RESULTADO NSS 123456789 333445555 666884444 453453453 888665555 FBD Tema 3 41 APEL Yáñez Sánchez Landa Jaimes Flores Vélez Gómez PROFESOR NOM John Ricardo Susana Francisco Ramesh NOM Susana Ramesh Josué Bárbara Amanda Jaime Ernesto John Ricardo Francisco APEL Yáñez Sánchez Fig. 7.11 (a) Dos relaciones compatibles con la unión. APEL Yáñez Sánchez Landa Jaimes Flores Vélez Gómez Smith Bueno Jiménez • Propiedades de Unión e intersección: – Conmutativas: R∪S=S∪R R∩S=S∩R – Asociativas: (R ∪ S) ∪ T = R ∪ (S ∪ T) (R ∩ S) ∩ T = R ∩ (S ∩ T) Ejemplos de diferencia ALUMNO NOM Susana Ramesh Josué Bárbara Amanda Jaime Ernesto APEL Smith Bueno Yáñez Jiménez Sánchez Fig 7.11. (c) ALUMNO ∪ PROFESOR RESULTADO← RESULTADO1∪ RESULTADO2 © C. P. G. 2007 PROFESOR NOM John Ricardo Susana Francisco Ramesh Fig 7.11. (b) ALUMNO ∩ PROFESOR NSS 333445555 888665555 Fig. 7.10. APEL Yáñez Sánchez Landa Jaimes Flores Vélez Gómez © C. P. G. 2007 FBD Tema 3 42 Operaciones de T. de conjuntos Producto cartesiano (CROSSJOIN). • Intervienen dos relaciones. APEL Smith Bueno Yáñez Jiménez Sánchez • Esas relaciones no tienen por qué ser compatibles con la unión. PRODUCTO CARTESIANO NOM Josué Bárbara Amanda Jaime Ernesto APEL Landa Jaimes Flores Vélez Gómez NOM John Ricardo Francisco APEL Smith Bueno Jiménez R×S Fig. 7.11. (e) PROFESOR— ALUMNO El resultado del producto cartesiano consta de todas las combinaciones posibles de cada tupla de R seguida de otra de S. Es decir: - Tiene todos los atributos de R y S; primero los de R y seguidos los de S. - Tiene n* m tuplas; siendo n el número de tuplas de R y m el número de tuplas de S. Fig. 7.11. (d) ALUMNO — PROFESOR • La diferencia no es conmutativa: R — S ≠ S — R (en general) © C. P. G. 2007 FBD Tema 3 43 © C. P. G. 2007 FBD Tema 3 44 Ejemplo Producto Cartesiano (2) Ejemplo Producto cartesiano NOMBRES_EMP • Ejemplo: Obtener los familiares de empleadas. EMPS_MUJER ← σsexo=‘M’(EMPLEADO) DEPENDIENTE NOMBRESEMP←πNOMBRE,APELLIDO,NSS(EMPS_MUJER) DEPENDIENTES_EMP ← NOMBRESEMP × DEPENDIENTE DEPENDIENTES_REALES← σNSS=NSSE(DEPENDIENTES_EMP) RESULTADO←πNOMBRE,APELLIDO,NOMBRE_DEPENDIENTE(DEPENDIENTES_REALES) NOMBRE APELLIDO NSS Alicia Jennifer Joyce Zelaya Wallace English 999887777 987654321 453453453 NSSE NOMBRE_DEPENDIENTE 333445555 333445555 333445555 987654321 123456789 123456789 123456789 Alicia Theodore Joy Abner Michael Alicia Elizabeth SEXO FECHA_NCTO PARENTESCO M H M H H M M 1986-04-05 1983-10-25 1958-05-03 1942-02-28 1988-01-04 1988-12-31 1967-05-05 HIJA HIJO ESPOSA ESPOSO HIJO HIJA ESPOSA DEPENDIENTES_EMP ←NOMBRES_EMP × DEPENDIENTE DEPENDIENTES_EMP EMPS_MUJER NOMBRE INIC APELLIDO Alicia Jennifer Joyce J S A Zelaya Wallace English NSS FECHA_NCTO DIRECCIÓN 999887777 987654321 453453453 1968-07-19 1941-06-20 1972-07-31 Castillo 3321, Sucre, TX Bravo 291, Bellaire, TX Rosas 5631, Houston, TX ... SEXO SALARIO NSS_SUPERV ND 25.000 987654321 4 M 43.000 888665555 4 M 25.000 333445555 5 M NOMBRES_EMP NOMBRE APELLIDO Alicia Jennifer Joyce Zelaya Wallace English NSS 999887777 987654321 453453453 Fig. 7.12. © C. P. G. 2007 FBD Tema 3 45 ... NOMBRE APELLIDO NSS NSSE NOMBRE_DEPENDIENTE SEXO Alicia Alicia Alicia Alicia Alicia Alicia Alicia Jennifer Jennifer Jennifer Jennifer Jennifer Jennifer Jennifer Joyce Joyce Joyce Joyce Joyce Joyce Joyce Zelaya Zelaya Zelaya Zelaya Zelaya Zelaya Zelaya Wallace Wallace Wallace Wallace Wallace Wallace Wallace English English English English English English English 999887777 999887777 999887777 999887777 999887777 999887777 999887777 987654321 987654321 987654321 987654321 987654321 987654321 987654321 453453453 453453453 453453453 453453453 453453453 453453453 453453453 333445555 333445555 333445555 987654321 123456789 123456789 123456789 333445555 333445555 333445555 987654321 123456789 123456789 123456789 333445555 333445555 333445555 987654321 123456789 123456789 123456789 Alicia Theodore Joy Abner Michael Alicia Elizabeth Alicia Theodore Joy Abner Michael Alicia Elizabeth Alicia Theodore Joy Abner Michael Alicia Elizabeth M H M H H M M M H M H H M M M H M H H M M Fig. 7.12 © C. P. G. 2007 Ejemplo Producto Cartesiano (3) REUNIÓN FBD Tema 3 46 Reunión (JOIN) DEPENDIENTES_EMP NOMBRE APELLIDO NSS NSSE NOMBRE_DEPENDIENTE SEXO Alicia Alicia Alicia Alicia Alicia Alicia Alicia Jennifer Jennifer Jennifer Jennifer Jennifer Jennifer Jennifer Joyce Joyce Joyce Joyce Joyce Joyce Joyce Zelaya Zelaya Zelaya Zelaya Zelaya Zelaya Zelaya Wallace Wallace Wallace Wallace Wallace Wallace Wallace English English English English English English English 999887777 999887777 999887777 999887777 999887777 999887777 999887777 987654321 987654321 987654321 987654321 987654321 987654321 987654321 453453453 453453453 453453453 453453453 453453453 453453453 453453453 333445555 333445555 333445555 987654321 123456789 123456789 123456789 333445555 333445555 333445555 987654321 123456789 123456789 123456789 333445555 333445555 333445555 987654321 123456789 123456789 123456789 Alicia Theodore Joy Abner Michael Alicia Elizabeth Alicia Theodore Joy Abner Michael Alicia Elizabeth Alicia Theodore Joy Abner Michael Alicia Elizabeth M H M H H M M M H M H H M M M H M H H M M ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... DEPENDIENTES_REALES←σNSS=NSSE(DEPENDIENTES_EMP) R <condición de reunión>S El resultado de la Reunión consta de todas las combinaciones de cada tupla de R seguida de otra de S, que satisfagan la condición de reunión. Es equivalente a un producto cartesiano seguido de una selección. • • • • Combina tuplas relacionadas de 2 relaciones. Operación muy importante para una BDR. Permite procesar vínculos entre relaciones. Eliminación de duplicados. • Las relaciones que intervienen no tienen por qué ser compatibles con la unión. DEPENDIENTES_REALES NOMBRE APELLIDO Jennifer Wallace NSS NSSE NOMBRE_DEPENDIENTE SEXO Abner H 987654321 987654321 ... ... • Su resultado puede tener un máximo de n* m tuplas (si todas las tuplas cumplen la condición de reunión). RESULTADO← πNOMBRE,APELLIDO,NOMBRE_DEPENDIENTE(DEPENDIENTES_REALES) RESULTADO NOMBRE APELLIDO NOMBRE_DEPENDIENTE Jennifer Wallace Abner © C. P. G. 2007 FBD Tema 3 47 © C. P. G. 2007 FBD Tema 3 48 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Ejemplo de Reunión Ejemplo de Reunión (2) • Ejemplo: Obtener el nombre del departamento y el nombre (nombre y apellido) del jefe de cada departamento. • En el ejemplo del producto cartesiano: DEPENDIENTES_EMP ← NOMBRES_EMP × DEPENDIENTE DEPENDIENTES_REALES← σNSS=NSSE(DEPENDIENTES_EMP) JEFE_DEPTO ← DEPARTAMENTO NSS_JEFE=NSS EMPLEADO • Lo anterior equivale a: DEPENDIENTES_REALES ← NOMBRES_EMP NSS=NSSE DEPENDIENTE (se lee: reunión entre departamento y empleado con NSS_JEFE= NSS) RESULTADO ← πNOMBRED,APELLIDO,NOMBRE(JEFE_DEPTO) JEFE_DEPTO NOMBRED NÚMEROD Investigación Administración Dirección 5 4 1 NSS ... NSS_JEFE FECHA_INIC_JEFE NOMBRE INIC APELLIDO 333445555 987654321 888665555 DIRECCIÓN FECHA_NCTO 333445555 1955-12-08 987654321 1941-06-20 888665555 1937-11-10 1988-05-22 1995-01-01 1981-06-19 Franklin Jennifer Jaime T S E ... Wong Wallace Borg SEXO SALARIO NSS_SUPERV ND Valle 638, Houston, TX Bravo 291, Bellaire, TX Sorgo 450, Houston, TX H M H 40.000 43.000 55.000 888665555 888665555 nulo 5 4 1 Fig. 7.13. La operación REUNIÓN. © C. P. G. 2007 FBD Tema 3 49 © C. P. G. 2007 Condición de reunión Tipos de reunión (JOIN) FBD Tema 3 50 Condición de reunión Tipos de reunión (2) • Reunión natural (Natural join): – Equirreunión seguida de la eliminación de atributos superfluos (se eliminan los atributos cuyo nombre se repite). – Reunión en base a todos los pares de atributos de igual nombre. – Exige algún par de atributos de igual nombre en las dos relaciones que intervienen. – Se identifica con *. Condición de reunión: – En términos de atributos de R y S. – Evaluada por cada combinación de tuplas. – Tiene la forma: <condición> Y <condición> Y ... Y <condición> – Cada condición tiene la forma: donde Ai ∈ R y Bj ∈ S • Ai θ Bj • θ ∈ {=, <, ≤, >, ≥, ≠} Tipos de reunión: REUNIÓN • Reunión Theta (θ θ ): Cualquier operación de reunión. – Las tuplas cuyo atributo de reunión sea nulo NO aparecen en el resultado. NATURAL R*S Una Reunión Natural es un tipo de Reunión en la que la condición de reunión está formada por tantas condiciones de igualdad unidas mediante el operador lógico Y como pares de atributos tengan el mismo nombre en R y S. • Equirreunión (Equijoin): Las que sólo utilizan comparaciones de igualdad. – El resultado siempre tiene pares de atributos con valores idénticos en todas las tuplas. © C. P. G. 2007 FBD Tema 3 51 © C. P. G. 2007 FBD Tema 3 52 Ejemplo de reunión natural Ejemplo de reunión natural (2) Añadir a cada proyecto la información del departamento que lo controla Añadir los lugares de ubicación de cada departamento DEPTO(NOMBRED, ND,NSS_JEFE,FECHA_INIC_JEFE) ← DEPARTAMENTO PROY_DEPTO ← PROYECTO * DEPTO • ND es DEPTO_LOCS ← DEPARTAMENTO * LOCALIZACIONES_DEPT DEPARTAMENTO el atributo de reunión. NOMBRED DEPTO NOMBRED ND NSS_JEFE FECHA_INIC_JEFE Investigación Administración Dirección 5 4 1 333445555 987654321 888665555 1988-05-22 1995-01-01 1981-06-19 NÚMEROD NSS_JEFE FECHA_INIC_JEFE Investigación Administración Dirección 5 4 1 NÚMEROP LOCALIZACIÓNP ProductoX ProductoY ProductoZ Automatización Reorganización Nuevos beneficios 1 2 3 10 20 30 Bellaire Sugarland Houston Stafford Houston Stafford NÚMEROD LOCALIZACIÓND 1 4 5 5 5 ND 5 5 5 4 1 4 NÚMEROP LOCALIZACIÓNP ProductoX ProductoY ProductoZ Automatización Reorganización Nuevos beneficios 1 2 3 10 20 30 Bellaire Sugarland Houston Stafford Houston Stafford ND NOMBRED 5 5 5 4 1 4 Investigación Investigación Investigación Administración Dirección Administración NOMBRED NSS_JEFE FECHA_INIC_JEFE 333445555 333445555 333445555 987654321 888665555 987654321 1988-05-22 1988-05-22 1988-05-22 1995-01-01 1981-06-19 1995-01-01 Fig. 7.14. (a) PROY_ DEPTO ← PROYECTO * DEPTO © C. P. G. 2007 FBD Tema 3 Houston Stafford Bellaire Sugarland Houston DEPTO_ LOCS PROY_ DEPTO NOMBREP 1988-05-22 1995-01-01 1981-06-19 LOCALIZACIONES_DEPT PROYECTO NOMBREP 333445555 987654321 888665555 53 NÚMEROD NSS_JEFE FECHA_INIC_JEFE LOCALIZACIÓND Dirección Administración Investigación Investigación Investigación 1 4 5 5 5 888665555 987654321 333445555 333445555 333445555 1981-06-19 1995-01-01 1988-05-22 1988-05-22 1988-05-22 Houston Stafford Bellaire Sugarland Houston Fig. 7.14.(b) La operación REUNIÓN NATURAL. • En este ejemplo sólo hay un par de atributos de igual nombre (NÚMEROD). • Si hubiera más pares con igual nombre se seleccionarían sólo las tuplas que igualen todas las parejas de atributos. © C. P. G. 2007 FBD Tema 3 54 División Selectividad de reunión. Conjunto completo R(Z) ÷ S(X) • Selectividad de reunión: Razón que se obtiene dividiendo el tamaño esperado para la reunión (se realiza una estimación) entre el tamaño máximo posible (nº de tuplas de R* nº de tuplas de S). • El álgebra relacional es un Conjunto completo: – Cualquier operación del álgebra relacional se puede expresar como secuencia de operaciones del conjunto {σ, π, ∪, —, × }. – Operaciones tan importantes como la reunión no son estrictamente necesarias. – Se mantienen por comodidad y frecuencia de uso. Z: Atributos de R X: Atributos de S Para dividir se tiene que cumplir que X ⊆ Z Y: Son los atributos de R que no están en S, es decir, R-S. Constituyen los atributos del resultado de la división. Devuelve cada conjunto de atributos Y de R que tenga a todos y cada uno de los X distintos que haya en S. • Ejemplo: T ← R ÷ S R T S A B A B a1 a2 a3 a4 a1 a3 a2 a3 a4 a1 a2 a3 b1 b1 b1 b1 b2 b2 b3 b3 b3 b4 b4 b4 a1 a2 a3 b1 b4 Fig. 7.15 (b) • En el ejemplo: Z={A,B}; X={A}; Y={B} © C. P. G. 2007 FBD Tema 3 55 © C. P. G. 2007 FBD Tema 3 56 Otras operaciones relacionales Ejemplo de División • Obtener los nombres de los empleados que trabajan en todos y cada uno de los proyectos en los que trabaja John Smith. • Los SGBD introducen operaciones no estándar en el álgebra relacional: funciones agregadas, cierre recursivo, reunión y unión externa. Funciones agregadas (ℑ ℑ) σNOMBRE=‘John’ Y APELLIDO=‘Smith’(EMPLEADO) NÚMSP_SMITH ← πNP(TRABAJA_EN NSSE=NSS SMITH) F GÓTICA SMITH ← NÚMSP_SMITH NP 1 <atribs agrupación> Fig. 7.15 (a) Devuelve una relación con los resultados de la lista de funciones agrupados por los atributos indicados. 2 NSS_NÚMSP ← πNP,NSSE(TRABAJA_EN) NSSS(NSS)← NSS_NÚMSP ÷ NÚMSP_SMITH NSS_NÚMSP NP 1 2 3 1 2 2 3 10 20 30 10 10 30 30 20 20 RESULTADO © C. P. G. 2007 NSSE 123456789 123456789 666884444 453453453 453453453 333445555 333445555 333445555 333445555 999887777 999887777 987987987 987987987 987654321 987654321 888665555 ℑ <lista funciones> (R) <atribs agrupación>: Uno o varios atributos separados por comas. Son los atributos por los que queremos que aparezca cada resultado. <lista funciones>: Son pares de la forma <función agregada> <atributo> separados por comas. <función agregada>: Las más comunes son: CUENTA : Contabiliza el número de tuplas no nulas del atributo indicado. SUMA: Suma el contenido de las tuplas del atributo indicado. PROMEDIO: Lo mismo para la media. MÁXIMO: Calcula el valor máximo contenido en las tuplas del atributo indicado. MÍNIMO: Lo mismo para el valor mínimo. NSSS NSS 123456789 453453453 Fig. 7.15 (a) ← πNOMBRE, APELLIDO(NSSS * EMPLEADO) FBD Tema 3 57 © C. P. G. 2007 Otras operaciones relacionales (2) FBD Tema 3 58 Otras operaciones relacionales (3) Ejemplos de Funciones agregadas (ℑ ℑ) Cierre recursivo R(ND, NÚM_DE_EMPLEADOS,PROMEDIO_SALARIO) ← ND ℑ CUENTA NSS, PROMEDIO SALARIO(EMPLEADO) • Se aplica a un vínculo recursivo (como SUPERVISA). • Ej: Obtener los supervisados por James Borg a todos los niveles (directa o indirectamente). SUPERVISIÓN R ND NÚM_DE_EMPLEADOS PROMEDIO_SALARIO 5 4 33250 4 3 31000 1 1 55000 • Fig. 7.16. La operación FUNCIÓN. R2← ND ℑ CUENTA NSS, PROMEDIO SALARIO(EMPLEADO) NSS1 NSS2 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 333445555 888665555 987654321 888665555 333445555 333445555 987654321 nulo NSS_BORG 888665555 RDO2 NSS RDO1 NSS 333445555 987654321 123456789 999887777 666884444 453453453 987987987 NSS_BORG ← R2 πNSS(σNOMBRE=‘James’ Y APELLIDO=‘Borg’EMPLEADO)) πNSS, NSS_SUPERV(EMPLEADO) ND CUENTA_NSS PROMEDIO_SALARIO 5 4 33250 4 3 31000 1 1 55000 SUPERVISIÓN (NSS1, NSS2) ← Supervisados directamente por Borg: • RDO1 (NSS) R3← ℑ CUENTA NSS, PROMEDIO SALARIO(EMPLEADO) NSS2=NSSNSS_BORG) Supervisados por los subordinados directos de Borg: R3 RDO2 (NSS) CUENTA_NSS PROMEDIO_SALARIO 8 35125 FBD Tema 3 ← πNSS1(SUPERVISIÓN NSS2=NSSRDO1) Supervisados en los niveles 1 y 2 por Borg: RDO © C. P. G. 2007 ← πNSS1(SUPERVISIÓN 59 ← RDO1 ∪ RDO2 © C. P. G. 2007 FBD Tema 3 60 Otras operaciones relacionales (4) Otras operaciones relacionales (5) Reunión externa izquierda R ]×| S Unión externa • Conserva todas las tuplas de R aunque sea rellenando todos los campos correspondientes a S con valores nulos. • Unión de tuplas parcialmente compatibles. • TEMP ← EMPLEADO ]×|NSS=NSS_JEFE DEPARTAMENTO • RESULTADO ← πNOMBRE, INIC, APELLIDO, NOMBRED(TEMP) • El resultado conserva los atributos no compatibles. • Las tuplas sin valor para atributos no compatibles tienen valor nulo. EMPLEADO ... DEPARTAMENTO APELLIDO NSS ND Smith Wong Zelaya Wallace Narayan English Jabbar Borg 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 5 5 4 4 5 5 4 1 ... NOMBRED NÚMERODNSS_JEFE Investigación Administración Dirección 5 4 1 333445555 987654321 888665555 Fig. 7.18. La operación REUNIÓN EXTERNA IZQUIERDA RESULTADO NOMBRE Jon Franklin Alicia Jennifer Ramesh Joyce Ahmad Jaime INIC B T J S K A V E APELLIDO NOMBRED Smith nulo Wong Investigación Zelaya nulo Wallace Administración Narayan nulo English nulo Jabbar nulo Borg Dirección ... Ejemplo: Atributos CENTRO y DPTO incompatibles. PROFESOR ALUMNO NOMBRE APELLIDO CENTRO NOMBRE APELLIDO DPTO Susana Yáñez FISS John Smith 1 Ramesh Sánchez FDSS Ricardo Bueno 2 Josué Landa FQSS Susana Yáñez 1 Bárbara Jaimes FISS Ramesh Sánchez 3 Amanda Flores EPSS RESULTADO NOMBRE APELLIDO CENTRO DPTO Susana Yáñez FISS 1 Ramesh Sánchez FDSS 3 Josué Landa FQSS nulo Bárbara Jaimes FISS nulo Amanda Flores EPSS nulo John Smith nulo 1 Ricardo Bueno nulo 2 Reunión externa derecha R |×[ S Reunión externa completa R ]×[ S © C. P. G. 2007 FBD Tema 3 61 Consultas álgebra relacional ¿Con *? ... ... PROYECTO NOMBREPNÚMEROPLOCALIZACIÓNP NUMD PROYECTO NOMBREP NÚMEROP LOCALIZACIÓNP NUMD TRABAJA_EN NSSE NP HORAS C2) Nº de proyecto, nº de departamento que lo controla, apellido, dirección y fecha de nacimiento del gerente del departamento de todos los proyectos realizados en Stafford. PROYS_STAFFORD←σLOCALIZACIÓNP=‘Stafford’(PROYECTO) DEPTO_CONTR← JEFE_DEPTO_PROY← DEPTO_CONTR RESULTADO ← NSS_JEFE=NSS FBD Tema 3 C4) Números de proyecto donde interviene Wong como trabajador o como director del dpto. que lo controla. WONGS(NSSE)← πNSS (σAPELLIDO=‘Wong’ (EMPLEADO)) WONG_TRAB_PROYS← πNP (TRABAJA_EN * WONGS) JEFES ←πAPELLIDO, NÚMEROD (EMPLEADO NSS=NSS_JEFE DEPARTAMENTO) DPTOS_DIRIG_WON(NUMD)← πNÚMEROD(σAPELLIDO=‘Wong’ (JEFES)) WONG_JEFE_PROYS(NP) ← DEPARTAMENTO πNÚMEROP (DPTOS_DIRIG_WON * PROYECTO) EMPLEADO πNÚMEROP,NUMD,APELLIDO,DIRECCIÓN, FECHA_NCTO (JEFE_DEPTO_PROY) © C. P. G. 2007 ... SEXO SALARIO NSS_SUPERV ND DEPARTAMENTO NOMBRED NÚMEROD NSS_JEFE FECHA_INIC_JEFE DEPARTAMENTO NOMBRED NÚMEROD NSS_JEFE FECHA_INIC_JEFE NUMD=NÚMEROD 62 C3) Nombre de los empleados que trabajan en todos los proyectos del departamento 5. PROYS_DEPTO5(NP)← πNÚMEROP (σNUMD=5 (PROYECTO)) EMP_PROY(NSS,NP) ← πNSSE,NP (TRABAJA_EN) RESUL_NSS_EMP← EMP_PROY ÷ PROYS_DEPTO5 RESULTADO ← πAPELLIDO, NOMBRE (RESUL_NSS_EMP * EMPLEADO) EMPLEADO NOMBRE INICAPELLIDONSS FECHA_NCTO DIRECCIÓN ... SEXO SALARIO NSS_SUPERV ND PROYS_STAFFORD FBD Tema 3 Consultas álgebra relacional (2) C1) Nombre y dirección de los empleados del departamento de investigación. DEPTO_INV←σNOMBRED=‘Investigación’(DEPARTAMENTO) EMPS_DEPTO_INVEST←DEPTO_INV NUMEROD=ND EMPLEADO RESULTADO ← πNOMBRE,APELLIDO,DIRECCIÓN (EMPS_DEPTO_INVEST) EMPLEADO NOMBRE INICAPELLIDO NSS FECHA_NCTO DIRECCIÓN © C. P. G. 2007 RESULTADO ← WONG_TRAB_PROYS ∪ WONG_JEFE_PROYS 63 © C. P. G. 2007 FBD Tema 3 64 Consultas álgebra relacional (3) EMPLEADO NOMBRE INIC APELLIDO NSS FECHA_NCTO DIRECCIÓN SEXO ... ... SALARIO NSS_SUPERV ND DEPARTAMENTO NOMBRED NÚMEROD NSS_JEFE FECHA_INIC_JEFE DEPENDIENTE NSSE NOMBRE_DEPENDIENTE SEXO FECHA_NCTO PARENTESCO C5) Empleados (apellido, nombre) con 2 o más dependientes. ← ℑ CUENTA NOMBRE_DEPENDIENTE (DEPENDIENTE) T2 ← σNUM_DE_DEPS>=2 (T1) RESULTADO ← π APELLIDO, NOMBRE, (T2 * EMPLEADO) T1(NSS, NUM_DE_DEPS) NSSE C6) Empleados (apellido, nombre) sin dependientes. ← πNSS(EMPLEADO) ← πNSSE(DEPENDIENTE) EMPS_SIN_DEPS ← TODOS_EMPS — EMPS_CON_DEPS RESULTADO ← πAPELLIDO, NOMBRE(EMPS_SIN_DEPS * EMPLEADO) TODOS_EMPS EMPS_CON_DEPS(NSS) C7) Jefes de depto (apellido, nombre) con algún dependiente ← πNSS_JEFE(DEPARTAMENTO) ← πNSSE(DEPENDIENTE) JEFES_CON_DEPS←JEFES ∩ EMPS_CON_DEPS RESULTADO← πAPELLIDO, NOMBRE(JEFES_CON_DEPS * EMPLEADO) JEFES(NSS) EMPS_CON_DEPS(NSS) © C. P. G. 2007 FBD Tema 3 65 © C. P. G. 2007 Elmasri & Navathe 7.19 a) Insertar <‘Robert’, ‘F’, ‘Scott’, ‘943775543’, ‘1952-06-21’, ‘2365 Ave. Naranjos, Bellaire TX’, ‘H’, 58000, ‘888665555’, 1> en EMPLEADO. b) Insertar <‘ProductoA’, 4,‘Bellaire’, 2> en PROYECTO. c) Insertar <‘Producción’, 4, ‘943775543’, ‘1998-10-01’> en DEPARTAMENTO. d) Insertar <‘677678989’, nulo, ‘40.0’> en TRABAJA_EN. e) Insertar <‘453453453’, ‘John’, ‘H’, ‘1970-12-12’, ‘ESPOSO’> en DEPENDIENTE. f) Eliminar tuplas de TRABAJA_EN con NSSE=‘333445555’. g) Eliminar la tupla de EMPLEADO con NSS= ‘987654321’. h) Eliminar la tupla de PROYECTO con NOMBREP=‘ProductoX’. i) Modificar NSS_JEFE y FECHA_INIC_JEFE en las tuplas de DEPARTAMENTO con NÚMEROD=5 por los valores ‘123456789’ y ‘1999-10-01’ respectivamente. j) Modificar NSS_SUPERV en las tuplas de EMPLEADO con NSS=‘999887777’ por el valor ‘943775543’. k) Modificar HORAS de la tupla TRABAJA_EN con NSSE=‘999887777’ y NP=10 por el valor ‘5.0’. DEPENDIENTE NOMBRE_DEPENDIENTE SEXO FECHA_NCTO PARENTESCO 333445555 333445555 333445555 987654321 123456789 123456789 123456789 Alicia Theodore Joy Abner Michael Alicia Elizabeth M H M H H M M 1986-04-05 1983-10-25 1958-05-03 1942-02-28 1988-01-04 1988-12-31 1967-05-05 HIJA HIJO ESPOSA ESPOSO HIJO HIJA ESPOSA Figura 7.6. © C. P. G. 2007 FBD Tema 3 66 Elmasri & Navathe 7.19 (2) Analizar todas las R.I. que viola cada operación cuando se ejecuta sobre la BD de la figura 7.6: NSSE FBD Tema 3 67 EMPLEADO NOMBRE INIC APELLIDO John Franklin Alicia Jennifer Ramesh Joyce Ahmad Jaime B T J S K A V E Smith Wong Zelaya Wallace Narayan English Jabbar Borg NSS 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 TRABAJA_EN NP HORAS 123456789 123456789 666884444 453453453 453453453 333445555 333445555 333445555 333445555 999887777 999887777 987987987 987987987 987654321 987654321 888665555 1 2 3 1 2 2 3 10 20 30 10 10 30 30 20 20 32.5 7.5 40.0 20.0 20.0 10.0 10.0 10.0 10.0 30.0 10.0 35.0 5.0 20.0 15.0 nulo ... © C. P. G. 2007 H H M M H M H H 333445555 888665555 987654321 888665555 333445555 333445555 987654321 nulo 5 5 4 4 5 5 4 1 NÚMEFECHANSS_JEFE ROD INIC-JEFE NOMBRED 333445555 1988-05-22 987654321 1995-01-01 888665555 1981-06-19 Investigación 5 Administración 4 Dirección 1 LOCALIZACIONES_DEPT LOCALINÚMEROD ZACIÓND NÚME- LOCALINUMD ROP ZACIÓNP 1 2 3 10 20 30 30.000 40.000 25.000 43.000 38.000 25.000 25.000 55.000 DEPARTAMENTO PROYECTO ProductoX ProductoY ProductoZ Automatización Reorganización Nuevos beneficios DIRECCIÓN 1965-01-09 Fresnos 731, Houston, TX 1955-12-08 Valle 638, Houston, TX 1968-07-19 Castillo 3321, Sucre, TX 1941-06-20 Bravo 291, Bellaire, TX 1962-09-15 Espiga 875, Heras, TX 1972-07-31 Rosas 5631, Houston, TX 1969-03-29 Dalias 980, Houston, TX 1937-11-10 Sorgo 450, Houston, TX SEXO SALARIO NSS_SUPERV ND NSSE NOMBREP FECHA_NCTO Bellaire Sugarland Houston Stafford Houston Stafford 5 5 5 4 1 4 FBD Tema 3 1 4 5 5 5 Houston Stafford Bellaire Sugarland Houston Figura 7.6 (cont) 68 ... Ejercicio 1: Transformación ERRelacional Ejercicio 2: Transformación ERRelacional • Transformar a relacional el esquema ER de la figura: Nombre Sexo DEPENDIENTE Fecha_ncto N Parentesco A1 A2 DEPENDIENTES_DE 1 NomP A Paterno Materno M Sexo Dir R1 supervisor N PERTENECE_A 1 N C1 supervisado DIRIGE C2 N 1 1 D1 D 1 1 N 1 D2 R2 M E Nombre N F Número DEPARTAMENTO N N FechaInic N 1 P C SUPERVISIÓN 1 N M Salario EMPLEADO M B N 1 Nombre Fecha_ ncto NSS B2 B3 B1 Lugares R3 E1 NDeEmpleados 1 F1 Horas TRABAJA_EN R4 CONTROLA N M R5 Nombre PROYECTO Número Lugar © C. P. G. 2007 FBD Tema 3 69 © C. P. G. 2007 Ejercicio 3: Transformación ERRelacional A2 B1 A3 AB M A B2 EMP DEP NOMBRE NSS ND NUMD NOMD B 11 22 33 44 1 1 2 2 TRAB PROY 1 2 LSI ATC NP NOMBRE 1 2 3 4 .NET XML EJB UML B3 NSSE NP HORAS 11 11 22 22 44 1 2 1 3 3 5 2 3 1 4 Dibujar las relaciones resultantes de realizar las siguientes operaciones del álgebra relacional: 1 N 70 Ejercicios: Operaciones del álgebra Iker Ana Jon Karmele A1 FBD Tema 3 N 1 AC C BD P D D2 • 1 1 D3 R3← TODOS_PRY - R2 E2 • D11 D12 Información de cada persona asociada a la información de SU departamento: R4 ← EMP • © C. P. G. 2007 NP de los proyectos en los que NO trabaja ninguna persona: TODOS_PRY ← πNP (PROY) E E1 NP de los proyectos en los que trabaja alguna persona: R2← πNP (TRAB) N 1 1 D1 • BDE N CD FBD Tema 3 σNP=1 Y HORAS>1 (TRAB) R1 ← πNSSE (PRY1_MAS1HORA) N N NSS de los que trabajan más de 1 hora en el proyecto 1: PRY1_MAS1HORA← M N C1 C2 • M 71 ND=NUMD DEP Nombre de cada persona junto al nombre del departamento en el que trabaja: R5 ← πNOMBRE, NOMD (R4) © C. P. G. 2007 FBD Tema 3 72 Ejercicios: Operaciones del álgebra (2) EMP DEP NOMBRE NSS ND NUMD NOMD Iker Ana Jon Karmele • 11 22 33 44 1 1 2 2 1 2 PROY TRAB NP NOMBRE LSI ATC 1 2 3 4 Elmasri & Navathe 7.18 .NET XML EJB UML NSSE NP HORAS 11 11 22 22 44 1 2 1 3 3 5 2 3 1 4 EMPLEADO NOMBRE INIC APELLIDO NSS FECHA_NCTO DIRECCIÓN SEXO ... SALARIO ... NSS_SUPERV ND DEPARTAMENTO NOMBRED NÚMEROD NSS_JEFE FECHA_INIC_JEFE Nombre y NSS de cada empleado junto al número de cada proyecto en el que trabaja: PERS ← πNOMBRE, NSS(EMP) TRB(NSS,NP) ← πNSSE, NP (TRAB) LOCALIZACIONES_DEPT NÚMEROD LOCALIZACIÓND R6← PERS * TRB PROYECTO NOMBREP NÚMEROP LOCALIZACIÓNP NUMD • Nombre de cada empleado junto al nombre de cada proyecto en el que trabaja: PRY(NP,NOMP) ← PROY PERS_PRY ← R6 * PRY NSSE – ¿Qué cambia en PERS_PRY si se usa PROY en lugar de PRY? FBD Tema 3 NSSE NP HORAS DEPENDIENTE R7← πNOMBRE, NOMP(PERS_PRY) © C. P. G. 2007 TRABAJA_EN 73 NOMBRE_DEPENDIENTE SEXO FECHA_NCTO PARENTESCO Figura 7.7. Restricciones de integridad referencial representadas en el esquema de la base de datos relacional EMPRESA. © C. P. G. 2007 Elmasri & Navathe 7.18 (2) FBD Tema 3 74 Elmasri & Navathe 7.20 AEROPUERTO Sobre el esquema de BD de la figura 7.7: CÓD_AEROPUERTO NOMBRE CIUDAD ESTADO VUELO a) Empleados (nombre, apellido) del departamento 5 que trabajan más de 10 horas/semana en el proyecto ‘ProductoX’. NÚMERO Fig. 7.19. Esquema de la base de datos relacional LÍNEAS AÉREAS LÍNEA DÍAS TRAMO_VUELO NÚM_VUELO NÚM_TRAMO b) Empleados con un dependiente con su mismo nombre de pila. c) Empleados cuyo jefe directo es ‘Franklin Wong’. CÓD_AEROPUERTO_SALE HORA_SALIDA_PROGRAMADA CÓD_AEROPUERTO_LLEGA HORA_LLEGADA_PROGRAMADA d) Nombre de cada proyecto junto al número total de horas trabajadas por los empleados en él. e) Nombres y apellidos de todos los empleados que trabajan en cada uno de los proyectos. Hacerlo de dos maneras: Nombre del empleado junto al nombre de cada proyecto en el que trabaja. EJEMPLAR_TRAMO NÚM_VUELO NÚM_TRAMO FECHA NÚM_ASIENTOS_DISPONIBLES ID_AVIÓN CÓD_AEROPUERTO_SALE HORA_SALIDA CÓD_AEROPUERTO_LLEGA HORA_LLEGADA TARIFAS Nombres de los empleados que trabajen en todos y cada uno de los proyectos de la empresa. NÚM_VUELO CÓD_TARIFA IMPORTE RESTRICCIONES TIPO_AVIÓN f) Empleados que no trabajan en ningún proyecto. NOMBRE_TIPO MAX_ASIENTOS COMPAÑÍA g) Nombre de cada departamento junto al salario medio de los empleados asignados al mismo. PUEDE_ATERRIZAR NOMBRE_TIPO_AVIÓN CÓD_AEROPUERTO h) Salario medio de las empleadas de la empresa. AVIÓN i) Nombre y dirección de los empleados que trabajan en algún proyecto que, por una parte, está situado en Houston y por otra el proyecto pertenece a un departamento que no está situado en Houston. ID_AVIÓN TOTAL_DE_ASIENTOS NÚM_VUELO NÚM_TRAMO FECHA NÚM_ASIENTO NOMBRE_CLIENTE TFNO_CLIENTE j) Apellidos de los jefes de departamento sin dependientes. © C. P. G. 2007 FBD Tema 3 TIPO_AVIÓN RESERVA_ASIENTOS 75 © C. P. G. 2007 FBD Tema 3 76 Elmasri & Navathe 7.23 Elmasri & Navathe 7.20 (2) Consultas sobre la BD BIBLIOTECA Sobre el esquema de BD de la figura 7.19: A) Números de vuelo junto al aeropuerto de salida de su primer tramo y aeropuerto de llegada de su último tramo. B) Número de vuelo y día, de los vuelos o tramos de vuelo que salen del aeropuerto ‘Houston Intercontinental’ (código ‘IAH’) y llegan al aeropuerto ‘Internacional de los Ángeles’ (código ‘LAX’). C) Prepara una lista con número de vuelo, código de aeropuerto de salida, horas de salida programadas, y días, de todos los vuelos o tramos de vuelo que salgan de algún aeropuerto de ‘Houston’ y lleguen a algún aeropuerto de ‘Los Ángeles’. D) Obtén toda la información de tarifas del vuelo ‘CO197’. E) Obtén el número de asientos disponibles en el vuelo ‘CO197’ del ‘1999-10-09’. Se supone que cada vuelo está formado por uno o varios tramos, que se numeran en orden ascendente. Ejemplo: El vuelo CO197 consta de 3 tramos (1,2 y 3) A) Número de copias de la tribu perdida en la sucursal de 'Sharpstown'. B) Identificador de sucursal y número de copias del libro La tribu Perdida en cada una de las sucursales. C) Nombres de lectores sin libros en préstamo. D) Título del libro, nombre y dirección del lector de los préstamos de la sucursal de 'Sharpstown' con fecha de devolución la de hoy. E) Por cada sucursal: Nombre y total de ejemplares de libro en préstamo. F) Para los lectores con más de 5 libros en préstamo, obtener su nombre, dirección y nº de libros. G) Por cada libro escrito total o parcialmente por Stephen King, obtener su título y el nº de copias en la sucursal ‘Central’. AUTORES_LIBROS LIBRO IdLibro Título NombreEditorial IdLibro NombreAutor EDITORIAL COPIAS_LIBRO Nombre Dirección Teléfono IdLibro IdSucursal NúmCopias PRÉSTAMOS IdLibro IdSucursal NúmTarjeta FechaSale FechaDevol SUCURSAL IdSucursal NombreSucursal Dirección LECTOR NúmTarjeta Nombre Dirección Teléfono © C. P. G. 2007 FBD Tema 3 77 © C. P. G. 2007 FBD Tema 3 78 EJERCICIOS DE MODELADO (TEMAS 2 Y 3) Consultas sobre la BD BUQUES 1. Nombres de los buques que hayan visitado puertos de todos los mares. 2. Nombres de aquellos buques que, en el mismo día, hayan salido de un puerto y llegado a otro puerto situado en un mar distinto al del puerto de partida, junto al nombre de los mares visitados. 3. Número de países visitados por cada buque que haya visitado algún puerto. 4. Nombres de aquellos buques que hayan ido en menos de 5 días desde el puerto de Santander al de Cádiz, habiendo hecho escala en el puerto de Vigo. 5. Nombre y país de los puertos que hayan sido visitados por todos los buques. 6. Nombre y país de aquellos puertos que hayan sido visitados por buques de todos los tipos. 7. Información de todas las visitas de buques con puerto de origen Detroit junto a la información de su visita anterior al mismo puerto de esa visita. 8. Número de veces que han ido a Cádiz cada uno de los buques cuyo tonelaje es > 1000. © C. P. G. 2007 FBD Tema 3 79 Para cada uno de los siguientes enunciados se pide: Diseño conceptual de la BD utilizando el modelo E-R Realizar el paso del modelo E-R al modelo relacional, obteniendo el esquema relacional. 1.- La cadena de videoclubs Glob_Gusters ha decidido, para mejorar su servicio, emplear una BD para almacenar la información referente a las películas que ofrece en alquiler. Esta información es la siguiente: a. Una película se caracteriza por su título, nacionalidad,productora y fecha (Por ejemplo, Quo Vadis, Estados Unidos, M.G. M., 1995). b. En una película pueden participar varios actores (nombre, nacionalidad, sexo), algunos de ellos como actores principales. c. Una película está dirigida por un director (nombre, nacionalidad). d. De cada película se dispone de uno o varios ejemplares diferenciados por un número de ejemplar y caracterizados por su estado de conservación. e. Un ejemplar se puede encontrar alquilado a algún cliente (nombre, dirección, teléfono). Se desea almacenar la fecha de comienzo del alquiler y la de devolución. 2.- La asociación “Amigos de la Fiesta” desea recoger en una BD toda la información acerca de las corridas de toros que se celebran en España y de todos los datos relacionados con ellas. a. Se desea tener información acerca de cada corrida, identificada conjuntamente por un número de orden, la feria en la que se celebra y el año de celebración (por ejemplo: orden=2, feria=San Isidro, año=1990). b. En una determinada corrida actúan una serie de toreros (mínimo 1 y máximo 3) de los que se desea guardar su DNI, nombre, apodo y fecha en que tomó la alternativa (fecha en la que se convirtió en matador de toros). Además se desea saber quién fue el torero que le dio la alternativa (padrino) en su día (un torero puede dar la alternativa a varios compañeros o a ninguno). c. En cada corrida un torero obtiene una serie de premios (cuántas orejas, cuántos rabos y si salió por la puerta grande o no) de los que se desea mantener información. © C. P. G. 2007 FBD Tema 3 80 EJERCICIOS DE MODELADO (TEMAS 2 Y 3) d. e. f. g. 3.- a. b. c. d. e. Cada torero puede tener un apoderado del que es protegido. A su vez, un apoderado lo puede ser de varios toreros. De él se desea saber su DNI, nombre, dirección y teléfono. Una corrida se celebra en una plaza de toros de la que se desea saber su nombre que se supone único, localidad, dirección y aforo. En una misma plaza se pueden celebrar varias corridas de toros. En cada corrida son estoqueados al menos 6 toros. Cada toro viene identificado con el código de la ganadería a la que pertenece, el año en que nació y un número de orden. Además, se desea mantener información acerca de su nombre y color así como el orden en que fue toreado. Cada toro pertenece a una ganadería determinada. De cada ganadería se pretende saber su código, nombre, localidad y antigüedad (fecha de creación). 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 que se encuentra, la dirección y los metros cuadrados que tiene. Cada pinacoteca tiene una serie de cuadros de los que se quiere mantener información acerca de su código, nombre, dimensiones, fecha en que fue pintado y técnica utilizada. Cada cuadro es pintado por un determinado pintor (nombre, país, ciudad, fecha de nacimiento y fecha de defunción). 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 que se desea saber su nombre y en qué país y qué fecha apareció. Los pintores pueden tener también uno o varios mecenas que les protegen (nombre, fecha, país y ciudad de nacimiento y fecha de muerte). A su vez, un mismo mecenas puede serlo de varios pintores. Se desea saber cuál es la relación que existe entre un pintor y su mecenas. © C. P. G. 2007 FBD Tema 3 81