Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Si A contiene atributos A1 de r y A2 de s, entonces V (A, r s) se estima como min (V (A1, r) * V (A2 A1, s), V (A1 A2, r) * V (A2, s), n r s ) Obsrvese que algunos atributos pueden estar en A1 y en A2, y que A1-A2 y A2-A1 denotan, respectivamente, a los atributos de A que slo proceden de r y a los atributos de A que slo proceden de s. Nuevamente, se pueden obtener estimaciones ms precisas utilizando la teora de la probabilidad, pero las aproximaciones anteriores funcionan bastante bien.
Las estimaciones de los distintos valores son directas para las proyecciones: son iguales en #A (r) que en r. Lo mismo resulta vlido para los atributos de agrupacin de las agregaciones. Para los resultados de suma, cuenta y promedio, se puede suponer, por sencillez, que todos los valores agregados son distintos. Para min (A) y max (A), el nmero de valores distintos puede estimarse como min (V (A, r), V (G, r)), donde G denota los atributos de agrupamiento. Se omiten los detalles de la estimacin de los valores distintos para otras operaciones.
A continuacin se relacionan varias reglas generales de equivalencia para las expresiones del lgebra relacional. Algunas de las equivalencias relacionadas aparecen en la Figura 14.2. Se utilizan $, $1, $2, etctera, para denotar los predicados, L1, L2, L3, etctera, para denotar las listas de atributos y E, E1,E2, etctera, para denotar las expresiones del lgebra relacional. El nombre de relacin r no es ms que un caso especial de expresin del lgebra relacional y puede utilizarse siempre que aparezca E. 1. Las operaciones de seleccin conjuntivas pueden dividirse en una secuencia de selecciones individuales. Esta transformacin se denomina cascada de ".
Regla 5
E1
E2
E2
E1
Regla 6a E3
E1
Una regla de equivalencia dice que las expresiones de dos formas son equivalentes. Se puede sustituir una expresin de la primera forma por una expresin de la segunda forma, o viceversa es decir, se puede sustituir una expresin de la segunda forma por una expresin de la primera forma, ya que las dos expresiones generan el mismo resultado en cualquier base de datos vlida. El optimizador utiliza las reglas de equivalencia para transformar las expresiones en otras equivalentes lgicamente.
348
E1
E2
E3
"$
"$
E1
E2
E1
E2
CAPTULO 14
OPTIMIZACIN DE CONSULTAS
a. Se distribuye cuando todos los atributos de la condicin de seleccin $0 implican nicamente los atributos de una de las expresiones (por ejemplo, E1) que se estn reuniendo.
"$ 0 (E1
E2
b. Se distribuye cuando la condicin de seleccin $1 implica nicamente los atributos de E1 y $2 implica nicamente los atributos de E2.
"$ 1 @ $ 2 (E1
("$ 2 (E2))
8. La operacin proyeccin se distribuye por la operacin de reunin zeta bajo las condiciones siguientes. a. Sean L1 y L2 atributos de E1 y de E2, respectivamente. Supngase que la condicin de reunin $ implica nicamente los atributos de L1 ' L 2. Entonces, !L1 ' L 2 (E1 $ E2) = = (#L1(E1)) $ (#L 2 (E2)) b. Considrese una reunin E1 $ E2. Sean L1 y L 2 conjuntos de atributos de E1 y de E2, respectivamente. Sean L3 los atributos de E1 que estn implicados en la condicin de reunin $, pero que no estn en L1 ' L 2, y sean L4 los atributos de E2 que estn implicados en la condicin de reunin $, pero que no estn en L1 ' L 2. Entonces, #L1 ' L 2 (E1 = #L1 ' L 2 ((#L1 ' L 3 (E1))
$
E2 = E2
E1
Realmente, el orden de los atributos es diferente en el trmino de la derecha y en el de la izquierda, por lo que la equivalencia no se cumple si se tiene en cuenta el orden de los atributos. Se puede aadir una operacin de proyeccin a uno de los lados de la equivalencia para reordenar los atributos de la manera adecuada, pero por simplicidad se omite la proyeccin y se ignora el orden de los atributos en la mayor parte de los ejemplos. Recurdese que el operador de reunin natural es simplemente un caso especial del operador de reunin zeta; por tanto, las reuniones naturales tambin son conmutativas. 6. a. Las operaciones de reunin natural son asociativas. (E1 E2) E3 = E1 (E2 E3) b. Las reuniones zeta son asociativas en el sentido siguiente: (E1 = E1
$1
9. Las operaciones de conjuntos unin e interseccin son conmutativas. E1 ' E2 = E2 ' E1 E1 % E2 = E2 % E1 La diferencia de conjuntos no es conmutativa. 10. La unin y la interseccin de conjuntos son asociativas. (E1 ' E2) ' E3 = E1 ' (E2 ' E3) (E1 % E2) % E3 = E1 % (E2 % E3) 11. La operacin de seleccin se distribuye por las operaciones de unin, interseccin y diferencia de conjuntos.
E2)
$2 @ $3
$1 @ $ 3
(E2
E3 = $ 2 E3)
donde $2 implica solamente atributos de E2 y de E3. Cualquiera de estas condiciones puede estar vaca; por tanto, se deduce que la operacin producto cartesiano () tambin es asociativa. La conmutatividad y la asociatividad de las operaciones de reunin son importantes para la reordenacin de las reuniones en la optimizacin de las consultas. 7. La operacin de seleccin se distribuye por la operacin de reunin zeta bajo las dos condiciones siguientes:
349
La equivalencia anterior, con sustituido por %, tambin es vlida, pero no se cumple si se sustituye por '. 12. La operacin de proyeccin se distribuye por la operacin unin. !L (E1 ' E2) = (#L (E1)) ' (#L (E2)) sta es slo una lista parcial de las equivalencias. En los ejercicios se discuten ms equivalencias que implican a los operadores relacionales extendidos, como la reunin externa y la agregacin.
14.3.2. Ejemplos de transformaciones
regla 6.a (asociatividad de la reunin natural) para transformar la reunin sucursal (cuenta impositor) en (sucursal cuenta) impositor: !nombre-cliente ("ciudad-sucursal = Arganzuela @ saldo >1000 ((sucursal cuenta) impositor)) Luego, empleando la regla 7.a, se puede reescribir la consulta como !nombre-cliente (("ciudad-sucursal = Arganzuela @ saldo>1000 (sucursal cuenta)) impositor) Examinemos ahora la subexpresin de seleccin de esta expresin. Empleando la regla 1 se puede partir la seleccin en dos, para obtener la subexpresin siguiente:
Ahora se ilustrar el empleo de las reglas de equivalencia. Se utilizar el ejemplo del banco con los esquemas de relaciones: Esquema-sucursal = (nombre-sucursal, ciudad-sucursal, activo) Esquema-cuenta = (nmero-cuenta, nombre-sucursal, saldo) Esquema-impositor = (nombre-cliente, nmero-cuenta) Las relaciones sucursal, cuenta e impositor son ejemplos de estos esquemas. En el ejemplo del Apartado 14.1 la expresin !nombre-cliente ("ciudad-sucursal = Arganzuela (sucursal (cuenta impositor))) se transform en la expresin siguiente, ! nombre-cliente ((" ciudad-sucursal = Arganzuela (sucursal)) (cuenta impositor)) que es equivalente a la expresin algebraica original, pero que genera relaciones intermedias de menor tamao. Esta transformacin se puede llevar a cabo empleando la regla 7.a. Recurdese que la regla slo dice que las dos expresiones son equivalentes; no dice que una sea mejor que la otra. Se pueden utilizar varias reglas de equivalencia, una tras otra, sobre una consulta o sobre partes de una consulta. Como ejemplo, supngase que se modica la consulta original para restringir la atencin a los clientes que tienen un saldo superior a 1.000 . La nueva consulta del lgebra relacional es !nombre-cliente ("ciudad-sucursal =Arganzuela @ saldo >1000 (sucursal (cuenta impositor))) No se puede aplicar el predicado de la seleccin directamente a la relacin sucursal, ya que el predicado implica atributos tanto de la relacin sucursal como de la relacin cuenta. No obstante, se puede aplicar antes la
350
Cuando se calcula la subexpresin ("ciudad-sucursal = Arganzuela (sucursal) cuenta) se obtiene una relacin cuyo esquema es (nombre-sucursal, ciudad-sucursal, activo, nmero-cuenta, saldo)