Algebra relacional
-
Upload
maria-luisa-velasco -
Category
Documents
-
view
1.084 -
download
0
Transcript of Algebra relacional
![Page 1: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/1.jpg)
Álgebra Relacional
L.I. María Luisa Velasco Ramírez
![Page 2: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/2.jpg)
Álgebra Relacional
• Álgebra relacional es un lenguaje de consulta procedural. Consta de un conjunto de 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, estos son:
![Page 3: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/3.jpg)
1. Selección 2. Proyección
3. Producto Cartesiano
4. Unión 5. Intersección
6. Diferencia
7. JOIN 8. División
![Page 4: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/4.jpg)
V# VNAME STATUS CITY
V1 Smith 20 London
V2 Jones 10 París
V3 Blake 30 París
V4 Clark 20 London
V5 Adams 30 Athens
Vamos a tomar como ejemplo las siguientes tres relaciones:
V
![Page 5: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/5.jpg)
P# PNAME COLOR WEIGHT CITY
P1 Nut Red 12 London
P2 Bolt Green 17 París
P3 Screw Blue 17 Rome
P4 Screw Red 14 London
P5 Cam Blue 12 París
P
![Page 6: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/6.jpg)
V# P# CANTV1 P1 300
V1 P2 200
V1 P3 400
V1 P4 200
V1 P5 100
V1 P6 100
V2 P1 300
V2 P2 400
V3 P2 400
V4 P2 200
V4 P4 300
V4 P5 400
VP
VP, representa las partes que suministra un proveedor
![Page 7: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/7.jpg)
Selección
• La selección de una relación es un subconjunto horizontal de una relación, en este subconjunto aparecen las tuplas que cumplen alguna condición especificada, gráficamente esto se ve:
![Page 8: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/8.jpg)
Ejemplos• Listar los datos de los proveedores que viven en “Londres”:
• V Where City = “London”
• Obtener las partes y todos sus detalles que pesan menos de 14 libras:
• P Where Weight < 14.0
• Obtener los pedidos del proveedor V6 o la parte P7: VP Where V#= ‘V6’ OR P#=‘P7’
V# Vname Status City
V1 Smith 20 London
V4 Clark 20 London
P# Pname Color Weight City
P1 Nut Red 12 London
P5 Cam Blue 12 París
V# P# CANT
![Page 9: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/9.jpg)
Proyección
• La proyección de una relación es un subconjunto vertical con la eliminación de duplicados.
![Page 10: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/10.jpg)
* *
* *
* *
* *
* *
* *
* *
![Page 11: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/11.jpg)
Obtener: Los nombres de los proveedores que viven en
LondresV Where City = “London” [Vname]El resultado de la selección (Where) es:
Vname
Smith
Clark
V# Vname Status City
V1 Smith 20 London
V4 Clark 20 London
De la relación resultante, se obtiene la proyección [ ]
![Page 12: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/12.jpg)
Otro ejemploObtener el color de las partes que pesan más de 14 libras
P Where Weight > 14.0 [color]
El resultado de la selección (Where) es:
Y el resultado de la proyección es:color
Green
Blue
P# Pname Color Weight City
P2 Bolt Green 17 París
P3 Screw Blue 17 Rome
![Page 13: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/13.jpg)
Si se desea obtener más de un atributo, únicamente se listan, separados por una coma, ejemplo:Obtener el color y la ciudad de las partes que pesan más de 14 libras
P Where Weight > 14.0 [color, city]
El resultado de la selección (Where) es:
Y el resultado de la proyección es:
P# Pname Color Weight City
P2 Bolt Green 17 París
P3 Screw Blue 17 Rome
Color City
Green París
Blue Rome
![Page 14: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/14.jpg)
Producto cartesianoRepresenta al producto cartesiano usual de conjuntos. Combina tuplas de cualquieras dos (o más) relaciones, realiza la combinación de todos con todos. Si las relaciones a operar tienen N y M tuplas de n y m componentes respectivamente, la relación resultante del producto cartesiano tiene N × M tuplas de n + m componentes. Suponer que se tiene la relación Proyectos (Y) y se desea obtener el producto cartesiano entre la relación Proveedores (V) y Proyectos (Y).
![Page 15: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/15.jpg)
V# VNAME STATUS CITY
V1 Smith 20 London
V2 Jones 10 París
V3 Blake 30 París
V4 Clark 20 London
V5 Adams 30 Athens
VY
Y# Yname City
Y1 Móvil Rome
Y2 Sustetable París
V# Vname Status City Y# Yname City
V1 Smith 20 London Y1 Móvil Rome
V1 Smith 20 London Y2 Sustentable París
V2 Jones 10 París Y1 Móvil Rome
V2 Jones 10 París Y2 Sustentable París
V3 Blake 30 París Y1 Móvil Rome
V3 Blake 30 París Y2 Sustentable París
V4 Clark 20 London Y1 Móvil Rome
V4 Clark 20 London Y2 Sustentable París
V5 Adams 30 Athens Y1 Móvil Rome
V5 Adams 30 Athens Y2 Sustentable París
V TIMES Y
V tiene 5 tuplas y 4 elementos, Y tiene 2 tuplas 3 elementos o atributos, el resultado del producto cartesiana tendrá 10 tuplas, 7 atributos
![Page 16: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/16.jpg)
Union
• Unión
• La unión de dos relaciones A y B que deben ser compatibles a la unión es el conjunto de tuplas que pertenecen a la relación A, a la relación B o a ambas relaciones, y se designa por:
![Page 17: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/17.jpg)
• Dos relaciones son compatibles a la unión si tienen el mismo número de atributos(es decir son del mismo grado), y deben existir atributos equivalentes dentro de las dos relaciones, es decir:
• El atributo 1 de la relación A debe estar definido en el mismo dominio(conjunto de valores que puede tomar el atributo) del atributo 1 de la relación B, el atributo 2 de la relación A debe estar definido en el mismo dominio del atributo 2 de la relación B, y así sucesivamente.
![Page 18: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/18.jpg)
• Tenemos la base de datos de personas solteras y casadas según se ilustra en las SIGUIENTES tablas
![Page 19: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/19.jpg)
#EMP SUELDO
E25 10
E30 20
E15 40
Tabla 3.4: Tabla de Casados
EMP# SAL
E70 30
E60 40
E85 90 Solteros
![Page 20: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/20.jpg)
#EMP Sueldo
E25 10
E30 20
E15 40
E70 30
E60 40
E85 90
Resultado de la Unión de Casados UNION Solteros
![Page 21: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/21.jpg)
• CASADOS UNION SOLTEROS = TODOS
• SOLTEROS UNION TODOS = TODOS
• El resultado de la unión conserva los nombres de los atributos de la primer relación.
![Page 22: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/22.jpg)
Otro ejemplo:
V# Vname Status City
V1 Smith 20 London
V2 Jones 10 París
V3 Blake 30 París
V4 Clark 20 London
V5 Adams 30 Athens
VV# Vname Status City
V2 Jones 10 London
V6 Baldwin 20 London
V7 Gates 10 París
V1
V# Vname Status City
V1 Smith 20 London
V2 Jones 10 París
V3 Blake 30 París
V4 Clark 20 London
V5 Adams 30 Athens
V6 Baldwin 20 London
V7 Gates 10 París
V UNION V1
![Page 23: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/23.jpg)
Intersección
• Intersección
• La intersección de dos relaciones A y B que deben ser compatibles a la unión, es el conjunto de tuplas que pertenecen a la relación A y a la relación B.
![Page 24: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/24.jpg)
V INTERSECT V1
V# Vname Status City
V2 Jones 10 London
![Page 25: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/25.jpg)
Diferencia
• La diferencia de dos relaciones A y B que deben ser compatibles a la unión, es el conjunto de tuplas que pertenecen a la relación A y no a la relación B.
• Se utiliza el comando MINUS
![Page 26: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/26.jpg)
Ejemplo:
V# Vname Status City
V1 Smith 20 London
V3 Blake 30 París
V4 Clark 20 London
V5 Adams 30 Athens
V MINUS V1V# Vname Status City
V6 Baldwin 20 London
V7 Gates 10 París
V1 MINUS V
Observar que no es lo mismo V MINUS V1, que V1 MINUS V
![Page 27: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/27.jpg)
Join• Es equivalente a un producto cartesiano, seguido
de una selección de las tuplas que tengan en los atributos ''equivalentes'' el mismo valor.
• Una forma de definirlo sería:
• A JOIN B = (( A TIMES B) WHERE A.Ci = B.Ci AND ....A.Cj = B.Cj)
• En otras palabras, hace un producto cartesiano de sus dos argumentos (A JOIN B) y realiza una selección forzando la igualdad de atributos que aparecen en ambas relaciones. Elimina repetidos (como toda operación de conjuntos).
![Page 28: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/28.jpg)
V# SNAME STATUS CITY
V1 Smith 20 London
V2 Jones 10 París
V3 Blake 30 París
V4 Clark 20 London
V5 Adams 30 Athens
P# PNAME COLOR WEIGHT CITY
P1 Nut Red 12 London
P2 Bolt Green 17 París
P3 Screw Blue 17 Rome
P4 Screw Red 14 London
P5 Cam Blue 12 París
Teniendo las siguientes relaciones V y P, qué atributo tienen en común las dos relaciones?
Así es, city es un atributo común en ambas relaciones, ahora el JOIN se realizará sobre aquellos valores iguales:
![Page 29: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/29.jpg)
Resultado de S Join PS# SNAME STATUS CITY P# PNAME COLOR WEIGHT
S1 Smith 20 London P1 Nut Red 12
S1 Smith 20 London P4 Screw Red 14
S2 Jones 10 París P2 Bolt Green 17
S2 Jones 10 París P5 Cam Blue 12
S3 Blake 30 París P2 Bolt Green 17
S3 Blake 30 París P5 Cam Blue 12
S4 Clark 20 London P1 Nut Red 12
S4 Clark 20 London P4 Screw Red 14
Observar que se eliminó uno de los city, para evitar duplicados
![Page 30: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/30.jpg)
Otro ejemplo:
V# SNAME STATUS CITY
V1 Smith 20 London
V2 Jones 10 París
V3 Blake 30 París
V4 Clark 20 London
V5 Adams 30 Athens
V# P# CANTV1 P1 300
V1 P2 200
V1 P3 400
V1 P4 200
V1 P5 100
V1 P6 100
V2 P1 300
V2 P2 400
V3 P2 400
V4 P2 200
V4 P4 300
V4 P5 400
V
VP
![Page 31: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/31.jpg)
Obtener los nombres de los proveedores que surten la parte ‘P4’:
VP Where P#=‘P4’ JOIN V [VNAME]
Vamos a verlo por partes:VP Where P#= ‘P4’
V# P# Cant
V1 P4 200
V4 P4 300
![Page 32: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/32.jpg)
Ahora, continuando con la consulta: VP Where P#=‘P4’ JOIN V, se obtiene
V# Vname Status City P# CANT
V1 Smith 20 London P4 200
V4 Clark 20 London P4 300
Por último se realiza la proyección [Vname]
El resultado es que Smith y Clark surten la parteP4
Vname
Smith
Clark
![Page 33: Algebra relacional](https://reader033.fdocuments.es/reader033/viewer/2022051400/55952e651a28ab5e7f8b46ae/html5/thumbnails/33.jpg)
Vamos a detenernos en el JOIN, espero puedan continuar aportando en la wiki, saludos.