Vous êtes sur la page 1sur 57

Algebra Relacional

Bases de Datos 2 - Tecnologo de Informatica

BD2 - Algebra Relacoinal

Outline

Introduccin
Vision general

Operadores
Operaciones relacionales unarias
Operaciones de la teora de conjuntos
Operadores derivados

rbol de consulta

Operadores relacionales adicionales

BD2 - Algebra Relacoinal

Outline

Introduccin
Vision general

Operadores
Operaciones relacionales unarias
Operaciones de la teora de conjuntos
Operadores derivados

rbol de consulta

Operadores relacionales adicionales

BD2 - Algebra Relacoinal

Outline

Introduccin
Vision general

Operadores
Operaciones relacionales unarias
Operaciones de la teora de conjuntos
Operadores derivados

rbol de consulta

Operadores relacionales adicionales

BD2 - Algebra Relacoinal

Visin general

Conjunto de operadores para consultar BD- Rs.


Define conjunto de ops estndar en BD- Rs.
Operadores que reciben relaciones y devuelven
relaciones:
Sobre conjuntos de tuplas:
Unin, Diferencia, Producto Cartesiano.

Especficos para BDs Rel.


Seleccin, Proyeccin, Join.

BD2 - Algebra Relacoinal

El Algebra Relacional

Sintaxis
Qu smbolos se utilizan para cada operador y qu
parmetros recibe.

Semntica
Cul es el esquema del resultado?.
Cul es la instancia del resultado?.
Qu condiciones se deben cumplir para que se pueda
aplicar el operador?.

BD2 - Algebra Relacoinal

Outline

Introduccin
Vision general

Operadores
Operaciones relacionales unarias
Operaciones de la teora de conjuntos
Operadores derivados

rbol de consulta

Operadores relacionales adicionales

BD2 - Algebra Relacoinal

Outline

Introduccin
Vision general

Operadores
Operaciones relacionales unarias
Operaciones de la teora de conjuntos
Operadores derivados

rbol de consulta

Operadores relacionales adicionales

BD2 - Algebra Relacoinal

Seleccin
Descripcin general

Permite obtener las tuplas que cumplen una cierta


condicin.
Sintaxis:
<condicion> (< relacion >)
donde:
condicion es una condicin lgica sobre valores de los
atributos de las tuplas resultado.
relacion es una relacin o expresin relacional

BD2 - Algebra Relacoinal

Seleccin
Descripcin general

Sea R una relacin y una condicin.

(R)
da como resultado otra relacin
con esquema igual que el de R
con instancia el conjunto de tuplas de las instancias de R
que cumplen con

BD2 - Algebra Relacoinal

Seleccin
Ejemplos

Figura : Esq. base de datos relacional Empresa

BD2 - Algebra Relacoinal

Seleccin
Ejemplos

APELLIDO1=GONZALEZ (EMPLEADO)
SUELDO>3000 (EMPLEADO)
APELLIDO1=GONZALEZ
not

and SUELDO>3000 (EMPLEADO)

(APELLIDO1=GONZALEZ and SUELDO>3000) (EMPLEADO)

APELLIDO1=APELLIDO2 (EMPLEADO)

BD2 - Algebra Relacoinal

Seleccin
Ejemplos

APELLIDO1=GONZALEZ (EMPLEADO)
SUELDO>3000 (EMPLEADO)
APELLIDO1=GONZALEZ
not

and SUELDO>3000 (EMPLEADO)

(APELLIDO1=GONZALEZ and SUELDO>3000) (EMPLEADO)

APELLIDO1=APELLIDO2 (EMPLEADO)

BD2 - Algebra Relacoinal

Proyeccin
Descripcin general

Permite obtener las tuplas con un cierto conjunto de


atributos.
Sintaxis:
<lista_atributos> (< relacion >)
donde:
lista_atributos es una lista de atributos a aparecer en la
relacin resultado.
relacion es una relacin o expresin relacional

BD2 - Algebra Relacoinal

Proyeccin
Descripcin general

Sea R una relacin.

A1,...,An (R)
da como resultado otra relacin
con esquema (A1 , . . . , An )
con tuplas formadas a partir de las de R tomando los
valores para los atributos A1 , . . . , An
Observacin: Como no se admiten tuplas repetidas, al realizar
una proyeccin, podran quedar menos tuplas que en la
relacin de partida.

BD2 - Algebra Relacoinal

Proyeccin
Ejemplos

SEXO,SUELDO (EMPLEADO)

BD2 - Algebra Relacoinal

Secuencia de operaciones
Descripcin general

Podemos escribir las operaciones como una nica


