El álgebra relacional es un sistema cerrado de operaciones sobre relaciones en un modelo de datos relacional . Las operaciones del álgebra relacional también se denominan operaciones relacionales .
El conjunto original de 8 operaciones fue propuesto por E. Codd en la década de 1970 e incluía tanto operaciones que todavía están en uso ( proyección , unión , etc.) como operaciones que no han entrado en uso (por ejemplo, división de relaciones).
En el desarrollo de la teoría y la práctica relacional, se han propuesto varias operaciones relacionales nuevas, como la semiunión ( SEMI-JOIN ) y la semidiferencia, o la antisemiunión ( ANTI-SEMI-JOIN ) [1] [2 ] , CROSS APPLY y OUTER APPLY , cierre transitivo ( TCLOSE ) etc.
Dado que muchas operaciones son expresables entre sí, como parte del álgebra relacional, se pueden distinguir varias variantes de la base (un conjunto de operaciones mediante las cuales todas las demás son expresables). La base más famosa y estrictamente definida ( álgebra A ) fue propuesta por Christopher Date y Hugh Darwen [3] .
El álgebra relacional y el cálculo relacional son equivalentes en su poder expresivo [4] . Hay reglas para convertir solicitudes entre ellos.
La principal aplicación del álgebra relacional es proporcionar un marco teórico para las bases de datos relacionales , especialmente los lenguajes de consulta para dichas bases de datos, entre los que destaca SQL .
El álgebra relacional es un conjunto de operaciones sobre relaciones tales que el resultado de cada una de las operaciones es también una relación. Esta propiedad de un álgebra se llama clausura .
Las operaciones en una relación se llaman unario , en dos relaciones - binario , en tres - ternario (estos son prácticamente desconocidos).
Un ejemplo de una operación unaria es una proyección, un ejemplo de una operación binaria es una unión.
Una operación relacional N -aria f puede representarse mediante una función que devuelve una relación y toma n relaciones como argumentos:
Dado que el álgebra relacional es cerrada, otras expresiones de álgebra relacional (adecuadas para el tipo) pueden sustituirse como operandos en operaciones relacionales:
En expresiones relacionales, puede utilizar expresiones anidadas de una estructura arbitrariamente compleja.
Algunas operaciones relacionales, en particular la unión , la intersección y la resta , requieren que la relación tenga encabezados (esquemas) coincidentes (iguales). Esto significa que el número de atributos, los nombres de los atributos y el tipo ( dominio ) de los atributos del mismo nombre son los mismos.
Algunas relaciones no son formalmente compatibles debido a las diferencias en los nombres de los atributos, pero lo son después de aplicar la operación de cambio de nombre de los atributos.
La operación de producto cartesiano requiere que las relaciones de operandos no tengan atributos del mismo nombre. Se dice que las relaciones son compatibles tomando el producto cartesiano extendido si la intersección de los conjuntos de nombres de atributos tomados de sus esquemas de relación está vacía.
Las siguientes son algunas operaciones de álgebra relacional que son de interés histórico o práctico. Es imposible enumerar todas las operaciones, ya que cualquier operación que satisfaga la definición de relacional es parte del álgebra relacional.
El resultado de aplicar la operación de cambio de nombre de atributos es una relación con los nombres de atributos cambiados.
Sintaxis :
R RENOMBRAR Atr 1 , Atr 2 , ... AS NewAtr 1 , NewAtr 2 , ...dónde
Una relación con el mismo encabezado que las relaciones compatibles de tipo A y B , y un cuerpo que consta de tuplas que pertenecen a A , B o ambos.
Sintaxis:
Una relación con el mismo título que las relaciones A y B , y un cuerpo formado por tuplas que pertenecen a ambas relaciones A y B al mismo tiempo .
Sintaxis:
Una relación con el mismo encabezamiento que las relaciones de tipo compatibles A y B , y un cuerpo formado por tuplas que pertenecen a la relación A y no pertenecen a la relación B.
Sintaxis:
El operador de asignación (:=) le permite almacenar el resultado de evaluar una expresión relacional en una relación existente.
Una relación cuyo encabezamiento ( A 1 , A 2 , …, A n , B 1 , B 2 , …, B m ) es la concatenación de los encabezamientos de las relaciones A ( A 1 , A 2 , …, A n ) y B ( B 1 , B 2 , …, B m ), y el cuerpo consta de tuplas que son todas combinaciones de tuplas de relaciones A y B : ( a 1 , a 2 , …, a n , b 1 , b 2 , … , b m ),
tal que
( un 1 , un 2 , …, un norte ) ∈ UN , ( segundo 1 , segundo 2 , ..., segundo metro ) ∈ segundo .Sintaxis:
A VECES BUna relación con el mismo título que la relación A y un cuerpo que consta de tuplas cuyos valores de atributo se evalúan como VERDADERO cuando se sustituyen en la condición c . c es una expresión booleana que puede incluir atributos de la relación A y/o expresiones escalares.
Sintaxis:
La muestra se escribe como o donde:
La proyección es una operación unaria que le permite obtener un subconjunto "vertical" de una relación o tabla dada , es decir, un subconjunto que se obtiene seleccionando los atributos especificados , seguido de la eliminación, si es necesario, de tuplas duplicadas redundantes. . Deje que se proporcione una tabla con nombres de atributos , es decir , algún subconjunto del conjunto de nombres de atributos . El resultado de una proyección de tabla sobre los nombres de atributos seleccionados es una nueva tabla obtenida de la tabla original eliminando atributos que no están incluidos en el conjunto seleccionado, seguido de la posible eliminación de tuplas duplicadas redundantes.
Al implementar una proyección, es necesario especificar la relación proyectada y un determinado conjunto de sus atributos, que se convertirán en el título de la resultante.
Cuando se realiza la proyección, se asigna un corte "vertical" de la relación del operando con la destrucción natural de las tuplas duplicadas que pueden surgir.
Sintaxis:
o
La operación de unir las relaciones A y B por el predicado P es lógicamente equivalente a la aplicación secuencial del producto cartesiano de A y B y la selección por el predicado P. Si hay atributos con los mismos nombres en las relaciones, entonces antes de realizar la unión, estos atributos deben ser renombrados.
Sintaxis:
( A VECES B ) DONDE PUna relación con un encabezado (X 1 , X 2 , …, X n ) y un cuerpo que contiene un conjunto de tuplas (x 1 , x 2 , …, x n ) tal que para todas las tuplas (y 1 , y 2 , … , y m ) ∈ B con respecto a A(X 1 , X 2 , …, X n , Y 1 , Y 2 , …, Y m ) existe una tupla (x 1 , x 2 , …, x n , y 1 , y 2 , …, ym ) .
Sintaxis:
A DIVIDIR POR BAlgunos de los operadores relacionales se pueden expresar en términos de otros operadores relacionales.
Unirse al operadorEl operador de unión se define en términos del producto cartesiano y los operadores de selección de la siguiente manera:
(A VECES B) DONDE X=Y donde X e Y son atributos respectivamente de las relaciones A y B con nombres inicialmente iguales. Operador de intersecciónEl operador de intersección se expresa a través de la resta de la siguiente manera:
A INTERSECCIÓN B = A MENOS (A MENOS B) operador de divisiónEl operador de división se expresa en términos de los operadores de resta, producto cartesiano y proyección de la siguiente manera:
A DIVIDIR POR B = A[X] MENOS ((A[X] VECES B) MENOS A)[X]El primer lenguaje de consulta basado en el álgebra de Codd fue Alpha, desarrollado por el mismo Codd. Posteriormente, se creó ISBL, y este trabajo pionero ha sido elogiado por muchas autoridades [5] por mostrar una forma de convertir la idea de Codd en un lenguaje útil. Business System 12 fue un DBMS relacional de corta duración que siguió el ejemplo de ISBL.
En 1998 , Christopher Date y Hugh Darwen propusieron un lenguaje llamado Tutorial D para usar en la enseñanza de la teoría de bases de datos relacionales; este lenguaje de consulta también se basó en ideas de ISBL. Rel es una implementación del Tutorial D.
Incluso el lenguaje de consulta SQL se basa libremente en el álgebra relacional, aunque los operandos en SQL ( tablas ) no son exactamente relaciones , y varios teoremas útiles del álgebra relacional no se cumplen en SQL (quizás en detrimento de los optimizadores y/o usuarios). El modelo de tabla SQL es un conjunto múltiple , no un conjunto . Por ejemplo, una expresión es un teorema de álgebra relacional de conjuntos, pero no de álgebra relacional de conjuntos múltiples; para el estudio del álgebra relacional en conjuntos múltiples, consulte el capítulo 5 del libro de texto "Completo" de García-Molina , Ullman y Widom [6] .
Base de datos | |
---|---|
Conceptos | |
Objetos |
|
Llaves | |
sql |
|
Componentes |