La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Algebra Relacional.

Presentaciones similares


Presentación del tema: "Algebra Relacional."— Transcripción de la presentación:

1 Algebra Relacional

2 Algebra Relacional Es un lenguaje de consulta procedimental, consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación. Definición: Las operaciones fundamentales son: SELECCIÓN, PROYECCIÓN UNIÓN DIFERENCIA DE CONJUNTOS PRODUCTO CARTESIANO RENOMBRAMIENTO UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones

3 Operaciones Fundamentales:
selección Selecciona tuplas que satisfacen un predicado dado. Se utiliza la letra griega sigma δ para denotarla. El predicado aparece como subíndice de δ. La relación del argumento se da entre paréntesis a continuación de δ. EJM: Para seleccionar las tuplas de la relación PRESTAMO en que la sucursal es CARACAS hay que escribir: δnombre –sucursal = << caracas>>( préstamo)

4 EJM: Se pueden buscar todas las tuplas en las que el importe sea mayor que 1200
δimporte> 1200( préstamo) Se permiten comparaciones tales como: =, ≠, <,≤,>,≥, en el predicado de selección. Además se pueden combinar varios predicados en uno mayor utilizando los conectivos: y (٨) y o (٧). EJM: Encontrar las tuplas correspondientes a préstamos de más de 1200 concedidos por la sucursal de Caracas. δnombre –sucursal = << caracas>> ٨ importe> 1200( préstamo)

5 PROYECCIÓN Devuelve su relación de argumentos, excluyendo algunos, dado que las relaciones son conjuntos se eliminan todas las filas duplicadas. Se denota con la letra griega mayúscula pi (Π). Se crea una lista de atributos que desea que aparezcan el resultado como subíndice de Π, la relación del argumento se escribe dentro del paréntesis. EJM: Consulta para crear una lista de todos los números de préstamos y del importe. Π número –prestamo,importe( préstamo)

6 También se pueden combinar a lo cual se le llama COMPOSICIÓN DE OPERACIONES RELACIONALES.
EJM: Encontrar los clientes que viven en Maracaibo. Π nombre –cliente(δciudad –cliente = << Maracaibo>> ( cliente))

7 Atributos o nombre del campo
unión Consulta para unir información de tablas distintas. Se debe considerar: a) Las relaciones r y s deben tener el mismo número de atributos. b)Los dominios de los atributos deben ser iguales EJM: Consulta para encontrar el nombre de todos los clientes del banco que tienen una cuenta, un préstamo o ambas cosas. Π nombre –cliente (prestatario)U Π nombre –cliente (impostor) Nombre de la entidad Atributos o nombre del campo

8 Diferencia de conjuntos
Denotada por – permite buscar las tuplas que estén en una relación pero no en otras. Se deben realizar en relaciones compatibles (sigue las mismas reglas de la unión) EJM: Buscar todos los clientes del banco que tienen abierta una cuenta pero no tienen concedido ningún préstamo. Π nombre –cliente (impostor) -Π nombre –cliente (prestatario)

9 Producto cartesiano Denotada por aspa (x) permite combinar información de dos relaciones cualquieras. EJM: Consultar todos los nombres de todos los clientes que tienen concedido un préstamo en la sucursal de Caracas. Π nombre –cliente ( δprestatario.numero-préstamo=préstamo.número-prestamo(δnombre –sucursal = << caracas>> (prestatario x préstamo)))

10 renombramiento Los resultados de las expresiones del algebra relacional no tienen un nombre que se pueda utilizar para referirse a ellas, lo cual resulta útil. Este operador denotado por: rho minúscula (ρ) permite hacerlo. EJM: Dada la expresión E seria: ρx(E). Lo cual devuelve el resultado con el nombre x

11 Supongamos la relación clientes:
  Se utilizará un ejemplo para ir presentando los operadores y su semántica. Supongamos la relación clientes: NroCli Nombre Fecha_Alta Saldo 1 Enrique 14/09/1996 100 2 Fernando 21/07/1998 -60 3 German 19/12/1994 500 4 Alejandro 02/01/1999 90

12 δ saldo>0(Clientes)
Selección   El primer operador que se va a presentar es la Selección σ. Este es un operador unario, por lo que toma como operando a una sola relación y su valor es cierto subconjunto de las tuplas de esa relación. Por ejemplo, si queremos saber cuáles clientes tienen saldo positivo, la sentencia: Resultado: δ saldo>0(Clientes) NroCli Nombre Fecha_Alta Saldo 1 Enrique 14/09/1996 100 3 German 19/12/1994 500 4 Alejandro 02/01/1999 90

13 δ Fecha_Alta '01/01/1998'(Clientes)
Para determinar todas los clientes que se dieron de alta desde el año 1998 hasta la actualidad: δ Fecha_Alta  '01/01/1998'(Clientes) Resultado: NroCli Nombre Fecha_Alta Saldo 2 Fernando 21/07/1998 -60 4 Alejandro 02/01/1999 90

14 La condición puede se tan compleja como sea necesario, por ejemplo, lista los clientes que tienen saldo negativo y se han dado de alta durante el año 1998: δ Saldo<0 ^ Fecha_Alta  '01/01/1998' ^  Fecha_Alta  '31/12/1998'(Clientes) NroCli Nombre Fecha_Alta Saldo 2 Fernando 21/07/1998 -60

15 El operador σ podríamos definirlo de la siguiente manera:    Sea Φ una fórmula booleana cuyos operandos son números de columna o constantes, combinados con los comparadores =, !=, <, >, ³, £, y los operadores lógicos Ù (conjunción), Ú (disyunción), y ~ (negación). Entonces δ Φ(R) se define como el conjunto de tuplas en R tales que la fórmula Φ es cierta si substituimos cada ocurrencia de un número de columna J por t[j].

