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.