You are on page 1of 22

1

John Freddy Duitama U.de.A. Facultad de Ingeniería
Optimización Algebraica.
Profesor:
John Freddy Duitama Muñoz.

Facultad de Ingeniería.
U.de.A.
2
John Freddy Duitama U.de.A. Facultad de Ingeniería
Optimización algebraica.

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

Estrategias:
 Reunión natural y luego selección.
 Selección y luego reunión natural.

En general menor costo para la segunda

Definición: 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 relación. E
1
 E
2

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

1. Ley conmutativa para la reunión natural, la reunión- q y
el producto cartesiano.

Sea F una condición 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 Ingeniería
Leyes del álgebra relacional.
2. Ley asociativa para la reunión natural, la reunión- 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 más me convengan.
5
John Freddy Duitama U.de.A. Facultad de Ingeniería
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 proyección más 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 más me
convenga.

6
John Freddy Duitama U.de.A. Facultad de Ingeniería
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 después.
7
John Freddy Duitama U.de.A. Facultad de Ingeniería
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 selección 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 Ingeniería
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 Ingeniería
Leyes del álgebra relacional.

7. Conmutando la selección con la unión.
s
F
(E1 U E2 )  s
F
(E1) U s
F
(E2 )


8. Conmutando la selección 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 Selección con la reunión 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 Ingeniería
Leyes del álgebra relacional.
10.Conmutando proyección 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 proyección con una unión.
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 Ingeniería
Algoritmo para optimizar expresiones relacionales.

Entrada :
Una expresión del algebra relacional equivalente a la consulta
del usuario.

Salida : Un programa para evaluar tal expresión.

Método:
Ejecutar en orden los pasos que ilustraremos con un ejemplo.


Sean las relaciones existentes en la Base de datos:

• Libro(Código,Título,Autor,Editor,)
• Usuario(Cédula,Nombre,Dirección,Ciudad)
• Préstamo(Código,Cédula,Fecha)
12
John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.














p
título,autor,editor,código,cédula,nombre,dirección,ciudad,fecha

s
libro.código= préstamo.código and préstamo.cédula = usuario.cédula
X

X

LIBRO
PRESTAMO
USUARIO
Sea la vista LibrosPrestados =
Dos producto cruz, una
selección y una proyección.
O dos reuniónes naturales y una
proyección.
13
John Freddy Duitama U.de.A. Facultad de Ingeniería
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 Ingeniería
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO USUARIO
p
titulo,autor,editor,código,cédula,nombre,direccion,ciudad,fecha

s
libro.código= préstamo.código AND préstamo.cédula = usuario.cédula
p
titulo

s
fecha > 10/10/2001
PASO 2:
Reemplazo la vista por
su definición.
15
John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO USUARIO
p
titulo,autor,editor,código,cédula,nombre,direccion,ciudad,fecha

s
libro.código= préstamo.código
p
titulo

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

^

F
2
.
s
préstamo.cédula = usuario.cédula
16
John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO
USUARIO
p
título,autor,editor,código,cédula,nombre,dirección,ciudad,fecha

p
título

PASO 4:
Use leyes 4 a 8, para
mover cada selección
tan abajo en el árbol
como sea posible.
s
libro.código= préstamo.código
s
fecha > 10/10/2001
s
préstamo.cédula = usuario.cédula
17
John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO
USUARIO
p
titulo

Paso 5:
Use reglas 3,5, 10 y 11
para mover las
proyecciónes tan abajo
en el árbol como sea
posible.
s
libro.código= préstamo.código
s
fecha > 10/10/2001
s
préstamo.cédula = usuario.cédula
Regla 3.
18
John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO
USUARIO
p
titulo

Paso 5:
Use reglas 3,5, 10 y 11
para mover cada
proyección tan abajo en
el árbol como sea
posible.
s
libro.código= préstamo.código
s
fecha > 10/10/2001
s
préstamo.cédula = usuario.cédula
Regla 5.2.
p
titulo,libro.código,préstamo.código
Se agrega una proyección con los
atributos que serán necesarios
posteriormente.
19
John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.












X

X

LIBRO
PRESTAMO
USUARIO
p
titulo

Paso 5:
Use reglas 3,5, 10 y 11
para mover cada
proyección tan abajo en
el árbol como sea
posible.
s
libro.código= préstamo.código
s
fecha > 10/10/2001
s
préstamo.cédula = usuario.cédula
Regla 10 p
titulo,libro.código

p
préstamo.código

20
John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.












Paso 5:
Uso reglas 5.2 y 10
para mover la
proyección tan abajo en
el árbol como sea
posible.
s
fecha > 10/10/2001
p
usuario.cédula

PRESTAMO
USUARIO
X

LIBRO
s
préstamo.cédula = usuario.cédula
p
titulo,libro.código
p
préstamo.código

X

p
titulo

s
libro.código= préstamo.código
p
préstamo.cédula, préstamo.código

21
John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.












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

Todo nodo interior representando
una operación binaria, ( x , U , - )
conforma un grupo.

Se incluyen además 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
operación binaria en el camino.
X

X

LIBRO
PRESTAMO
USUARIO
p
titulo

s
libro.código= préstamo.código
s
fecha > 10/10/2001
s
préstamo.cédula = usuario.cédula
p
titulo,libro.código
p
préstamo.código

p
usuario.cédula

p
préstamo.cédula, préstamo.código

22
John Freddy Duitama U.de.A. Facultad de Ingeniería
Bibliografía.

• Jeffrey D. Ullman. Principles of Database and
Knowledge-Base System. Volúmenes II. Computer
Science Press. 1988. Capítulo 11. pp. 662-673.



• Copyright: Esta presentación puede ser reproducida
solo para fines académicos y mencionando siempre
al autor.
John Freddy Duitama M.
Universidad de Antioquia.
Facultad de Ingeniería.