algebra relacional

33
Álgebra Relacional L.I. María Luisa Velasco Ramírez

Upload: maria-luisa-velasco

Post on 02-Jul-2015

1.084 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algebra relacional

Álgebra Relacional

L.I. María Luisa Velasco Ramírez

Page 2: Algebra relacional

Á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

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

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

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

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

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

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

Proyección

• La proyección de una relación es un subconjunto vertical con la eliminación de duplicados.

Page 10: Algebra relacional

* *

* *

* *

* *

* *

* *

* *

Page 11: Algebra relacional

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

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

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

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

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

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

• 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

• Tenemos la base de datos de personas solteras y casadas según se ilustra en las SIGUIENTES tablas

Page 19: Algebra relacional

#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

#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

• 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

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

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

V INTERSECT V1

V# Vname Status City

V2 Jones 10 London

Page 25: Algebra relacional

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

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

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

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

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

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

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

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

Vamos a detenernos en el JOIN, espero puedan continuar aportando en la wiki, saludos.