7. algebra relacional
TRANSCRIPT
19/11/2012
1
Algebra Relacional
Algebra Relacional.
Es un lenguaje de procedimientos de alto nivel que
permite, mediante el uso de ciertos operadores, derivar
nuevas relaciones deseadas a partir de las relaciones del
modelo relacional.
Elementos del Algebra Relacional:
• Sus operandos son relaciones (instancias) o variables que
representan relaciones.
• Sus operadores están diseñados para manipular las
relaciones en una base de datos.
2
Definición:
19/11/2012
2
Operaciones Fundamentales:
• Selección, proyección, producto cartesiano,
unión y diferencia de conjuntos
Otras Operaciones fundamentales:
• Intersección, Reunión Natural (JOIN) y División
3
Las principales operaciones son las siguientes:
Algebra Relacional.
Algebra Relacional – Operadores Relacionales
Selección
Selecciona tuplas que satisfacen un predicado dado.
Usando la letra griega Sigma (σ) para indicar la
selección”. El predicado aparece como subíndice de σ.
Símbolo: Sigma (σ)Termino común: (Where)
σσσσ condición(Relación)
4
19/11/2012
3
5
Ejemplo:σσσσ saldo≤≤≤≤ 2000 (Deposito)
Otros ejemplos: σσσσ Nombre_Sucursal =Tacna ∧∧∧∧ Saldo < 1000 (Deposito)
Algebra Relacional – Operadores Relacionales
Comparaciones: =, ≠≠≠≠, > , <, ≥≥≥≥, ≤≤≤≤.
Conectores: ∧∧∧∧, ∨∨∨∨.
Algebra Relacional – Operadores Relacionales
Proyección
“La operación Proyección permite extraer atributos
específicos de una relación dada.
Se indica por una letra griega Pi (π)”. El predicado aparece
como subíndice de π.
Símbolo: Pi (π)Termino común: (SELECT)
ππππatributo_1, atributo_2, …, atributo_N (Relación)6
19/11/2012
4
7
Ejemplo:
ππππnombre_sucursal,nombre_cliente(Deposito)
Otros ejemplos: ππππnombre_cliente(σσσσ Nombre_Sucursal=Arequipa (Deposito))
Algebra Relacional – Operadores Relacionales
Algebra Relacional – Operadores Relacionales
Producto Cartesiano
Dada dos relaciones especificas, se construye una tercera
relación que contiene todas las combinaciones posibles de
tuplas, una de cada una de las relaciones.
Esta representada por una Cruz (X).
Se representa de la siguiente forma: R1 y R2 con R1 x R2
8
19/11/2012
5
9
Ejemplo: R1 = Servicio y R2 = Clientes
Nombre_Cliente Nombre_BancoJuan RomeroPérez WieseRoberto Romero
Nombre_Cliente Calle Ciudad_ClientePérez Bolognesi TacnaJuan 2 de Mayo TacnaJosé Bolognesi TacnaPedro Arias y Aragüez TacnaSandro Enmel Arequipa
Relación Clientes
Relación Servicio
Algebra Relacional – Operadores Relacionales
Resultadode (ServicioX Clientes)
10
Servicio Servicio Clientes Clientes Clientes
Nombre_cliente Nombre_Banco Nombre_Cliente Calle Ciudad_Cliente
Juan Romero Pérez Bolognesi Tacna
Juan Romero Juan 2 de Mayo Tacna
Juan Romero José Bolognesi Tacna
Juan Romero Pedro Arias y Aragüez Tacna
Juan Romero Sandro Enmel Arequipa
Pérez Wiese Pérez Bolognesi Tacna
Pérez Wiese Juan 2 de Mayo Tacna
Pérez Wiese José Bolognesi Tacna
Pérez Wiese Pedro Arias y Aragüez Tacna
Pérez Wiese Sandro Enmel Arequipa
Roberto Romero Pérez Bolognesi Tacna
Roberto Romero Juan 2 de Mayo Tacna
Roberto Romero José Bolognesi Tacna
Roberto Romero Pedro Arias y Aragüez Tacna
Roberto Romero Sandro Enmel Arequipa
Algebra Relacional – Operadores Relacionales
19/11/2012
6
Aplicación de (Servicio X Clientes)
11
Queremos conocer a todos los clientes del banco Wiese, así como las
ciudades en las que viven estos clientes.
Paso # 1: Seleccionamos Nombre_banco=“Wiese” de Servicio X Clientes.
σσσσNombre_banco=”Wiese”(Servicio x Clientes)
Servicio Servicio Clientes Clientes ClientesNombre_cliente Nombre_Banco Nombre_Cliente Calle Ciudad_Cliente
Pérez Wiese Pérez Bolognesi Tacna
Pérez Wiese Juan 2 de Mayo Tacna
Pérez Wiese José Bolognesi Tacna
Pérez Wiese Pedro Arias y Aragüez Tacna
Pérez Wiese Sandro Enmel Arequipa
El resultado es:
Algebra Relacional – Operadores Relacionales
12
Paso # 2: Seleccionamos Servicio.Nombre_Cliente = Clientes.Nombre_Cliente de la
consulta anterior. Entonces tenemos:
σσσσServicio.Nombre_Cliente = Clientes.Nombre_Clientes(σσσσNombre_banquero=”Wiese”
(Servicio x Cliente))
El resultado es:
Servicio Servicio Clientes Clientes Clientes
Nombre_cliente Nombre_Banquero Nombre_Cliente Calle Ciudad_Cliente
Pérez Wiese Pérez Bolognesi Tacna
Algebra Relacional – Operadores Relacionales
19/11/2012
7
13
Paso # 3: Proyectamos los campos que deseamos conocer, por ejemplo si sólo
deseamos conocer el nombre y la ciudad del cliente. Entonces tendremos que hacer
la siguiente consulta:
πServicio.nombre_cliente,Clientes.ciudad_cliente(σServicio.nombre_cliente=Clientes.nom
bre_cliente(σNombre_banquero=”Wiese”(Servicio x Clientes)))
El resultado es:
Servicio Clientes
Nombre_Cliente Ciudad_cliente
Pérez Tacna
Algebra Relacional – Operadores Relacionales
Algebra Relacional – Operadores Relacionales
Unión
La unión es una operación que, a partir de dos relaciones, obtiene una
nueva relación formada por todas las tuplas que están en alguna de las
relaciones de partida.
Símbolo: Unión (U)
Notación: T ∪ S.
Restricciones para realizar la unión:
• Ambas relaciones deben tener el mismo número de atributos.
• El dominio del atributo i-ésimo de cada relación debe coincidir.
14
19/11/2012
8
Ejemplo
“Encontrar a todos los clientes de la sucursal 2 de Mayo”.
R1=Préstamo
R2=Depósito
15
Nombre_Sucursal Número_Cuenta Nombre_Cliente Saldo
2 de Mayo 1000 Juan 1000
Central 1115 José 2050
Coronel Mendoza 2550 Pérez 5000
Central 2560 Sandro 10000
2 de Mayo 3040 Pedro 10000
Nombre_Sucursal Número_Préstamo Nombre_Cliente Cantidad
2 de Mayo 01 Juan 10000
2 de Mayo 17 Ramón 50000
Central 15 José 10000
Coronel Mendoza 20 Pérez 15000
Relación Depósito
Relación Préstamo
Algebra Relacional – Operadores Relacionales
Unión:1.- Encontrar Clientes con un Préstamo en 2 de Mayo.
πNombre_Cliente(σNombre_Sucursal=”2 de Mayo” (Préstamo))
16
2.- Encontrar Clientes con una cuenta en la sucursal 2 de Mayo.
πNombre_Cliente(σNombre_Sucursal=”2 de M\ayo” (Depósito))
πNombre_Cliente(σNombre_Sucursal=”2 de Mayo” (Préstamo)) ∪πNombre_Cliente(σNombre_Sucursal=”2 de Mayo” (Depósito))
Nombre_Cliente
Juan
Ramón
Nombre_Cliente
Juan
Pedro
Nombre_ClienteJuanPedroRamón
19/11/2012
9
Obtener los nombres de los empleados que ganan mas de $1.500.000 o que
trabajan en el departamento con código A1.
17
La diferencia es una operación que, a partir de dos relaciones, obtiene
una nueva relación formada por todas las tuplas que están en la
primera relación y, en cambio, no están en la segunda.
Símbolo: Diferencia ( - )
Notación: T – S.
Algebra Relacional – Operadores Relacionales
Diferencia
18
19/11/2012
10
πNombre_Cliente(σNombre_Sucursal=”2 de Mayo” (Depósito)) -
πNombre_Cliente(σNombre_Sucursal=”2 de Mayo” (Préstamo))
19Nombre_Cliente
Pedro
Algebra Relacional – Operadores Relacionales
Nombre_Sucursal Número_Cuenta Nombre_Cliente Saldo
2 de Mayo 1000 Juan 1000
Central 1115 José 2050
Coronel Mendoza 2550 Pérez 5000
Central 2560 Sandro 10000
2 de Mayo 3040 Pedro 10000
Nombre_Sucursal Número_Préstamo Nombre_Cliente Cantidad
2 de Mayo 01 Juan 10000
2 de Mayo 17 Ramón 50000
Central 15 José 10000
Coronel Mendoza 20 Pérez 15000
Relación Depósito
Relación Préstamo
Ejemplo: Los Clientes que tengan Depósito pero que no tengan Préstamo y que sean de 2 de Mayo.
Algebra Relacional – Operadores Relacionales
Intersección
La intersección es una operación que a partir de dos relaciones,
obtiene una nueva relación formada por las tuplas que pertenecen a
las dos relaciones de partida.
Símbolo: Intersección (∩ )
Notación: T ∩ S.
Equivalencia: T ∩ S = T - ( T – S)
20
19/11/2012
11
21
πNombre_Cliente(σNombre_Sucursal=”Central” (Depósito)) ∩πNombre_Cliente(σNombre_Sucursal=”Central” (Préstamo))
Ejemplo
Encontrar a todos los clientes con un préstamo y una cuenta en la
sucursal Central.
Nombre_Cliente
José
Algebra Relacional – Operadores Relacionales
Algebra Relacional – Operadores Relacionales
Fusión (join) o Reunión Natural
Dados dos relaciones especificas, construye una tercera
relación que combina ciertas selecciones, proyección y un
producto cartesiano en una sola operación
Símbolo: ΘNotación: R1 Θ R2
22
19/11/2012
12
Algebra Relacional – Operadores Relacionales
Ejemplo:
Averiguar los nombres de todos los clientes que tienen
concedido un préstamo, el importe de este y la sucursal
donde se lo otorgaron
23
Algebra Relacional – Operadores Relacionales
División o Cociente
Dadas R1 y R2 donde R2⊆ R1 (la cabecera de R2 es un subconjunto de
la cabecera R1), donde se construye una nueva relación formada por
los atributos de R1 que no están en R2, donde los valores de los
atributos concuerdan con todos los valores de la relación R2.
El grado (R1) > grado (R2)
Símbolo: División ( / )
Notación: R1 / R2
24
19/11/2012
13
Algebra Relacional – Operadores Relacionales
Ejemplo
25
Algebra Relacional – Operadores Relacionales
Ejemplo
Hallar a todos los clientes que tengan abierta una cuenta
en todas las sucursales de surco.
26