Upload
leonardo-hipolito
View
13
Download
3
Embed Size (px)
Citation preview
IBD
Clase 14
UNLP - Facultad de InformáticaIBD - CLASE 142
Lenguajes de consulta
Lenguajes de consulta: utilizados para operar con la BD.Procedurales: (instrucciones para realizar
secuencia de operaciones) (qué y cómo)No procedurales: (solicita directamente la
información deseada) (qué).
Nos concentraremos primero en las consultas, dejando de lado updates.
UNLP - Facultad de InformáticaIBD - CLASE 143
Lenguajes de consulta
Álgebra Relacional: Lenguaje de consultas procedural Operaciones de uno o dos relaciones de entrada que
generan una nueva relación como resultado
Operaciones fundamentales• Unitarias
• Selección• Proyección• Renombre
• Binarias• Producto cartesiano• Unión • diferencia
UNLP - Facultad de InformáticaIBD - CLASE 144
Lenguajes de consulta
• Supongamos la tabla• Prestamo = (nombre_sucursal, monto, dirección)
• Selección: Operador • Selecciona tuplas que satisfacen un predicado dado.• La condición puede tener conectivos lógicos (And,
Or, Not) y operadores de comparación <>, >, <, >=, <=, =
• Ej1: prestamos otorgados por la sucursal XXX.• Ej2: prestamos otorgados por la sucursal XXX y con
monto superior a 1200$
UNLP - Facultad de InformáticaIBD - CLASE 145
Lenguajes de consulta
• Proyección: Operador • Devuelve la relación argumento con
columnas omitidas. Si quedan tuplas repetidas se excluyen.
• Ej3: nombres de sucursal que figuran en préstamo
• Ej4: sucursal cuyo monto sea superior a $10000.
UNLP - Facultad de InformáticaIBD - CLASE 146
Lenguajes de consulta
• Producto Cartesiano: Operador xx• Conecta dos entidades de acuerdo a la
definición matemática de la operación. • Tabla Cliente = (nombre_cte, dirección,
tel) Opera = (nombre_cte, nombre_banquero, monto)
• Ej5: cada cliente con sus datos personales y banquero que opera.
• Ej6: todos los clientes y su dirección, que operan con el banquero YYY.
UNLP - Facultad de InformáticaIBD - CLASE 147
Lenguajes de consulta
• Renombrar: Operación • Permite utilizar la misma tabla en un (por ej.)
producto cartesiano. • Tabla Cliente = (nombre_cte, dirección, tel)• Ej7: clientes que viven en la misma dirección
que el cliente ZZZ
UNLP - Facultad de InformáticaIBD - CLASE 148
Lenguajes de consulta
• Unión: Operación • Equivalente a la unión matemática.• Las instancias repetidas se eliminan
automáticamente.• Las dos tablas deben ser de unión
compatibles• Igual cantidad de atributos• i-ésimo atributo de 1º tabla y i-ésimo atributo de 2º
tabla deben tener el mismo dominio (i:1..n)
• Ej8: clientes que tengan cta corriente o caja ahorro en la sucursal xxx
UNLP - Facultad de InformáticaIBD - CLASE 149
Lenguajes de consulta
• Diferencia: Operación --• Equivalente a diferencia de Conjuntos. • Las dos tablas deben ser de unión
compatibles• Ej9: Clientes de la sucursal xxx que tienen
tiene ctacte y no tienen caja ahorro
UNLP - Facultad de InformáticaIBD - CLASE 1410
Lenguajes de consulta Definición de Álgebra Relacional:
Una expresión básica en AR consta deUna relación de una Base de DatosRelación constante
Una expresión general se construye a partir de sub-expresiones (E1,E2,...En)
Expresiones:• E1 E2• E1 - E2• E1 x E2 p(E1) P predicado con atributos en E1 s (E1) S lista de atributos de E1 x (E1) X nuevo nombre de E1
UNLP - Facultad de InformáticaIBD - CLASE 1411
Lenguajes de consulta
Álgebra Relacional
Operaciones Adicionales: no añaden potencia, solo simplifican consultas comunes
• Intersección• Producto Natural• División• Asignación
UNLP - Facultad de InformáticaIBD - CLASE 1412
Lenguajes de consulta
Intersección: Operación
• Equivalente a la Intersección matemática.
• Se puede definir en funcion de la Unión y Diferencia
• Ej10: Clientes de la sucursal xxx que tienen tiene ctacte y tienen caja ahorro
UNLP - Facultad de InformáticaIBD - CLASE 1413
Lenguajes de consulta
Producto Natural: Operación |x||x|• Realiza el producto cartesiano con una
selección de tuplas “con sentido” eliminando las columnas (atributos) repetidas.
• Combinacion de Selección y Producto Cartesiano
• Resultado= tuplas donde los nombre y valores de los atributos que se repiten en ambas tablas son iguales.
• Si R y S son dos relaciones que no tienen atributos en común -> R xx S= R|x||x|S
• R|x||x|(cond)(cond) S = (cond)(cond) ( R|x||x|S )
UNLP - Facultad de InformáticaIBD - CLASE 1414
Lenguajes de consulta
Producto Natural• Clientes=(nomcli,direccion,tel)• Prestamos=(sucursal,nomcli)• Ej11: clientes con préstamos en un banco• Ej12: clientes con préstamos en la sucursal
XXX• Si coincidera mas de un atributo entre las
tablas a realizar|x||x|, el mismo se realiza por la coincidencia de todos los atributos comunes a la vez. Ver ejemplo
UNLP - Facultad de InformáticaIBD - CLASE 1415
Lenguajes de consulta
División: Operación %%• Dado R1 y R2, el resultado son los valores de atributos
de R1, que se relacionan con todas las tuplas de R2
• R1 % R2 sii Esquema de R2 está incluido en el Esquema de R1
• Esq( R1 % R2)= Esq( Esq(R1) – Esq(R2) )
• Hacen_Cursos=(# alu, nom_curso) Cursos=(nom_curso) -> Hacen_Cursos % Cursos (alumnos que hicieron todos los cursos que existen)
UNLP - Facultad de InformáticaIBD - CLASE 1416
Lenguajes de consulta
Asignación: Operación • Expresión que asigna a una variable temporal
el resultado de una operación. • Temp Operación del Álgebra• Ej10: Clientes de la sucursal xxx que tienen
tiene ctacte y tienen caja ahorro• A (ctacte) (cahorro), D1 (ctacte) - (cahorro),
D2 (cahorro)- (ctacte)
nomcli ( sucursal=“XXX” { A – [ D1 D2 ] } ) ] } )
UNLP - Facultad de InformáticaIBD - CLASE 1417
Lenguajes de consulta Cálculo Relacional de Tuplas:
No procedural, describe información deseada sin dar un proceso específico para obtener esa información.
Utiliza el cálculo de predicados para la formulación de consultas
Expresión de consultas• { t / P(t) }
• Conjunto de tuplas tal que P(Predicado) es verdadero en t.
• Ejemplos:
Ej12:clientes con préstamos mayor que 1200$
UNLP - Facultad de InformáticaIBD - CLASE 1418
Lenguajes de consulta Operación de proyección
• { t / s R / Q(s)}
• Ej13: solo el nombre del cliente.(del ej 12)
• Variable de tupla t se define solo para los atributos deseados
• Ej14: nombre y ciudad de los clientes con prestamo en la sucursal La Plata.
• Ej15: clientes con préstamo y depósitos en una sucursal de La Plata.
UNLP - Facultad de InformáticaIBD - CLASE 1419
Lenguajes de consulta
Operando :
t r (Q(t)) tuplas / t predicado Q(t) sea verdadero en r.
• Ej16: encontrar cliente que tiene una cuenta en todas las sucursales de La Plata
UNLP - Facultad de InformáticaIBD - CLASE 1420
Lenguajes de consulta
Definición formal del Cálculo de tuplasUna expresión del Cálculo de tuplas
{ t / P(t) }, tiene:• P fórmula donde aparecen varias
variables de tupla• T (variable libre) s (variable límite)• Las fórmulas se compone de átomos:
UNLP - Facultad de InformáticaIBD - CLASE 1421
Lenguajes de consulta
• s r; s variable de tupla y r relación
• s[x] u[y], s, u variables de tupla; x, y atributos sobre s y u respectivamente; operador (>, <, >=, =, <>, etc)
• s[x] c; c constante.
• Las fórmulas se construyen a partir de átomos:• Un átomo es una fórmula
• P1 fórmula ~ P1 fórmula
• P1, P2 fórmula P1 v P2, P1^ P2, P1 P2 fórmulas
• P1(s) fórmula que contiene variable tupla libre s s r(P1(s)) y s r(P1(s)) fórmulas
UNLP - Facultad de InformáticaIBD - CLASE 1422
Lenguajes de consulta• Seguridad de expresiones
• { t / ~ ( t prestamo) } infinito (todas las tuplas que no están definidas en la tabla, pero que se pueden formar a partir del dominio de los atributos=
Cálculo relacional de dominiosSe utilizan variables de dominio que toman
valores del dominio de un atributo (en lugar de tuplas completas)
Definición formal:
UNLP - Facultad de InformáticaIBD - CLASE 1423
Lenguajes de consulta
• Expresión { <x1,…,xn> / P <x1,…,xn> }; <x1,…,xn> variables de dominio y P fórmula
• Átomos definidos como el CRT• Fórmulas definidas como el CRT• Dada la Tabla (nombre_sucursal, nro_prestamo,
nombre_cte, cantidad_prestada)• Ej17: todos los datos simpre que se presten más
de 1200$
• Ej18: el cliente con préstamo mayor de 1200$
• Ej19: cliente y monto del préstamo de aquellos clientes de La Plata
UNLP - Facultad de InformáticaIBD - CLASE 1424
Lenguajes de consulta
• Seguridad de expresiones: similar a CRT
Operaciones de Updates: solo para AR Agregar tuplas
• r r E (r relación y E nueva tupla
Eliminar tuplas• r r – E
Actulización de datos A E ( r )
• Ej: saldo saldo * 1.05 ( depósito )
UNLP - Facultad de InformáticaIBD - CLASE 1425
Lenguajes de consulta
Dadas las siguientes tablas Vive (nombre_persona, calle, ciudad) Trabaja (nombre_persona, nombre_compañía,
salario) Situada_en (nombre_compañía, ciudad) Dirige (nombre_persona, nombre_director)
Resolver las siguientes consultas1. Nombre de los empleados que trabajan en la
compañía X2. Nombre de los empleados, que no trabajan en la
compañía X3. Nombre y ciudad en la que trabajan los empleados
de la compañía X
UNLP - Facultad de InformáticaIBD - CLASE 1426
Lenguajes de consulta
4. Nombre, calle y ciudad de aquellos que trabajen para X y cobren más de 1000
5. Empleados que viven en la misma ciudad en la que está la compañía en la que trabajan.
6. Modificar la dirección del empleado Y
7. Eliminar todos los empleados de la compañía X
8. Dar un aumento del 10% a los empleados
9. Dar un aumento del 20% a los directores.