Está en la página 1de 27

Optimización algebraica.

Sea la consulta : s A= d (AB Ä B 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
Equivalencia de expresiones

 Una expresión del AR es equivalente a


otra, si el resultado es el mismo.

 Sin embargo una expresión equivalente


puede ser mas eficiente que otra en
tiempo de respuesta.

 Se aplican reglas de equivalencia entre


operadores del álgebra relacional, que
permiten minimizar el tamaño de los
resultados intermedios.
• 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.

Leyes del • Sea F una condición en los atributos de E1 y E2.


Entonces:

álgebra • 1.1. E1 Ä E2 º E2 Ä E1
relacional. • 1.2. E1 Ä E2 º E2 Ä E1
• F F

• 1.3 E1 A E2 º E2 A E1

• Nota: No importa el orden de los operandos.


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 A E2 º E2 A E 1
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 A E2 º E2 A E 1
3. Cascada de proyecciones.

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) )

s F2 ^ F1 s F2

s F1

Nota: ejecuto las selecciones en el orden que más me convenga.


5. Conmutando selecciones y proyecciones.
Conmutatividad de la selección
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.

p x1,…,xn sF

sF p x1,…,xn
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 )


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.
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) - s F (E2 )
s F (E1 - 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 )
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)
Heurística: empujar lo más abajo en el árbol las selecciones y
proyecciones.
Árbol lineal izquierdo

Es un árbol de ejecución donde en cada nodo


binario el hijo derecho es una tabla
• Arbol canónico: Es un árbol lineal izquierdo
donde cada nodo binario corresponde a un
producto cartesiano X, la selección es sobre
toda la condición y la proyección Π sobre todos los
atributos

SELECT <Lista Atributos>


FROM T1, T2, … Tn
WHERE <Condición>

Nota: es el mas rápido de construir pero el más costoso


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)
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

Sea la vista LibrosPrestados =


X Dos producto cruz, una
LIBRO
selección y una proyección.
O dos reuniónes naturales y una
USUARIO PRESTAMO proyección.
SELECT titulo Consulta del usuario
FROM LibrosPrestados utilizando la vista
WHERE fecha > 10/10/2001. existente en la B. De D.

ptitulo PASO 1:
La consulta escrita en
S.Q.L es convertida a su
sfecha > 10/10/2001
equivalente en álgebra
relacional.
LIBROSPRESTADOS
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
PASO 2:
Reemplazo la vista por
X LIBRO su definición.

USUARIO PRESTAMO
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
PASO 3:
X Use ley 4 para separar
cada selección con
X LIBRO
condiciones de la
forma F1 ^ F2.
PRESTAMO
ptítulo

ptítulo,autor,editor,código,cédula,nombre,dirección,ciudad,fecha

s libro.código= préstamo.código

LIBRO
PASO 4:
Use leyes 4 a 8, para
X mover cada selección
tan abajo en el árbol
sfecha > 10/10/2001 como sea posible.
USUARIO

PRESTAMO
ptitulo
Regla 3.
s libro.código= préstamo.código

LIBRO
s préstamo.cédula = usuario.cédula

X
Paso 5:
USUARIO sfecha > 10/10/2001 Use reglas 3,5, 10 y 11
para mover las
proyecciónes tan abajo
PRESTAMO en el árbol como sea
posible.
ptitulo

slibro.código= préstamo.código

ptitulo,libro.código,préstamo.código Regla 5.2.


Se agrega una proyección con los
X
atributos que serán necesarios
LIBRO posteriormente.
s préstamo.cédula = usuario.cédula
Paso 5:
X Use reglas 3,5, 10 y 11
para mover cada
sfecha > 10/10/2001 proyección tan abajo en
USUARIO
el árbol como sea
posible.
PRESTAMO
ptitulo

s libro.código= préstamo.código

ppréstamo.código ptitulo,libro.código Regla 10

LIBRO
s préstamo.cédula = usuario.cédula
Paso 5:
X Use reglas 3,5, 10 y 11
para mover cada
sfecha > 10/10/2001 proyección tan abajo en
USUARIO
el árbol como sea
posible.
PRESTAMO
ptitulo

s libro.código= préstamo.código

ppréstamo.código ptitulo,libro.código
s préstamo.cédula = usuario.cédula
LIBRO

X Paso 5:
Uso reglas 5.2 y 10
ppréstamo.cédula, préstamo.código para mover la
pusuario.cédula sfecha > 10/10/2001 proyección tan abajo en
el árbol como sea
posible.
USUARIO PRESTAMO
Algoritmo para optimizar expresiones relacionales.
ptitulo Paso 6:
Particionar los nodos interiores
s libro.código= préstamo.código
del árbol resultante en grupos:

Todo nodo interior representando


X
una operación binaria, ( x , U , - )
conforma un grupo.
ppréstamo.código ptitulo,libro.código
Se incluyen además en el grupo
s préstamo.cédula = usuario.cédula
LIBRO todos sus ancestros inmediatos
que representen operaciones
X unarias

ppréstamo.cédula, préstamo.código Tambien se incluyen los


pusuario.cédula descendientes representando
sfecha > 10/10/2001 operaciones unarias, excepto en
los casos que aparezca una
USUARIO operación binaria en el camino.
PRESTAMO

También podría gustarte