Vous êtes sur la page 1sur 28

Algebra Relacional

El 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

Producto
Cartesiano

Diferencia
a
b
c

Restriccin

Reunin (Join)

(Seleccin)

Proyeccin

a1

b1

b1

c1

a2

b1

b2

c2

a3

b2

b3

c3

a1

b1

c1

a2

b1

c1

a3

b2

c2

Divisin

A U B = {x : x A x B

Unin

La 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).

A
s#

snombre

situacion

s#

ciudad

snombre

situacion

ciudad

S1 SALAZAR

20 LONDRES

S1 SALAZAR

20 LONDRES

S4 CORONA

20 LONDRES

S2 JAIMES

10 PARIS

A UNION B
s#

snombre

situacion

ciudad

S1 SALAZAR

20 LONDRES

S4 CORONA

20 LONDRES

S2 JAIMES

10 PARIS

Interseccin

A I B = {x : x A x B

La 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.

A
s#

snombre

situacion

s#

ciudad

snombre

situacion

ciudad

S1 SALAZAR

20 LONDRES

S1 SALAZAR

20 LONDRES

S4 CORONA

20 LONDRES

S2 JAIMES

10 PARIS

A INTERSECT B
s#

snombre

S1 SALAZAR

situacion

ciudad

20 LONDRES

Diferencia

A B = {x : x A x B

La 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.

A
s#

snombre

situacion

s#

ciudad

snombre

situacion

ciudad

S1 SALAZAR

20 LONDRES

S1 SALAZAR

20 LONDRES

S4 CORONA

20 LONDRES

S2 JAIMES

10 PARIS

A MINUS B
s#

snombre

S4 CORONA

situacion

ciudad

20 LONDRES

Producto Cartesiano
A B = {( x , y ) : x A y B

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 TIMES B

A
s#

snombre

s#

p# cantidad

S1 SALAZAR

P1

100

S2 JAIMES

P2

200

S4 CORONA

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

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
s#

snombre

A WHERE situacion = 10

situacion

ciudad

S1 SALAZAR

20 LONDRES

S4 CORONA

20 LONDRES

S2 JAIMES

10 PARIS

s#

snombre

S2 JAIMES

situacion

ciudad

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
s#

snombre

A [s#,ciudad]

situacion

ciudad

s#

ciudad

S1 SALAZAR

20 LONDRES

S1

LONDRES

S4 CORONA

20 LONDRES

S4

LONDRES

S2 JAIMES

10 PARIS

S2

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.

A JOIN B

a1

b1

b1

c1

a1

b1

c1

a2

b1

b2

c2

a2

b1

c1

a3

b2

b3

c3

a3

b2

c2

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
compaa
C1
C1
C2
C2
C3
C3
C3

localizacion
PUEBLA
GUADALAJARA
LEON
CANCUN
PUEBLA
CANCUN
LEON

localizacion
PUEBLA
CANCUN

A DIVIDEBY B
compaa
C3

Minimalidad
El 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 y


divisin 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

B
A MINUS B

A MINUS (A MINUS B)

A INTERSECT 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.

Implementando la Reunin (Join)


(continuacin...)

1- Producto Cartesiano
A TIMES B

C
m

a1

b1

b1

c1

a1

b1

b2

c2

a1

b1

b3

c3

a1

b1

b1

c1

a2

b1

b1

c1

a2

b1

b2

c2

a2

b1

b2

c2

a3

b2

b3

c3

a2

b1

b3

c3

a3

b2

b1

c1

a3

b2

b2

c2

a3

b2

b3

c3

Implementando la Reunin (Join)


(continuacin...)

2- Restriccin (Seleccin)

a1

b1

b1

c1

a1

b1

b2

c2

a1

b1

b3

c3

a2

b1

b1

c1

a2

b1

b2

c2

a2

b1

b3

c3

a1

b1

b1

c1

a3

b2

b1

c1

a2

b1

b1

c1

a3

b2

b2

c2

a3

b2

b2

c2

a3

b2

b3

c3

C WHERE n = p
D

Implementando la Reunin (Join)


(continuacin...)

3- Proyeccin
D [m,n,q]

A JOIN B

a1

b1

b1

c1

a1

b1

c1

a2

b1

b1

c1

a2

b1

c1

a3

b2

b2

c2

a3

b2

c2

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]

Implementando la Divisin
(continuacin...)

A[X] MINUS ( ( A[X] TIMES B ) MINUS A )[X]


5:A

1:A
2:C
3:D
4:E

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 B
producto cartesiano, entre la proyeccin A y B, produce una relacin
C.

3- C MINUS A
diferencia, 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 E
diferencia, entre las dos proyecciones, produce finalmente la
equivalencia a la divisin.

Implementando la Divisin
(continuacin...)

Ejemplo :
A
X

A DIVIDEBY B

B
Y
x
z

Implementando la Divisin
(continuacin...)

A[X] MINUS ( ( A[X] TIMES B ) MINUS A )[X]


1:A

X
a

A[X]

b
c

Implementando la Divisin
(continuacin...)

A[X] MINUS ( ( A TIMES B ) MINUS A )[X]


2:C

A TIMES B

Implementando la Divisin
(continuacin...)

A[X] MINUS ( C MINUS A )[X]


3:D

C MINUS A

Implementando la Divisin
(continuacin...)

A[X] MINUS ( D )[X]


4:E

D
X

E
X

D[X]

b
c

Implementando la Divisin
(continuacin...)

A[X] MINUS E
5:A

A DIVIDEBY B
A MINUS E

Vous aimerez peut-être aussi