Clase Nro.
9: Introducción al
Cálculo Relacional de Tuplas
Presentada por:
Amadís Martínez
Departamento de Computación, FaCyT
Versión: semestre 1-2025
Introducción
• El cálculo relacional es otro lenguaje formal de
consultas para el modelo relacional.
• Existen dos variantes:
– Cálculo relacional de tuplas.
– Cálculo relacional de dominios.
• En ambas variantes se escribe una expresión
declarativa para especificar una consulta.
– No hay descripción de cómo, o en qué orden, evaluar una
consulta.
– Una expresión de cálculo relacional especifica qué debe
recuperarse y no cómo hacerlo.
2
Introducción
• Por lo tanto, el cálculo relacional se considera un
lenguaje no procedimental.
• Cualquier consulta que pueda especificarse en el
álgebra relacional básica también puede expresarse
en el cálculo relacional, y viceversa.
• El cálculo relacional es importante por dos razones:
– Tiene una base firme en la lógica matemática.
– SQL tiene su fundamento básico en el cálculo relacional de
tuplas.
3
Variables de tupla y relaciones
de rango
• El cálculo relacional de tuplas se basa en la
especificación de un número de variables de tupla.
• Cada variable de tupla suele abarcar una relación
concreta de la base de datos.
– La variable puede tomar como valor cualquier tupla
individual de esa relación.
• Una consulta simple de cálculo relacional de tuplas
es de la forma { t | COND(t) }, donde:
– t es una variable de tupla.
– COND(t) es una expresión condicional que involucra a t.
4
Variables de tupla y relaciones
de rango
• El resultado de una consulta de este tipo es el
conjunto de todas las tuplas t que evalúan COND(t)
como verdadero.
• Se dice que estas tuplas satisfacen COND(t).
• Ejemplo: Encontrar todos los empleados cuyo salario
sea superior a 50000$.
• Solución:
5
Variables de tupla y relaciones
de rango
• En una expresión de cálculo relacional de tuplas es
necesario especificar la siguiente información:
– Para cada variable de tupla t, la relación de rango R de t.
Este valor se especifica mediante una condición de la
forma R(t).
– Una condición para seleccionar determinadas
combinaciones de tuplas.
– Un conjunto de atributos a recuperar, los atributos
requeridos.
6
Variables de tupla y relaciones
de rango
• Ejemplo: Recuperar la fecha de nacimiento y la
dirección del empleado (o empleados) cuyo nombre
es “John B. Smith”.
• Solución:
7
Expresiones y fórmulas en el
cálculo relacional de tuplas
• Una expresión general del cálculo relacional de
tuplas es de la forma:
• Donde:
– t1, t2, …, tn, tn+1, tn+2, …, tn+m son variables de tuplas.
– Cada Ai es un atributo de la relación en la que se encuentra
ti.
– COND es una condición o fórmula del cálculo relacional de
tuplas.
8
Expresiones y fórmulas en el
cálculo relacional de tuplas
• Una fórmula está compuesta por átomos del cálculo
de predicados:
– Un átomo de la forma R(ti), donde R es un nombre de
relación y ti es una variable de tupla.
– Un átomo de la forma ti.A op tj.B, donde op ∈ {=, ≠, <, >
, ≤, ≥}, ti y tj son variables de tupla, A y B son atributos de
las relaciones en las que se encuentran ti y tj,
respectivamente.
– Un átomo de la forma ti.A op c o c op tj.B, donde op ∈ {=
, ≠, <, >, ≤, ≥}, ti y tj son variables de tupla, A y B son
atributos de las relaciones en las que se encuentran ti y tj,
respectivamente y c es una constante.
9
Expresiones y fórmulas en el
cálculo relacional de tuplas
• Una fórmula (condición) está compuesta por uno o
varios átomos conectados mediante los operadores
lógicos AND, OR y NOT, y se define recursivamente
como sigue:
– Regla 1: Cada átomo es una fórmula.
– Regla 2: Si F1 y F2 son fórmulas, entonces también lo son
(F1 AND F2), (F1 OR F2), NOT(F1) y NOT(F2). Los valores de
verdad de estas fórmulas se derivan de sus fórmulas
componentes F1 y F2.
10
Los cuantificadores
existencial y universal
• En las fórmulas pueden aparecer dos símbolos
especiales denominados cuantificadores: el universal
(∀) y el existencial (∃).
• Primero se deben definir los conceptos de variables
de tupla libre y acotada en una fórmula.
– De manera informal, una variable de tupla t es acotada si
está cuantificada, lo que significa que aparece en una
cláusula (∃t) o (∀t); en cualquier otro caso, es libre.
11
Los cuantificadores
existencial y universal
• Una variable tupla se define como libre o acotada en
una fórmula según las siguientes reglas:
– Una ocurrencia de una variable tupla t en una fórmula F
que es un átomo es libre en F.
– Una ocurrencia de una variable tupla t es libre o acotada
en una fórmula formada por operadores lógicos [(F1 AND
F2), (F1 OR F2), NOT(F1) y NOT(F2)] dependiendo de si es
libre o acotada en F1 o F2 (si aparece en alguna de ellas).
– Todas las ocurrencias libres de una variable de tupla t en F
son acotadas en una fórmula F′ de la forma F′= (∃t)(F) o F′
= (∀t)(F). La variable de tupla es acotada al cuantificador
especificado en F′.
12
Los cuantificadores
existencial y universal
• Se enuncian a continuación las reglas 3 y 4 para la
definición formal de fórmula:
– Regla 3: Si F es una fórmula, entonces también lo es
(∃t)(F), donde t es una variable de tupla. La fórmula (∃t)(F)
es verdadera si la fórmula F es verdadera para alguna tupla
asignada a las ocurrencias libres de t en F; en caso
contrario, (∃t)(F) es falso.
– Regla 4: Si F es una fórmula, entonces también lo es
(∀t)(F), donde t es una variable de tupla. La fórmula (∀t)(F)
es verdadera si la fórmula F es verdadera para cada tupla
(en el universo) asignada a las ocurrencias libres de t en F;
en caso contrario, (∀t)(F) es falso.
13
Transformación de los cuantificadores
existencial y universal
• Reglas de transformación:
• Reglas de transformación con implicación:
14
Ejemplos de consultas en
cálculo relacional de tuplas
• Consulta Nro. 1: Recupere el nombre y la dirección
de todos los empleados que trabajan en el
departamento “Research”.
• Solución:
15
Ejemplos de consultas en
cálculo relacional de tuplas
• Consulta Nro. 2: Para cada proyecto ubicado en
“Stafford”, indique el número del proyecto, el
número del departamento que lo controla y el
apellido, la dirección y la fecha de nacimiento del
gerente del departamento.
• Solución:
16
Ejemplos de consultas en
cálculo relacional de tuplas
• Consulta Nro. 3: Encuentre los nombres de los
empleados que trabajan en todos los proyectos
controlados por el departamento número 5.
• Solución:
• O también:
17
Ejemplos de consultas en
cálculo relacional de tuplas
• Consulta Nro. 4: Haga una lista de los números de los
proyectos en los que participa un empleado cuyo
apellido es “Smith”, ya sea como trabajador o como
gerente del departamento que controla el proyecto.
• Solución:
18
Ejemplos de consultas en
cálculo relacional de tuplas
• Consulta Nro. 6: Recuperar los nombres de los
empleados que no tienen dependientes.
• Solución:
19
Ejemplos de consultas en
cálculo relacional de tuplas
• Consulta Nro. 7: Liste los nombres de los gerentes
que tienen al menos una persona dependiente.
• Solución:
20
Expresiones seguras
• Cuando se usen cuantificadores o negaciones de
predicados en una expresión de cálculo, se debe
garantizar que la expresión resultante tenga sentido.
• Expresión segura en cálculo relacional:
– Aquella en la que está garantizada la recuperación de un
número finito de tuplas como resultado.
– En caso contrario, se dice que la expresión es insegura.
• Por ejemplo, la expresión {t | NOT (EMPLOYEE(t))} es
insegura porque recupera todas las tuplas del
universo que no son tuplas EMPLOYEE, las cuales son
infinitamente numerosas.
21
Expresiones seguras
• Dominio de una expresión de cálculo relacional de
tuplas: conjunto de todos los valores que podrían:
– Aparecer como constantes en la expresión.
– Existir en cualquier tupla en las relaciones referenciadas en
esa expresión.
• Una expresión es segura si todos los valores en su
resultado son del dominio de la misma.
• El resultado de {t | NOT(EMPLOYEE(t))} es inseguro
– Incluye tuplas externas a la relación EMPLOYEE.
– Valores de este tipo no se encuentran en el dominio de la
expresión.
22
Bibliografía
• Capítulo 8, Sección 8.6 del libro Elmasri, R. and
Navathe, S. B. (2016). Fundamentals of Database
Systems (Seventh Edition). Pearson Higher Education.
23
Lecturas complementarias
• Capítulo 27, Sección 27.1 del libro Silberschatz, A.,
Korth, H. F. and Sudarshan, S. (2020). Database
System Concepts (Seventh Edition). McGraw-Hill
Education.
• Capítulo 4, Sección 4.3 del libro Ramakrishnan, R.
and Gehrke, J. (2003). Database Management
Systems (Third Edition). The McGraw-Hill Companies.
24