Lenguajes de Consulta

Download Report

Transcript Lenguajes de Consulta

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é).


Nos concentraremos primero en las
consultas, dejando de lado updates.
2
IBD - CLASE 14
UNLP - Facultad de Informática
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
3
IBD - CLASE 14
UNLP - Facultad de Informática
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$
4
IBD - CLASE 14
UNLP - Facultad de Informática
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.
5
IBD - CLASE 14
UNLP - Facultad de Informática
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.
6
IBD - CLASE 14
UNLP - Facultad de Informática
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
7
IBD - CLASE 14
UNLP - Facultad de Informática
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
8
IBD - CLASE 14
UNLP - Facultad de Informática
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
9
IBD - CLASE 14
UNLP - Facultad de Informática
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 subexpresiones (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
10
IBD - CLASE 14
UNLP - Facultad de Informática
Lenguajes de consulta

Álgebra Relacional

Operaciones Adicionales: no añaden
potencia, solo simplifican consultas
comunes
•
•
•
•
11
Intersección
Producto Natural
División
Asignación
IBD - CLASE 14
UNLP - Facultad de Informática
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
12
IBD - CLASE 14
UNLP - Facultad de Informática
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 )
13
IBD - CLASE 14
UNLP - Facultad de Informática
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
14
IBD - CLASE 14
UNLP - Facultad de Informática
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)
15
IBD - CLASE 14
UNLP - Facultad de Informática
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 ] } )
16
IBD - CLASE 14
UNLP - Facultad de Informática
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:

17
Ej12:clientes con préstamos mayor que 1200$
IBD - CLASE 14
UNLP - Facultad de Informática
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.
18
IBD - CLASE 14
UNLP - Facultad de Informática
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
19
IBD - CLASE 14
UNLP - Facultad de Informática
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:
20
IBD - CLASE 14
UNLP - Facultad de Informática
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
21
IBD - CLASE 14
UNLP - Facultad de Informática
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:

22
IBD - CLASE 14
UNLP - Facultad de Informática
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
23
IBD - CLASE 14
UNLP - Facultad de Informática
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 )
24
IBD - CLASE 14
UNLP - Facultad de Informática
Lenguajes de consulta

Dadas las siguientes tablas





Resolver las siguientes consultas
1.
2.
3.
25
Vive (nombre_persona, calle, ciudad)
Trabaja (nombre_persona, nombre_compañía,
salario)
Situada_en (nombre_compañía, ciudad)
Dirige (nombre_persona, nombre_director)
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
UNLP - Facultad de Informática
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.
26
IBD - CLASE 14
UNLP - Facultad de Informática