expresin de lgebra relacional anidando dichas
operaciones, o aplicar una sola expresin una nica vez y
crear relaciones intermedias.
nica expresin:
NOMBRE,APELLIDO1,SUELDO (Dno=5 (EMPLEADO))
Relacin intermedia:
DEP5_EMPS (NOMBRE, APELLIDO, . . . , SALARIO, . . . )
Dno=5 (EMPLEADO)
RESULTADO NOMBRE,APELLIDO,SALARIO (DEP5_EMPS)

BD2 - Algebra Relacoinal

Outline

Introduccin
Vision general

Operadores
Operaciones relacionales unarias
Operaciones de la teora de conjuntos
Operadores derivados

rbol de consulta

Operadores relacionales adicionales

BD2 - Algebra Relacoinal

Unin
Descripcin general

Permite obtener la Unin de dos relaciones tomadas como


conjuntos de tuplas.
Sintaxis:
(< relacion >)

(< relacion >)

donde:
relacion es una relacin o expresin relacional

BD2 - Algebra Relacoinal

Unin
Descripcin general

Sean R y S dos relaciones con igual esquema (o


compatible).
La operacin:

(R S)
da como resultado otra relacin
cuyo esquema es igual al de R (y S)
y tiene como conjunto de tuplas a la unin de las de R y las
de S.

BD2 - Algebra Relacoinal

Interseccin
Descripcin general

Permite obtener la Interseccin de dos relaciones tomadas


como conjuntos de tuplas.
Sintaxis:
(< relacion >)

(< relacion >)

donde:
relacion es una relacin o expresin relacional

BD2 - Algebra Relacoinal

Interseccin
Descripcin general

Sean R y S dos relaciones con igual esquema (o


compatible).
La operacin:

(R S)
da como resultado otra relacin
cuyo esquema es igual al de R (y S)
y tiene como conjunto de tuplas a la interseccin de las de
R y las de S.

BD2 - Algebra Relacoinal

Diferencia
Descripcin general

Permite obtener la Diferencia de dos relaciones tomadas


como conjuntos de tuplas.
Sintaxis:
(< relacion >) (< relacion >)
donde:
relacion es una relacin o expresin relacional

BD2 - Algebra Relacoinal

Diferencia
Descripcin general

Sean R y S dos relaciones con igual esquema (o


compatible).
La operacin:

(R S)
da como resultado otra relacin
cuyo esquema es igual al de R (y S)
y tiene como conjunto de tuplas a la resta de las de R
menos las de S.

BD2 - Algebra Relacoinal

Cuestionario
Unin, Interseccin, Resta

(R (S T )) = ((R S) T ) ?
La Interseccin () tambin es una operacin asociativa?
La Union e Interseccin son conmutativas La resta
tambin lo es?

BD2 - Algebra Relacoinal

Producto Cartesiano
Descripcin general

Permite obtener el Producto Cartesiano de dos relaciones


tomadas como conjuntos de tuplas.
Sintaxis:
(< relacion >) (< relacion >)
donde:
relacion es una relacin o expresin relacional

BD2 - Algebra Relacoinal

Producto Cartesiano
Descripcin general

Sean R y S dos relaciones con esquemas (A1 , . . . , An ) y


(B1 , . . . , Bm ) respectivamente.
La operacin:

(R S)
da como resultado otra relacin
cuyo esquema es (A1 , . . . , An , B1 , . . . , Bm )
y cuyas tuplas son generadas por todas las combinaciones
posibles de las de R con las de S.

BD2 - Algebra Relacoinal

Producto Cartesiano
Ejemplos

VENTAS
FABS
#f
1
2
4
5
6
9
10
13
15
16
19

Nombre
Juan
Pedro
Maria
Ana
Pedro
Pepe
Laura
Maria
Pedro
Oscar
Juan

PRODS
Direcc
d1
d2
d3
d2
d4
d5
d4
d3
d1
d3
d4

#p
1
2
3
5
6
7
9
10
11
12
15

Desc
t1
t2
t3
t2
t3
t4
t2
t1
t3
t2
t3

#f
1
1
1
1
1
2
2
2
5
5
9
9
10

BD2 - Algebra Relacoinal

#p
1
2
3
10
11
3
6
7
3
5
7
3
3

Precio
100
200
300
1000
1100
350
600
700
350
200
100
300
400

Producto Cartesiano
Ejemplos

#p<3 (PRODS) #p<3 (VENTAS)


da como resultado:
#p
1
1
2
2

Desc
t1
t1
t2
t2

#f
1
1
1
1

#p
1
2
1
2

Precio
100
200
100
200

Este operador permite combinar las tuplas de dos tablas

BD2 - Algebra Relacoinal

Producto Cartesiano
Ejemplos

$2,$3,$4,$5 ($1<3 (PRODS) $2<3 (VENTAS))


da como resultado:
Desc
t1
t1
t2
t2

#f
1
1
1
1

#p
1
2
1
2

Precio
100
200
100
200

La notacin de atributos numerados tambin puede ser


