OPERACIONES FUNDAMENTALES DEL ÁLGEBRA...

30
OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

Transcript of OPERACIONES FUNDAMENTALES DEL ÁLGEBRA...

Page 1: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL

Bases de DatosIngeniería de Sistemas y Computación

Universidad Nacional de Colombia2007

Page 2: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Álgebra Relacional

Álgebra Relacional

El álgebra relacional es un lenguaje formal con una serie de operadores que trabajan sobre una o varias relaciones para obtener otra relación resultado, sin que cambien las relaciones originales.

Tanto los operandos como los resultados son relaciones, por lo que la salida de una operación puede ser la entrada de otra operación. Esto permite anidar expresiones del álgebra, del mismo modo que se pueden anidar las expresiones aritméticas.

Page 3: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Álgebra Relacional

Operaciones FundamentalesCodd, propuso 8 operadores, de los cuáles 5 son fundamentales:

SelecciónProyecciónProducto cartesianoUniónDiferencia

Los operadores no fundamentales:Concatenación (join)IntersecciónDivisión

Page 4: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Álgebra Relacional

Operaciones Fundamentales

Las operaciones fundamentales se subdividen en :

Unarias: Operan sobre una sola relación

Binarias: Operan sobre pares de relaciones

Page 5: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Unarias

Operaciones Fundamentales - Unarias

Las operaciones Unarias son:

Selección

Proyección

Renombramiento

Page 6: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Unarias

Ejemplo: Entidad BancariaCliente Cliente_Cuenta Prestamo

Cliente_Prestamo Sucursal Cuenta

Nombre_cliente

Direccion_cliente

Ciudad_cliente

Fernando Santos

Calle 13 No. 23-34

Bogota

Maria Plazas

Calle 123 No. 67-45

Cali

Nicolas Romero

Kra 45 No. 34-78

Bogota

Nombre_cliente

Numero_Cuenta

Fernando santos

123

Maria Plazas

55

Nicolas Romero

68

Numero_prestamo

Nombre_sucursal

Valor

11 Galerias 15000000

12 Centro 1000000

13 Salitre 50000000

Nombre_cliente

Numero_Prestamo

Fernando santos

11

Maria Plazas

12

Nicolas Romero

13

Nombre_Sucursal

Ciudad_sucursal

Activos

Galerias Bogota 256000000

Centro Cali 450000000

Salitre Medellin 600000000

Numero_cuenta

Nombre_sucursal

Saldo

101 Galerias 256000000

102 Centro 450000000

103 Salitre 600000000

Page 7: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Unarias

Operación Selección o Restricción

Selecciona tuplas que satisfacen un predicado dado. Corresponde a: “R WHERE condición”Se utiliza la letra griega sigma minúscula (σ) para denotar la selección. El predicado aparece como subíndice de σ. La relación del argumento se da entre paréntesis a continuación de σ.

Ejemplo: Seleccionar las tuplas de la relación préstamo en la sucursal «Galerías»

σnombre-sucursal = «Galerías» (préstamo)

Page 8: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Unarias

Operación SelecciónEjemplo: Hacer un listado de todos los empleados con

un salario anual superior a $20’000.000σsalario>20’000.000 (empleado)

Select… from Empleado WHERE salario>20’000.000

En general, se permiten las comparaciones que utilizan =, ≠, <, ≤, > o ≥ en el predicado de selección.

Ejercicio: σvalor >10’000.000 (préstamo)

Page 9: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Unarias

Operación Selección

Además, se pueden combinar varios predicadosen uno mayor utilizando las conectivas y (⋀) y o (⋁).

Ejemplo: Encontrar las tuplas correspondiente a préstamos de más de $10’000.000 concedidos por la sucursal de Galerías

