Sunteți pe pagina 1din 22

1

John Freddy Duitama U.de.A. Facultad de Ingeniera


Optimizacin Algebraica.
Profesor:
John Freddy Duitama Muoz.

Facultad de Ingeniera.
U.de.A.
2
John Freddy Duitama U.de.A. Facultad de Ingeniera
Optimizacin algebraica.

Sea la consulta : s
A= d
(AB BC)

Estrategias:
Reunin natural y luego seleccin.
Seleccin y luego reunin natural.

En general menor costo para la segunda

Definicin: Equivalencia de expresiones.
Dos relaciones son iguales si coinciden en su esquema, sin
importar el orden de los atributos.
Dos expresiones del algebra E
1
y E
2
son equivalente si
representan la misma relacin. E
1
E
2

3
John Freddy Duitama U.de.A. Facultad de Ingeniera
Leyes del lgebra relacional.
Sean E
1
, E
2
y E
3
expresiones del lgebra relacional.

1. Ley conmutativa para la reunin natural, la reunin- q y
el producto cartesiano.

Sea F una condicin en los atributos de E
1
y E
2
. Entonces:

1.1. E
1
E
2
E
2
E
1

1.2. E
1
E
2
E
2
E
1


F F

1.3 E
1
x E
2
E
2
x E
1

Nota: No importa el orden de los operandos.
4
John Freddy Duitama U.de.A. Facultad de Ingeniera
Leyes del lgebra relacional.
2. Ley asociativa para la reunin natural, la reunin- q y
el producto cartesiano.

Sean F
1
y F
2
condiciones en los atributos de E
1
y E
2
.

2.1. (E
1
E
2
)

E
3
E
1
(E
2
E
3
)

2.2. (E
1
E
2
)

E
3
E
1
(E
2
E
3
)


F
1
F
2
F
1
F
2

2.3. (E
1
x E
2
)

x E
3
E
1
x ( E
2
x E
3
)

Nota: Puedo agrupar los pares que ms me convengan.
5
John Freddy Duitama U.de.A. Facultad de Ingeniera
Leyes del lgebra relacional.
3. Cascada de proyecciones.
p
x1,,xn
(p
y1,,yn
(E) ) p
x1,,xn
(E)
Siempre que {x
1
,,x
n
} {y
1
,,y
n
}
Nota: Puedo suprimir la proyeccin ms interna.

4. Cascada de selecciones.
s
F1
(s
F2
(E) )

s
F2 ^ F1
(E)
Corolario: Puedo conmutar el lado izquierdo:
s
F1
(s
F2
(E) )

s
F2
(s
F1
(E) )

Nota: ejecuto las selecciones en el orden que ms me


convenga.

6
John Freddy Duitama U.de.A. Facultad de Ingeniera
Leyes del lgebra relacional.
5. Conmutando selecciones y proyecciones.

5.1. Si F involucra solo atributos que {x
1
,,x
n
}, entonces :
p
x1,,xn
( s
F
(E) ) s
F
(p
x1,,xn
(E))
Nota: Puedo escoger a conveniencia el orden.



5.2. Si F involucra atributos y
1
,y
n
que no estan entre x
1
,,x
n
:
p
x1,,xn
( s
F
(E) ) p
x1,,xn
( s
F
(p
x1,,xn,y1,,yn
)

(E) )

Nota: Proyecto solo los atributos que requiero para despus.
7
John Freddy Duitama U.de.A. Facultad de Ingeniera
Leyes del lgebra relacional.
6. Conmutando selecciones con el producto cartesiano.
Si todos los atributos usados en F pertenecen a E
1
, entonces :


s
F
(E1 x E2 ) s
F
(E1) x E2
Nota: Puedo realizar primero la seleccin y luego el producto.


6.1. Corolario:
Si F = F
1

^
F
2
,
Donde F
1
involucra solo atributos de E
1
F
2
involucra solo atributos de E
2.
, entonces :

s
F
(E1 x E2 ) s
F1
(E1) x s
F2
(E2 )

