Álgebra Relacional Álgebra relacional Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, fguidi@ucv.cl Revisión: 8 de Mayo de 26 Modelo desarrollado por Codd para la manipulación del contenido de una instancia de la D, con el fin de extraer datos de interés. Define un conjunto de operadores que toman relaciones como operandos, y retornan otra relación como resultado. Principales operadores: Unarios: Selección o Restricción (σ) Proyección ( ) Redenominación(ρ) inarios: Unión ( ) Intersección ( ) Diferencia (-) Producto cartesiano (X) Join ( ) División (/) (no se estudiará en este curso) Franco Guidi Polanco 2 Propiedad de cierre Propiedad de cierre : el resultado de la aplicación de cualquiera de los operadores del álgebra relacional sobre una o más relaciones, es también una relación. Consecuencia de la propiedad de cierre: los operadores del álgebra relacional permiten la construcción de expresiones compuestas. Relacional: Unión Unión ( ): dadas dos relaciones y del mismo tipo, la unión de ambas relaciones, escrita como, es una relación del mismo tipo, que contiene las tuplas tal que que t pertenece a, a o a ambas. Franco Guidi Polanco 3 Franco Guidi Polanco 4
Relacional: Intersección Intersección ( ): dadas dos relaciones y del mismo tipo, la intersección de ambas relaciones, escrita como, es una relación del mismo tipo, que contiene las tuplas tal que que t pertenece tanto a, como a. Relacional: Diferencia Diferencia (-): dadas dos relaciones y del mismo tipo, la diferencia de ambas relaciones, escrita como (en este orden), es una relación del mismo tipo, que contiene las tuplas tal que que t pertenece a, pero no a. - Franco Guidi Polanco 5 Franco Guidi Polanco 6 Relacional: Redenominación Redenominación (ρ): dada las relación, con atributos { X 1, X 2,... X n, Y 1, Y 2,..., Y m } y el conjunto de atributos { Z 1, Z 2,..., Z n }, la redenominación de los atributos de, escrito como X1X2..Xn Z1Z2...Zn, es la relación que contiene los atributos {Z 1, Z 2,... Z n,y 1, Y 2,... Y m }, tal que sus tuplas son las tuplas de, donde Z i contiene el valor de X i, para i=1,...,n. ρ, Código,Metal () Código Metal Relacional: Producto Cartesiano Producto cartesiano (x): dadas dos relaciones y, el producto cartesiano de ambas relaciones, escrito como x, es una relación que tiene como esquema la unión de los esquemas de y, y cuyas tuplas son el conjunto de todas las parejas constituidas combinado cada tupla de con cada tupla de. En caso de existir atributos comunes entre y, es necesario primero redenominarlos adecuadamente. Franco Guidi Polanco 7 Franco Guidi Polanco 8
Relacional: Producto Cartesiano (cont.) x US ronce ronce ronce ronce US US Relacional: Selección Selección (σ): dada una relación y un predicado p bien definido, la selección de la relación dado p, escrito como σ p (), es una relación del mismo tipo, que contiene las tuplas t de tal que p es verdadero para esas tuplas. El predicado es una expresión booleana compuesta por confrontaciones entre atributos de o de atributos de con literales x (Notar redenominación implícita) σ = () 1. 1. 1. 2. 2. 2. ronce ronce ronce ronce Franco Guidi Polanco 9 Franco Guidi Polanco 1 Relacional: Selección (cont.) Relacional: Proyección σ > en () en 2. en Proyección ( ): dada la relación que contiene los atributos definidos en el conjunto M, la proyección de sobre los atributos definidos en el conjunto N = { X, Y,..., Z }, con N M, escrito como X,Y,..Z (), es otra relación conteniente: La estructura de, tras la remoción de los atributos no presentes en N. Las tuplas de, con los valores originales asociados a los atributos resultantes. La proyección debe preservar la propiedad de cierre (i.e. su aplicación debe generar otra relación), por tanto del resultado deben eliminarse eventuales tuplas repetidas. 2. Franco Guidi Polanco 11 Franco Guidi Polanco 12
Relacional: Proyección (cont.),, () () en 2. Relacional: Natural Join Natural Join ( ): dadas las relaciones y, con atributos { X 1, X 2,... X n, Y 1, Y 2,..., Y n } y { Y 1, Y 2,..., Y n, Z 1, Z 2,..., Z n } respectivamente, es decir, (sólo) con Y 1, Y 2,..., Y n como atributos comunes entre ambas relaciones, el natural join de y, escrito como, es la relación conteniente los atributos { X 1, X 2,... X n, Y 1, Y 2,..., Y n, Z 1, Z 2,..., Z n } y el conjunto de todas las tuplas tales que los valores de sus atributos X 1, X 2,... X n, Y 1, Y 2,..., Y n son tuplas de, y los valores de sus atributos Y 1, Y 2,..., Y n, Z 1, Z 2,..., Z n son tuplas de. El natural join es el más común de los operadores de join, y generalmente viene llamado join. Franco Guidi Polanco 13 Franco Guidi Polanco 14 Join completo 12. en 2. 12. 12. 2. en Tipo High Tipo High Join completo 12. en 2. 12. 2. en Franco Guidi Polanco 15 Franco Guidi Polanco 16
Join incompleto: Join incompleto (vacío) 12. en 2. QRS 12. en 2. DEF IJK LMN Francia Perú ustria en en 12. 2. Franco Guidi Polanco 17 Franco Guidi Polanco 18 Relacional: Theta-Join/Equi-Join θ-join ( p ): dadas las relaciones y, y p un predicado bien definido, el θ-join de y, escrito como p, es la relación que contiene los atributos de y de y cuyas tuplas son el el conjunto de todas las parejas constituidas por una tupla de y una tupla de para las cuales el predicado p es verdadero. El predicado p tiene la forma X θ Y, donde X es un atributo de, Y es un atributo de, y θ es un operador (típicamente =, >,<, etc.) de modo que X θ Y está bien definido. Equi-Join: caso particular de θ-join, en el cual θ es el operador de igualdad (=) Relacional: Theta-Join/Equi-Join París Requerimiento 1 2 12 Requerimiento<=Disponibilidad Requerimiento S3 Disponibiliad 13 18 1 Disponibilidad 1 13 1 18 1 S3 1 12 13 12 18 Franco Guidi Polanco 19 Franco Guidi Polanco 2