El cálculo relacional consta de dos cálculos, el cálculo relacional de tuplas y el cálculo relacional de dominios , que forman parte del modelo relacional para bases de datos y proporcionan una forma declarativa de especificar consultas a bases de datos. La razón de ser del cálculo relacional es la formalización de la optimización de consultas , que consiste en encontrar formas más eficientes de ejecutar la misma consulta en una base de datos.
El cálculo relacional es similar al álgebra relacional , que también es parte del modelo relacional: mientras que el cálculo relacional está pensado como un lenguaje declarativo que no prescribe ningún orden de ejecución en las subexpresiones de una expresión de cálculo relacional, el álgebra relacional está pensado como un lenguaje imperativo: las subexpresiones de una expresión algebraica relacional deben ejecutarse de izquierda a derecha y de adentro hacia afuera siguiendo su anidamiento.
Según el teorema de Codd , el álgebra relacional y el cálculo relacional independiente del dominio son lógicamente equivalentes .
Una expresión de álgebra relacional podría prescribir los siguientes pasos para recuperar los números de teléfono y los nombres de las librerías que suministran algún libro de muestra :
Una expresión de cálculo relacional formularía esta consulta de la siguiente manera descriptiva o declarativa:
El álgebra relacional y el cálculo relacional independiente del dominio son lógicamente equivalentes : para cualquier expresión algebraica, existe una expresión equivalente en el cálculo, y viceversa. Este resultado se conoce como teorema de Codd .
La razón de ser del cálculo relacional es la formalización de la optimización de consultas . La optimización de consultas consiste en determinar a partir de una consulta la manera (o maneras) más eficientes de ejecutarla. La optimización de consultas puede formalizarse como la traducción de una expresión de cálculo relacional que proporciona una respuesta A en expresiones algebraicas relacionales eficientes que proporcionan la misma respuesta A.