ibd clase 14. unlp - facultad de informáticaibd - clase 14 2 lenguajes de consulta lenguajes de...
TRANSCRIPT
![Page 1: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/1.jpg)
IBD
Clase 14
![Page 2: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/2.jpg)
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.
![Page 3: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/3.jpg)
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
![Page 4: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/4.jpg)
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$
![Page 5: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/5.jpg)
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.
![Page 6: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/6.jpg)
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.
![Page 7: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/7.jpg)
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
![Page 8: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/8.jpg)
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
![Page 9: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/9.jpg)
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
![Page 10: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/10.jpg)
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
![Page 11: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/11.jpg)
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
![Page 12: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/12.jpg)
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
![Page 13: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/13.jpg)
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 )
![Page 14: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/14.jpg)
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
![Page 15: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/15.jpg)
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)
![Page 16: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/16.jpg)
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 ] } ) ] } )
![Page 17: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/17.jpg)
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$
![Page 18: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/18.jpg)
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.
![Page 19: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/19.jpg)
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
![Page 20: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/20.jpg)
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:
![Page 21: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/21.jpg)
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
![Page 22: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/22.jpg)
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:
![Page 23: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/23.jpg)
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
![Page 24: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/24.jpg)
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 )
![Page 25: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/25.jpg)
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
![Page 26: IBD Clase 14. UNLP - Facultad de InformáticaIBD - CLASE 14 2 Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales:](https://reader035.vdocuments.pub/reader035/viewer/2022081414/54e23b774a7959ea5c8b4e03/html5/thumbnails/26.jpg)
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.