Diseo de base de datos Tema 3 Algebra
Diseño de base de datos Tema 3 : Algebra relacional
1. Introducción Procedimentales: el usuario indica al sistema que realice una secuencia de operaciones en la base de datos con el fin de obtener un resultado deseado. No procedimentales: el usuario describe la información deseada sin un procedimiento específico para obtener dicha información. 2 T 3: Algebra relacional Lenguajes de consulta: son aquellos en que el usuario interroga o solicita información a la base de datos. Estos lenguajes se clasifican en procedimentales y no procedimentales.
El Algebra relacional es un lenguaje de consulta procedimental. Esta constituido por: §Operandos: Objetos (valores o variables) desde los cuales nuevos objetos pueden ser construidos. §Operadores: símbolos que denotan nuevos objetos desde objetos dados. 3 T 3: Algebra relacional 1. Introducción Ya hemos realizado el modelado de la base de datos. Estos modelados tiene por base las teorías de conjuntos. Por lo que para la manipulación de los valores de un conjunto veremos algunos conceptos matemáticos se denominan Algebra relacional.
1. Introducción § Sus operandos están diseñados para hacer tareas más comunes que se necesitan para manipular relaciones en una base de datos. Con estas característica el algebra relacional puede ser utilizado como lenguaje de consulta, y es el precursor de lo que luego conoceremos como SQL. 4 T 3: Algebra relacional § Sus operandos son relaciones (tablas) o variables que representan relaciones.
1. 1 Selección σNombre=“Juan”(Persona) Cedula Nombre Apellido 0010998 2012803 0029884 1037498 Carlos Juan Maria Juan Pérez Mairena Ruiz Talavera Apellido Cedula Nombre Persona 5 T 3: Algebra relacional Esta operación se usa para seleccionar un subconjunto de las relación, el resultado serán aquellas tuplas que respeten un criterio. Representado por el símbolo σ.
1. 1 Selección T 3: Algebra relacional σNombre=“Juan”(Persona) Resultado Cedula Nombre Apellido 2012803 1037498 Juan Mairena Talavera 6
1. 1 Selección σNombre=“Juan”(Persona) Cedula Nombre Apellido 0010998 2012803 0029884 1037498 Carlos Juan Maria Juan Pérez Mairena Ruiz Talavera Nombre Persona 7 T 3: Algebra relacional Esa sección de la sentencia es donde se coloca la condición, puede haber una o varias condiciones. Cuando hay más de una condición de selección se pueden concatenar con el Apellido operador y (^) o o (v).
1. 1 Selección σ Nombre =“ Juan ” ^ Apellido =“ Pérez ”(Persona ) Cedula Nombre =“ Juan ” Apellido ˇ Apellido =“ Pérez ”(Persona ) Cedula Nombre Apellido 0010998 2012803 1037498 Carlos Juan Pérez Mairena Talavera 8 T 3: Algebra relacional σ Nombre
1. 2 Proyección πNombre (Persona) Apellido Cedula Nombre 0010998 Carlos Persona 2012803 Juan 0029884 Maria 1037498 Juan Apellido Pérez Mairena Ruiz Talavera Nombre Persona 9 T 3: Algebra relacional Proyecta solo un conjunto especificado de atributos de toda la relación. Su símbolo es π.
1. 2 Proyección πNombre (Persona) T 3: Algebra relacional Nombre Carlos Juan Resultado Maria Juan 10
1. 2 Proyección πNombre (Persona) , (coma) 11 T 3: Algebra relacional En esta parte de la sentencia se ubica los atributos que se desea mostrar como resultado. Cuando son más de un atributo se separan por
1. 2 Proyección π Nombre, Apellido (Persona) Nombre Apellido Carlos Juan Maria Juan Pérez Mairena Ruiz Talavera Resultado 12 T 3: Algebra relacional Apellido
1. 3 Unión Cliente U Empleado Cliente Cedula Nombre 001324 203049 011249 203049 María Juan Carlos Juan 13 T 3: Algebra relacional Dado que las relaciones son conjunto de tuplas, se pueden realizar operaciones usuales de conjuntos como la unión. Su símbolo U
1. 3 Unión Cliente U Empleado T 3: Algebra relacional Respuesta Cedula Nombre 001324 Carlos 203049 Juan 011249 María Para que una operación de Unión sea válida hay que exigir que se cumplan dos condiciones: • Las relaciones r y s deben ser de la misma aridad. Es decir, deben tener el mismo número de atributos. • Los dominios de los atributos i-ésimos de r y s deben ser iguales para todo i. 14
1. 4 Diferencia A y no en la relación B. Su símbolo es - Cliente - Empleado Resultado Cliente Empleado Nombre Carlos Juan Carlos Esteban Nombre Juan 15 T 3: Algebra relacional Con esta operación se puede sacar como resultado las tuplas que están en una relación
1. 4 Diferencia Cliente - Empleado 16 T 3: Algebra relacional Este operador es binario y los dos conjuntos deben tener la misma estructura para poder ser unidos por este operador.
1. 6 Producto Cartesiano Conjunto de Atributos de A x B = Conjunto de atributos de A υ Conjunto de atributos de B En cuanto al número de tuplas o filas de A x B, estas se obtienen combinando cada fila de A con todas las de B de modo que si A tiene N filas y B tiene M filas el número de filas de A x B es N x M. Este es un operador binario, se aplica a dos relaciones y el resultado es otra relación. El resultado es una relación que contendrá todas las combinaciones de las tuplas de los dos operandos. 17 T 3: Algebra relacional El producto cartesiano A x B donde A y B son relaciones, genera una nueva relación con las siguientes particularidades:
1. 5 Producto cartesiano Cliente X Cargos Resultado Cliente Cargos Nombres Tipo Carlos Juan Cajero Cuidador 18 T 3: Algebra relacional Esta operación combina tuplas de dos o más relaciones. Su símbolo es X
1. 7 intercepción Cliente ∩ Empleado Cliente Empleado Resultado Nombre Carlos Juan Esteban Juan 19 T 3: Algebra relacional Esta sentencia es un operador binario y necesita tener la misma estructura para poder realizar la operación. Sean A, B dos relaciones, entonces A ∩ B es una nueva relación que contiene las tuplas comunes a las relaciones A y B.
1. 7 intercepción Cliente – (Cliente - Empleado) Cliente ∩ Empleado 20 T 3: Algebra relacional Esta sentencia es parte de las sentencias compuestas del algebra relacional. Se le denominan compuesta porque en realidad se podría realizar su misma operación con las anteriores sentencias. Su símbolo es ∩
1. 7 intercepción (Cliente - Empleado) Empleado Nombre Carlos Juan Esteban Resultado 1 Nombre Carlos Cliente – (Cliente - Empleado) Cliente Nombre Carlos Juan Resultado 1 Resultado Nombre Carlos Juan 21 T 3: Algebra relacional Cliente
División ( ÷) T 3: Algebra relacional Resulta adecuada para las consultas que incluyen la expresión <<para todos>>. Operación del álgebra relacional que crea una nueva relación, seleccionando las filas en una relación que se corresponden con todas las filas en otra relación. La operación división es la opuesta de la operación producto cartesiano. Sean r y s relaciones de los esquemas R y S respectivamente, donde: R = (A 1, …, Am, B 1, …, Bn) S = (B 1, …, Bn) El resultado de r ÷ s es una relación del esquema: R – S = (A 1, …, Am) La División se realiza entre dos tablas que cumplan las siguientes condiciones: • “R” debe tener columnas de “S” y el número de columnas de “R” ha de ser mayor que el de “S”. • “S” debe tener al menos una tupla. • El cociente es una nueva tabla formada por las columnas de “R” que no están en “S” y por las filas obtenidas al concatenar con “S” que estén contenidas en “R”. 22
1. 8 Reunión natural σcliente. nombre=Empleado. nombre (Cliente X Empleado) Cliente |X| Empleado 23 T 3: Algebra relacional La operación reunión natural forma un producto cartesiano de sus dos argumentos, realiza una selección forzando la igualdad de los atributos que aparecen en ambos esquemas de relación y, finalmente, elimina los atributos duplicados. Su símbolo es |X|
1. 8 Reunión natural (Cliente X Empleado) Cliente Nombre Apellido Nombre Area Juan Raul ADM INFO Resultado Nombre Apellido Carlos Maria Juan T 3: Algebra relacional Carlos Pérez Maria Ruiz Juan Talavera Empleado Pérez Ruiz Talavera Nombre Area Juan Raul ADM INFO 24
1. 8 Reunión natural Cliente |X| Empleado Cliente Nombre Empleado Apellido Carlos Pérez Maria Ruiz Juan Talavera Resultado Nombre Apellido Area Juan Talavera ADM Nombre Area Juan Raul ADM INFO 25 T 3: Algebra relacional Esta sentencia es operador binario y para poder realizar correctamente la operación al menos un atributo de cada tabla debe coincidir en nombre.
1. 8 Reunión natural T 3: Algebra relacional σcliente. nom=Empleado. nom (Cliente X Empleado) Resultado nom Apellido nom Area Carlos Maria Juan Pérez Ruiz Talavera Juan Raul ADM INFO 26
1. 9 Reunión Zeta σ cliente. nombre=Empleado. nombemp (Client e X Empleado) Cliente |X| nombre=nombemp Empleado 27 T 3: Algebra relacional Esta sentencia es parte de las sentencias compuestas del algebra relacional. Su resultado es los valores que coinciden de cada tabla. Su símbolo es |X| columna 1=columna 2
1. 9 Reunión Zeta Cliente |X| nombre=nombemp Empleado Cliente Nombre Empleado Apellido Carlos Pérez Maria Ruiz Juan Talavera Resultado Nom Area Juan Talavera Nombemp Area Juan Raul ADM INFO Nombemp Area Juan ADM 28 T 3: Algebra relacional Esta sentencia es operador binario y para poder realizar correctamente la operación al menos un atributo de cada tabla debe coincidir en nombre.
1. 10 Reunión Left Cliente ]X| Empleado 29 T 3: Algebra relacional Esta sentencia es parte de las sentencias compuestas del algebra relacional. Su resultado es los valores que coinciden de la primera tabla con la segunda y ubica a null los que no coinciden de la segunda tabla. Su símbolo es ]X|
1. 10 Reunión Left Cliente ]X| Empleado Nom Ape Carlos Pérez Maria Ruiz Juan Talavera Resultado T 3: Algebra relacional Cliente Empleado Nom Area Juan Raul ADM INFO Nom Ape Area Carlos Maria Juan Pérez Ruiz Talavera null ADM 30
1. 11 Reunión right Cliente |X[ Empleado 31 T 3: Algebra relacional Esta sentencia es parte de las sentencias compuestas del algebra relacional. Su resultado es los valores que coinciden la segunda tabla con la primera tabla y las que no coincidan se ponen a null. Su símbolo es |X[
1. 11 Reunión Right Cliente |X[ Empleado Nom Ape Carlos Pérez Maria Ruiz Juan Talavera Resultado T 3: Algebra relacional Cliente Empleado Nom Area Juan Raul ADM INFO Ape Nom Area Talavera null Juan Raul ADM INFO 32
1. 11 Reunión Full Cliente ]X[ Empleado 33 T 3: Algebra relacional Esta sentencia es parte de las sentencias compuestas del algebra relacional. Su resultado es los valores que coinciden de cada tabla. Su símbolo es ]X[
1. 11 Reunión full Cliente ]X[ Empleado Persona Ape Carlos Pérez Maria Ruiz Juan Talavera Resultado T 3: Algebra relacional Nom Empleado Nom Area Juan Raul ADM INFO Nom Ape Area Carlos Maria Juan Raul Pérez Ruiz Talavera null ADM INFO 34
1. 12 Asignación Temp π Nom (Persona) Persona Temp Nom Ape Nom Carlos Maria Juan Pérez Ruiz Talavera Carlos Maria Juan 35 T 3: Algebra relacional Proyecta solo un conjunto especificado de atributos de toda la relación. Su símbolo es .
Resumen T 3: Algebra relacional 36
EJEMPLO FEDERACION (nombre_f, direccion, telefono) MIEMBRO (dni, nombre_m, titulacion) Composicion (nombre_f, dni, cargo, fecha_inicio) 37 T 3: Algebra relacional 1. Obtener el nombre de los presidentes de federación. ∏nombre_m(σcargo=”presidente” (Composición X Miembro)) 2. Obtener la dirección de aquellas federaciones que tienen gerente. ∏direccion(σcargo=”gerente” (Composición X Federacion)) 3. Obtener las federaciones que no tienen asesor técnico. ∏nombre_f (Federacion) - ∏nombre_f (σcargo=”Asesor tecnico” (Composicion)) 4. Obtener las federaciones que tienen todos los cargos. ∏nombre_f, cargo (Composicion) ÷ ∏cargo (Composicion) 5. Obtener las federaciones que tienen asesor técnico y psicólogo. ∏nombre_f (σcargo=”Asesor tecnico” (Composicion)) ∩ ∏nombre_f (σcargo=”Psicologo” (Composicion))
- Slides: 37