1. cc302 – Módulo 3 Bibliografía: Sistemas de bases de datos Ramez Elmasri y Shamkant B. Navathe Fundamentos de bases de datos Henry F. y Abraham Silverschatz Sistemas de Bases de Datos. Diseño, Implementación y Admón Peter Rob y Carlos Coronel Modelo Relacional Prof. J. Ignacio Vázquez Herrera
2.
3. Proceso del diseño de Bases de Datos Minimundo Recolección de análisis de requerimientos Diseño Conceptual Diseño Lógico Diseño Físico Modelo Entidad-Relación Modelo Relacional Independiente Del SGBD Específico para Cada SGBD
4.
5. Conceptos básicos del Modelo Relacional Los elementos del modelo relacional son llamados Relaciones, Tuplas y Atributos. Tradicionalmente, en las aplicaciones DBMS (SGBD) son conocidos como tablas, registros (o filas) y campos (o columnas) . Atributos Nombre de la relación Tuplas ESTUDIANTE Nombre NSS TelParticular Dirección TelOficina Edad Prom Benjamín Baeza 305-61-2435 36-46-23-89 Balboa 2918 Nulo 10 3.21 Karla Armenta 381-62-1245 36-56-72-35 Maíz 125 Nulo 18 2.89 Diego Domínguez 422-11-2320 36-51-28-74 Espina 3452 36-22-11-67 25 3.53 Carlos Cortés 489-22-1100 38-56-23-45 Libertad 265 36-45-79-34 28 3.25
6. Conceptos básicos del Modelo Relacional Un Dominio es un conjunto de valores atómicos, es decir: no indivisibles: Números de Seguro Social, Calificaciones, Edades, Números Telefónicos, Nombres, etc. Un Dominio debe tener un Nombre, Tipo de Datos y Formato. El Grado de una Relación es el número de atributos n del esquema R. La Cardinalidad de una Relación es el número de tuplas que la forman. Cardinalidad de la relación: 3 El atributo NSS cuyo dominio son los números del seguro social Grado de la relación: 7 Nombre de La relación ESTUDIANTE Nombre NSS TelParticular Dirección TelOficina Edad Prom Benjamín Baeza 305-61-2435 36-46-23-89 Balboa 2918 Nulo 10 3.21 Karla Armenta 381-62-1245 36-56-72-35 Maíz 125 Nulo 18 2.89 Diego Domínguez 422-11-2320 36-51-28-74 Espina 3452 36-22-11-67 25 3.53
7. Notación del Modelo Relacional Esquema de relación : R(A 1 , A 2 , ..., A n ) Tupla de grado n : t=<v 1 ,v 2 , ..., v n > Valor de t para el atributo A i : t[A i ] Dominio de A i : dom(A i ) Subtupla de t : t[A 1 , A 2 , ..., A z ] Ejemplo: Esquema de relación : Clientes(nombreCli, dniCli, domicilio) Dominio de dniCli : Números enteros postivos Tupla : t=<“Johnson”, “1”, “La Reina nº7”> Valor de tupla : t[nombreCli] Subtupla : t[nombreCli, domicilio]
8. Ejemplares y Esquemas de Relación Un Ejemplar de Relación o relación r(R) es un subconjunto del producto cartesiano de los dominios que definen a R. Un Esquema de Relación R se compone de un nombre de relación R, y una lista de atributos A 1 , A 2 A 3 , ….., A n ; cada uno de los cuales es el nombre de un papel desempeñado por un dominio D o dom(A i ). Un Esquema de Relación es relativamente estático (no cambia mucho con el tiempo), mientras que un Ejemplar de Relación en un momento dado refleja el estado actual de la relación . Es posible que varios atributos tengan el mismo dominio, siempre y cuando indiquen diferentes papeles (o roles) como en los atributos TelParticular y TelOficina de la siguiente relación. ESTUDIANTE Nombre NSS TelParticular Dirección TelOficina Edad Prom Benjamín Baeza 305-61-2435 36-46-23-89 Balboa 2918 Nulo 10 3.21 Karla Armenta 381-62-1245 36-56-72-35 Maíz 125 Nulo 18 2.89 Diego Domínguez 422-11-2320 36-51-28-74 Espina 3452 36-22-11-67 25 3.53
9. Ejemplares y Esquemas de Relación Un Ejemplar de Relación o relación r(R) es un subconjunto del producto cartesiano de los dominios que definen a R. r(R) dom(A 1 ) X dom(A 2 ) X …… X dom(A n ) Dado el esquema de relación R(A 1 ,A 2 ), donde los dominios de los atributos A 1 y A 2 son: dom(A 1 ) = {a,b,c} dom(A 2 ) = {d,e} El producto cartesiano de los dominios que definen a R { dom(A 1 ) X dom(A 2 ) } daría: Los ejemplares de relación r 1 (R), r 2 (R) y r 3 (R): Cumplen con la definición anterior, pues son todos subconjuntos de los dominios que definen a R El producto cartesiano se refiere a todas las combinaciones posibles que se pueden presentar con los dominios de R r1 A 1 A 2 a d c e r2 A 1 A 2 b d c d A 1 A 2 a d a e b d b e c d c e r3 A 1 A 2 a e b e
10. Características de las Relaciones Una Relación se define como un conjunto de tuplas. Ya que en la teoría matemática de conjuntos los elementos no están ordenados, las tuplas de una relación no tienen orden específico . Una Tupla se define como una lista ordenada de valores, así que el orden de los valores de una tupla sí es importante . Por ser una relación un conjunto de tuplas, se infiere que cada tupla es diferente En el modelo Relacional no se admiten atributos multivaluados o atributos compuestos ESTUDIANTE Nombre NSS TelParticular Dirección TelOficina Edad Prom Benjamín Baeza 305-61-2435 36-46-23-89 Balboa 2918 Nulo 10 3.21 Karla Armenta 381-62-1245 36-56-72-35 Maíz 125 Nulo 18 2.89 Diego Domínguez 422-11-2320 36-51-28-74 Espina 3452 36-22-11-67 25 3.53 Carlos Cortés 489-22-1100 38-56-23-45 Libertad 265 36-45-79-34 28 3.25
11. Esquema de BD Relacional Un esquema de base de datos relacional es un conjunto de esquemas de relaciones y un conjunto de restricciones de integridad . EMPLEADO DEPARTAMENTO LUGARES_DEPTOS PROYECTO TRABAJA_EN DEPENDIENTE Conjunto de esquema de relaciones . Falta definir el conjunto de restricciones de integridad NUMEROD LUGARD NSSE NUMP HORAS NOMBREP NUMEROP LUGARP NUMD NSS NOMBRE_DEPENDIENTE SEXO FECHAN PARENTESCO NOMBREP INIC APELLIDO NSS FECHAN DIRECCION SEXO SALARIO NSSUPER ND NOMBRED NUMEROD NSSGTE FECHAINICGTE
12.
13. Restricciones de clave EMPLEADO DEPARTAMENTO LUGARES_DEPTOS PROYECTO TRABAJA_EN DEPENDIENTE Cada uno de los esquemas de relación que conforman el esquema de BD debe tener uno o más atributos claves , que sirven para identificar de manera única a una tupla. NUMEROD LUGARD NSSE NUMP HORAS NOMBREP NUMEROP LUGARP NUMD NSS NOMBRE_DEPENDIENTE SEXO FECHAN PARENTESCO NOMBREP INIC APELLIDO NSS FECHAN DIRECCION SEXO SALARIO NSSUPER ND NOMBRED NUMEROD NSSGTE FECHAINICGTE
14.
15. SuperClaves Técnicamente, el conjunto de todos los atributos forman una superclave, porque le dan unicidad a la relación Pero igual cumplen los siguientes subconjuntos: num_eco, matricula; maticula, serie_motor; serie_motor, marca; Etc,etc. VEHICULO NUM_ECO MATRICULA SERIE_MOTOR MARCA MODELO CHOFER
16. Claves Candidatas y Claves Primarias En la relación VEHICULO se pueden encontrar dos superclaves mínimas (no se pueden dividir en otras superclaves): matricula y serie_motor Como ambas describen unívocamente a la entidad se les denomina claves candidatas Como es más probable que el atributo “matricula” cambie con el tiempo (como en un robo de placas), se elige el atributo serie_motor como clave primaria (o clave principal) puesto que el número de serie del motor por lo general no cambia VEHICULO NUM_ECO MATRICULA SERIE_MOTOR MARCA MODELO CHOFER
17. Claves Foráneas El atributo “ chofer ” se puede considerar como clave foránea , si en lugar de escribir nombres de personas como valores, se indican códigos que hacen referencia al nombre del chofer (o número del seguro social) en otra relación. VEHICULO EMPLEADO NUM_ECO MATRICULA SERIE_MOTOR MARCA MODELO CHOFER NOMBREP INIC APELLIDO NSS FECHAN DIRECCION SEXO SALARIO NSSUPER ND
18. Claves Parciales Son aquellas que no describen unívocamente a una relación. La relación DEPENDIENTE no cuenta con una clave primaria o principal propia. Su clave principal la forman: la clave foránea NSS y la clave parcial NOMBRE_DEPENDIENTE. NOMBRE_DEPENDIENTE por sí solo no puede ser clave principal puesto que sus valores se pueden repetir. EMPLEADO DEPENDIENTE Clave parcial o atributo discriminador Clave foránea NOMBREP INIC APELLIDO NSS FECHAN DIRECCION SEXO SALARIO NSSUPER ND NSS NOMBRE_DEPENDIENTE SEXO FECHAN PARENTESCO
19. Restricción de Integridad Referencial La restricción de integridad referencial establece que una tupla en una relación que haga referencia a otra relación deberá referirse a una tupla existente en esa relación. Por ejemplo: si se elimina el departamento 5 se violaría esta restricción si hubiera empleados en dicho departamento LUGARD NUMEROD HORAS NUMP NSSE NUMD LUGARP NUMEROP NOMBREP PARENTESCO FECHAN SEXO NOMBRE_ DEPENDIENTE NSS SEXO DIRECCION FECHAN NSS APELLIDO INIC ND NSSUPER SALARIO NOMBREP FECHAINICGTE NSSGTE NUMEROD NOMBRED EMPLEADO DEPARTAMENTO LUGARES_DEPTOS PROYECTO TRABAJA_EN DEPENDIENTE
20. Ejemplar de una BD Relacional Base de Datos COMPAÑIA EMPLEADO NOMBREP INIC APELLIDO NSS FECHAN DIRECCION SEXO SALARIO NSSUPER ND José B Silva 123456789 09-ENE-55 Fresno 731, Guadalajara M 30000 333445555 5 Federico T Vizcarra 333445555 08-DIC-45 Valle 638, León M 40000 888665555 5 Alicia J Zapata 999887777 19-JUL-58 Castillo 3321, Monterrey F 25000 987654321 4 Jazmín S Valdés 987654321 20-JUN-31 Bravo 291, Guadalajara F 43000 888665555 4 Ramón K Nieto 666884444 15-SEP-52 Independencia 35, León M 38000 333445555 5 Josefa A Esparza 453453453 31-JUL-62 Canción 1450, Zapopan F 25000 333445555 5 Ahmed V Jabbar 987987987 29-MAR-59 Dallas 980, Tlaquepaque M 25000 987654321 4 Jaime E Botello 888665555 10-NOV-27 Sorgo 450, Zapopan M 55000 Nulo 1 LUGARES_DEPTOS NUMEROD LUGARD 1 Tlaquepaue 4 Guadalajara 5 Zapopan 5 Zapotlanejo 5 Guadalajara DEPENDIENTE NSS NOMBRE_DEPENDIENTE SEXO FECHAN PARENTESCO 333445555 Alicia F 05-ABR-76 HIJA 333445555 Teodoro M 25-OCT-73 HIJO 333445555 Jobita F 03-MAY-48 CONYUGE 987654321 Abdiel M 29-FEB-32 CONYUGE 123456789 Miguel M 01-ENE-78 HIJO 123456789 Alicia F 31-DIC-78 HIJA 123456789 Elizabeth F 05-MAY-57 CONYUGE PROYECTO NOMBREP NUMEROP LUGARP NUMD ProductoX 1 Guadalajara 5 ProductoY 2 Zapotlanejo 5 ProductoZ 3 Tlaquepaque 5 Automatización 10 Guadalajara 4 Reorganización 20 Tlaquepaque 1 NuevasPrestaciones 30 Zapopan 4 DEPARTAMENTO NOMBRED NUMEROD NSSGTE FECHAINICGTE Investigación 5 333445555 22-MAY-78 Administración 4 987654321 01-ENE-85 Dirección 1 888665555 19-JUN-71 TRABAJA_EN NSS NUMP HORAS 123456789 1 32.5 123456789 2 7.5 666884444 3 40.0 453453453 1 20.0 453453453 2 20.0 333445555 2 10.0 333445555 3 10.0 333445555 10 10.0 333445555 20 10.0 999887777 30 30.0 999887777 10 10.0 987987987 10 35.0 987987987 30 5.0 987987987 30 20.0 987987987 20 15.0 888665555 20 NULO
21.
22.
23.
24.
25.
26. Operaciones del Algebra Relacional Seleccionar .- La operación de selección selecciona algunas tuplas que satisfacen un predicado determinado. Se utiliza la letra griega sigma ( ) para indicarla. Sintaxis: <predicado> (relación) Ejemplo: Dada la relación EMPLEADO: Obtener las tuplas cuyo SALARIO es mayor de 30000 SALARIO>30000 (EMPLEADO) Relación resultante NOMBREP INIC APELLIDO NSS SEXO SALARIO NSSSUPER ND José B Silva 123456789 M 30000 333445555 5 Federico T Vizcarra 333445555 M 40000 888665555 5 Josefa A Esparza 453453453 F 25000 333445555 5 Ahmed V Jabbar 987987987 M 25000 987654321 4 Jaime E Botello 888665555 M 55000 Nulo 1 NOMBREP INIC APELLIDO NSS SEXO SALARIO NSSSUPER ND Federico T Vizcarra 333445555 M 40000 888665555 5 Jaime E Botello 888665555 M 55000 Nulo 1
27. Operaciones del Algebra Relacional Proyectar .- Es una operación unaria que devuelve su relación argumento con ciertas columnas omitidas. Puesto que la relación es un conjunto, no elimina las filas duplicadas. La proyección se denota por la letra griega pi ( ). Sintaxis: <lista de columnas> (relación) Ejemplo: Dada la relación EMPLEADO: Obtener las columnas NOMBREP, APELLIDO Y NSS NOMBREP,APELLIDO,NSS (EMPLEADO) Relación resultante A diferencia de la operación “Seleccionar”, la operación “Proyectar” no es conmutativa. NOMBREP INIC APELLIDO NSS SEXO SALARIO NSSSUPER ND José B Silva 123456789 M 30000 333445555 5 Federico T Vizcarra 333445555 M 40000 888665555 5 Josefa A Esparza 453453453 F 25000 333445555 5 Ahmed V Jabbar 987987987 M 25000 987654321 4 Jaime E Botello 888665555 M 55000 Nulo 1 NOMBREP APELLIDO NSS José Silva 123456789 Federico Vizcarra 333445555 Josefa Esparza 453453453 Ahmed Jabbar 987987987 Jaime Botello 888665555
28. Operaciones del Algebra Relacional En la práctica, la mayoría de las veces se requiere combinar dos o más operaciones para obtener una determinada consulta. Ejemplo: Encontrar Los nombres y apellidos de las mujeres que ganan más de 20000: NOMBREP, APELLIDO ( σ SALARIO>20000 ^ SEXO=F (EMPLEADO) ) Relación resultante EMPLEADO NOMBREP INIC APELLIDO NSS FECHAN DIRECCION SEXO SALARIO NSSUPER ND José B Silva 123456789 09-ENE-55 Fresno 731, Guadalajara M 30000 333445555 5 Federico T Vizcarra 333445555 08-DIC-45 Valle 638, León M 40000 888665555 5 Alicia J Zapata 999887777 19-JUL-58 Castillo 3321, Monterrey F 20000 987654321 4 Jazmín S Valdés 987654321 20-JUN-31 Bravo 291, Guadalajara F 43000 888665555 4 Ramón K Nieto 666884444 15-SEP-52 Independencia 35, León M 38000 333445555 5 Josefa A Esparza 453453453 31-JUL-62 Canción 1450, Zapopan F 25000 333445555 5 Ahmed V Jabbar 987987987 29-MAR-59 Dallas 980, Tlaquepaque M 25000 987654321 4 Jaime E Botello 888665555 10-NOV-27 Sorgo 450, Zapopan M 55000 Nulo 1 NOMBREP APELLIDO Jazmín Valdés Josefa Esparza
29. Operaciones del Algebra Relacional Unión .- Devuelve una relación que incluye las tuplas que están en R o en S o en ambas. Las relaciones que se unan han de tener los mismos tipos de atributos (deben ser compatibles), y se eliminan las tuplas repetidas. La unión se denota por R U S Ejemplo: Encontrar ESTUDIANTE U PROFESOR : Relación resultante Nótese como las tuplas repetidas en PROFESOR fueron eliminadas U = ESTUDIANTE NP AP Susana Yañez Ramón Sánchez Josué Landa Bárbara Jaimes Amanda Flores Jaime Vélez Ernesto Gómez NP AP Susana Yañez Ramón Sánchez Josué Landa Bárbara Jaimes Amanda Flores Jaime Vélez Ernesto Gómez Ricardo Bueno José Silva Francisco Jiménez PROFESOR NOMBREP APELLIDO Susana Yañez Ricardo Bueno José Silva Francisco Jiménez Ramón Sánchez
30. Operaciones del Algebra Relacional Unión (cont) .- En muchas ocasiones la unión se aplica cuando la consulta implica una disyunción (OR). Por ejemplo: Se desea listar los números del seguro social de los empleados que trabajan en el departamento 5 O que supervisan directamente a un empleado que trabaja en dicho departamento. Relación resultante Nótese como las tuplas repetidas fueron eliminadas = NSS ( σ ND=5 (EMPLEADO) ) NSSSUPER ( σ ND=5 (EMPLEADO) ) U NSS 123456789 333445555 666884444 453453453 888665555
31. Operaciones del Algebra Relacional Unión (cont) .- La operación unión no es tan común porque la mayoría de las veces se puede reemplazar con el uso de dos condiciones unidas por una disyunción dentro del predicado de la selección. Ejemplo: Listar los NSS de los empleados que trabajan en el departamento 5 o en el departamento 1: O bien: Relación resultante = NSS ( σ ND=5 v ND=1 (EMPLEADO) ) NSS ( σ ND=5 (EMPLEADO) ) U NSS ( σ ND=3 (EMPLEADO) ) NSS 123456789 333445555 666884444 453453453 888665555
32. Operaciones del Algebra Relacional Intersección .- Devuelve una relación que incluye las tuplas que están tanto en R como en S. Las relaciones han de tener los mismos tipos de atributos (deben ser compatibles). La Intersección es conmutativa. La intersección se denota por R ∩ S Ejemplo: Encontrar ESTUDIANTE ∩ PROFESOR : Relación resultante ∩ = ESTUDIANTE NP AP Susana Yañez Ramón Sánchez Josué Landa Bárbara Jaimes Amanda Flores Jaime Vélez Ernesto Gómez NP AP Susana Yañez Ramón Sánchez PROFESOR NOMBREP APELLIDO Susana Yañez Ricardo Bueno José Silva Francisco Jiménez Ramón Sánchez
33. Operaciones del Algebra Relacional Intersección (cont) .- En muchas ocasiones la intersección se aplica cuando la consulta implica una conjunción (AND). Por ejemplo: Se desea listar los números del seguro social de los empleados que ganan más de 20,000 y que son mujeres. Relación resultante = NSS ( σ SALARIO>20000 (EMPLEADO)) NSS ( σ SEXO=F (EMPLEADO) ) ∩ NSS 999887777 987654321 453453453
34. Operaciones del Algebra Relacional Intersección (cont) .- La operación intersección no es tan común porque la mayoría de las veces se puede reemplazar con el uso de dos condiciones unidas por una conjunción dentro del predicado de la selección. El ejemplo anterior se puede expresar de la siguiente manera: Relación resultante = NSS ( σ SALARIO >20000 ^ SEXO=F (EMPLEADO) ) NSS 999887777 987654321 453453453
35.
36. Producto Cartesiano .- Devuelve una relación que tiene una tupla por cada combinación de tuplas: una de R y una de S. El producto cartesiano se denota por R X S . El número de tuplas de la relación resultante es igual al producto del número de tuplas de R y el número de tuplas de S. Ejemplo: Encontrar ESTUDIANTE X PROFESOR: X = Operaciones del Algebra Relacional ESTUDIANTE NP AP Josué Landa Bárbara Jaimes Amanda Flores Jaime Vélez PROFESOR NOMBREP APELLIDO Susana Yañez Ricardo Bueno Ramón Sánchez ESTUDIANTE NP AP NOMBREP APELLIDO Josué Landa Susana Yañez Josué Landa Ricardo Bueno Josué Landa Ramón Sánchez Bárbara Jaimes Susana Yañez Bárbara Jaimes Ricardo Bueno Bárbara Jaimes Ramón Sánchez Amanda Flores Susana Yañez Amanda Flores Ricardo Bueno Amanda Flores Ramón Sánchez Jaime Vélez Susana Yañez Jaime Vélez Ricardo Bueno Jaime Vélez Ramón Sánchez
37. Operaciones del Algebra Relacional Reunión .- Es una operación derivada (es decir, se puede representar en función de otras básicas). Permite combinar tuplas de dos relaciones R y S a través de una condición sobre los atributos. Sintaxis: R ⋈ <condición de reunión> (S) Es equivalente a la combinación de una selección y un producto cartesiano: <condición de reunión> (R X S) Ejemplo: Dadas las relaciones EMPLEADO y TRABAJA_EN EMPLEADO TRABAJA_EN NOMBREP INIC APELLIDO NSS SEXO SALARIO NSSUPER ND José B Silva 123456789 M 30000 333445555 5 Federico T Vizcarra 333445555 M 40000 888665555 5 Josefa A Esparza 453453453 F 25000 333445555 5 Ahmed V Jabbar 987987987 M 25000 987654321 4 Jaime E Botello 888665555 M 55000 Nulo 1 NSS NUMP HORAS 123456789 1 32.5 123456789 2 7.5 987987987 30 5.0 987987987 20 15.0 888665555 20 NULO
38. Operaciones del Algebra Relacional Reunión (cont) .- Listar los datos de los empleados y los números de proyectos en los que participan, así como las horas que les dedican. EMPLEADO ⋈ EMPLEADO.NSS=TRABAJA_EN.NSS (TRABAJA_EN) Es equivalente a la combinación de una selección y un producto cartesiano: EMPLEADO.NSS=TRABAJA_EN.NSS (EMPLEADO X TRABAJA_EN) Relación resultante Nótese como aparecen las columnas NSS de las 2 tablas originales NOMBREP INIC APELLIDO NSS SEXO SALARIO NSSUPER ND NSS NUMP HORAS José B Silva 123456789 M 30000 333445555 5 123456789 1 32.5 José B Silva 123456789 M 30000 333445555 5 123456789 2 7.5 Ahmed V Jabbar 987987987 M 25000 987654321 5 987987987 30 5.0 Ahmed V Jabbar 987987987 M 25000 987654321 4 987987987 20 15.0 Jaime E Botello 888665555 M 55000 Nulo 1 888665555 20 NULO
39.
40. Operaciones del Algebra Relacional Reunión Natural .- Permite eliminar las columnas redundantes en la relación resultante. Sintaxis: R * <CONDICIÓN DE REUNIÓN> (S) Es equivalente a la combinación de una proyección, una selección y un producto cartesiano. En el ejemplo de dos láminas anteriores: EMPLEADO * <EMPLEADO.NSS=TRABAJA_EN.NSS> (TRABAJA_EN) equivale a: NOMBREP, INIC, APELLIDO, EMPLEADO.NSS, SEXO, SALARIO, NSSUPER, NUMP, HORAS ( < EMPLEADO.NSS=TRABAJA_EN.NSS> (EMPLEADO X TRABAJA_EN)) Relación resultante NOMBREP INIC APELLIDO NSS SEXO SALARIO NSSUPER NUMP HORAS José B Silva 123456789 M 30000 333445555 1 32.5 José B Silva 123456789 M 30000 333445555 2 7.5 Ahmed V Jabbar 987987987 M 25000 987654321 30 5.0 Ahmed V Jabbar 987987987 M 25000 987654321 20 15.0 Jaime E Botello 888665555 M 55000 Nulo 20 NULO
41. Operaciones del Algebra Relacional Reunión Natural (cont) .- Si no se especifica la condición de reunión, se utilizarán los atributos que tienen el mismo nombre (en este caso NSS). El ejemplo anterior se puede expresar: EMPLEADO * TRABAJA_EN En caso de no existir atributos con el mismo nombre, lo que en realidad se obtendría sería un producto cartesiano: EMPLEADO X TRABAJA_EN Si en una equireunión ( ⋈ ) no se especifica el criterio de reunión, se tomará como reunión natural, si además no existen atributos con el mismo nombre, entonces se tratará como un producto cartesiano.
42. Operaciones del Algebra Relacional Reunión Externa .- Las reuniones antes vistas solo devuelven tuplas coincidentes en ambas relaciones. En ocasiones es necesario listar todas las tuplas de R o de S, por lo que se hace necesaria una reunión externa, la cual puede ser izquierda o derecha. Sintaxis: R <CONDICIÓN DE REUNIÓN> (S) reunión externa izquierda R <CONDICIÓN DE REUNIÓN> (S) reunión externa derecha Supongamos que queremos listar los nombres de los empleados y el nombre del departamento que dirigen, si es que dirigen un departamento: NOMBREP, APELLIDO, NOMBRED (EMPLEADO < NSS=NSSGTE> (DEPARTAMENTO)) Relación resultante Las reuniones externas suelen devolver valores nulos NOMBREP APELLIDO NOMBRED José Silva nulo Federico Vizcarra Investigación Alicia Zapata nulo Jazmín Valdés Administración Ramón Nieto nulo Josefa Esparza nulo Ahmed Jabbar nulo Jaime Botello Direccion
43. Operaciones del Algebra Relacional División .- Permite obtener los datos que se relacionan con todos los elementos de otro conjunto . Crea una nueva relación, seleccionando las filas en una relación que se corresponden con todas las filas en otra relación . Sintaxis: R ÷ S En el siguiente ejemplo, se muestran los nombres de las materias que se imparten en todas las carreras. Relación resultante ÷ Aunque no se pueden restituir las tablas originales, se considera la operación inversa del productor cartesiano = MATERIA CARRERA CC419 ING. COMPUTACION CC219 LIC. INFORMATICA CC302 ING QUIMICO CC419 LIC. INFORMATICA CC308 ING. COMPUTACION CC301 ING. QUIMICO CC419 ING. QUIMICO CC219 ING. COMPUTACION CC201 LIC. INFORMATICA CC219 ING. QUIMICO CC421 ING. COMPUTACION CC302 LIC. INFORMATICA CARRERA ING. COMPUTACION LIC. INFORMATICA ING QUIMICO MATERIA CC419 CC219
44. Operaciones del Algebra Relacional Asignación .- En operaciones complejas (sobre todo en subconsultas) es común que se obtengan tablas temporales para ir simplificando las operaciones. Sintaxis: R (operación del Algebra Relacional) Por ejemplo: Se desea listar los números del seguro social de los empleados que ganan más de 20,000 y que son mujeres , utilizano una intersección : Se pudiera expresar: NSS ( σ SALARIO>20000 (EMPLEADO)) NSS ( σ SEXO=F (EMPLEADO) ) ∩ NSS ( σ SALARIO>20000 (EMPLEADO) NSS ( σ SEXO=F (EMPLEADO) ∩
45. Operaciones del Algebra Relacional Funciones agregadas .- Hay solicitudes que no se pueden expresar mediante el álgebra relacional y por lo tanto se deben especificar utilizando funciones matemáticas agregadas. Como ejemplos tenemos el calcular el número de empleados o el salario medio total de todos los empleados. Entre estas funciones se encuentran: SUMA, PROMEDIO, CUENTA, MÁXIMO, MÍNIMO. Todas estas funciones pueden aplicarse a una colección de tuplas. Sintaxis: <ATRIBUTOS DE AGRUPACIÓN> <LISTA DE FUNCIONES> (RELACIÓN) Supongamos que queremos obtener los números de departamentos, el número de empleados de cada departamento y su salario medio: ND cuenta NSS, promedio SALARIO (EMPLEADO) Relación resultante ND CUENTA_NSS PROMEDIO_SALARIO 5 4 33250 4 3 31000 1 1 55000
46. Conjunto completo de operaciones Está demostrado que el conjunto de operaciones (llamadas básicas ): { , , U, - , X} Es un conjunto completo , pues con cualquier combinación de esas operaciones se pueden obtener otras (también llamadas derivadas ), como es el caso de los diferentes tipos de reunión y la división.