Title: Lenguajes de Bases de Datos: CLCULO RELACIONAL
1Lenguajes de Bases de Datos CÁLCULO RELACIONAL
Clase 18
- Gloria Lucía Giraldo Gómez
- Universidad Nacional de Colombia
- glgiraldog_at_unalmed.edu.co
- Bloque anexo al M8
- Oficina 313
2Cálculo Relacional
- Es otro Lenguaje de Consulta para BD relacionales
- Sirve para la manipulación y extracción de datos
a partir de las relaciones - Es un lenguaje puro (generalmente no implementado
directamente) aunque existen prototipos (WinRDBI) - Se basa en el Cálculo de predicados de primer
orden, donde una relación expresa una propiedad o
predicado - Es cerrado relacionalmente
3Cálculo Relacional
- El Álgebra Relacional es secuencial,
procedimental - El Cálculo Relacional no es procedimental.
- Intenta capturar el lenguaje natural dice qué se
quiere obtener pero no cómo - Existen 2 variantes de Tuplas y de Dominios
- Nos concentraremos en el Cálculo Relacional de
Tuplas.
4Cálculo Relacional de Tuplas
- Concepto básico Tupla
- Una consulta se escribe así
- t / P(t)
- significa el conjunto de tuplas t, tal que el
predicado P es verdadero (se cumple) para t
5Cálculo Relacional de Tuplas
- Elementos del predicado
- t Î r la tupla t está contenida en la relación
r - ta significa el valor del atributo a de la
tupla t - Condiciones de comparación (gt,gt,lt,lt, , ?)
- Comparaciones entre atributos o entre un
- atributo y una constante
- Ejemplos t1a ? t1b , t1c gt 8, t1a t2b
6Cálculo Relacional de Tuplas
- Cuantificadores Existencial () y Universal (").
Evalúan a falso o verdadero - Cuantificador Existencial
- t Î r (Q(t)) Evalúa a verdadero si existe
al menos una tupla t de la relación r que cumple
el predicado Q. -
7Cálculo Relacional de Tuplas
- Ejemplos
- t Î r (tb 11) Es verdadero si existe al
menos una tupla en r cuyo atributo b valga 11 - t Î r (tb lt 3 Ù ta8) Es verdadero si
existe al menos una tupla en r, cuyo atributo b
sea menor que 3 y cuyo atributo a sea igual a 8
8Cálculo Relacional de Tuplas
- Cuantificador Universal
- " t Î r (Q(t)) Evalúa a verdadero si todas las
tuplas t de r cumplen el predicado Q - Ejemplo
- " t Î r (ta 8) Verdadero si todas
- las tuplas t de r tienen un valor de 8 en el
- atributo a
9Cálculo Relacional de Tuplas
- Condiciones Compuestas
- Son combinaciones de los elementos anteriores,
mediante los operadores - Ù (and), Ú (or), Ø (not)
- Ejemplos
- (t1 Î r Ù t1a 8)
- (t1 Î r Ù " t2 Î s (t2b gt t1c)
10Cálculo Relacional de Tuplas
- El cuantificador universal " puede ser
- expresado en términos del cuantificador
- existencial así
- " t Î r (Q(t)) Ø t Î r (ØQ(t))
- Un ejemplo en lenguaje natural
- Todos los clientes tienen nombre
- No existe un cliente que No tenga nombre
11Cálculo Relacional de Tuplas
- La variable asociada a un cuantificador sólo
tiene existencia (validez) dentro del predicado
correspondiente, es decir - t Î r (Q(t))
- La variable t sólo tiene validez dentro del
predicado Q. Por lo tanto la condición -
- t1 Î r Ù " t2 Î s (t2b gt t1c) Ù
t2z10 - Es inválida ya que t2 no existe por fuera del
cuantificador ". - Note que t1 si puede aparecer dentro del
cuantificador. - Se dice t2 que es una variable ligada y t1 es
libre.
12Cálculo Relacional de Tuplas
Est Ced Nom Edad 10 Pedro 14 20 Olga 29 50 Ana 3
0
Prof Ced Nom Edad 45 Gloria 14 26 Dario
29 50 Ana 30 34 Cristina 32
13Ejemplos SencillosCálculo Relacional de Tuplas
- a) Imprimir la información de todos los
estudiantes - t/ t Î Est
- Igual que a) pero solo aquellos estudiantes
mayores de 25 años - t/ t Î Est Ù tedad gt 25
- Igual que a) pero solo imprimir las cédulas
- t/ s Î Est (tced sced)
- Imprimir solo las cédulas de los estudiantes
mayores de 25 años - t/ s Î Est (tced sced Ù sedad gt25)
Nótese que para proyectar sólo algunos atributos
de una relación se requiere utilizar el
cuantificador existencial
14Ejemplos SencillosCálculo Relacional de Tuplas
- Igual que a) pero solo imprimir las cédulas y los
nombres - t/ s Î Est (tcedsced Ù tnom snom)
- Imprimir las cédulas de los estudiantes que
también son profesores - t/ s Î Est (tced sced) Ù
- w Î Prof (tced wced)
15Cálculo Relacional de Tuplas
- g) Imprimir las cédulas de todos los estudiantes
y todos los profesores - t/ s Î Est (tced sced) Ú
- w Î Prof (tced wced)
- h) Imprimir las cédulas de los estudiantes que no
son profesores - t/ s Î Est (tced sced) Ù
- Ø w Î Prof (tced wced)
16Cálculo Relacional de Tuplas
- Supóngase las relaciones A (a,b,c) y B (d,e,f) su
- producto cartesiano en cálculo es
- i) t/ r Î A ( s Î B ( ta ra Ù tb
rb Ù tc rc Ù - td sd Ù te
se Ù tf sf - )
- )
-
- Y el renombrado se puede lograr así
- j) t/ e Î Est (tced AS cédula eced)
17Cálculo Relacional de Tuplas
- Ya con los elementos anteriores se pueden lograr
los equivalentes a las operaciones del álgebra
restricción, proyección (ver consulta c)), unión
(ver g)), intersección (ver f)), diferencia (ver
h)), producto (ver i)), renombrado (ver j)) - La reunión (join) y la división se pueden derivar
a partir de las otras operaciones - No se presentará para el cálculo un operador de
agregación similar al G del álgebra
18Cálculo Relacional de Tuplas
- Por lo tanto cualquier consulta expresada
mediante Álgebra Relacional se puede escribir
también en Cálculo Relacional de Tuplas - Ambos lenguajes tienen la misma potencia
expresiva - Excepto ciertas consultas realizadas con el
operador de agregación G.