El álgebra relacional
mishima_walkerTrabajo3 de Mayo de 2014
2.141 Palabras (9 Páginas)298 Visitas
Unidad IV. Algebra relacional.
Algebra relacional
La tercera parte del modelo relacional que está relacionada con la manipulación de los datos, esta dividida en dos partes:
1. El álgebra relacional
2. La operación de asignación.
El álgebra relacional consiste de un conjunto de operadores de alto nivel que operan sobre las relaciones. Estos operadores toman una o dos relaciones de entrada y produce una nueva relación de salida.
Los operadores se pueden definir en dos conjuntos de cuatro operadores originales (Codd):
• Los operadores tradicionales de conjuntos: unión, intersección diferencia y producto cartesiano (todas con ligeras modificaciones, porque operan sobre relaciones y no sobre conjuntos.
• Las operaciones relacionales especiales: restricción, proyección, reunión y división.
Estos ocho operadores originales funcionan como sigue:
UNIÓN. Construye una relación formada por todas las tuplas que existan en cualquiera o en ambas de las relaciones especificadas.
INTERSECCIÓN. Construye una relación formada por aquellas tuplas que aparezcan en las dos relaciones especificadas..
DIFERENCIA. Construye una relación formada por todas las tuplas de la primera relación que no aparezcan en la segunda relación de las dos especificadas.
PRODUCTO. Construye una relación a partir de dos relaciones especificadas, que contiene todas las combinaciones posibles de tuplas,
RESTRICCIÓN O SELECCIÓN. Extrae las tuplas de una relación que satisfagan una condición especificada.
PROYECCIÓN. Extrae los atributos especificados de una relación dada.
REUNIÓN. A partir de dos relaciones especificadas, construye una relación que contiene todas las posibles combinaciones de tuplas, una de cada una de las dos relaciones, tales que las tuplas participen en una combinación dada satisfagan alguna condición especificada.
DIVISIÓN. Toma dos relaciones, una binaria y una unaria y construye una relación formada por todos los valores de un atributo de la relación binaria que concuerdan (en el otro atributo) con todos los valores en la relación unaria.
Propiedad de cerradura. El resultado de cada una de las operaciones es otra relación.
Dado que el resultado de una operación es un objeto del mismo tipo que los operandos, éste puede convertirse en operando de otra. Una relación resultado no tiene nombre y por ende no tiene una cabecera. (Uso del operador RENAME) .
Restricción Proyección Producto Cartesiano
Selección
a x a x
b Y a y
c b x
b y
c x
c y
Unión intersección Diferencia
Reunión natural División
A1 b1 b1 c1 a1 b1 c1 a x x a
A2 b2 b2 c2 a2 b1 c1 a y z
A3 b3 b3 c3 a3 b3 c3 a z
b x
c y
Operaciones del álgebra relacional.
La operación unión en el álgebra relacional no es la unión matemática. Es una forma limitada en la cual se obliga a las dos relaciones de entrada a tener la misma forma o las dos deben tener tuplas con “compatibilidad respecto a la unión”.
Dos relaciones son compatibles respecto a la unión si y sólo si sus cabeceras son idénticas, lo cual significa que:
a) Las dos tienen el mismo el mismo conjunto de nombres de atributos (y el mismo grado).
b) Los atributos correspondientes a las dos relaciones se definen sobre el mismo dominio.
La unión, la intersección y la diferencia requieren de operandos compatibles respecto a la unión. El producto cartesiano no tiene este requerimiento.
La operación Unión.
UNION. La unión de dos relaciones A y B compatibles respecto a la union, A UNION B (A B), es una relación cuya cabecera es idéntica a la de A o B y cuyo cuerpo está formado por todas las tuplas t pertenecientes ya sea a A o a B o a las dos.
La operación Intersección.
La intersección de dos relaciones compatibles respecto a la unión A y B, A INTERSECT B (A B), es una relación cuya cabecera es idéntica a la de A o B y cuyo cuerpo está formado por todas la tuplas t pertenecientes tanto a A como a B.
La operación Diferencia.
La diferencia entre dos relaciones compatibles con respecto a la unión A y B, A MINUS B, es una relación cuya cabecera es idéntica a la de A o B y cuyo cuerpo está formado por todas las tuplas t pertenecientes a A pero no a B.
Ejemplo: Considerando las relaciones:
Relación A
No_S Snombre Situación Ciudad
S1 Salazar 20 México
S4 Carmona 40 Morelia
S5 Alvarez 50 Puebla
Relación B
No_S Snombre Situación Ciudad
S1 Salazar 20 México
S2 Martinez 30 Veracruz
S3 Breidi 10 Puebla
S5 Alvarez 50 Puebla
A UNION B
No_S Snombre Situación Ciudad
S1 Salazar 20 México
S2 Martinez 30 Veracruz
S3 Breidi 10 Puebla
S4 Carmona 40 Morelia
S5 Alvarez 50 Puebla
A INTERSECT B
No_S Snombre Situación Ciudad
S1 Salazar 20 México
S5 Alvarez 50 Puebla
A MINUS B
No_S Snombre Situación Ciudad
S4 Carmona 40 Morelia
B MINUS A
No_S Snombre Situación Ciudad
S2 Martinez 30 Veracruz
S3 Breidi 10 Puebla
La operación Producto cartesiano.
En matemáticas, el producto cartesiano de dos conjuntos es el conjunto de todos los pares ordenados de elementos tales que el primer elemento de cada par pertenece al primer conjunto y el segundo elemento pertenece al segundo conjunto. Así el producto cartesiano de dos relaciones sería un conjunto de pares ordenados de tuplas.
Para conservar la propiedad de cerradura, la versión de producto cartesiano en álgebra relacional es una forma ampliada de la operación. Cada par ordenado de tuplas es reemplazado por la tupla resultante de la combinación de las dos tuplas del par ordenado.
Dadas dos tuplas
( A1:a1, A2:a2, ...,Am:am) y (B1:b1, B2:b2,...,Bn:bn)
la combinación de las dos tuplas es la tupla:
( A1:a1, A2:a2, ...,Am:am, B1:b1, B2:b2,...,Bn:bn)
El problema con el producto cartesiano es la cabecera de esta nueva relación, la cual es la combinación de las dos cabeceras de las relaciones de entrada, donde pueden existir atributos con nombres iguales. En este caso se debe emplear el operador RENAME para modificar de manera apropiada los nombres de los atributos. Así dos relaciones son compatibles respecto al producto si y sólo si sus cabeceras son disjuntas (es decir no tienen nombres de atributos en común).
La operación de Producto cartesiano de dos relaciones (compatibles respecto al producto) A y B, A TIMES B (A x B), es una relación cuya cabecera es la combinación de las cabeceras de A y B y cuyo cuerpo está formado por el conjunto de todas las tuplas t tales que t es la combinación de una tupla a perteneciente a A y una tupla b perteneciente a B.
Esta operación no tiene mucha importancia práctica en un sistema relacional.
La operación Restricción o Selección.
Sea theta la representación de cualquier operador de comparación escalar simple (=, <>, >, >=, < y <=).
La selección theta de la relación A según los atributos X y Y
A where X theta Y
Es una relación con la misma cabecera que A con un cuerpo formado por el conjunto de todas las tuplas t de A tales que la evaluación de la comparación “X theta Y” resulta verdadera en el caso de esa tupla t.
Consideraciones.
Los atributos X y Y deben estar definidos sobre el mismo dominio y la operación theta debe ser aplicable a ese dominio.
La relación A no debe ser por fuerza una relación nombrada y puede representarse mediante una expresión arbitraria del álgebra relacional.
En lugar de alguno de los atributos X o Y se puede especificar por un valor literal.
El operador de restricción produce un subconjunto horizontal de una relación dada, es decir, un subconjunto de tuplas.
La operación de restricción permite una operación simple de comparación o una de las siguientes formas en las cuales la expresión condicional de la cláusula WHERE esté formada por una combinación booleana arbitraria de tales comparaciones simples:
1. A WHERE c1 AND c2
Que es equivalente a(A WHERE c1)INTERSECT(A WHERE c2)
2. A WHERE c1 OR c2
Que es equivalente a (A WHERE c1) UNION (A WHERE c2)
3. A WHERE NOT c
Que es equivalente a
...