Download - Algebra relacional
Álgebra Relacional
L.I. María Luisa Velasco Ramírez
Á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:
1. Selección 2. Proyección
3. Producto Cartesiano
4. Unión 5. Intersección
6. Diferencia
7. JOIN 8. División
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
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
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
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:
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
Proyección
• La proyección de una relación es un subconjunto vertical con la eliminación de duplicados.
* *
* *
* *
* *
* *
* *
* *
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 [ ]
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
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
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).
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
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:
• 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.
• Tenemos la base de datos de personas solteras y casadas según se ilustra en las SIGUIENTES tablas
#EMP SUELDO
E25 10
E30 20
E15 40
Tabla 3.4: Tabla de Casados
EMP# SAL
E70 30
E60 40
E85 90 Solteros
#EMP Sueldo
E25 10
E30 20
E15 40
E70 30
E60 40
E85 90
Resultado de la Unión de Casados UNION Solteros
• 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.
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
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.
V INTERSECT V1
V# Vname Status City
V2 Jones 10 London
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
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
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).
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:
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
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
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
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
Vamos a detenernos en el JOIN, espero puedan continuar aportando en la wiki, saludos.
Bibliografía: Date C. J.Introducción a losSistemas de Bases de Datos Prentice HallSéptima edición 2001