Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Optimizacion de consultas, Diapositivas de Programación de Bases de Datos

Optimizacion de consultas de Base de Datos

Tipo: Diapositivas

2019/2020

Subido el 20/04/2020

hjoelsotom
hjoelsotom 🇵🇪

6 documentos

1 / 42

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Optimización de
consultas
4
IV. Optimización de
consultas
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a

Vista previa parcial del texto

¡Descarga Optimizacion de consultas y más Diapositivas en PDF de Programación de Bases de Datos solo en Docsity!

Optimización de

consultas

IV. Optimización de consultas

IV. Optimización de consultas

IV. Optimización de consultas Dada una expresión del álgebra relacional, es labor del optimizador de consultas diseñar un plan de evaluación de consultas que calcule el mismo resultado que la expresión dada, y que sea la manera menos costosa de generar ese resultado (o, como mínimo, no mucho más que la menos costosa).

2. Transformación de expresiones relacionales

  • Se dice que dos expresiones del álgebra

relacional son equivalentes si, en cada

ejemplar legal de la base de datos, las dos

expresiones generan el mismo conjunto de

tuplas.

  • Un ejemplar legal de la base de datos es la que

satisface todas las restricciones de integridad

especificadas en el esquema de la base de datos.

  • El orden de las tuplas es irrelevante. IV. Optimización de consultas

1. Cascada de σ: Las operaciones de selección conjuntivas pueden dividirse en una secuencia de selecciones individuales. σ θ1 ^ θ 2 (E) = σ θ 1θ 2

(E))

  1. Las operaciones de selección son conmutativas σ θ 1θ 2 (E)) = σ θ 2θ 1

(E))

3. Cascada de Π: Sólo son necesarias las últimas operaciones de una secuencia de operaciones de proyección, las demás pueden omitirse. Π L

L

Ln

(E))…)) = Π

L

(E)

  1. Las selecciones pueden combinarse con los productos cartesianos y con las reuniones zeta. a) σ θ (E1 x E2) = E1 |X| θ E2 (Reunión zeta) b) σ θ 1 (E1 |X| θ 2 E2) = E1 |X| θ1 ^ θ 2 E IV. Optimización de consultas

5. Las operaciones de reunión zeta son

conmutativas

E1 |X|

θ

E2 = E2 |X|

θ

E

6. a) Las operaciones de reunión natural son

asociativas:

(E1 |X| E2) |X| E3 = E1 |X| (E2 |X| E3)

b) Las reuniones zeta son asociativas en el

sentido siguiente:

(E1 |X|

θ 1

E2 ) |X|

θ2^θ 3

E

= E1 |X|

θ1^θ 3

( E2 |X|

θ 2

E3)

donde θ 2 implica solamente atributos de E2 y

E3.

IV. Optimización de consultas

  1. La operación proyección se distribuye por la operación reunión zeta bajo las dos condiciones siguientes: a) Sean L1 y L2 atributos de E1 y E2, respectivamente. Supóngase que la condición de reunión θ implica únicamente los atributos de L1UL2. Entonces: Π L1 UL (E1 |X| θ E2) = (Π L (E1)) |X| θL (E2)) b) Considérese una reunión E1 |X| θ E2. Sean L1 y L conjuntos de atributos de E1 y E2 respectivamente. Sean L3 los atributos de E1 que están implicados en la condición de reunión θ, pero que no están en L1UL2, y sean L4 los atributos de E2 que están implicados en la condición de reunión θ, pero que no están en L1UL2. Entonces: Π L1 UL^ (E1 |X| θ E2 ) = Π L1 UL ((Π L1 UL (E1)) |X| θL2 UL (E2))) IV. Optimización de consultas
  1. Las operaciones de conjuntos unión e intersección son conmutativas E1 U E2 = E2 U E E1 ∩ E2 = E2 ∩ E La diferencia de conjuntos no es conmutativa.
  2. La unión y la intersección de conjuntos son asociativas (E1 U E2) U E3 = E1 U (E2 U E3) (E1 ∩ E2) ∩ E3 = E1 ∩ (E2 ∩ E3) IV. Optimización de consultas

Ejemplo

IV. Optimización de consultas

  • Hallar la expresión equivalente de: Π nombre-cliente ciudad-sucursal = «Barcelona» ( sucursal |X|(cuenta|X| impositor))) ▫ Aplicando la regla 7 (a) σ θ 0

(E1 |X|

θ E2) = (σ θ 0

(E1)) |X|

θ

E

nombre-cliente ( (σ ciudad-sucursal = «Barcelona»

( sucursal))

|X|(cuenta|X| impositor))

IV. Optimización de consultas

  • Lista de los clientes que tienen cuentas en alguna

sucursal de Barcelona con saldos menores a 1000 €.

nombre-cliente ciudad-sucursal = «Barcelona» ^ Saldo < 1000 ( sucursal |X|(cuenta|X| impositor))) ▫ Aplicando la regla 6(a) (E1 |X| E2) |X| E3 = E1 |X| (E2 |X| E3) Π nombre-cliente ciudad-sucursal = «Barcelona» ^ Saldo< (( sucursal|X|cuenta)|X| impositor))  Empleando la regla 7(a) σ θ 0 (E1 |X| θ E2) = (σ θ 0 (E1)) |X| θ E Π nombre-cliente ((σ ciudad-sucursal = «Barcelona» ^ Saldo< (sucursal|X|cuenta))|X| impositor) IV. Optimización de consultas

nombre-cliente ((σ ciudad-sucursal = «Barcelona» ^ Saldo< ( sucursal|X|cuenta))|X| impositor)  Empleando la regla 1 σ (^) θ1 ^ θ 2 (E) = σ (^) θ 1 (σ (^) θ 2 (E)) Π nombre-cliente ciudad-sucursal = «Barcelona» Saldo < 1000 ( sucursal|X|cuenta))|X| impositor) ▫ Empleando la regla 7(b) σ (^) θ1^θ 2 (E1 |X| θ E2) = (σ (^) θ 1 (E1)) |X| θ (σ (^) θ 2 (E2)) Π nombre-cliente ciudad-sucursal = «Barcelona» (sucursal) |X| σ Saldo< (cu enta))|X| impositor) IV. Optimización de consultas OJO: se pudo haber utilizado la regla 7.b sin necesidad de utilizar la regla 1 para obtener la relación final. De hecho, la regla 7.b puede obtenerse de las reglas 1 y 7.a.

Conjunto de reglas de equivalencia mínimo

  • Se dice que un conjunto de reglas de equivalencia es mínimo si no se puede obtener ninguna regla a partir de una reunión de las demás.
  • El ejemplo anterior muestra que el conjunto de reglas de equivalencia no es mínimo. Se puede generar una expresión equivalente a la original de diferentes maneras; el número de maneras diferentes de generar una expresión aumenta cuando se usa un conjunto de reglas de equivalencia que no es mínimo.
  • Los optimizadores de consultas, por tanto, usan conjuntos mínimos de reglas de equivalencia. IV. Optimización de consultas

Ordenación de las reuniones

  • Una buena ordenación de las operaciones de

reunión es importante para reducir el tamaño de

los resultados temporales.

  • Por ejemplo, según la regla 6 (a) la operación

reunión natural es asociativa:

(r1 |X| r2) |X| r3 = r1 |X| (r2 |X| r3)

  • Así, para realizar la operación: Π nombre-cliente ((σ ciudad-sucursal = «Barcelona» ( sucursal))|X|cuenta|X| impositor) IV. Optimización de consultas