El documento habla sobre el cálculo relacional, un lenguaje de consulta no procedimental para bases de datos relacionales. Existen dos variantes: el cálculo relacional de tuplas, que usa variables de tupla, y el cálculo relacional de dominios, que usa variables de dominio. El cálculo relacional describe la información deseada sin especificar el procedimiento para obtenerla, a diferencia del álgebra relacional.
2. Definición
Es un lenguaje de consulta no procedimental,
Describe la información deseada sin dar un
procedimiento específico para obtenerla, es de
tipo declarativo.
1. Contenido
3. Relación con la lógica de primer orden
Variable de tipo tupla: Una variable tipo tupla T es una
variable capaz de tomar cualquier valor tupla que
pertenece a una relación (o tabla).
Variable de tipo dominio: Conjunto de posibles valores
que puede tomar en la relación.
Podemos definir una formula con base a combinaciones de
fórmulas atómicas.
Una formula atómica es una combinación de variables (tipo
tupla o tipo dominio, según corresponda) y atributos o
constantes, gracias al uso de operadores como <, >, =, !=, <=,
>=.
También es una formula atómica variable ∈ Relación.
Las combinaciones de fórmulas atómicas se generan a partir
del uso de operadores como NOT (¬), AND (∧), OR (∨), →.
Los cuantificadores ∃, ∀ limitan una variable.
4. Una consulta en TRC es de la forma:
{T | φ(T )}
Es decir, el conjunto de todas las tuplas t, tal que el predicado P,
es verdadero para t.
Sintaxis de consulta en TRC
La sintaxis es definida a partir de la lógica de primer orden.
Donde la variable a utilizar es de tipo tupla. Una variable es libre
en una fórmula (o subfórmula) si la (sub) fórmula no contiene
ninguna ocurrencia de cuantificadores que la limiten. En una
consulta en TRC de la forma: {T | φ(T )}, T es la única variable
libre.
CÁLCULO RELACIONAL
DE TUPLAS (TRC):
5. Elementos del predicado
t r (la tupla t está contenida en la relación r)
t[at1] (valor del atributo at1 de la tupla t)
Condiciones de comparación: (>,>=,<,<=, =, ≠)
Comparaciones entre atributos o entre un atributo y una
constante t1[at1] ≠ t1[at2] La tupla t1 del atributo at1 es
distinto de la tupla t1 del atributo at2 t1[at1] > 15 La tupla t1
del atributo at1 es mayor que el valor constante 15
t1[at1] = t2[at2] La tupla t1 del atributo at1 es igual a la tupla
t2 del atributo at2
6. Cuantificadores
Existencial (∃): ∃ t r (P(t)) Evalúa el valor de verdad de al menos una
tupla t de la relación r que cumple con el predicado P.
Universal (∀): ∀ t r (P(t)) Evalúa el valor de verdad de todas las
tuplas t de r que cumplen con el predicado P.
Ejemplos de TCR:
Obtener la información de todos los alumnos
{t/ t Alumno}
Obtener la información de los alumnos que son mayores de 25
años.
{t/ t Alumno t[edad] > 25}
Obtener solamente los números de expedientes de los alumnos
{t/ ∃ s Alumno (t[exp] = s[exp])}
Obtener los números de expedientes de los alumnos mayores de
25 años.
{t/ ∃ r Alumno (t[exp] = r[exp] r[edad] >25)}
7. Está constituido con los mismos operadores que el cálculo relacional
de tuplas pero no hay tuplas sino variables dominio. Las expresiones
del cálculo relacional de dominios son de la forma { (x, y, z, ...) / P(x,
y, z, ...) }, donde x, y, z representan las variables de dominio, P
representa una fórmula compuesta de átomos (igual que en el CRT).
- Una expresión en el CRD es de la forma
{< x1, x2 , ... , n > | P(x1, x2 , ... , xn)}
Dónde:
x1 , x2 , . . . , xn representan variables de dominio
P es una fórmula compuesta por átomos
- Un átomo en el CRD tiene una de las formas siguientes:
< x1 , x2 , . . . , xn > ∈ r ó ( r(x1 , x2 , . . . , xn ))
Dónde:
r es una relación en n atributos y
x1, x2, . . . , xn son variables de dominio.
8. - x α y donde:
x e y son variables de dominio
α es un operador de comparación ( < , <=, = , <>, >, >=).
x e y tienen dominios que puedan compararse por medio de α.
- x α c donde:
x es una variable de dominio
α es un operador de comparación
c es una constante en el dominio del atributo correspondiente
Las fórmulas se construyen a partir de átomos usando las reglas
siguientes:
- Un átomo es una fórmula.
- Si P1 es una fórmula, entonces también lo son : ¬ P1 y (P1)
- Si P1 y P2 son fórmulas, entonces también lo son: P1 v P2 , P1 ∧ P2 , y
P1 => P2.
- Si P1(x) es una fórmula en x, donde x es una variable de dominio,
entonces también son fórmulas: ∃ x (P1 (x) ) y ∀ x (P1(x)).
9. Ejemplos de DRC:
Encontrar nombre de sucursal, número
de préstamo, nombre de cliente y
cantidad de préstamos mayores de
1200 dólares.
{<b,l,c,a> / <b,l,c,a > ∈
préstamo ∧ a>1200}
Encontrar clientes que tienen un
préstamo de sucursal Perryridge y
ciudad en que viven.
{ < c,x > / ∃ b,l,a (<b,l,c,a> ∈
préstamo ∧ b="Perryridge" ∧
∃ y (<c,y,x> ∈ cliente ))}
10. El Cálculo relacional es un lenguaje de
consulta que describe la respuesta
deseada sobre una Base de datos sin
especificar como obtenerla, a diferencia
del Álgebra relacional que es de tipo
procedural, el cálculo relacional es de
tipo declarativo; pero siempre ambos
métodos logran los mismos resultados.
Además tenemos dos tipos de variantes
tuplas y dominios.
2. Resumen
11. 3. Conclusiones
El cálculo relacional es una herramienta formal
utilizada como lenguaje de consulta a bases de
datos relacionales, según el tipo de variables
que se manejan, existen dos tipos de Cálculo
relacional. El cálculo relacional de tuplas emplea
variables-tupla, que designan a tuplas de
relaciones. En el cálculo relacional de dominios
se utilizan variables-dominio, que toman valores
de los dominios asociados a los atributos de las
relaciones.
12. 4. Apreciación del equipo
El Cálculo relacional es descriptivo (se indica
cuál es el problema y no cómo resolverlo),
mientras que el Algebra lineal es procedural (se
indica un procedimiento para resolver el
problema).