1 John Freddy Duitama U.de.A. Facultad de Ingeniería Optimización Algebraica. Profesor: John...

Preview:

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.