operaciones fundamentales del Álgebra...
Post on 20-Sep-2018
220 Views
Preview:
TRANSCRIPT
OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL
Bases de DatosIngeniería de Sistemas y Computación
Universidad Nacional de Colombia2007
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.
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
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
Bases de Datos - 2007
Operaciones Unarias
Operaciones Fundamentales - Unarias
Las operaciones Unarias son:
Selección
Proyección
Renombramiento
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
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)
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)
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)
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.
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)
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.
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.
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))
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)))))
Bases de Datos - 2007
Operaciones Binarias
Operaciones Fundamentales - Binarias
Las operaciones Binarias son:
UniónDiferencia de conjuntosProducto cartesianoIntersecciónReunión naturalDivisiónAsignación
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)
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)
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.
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)
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.
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.
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.)
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))
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)))
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)
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)
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)
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)
Bases de Datos - 2007
Preguntas
Gracias por su Atención
top related