Descarga la aplicación para disfrutar aún más
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)
Compartir