Álgebra Relacional
El Álgebra Relacional es un lenguaje formal y matemático de tipo procedural propuesto por Edgar F. Codd que define las operaciones teóricas para manipular relaciones (tablas) y obtener nuevas relaciones como resultado. Es el fundamento teórico directo sobre el que se diseñan los motores de bases de datos relacionales y el lenguaje SQL.
1. Naturaleza y Principio de Clausura #
En el álgebra relacional:
- Entrada: Una o dos relaciones (tablas).
- Salida: Siempre una nueva relación (tabla).
NOTE
Principio de Clausura: Como el resultado de cualquier operación algebraica es siempre una nueva relación, las operaciones pueden anidarse y combinarse indefinidamente para construir consultas complejas.
2. Operaciones Unarias (Operan sobre 1 sola relación) #
A. Selección ( - Sigma) #
Filtra y devuelve las filas (tuplas) que cumplen una condición o predicado lógico.
- Equivalente en SQL: Cláusula
WHERE. - Ejemplo: Obtener los empleados con salario superior a 2.000 €:
1SELECT * FROM EMPLEADOS WHERE salario > 2000;
B. Proyección ( - Pi) #
Selecciona un subconjunto de columnas (atributos) de la relación, eliminando automáticamente las filas duplicadas resultantes.
- Equivalente en SQL: Cláusula
SELECT DISTINCT columna1, columna2. - Ejemplo: Obtener solo el nombre y correo de todos los clientes:
1SELECT DISTINCT nombre, email FROM CLIENTES;
C. Renombramiento ( - Rho) #
Asigna un nuevo nombre a una relación o a sus atributos para evitar ambigüedades en operaciones compuestas.
- Equivalente en SQL: Cláusula
AS.
3. Operaciones de Conjuntos (Exigen Compatibilidad de Unión) #
Para poder aplicar estas operaciones, ambas relaciones y deben ser compatibles de unión: deben tener el mismo número de atributos y dominios compatibles en el mismo orden.
A. Unión () #
Devuelve todas las tuplas que pertenecen a , a o a ambas (sin duplicados).
- Equivalente en SQL:
UNION.
B. Intersección () #
Devuelve únicamente las tuplas que están presentes simultáneamente tanto en como en .
- Equivalente en SQL:
INTERSECT.
C. Diferencia () #
Devuelve las tuplas que están en pero no están en .
- Equivalente en SQL:
EXCEPT(oMINUSen Oracle).
4. Operaciones Binarias Combinadas #
A. Producto Cartesiano () #
Combina cada fila de con todas y cada una de las filas de .
- Si tiene filas y tiene filas, el resultado tiene filas.
- Equivalente en SQL:
CROSS JOIN(oFROM R, S).
B. Reunión Natural / Natural Join () #
Une las tuplas de y que coinciden en los valores de todos los atributos que tienen el mismo nombre en ambas tablas, eliminando las columnas duplicadas.
- Ejemplo: Unir clientes con sus pedidos por
id_cliente:
1SELECT * FROM CLIENTES NATURAL JOIN PEDIDOS;
C. Theta-Join () #
Es un producto cartesiano seguido de una selección con una condición de comparación arbitraria (usando ).
- Equivalente en SQL:
INNER JOIN ... ON condición. - Ejemplo:
1SELECT * 2FROM EMPLEADOS 3INNER JOIN DEPARTAMENTOS ON EMPLEADOS.id_depto = DEPARTAMENTOS.id_depto;
D. División () #
Responde a consultas que expresan la condición universal «todos» o «cada uno de».
- Ejemplo: Encontrar los números de cliente que han comprado todos los productos del catálogo.
5. Tabla de Equivalencias entre Álgebra Relacional y SQL #
| Operación Álgebra Relacional | Símbolo | Cláusula / Comando SQL |
|---|---|---|
| Selección | SELECT * FROM R WHERE condición | |
| Proyección | SELECT DISTINCT col1, col2 FROM R | |
| Renombramiento | SELECT col AS nuevo_nombre FROM R AS S | |
| Unión | SELECT * FROM R UNION SELECT * FROM S | |
| Intersección | SELECT * FROM R INTERSECT SELECT * FROM S | |
| Diferencia | SELECT * FROM R EXCEPT SELECT * FROM S | |
| Producto Cartesiano | SELECT * FROM R CROSS JOIN S | |
| Theta-Join | SELECT * FROM R INNER JOIN S ON condición | |
| Reunión Natural | SELECT * FROM R NATURAL JOIN S |
Resumen del tema
Conceptos clave #
- Principio de clausura: toda operación sobre relaciones produce siempre una nueva relación como resultado.
- Operaciones unarias: filtra filas por condición y selecciona columnas sin duplicados.
- Compatibilidad de unión: requisito indispensable para , y (mismo número de atributos y tipos compatibles).
- Joins: el producto cartesiano () combina todo con todo; el Theta-Join () filtra por condición y el Natural Join () empareja por columnas con idéntico nombre.
- Base de SQL: los optimizadores de consultas de los motores RDBMS traducen sentencias SQL a árboles de expresiones de álgebra relacional para ejecutar planes eficientes.
Qué debes recordar #
La Selección () filtra filas (WHERE), la Proyección () extrae columnas (SELECT DISTINCT) y el Join () cruza relaciones vinculando claves (INNER JOIN ON).