usada en la seleccin.
BD2 - Algebra Relacoinal

Outline

Introduccin
Vision general

Operadores
Operaciones relacionales unarias
Operaciones de la teora de conjuntos
Operadores derivados

rbol de consulta

Operadores relacionales adicionales

BD2 - Algebra Relacoinal

Operadores Derivados
Operaciones relacionales binarias

Los operadores presentados antes son los bsicos del


lgebra Relacional (conjunto completo de operaciones).
Se definen otros que se pueden expresar en funcin de los
bsicos, pero que expresan operaciones importantes dado
que se usan habitualmente.
Estos operadores son:
Join: Permite expresar la combinacin de tablas.
Divisin: Permite obtener los datos que se relacionan con
todos los elementos de otro conjunto.

BD2 - Algebra Relacoinal

Join
Descripcin general

Permite combinar tuplas de dos relaciones a travs de una


condicin sobre los atributos.
Corresponde a una Seleccin sobre el Producto
Cartesiano de las relaciones
Sintaxis:

(< relacion >) o


n<condicion> (< relacion >)

BD2 - Algebra Relacoinal

Join
Descripcin general

Cmo se ejecuta el Join?


Cuando se realiza un Join entre dos relaciones (R y S),
cada vez que una tupla de R y otra de S cumplen la
condicin del join, se genera una tupla en el resultado.
Para que se genere una tupla en el resultado alcanza con
que exista una tupla en R y otra en S que se conecten
por la condicin del Join.

BD2 - Algebra Relacoinal

-Join
Descripcin general

Sean R y S dos relaciones y una condicin, la operacin:

Ro
n S
es equivalente a realizar:

(R S)
Cul es el esquema resultado?

BD2 - Algebra Relacoinal

Join Natural
Descripcin general

Sean R y S dos relaciones, la operacin:

RS
es equivalente a realizar:
-Join con la condicin de igualdad entre los atributos de
igual nombre
y luego proyectar eliminando columndas con nombre
repetido

BD2 - Algebra Relacoinal

Join Natural
Ejemplos

Dar los nombres de fabricantes y la descripcin de los


productos que vende

Nombre,Desc ((FABS VENTAS) PRODS)

Dar descripcin y precio de productos vendidos por Juan.

Desc,Precio ((Nombre=Juan (FABS) VENTAS) PRODS)

BD2 - Algebra Relacoinal

Divisin
Descripcin general

Sean R y S dos relaciones con esquemas


(A1 , . . . , An , B1 , . . . , Bm ) y (B1 , . . . , Bm ) respectivamente.
La operacin:

(R S)
da como resultado otra relacin
cuyo esquema es (A1 , . . . , An )
y su contenido son las tuplas tomadas a partir de las de
r (R) tales que su valor (a1 , . . . , an ) est asociado en r (R)
con TODOS los valores (b1 , . . . , bm ) que estn en s (S)

BD2 - Algebra Relacoinal

Divisin
Ejemplos

Sean R y S, y Q = R S
R( A, B )
a1 b1
a1 b2
a2 b1
a2 b2
a2 b3
a2 b4
a3 b1
a3 b3

S( B )
b1
b2
b3

Q( A )
a2
=

BD2 - Algebra Relacoinal

Divisin
Ejemplos

Observacin: Las tuplas solucin deben estar


relacionadas con todos los valores de S, pero NO se exige
que lo este solo con esos valores. Pueden estar
relacionadas con otros valores
Ejemplo:
Dar los #p vendidos por todos los fabricantes
Resultado: #p,#f (VENTAS) #f (FABS)

BD2 - Algebra Relacoinal

Divisin
Ejemplos

Dar los #p vendidos por todos los fabricantes que venden


algn producto.

#p,#f (VENTAS) #f (VENTAS)


2

Dar los #f que venden todos los productos vendidos por


algn fabricante.

#f ,#p (VENTAS) #p (VENTAS)

BD2 - Algebra Relacoinal

Divisin
Ejemplos

Dar los #f que venden todos los productos con descripcin


"t1".

VEND_T 1 #f ,#p (VENTAS) #f (Desc=t1 (PRODS))

Dar nombre y direccin de fabricantes que venden todos


los productos con descripcin "t1".

Nombre,Direc (FABS VEND_T 1)

BD2 - Algebra Relacoinal

Divisin
En funcin de operadores base

La divisin se puede expresar en funcin de operadores base.


T (X ) R(X , Y ) S(Y )
T 1 X (R)
Valores base a incluir en el resultado.

T 2 X ((T 1 S) R)
Tuplas de R a las que les falta relacionarse en R con algn
elemento de S.
Lo que NO se quiere en el resultado.

T T1 T2

BD2 - Algebra Relacoinal

Divisin
En funcin de operadores base

La divisin se puede expresar en funcin de operadores base.


