Está en la página 1de 22

Optimización Algebraica.

Profesor:
John Freddy Duitama Muñoz.

Facultad de Ingeniería.
U.de.A.

John Freddy Duitama U.de.A. Facultad de Ingeniería 1


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 E1 y E2 son equivalente si
representan la misma relación. E1  E2

John Freddy Duitama U.de.A. Facultad de Ingeniería 2


Leyes del álgebra relacional.

Sean E1, E2 y E3 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 E1 y E2. Entonces:

1.1. E1  E2  E2  E1

1.2. E1  E2  E2  E1
F F

1.3 E1 x E2  E2 x E1

• Nota: No importa el orden de los operandos.

John Freddy Duitama U.de.A. Facultad de Ingeniería 3


Leyes del álgebra relacional.
2. Ley asociativa para la reunión natural, la reunión- q y
el producto cartesiano.

Sean F1 y F2 condiciones en los atributos de E1 y E2.

2.1. (E1  E2)  E3  E1  (E2  E3 )

2.2. (E1  E2)  E3  E1  (E2  E3 )


F F F F
1 2 1 2
2.3. (E1 x E2 ) x E3  E1 x ( E2 x E3 )

• Nota: Puedo agrupar los pares que más me convengan.

John Freddy Duitama U.de.A. Facultad de Ingeniería 4


Leyes del álgebra relacional.

3. Cascada de proyecciones.
p x1,…,xn (p y1,…,yn (E) )  p x1,…,xn (E)
Siempre que {x1,…,xn}  {y1,…,yn}
• 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.

John Freddy Duitama U.de.A. Facultad de Ingeniería 5


Leyes del álgebra relacional.

5. Conmutando selecciones y proyecciones.

5.1. Si F involucra solo atributos que  {x1,…,xn}, entonces :


p x1,…,xn ( sF (E) )  sF (p x1,…,xn (E))
Nota: Puedo escoger a conveniencia el orden.

5.2. Si F involucra atributos y1,…yn que no estan entre x1,…,xn :


p x1,…,xn ( sF (E) )  p x1,…,xn ( sF (p x1,…,xn,y1,…,yn) (E) )

Nota: Proyecto solo los atributos que requiero para después.

John Freddy Duitama U.de.A. Facultad de Ingeniería 6


Leyes del álgebra relacional.

6. Conmutando selecciones con el producto cartesiano.


Si todos los atributos usados en F pertenecen a E1, 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 = F1 ^ F2 ,
Donde F1 involucra solo atributos de E1
F2 involucra solo atributos de E2. , entonces :

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

John Freddy Duitama U.de.A. Facultad de Ingeniería 7


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.

John Freddy Duitama U.de.A. Facultad de Ingeniería 8


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 E1 y E2,
entonces :
s F (E1  E2 )  s F (E1)  s F (E2 )

John Freddy Duitama U.de.A. Facultad de Ingeniería 9


Leyes del álgebra relacional.
10.Conmutando proyección con un producto cartesiano.

Sea los atributos: B1,…,Bm que aparecen en E1 y


C1,…,Ck que aparecen en E2, entonces :

p B1,…,Bm,C1,...,Ck (E1 x E2 )  p B1,…,Bm (E1) x p C1,…,Ck (E2)

11. Conmutando una proyección con una unión.


p A1,…,An (E1 U E2 )  p A1,…,An (E1) U p A1,…,An (E2)

John Freddy Duitama U.de.A. Facultad de Ingeniería 10


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)

John Freddy Duitama U.de.A. Facultad de Ingeniería 11


Algoritmo para optimizar expresiones relacionales.
ptítulo,autor,editor,código,cédula,nombre,dirección,ciudad,fecha

slibro.código= préstamo.código and préstamo.cédula = usuario.cédula

X Sea la vista LibrosPrestados =


LIBRO
Dos producto cruz, una
selección y una proyección.
USUARIO PRESTAMO O dos reuniónes naturales y una
proyección.

John Freddy Duitama U.de.A. Facultad de Ingeniería 12


Algoritmo para optimizar expresiones relacionales.

SELECT titulo Consulta del usuario


