Logo Studenta

Algebra relacional

¡Este material tiene más páginas!

Vista previa del material en texto

Algebra Relacional
1
Algebra Relacional 
BD 
Relacional
COD_CLI NOMBRE CIUDAD DIRECCIÓN
C001 RAUL APURIMAC AV. PERU 1020
C002 JOSE CUSCO AV. CONSTITUCIÓN 100
C003 MARIA APURIMAC PSJE. 2 DE MAYO 122
REALIZA CONSULTAS
COD_CLI NOMBRE CIUDAD DIRECCIÓN
C001 RAUL APURIMAC AV. PERU 1020
C003 MARIA APURIMAC PSJE. 2 DE MAYO 122
RESULTADO
2
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.
Definición:
3
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
Las principales operaciones son las siguientes:
Algebra Relacional.
4
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)
5
Ejemplo:
 saldo 2000 (Deposito)
Otros ejemplos:  Nombre_Sucursal =Tacna  Saldo < 1000 (Deposito)
Algebra Relacional –Operadores Relacionales
Comparaciones: =, , > , <, , .
Conectores: , .
6
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)
7
Ejemplo:
nombre_sucursal,nombre_cliente(Deposito)
Otros ejemplos: nombre_cliente( Nombre_Sucursal=Arequipa (Deposito))
Algebra Relacional –Operadores Relacionales
8
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
A
a1
a2
a3
B
b1
b2
R1
R2
A B
a1 b1
a1 b2
a2 b1
a2 b2
a3 b1
a3 b2
X
R3
9
Ejemplo: R1 = Servicio y R2 = Clientes
Nombre_Cliente Nombre_Banco
Juan Romero
Pérez Wiese
Roberto Romero
Nombre_Cliente Calle Ciudad_Cliente
Pérez Bolognesi Tacna
Juan 2 de Mayo Tacna
José Bolognesi Tacna
Pedro Arias y Aragüez Tacna
Sandro Enmel Arequipa
Relación Clientes
Relación Servicio
Algebra Relacional –Operadores Relacionales
10
Resultado de (Servicio X Clientes)
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
11
Aplicación de (Servicio X Clientes)
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 Clientes
Nombre_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
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
14
Se desea conocer el nombre del cliente y nombre del banco, de los clientes que
viven en la ciudad de Tacna y en la calle Bolognesi o 2 de mayo
Servicio.nombre_cliente,Servicio.Nombre_Banco(Servicio.nombre_cliente=Clientes.no
mbre_cliente(Cliente.Calle=“Bolognesi”  Cliente. Ciudad_cliente = “Tacna”(Servicio 
x Clientes)))
U
Servicio.nombre_cliente,Servicio.Nombre_Banco(Servicio.nombre_cliente=Clientes.no
mbre_cliente(Cliente. Calle=“2 de mayo”  Cliente. Ciudad_cliente = “Tacna”(Servicio 
x Clientes)))
Algebra Relacional –Operadores Relacionales
15
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.
E# Nombre Edad
320 José 34
322 Rosa 37
323 María 25
E# Nombre Edad
320 José 34
421 Jorge 48
E# Nombre Edad
320 José 34
322 Rosa 37
323 María 25
421 Jorge 48
Ingeniero
Jefe
Ingeniero_Jefe
U
16
Ejemplo
“Encontrar a todos los clientes de la sucursal 2 de Mayo”.
R1=Préstamo
R2=Depósito
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
17
Unión:
1.- Encontrar Clientes con un Préstamo en 2 de Mayo.
Nombre_Cliente(Nombre_Sucursal=”2 de Mayo” (Préstamo))
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_Cliente
Juan
Pedro
Ramón
18
1.- Obtener los nombres de los empleados que ganan mas de $1.500.000 o que
trabajan en el departamento con código A1.
2.- Encontrar a los empleados que
trabajan en el área de marketing y
que su remuneración sea mayor a
600.000
Ejercicio
19
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
E# Nombre Edad
320 José 34
322 Rosa 37
323 María 25
E# Nombre Edad
320 José 34
421 Jorge 48
E# Nombre Edad
322 Rosa 37
323 María 25
Ingeniero
Jefe
Ingeniero - Jefe
E# Nombre Edad
421 Jorge 48
Jefe - Ingeniero
20
Nombre_Cliente(Nombre_Sucursal=”2de Mayo” (Depósito)) -
Nombre_Cliente(Nombre_Sucursal=”2 de Mayo” (Préstamo))
Nombre_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.
21
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)
E# Nombre Edad
320 José 34
322 Rosa 37
323 María 25
E# Nombre Edad
320 José 34
421 Jorge 48
E# Nombre Edad
320 José 34
Ingeniero
Jefe
Ingeniero_Jefe
∩
22
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
23
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
A B
a1 b1
a2 b2
a3 b3
R1
A B C
a1 b1 c1
a2 b2 c2

