Download - Algebra Relacional
-
Algebra RelacionalEl lgebra relacional consiste en un conjunto de operadores de alto nivel que operan sobre relaciones.
Cada uno de estos operadores toma una o dos relaciones como entrada y produce una nueva relacin como salida.
-
Codd (1971) defini un conjunto muy especfico de ocho operadores, en dos grupos :
Los operadores tradicionales de conjuntos unin, interseccin, diferencia y producto cartesiano.
Los operadores relacionales especiales restriccin (seleccin), proyeccin, reunin y divisin.
-
Unin Interseccin
Diferencia
a
b
c
x
y
a
a
b
b
c
c
x
y
x
y
x
y
=
ProductoCartesiano
-
Restriccin (Seleccin)
Proyeccin
a1
a2
a3
b1
b1
b2
b1
b2
b3
c1
c2
c3
a1
a2
a3
b1
b1
b2
c1
c1
c2
=
Reunin (Join)
a
a
a
b
c
x
y
z
x
y
x
z= a
Divisin
-
UninLa unin de dos relaciones A y B compatibles respecto a la unin, A UNION B, es una relacin cuya cabecera es idntica a la de A o B y cuyo cuerpo est formado por todas la tuplas t pertenecientes ya sea A o a B (o a las dos).
s# snombre situacion ciudad
S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRES
A B
A UNION B
s# snombre situacion ciudad
S1 SALAZAR 20 LONDRESS2 JAIMES 10 PARIS
s# snombre situacion ciudad
S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRESS2 JAIMES 10 PARIS
{ }BxAxxBA = :UU
-
InterseccinLa Interseccin de dos relaciones compatibles respecto a la unin, A INTERSECT B, es una relacin cuya cabecera es idntica a la de A o B y cuyo cuerpo est formado por las tuplas t pertenecientes tanto a A como a B.
s# snombre situacion ciudad
S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRES
A B
A INTERSECT B
s# snombre situacion ciudad
S1 SALAZAR 20 LONDRESS2 JAIMES 10 PARIS
s# snombre situacion ciudad
S1 SALAZAR 20 LONDRES
{ }BxAxxBA = :I
-
DiferenciaLa Diferencia entre dos relaciones compatibles respecto a la unin, A MINUS B, es una relacin cuya cabecera es idntica a la de A o B y cuyo cuerpo est formado por las tuplas t pertenecientes tanto a A pero no a B.
s# snombre situacion ciudad
S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRES
A B
A MINUS B
s# snombre situacion ciudad
S1 SALAZAR 20 LONDRESS2 JAIMES 10 PARIS
s# snombre situacion ciudad
S4 CORONA 20 LONDRES
{ }BxAxxBA = :
-
Producto Cartesiano
En matemticas, 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 a A y el segundo elemento de cada par pertenece a B.
A BA TIMES B
{ }ByAxyxBA = :),(
p# cantidad
P1 100
P2 200
s# snombre p# cantidad
S1 SALAZAR P1 100
S1 SALAZAR P2 200
S2 JAIMES P1 100
S2 JAIMES P2 200
S4 CORONA P1 100
S4 CORONA P2 200
s# snombre
S1 SALAZARS2 JAIMESS4 CORONA
-
Restriccin (Seleccin)Sea theta la representacin de cualquier operador de comparacin escalar simple (por ejemplo =, , =, etc.). La restriccin theta de la relacin A segn los atributosX y Y :
A WHERE X theta Y
es una relacin con la misma cabecera que A y con cuerpo formado por el conjunto de todas las tuplas t de A tales que la evaluacin X theta Y resulta verdadera en el caso de esa tupla t.
A A WHERE situacion = 10s# snombre situacion ciudad
S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRESS2 JAIMES 10 PARIS
s# snombre situacion ciudad
S2 JAIMES 10 PARIS
-
Proyeccin
La Proyeccin de la relacin A segn los atributos X,Y,...,Z
A[X,Y,...,Z]produce un subconjunto vertical de una relacin dada; o sea, el subconjunto obtenido mediante la seleccin de los atributos especificados y la eliminacin de las tuplas repetidas dentro de los atributos seleccionados.
A A [s#,ciudad]s# snombre situacion ciudad
S1 SALAZAR 20 LONDRESS4 CORONA 20 LONDRESS2 JAIMES 10 PARIS
s# ciudad
S1 LONDRESS4 LONDRESS2 PARIS
-
Reunin (Join)
La operacin de reunin crea una nueva relacin utilizando dos relaciones. La nueva relacin contiene las tuplas de las relaciones A,B con los mismos valores en los atributos comunes, se combinan para crear una nueva tupla en la relacin resultante.
a1
a2
a3
b1
b1
b2
b1
b2
b3
c1
c2
c3
a1
a2
a3
b1
b1
b2
c1
c1
c2
A B A JOIN B
-
Divisin
Crea una relacin a partir de dos relaciones (A,B). Los atributos de la relacin divisor (B) deben ser subconjunto (Y) de los atributos de la relacin dividendo (X,Y).
El resultado es una relacin que tiene como atributos, aquellos que estn en la relacin dividendo y no estn en la relacin divisor (X), y cuyos elementos, son las tuplas tales que al menos hay una tupla en la relacin dividendo A, que tiene el valor de los atributos X, para cada valor de los atributos Y, contenidos en la relacin divisor B.
A DIVIDEBY B
-
A DIVIDEBY B
compaa localizacionC1 PUEBLAC1 GUADALAJARAC2 LEONC2 CANCUNC3 PUEBLAC3 CANCUNC3 LEON
localizacionPUEBLACANCUN
A B
compaaC3
-
MinimalidadEl conjunto de operadores del algebra relacional puede ser reducido a solo cinco (denominados operadores primitivos):
Restriccin (Seleccin)
Proyeccin
Unin
Diferencia
Producto Cartesiano
los operadores restantes interseccin, reunin ydivisin pueden ser expresados en funcin de los operadores primitivos.
-
Implementando la Interseccin
La interseccin se puede definir como :
A INTERSECT B = A MINUS (A MINUS B)
A
B
A MINUS B
A (A-B)
A INTERSECT BA MINUS (A MINUS B)
A
B
-
Implementando la Reunin (Join)La reunin (Join natural) se puede definir como :
A JOIN B = ((A TIMES B) WHERE X theta Y)[m,n,..,q]
1- (A TIMES B)producto cartesiano, produce una relacin C.
2- (C WHERE X theta Y) restriccin, obtiene las tuplas de la relacin C que cumplan la condicin X theta Y, donde X y Y, son atributos comunes en las relaciones A,B; produce una relacin D.
3- D[m,n,..,q] Y por ltimo se proyectan todos los atributos del la relacin D, eliminando solo uno de los atributos comunes en las relaciones originales.
-
a1
a2
a3
b1
b1
b2
b1
b2
b3
c1
c2
c3
=
a1
a1
a1
a2
a2
a2
a3
a3
a3
b1
b1
b1
b1
b1
b1
b2
b2
b2
b1
b2
b3
b1
b2
b3
b1
b2
b3
c1
c2
c3
c1
c2
c3
c1
c2
c3
p qm n
m n p q
Implementando la Reunin (Join)(continuacin...)
1- Producto Cartesiano
A TIMES B
C
-
a1
a1
a1
a2
a2
a2
a3
a3
a3
b1
b1
b1
b1
b1
b1
b2
b2
b2
b1
b2
b3
b1
b2
b3
b1
b2
b3
c1
c2
c3
c1
c2
c3
c1
c2
c3
m n p qC
a1
a2
a3
b1
b1
b2
b1
b1
b2
c1
c1
c2
m n p qD
C WHERE n = p
2- Restriccin (Seleccin)
Implementando la Reunin (Join)(continuacin...)
-
a1
a2
a3
b1
b1
b2
b1
b1
b2
c1
c1
c2
m n p q
D [m,n,q]
3- Proyeccin
a1
a2
a3
b1
b1
b2
c1
c1
c2
m n q
A JOIN B
Implementando la Reunin (Join)(continuacin...)
-
Implementando la Divisin
La divisin se puede definir como :
Supongamos que A tiene los atributos X y Y y B tiene el atributo Y, (X y Y pueden ser compuestos).
A DIVIDEBY B =
A[X] MINUS ( ( A[X] TIMES B ) MINUS A )[X]
-
A[X] MINUS ( ( A[X] TIMES B ) MINUS A )[X]1:A
2:C
3:D
4:E
5:A
6:A DIVIDEBY B
Implementando la Divisin(continuacin...)
-
1- A[X] se realiza el parentesis ms interno y existe una proyeccin, produce la relacin A.
2- A TIMES Bproducto cartesiano, entre la proyeccin A y B, produce una relacin C.
3- C MINUS Adiferencia, entre el producto cartesiano C y la relacin A, produce la relacin D.
4- D[X]proyeccin, de la relacin D en el atributo X, produce la relacin E.
5- A[X]proyeccin, de la relacin A en el atributo X, produce A.
6- A MINUS Ediferencia, entre las dos proyecciones, produce finalmente la equivalencia a la divisin.
Implementando la Divisin(continuacin...)
-
Ejemplo :
a
a
a
b
c
x
y
z
x
y
x
z =a
A DIVIDEBY B
A
BX Y
Y
Implementando la Divisin(continuacin...)
-
A[X] MINUS ( ( A[X] TIMES B ) MINUS A )[X]1:A
a
b
c
A
X
a
a
a
b
c
x
y
z
x
y
A
X Y
A[X] =
Implementando la Divisin(continuacin...)
-
A[X] MINUS ( ( A TIMES B ) MINUS A )[X]
a
b
c
A
X
=
2:C
x
z
B
Y a
a
b
b
c
c
x
z
x
z
x
z
A TIMES B
X Y
C
Implementando la Divisin(continuacin...)
-
A[X] MINUS ( C MINUS A )[X]
=
3:D
X Y
C
a
a
a
b
c
x
y
z
x
y
A
X Y
C MINUS A
b
c
c
z
x
z
X Y
D
a
a
b
b
c
c
x
z
x
z
x
z
Implementando la Divisin(continuacin...)
-
A[X] MINUS ( D )[X]
=
4:E
D[X]
b
c
c
z
x
z
X Y
D
b
c
X
E
Implementando la Divisin(continuacin...)
-
A[X] MINUS E
b
c
E
5:A
a
b
c
A
A MINUS E = a
A DIVIDEBY B
Implementando la Divisin(continuacin...)