Es un lenguaje de manipulación de datos declarativo, de más alto nivel que el álgebra relacional. Al no ser procedural, no especifica el orden de las operaciones. El Lenguaje SQL está inspirado en el cálculo relacional.

El cálculo relacional está basado en la lógica de predicados.

Existen dos variaciones: cálculo relacional de tuplas, y cálculo relacional de dominios. Solo vamos a estudiar la primera.

Lógica de Predicados

La lógica de predicados de primer orden se basa en tres componentes:

  • Predicados: Son funciones de una o más variables cuyo resultado es un valor de verdad (verdadero o falso).
  • Operaciones entre predicados: , , , .
  • Cuantificadores de variables: Existen dos cuantificadores:
    • Cuantificador universal: . Es verdadero si para cualquier valor de , el predicado es verdadero.
    • Cuantificador existencial: . Es verdadero si existe al menos un valor de para el cual el predicado es verdadero.

Para restringir el dominio de la variable en un cuantificador universal, tenemos que usar la negación. En caso contrario, el resultado siempre será falso.

La expresión será verdadera para todas las variables del dominio que cumplen con el predicado .

De forma equivalente, podemos usar el cuantificador existencial negado

Conjuntos Definidos por Predicado

La notación de construcción de conjuntos puede ser utilizada para definir un conjunto de valores a partir de un predicado.

La formula es denominada el predicado, y es una función cuyo resultado es un valor de verdad.

El conjunto estará definido por todos los tal que el predicado tome un valor verdadero.

Las variables definidas del lado izquierdo de la expresión se conocen como variables libres.

Las variables que no pertenecen al lado izquierdo y son utilizadas dentro del predicado se denominan variables ligadas. Es necesario que estén acompañadas de un cuantificador.

Cálculo Relacional de Tuplas

En el cálculo relacional de tuplas, las variables representan tuplas.

Un predicado simple es una función de una tupla o de atributos de tuplas, cuyo resultado es un valor de verdad. Se admiten como predicados simples:

  • , donde es una relación
  • , con

En donde es un operador de comparación:

  • ,
  • , , , (solo para atributos cuyos dominios están ordenados)

Las operaciones entre predicados admitidas son: , , .

Una expresión del cálculo relacional de tuplas tiene la forma:

Donde es un predicado válido, son variables libres, y son variables ligadas. Notemos que el predicado únicamente es función de las variables libres, pero son parte de la expresión.

Ejemplo

Liste el jugador más anciano del mundial

También podemos usar el cuantificador universal

Una expresión segura es aquella que producirá una cantidad finita de resultados. No todas las expresiones válidas son seguras.

Expresión no segura

Hay una cantidad infinita de tuplas que no pertenecen a una relación.

Completitud Relacional

E. Codd demostró la equivalencia entre el álgebra relacional básica y el cálculo relacional. Esta equivalencia implica que ambos lenguajes tienen el mismo poder expresivo.

A su vez, se dice que un lenguaje es relacionalmente completo cuando tiene el mismo poder expresivo que el cálculo relacional.