Vous êtes sur la page 1sur 13

CONTENIDO

3.1. Importancia de la Optimizacin de Consultas



3.2. Transformaciones Equivalentes

3.3. Mtodo de Ejecucin del Join

3.4. Principios de Optimizacin



















3.1. Importancia de la Optimizacin de Consultas

Optimizacin de Consultas

Es el proceso de seleccin del plan de evaluacin de las consultas ms eficientes de entre las muchas
estrategias generalmente disponibles para el procesamiento de una consulta dada, especialmente si la
consulta es compleja.

Importancia

Crear un plan de evaluacin de consultas que minimice el costo de la evaluacin de consultas a travs
de la optimizacin de la misma.



















SMBD
CLIENTES

OPTIMIZADOR DE CONSULTAS













Rendimiento de una BD

Costo
Tamao
Velocidad
Potencia
3.2. Transferencias Equivalentes

Algebra Relacional
Seleccin


Proyeccin
X Producto Cartesiano
Join Reunin
Teora de Conjuntos
Unin
Interseccin
- Diferencia


Las consultas se pueden expresar de varias maneras
Expresiones equivalentes

En cada ejemplar de la base de datos
Las dos expresiones generan el mismo conjunto de tuplas
Sin importar el orden

Reglas de Equivalencia

Sustituir una expresin de la primera forma de otra expresin de la segunda forma y
viceversa
Sin modificar el resultado

El optimizador utiliza esas reglas para transformar expresiones en otras equivalentes lgicamente.


OPTIMIZACION
Estado
Actual
Estado
Nuevo
Ejemplo 1

1. Prrafo. Dame los datos de los empleados
2. Instruccin SQL

Select * from E

3. Consulta de Algebra Relacional

ENO, Ename, Title


(E)








Ejemplo 2

1. Prrafo. Dame los nombres de los empleados cuyo titulo sea Elect. Eng.
2. Instruccin SQL

Select Ename
From E
Where Title = Elect. Eng

3. Algebra Relacional

EName
(
Title = Elect. Eng
( E ) )

EName
(
Title = Elect. Eng
(
EName, Title
(E ) ))



Reglas de Equivalencias del Algebra Relacional


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.

A continuacin se relacionan varias reglas generales de equivalencia para las expresiones del Algebra
Relacional.

1. Las operaciones de seleccin conjuntivas pueden dividirse en una secuencia de selecciones
individuales. Esta transformacin se denomina Cascada de .

1 ^2
(E) =
1
(
2
(E))

2. Las operaciones de seleccin son conmutativas.


1
(
2
(E)) =
2
(
1
(E))

3. Solo son necesarias las ltimas operaciones de una secuencia de operaciones de proyeccin, las
dems pueden omitirse. Esta transformacin puede denominarse Cascada de .

L1
(
L2
((
L1
(E)))) =
L1
(E)

4. Las selecciones pueden combinarse con los productos cartesianos y con las reuniones zeta.

a)

(E
1
X E
2
) = E
1


E
2
Esta expresin es precisamente la definicin de la reunin zeta
b)
1
(E
1

2
E
2
) = E
1

1^2
E
2





5. Las operaciones de reunin zeta son conmutativas. 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 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.
E
1


E
2
= E
2


E
1

Recurdese que en la 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. Las reuniones zeta son asociativas en el
sentido siguiente:

(E
1


E
2
)

E
3
= E
1


(E
2


E
3
)

b) Las reuniones zeta son asociativas en el sentido siguiente:

(E
1

1
E
2
)
2 ^3
E
3
= E
1

1 ^3
(E
2

2
E
3
)

7. La operacin de seleccin se distribuye por la operacin de reunin zeta bajo las dos condiciones
siguientes:
a. Se distribuye cuando todos los atributos de la condicin de seleccin
0
implican
nicamente

los atributos de una de las expresiones que se estn reuniendo.

0
(E
1

E
2
) = (
0
(E
1
))

E
2

b. Se distribuye cuando la condicin de la seleccin
1
implica nicamente los atributos de
E
1
y
2
implica nicamente los atributos de E
2
.

1^2
(E
1

E
2
) = (
1
(E
1
) )