8
John Freddy Duitama U.de.A. Facultad de Ingeniera
Leyes del lgebra relacional.
6.2. Corolario:

Si F2 involucra atributos de ambas expresiones
F1 involucra solo atributos de E1, entonces :

s
F
(E1 x E2 ) s
F2
( s
F1
(E1) x (E2 ) )



Nota: Siempre que sea posible ejecuto primero las
operaciones unarias y luego las binarias.

9
John Freddy Duitama U.de.A. Facultad de Ingeniera
Leyes del lgebra relacional.

7. Conmutando la seleccin con la unin.
s
F
(E1 U E2 ) s
F
(E1) U s
F
(E2 )


8. Conmutando la seleccin con un conjunto diferencia.
s
F
(E1 - E2 ) s
F
(E1) - s
F
(E2 )
s
F
(E1 - E2 ) s
F
(E1) - E2


9. Conmutando la Seleccin con la reunin natural.
Si F involucra nicamente atributos compartidos por E
1
y E
2
,
entonces :
s
F
(E1 E2 ) s
F
(E1) s
F
(E2 )
10
John Freddy Duitama U.de.A. Facultad de Ingeniera
Leyes del lgebra relacional.
10.Conmutando proyeccin con un producto cartesiano.

Sea los atributos: B
1
,,B
m
que aparecen en E
1
y
C
1
,,C
k
que

aparecen en E
2
, entonces :

p
B1,,Bm,C1,...,Ck
(E
1
x E
2
) p
B1,,Bm
(E
1
) x p
C1,,Ck
(E
2
)




11. Conmutando una proyeccin con una unin.
p
A1,,An
(E
1
U E
2
) p
A1,,An
(E
1
) U p
A1,,An
(E
2
)

11
John Freddy Duitama U.de.A. Facultad de Ingeniera
Algoritmo para optimizar expresiones relacionales.

Entrada :
Una expresin del algebra relacional equivalente a la consulta
del usuario.

Salida : Un programa para evaluar tal expresin.

Mtodo:
Ejecutar en orden los pasos que ilustraremos con un ejemplo.


Sean las relaciones existentes en la Base de datos:

Libro(Cdigo,Ttulo,Autor,Editor,)
Usuario(Cdula,Nombre,Direccin,Ciudad)
Prstamo(Cdigo,Cdula,Fecha)
12
John Freddy Duitama U.de.A. Facultad de Ingeniera
Algoritmo para optimizar expresiones relacionales.














p
ttulo,autor,editor,cdigo,cdula,nombre,direccin,ciudad,fecha

s
libro.cdigo= prstamo.cdigo and prstamo.cdula = usuario.cdula
X

X

LIBRO
PRESTAMO
USUARIO
Sea la vista LibrosPrestados =
Dos producto cruz, una
seleccin y una proyeccin.
O dos reunines naturales y una
proyeccin.
13
John Freddy Duitama U.de.A. Facultad de Ingeniera
Algoritmo para optimizar expresiones relacionales.













LIBROSPRESTADOS
p
titulo

s
fecha > 10/10/2001
Consulta del usuario
utilizando la vista
existente en la B. De D.
PASO 1:
La consulta escrita en
S.Q.L es convertida a su
equivalente en lgebra
relacional.
SELECT titulo
FROM LibrosPrestados
WHERE fecha > 10/10/2001.


14
John Freddy Duitama U.de.A. Facultad de Ingeniera
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO USUARIO
p
titulo,autor,editor,cdigo,cdula,nombre,direccion,ciudad,fecha

s
libro.cdigo= prstamo.cdigo AND prstamo.cdula = usuario.cdula
p
titulo

s
fecha > 10/10/2001
PASO 2:
Reemplazo la vista por
su definicin.
15
John Freddy Duitama U.de.A. Facultad de Ingeniera
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO USUARIO
p
titulo,autor,editor,cdigo,cdula,nombre,direccion,ciudad,fecha

s
libro.cdigo= prstamo.cdigo
p
titulo

