Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación...

26
Algebra Relacional

Transcript of Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación...

Page 1: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

Algebra Relacional

Page 2: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

Algebra RelacionalEs 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.D

EF

INIC

IÓN:

SELECCIÓN,

PROYECCIÓN

UNIÓN

DIFERENCIA DE CONJUNTOS

PRODUCTO CARTESIANO

RENOMBRAMIENTO

Las operaciones fundamentales son:

UNARIAS: Operan

sobre una sola relación

BINARIAS: Operan sobre pares de relaciones

Page 3: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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)

Page 4: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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)

Page 5: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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)

Page 6: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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))

Page 7: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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 entidadAtributos o nombre del campo

Page 8: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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)

Page 9: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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)))

Page 10: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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

Page 11: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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

  Se utilizará un ejemplo para ir presentando los operadores y su semántica. Supongamos la relación clientes:

Page 12: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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

Page 13: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

Para determinar todas los clientes que se dieron de alta desde el año 1998 hasta la actualidad:

δ Fecha_Alta  '01/01/1998'(Clientes)

NroCli Nombre Fecha_Alta Saldo

2 Fernando 21/07/1998 -60

4 Alejandro 02/01/1999 90

Resultado:

Page 14: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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

Page 15: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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].

Page 16: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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

Page 17: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

• La siguiente consulta produce los pares de códigos Nombre, saldo:

Π nombre, saldo(Clientes)

Nombre Saldo

Enrique 100

Fernando -60

German 500

Alejandro 90

Page 18: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

• 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

Page 19: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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:

Page 20: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

Parciales

Materia Fecha

Logica 09/05/2001

Matemática 1 10/05/2001

Matemática 2 10/05/2001

Geometría 10/05/2001

Álgebra 10/05/2001

Datos I 11/05/2001

Datos II 11/05/2001

Programación I 11/05/2001

Programación II 12/05/2001

Compiladores 13/05/2001

Finales

Materia Fecha

Fisica 09/05/2001

Matemática 1 15/05/2001

Matemática 2 15/05/2001

Geometría 15/05/2001

Álgebra 15/05/2001

Datos I 16/05/2001

Datos II 16/05/2001

Programación I 16/05/2001

Programación II 17/05/2001

Compiladores 18/05/2001

Page 21: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

•  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 10/05/2001

Geometría 10/05/2001

Álgebra 10/05/2001

Datos I 11/05/2001

Datos II 11/05/2001

Programación I 11/05/2001

Programación II 12/05/2001

Compiladores 13/05/2001

Matemática 1 15/05/2001

Matemática 2 15/05/2001

Geometría 15/05/2001

Álgebra 15/05/2001

Datos I 16/05/2001

Datos II 16/05/2001

Programación I 16/05/2001

Programación II 17/05/2001

Compiladores 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.

Page 22: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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.

Page 23: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

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 χ SObtendremos el siguiente resultado:

Page 24: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

Materia Fecha Materia Fecha

Logica 09/05/2001 Fisica 09/05/2001

Logica 09/05/2001 Matemática 1 15/05/2001

Logica 09/05/2001 Matemática 2 15/05/2001

Logica 09/05/2001 Geometría 15/05/2001

Logica 09/05/2001 Álgebra 15/05/2001

Logica 09/05/2001 Datos I 16/05/2001

Logica 09/05/2001 Datos II 16/05/2001

Logica 09/05/2001 Programación I 16/05/2001

Logica 09/05/2001 Programación II 17/05/2001

Logica 09/05/2001 Compiladores 18/05/2001

Matemática 1 10/05/2001 Fisica 09/05/2001

Matemática 1 10/05/2001 Matemática 1 15/05/2001

Matemática 1 10/05/2001 Matemática 2 15/05/2001

Y sigue con el resto de las asignaturas…….

Page 25: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

• 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 Fecha

Matemática 1 10/05/2001 15/05/2001

Matemática 2 10/05/2001 15/05/2001

Geometría 10/05/2001 15/05/2001

Álgebra 10/05/2001 15/05/2001

Datos I 11/05/2001 16/05/2001

Datos II 11/05/2001 16/05/2001

Programación I 11/05/2001 16/05/2001

Programación II 12/05/2001 17/05/2001

Compiladores 13/05/2001 18/05/2001

Page 26: Algebra Relacional Las operaciones fundamentales son: UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones.

EJERCICIO

1. 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 cadauna de las siguientes consultas:a) Encontrar la compañía con mayor número de

empleadosb) Encontrar la compañía con la nómina (suma de

sueldos de sus empleados)más reducida.c) Encontrar las compañías cuyos empleados ganen un

sueldo elevado.