Tema 3. Modelo relacional El modelo de datos relacional, las restricciones relacionales y el álgebra relacional. Elmasri/Navathe 02 Transformación de ER y ERE en relacional, y otros lenguajes relacionales. Elmasri/Navathe 02 • 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) © C. P. G. 2007 FBD Tema 3 1 Conceptos • BD: Colección de relaciones. • 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. 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 2 Conceptos (2) • 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: • 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 Características de las relaciones • 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. © C. P. G. 2007 FBD Tema 3 4 Notación ALUMNO Nombre Código alumno Smith 17 Brown 8 • Año 1 2 Especialidad CS CS 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. (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 Califican a los atributos de la relación ALUMNO. FBD Tema 3 5 Restricciones en las relaciones • De dominio: El valor de cada atributo debe ser atómico. En SQL se verán los tipos disponibles. • 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. • Integridad de entidades: Ninguna clave primaria puede contener el valor nulo. • Integridad referencial: Una tupla que referencia a otra relación, debe referirse a una tupla existente en dicha relación. • 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. © C. P. G. 2007 FBD Tema 3 6 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. • 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 Restricciones de clave: Ejemplo 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 © C. P. G. 2007 FBD Tema 3 8 Esquema de la BD relacional “EMPRESA” • 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 DEPARTAMENTO NOMBRED NÚMEROD NSS_JEFE FECHA_INIC_JEFE LOCALIZACIONES_DEPT NÚMEROD LOCALIZACIÓND PROYECTO NOMBREP NÚMEROP LOCALIZACIÓNP NUMD TRABAJA_EN NSSE NP HORAS DEPENDIENTE NSSE NOMBRE-DEPENDIENTE SEXO FECHA_NCTO PARENTESCO Figura 7.5. Esquema de base de datos relacional EMPRESA; las claves primarias están subrayadas. © C. P. G. 2007 FBD Tema 3 9 Estado de la BD relacional “EMPRESA” 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 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 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 H H M M H M H H 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 Figura 7.6 (1ª parte) Ejemplar (Estado) de base de datos relacional del esquema EMPRESA. DEPARTAMENTO NOMBRED NÚMERODNSS_JEFE FECHA_INIC_JEFE Investigación Administración Dirección © C. P. G. 2007 ... 5 4 1 333445555 987654321 888665555 FBD Tema 3 1988-05-22 1995-01-01 1981-06-19 10 Estado de la BD relacional “EMPRESA” (cont) LOCALIZACIONES_DEPT NÚMEROD LOCALIZACIÓND 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 5 5 5 4 1 4 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 Restricciones de integridad (RI) • 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 . 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 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) • 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.NSS_SUPERV . 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 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 NÚMEROD NSS_JEFE FECHA_INIC_JEFE 5 4 1 333445555 987654321 888665555 FBD Tema 3 1988-05-22 1995-01-01 1981-06-19 13 Integridad referencial en el esquema EMPLEADO NOMBRE INIC APELLIDO NSS FECHA_NCTO DIRECCIÓN SEXO ... SALARIO ... NSS_SUPERV ND DEPARTAMENTO NOMBRED NÚMEROD NSS_JEFE FECHA_INIC_JEFE LOCALIZACIONES_DEPT NÚMEROD LOCALIZACIÓND PROYECTO NOMBREP NÚMEROP LOCALIZACIÓNP NUMD TRABAJA_EN 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. © C. P. G. 2007 FBD Tema 3 14 Restricciones de integridad • Las RI se especifican utilizando una parte del lenguaje llamada DDL: – DDL = Data Definition Language / Lenguaje de definición de datos. – Este tipo de lenguaje debe contar con mecanismos para especificar RI. – 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”. • Muy pocos SGBD soportan las RI semánticas. • Se están incorporando mecanismos. © C. P. G. 2007 FBD Tema 3 15 Operaciones de actualización • Las operaciones de actualización se especifican utilizando otra parte del lenguaje llamada DML: DML= Data Manipulation Language / Lenguaje de Manipulación de Datos • 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. • Son las siguientes: – Insertar. – Eliminar. – Modificar. • Cuando se aplican no deben violar ninguna restricción de integridad. • Veremos: – Qué RI puede violar cada operación. – Qué acciones se pueden emprender en caso de violación. © C. P. G. 2007 FBD Tema 3 16 ACEPTABLE Insertar • Insertar <‘Cecilia’, ’F’, ’Kolonsky’, ’677678989’, ‘05-ABR-60’, ‘Calle Viento 6357, Malinalco, TX’, ‘M’, 28000, nulo, 4 > en EMPLEADO. • Puede violar los 4 tipos de RI: – Dominio: Insertar< ..., ‘Depto 3’> – Entidades: Insertar <‘Cecilia’,... ,’Kolonsky’, nulo,...,4> – Clave: Insertar <‘Cecilia’, ... , ’999887777’, ... , 4> – I. referencial: Insertar <‘Cecilia’, ..., 7> 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 ... ND 5 5 4 4 5 5 4 1 17 Insertar (2) • Ante violación de RI al insertar: – Rechazar: • Es lo que se hace normalmente. • Útil explicación SGBD. – Corregir: • 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. – Pedir introducción de la tupla correspondiente al valor referenciado: » Pedir datos del departamento 7 (que no existía) – Pedir en Cascada : » Pedir datos del departamento 7 » Una vez que el departamento existe, pedir de nuevo el empleado © C. P. G. 2007 FBD Tema 3 18 ACEPTABLE Eliminar • Eliminar todos los TRABAJA_EN con NSSE=‘999887777’ y NP=10. • Se eliminan todas las tuplas que cumplan la condición. • 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. • Puede violar I. referencial: – Eliminar todo EMPLEADO con NSS=‘999887777’ – Eliminar todo EMPLEADO con NSS=‘333445555’ 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 ND 5 5 4 4 5 5 4 1 19 ... Eliminar (2) • Ante violación de RI al eliminar, se puede: – Rechazar. – Propagar: • Eliminar todas las tuplas con referencia a la eliminada. A esto se le denomina eliminación en cascada. – Modificar: • Poner un valor existente en referencias. • Poner valor nulo en referencias (no si es parte de la clave primaria). – 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 departamentos en los que era jefe el empleado borrado). • En general, el SGBD permite especificar la opción a aplicar. © C. P. G. 2007 FBD Tema 3 20 ACEPTABLE Modificar • 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. • Si es clave primaria: – Equivale a eliminar la tupla e insertar una nueva. – Mismos problemas que en insertar y eliminar. • Si es clave extranjera: – El SGBD debe asegurar que el nuevo valor existe. • Ejemplos que violan la RI: – I. Referencial: Modificar todos los ND de EMPLEADO con NSS=‘999887777’ a 7. – 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 • 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. • 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. A5 A4 A3 A6 R (de E) A1 A2 A3 A5 A6 E A2 A1 A1 A4 © C. P. G. 2007 A2 A3 R (de E2) A2 A3 A4 E2 FBD Tema 3 22 Transformación ER-relacional (2) • 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 B1 B2 W E R (de W) B1 A1 A2 CE Con este paso quedan tratados tanto los tipos de entidad débiles, como sus vínculos identificadores. © C. P. G. 2007 FBD Tema 3 23 Transformación ER-relacional (3) • 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 A2 A1 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 24 Transformación ER-relacional (4) • Paso 5: T. relación M:N A2 A1 E1 M B1 R N R1 B2 E2 S (de R) A1 B1 R1 CE 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. – Se puede usar también para 1:1 y 1:N. – Mejor cuando haya pocas ocurrencias de la relación (menos nulos). © C. P. G. 2007 FBD Tema 3 25 Transformación ER-relacional (5) • 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 A4 A3 A1 A2 A5 E2 E2 A1 A3 R2 (de A2) A1 A4 A5 CE © C. P. G. 2007 FBD Tema 3 26 Transformación ER-relacional (6) • Paso 7: T. relaciones n-arias A2 A1 E1 B1 R R1 B2 E2 S (de R) A1 B1 C1 R1 CE CE CE E3 C1 C2 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. – Si hay algún (*,1) entonces la clave es la de esta entidad. El * es la participación (0 parcial ó 1 total). © C. P. G. 2007 FBD Tema 3 27 ESQUEMA ER DE LA BD “EMPRESA” *Familiar=dependiente Nombre Sexo FAMILIAR* Fecha nacimiento N Parentesco ES_FAMILIA_DE 1 NombreP Iniciales Apellido Nombre Sexo NSS Fecha nacimiento Dirección Salario supervisor EMPLEADO N 1 SUPERVISA 1 supervisado TRABAJA_PARA DIRIGE 1 1 N Fecha inicio Nombre Número DEPARTAMENTO 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 28 Transformación ER-relacional BD EMPRESA • PASO 1: TE. Fuertes DEPARTAMENTO NOMBRE NÚMERO EMPLEADO NOMBREP INICIALES APELLIDO NSS FECHA_NCTO SEXO ... PROYECTO NOMBRE NÚMERO LOCALIZACIÓN • PASO 2: DIR SALARIO TE. Débiles FAMILIAR NSS NOMBRE SEXO FECHA_NCTO PARENTESCO • PASO 3: TV. 1:1 DEPARTAMENTO NOMBRE NÚMERO NSS_JEFE FECHA_INIC_JEFE • PASO 4: TV. 1:N PROYECTO NOMBRE NÚMERO LOCALIZACIÓN ND EMPLEADO NOMBREP INICIALES APELLIDO NSS FECHA_NCTO SEXO ... © C. P. G. 2007 DIR SALARIO ND NSS_SUPERV FBD Tema 3 29 Transformación ER-relacional BD EMPRESA (2) • PASO 5: TV. M:N TRABAJA_EN NÚMEROP NSSE HORAS • PASO 6: Atr. Multivaluados LOCALIZACIONES_DPTO NÚMEROD LOCALIZACIÓN • Solución completa: PROYECTO NOMBRE NÚMERO LOCALIZACIÓN ND DEPARTAMENTO NOMBRE NÚMERO NSS_JEFE FECHA_INIC_JEFE EMPLEADO NOMBREP INICIALES APELLIDO NSS FECHA_NCTO SEXO ... DIR SALARIO ND NSS_SUPERV FAMILIAR NSS NOMBRE SEXO FECHA_NCTO PARENTESCO TRABAJA_EN NÚMEROP NSSE HORAS © C. P. G. 2007 LOCALIZACIONES_DPTO NÚMEROD LOCALIZACIÓN FBD Tema 3 30 Transformación ER- relacional • 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. © C. P. G. 2007 FBD Tema 3 31 Definir esquemas de BDR (relaciones) • 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 32 Álgebra relacional • Operaciones para manipular relaciones enteras. • De teoría de conjuntos: – – – – UNIÓN. INTERSECCIÓN. DIFERENCIA. PRODUCTO CARTESIANO. Binarias • Específicas: – SELECCIÓN. – PROYECCIÓN. – REUNIÓN (JOIN). • DIVISIÓN. Unarias Binaria Binaria • Otras: – – – – FUNCION AGREGADA. CIERRE RECURSIVO. REUNIÓN EXTERNA. UNIÓN EXTERNA. Operación Unaria: Interviene una sola relación Operación Binaria: Intervienen dos relaciones © C. P. G. 2007 FBD Tema 3 33 SIGMA Selección σ<condición selección>(R) • Selecciona un subconjunto de tuplas de una relación. • Las que satisfacen una condición. • El resultado es otra relación. • σND=4(EMPLEADO) • σSALARIO>30000(EMPLEADO) • La relación resultante tiene los mismos atributos. • Tiene menor o igual número de tuplas. • Condición: {=, <, ≤, >, ≥, ≠} OPERADORES RELACIONALES © C. P. G. 2007 Y, O, NO. OPERADORES LÓGICOS FBD Tema 3 34 Selección (2) σ(ND=4 Y SALARIO>25000) o (ND=5 Y SALARIO>30000)(EMPLEADO) NOMBRE INIC APELLIDO NSS FECHA_NCTO DIRECCIÓN Franklin T 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 ... 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 PI 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. © C. P. G. 2007 FBD Tema 3 36 Proyección (2) • πAPELLIDO, NOMBRE, SALARIO(EMPLEADO) APELLIDO Smith Wong Zelaya Wallace Narayan English Jabbar Borg Fig. 7.8. (b) NOMBRE John Franklin Alicia Jennifer Ramesh Joyce Ahmad Jaime 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. (c) π APELLIDO, NOMBRE, SALARIO (EMPLEADO) π SEXO, SALARIO (EMPLEADO) 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 37 Resultados intermedios Cambios de nombre • 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. S← ←R 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. • Los nombres de los atributos de S son los mismos que tuviésemos en R. Se pueden cambiar los nombres de los atributos mediante: 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 FBD Tema 3 38 Resultados intermedios Cambios de nombre (2) π NOMBRE, APELLIDO, SALARIO(σND=5(EMPLEADO)) • NOMBRE John Franklin Ramesh Joyce APELLIDO Smith Wong Narayan English SALARIO 30.000 40.000 38.000 25.000 Fig 7.9. (a) • Alternativa con resultados intermedios: ← σND=5(EMPLEADO) RESULTADO←πNOMBRE,APELLIDO,SALARIO(EMPS_DEP5) EMPS_DEP5 • Alternativa con resultados intermedios y cambios de nombre: TEMP ← σND=5(EMPLEADO) R(NOMBRE_PILA, PRIMER_APELL, SALARIO) ← π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 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 Fig. 7.9. (b) Resultados de expresiones del álgebra relacional. © C. P. G. 2007 FBD Tema 3 39 ... Operaciones de T. de conjuntos Unión, intersección y diferencia. • • • 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 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. R∩S 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. © C. P. G. 2007 FBD Tema 3 40 Operaciones de T. de conjuntos 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 RESULTADO NSS 123456789 333445555 666884444 453453453 888665555 NSS 333445555 888665555 Fig. 7.10. © C. P. G. 2007 RESULTADO← RESULTADO1∪ RESULTADO2 FBD Tema 3 41 Ejemplos de unión e intersección ALUMNO NOM Susana Ramesh Josué Bárbara Amanda Jaime Ernesto NOM Susana Ramesh APEL Yáñez Sánchez Landa Jaimes Flores Vélez Gómez PROFESOR NOM John Ricardo Susana Francisco Ramesh APEL Yáñez Sánchez Fig 7.11. (b) ALUMNO ∩ PROFESOR APEL Smith Bueno Yáñez Jiménez Sánchez NOM Susana Ramesh Josué Bárbara Amanda Jaime Ernesto John Ricardo Francisco 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 Fig 7.11. (c) ALUMNO ∪ PROFESOR • 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) © C. P. G. 2007 FBD Tema 3 42 Ejemplos de diferencia ALUMNO NOM Susana Ramesh Josué Bárbara Amanda Jaime Ernesto APEL Yáñez Sánchez Landa Jaimes Flores Vélez Gómez NOM Josué Bárbara Amanda Jaime Ernesto APEL Landa Jaimes Flores Vélez Gómez PROFESOR NOM John Ricardo Susana Francisco Ramesh NOM John Ricardo Francisco APEL Smith Bueno Yáñez Jiménez Sánchez APEL Smith Bueno Jiménez Fig. 7.11. (e) PROFESOR— ALUMNO 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 Operaciones de T. de conjuntos Producto cartesiano (CROSSJOIN). • Intervienen dos relaciones. • Esas relaciones no tienen por qué ser compatibles con la unión. PRODUCTO CARTESIANO R×S 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. © C. P. G. 2007 FBD Tema 3 44 Ejemplo Producto cartesiano • Ejemplo: Obtener los familiares de empleadas. EMPS_MUJER ← σsexo=‘M’(EMPLEADO) NOMBRESEMP←πNOMBRE,APELLIDO,NSS(EMPS_MUJER) DEPENDIENTES_EMP ← NOMBRESEMP × DEPENDIENTE DEPENDIENTES_REALES← σNSS=NSSE(DEPENDIENTES_EMP) RESULTADO←πNOMBRE,APELLIDO,NOMBRE_DEPENDIENTE(DEPENDIENTES_REALES) 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 ... Ejemplo Producto Cartesiano (2) NOMBRES_EMP DEPENDIENTE 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 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 FBD Tema 3 46 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Ejemplo Producto Cartesiano (3) 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) DEPENDIENTES_REALES NOMBRE APELLIDO Jennifer Wallace NSS NSSE NOMBRE_DEPENDIENTE SEXO Abner H 987654321 987654321 ... ... RESULTADO← πNOMBRE,APELLIDO,NOMBRE_DEPENDIENTE(DEPENDIENTES_REALES) RESULTADO NOMBRE APELLIDO NOMBRE_DEPENDIENTE Jennifer Wallace Abner © C. P. G. 2007 FBD Tema 3 47 REUNIÓN R Reunión (JOIN) <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. • Su resultado puede tener un máximo de n* m tuplas (si todas las tuplas cumplen la condición de reunión). © C. P. G. 2007 FBD Tema 3 48 Ejemplo de Reunión • Ejemplo: Obtener el nombre del departamento y el nombre (nombre y apellido) del jefe de cada departamento. JEFE_DEPTO ← DEPARTAMENTO NSS_JEFE=NSS EMPLEADO (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 ... FECHA_NCTO 333445555 1955-12-08 987654321 1941-06-20 888665555 1937-11-10 NSS_JEFE FECHA_INIC_JEFE NOMBRE INIC APELLIDO 333445555 987654321 888665555 1988-05-22 1995-01-01 1981-06-19 DIRECCIÓN Franklin Jennifer Jaime T S E 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 ... Wong Wallace Borg FBD Tema 3 49 Ejemplo de Reunión (2) • En el ejemplo del producto cartesiano: DEPENDIENTES_EMP ← NOMBRES_EMP × DEPENDIENTE DEPENDIENTES_REALES← σNSS=NSSE(DEPENDIENTES_EMP) • Lo anterior equivale a: DEPENDIENTES_REALES ← NOMBRES_EMP NSS=NSSE DEPENDIENTE © C. P. G. 2007 FBD Tema 3 50 Condición de reunión Tipos de reunión (JOIN) 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 Theta (θ θ ): Cualquier operación de reunión. – Las tuplas cuyo atributo de reunión sea nulo NO aparecen en el resultado. • 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 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 *. REUNIÓN 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. © C. P. G. 2007 FBD Tema 3 52 Ejemplo de reunión natural Añadir a cada proyecto la información del departamento que lo controla DEPTO(NOMBRED, ND,NSS_JEFE,FECHA_INIC_JEFE) ← DEPARTAMENTO PROY_DEPTO ← PROYECTO * DEPTO • ND es el atributo de reunión. 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 PROYECTO NOMBREP 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 5 5 5 4 1 4 PROY_ DEPTO NOMBREP 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 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 53 Ejemplo de reunión natural (2) Añadir los lugares de ubicación de cada departamento DEPTO_LOCS ← DEPARTAMENTO * LOCALIZACIONES_DEPT DEPARTAMENTO NOMBRED Investigación Administración Dirección NÚMEROD NSS_JEFE FECHA_INIC_JEFE 5 4 1 333445555 987654321 888665555 1988-05-22 1995-01-01 1981-06-19 LOCALIZACIONES_DEPT NÚMEROD LOCALIZACIÓND 1 4 5 5 5 Houston Stafford Bellaire Sugarland Houston DEPTO_ LOCS NOMBRED Dirección Administración Investigación Investigación Investigación NÚMEROD NSS_JEFE FECHA_INIC_JEFE LOCALIZACIÓND 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 Selectividad de reunión. Conjunto completo • 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. © C. P. G. 2007 FBD Tema 3 55 División R(Z) ÷ S(X) 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 56 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. SMITH ← σNOMBRE=‘John’ Y APELLIDO=‘Smith’(EMPLEADO) ← πNP(TRABAJA_EN NSSE=NSS SMITH) NÚMSP_SMITH NÚMSP_SMITH NP 1 Fig. 7.15 (a) 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 NSSS NSS 123456789 453453453 Fig. 7.15 (a) ← πNOMBRE, APELLIDO(NSSS * EMPLEADO) FBD Tema 3 57 Otras operaciones relacionales • Los SGBD introducen operaciones no estándar en el álgebra relacional: funciones agregadas, cierre recursivo, reunión y unión externa. Funciones agregadas (ℑ ℑ) <atribs agrupación> F GÓTICA ℑ <lista funciones> (R) Devuelve una relación con los resultados de la lista de funciones agrupados por los atributos indicados. <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. © C. P. G. 2007 FBD Tema 3 58 Otras operaciones relacionales (2) Ejemplos de Funciones agregadas (ℑ ℑ) R(ND, NÚM_DE_EMPLEADOS,PROMEDIO_SALARIO) ← ND ℑ CUENTA NSS, PROMEDIO SALARIO(EMPLEADO) 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) R2 ND CUENTA_NSS PROMEDIO_SALARIO 5 4 33250 4 3 31000 1 1 55000 • R3← ℑ CUENTA NSS, PROMEDIO SALARIO(EMPLEADO) R3 CUENTA_NSS PROMEDIO_SALARIO 8 35125 © C. P. G. 2007 FBD Tema 3 59 Otras operaciones relacionales (3) Cierre recursivo • 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 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 ← πNSS(σNOMBRE=‘James’ Y APELLIDO=‘Borg’EMPLEADO)) πNSS, NSS_SUPERV(EMPLEADO) SUPERVISIÓN (NSS1, NSS2) ← Supervisados directamente por Borg: RDO1 (NSS) ← πNSS1(SUPERVISIÓN NSS2=NSSNSS_BORG) Supervisados por los subordinados directos de Borg: RDO2 (NSS) ← πNSS1(SUPERVISIÓN NSS2=NSSRDO1) Supervisados en los niveles 1 y 2 por Borg: RDO ← RDO1 ∪ RDO2 © C. P. G. 2007 FBD Tema 3 60 Otras operaciones relacionales (4) Reunión externa izquierda R ]×| S • Conserva todas las tuplas de R aunque sea rellenando todos los campos correspondientes a S con valores nulos. • TEMP ← EMPLEADO ]×|NSS=NSS_JEFE DEPARTAMENTO • RESULTADO ← πNOMBRE, INIC, APELLIDO, NOMBRED(TEMP) 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 Reunión externa derecha R |×[ S Reunión externa completa R ]×[ S © C. P. G. 2007 FBD Tema 3 61 ... Otras operaciones relacionales (5) Unión externa • Unión de tuplas parcialmente compatibles. • El resultado conserva los atributos no compatibles. • Las tuplas sin valor para atributos no compatibles tienen valor nulo. 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 © C. P. G. 2007 FBD Tema 3 62 Consultas álgebra relacional 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) ¿Con *? EMPLEADO NOMBRE INICAPELLIDO NSS FECHA_NCTO DIRECCIÓN ... ... SEXO SALARIO NSS_SUPERV ND DEPARTAMENTO NOMBRED NÚMEROD NSS_JEFE FECHA_INIC_JEFE PROYECTO NOMBREP NÚMEROP LOCALIZACIÓNP NUMD 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← PROYS_STAFFORD NUMD=NÚMEROD JEFE_DEPTO_PROY← DEPTO_CONTR RESULTADO ← DEPARTAMENTO NSS_JEFE=NSS EMPLEADO πNÚMEROP,NUMD,APELLIDO,DIRECCIÓN, FECHA_NCTO (JEFE_DEPTO_PROY) © C. P. G. 2007 FBD Tema 3 63 Consultas álgebra relacional (2) 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 DEPARTAMENTO NOMBRED NÚMEROD NSS_JEFE FECHA_INIC_JEFE PROYECTO NOMBREPNÚMEROPLOCALIZACIÓNP NUMD TRABAJA_EN NSSE NP HORAS 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) ← πNÚMEROP (DPTOS_DIRIG_WON * PROYECTO) RESULTADO ← WONG_TRAB_PROYS ∪ WONG_JEFE_PROYS © 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 FBD Tema 3 66 Elmasri & Navathe 7.19 Analizar todas las R.I. que viola cada operación cuando se ejecuta sobre la BD de la figura 7.6: 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 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. © C. P. G. 2007 FBD Tema 3 67 Elmasri & Navathe 7.19 (2) 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 • Transformar a relacional el esquema ER de la figura: Nombre Sexo DEPENDIENTE Fecha_ncto N Parentesco DEPENDIENTES_DE 1 NomP Paterno Materno Nombre Fecha_ ncto NSS Sexo Dir Salario supervisor EMPLEADO N 1 PERTENECE_A DIRIGE 1 SUPERVISIÓN supervisado N FechaInic 1 1 Nombre DEPARTAMENTO N 1 Número Lugares NDeEmpleados Horas TRABAJA_EN M CONTROLA N PROYECTO Nombre Número Lugar © C. P. G. 2007 FBD Tema 3 69 Ejercicio 2: Transformación ERRelacional B1 A1 A2 A M B N 1 M B2 B3 M N R1 N C1 P N C C2 1 N E E1 D 1 1 N 1 D2 R2 M N R3 R4 © C. P. G. 2007 D1 F F1 R5 FBD Tema 3 70 Ejercicio 3: Transformación ERRelacional A1 A2 B1 A3 AB M A B2 B3 1 N B N 1 AC M M N C1 C C2 BD N N P N 1 1 D D1 BDE N CD D2 1 1 D3 E E1 E2 D11 D12 © C. P. G. 2007 FBD Tema 3 71 Ejercicios: Operaciones del álgebra EMP DEP NOMBRE NSS ND NUMD NOMD Iker Ana Jon Karmele 11 22 33 44 1 1 2 2 TRAB PROY 1 2 LSI ATC NP NOMBRE 1 2 3 4 .NET XML EJB UML 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: • NSS de los que trabajan más de 1 hora en el proyecto 1: PRY1_MAS1HORA← σNP=1 Y HORAS>1 (TRAB) R1 ← πNSSE (PRY1_MAS1HORA) • NP de los proyectos en los que trabaja alguna persona: R2← πNP (TRAB) • NP de los proyectos en los que NO trabaja ninguna persona: TODOS_PRY ← πNP (PROY) R3← TODOS_PRY - R2 • Información de cada persona asociada a la información de SU departamento: R4 ← EMP • 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 .NET XML EJB UML NSSE NP HORAS 11 11 22 22 44 1 2 1 3 3 5 2 3 1 4 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) R6← PERS * TRB • Nombre de cada empleado junto al nombre de cada proyecto en el que trabaja: PRY(NP,NOMP) ← PROY PERS_PRY ← R6 * PRY R7← πNOMBRE, NOMP(PERS_PRY) – ¿Qué cambia en PERS_PRY si se usa PROY en lugar de PRY? © C. P. G. 2007 FBD Tema 3 73 Elmasri & Navathe 7.18 EMPLEADO NOMBRE INIC APELLIDO NSS FECHA_NCTO DIRECCIÓN SEXO ... SALARIO ... NSS_SUPERV ND DEPARTAMENTO NOMBRED NÚMEROD NSS_JEFE FECHA_INIC_JEFE LOCALIZACIONES_DEPT NÚMEROD LOCALIZACIÓND PROYECTO NOMBREP NÚMEROP LOCALIZACIÓNP NUMD TRABAJA_EN 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. © C. P. G. 2007 FBD Tema 3 74 Elmasri & Navathe 7.18 (2) Sobre el esquema de BD de la figura 7.7: a) Empleados (nombre, apellido) del departamento 5 que trabajan más de 10 horas/semana en el proyecto ‘ProductoX’. b) Empleados con un dependiente con su mismo nombre de pila. c) Empleados cuyo jefe directo es ‘Franklin Wong’. 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. Nombres de los empleados que trabajen en todos y cada uno de los proyectos de la empresa. f) Empleados que no trabajan en ningún proyecto. g) Nombre de cada departamento junto al salario medio de los empleados asignados al mismo. h) Salario medio de las empleadas de la empresa. 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. j) Apellidos de los jefes de departamento sin dependientes. © C. P. G. 2007 FBD Tema 3 75 Elmasri & Navathe 7.20 AEROPUERTO CÓD_AEROPUERTO NOMBRE CIUDAD ESTADO VUELO 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 CÓD_AEROPUERTO_SALE HORA_SALIDA_PROGRAMADA CÓD_AEROPUERTO_LLEGA HORA_LLEGADA_PROGRAMADA 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 NÚM_VUELO CÓD_TARIFA IMPORTE RESTRICCIONES TIPO_AVIÓN NOMBRE_TIPO MAX_ASIENTOS COMPAÑÍA PUEDE_ATERRIZAR NOMBRE_TIPO_AVIÓN CÓD_AEROPUERTO AVIÓN ID_AVIÓN TOTAL_DE_ASIENTOS TIPO_AVIÓN RESERVA_ASIENTOS NÚM_VUELO NÚM_TRAMO FECHA NÚM_ASIENTO NOMBRE_CLIENTE TFNO_CLIENTE © C. P. G. 2007 FBD Tema 3 76 Elmasri & Navathe 7.20 (2) 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) © C. P. G. 2007 FBD Tema 3 77 Elmasri & Navathe 7.23 Consultas sobre la BD BIBLIOTECA 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 78 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 EJERCICIOS DE MODELADO (TEMAS 2 Y 3) 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