1 / 26

IBD

IBD . Clase 14. 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é).

cianna
Download Presentation

IBD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IBD Clase 14

  2. 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. IBD - CLASE 14

  3. 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 IBD - CLASE 14

  4. 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$ IBD - CLASE 14

  5. 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. IBD - CLASE 14

  6. Lenguajes de consulta • Producto Cartesiano: Operador x • 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. IBD - CLASE 14

  7. 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 IBD - CLASE 14

  8. 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 IBD - CLASE 14

  9. 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 IBD - CLASE 14

  10. Lenguajes de consulta • Definición de Álgebra Relacional: • Una expresión básica en AR consta de • Una relación de una Base de Datos • Relació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 IBD - CLASE 14

  11. Lenguajes de consulta • Álgebra Relacional • Operaciones Adicionales: no añaden potencia, solo simplifican consultas comunes • Intersección • Producto Natural • División • Asignación IBD - CLASE 14

  12. 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 IBD - CLASE 14

  13. Lenguajes de consulta • Producto Natural: Operación |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 x S= R|x|S • R|x|(cond) S = (cond) ( R|x|S ) IBD - CLASE 14

  14. 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|, el mismo se realiza por la coincidencia de todos los atributos comunes a la vez. Ver ejemplo IBD - CLASE 14

  15. 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) IBD - CLASE 14

  16. 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 ] } ) IBD - CLASE 14

  17. 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$ IBD - CLASE 14

  18. 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. IBD - CLASE 14

  19. 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 IBD - CLASE 14

  20. Lenguajes de consulta • Definición formal del Cálculo de tuplas • Una 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: IBD - CLASE 14

  21. 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 IBD - CLASE 14

  22. 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 dominios • Se utilizan variables de dominio que toman valores del dominio de un atributo (en lugar de tuplas completas) • Definición formal: IBD - CLASE 14

  23. 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 IBD - CLASE 14

  24. 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 ) IBD - CLASE 14

  25. 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 consultas • Nombre de los empleados que trabajan en la compañía X • Nombre de los empleados, que no trabajan en la compañía X • Nombre y ciudad en la que trabajan los empleados de la compañía X IBD - CLASE 14

  26. Lenguajes de consulta • Nombre, calle y ciudad de aquellos que trabajen para X y cobren más de 1000 • Empleados que viven en la misma ciudad en la que está la compañía en la que trabajan. • Modificar la dirección del empleado Y • Eliminar todos los empleados de la compañía X • Dar un aumento del 10% a los empleados • Dar un aumento del 20% a los directores. IBD - CLASE 14

More Related