FROM LibrosPrestados utilizando la vista
WHERE fecha > 10/10/2001. existente en la B. De D.

ptitulo PASO 1:
La consulta escrita en
S.Q.L es convertida a su
sfecha > 10/10/2001
equivalente en álgebra
relacional.
LIBROSPRESTADOS

John Freddy Duitama U.de.A. Facultad de Ingeniería 13


Algoritmo para optimizar expresiones relacionales.
ptitulo

sfecha > 10/10/2001

ptitulo,autor,editor,código,cédula,nombre,direccion,ciudad,fecha

slibro.código= préstamo.código AND préstamo.cédula = usuario.cédula

X
PASO 2:
Reemplazo la vista por
X LIBRO su definición.

USUARIO PRESTAMO

John Freddy Duitama U.de.A. Facultad de Ingeniería 14


Algoritmo para optimizar expresiones relacionales.
ptitulo

sfecha > 10/10/2001

ptitulo,autor,editor,código,cédula,nombre,direccion,ciudad,fecha

slibro.código= préstamo.código

s préstamo.cédula = usuario.cédula
PASO 3:
X Use ley 4 para separar
cada selección con
X condiciones de la
LIBRO
forma F1 ^ F2.
USUARIO PRESTAMO

John Freddy Duitama U.de.A. Facultad de Ingeniería 15


Algoritmo para optimizar expresiones relacionales.
ptítulo

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

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

LIBRO
spréstamo.cédula = usuario.cédula PASO 4:
Use leyes 4 a 8, para
X mover cada selección
tan abajo en el árbol
USUARIO sfecha > 10/10/2001 como sea posible.

PRESTAMO
John Freddy Duitama U.de.A. Facultad de Ingeniería 16
Algoritmo para optimizar expresiones relacionales.
ptitulo
Regla 3.
s libro.código= préstamo.código

LIBRO
s préstamo.cédula = usuario.cédula

X
Paso 5:
USUARIO sfecha > 10/10/2001 Use reglas 3,5, 10 y 11
para mover las
proyecciónes tan abajo
PRESTAMO en el árbol como sea
posible.

John Freddy Duitama U.de.A. Facultad de Ingeniería 17


Algoritmo para optimizar expresiones relacionales.
ptitulo

slibro.código= préstamo.código

ptitulo,libro.código,préstamo.código Regla 5.2.


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

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

ppréstamo.código ptitulo,libro.código Regla 10

LIBRO
s préstamo.cédula = usuario.cédula
Paso 5:
X Use reglas 3,5, 10 y 11
para mover cada
USUARIO sfecha > 10/10/2001 proyección tan abajo en
el árbol como sea
posible.
PRESTAMO
John Freddy Duitama U.de.A. Facultad de Ingeniería 19
Algoritmo para optimizar expresiones relacionales.
ptitulo

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

ppréstamo.código ptitulo,libro.código
s préstamo.cédula = usuario.cédula
LIBRO

X Paso 5:
Uso reglas 5.2 y 10
ppréstamo.cédula, préstamo.código para mover la
pusuario.cédula sfecha > 10/10/2001 proyección tan abajo en
el árbol como sea
posible.
USUARIO PRESTAMO
John Freddy Duitama U.de.A. Facultad de Ingeniería 20
Algoritmo para optimizar expresiones relacionales.
ptitulo Paso 6:
Particionar los nodos interiores
s libro.código= préstamo.código
del árbol resultante en grupos:

X Todo nodo interior representando


una operación binaria, ( x , U , - )
conforma un grupo.
ppréstamo.código ptitulo,libro.código
s préstamo.cédula = usuario.cédula Se incluyen además en el grupo
LIBRO todos sus ancestros inmediatos
que representen operaciones
X unarias

ppréstamo.cédula, préstamo.código Tambien se incluyen los


pusuario.cédula descendientes representando
sfecha > 10/10/2001 operaciones unarias, excepto en
los casos que aparezca una
USUARIO PRESTAMO operación binaria en el camino.

John Freddy Duitama U.de.A. Facultad de Ingeniería 21


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.

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

También podría gustarte