T (X ) R(X , Y ) S(Y )
T 1 X (R)
Valores base a incluir en el resultado.

T 2 X ((T 1 S) R)
Tuplas de R a las que les falta relacionarse en R con algn
elemento de S.
Lo que NO se quiere en el resultado.

T T1 T2

BD2 - Algebra Relacoinal

Divisin
En funcin de operadores base

La divisin se puede expresar en funcin de operadores base.


T (X ) R(X , Y ) S(Y )
T 1 X (R)
Valores base a incluir en el resultado.

T 2 X ((T 1 S) R)
Tuplas de R a las que les falta relacionarse en R con algn
elemento de S.
Lo que NO se quiere en el resultado.

T T1 T2

BD2 - Algebra Relacoinal

Outline

Introduccin
Vision general

Operadores
Operaciones relacionales unarias
Operaciones de la teora de conjuntos
Operadores derivados

rbol de consulta

Operadores relacionales adicionales

BD2 - Algebra Relacoinal

rbol de consultas
Representacin de consultas

Notacin usada habitualmente en sistemas relacionales


para representar consultas internamente.
Recibe el nombre de rbol de consulta, o tambin rbol de
evaluacin de consulta o rbol de ejecucin de consulta.
Es una estructura de datos en rbol que se corresponde
con una expresin de lgebra relacional.
Representa:
Las relaciones de entrada de la consulta como los nodos
hoja del rbol.
Las operaciones como nodos internos.

BD2 - Algebra Relacoinal

rbol de consultas
Ejecucin

Ejecucin:
1

Se ejecuta la operacin de un nodo interno, siempre que


estn disponibles sus operandos.
Reemplazar ese nodo interno por la relacin que resulta de
la ejecucin de la operacin.

El proceso concluye cuando se ejecuta el nodo raz y se


obtiene la relacin resultante de la consulta.

BD2 - Algebra Relacoinal

rbol de consultas
Ejemplo

NumProyecto,NumDptoProyecto,Apellido1,Direccion,FechaNac
(((UbicacionProyecto=0 Gijon0 (PROYECTO))
o
nNumDptoProyecto=NumeroDpto (DEPARTAMENTO))
o
nDniDirector =Dni (EMPLEADO))

Qu rbol representa esta consulta?


Cul es su orden de ejecucin?

BD2 - Algebra Relacoinal

rbol de consulta
Ejemplo

NumProyecto,NumDptoProyecto,Apellido1,Direccion,FechaNac

o
nD.DniDirector =E.Dni

o
nP.NumDptoProyecto=D.NumeroDpto

P.UbicacionProyecto=0 Gijon0

EMPLEADO

DEPARTAMENTO

PROYECTO

BD2 - Algebra Relacoinal

Outline

Introduccin
Vision general

Operadores
Operaciones relacionales unarias
Operaciones de la teora de conjuntos
Operadores derivados

rbol de consulta

Operadores relacionales adicionales

BD2 - Algebra Relacoinal

Operadores relacionales adicionales

Projeccin generalizada: F 1,F 2,Fn (R)


Funciones de agregacin: SUM, AVERAGE, MAXIMUM,
MINIMUM, COUNT
Funcin de agrupamiento:
<atributos_agrupacion> =<lista_funciones> (R)
Operaciones de recursin: Cierre recursivo
Concatenacin Externa (Outer Join)
Union Externa (Outer Union)

BD2 - Algebra Relacoinal

Recursin
Cierre Recursivo

El cierre recursivo es una operacin que se aplica a una


relacin recursiva entre las tuplas del mismo tipo.
No puede especificarse en el lgebra relacional bsico.
El lgebra relacional resuelve la recursin si se limitan los
niveles de recursividad.

BD2 - Algebra Relacoinal

Recursin
Cierre Recursivo

Figura : Supervisados por Ochoa directamente

Figura : Los supervisados por los que supervisa Ochoa

BD2 - Algebra Relacoinal

Concatenacin Externa
Outer Join

Permiten preservar como resultado del Join todas las


tuplas en R, o en S, o aquellas en ambas relaciones
idependientemente de si tienen tuplas conectadas en la
otra relacin.

BD2 - Algebra Relacoinal

Concatenacin Externa
Outer Join

Concatenacin externa izquierda:

R o<condicion> S
Concatenacin externa derecha:

R n<condicion> S
Concatenacin externa completa (Full Outer Join)

BD2 - Algebra Relacoinal

Unin Externa

Permite obtener la unin de tuplas de dos relaciones en el


caso de que esas relaciones no sean compatibles con la
unin.
Sean R(X,Y) y S(X,Z) dos relaciones que son parcialmente
compatibles, la unin externa da como resultado una
relacin de la forma T(X,Y,Z)

BD2 - Algebra Relacoinal

Vous aimerez peut-être aussi