0% encontró este documento útil (0 votos)
12 vistas24 páginas

Clase 09

La clase presenta el cálculo relacional de tuplas, un lenguaje formal para consultas en bases de datos que se basa en expresiones declarativas. Se discuten sus características, como la no procedimentalidad y su relación con SQL, así como la importancia de las variables de tupla y las condiciones en las consultas. Además, se abordan los cuantificadores y la seguridad de las expresiones en este contexto.

Cargado por

acrespo4
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
12 vistas24 páginas

Clase 09

La clase presenta el cálculo relacional de tuplas, un lenguaje formal para consultas en bases de datos que se basa en expresiones declarativas. Se discuten sus características, como la no procedimentalidad y su relación con SQL, así como la importancia de las variables de tupla y las condiciones en las consultas. Además, se abordan los cuantificadores y la seguridad de las expresiones en este contexto.

Cargado por

acrespo4
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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

También podría gustarte