El álgebra relacional es un lenguaje formal con una serie de operadores que trabajan sobre una o varias relaciones para obtener otra relación resultado, sin que cambien las relaciones originales. Tanto los operandos como los resultados son relaciones, por lo que la salida de una operación puede ser la entrada de otra operación. Esto permite anidar expresiones del álgebra, del mismo modo que se pueden anidar las expresiones aritméticas. A esta propiedad se le denomina clausura: las relaciones son cerradas bajo el álgebra, del mismo modo que los números son cerrados bajo las operaciones aritméticas.
En este tema se presentan los operadores básicos del álgebra relacional, se describen los operadores originalmente propuestos por Codd y se mencionan algunos operadores adicionales que añaden potencia al lenguaje.
De los ocho operadores originales, sólo hay cinco que son fundamentales: restricción, proyección, producto cartesiano, unión y diferencia, que permiten realizar la mayoría de las operaciones de obtención de datos. Los operadores no fundamentales son la concatenación (join), la intersección y la división, que se pueden expresar a partir de los cinco operadores fundamentales. La restricción y la proyección son operaciones unarias porque operan sobre una sola relación. El resto de las operaciones son binarias porque trabajan sobre pares de relaciones.
Como se mencionó, el álgebra relacional es un lenguaje de consulta procedural, que permite realizar operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación, por lo tanto, es posible anidar y combinar operadores. Hay ocho operadores en el álgebra relacional que construyen relaciones y manipulan datos, éstos son:
Operadores del álgebra relacional |
|||
1. Selección |
2. Proyección |
3. Producto |
4.Unión |
5. Intersección |
6. Diferencia |
7. Concatenación |
8. División |
A continuación, se presenta un modelo conceptual o diagrama de Entidad-Relación (ejemplo de control de taxis) y los esquemas de relaciones; del cual se generan ejemplos de comandos y operadores de álgebra relacional.
Los esquemas de relaciones que se pueden construir a partir de este modelo son los siguientes:
Dueño = {id, nombre, teléfono, dirección}
Auto = {NoPlaca, id_dueño, id_chofer, marca, modelo, año}
Chofer = {id, nombre, teléfono, dirección, licencia}
Ruta = {NoPlaca_auto, HoraInicio, HoraFin, destino, tarifa}
Ejemplos de operadores del álgebra relacional.
Operador de selección: opta por tuplas que satisfagan cierto predicado, se utiliza la letra griega sigma minúscula (σ) para señalar la selección. El predicado aparece como subíndice de σ. La Relación que constituye el argumento se da entre paréntesis después de la σ:
Ejemplos |
Descripción |
σ licencia=´VECA2006´(chofer) |
Obtiene la tupla que satisface la condición, es decir, el chofer con licencia=VECA2006 |
σ NoPlaca=´YXZ1103´(auto) |
Obtiene la tupla que satisface la condición, es decir, el auto con NoPlaca=YXZ1103 |
Operador de proyección: permite quitar ciertos atributos de la relación, esta operación es unaria, copiando su relación base dada como argumento y quitando ciertas columnas y eliminando duplicadas. La proyección se señala con la letra griega pi mayúscula ( Π ). Como subíndice de Π, se coloca una lista de todos los atributos que se desea aparezcan en el resultado. La relación argumento se escribe después de Π entre paréntesis.
Ejemplos |
Descripción |
Π nombre,direccion(dueño) |
Obtiene nuevo listado de la relación Dueño de nombre y dirección, eliminando las columnas ID y teléfono. |
Π ID,licencia(chofer) |
Obtiene nuevo listado de la relación Chofer de ID y licencia, eliminando las columnas nombre, teléfono y dirección. |
Operador de producto: obtiene una relación cuyas tuplas están formadas por concatenación de todas las tuplas de A con todas las tuplas de B.
En álgebra relacional el producto de dos relaciones A y B puede ser representado de dos formas: A veces B o A X B:
Ejemplos |
Descripción |
Dueño X Auto |
Obtiene nuevo relación con todas las tuplas de Dueño y Auto. |
Auto veces Chofer |
Obtiene nuevo relación con todas las tuplas de Auto y Chofer. |
Operador de unión: produce el conjunto de todas las tuplas que pertenecen, ya sea a A o a B o a Ambas. Al igual que en teoría de conjuntos el símbolo U representa aquí la unión de dos relaciones. En álgebra relacional la unión de dos relaciones compatibles A y B es: A UNION B o A U B
Ejemplos |
Descripción |
Dueño U Auto |
Obtiene todos los dueños y autos. |
σ ID,licencia(chofer) U σ NoPlaca,marca (Auto) |
Obtiene nuevo relación con atributos indicados de Chofer y Auto. |
Operador de intersección: produce el conjunto de todas las tuplas pertenecientes a A y B. Al igual que en teoría de conjuntos el símbolo ∩ representa aquí la intersección entre dos relaciones. En álgebra relacional la intersección de dos relaciones compatibles A y B: A INTERSECCION B o A ∩ B
Ejemplo |
Descripción |
Dueño ∩ Chofer |
Obtiene todos los dueños que también son choferes. |
Operador de diferencia: produce el conjunto de todas las tuplas t que pertenecen a A y no pertenecen a B. En álgebra relacional la diferencia entre dos relaciones compatibles A y B: A MENOS B o A – B
Ejemplo |
Descripción |
Dueño __ Chofer |
Obtiene todos los dueños que NO son choferes. |
En el presente tema, se han definido ejemplos de algunos de los operadores básicos del álgebra relacional. Debido a su naturaleza fundamental, a menudo se usa el álgebra como una clase de norma contra la cual se puede medir el poder expresivo de un lenguaje dado. Los conocimientos adquiridos del álgebra relacional son base importante para el aprendizaje de SQL, como se describe en siguiente tema.
Objetivo
El estudiante identificará los operadores básicos del álgebra relacional, describiendo la aplicación de ciertos operados, con base a un caso dado.
Preguntas de estudio