Upload
adoncia-anaya
View
215
Download
1
Embed Size (px)
Citation preview
1John 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.
Profesor:
John Freddy Duitama Muñoz.
Facultad de Ingeniería.
U.de.A.
2John Freddy Duitama U.de.A. Facultad de Ingeniería
Optimización algebraica.
Sea la consulta : A= d (AB C
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
3John Freddy Duitama U.de.A. Facultad de Ingeniería
Leyes del álgebra relacional.
Sean E1, E2 y E3 expresiones del álgebra relacional.
1. Ley conmutativa para la reunión natural, la reunión- y el producto cartesiano.
Sea F una condición en los atributos de E1 y E2. Entonces:
1.1. E1 E2
1.2. E1 E2
F F
1.3 E1 x E2 x
• Nota: No importa el orden de los operandos.
4John Freddy Duitama U.de.A. Facultad de Ingeniería
Leyes del álgebra relacional.
2. Ley asociativa para la reunión natural, la reunión- y el producto cartesiano.
Sean F1 y F2 condiciones en los atributos de E1 y E2.
2.1. (E1 E1 E2
2.2. (E1 E1 E2
F1
F2
F1
F2
2.3. (E1 x xE1 x E2 x
• Nota: Puedo agrupar los pares que más me convengan.
5John Freddy Duitama U.de.A. Facultad de Ingeniería
Leyes del álgebra relacional.
3. Cascada de proyecciones.
x1,…,xn (y1,…,yn (E) ) x1,…,xn (E)
Siempre que {x1,…,xn} {y1,…,yn}
• Nota: Puedo suprimir la proyección más interna.
4. Cascada de selecciones.
F1(F2 (E) ) F2 ^ F1 (E)
Corolario: Puedo conmutar el lado izquierdo:
F1(F2 (E) ) F2(F1 (E) )
• Nota: ejecuto las selecciones en el orden que más me convenga.
6John 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 {x1,…,xn}, entonces :
x1,…,xn ( F (E) ) F (x1,…,xn (E))
Nota: Puedo escoger a conveniencia el orden.
5.2. Si F involucra atributos y1,…yn que no estan entre x1,…,xn :
x1,…,xn ( F (E) ) x1,…,xn ( F (x1,…,xn,y1,…,yn) (E) )
Nota: Proyecto solo los atributos que requiero para después.
7John 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 E1, entonces :
F (E1 x E2 ) 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 :
F (E1 x E2 ) F1 (E1) x F2 (E2 )
8John 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 :
F (E1 x E2 ) F2 ( F1 (E1) x (E2 ) )
Nota: Siempre que sea posible ejecuto primero las operaciones unarias y luego las binarias.
9John Freddy Duitama U.de.A. Facultad de Ingeniería
Leyes del álgebra relacional.
7. Conmutando la selección con la unión.
F (E1 U E2 ) F (E1) U F (E2 )
8. Conmutando la selección con un conjunto diferencia.
F (E1 - E2 ) F (E1) - F (E2 )
F (E1 - E2 ) F (E1) - E2
9. Conmutando la Selección con la reunión natural.Si F involucra únicamente atributos compartidos por E1 y E2, entonces :
F (E1 E2 ) F (E1) F (E2 )
10John Freddy Duitama U.de.A. Facultad de Ingeniería
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 :
B1,…,Bm,C1,...,Ck (E1 x E2 ) B1,…,Bm (E1) x C1,…,Ck (E2)
11. Conmutando una proyección con una unión.
A1,…,An (E1 U E2 ) A1,…,An (E1) U A1,…,An (E2)
11John 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)
12John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.
título,autor,editor,código,cédula,nombre,dirección,ciudad,fecha
libro.código= préstamo.código and préstamo.cédula = usuario.cédula
X
XLIBRO
PRESTAMOUSUARIO
Sea la vista LibrosPrestados =
Dos producto cruz, una selección y una proyección.
O dos reuniónes naturales y una proyección.
13John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.
LIBROSPRESTADOS
titulo
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.
14John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.
X
X LIBRO
PRESTAMOUSUARIO
titulo,autor,editor,código,cédula,nombre,direccion,ciudad,fecha
libro.código= préstamo.código AND préstamo.cédula = usuario.cédula
titulo
fecha > 10/10/2001
PASO 2:
Reemplazo la vista por su definición.
15John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.
X
X LIBRO
PRESTAMOUSUARIO
titulo,autor,editor,código,cédula,nombre,direccion,ciudad,fecha
libro.código= préstamo.código
titulo
fecha > 10/10/2001
PASO 3:
Use ley 4 para separar cada selección con condiciones de la
forma F1 ^ F2.
préstamo.cédula = usuario.cédula
16John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.
X
X
LIBRO
PRESTAMO
USUARIO
título,autor,editor,código,cédula,nombre,dirección,ciudad,fecha
título
PASO 4:
Use leyes 4 a 8, para mover cada selección tan abajo en el árbol como sea posible.
libro.código= préstamo.código
fecha > 10/10/2001
préstamo.cédula = usuario.cédula
17John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.
X
X
LIBRO
PRESTAMO
USUARIO
titulo
Paso 5:
Use reglas 3,5, 10 y 11 para mover las proyecciónes tan abajo en el árbol como sea posible.
libro.código= préstamo.código
fecha > 10/10/2001
préstamo.cédula = usuario.cédula
Regla 3.
18John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.
X
X
LIBRO
PRESTAMO
USUARIO
titulo
Paso 5:
Use reglas 3,5, 10 y 11 para mover cada proyección tan abajo en el árbol como sea posible.
libro.código= préstamo.código
fecha > 10/10/2001
préstamo.cédula = usuario.cédula
Regla 5.2. titulo,libro.código,préstamo.código
Se agrega una proyección con los
atributos que serán necesarios
posteriormente.
19John Freddy Duitama U.de.A. Facultad de Ingeniería
Algoritmo para optimizar expresiones relacionales.
X
X
LIBRO
PRESTAMO
USUARIO
titulo
Paso 5:
Use reglas 3,5, 10 y 11 para mover cada proyección tan abajo en el árbol como sea posible.
libro.código= préstamo.código
fecha > 10/10/2001
préstamo.cédula = usuario.cédula
Regla 10 titulo,libro.código préstamo.código
20John 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.
fecha > 10/10/2001 usuario.cédula
PRESTAMOUSUARIO
X
LIBRO préstamo.cédula = usuario.cédula
titulo,libro.código préstamo.código
X
titulo
libro.código= préstamo.código
préstamo.cédula, préstamo.código
21John 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
PRESTAMOUSUARIO
titulo
libro.código= préstamo.código
fecha > 10/10/2001
préstamo.cédula = usuario.cédula
titulo,libro.código préstamo.código
usuario.cédula
préstamo.cédula, préstamo.código
22John 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.