Select… from préstamo WHERE nombre-sucursal=`Galerías' AND valor>10.000.000

σnombre-sucursal = «Galerías» ⋀ valor>10’0000.000 (préstamo)

Page 10: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Unarias

Operación ProyecciónDevuelve su relación de argumentos, excluyendo algunos argumentos. Dado que las relaciones son conjuntos, se eliminan todas las filas duplicadas.

La proyección se denota por la letra griega mayúscula pi (Π). Se crea una lista de los atributos que se desea que aparezcan en el resultado como subíndice de Π.

La relación de argumentos se escribe a continuación entre paréntesis.

Page 11: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Unarias

Operación ProyecciónSupóngase que se desea hacer una lista de todos los números de préstamo y del valor de los mismos, pero sin que aparezcan los nombres de las sucursales. La operación proyección permite producir esta relación.

Ejemplo: La consulta para crear una lista de todos los números de préstamo y del valor de los mismos:

Πnúmero-préstamo, valor (préstamo)

Page 12: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Unarias

Composición de operaciones relacionalesEs importante el hecho de que el resultado de una operación relacional sea también una relación.

Ejemplo: Realizar una consulta más compleja: «Encontrar los clientes que viven en Bogotá»Πnombre-cliente ( σciudad-cliente = «Bogotá» (cliente))

La composición de operaciones del álgebra relacional para formar expresiones del álgebra relacional es igual que la composición de operaciones aritméticas (como +, -, * y ÷) para formar expresiones aritméticas.

Page 13: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Unarias

La operación RenombramientoA diferencia de las relaciones de la base de datos, los resultados de las expresiones de álgebra relacional no tienen un nombre que se pueda utilizar para referirse a ellas. Resulta útil poder ponerles nombre; el operador renombramiento, denotado por la letra griega rho minúscula (ρ), permite realizar esta tarea.

Dada una expresión E del álgebra relacional, la expresión ρx(E) devuelve el resultado de la expresión E con el nombre x.

Page 14: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

La operación RenombramientoEjemplo:«Averiguar los nombres de todos los clientes que viven en la misma calle y en la misma ciudad que Romero». Se puede obtener la calle y la ciudad en la que vive Romero escribiendoΠcalle-cliente, ciudad-cliente (σnombre-cliente = «Romero» (cliente))

Page 15: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

La operación RenombramientoEn la consulta siguiente se utiliza la operación renombramiento sobre la expresión anterior para darle al resultado el nombre dirección-Romero y para cambiar el nombre de los atributos a calle y ciudad en lugar de calle-cliente y ciudad-cliente:

Πcliente.nombre-cliente (σcliente.calle-cliente = dirección-Romero ⋀cliente.ciudad-cliente = dirección-Romero.ciudad (cliente × ρdirección-

Romero (calle, ciudad) (Πcalle-cliente, ciudad-cliente (σnombre-

cliente = «Romero» (cliente)))))

Page 16: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Binarias

Operaciones Fundamentales - Binarias

Las operaciones Binarias son:

UniónDiferencia de conjuntosProducto cartesianoIntersecciónReunión naturalDivisiónAsignación

Page 17: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Binarias

Operación UniónRealizar una consulta para averiguar el nombre de todos los clientes del banco que tienen una cuenta, un préstamo o ambas cosas.Para contestar a esta consulta hace falta la información de la relación impositor y la de la relación prestatario:

Seleccionar los nombres de todos los clientes con préstamos en el banco:

Πnombre-cliente (cliente_prestamo)Seleccionar el nombre de los clientes con cuenta en el banco:

Πnombre-cliente (cliente_cuenta)

Page 18: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Binarias

Operación UniónPara contestar a la consulta hace falta la unión de estos dos conjuntos; es decir, hacen falta todos los nombres de clientes que aparecen en alguna de las dos relaciones o en ambas. Estos datos se pueden averiguar mediante la operación binaria unión, denotada, como en la teoría de conjuntos, por U. Por tanto, la expresión buscada es:

Πnombre-cliente (cliente_prestamo) U Πnombre-cliente (cliente_cuenta)

Page 19: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Binarias

Operación UniónPor tanto, para que una operación unión r U s 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 de s deben ser iguales para todo i.

Page 20: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Binarias

La operación diferencia de conjuntosLa operación diferencia de conjuntos, denotada por –, permite buscar las tuplas que estén en una relación pero no en la otra. La expresión r – s da como resultado una relación que contiene las tuplas que están en r pero no en s.

Ejemplo: Seleccionar todos los clientes del banco que tienen abierta una cuenta pero no tienen concedido ningún préstamo:

Πnombre-cliente(cliente_cuenta) – Πnombre-cliente (cliente_prestamo)

Page 21: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Binarias

La operación diferencia de conjuntosComo en el caso de la operación unión, hay que asegurarse de que las diferencias de conjuntos se realicen entre relaciones compatibles.

Por tanto, para que una operación diferencia de conjuntos r – s sea válida hay que exigir que las relaciones r y s sean de la misma aridad y que los dominios de los atributos i-ésimos de r y s sean iguales.

Page 22: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Binarias

La operación producto cartesianoLa operación producto cartesiano, denotada por (×), permite combinar información de cualesquiera dos relaciones. El producto cartesiano de las relaciones r1 y r2 como r1 × r2.

El producto cartesiano “multiplica" dos relaciones, definiendo una nueva relación que tiene todos los pares posibles de tuplas de las dos relaciones. Si la relación r1 tiene P tuplasy N atributos y la relación r2 tiene Q tuplas y M atributos, la relación resultado tendrá PxQ tuplas y M+N atributos.

Page 23: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Binarias

La operación producto cartesianoEjemplo: Seleccionar los nombres de todos los clientes que tienen un préstamo en la sucursal de Galerías. Se necesita información de las relaciones préstamo y cliente_prestamo:

σnombre-sucursal = «Galerías» (cliente_prestamo × préstamo)

Se tiene una relación que sólo atañe a la sucursal de Galerías. Sin embargo, la columna nombre-cliente puede contener clientes que no tengan concedido ningún préstamo en esta sucursal, debido a que el producto cartesiano toma todas las parejas posibles de una tupla de cliente_préstamocon una tupla de préstamo.)

Page 24: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Binarias

La operación producto cartesianoDado que la operación producto cartesiano asocia todas las tuplas de préstamo con todas las tuplas de clientes_prestamo, se sabe que, si un cliente tiene concedido un préstamo en la sucursal de Galerías, hay alguna tupla de cliente_prestamo × préstamo que contiene su nombre y que cliente_prestamo.número-préstamo = préstamo.número-préstamo. Por tanto:

σcliente_prestamo.número-préstamo = préstamo.número-préstamo (σnombre-sucursal = «Galerías» (cliente_prestamo × préstamo))

Page 25: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Operaciones Binarias

La operación producto cartesianosólo se obtienen las tuplas de cliente_prestamo × préstamoque corresponden a los clientes que tienen concedido un préstamo en la sucursal de Galerías.

Finalmente, dado que sólo se desea obtener nombre-cliente, se realiza la proyección:

Πnombre-cliente ( σcliente_prestamo.número-préstamo = préstamo.número-préstamo (σnombre-sucursal = «Galerias» (cliente_prestamo × préstamo)))

Page 26: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Otras Operaciones

Otras Operaciones del Algebra RelacionalIntersección de conjuntos (∩)Todos los clientes que tengan un préstamo concedido y una cuenta abierta:Πnombre-cliente (cliente_prestamo) ∩ Πnombre-cliente (cliente_cuenta)Reunión natural (X )Todos los clientes que tengan un préstamo concedido y una cuenta abierta:Πnombre-cliente (cliente_prestamo X cliente_cuenta)

Page 27: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Otras Operaciones

Otras Operaciones del Algebra RelacionalDivisión(%)Resulta adecuada para las consultas que incluyan la expresión “para todos”.Todos los clientes que tengan una cuenta abierta en todas las sucursales de Bogotá:R1=Obtener todas las sucursales de BogotáR2=Todos los pares (nombre_cliente, nombre_sucursal) para los clientes que tienen una cuenta en una sucursalR1=Πnombre-sucursal (σciudad-sucursal = «Bogotá» (Sucursal)) %R2=Πnombre-cliente,nombre-sucursal (cliente_cuenta X cuenta)

Page 28: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Otras Operaciones

Otras Operaciones del Algebra RelacionalOperación asignación ( )Actúa de la misma manera que en los lenguajes de programación.Temp1 ΠR-S (r)

Page 29: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Otras Operaciones

TareaEscribir o traducir las siguientes consultas en el algebra

relacional:1. Seleccionar las tuplas de la relación préstamo en

que la sucursal es «Centro»2. Encontrar los clientes que viven en Cali.3. Seleccionar los nombres de todos los clientes que

tienen concedido un préstamo en la sucursal del Centro.

4. Πnombre-cliente,numero_prestamo,valor(cliente_prestamo X prestamo)

5. Πnúmero-cuenta, saldo(cuenta)

Page 30: OPERACIONES FUNDAMENTALES DEL ÁLGEBRA …dis.unal.edu.co/~icasta/consejero/BD_Algebra_Relacional.pdf · Bases de Datos - 2007 Operaciones Binarias La operación producto cartesiano

Bases de Datos - 2007

Preguntas

Gracias por su Atención