s
fecha > 10/10/2001
PASO 3:
Use ley 4 para separar
cada seleccin con
condiciones de la
forma F
1

^

F
2
.
s
prstamo.cdula = usuario.cdula
16
John Freddy Duitama U.de.A. Facultad de Ingeniera
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO
USUARIO
p
ttulo,autor,editor,cdigo,cdula,nombre,direccin,ciudad,fecha

p
ttulo

PASO 4:
Use leyes 4 a 8, para
mover cada seleccin
tan abajo en el rbol
como sea posible.
s
libro.cdigo= prstamo.cdigo
s
fecha > 10/10/2001
s
prstamo.cdula = usuario.cdula
17
John Freddy Duitama U.de.A. Facultad de Ingeniera
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO
USUARIO
p
titulo

Paso 5:
Use reglas 3,5, 10 y 11
para mover las
proyeccines tan abajo
en el rbol como sea
posible.
s
libro.cdigo= prstamo.cdigo
s
fecha > 10/10/2001
s
prstamo.cdula = usuario.cdula
Regla 3.
18
John Freddy Duitama U.de.A. Facultad de Ingeniera
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO
USUARIO
p
titulo

Paso 5:
Use reglas 3,5, 10 y 11
para mover cada
proyeccin tan abajo en
el rbol como sea
posible.
s
libro.cdigo= prstamo.cdigo
s
fecha > 10/10/2001
s
prstamo.cdula = usuario.cdula
Regla 5.2.
p
titulo,libro.cdigo,prstamo.cdigo
Se agrega una proyeccin con los
atributos que sern necesarios
posteriormente.
19
John Freddy Duitama U.de.A. Facultad de Ingeniera
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO
USUARIO
p
titulo

Paso 5:
Use reglas 3,5, 10 y 11
para mover cada
proyeccin tan abajo en
el rbol como sea
posible.
s
libro.cdigo= prstamo.cdigo
s
fecha > 10/10/2001
s
prstamo.cdula = usuario.cdula
Regla 10 p
titulo,libro.cdigo

p
prstamo.cdigo

20
John Freddy Duitama U.de.A. Facultad de Ingeniera
Algoritmo para optimizar expresiones relacionales.












Paso 5:
Uso reglas 5.2 y 10
para mover la
proyeccin tan abajo en
el rbol como sea
posible.
s
fecha > 10/10/2001
p
usuario.cdula

PRESTAMO
USUARIO
X

LIBRO
s
prstamo.cdula = usuario.cdula
p
titulo,libro.cdigo
p
prstamo.cdigo

X

p
titulo

s
libro.cdigo= prstamo.cdigo
p
prstamo.cdula, prstamo.cdigo

21
John Freddy Duitama U.de.A. Facultad de Ingeniera
Algoritmo para optimizar expresiones relacionales.












Paso 6:
Particionar los nodos interiores
del rbol resultante en grupos:

Todo nodo interior representando
una operacin binaria, ( x , U , - )
conforma un grupo.

Se incluyen adems en el grupo
todos sus ancestros inmediatos
que representen operaciones
unarias

Tambien se incluyen los
descendientes representando
operaciones unarias, excepto en
los casos que aparezca una
operacin binaria en el camino.
X

X

LIBRO
PRESTAMO
USUARIO
p
titulo

s
libro.cdigo= prstamo.cdigo
s
fecha > 10/10/2001
s
prstamo.cdula = usuario.cdula
p
titulo,libro.cdigo
p
prstamo.cdigo

p
usuario.cdula

p
prstamo.cdula, prstamo.cdigo

22
John Freddy Duitama U.de.A. Facultad de Ingeniera
Bibliografa.

Jeffrey D. Ullman. Principles of Database and
Knowledge-Base System. Volmenes II. Computer
Science Press. 1988. Captulo 11. pp. 662-673.



Copyright: Esta presentacin puede ser reproducida
solo para fines acadmicos y mencionando siempre
al autor.
John Freddy Duitama M.
Universidad de Antioquia.
Facultad de Ingeniera.

S-ar putea să vă placă și