Download Descargar - John Freddy Duitama

Document related concepts
no text concepts found
Transcript
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
1
F
2
F
1
F
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 - E2 )


s F (E1) - s F (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
X
USUARIO
John Freddy Duitama
Sea la vista LibrosPrestados =
LIBRO
PRESTAMO
Dos
producto
cruz,
una
selección y una proyección.
O dos reuniónes naturales y una
proyección.
U.de.A. Facultad de Ingeniería 12
Algoritmo para optimizar expresiones relacionales.
SELECT titulo
FROM LibrosPrestados
WHERE fecha > 10/10/2001.
ptitulo
sfecha > 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.
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
X
USUARIO
John Freddy Duitama
LIBRO
PASO 2:
Reemplazo la vista por
su definición.
PRESTAMO
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
X
X
LIBRO
PASO 3:
Use ley 4 para separar
cada selección con
condiciones
de
la
forma F1 ^ F2.
USUARIO
John Freddy Duitama
PRESTAMO
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
X
LIBRO
spréstamo.cédula = usuario.cédula
X
USUARIO
sfecha > 10/10/2001
PASO 4:
Use leyes 4 a 8, para
mover cada selección
tan abajo en el árbol
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
X
LIBRO
s préstamo.cédula = usuario.cédula
X
USUARIO
sfecha > 10/10/2001
PRESTAMO
John Freddy Duitama
Paso 5:
Use reglas 3,5, 10 y 11
para
mover
las
proyecciónes tan abajo
en el árbol como sea
posible.
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
X
LIBRO
s préstamo.cédula = usuario.cédula
X
USUARIO
sfecha > 10/10/2001
Regla 5.2.
Se agrega una proyección con los
atributos que serán necesarios
posteriormente.
Paso 5:
Use reglas 3,5, 10 y 11
para
mover
cada
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
X
ppréstamo.código
ptitulo,libro.código
s préstamo.cédula = usuario.cédula
LIBRO
X
USUARIO
Regla 10
sfecha > 10/10/2001
Paso 5:
Use reglas 3,5, 10 y 11
para
mover
cada
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
X
ppréstamo.código
ptitulo,libro.código
s préstamo.cédula = usuario.cédula
LIBRO
X
pusuario.cédula
ppréstamo.cédula, préstamo.código
USUARIO
John Freddy Duitama
sfecha > 10/10/2001
Paso 5:
Uso reglas 5.2 y 10
para
mover
la
proyección tan abajo en
el árbol como sea
posible.
PRESTAMO
U.de.A. Facultad de Ingeniería 20
Algoritmo para optimizar expresiones relacionales.
ptitulo
s libro.código= préstamo.código
X
ppréstamo.código
ptitulo,libro.código
s préstamo.cédula = usuario.cédula
LIBRO
X
pusuario.cédula
ppréstamo.cédula, préstamo.código
USUARIO
John Freddy Duitama
sfecha > 10/10/2001
PRESTAMO
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.
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