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.