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