R3
B C
b1 c1
b2 c2
b4 c4
R2
24
Algebra Relacional –Operadores Relacionales
Ejemplo:
Averiguar los nombres de todos los clientes que tienen
concedido un préstamo, la cantidad del importe y la
sucursal donde se lo otorgaron
25
Cliente
Nombre Nro_Prestamo
Santos P017
Gómez P023
López P015
Soto P014
Pérez P093
Gómez P011
Fernández P016
Préstamo
Nro_Prestamo Nom_Sucursal Importe
P017 Miraflores 200000
P023 Vitarte 400000
P015 Lima Cercado 300000
P014 Chacarilla 300000
P093 Primavera 100000
P011 Surquillo 180000
P016 La Molina 260000
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 A B
a1 b1
a1 b4
a2 b1
a3 b4
R1
A
a1
/
R3
B
b1
b4
R2
26
Algebra Relacional –Operadores Relacionales
Ejemplo
27
Algebra Relacional –Operadores Relacionales
Ejemplo
Hallar a todos los clientes que tengan abierta una cuenta 
en todas las sucursales de surco.
28
Sucursal
Nom_Sucursal Nom_Distrito
Miraflores Miraflores
Vitarte Ate
Lima Cercado Lima
Chacarilla Surco
Primavera Surco
Surquillo Surquillo
La Molina La Molina
Cuenta
Nom_Sucursal Cuenta Saldo
Chacarilla C101 100000
Vitarte C215 140000
Lima Cercado C102 80000
Chacarilla C305 70000
Primavera C201 180000
Surquillo C222 140000
La Molina C217 150000
Titular_Cuenta
Nom_Cliente Cuenta
Gonzales C101
Gómez C215
López C102
Abril C305
Gonzales C201
Santos C217
Rodríguez C222
 Nom_Cliente, Nom_Sucursal (Titular_Cuenta Cuenta) / 
 Nom_sucursal ( Nom_Distrito = ´Surco´(Sucursal))
29
Representar en Algebra relacional:
a) Obtener el nombre de los empleados que hayan repartido a la tienda “Don Jorge” durante la semana del 17
al 23 de octubre de 2013.
b) Obtener el nombre de la tienda y el RUC de las Tiendas a los que se ha repartido gaseosa de tipo Botella y
capacidad igual e inferior a 1 lt.
c) Obtener los repartos (nombre de la tienda, envase y capacidad de la bebida, fecha y cantidad) realizados
por José.
d) Obtener el nombre de las tiendas a los que se les ha repartido envases de tipo botella y capacidad 1lt ó 0,5lt
30
a) Obtener el nombre de los empleados que hayan repartido a la tienda “Don Jorge” durante la semana del 17 al 23 de octubre de
2013.
P empleado.nombre (
(S tienda.nombre=”Don Jorge” and reparto.fecha<=”23/10/2013” (tienda join reparto) -
S tienda.nombre=”Don Jorge” and reparto.fecha<”17/10/2013” (tienda join reparto))join empleado))
a) Obtener el nombre de la tienda y el RUC de las Tiendas a los que se ha repartido gaseosa de tipo Botella y capacidad igual e
inferior a 1 lt.
P tienda.nombre, tienda.RUC
(S gaseosa.envase =”botella” and gaseosa.capacidad<=”1lt” (gaseosa join reparto)join Tienda)
a) Obtener los repartos (nombre de la tienda, envase y capacidad de la bebida, fecha y cantidad) realizados por Jose.
P tienda.nombre, gaseosa.envase, gaseosa.capacidad, reparto.fecha, reparto.cantidad
((S empleado.nombre=”Jose” (empleado join reparto) join gaseosa) join tienda)
a) Obtener el nombre de las tiendas a los que se les ha repartido envases de tipo botella y capacidad 1lt ó 0,5lt
P tienda.nombre
(S gaseosa.envase=”botella” and gaseosa.capacidad=”1lt” (gaseosa join reparto) join tienda) U
P tienda.nombre
(S gaseosa.envase=”botella” and gaseosa.capacidad=”0,5lt” (gaseosa join reparto) join tienda)

Otros materiales

Materiales relacionados

193 pag.
Programa-2CIMA

BUAP

User badge image

Estudiando Y Aprendendo

17 pag.
8 pag.
200315-BOcba-4s27F3

User badge image

Aprenda y Aprenda

29 pag.
Desafios na Educação Média

User badge image

Los Mejores Apuntes