ibd clase 14. unlp - facultad de informáticaibd - clase 14 2 lenguajes de consulta lenguajes de...

26
IBD Clase 14

Upload: leonardo-hipolito

Post on 16-Feb-2015

13 views

Category:

Documents


3 download

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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.