371 likes | 642 Views
Diseño de base de datos. Tema 3 : Algebra relacional. T3: Algebra relacional. 1. Introducción. 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.
E N D
Diseño de base de datos Tema 3 : Algebra relacional
T3: Algebra relacional 1. Introducción 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. 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
T3: 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. • 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
T3: Algebra relacional 1. Introducción • Sus operandos son relaciones (tablas) o variables que representan relaciones. • 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
T3: Algebra relacional 1.1 Selección 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 σ. σNombre=“Juan”(Persona) Apellido Cedula Nombre Persona 5
T3: Algebra relacional 1.1 Selección σNombre=“Juan”(Persona) Resultado 6
T3: Algebra relacional 1.1 Selección σNombre=“Juan”(Persona) 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 operador y (^) o o (v). Apellido Cedula Nombre Persona 7
T3: Algebra relacional 1.1 Selección σNombre=“Juan” ^Apellido=“Pérez”(Persona) σNombre=“Juan”ˇApellido=“Pérez”(Persona) 8
T3: Algebra relacional 1.2 Proyección Proyecta solo un conjunto especificado de atributos de toda la relación. Su símbolo es π. πNombre (Persona) Apellido Cedula Persona Nombre Persona 9
T3: Algebra relacional 1.2 Proyección πNombre (Persona) Nombre Resultado 10
T3: Algebra relacional 1.2 Proyección πNombre (Persona) 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 , (coma) 11
T3: Algebra relacional 1.2 Proyección π Nombre, Apellido (Persona) Apellido Nombre Resultado 12
T3: Algebra relacional 1.3 Unión Dado que las relaciones son conjunto de tuplas, se pueden realizar operaciones usuales de conjuntos como la unión. Su símbolo U Cliente U Empleado Empleado Cliente 13
T3: Algebra relacional 1.3 Unión Cliente U Empleado Respuesta 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
T3: Algebra relacional 1.4 Diferencia Con esta operación se puede sacar como resultado las tuplas que están en una relación A y no en la relación B. Su símbolo es - Cliente - Empleado Resultado Cliente Empleado 15
T3: Algebra relacional 1.4 Diferencia Cliente - Empleado Este operador es binario y los dos conjuntos deben tener la misma estructura para poder ser unidos por este operador. 16
T3: Algebra relacional 1.6 Producto Cartesiano El producto cartesiano A x B donde A y B son relaciones, genera una nueva relación con las siguientes particularidades: 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
T3: Algebra relacional 1.5 Producto cartesiano Esta operación combina tuplas de dos o más relaciones. Su símbolo es X Cliente X Cargos Resultado Cliente Cargos 18
T3: Algebra relacional 1.7 intercepción 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. Cliente ∩ Empleado Cliente Empleado Resultado 19
T3: Algebra relacional 1.7 intercepción 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 ∩ Cliente – (Cliente - Empleado) Cliente ∩ Empleado 20
T3: Algebra relacional 1.7 intercepción (Cliente - Empleado) Cliente Empleado Resultado1 Cliente – (Cliente - Empleado) Cliente Resultado1 Resultado 21
T3: Algebra relacional División (÷) 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 = (A1, …, Am, B1, …, Bn)S = (B1, …, Bn) El resultado de r ÷ s es una relación del esquema: R – S = (A1, …, 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
T3: Algebra relacional 1.8 Reunión natural 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| σcliente.nombre=Empleado.nombre(Cliente X Empleado) Cliente |X| Empleado 23
T3: Algebra relacional 1.8 Reunión natural (Cliente X Empleado) Empleado Cliente Resultado 24
T3: Algebra relacional 1.8 Reunión natural Esta sentencia es operador binario y para poder realizar correctamente la operación al menos un atributo de cada tabla debe coincidir en nombre. Cliente |X| Empleado Cliente Empleado Resultado 25
T3: Algebra relacional 1.8 Reunión natural σcliente.nom=Empleado.nom(Cliente X Empleado) Resultado 26
T3: Algebra relacional 1.9 Reunión Zeta 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|columna1=columna2 σcliente.nombre=Empleado.nombemp(Cliente X Empleado) Cliente |X|nombre=nombemp Empleado 27
T3: Algebra relacional 1.9 Reunión Zeta Esta sentencia es operador binario y para poder realizar correctamente la operación al menos un atributo de cada tabla debe coincidir en nombre. Cliente |X|nombre=nombemp Empleado Cliente Empleado Resultado 28
T3: Algebra relacional 1.10 Reunión Left 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| Cliente ]X| Empleado 29
T3: Algebra relacional 1.10 Reunión Left Cliente ]X| Empleado Cliente Empleado Resultado 30
T3: Algebra relacional 1.11 Reunión right 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[ Cliente |X[ Empleado 31
T3: Algebra relacional 1.11 Reunión Right Cliente |X[ Empleado Cliente Empleado Resultado 32
T3: Algebra relacional 1.11 Reunión Full 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[ Cliente ]X[ Empleado 33
T3: Algebra relacional 1.11 Reunión full Cliente ]X[ Empleado Persona Empleado Resultado 34
T3: Algebra relacional 1.12 Asignación Proyecta solo un conjunto especificado de atributos de toda la relación. Su símbolo es . Tempπ Nom (Persona) Persona Temp 35
T3: Algebra relacional Resumen 36
T3: Algebra relacional EJEMPLO FEDERACION (nombre_f,direccion,telefono) MIEMBRO (dni,nombre_m,titulacion) Composicion (nombre_f,dni,cargo,fecha_inicio) • 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)) 37