(
2
(E
2
))

8. La operacin proyeccin se distribuye por la operacin de reunin zeta bajo las condiciones
siguientes:
a. Sea L
1
y L
2
atributos de E
1
y E
2
, respectivamente. Supngase que la condicin de reunin
implica nicamente los atributos de L
1
L
2
. Entonces:


L1 L2
(E
1


E
2
) = (
L1
(E1))

(
L2
(E
2
))

b. Considere una reunin E
1

E
2
. Sean L
1
y L
2
conjuntos, de atributos de E
1
y E
2
,
respectivamente. Sea L
3
los atributos de E1 que estan implicados en la condicin de
reunin , pero que no estn en L
1
L
2
, y sean L
4
los atributos de E
2
que estn
implicados en la condicin de reunin pero no estn en L
1
L
2
. entonces:


L1 L2
(E
1


E
2
) =
L1 L2
((
L1 L3
(E
1
))


L2 L4
(E
2
)))


9. Las operaciones de conjuntos unin e interseccin son conmutativas. La diferencia en conjuntos
no es conmutativa.

E
1
E
2
= E
2
E
1

E
1
E
2
= E
2
E
1


10. La unin e interseccin de conjuntos son asociativas.

(E
1
E
2
) E
3
= E
1
(E
2
E
3
)
(E
1
E
2
) E
3
= E
1
(E
2
E
3
)

11. La operacin de seleccin se distribuye por las operaciones de unin, interseccin y diferencia de
conjuntos.

p
(E
1
E
2
) =
p
(E
1
) -
p
(E
2
)

De manera parecida, la equivalencia anterior, con sustituido por o por , tambin es
vlida. Adems,

p
(E
1
E
2
) =
p
(E
1
) - E
2


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
(E
1
E
2
) = (
L
(E
1
)) (
L
)E
2
))

3.3. Mtodo de ejecucin del JOIN

Join Reunin
Todas las tuplas que estn en ambas tablas
Smbolo
Tipo de Reuniones

Reunin Natural ()

Reunin de tablas con todos los atributos del mismo nombre de ambas tablas.

Reunin (

). Donde puede ser:



Atributo = Mismo nombre de atributo en ambas tablas
Atributo1 = Atributo2, cuando el atributo para la reunin no es igual en ambas
tablas.

Semireunin

Solo las tuplas que cumplan las condiciones
Left outer join
Reunin externa por la izquierda
R S
Todas las tuplas de R aunque no estn en S
Los campos donde no hay correspondencia se asocian a NULL
Rigth outer join
Reunin externa por la derecha
R S
Todas las tuplas de S aunque no estn en R
Los campos donde no hay correspondencia se asocian a NULL
Equivalencias

R

S =

(R X S)
R S = S R

Ejemplos

a) Muestra todos los alumnos y sus materias asociadas
AL CAL

CVAl NomAl
1 Jos
2 Mara





CVAL CVMAT CALIF
1 3 70
CVMAT NomMAT
3 SD1
4 BDD
AL CAL
MAT







b) Muestra los alumnos sin materias asociadas

CALIF =NULL
(AL CAL)









3.4. Principios de Optimizacin

Se basa en la eleccin de los planes de evaluacin.
Un plan de evaluacin es la estrategia a seguir para la implementacin de una consulta.
Tipos de Optimizacin
o Basada en Costo
Minimizacin de costos operativos
o Optimizacin Heurstica
Basada en la experiencia
Tomando en cuenta las equivalencias

PRINCIPIO 1
o Descomponer las selecciones conjuntivas en una secuencia de operaciones sencillas. ( Regla
1)
PRINCIPIO 2
o Desplazar las operaciones de seleccin hacia la parte de abajo del rbol de consultas.
o Ejecutar lo antes posible. (Regla 2, 7a, 7b, 11)
PRINCIPIO 3
o Seleccionar y ejecutar en primera instancia las operaciones de seleccin y reunin que
producirn tuplas de menor tamao.
o Reordenar el rbol para que las selecciones restrictivas se ejecuten antes
PRINCIPIO 4
o Sustituir la seleccin y producto cartesiano por reunin (Regla 4a)
PRINCIPIO 5
o Dividir la lista de atributos de proyeccin y desplazarlas hacia la parte inferior del rbol,
todo lo que sea posible, creando proyecciones nuevas donde sea necesario.
PRINCIPIO 6
o Identificar subrboles cuyas operaciones puedan encausarse y ejecutarlos utilizando
encauzamiento.

