Cálculo relacional
# Cálculo relacional

El Cálculo relacional es un lenguaje de consulta que describe la respuesta deseada sobre una Base de datos sin especificar cómo obtenerla, a diferencia del Álgebra relacional que es de tipo procedimental, el cálculo relacional es de tipo declarativo; pero siempre ambos métodos logran los mismos resultados.

## Relación con la lógica de primer orden

* Podemos definir una fórmula con base a combinaciones de fórmulas atómicas.
* Una fórmula 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 fórmula 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.

## Clases de cálculo relacional

Podemos distinguir, por lo menos, dos Clases de Cálculo Relacional:

### Cálculo relacional basado en tuplas (TRC).

Una consulta en TRC es de la forma:

       {T | φ(T )}

donde T es una variable tipo tupla y φ(T) es una fórmula que describe a T. El resultado de esta consulta es el conjunto de todas las tuplas t para las cuales la fórmula es verdadera.

**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).

**Sintaxis de consulta en TRC**

La sintaxis es definida a partir de la lógica de primer orden. Donde la variable a utilizar son 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 basado en dominios (DRC)

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). Los átomos del cálculo relacional de dominios tienen una de las siguientes formas:

* (x, y, z ) Î r, donde r es una relación con n atributos y x , y, z .son variables de dominio o constantes.
* x q y, donde x e y son variables de dominio y q es un operador de comparación aritmética (>, <, =, ¹). Es necesario que los atributos x e y, tengan dominios cuyos miembros puedan compararse mediante q.
* x q c, donde x es una variable de dominio, q es un operador de comparación y c es una constante en el dominio del atributo x.

**Variable de tipo dominio**

Conjunto de posibles valores que puede tomar en la relación.