16 Proyección Así como la selección extrae un subconjunto de tuplas, el próximo operador llamado proyección y denotado Õ extrae un subconjunto de las columnas. Por ejemplo, si queremos una lista de los distintos saldos que hay en las cuentas de nuestros clientes, la consulta Π saldo(Clientes) produce una relación cuya única columna es saldo y que contiene una tupla por cada valor distinto de saldo que aparece en clientes Saldo 100 -60 500 90

17 Π nombre, saldo(Clientes)
La siguiente consulta produce los pares de códigos Nombre, saldo: Π nombre, saldo(Clientes) Nombre Saldo Enrique 100 Fernando -60 German 500 Alejandro 90

18 Πnombre(δsaldo>0(Clientes))
Como el resultado de aplicar un operador algebraico es siempre una relación, es posible componer operadores, formando expresiones. Por ejemplo, la siguiente consulta nos dará los nombres de los clientes que tiene un saldo positivo: Πnombre(δsaldo>0(Clientes)) Nombre Enrique German Alejandro

19 Unión Dado que una relación es un conjunto de tuplas, podemos aplicar a dos relaciones las operaciones booleanas habituales aplicables a conjuntos. En particular, vamos a utilizar la union y la diferencia.   Para ello crearemos dos relaciones, f_parciales, con fechas de exámenes parciales y f_finales, con fechas de exámenes finales:

20 Finales Materia Fecha Fisica 09/05/2001 Matemática 1 15/05/2001 Matemática 2 Geometría Álgebra Datos I 16/05/2001 Datos II Programación I Programación II 17/05/2001 Compiladores 18/05/2001 Parciales Materia Fecha Logica 09/05/2001 Matemática 1 10/05/2001 Matemática 2 Geometría Álgebra Datos I 11/05/2001 Datos II Programación I Programación II 12/05/2001 Compiladores 13/05/2001

21  Si ahora necesitamos un listado de todas las materias, con sus fechas de exámenes, con la consulta: f_parciales È f_finales Materia Fecha Logica 09/05/2001 Matemática 1 10/05/2001 Matemática 2 Geometría Álgebra Datos I 11/05/2001 Datos II Programación I Programación II 12/05/2001 Compiladores 13/05/2001 15/05/2001 16/05/2001 17/05/2001 18/05/2001 Formalmente, si R y S son dos relaciones del mismo rango, R È S es el conjunto de tuplas que pertenecen a R o a S.

22 Diferencia La operación diferencia nos permite extraer tuplas qhe no satisfagan cierta propiedad. Por ejemplo, supongamos que queremos hallar las materias que tienen la fecha de parcial pero no la de final. Con la siguiente consulta: Õmateria(f_parciales) - Õmateria (f_finales)    Obtendremos el resultado: Materia Fecha Lógica 09/05/2001 Formalmente, si R y S son dos relaciones del mismo rango, R - S es el conjunto de todas las tuplas que pertenecen a R pero no a S.   Notemos que la operación booleana de intersección de conjuntos se puede sintetizar usando la diferencia, mediante la identidad: R ∩ S = R - (R - S) donde R ∩ S denota todas tuplas que pertenecen a R y también a S.

23 Producto Cartesiano     Hasta ahora no hemos visto ningún operador que nos permita tomar una tupla u extenderla agregándole información proveniente de otra tupla en otra relación. Esta es la función del producto cartesiano. Dadas dos relaciones R y S de rango r y s respectivamente, el producto cartesiano es una relación de rango r + s conteniendo todas las tuplas cuyas r primeras columnas formen una tupla que pertenece en R y cuyas s restantes columnas forman una tupla que pertenece a S.   Si hacemos la siguiente consulta: R χ S Obtendremos el siguiente resultado:

24 Materia Fecha Logica 09/05/2001 Fisica Matemática 1 15/05/2001 Matemática 2 Geometría Álgebra Datos I 16/05/2001 Datos II Programación I Programación II 17/05/2001 Compiladores 18/05/2001 10/05/2001 Y sigue con el resto de las asignaturas…….

25 En general, el resultado de un producto cartesiano no será de interés en sí mismo, sino que le aplicaremos otros operadores para obtener la respuesta deseada. Por ejemplo, supongamos una consulta, en la cual necesitemos listar, para cada materia, su fecha de parcial y su fecha de final: Õf_parciales.Materia, f_parciales.fecha, f_finales.fecha(σf_parciales.materia=f_finales.materia(f_parciales χ f_finales)) Materia Fecha Matemática 1 10/05/2001 15/05/2001 Matemática 2 Geometría Álgebra Datos I 11/05/2001 16/05/2001 Datos II Programación I Programación II 12/05/2001 17/05/2001 Compiladores 13/05/2001 18/05/2001

26 ejercicio Considere la siguiente base de datos relacional:
Empleado(nombre-empleado, calle, ciudad) Trabaja(nombre-empleado, nombre-empresa, sueldo) Empresa(nombre-empleado, ciudad) Jefe(nombre-empleado, nombre-jefe). Dese una expresión del algebra relacional para cada una de las siguientes consultas: Encontrar la compañía con mayor número de empleados Encontrar la compañía con la nómina (suma de sueldos de sus empleados)más reducida. Encontrar las compañías cuyos empleados ganen un sueldo elevado.


Descargar ppt "Algebra Relacional."

Presentaciones similares


Anuncios Google