CVAL NomAL CVAL1 CVMAT CALIF
1 Jos 1 3 70
2 Mara NULL NULL NULL
CVAL NomAL CVAL1 CVMAT CALIF
2 Mara NULL NULL NULL
rbol de Consultas
Representacin Grfica
Jerarquica
Operaciones de Algebra Relacional
Esquema de Ejecucin de una consulta

Ejemplo 1:

Muestre los datos de los Alumnos del 1er semestre
Select * from Al CvSem = 1;

CvSem = 1
(Al)








Ejemplo 2:

Muestre la calificacin del alumno Jos Mtz. en la materia de SD1.

Calif
(
nomAl=Jos Mtz and CvMat=SD1 and CAL.CVAL=AL.CVAL
(CAL X AL))











rbol de la operacin anterior

Calif

nomAl=Jos Mtz and CvMat=SD1 and CAL.CVAL=AL.CVAL





X


CAL AL
Principio 1

Calif

nomAl=Jos Mtz

CvMat=SD1

CAL.CVAL=AL.CVAL



X


CAL AL
Principio 2

Calif

CAL.CVAL=AL.CVAL



X

CvMat=SD1

nomAl=Jos Mtz



CAL AL

CvSem = 1
(Al)



Al



















Ejemplo 3:

Obtener las claves de los alumnos aprobados en la materia de SD2.

CVAl
(
Calif >= 70 and CVMat = SD2
(CAL))












Principio 1

CVAl

CVMat = SD2

Calif >= 70



CAL
Principio 3

CVAl

Calif >= 70

CVMat = SD2



CAL
rbol de la
operacin anterior

CVAl

Calif >= 70 and CVMat = SD2





CAL


















Ejemplo 4:

Muestra el kardex del alumno 75

Al.NomnAl, MAT.NomMat, CAL.Calif


(
AL.CVAl =CAL.CVAl and MAT.CVMat = CAL.CVMAt and AL.CVAl =75
(CAL X AL X MAT))
























rbol de la operacin anterior

Al.NomnAl, MAT.NomMat, CAL.Calif



AL.CVAl =CAL.CVAl and MAT.CVMat = CAL.CVMAt and AL.CVAl =75





X


AL X


CAL MAT
Principio 1

Al.NomnAl, MAT.NomMat, CAL.Calif



AL.CVAl =CAL.CVAl

MAT.CVMat = CAL.CVMAt

AL.CVAl =75



X


AL X


CAL MAT











































Principio 2

Al.NomnAl, MAT.NomMat, CAL.Calif



AL.CVAl =CAL.CVAl



X



AL.CVAl =75

MAT.CVMat = CAL.CVMAt



AL X


CAL MAT
Principio 4

Al.NomnAl, MAT.NomMat, CAL.Calif



CVAl



AL.CVAl =75

CVMAt



AL CAL MAT
Principio 3

Al.NomnAl, MAT.NomMat, CAL.Calif



CVMAt

CVAl
MAT




AL.CVAl =75
CAL




AL
Instruccin Resultante

Al.NomnAl, MAT.NomMat, CAL.Calif


((
AL.CVAl =75
(AL)
CVAl
(CAL)
CVMAt
(MAT))




Ejemplo 5:






















NomnAl


NomMat

Calif

CVMAt

CVAl
MAT




AL.CVAl =75
CAL




AL
Principio 5

NomnAl, NomMat, Calif



CVMAt



CVAl

NomMat, CVMat




AL.CVAl =75

Calif, CVAl
MAT



NomAl, CVAl
CAL



AL
Instruccin Resultante

NomnAl, NomMat, Calif


(((
AL.CVAl =75
(
NomAl, CVAl
(AL)))
CVAl
(
Calif, CVAl
(CAL)))
CVMAt
(
NomMat, CVMat
(MAT))))

Vous aimerez peut-être aussi