Para poder probar las combinaciones posibles que puede utilizar un gestor, se basaran en las reglas de equivalencia.
- Selección:
- Cascada:
- Unión:
- Conmutatividad:
- Proyección:
- Cascada: . Siempre y cuando las proyecciones sean subconjuntos de sus proyecciones siguientes.
- Conmutatividad con : . Siempre y cuando entre los atributos que proyecto se mantengan los atributos sobre los cuales condiciono.
- Producto Cartesiano y Junta:
- Conmutatividad:
- Asociatividad:
- Conmutatividad:
- Operaciones de Conjuntos:
- Conmutatividad:
- Asociatividad:
- Conmutatividad:
- Mixtas:
- Distribución de la selección en la junta: . Solo si puede escribirse como . Donde involucran solo y respectivamente atributos de y .
- Distribución de la proyección en la junta: . Solo si todos los atributos de junta están incluidos en . Entonces llamaremos a los atributos de respectivamente.
Heurísticas de Optimización
La aplicación de las reglas de equivalencia a una expresión algebraica para obtener otra de menor costo se conoce como optimización algebraica.
Las siguientes son algunas reglas generales utilizadas para optimizar algebraicamente una consulta:
- Realizar las selecciones lo más temprano posible
- Reemplazar productos cartesianos por juntas siempre que sea posible
- Proyectar para descartar los atributos no utilizados lo antes posible. Entre la selección y la proyección, priorizar la selección.
- En caso de que haya varias juntas, realizar aquella más restrictiva primero. Se puede optar por árboles left-deep o right-deep para acotar las posibilidades.