Está en la página 1de 81

Administracin de Base de Datos

Procesamiento y Optimizacin
de Consultas

Prof Mercy Ospina Torres
mercy.ospinat@gmail.com
Prof Renny A. Hernandez
renny.hernandez@ciens.ucv.ve



El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Contenido
Marzo 2012 Administracin de Base de Datos 2
Cmo se procesa una consulta
Traducir una consulta de SQL a AR
Repaso Algebra Relacional
rbol de ejecucin
rbol de ejecucin lgico
rbol de ejecucin lineal izquierdo
rbol cannico
Axiomas del Algebra relacional
Tcnicas para optimizar consultas
Basada en heursticas
Basada en costos.

Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Contenido
Marzo 2012 Administracin de Base de Datos 3
Modelo de costos
Factor de selectividad
Costo de los operadores del Algebra Relacional
Select
Project.
Join
Order
rbol de ejecucin fsico
Evaluar el rbol de ejecucin fsico.
Materializacin
Encausamiento

Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Cmo procesar una consulta
Marzo 2012 Administracin de Base de Datos 4
SELECT Cuenta, Saldo
FROM Cuenta
WHERE Saldo >40.000
Procesamiento
de consulta
Consultas
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Cmo procesar una consulta
Marzo 2012 Administracin de Base de Datos 5
Consultas
Consulta
de alto
nivel
Analizador
y
traductor
Expresin
en Algebra
Relacional
Resultado
de la
consulta
Diccionario de datos
Optimi-
zador
Motor de
evaluacin
Plan de
ejecucin
Estadsticas de
los datos
Select *
From R1
Where Cond
Silberschatz, Korth, & Sudarshan, 2006

Cond
(R1)
Bsqueda
binaria
Base de datos
A1 A2 A3
xx yy zz
xy yy xz
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Anlisis
Marzo 2012 Administracin de Base de Datos 6
Anlisis lxico: Identifica los elementos del lenguaje como
por ejemplo, las palabras reservadas de SQL, si estn bien
formados los nombres de los atributos y relaciones en el texto
de la consulta.
Anlisis sintctico: Comprueba la sintaxis de la consulta de
acuerdo a las reglas sintcticas del lenguaje de consulta.
Validacin: Comprueba que los nombres de las relaciones,
atributos sean vlidos semnticamente dentro del esquema de
la base de datos sobre la cual se realiza la consulta y si los
tipos de datos se estn usando correctamente.



Consultas
Consulta
de alto
nivel
Analizador
y
traductor
Diccionario de datos
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Procesamiento de consulta
Marzo 2012 Administracin de Base de Datos 7
Traductor: Crea una representacin interna de la consulta,
mediante una estructura de rbol llamado rbol de consulta,
el cual est basado en el lgebra relacional extendido



Consultas
Consulta
de alto
nivel
Analizador
y
traductor
Expresin
en Algebra
Relacional
Diccionario de datos
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Procesamiento de consulta
Marzo 2012 Administracin de Base de Datos 8
Optimizacin: desarrolla una estrategia de ejecucin para
obtener el resultado de la consulta, evaluando cientos de
estrategias distintas basadas en el lgebra relacional, y sus
operadores fsicos, escogiendo alguna de las estrategias
menos costosa (plan de ejecucin)
Motor de ejecucin: recibe el plan de evaluacin, lo ejecuta y
devuelve la respuesta de la consulta.



Consultas
Expresin
en Algebra
Relacional
Optimi-
zador
Plan de
ejecucin
Estadsticas de
los datos
Resultado
de la
consulta
Motor de
evaluacin
Base de datos
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Algebra Relacional
Marzo 2012 Administracin de Base de Datos 9
Select <lista de atributos>
From <lista de tablas>
Where <condiciones>

Operadores del Algebra Relacional




Consultas
Lenguaje de consulta
de alto nivel
Lenguaje de consulta
de bajo nivel
Proyeccin
Seleccin
Ordenacin
Unin
Interseccin
Producto cartesiano
Reunin Natural
Resta
Divisin
Unarios
Binarios
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Algebra Relacional
Marzo 2012 Administracin de Base de Datos 10
PROYECCION
Define una vista que contiene un subconjunto vertical de R,
extrayendo los valores de los atributos especificados y
eliminando los duplicados.
Ejm:


Select <lista de atributos>
From <lista de tablas>
Where <condiciones>





Consultas
CI Nombre Sueldo
123 Andrea Rojas 1500
234 Humberto
Perez
2400
254 Camilo Diaz 1600
) ( 1
,
Empleado T
Sueldo CI
H
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Algebra Relacional
Marzo 2012 Administracin de Base de Datos 11
SELECCIN
Define una vista que contiene todas las tuplas de R que
satisfacen la condicin especificada.
Ejm:


Select <lista de atributos>
From <lista de tablas>
Where <condiciones>





Consultas
CI Nombre Sueldo
123 Andrea Rojas 1500
234 Humberto
Perez
2400
254 Camilo Diaz 1600
) ( 1
1500
Empleado T
Sueldo>
o
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Algebra Relacional
Marzo 2012 Administracin de Base de Datos 12
PRODUCTO CARTESIANO
Define una relacin que es la concatenacin de cada tupla
de la relacin R con cada tupla de la relacin S.
R X S


Select <lista de atributos>
From <lista de tablas>
Where <condiciones>





Consultas
CI CodB
123 1
234 1
254 2
CodB Desc
1 Malta
2 7 up
R.CI
R.CodB S.CodB
Desc
123 1 1 Malta
234 1 1 Malta
254 2 1 Malta
123 1 2 7 up
234 1 2 7 up
254 2 2 7 up
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Algebra Relacional
Marzo 2012 Administracin de Base de Datos 13
REUNION NATURAL (JOIN)
Es una combinacin entre dos relaciones donde se verifica
la condicin de igualdad sobre los atributos comunes entre
ambas relaciones. Del resultado se elimina una de las dos
apariciones de cada atributo



Select <lista de atributos>
From <lista de tablas>
Where <condiciones> and
T1.a1=t2.a1 and .





Consultas
CI CodB
123 1
234 1
254 2
CodB Desc
1 Malta
2 7 up
R.CI
R.CodB S.CodB
Desc
123 1 1 Malta
234 1 1 Malta
254 2 1 Malta
123 1 2 7 up
234 1 2 7 up
254 2 2 7 up
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Algebra Relacional
Marzo 2012 Administracin de Base de Datos 14
REUNION NATURAL (JOIN)
Es una combinacin entre dos relaciones donde se verifica
la condicin de igualdad sobre los atributos comunes entre
ambas relaciones. Del resultado se elimina una de las dos
apariciones de cada atributo



Select <lista de atributos>
From <lista de tablas>
Where <condiciones> and
T1.a1=t2.a1 and .





Consultas
CI CodB
123 1
234 1
254 2
CodB Desc
1 Malta
2 7 up
CI CodB Desc
123 1 Malta
234 1 Malta
254 2 7 up
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
rbol de ejecucin
Marzo 2012 Administracin de Base de Datos 15
Representa una consulta en algebra
relacional
Es un rbol de orden 2
Cada nodo interno representa una tabla vista o
resultado intermedio producido por una operacin
Cada hoja representa una tabla base




P1 y P2 sub arboles
Op operador AR




Consultas
Case Base
T
Case Inductivo
Op
P1 P2
Op
P1
- ,
X ,
, ,

t
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
rbol de ejecucin
Marzo 2012 Administracin de Base de Datos 16
Ejemplo

Apellido1, Nombre, Sueldo
(
Sueldo > c
(Empleado
Departamento))







Consultas
Empleado
Departa
mento

Apellido1, Nombre,
Sueldo


Sueldo > c

T1 <-(Empleado Departamento)
Tr <-
Apellido1, Nombre, Sueldo
(T2)
T2 <-
Sueldo > c
(T1)
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
rbol lineal izquierdo
Marzo 2012 Administracin de Base de Datos
Es un rbol de ejecucin donde en cada nodo
binario el hijo derecho es una tabla

Arbol cannico: Es un rbol lineal izquierdo
donde cada nodo binario corresponde a un
producto cartesiano, la seleccin es sobre toda la
condicin y la proyeccin sobre todos los atributos



Nota: es el mas rpido de
construir pero el ms costoso



Consultas
SELECT <Lista Atributos>
FROM T1, T2, Tn
WHERE <Condicin>
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
rbol lineal izquierdo
Marzo 2012 Administracin de Base de Datos
Ejercicios
Construya el rbol cannico de las sig. consultas
SELECT CI, Nombre, CodMateria
FROM Estudiante E, inscripcion I
WHERE I.CodM = 6311 and semestre=2-2011 and E.CI =
I.CI

SELECT E.CI, E.Nombre, M.Nombre, I.semestre
FROM Estudiante E, Inscripcion I, Materia M
WHERE I.CodM = 6311 and I.semestre=2-2011 and E.CI =
I.CI and M.CodM = I.CodM






Consultas
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
rbol lineal izquierdo
Marzo 2012 Administracin de Base de Datos
Prxima clase
Transformacin del rbol cannico (Axiomas del
Algebra Relacional)
Tcnicas de optimizacin
Factor de Selectividad
Costos de los operadores







Consultas
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Axiomas del Algebra
Relacional
Marzo 2012 Administracin de Base de Datos
1. Cascada de selecciones


Donde c1, c2, cn son condiciones booleanas





Consultas
)...)) ( (... ( ) (
2 1 2 1
R R
cn c c cn and...and and c c
o o o o

c1 and c2
and c3


c3


c2


c1

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Axiomas del Algebra
Relacional
Marzo 2012 Administracin de Base de Datos
2. Conmutatividad de la seleccin





Consultas
)) ( ( )) ( (
1 2 2 1
R R
c c c c
o o o o

c2


c1


c1


c2

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Axiomas del Algebra
Relacional
Marzo 2012 Administracin de Base de Datos
3. Cascada de proyecciones





Consultas

A1

A1..An -1

A1..An

A1


El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Axiomas del Algebra
Relacional
Marzo 2012 Administracin de Base de Datos
4. Distributividad de la proyeccin y la seleccin





Consultas

A1..An


c


c

A1..An

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Axiomas del Algebra
Relacional
Marzo 2012 Administracin de Base de Datos
5. Conmutatividad del Join y del Producto cartesiano





Consultas
R1 R2 R2 R1
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Axiomas del Algebra
Relacional
Marzo 2012 Administracin de Base de Datos
6. Distributividad de la seleccin con respecto al Join
y al Producto cartesiano



Este axioma permite empujar las selecciones hacia abajo
en el arbol.





Consultas
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Axiomas del Algebra
Relacional
Marzo 2012 Administracin de Base de Datos



Consultas
R2 R1

c1 and
c2

R1 R2

c2


c1

R1 R2

c2

c1

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Axiomas del Algebra
Relacional
Marzo 2012 Administracin de Base de Datos
7. Distributividad de la proyeccin con respecto al
Join y al Producto cartesiano




Este axioma permite empujar las proyecciones hacia
abajo en el arbol.





Consultas
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Axiomas del Algebra
Relacional
Marzo 2012 Administracin de Base de Datos



Consultas
R2 R1

A1..An

R1 R2

B

A

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Axiomas del Algebra
Relacional
Marzo 2012 Administracin de Base de Datos
8. Conmutatividad de la unin y la interseccin
9. Asociatividad de la union, la interseccin, y el
producto cartesiano


10. Distributividad de la seleccin con respecto a la
Unin y la Interseccin
11. Distributividad de la proyeccin con respecto a la
Unin y la Interseccin








Consultas
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Axiomas del Algebra
Relacional
Marzo 2012 Administracin de Base de Datos
12. Conversin del Producto Cartesiano en Join


Si cond es una igualdad de atributos de R1 y R2








Consultas
X
R2 R1

A1=A2

R2 R1
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Tcnicas de optimizacin
Marzo 2012 Administracin de Base de Datos








Consultas
Se refiere a las mejores prcticas
Viene de la experiencia de los expertos
Heursticas
Transforma el rbol de ejecucin usando
diferentes tcnicas (n transformaciones)
Estima los costos de cada
transformacin y se queda con la que
tiene costo mnimo
Costo
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Tcnicas de control de
concurrencia
Marzo 2012 Administracin de Base de Datos 32
Heursticas
Se construye el rbol cannico
Se transforma usando los axiomas del AR en el
siguiente orden
1. Aplicar el axioma o regla 1
2. Aplicar axiomas 2, 4, 6 y 10, para desplazar cada
operacin SELECT hacia abajo en el rbol de
ejecucin.
3. Aplicar axiomas 5 y 9, para reordenar los nodos hoja
utilizando el siguiente criterio:
a) Posicionar las relaciones con los SELECT ms
restrictivos de forma que sean ejecutadas en primer
lugar.
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Tcnicas de control de
concurrencia
Marzo 2012 Administracin de Base de Datos 33
Heursticas (continuacin)

3. Aplicar axiomas 5 y 9, para reordenar los nodos
hoja utilizando el siguiente criterio:
b) Verificar que las ordenaciones no produzcan productos
cartesianos que no puedan convertirse en JOIN
4. Aplicar axioma 12, para combinar los SELECT con los
PRODUCTOS CARTESIANOS, para formar una
operacin de JOIN
5. Aplicar axiomas 3, 4, 7, 11 para bajar en el rbol las
operaciones PROJECT lo ms que se pueda.

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Tcnicas de control de
concurrencia
Marzo 2012 Administracin de Base de Datos 34
Ejercicio
Seleccionar los estudiantes que pasaron
Administracin de base de datos en el semestre
2-2009

Select Nombre
From Estudiante E, Cursar C, Materia M
Where E.CI = C.CI and Nota >=10, and
M.Cod_Mat =C.Cod_Mat and M.Nombre =
Administracin de base de datos and
semester_cursa = 2-2009
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Factor de selectividad
Marzo 2012 Administracin de Base de Datos 35
Una vez que se ha construido el rbol de
ejecucin lgico se debe construir el fsico
Es una tcnica de estimacin del tamao
de los resultados intermedios o vistas
(cantidad de registros), por medio de una
funcin de probabilidad
Se asume independencia y
uniformidad en los valores de los
atributos
Se aplica para las selecciones y los join
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Factor de selectividad
Marzo 2012 Administracin de Base de Datos 36
Uniformidad
Es igualmente probable que una tupla Ti tenga
un valor C en el atributo Aj.


Los valores de Aj estn distribuidos
uniformemente entre las tuplas.
Independencia
Al ejecutarse la siguiente consulta
se asume que la satisfacibilidad de que la
condicin cond1 es independiente a la
satisfacibilidad de la condicin cond2.
Se lee la
probabilidad de
que las tuplas
de Ti cumpla la
condicin Ai= c
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Factor de selectividad
Marzo 2012 Administracin de Base de Datos 37
Casos Base






Los que cumplen
la condicin
Valores
totales
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Marzo 2012 Administracin de Base de Datos 38
Casos base
Factor de selectividad del Join

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Ejemplo del uso del fs
Marzo 2012 Administracin de Base de Datos 39
Ejemplo
Cul es el factor de selectividad la condicin
sexo = F en la tabla empleado?


Si la tabla empleados contiene 300.000
registros cuntos registros tiene la siguiente
vista?

) ( 1
' '
Empleado T
F Sexo=
o
5 , 0
2
1
) , ' ' ( = = = Empleado F Sexo fs
000 . 150 5 , 0 000 . 300 1
) , ' ' ( 1
= =
= =
T
Empleado F Sexo f s Empleado T
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Costo de un rbol de
ejecucin
Marzo 2012 Administracin de Base de Datos 40
Prxima clase
Costo de los Operadores fsicos
Join
Order by
Project
Select

Evaluar el rbol de ejecucin fsico.
Materializacin
Encausamiento

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Clase de hoy
Marzo 2012 Administracin de Base de Datos 41
Modelo de costo
Costo de los operadores del Algebra Relacional
Select
Project.
Order By

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Modelo de Costos
Marzo 2012 Administracin de Base de Datos 42
Es una herramienta estadstica formal
para evaluar el costo de un plan fsico de
ejecucin.
Se mide en funcin del tiempo y puede
expresarse en trminos de:
Accesos a disco
Tiempo del CPU
Costo de comunicacin (Sist. Dist)
Tiempo de respuesta para un plan de
evaluacin de una consulta.
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Modelo de Costo
Marzo 2012 Administracin de Base de Datos 43



Cul es el costo ms importante en las
bases de datos centralizadas?
Acceso a disco
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Marzo 2012 Administracin de Base de Datos 44
Para calcular el costo de acceso a disco
necesitamos.
Tamao a cada archivo de datos y vistas
Nmero de registros
Tamao de los atributos y los registros
Tamao de los bloques
Factor de selectividad
Nmero de valores distintos,
mnimo y mximo de los atributos de bsqueda,
Mtodos de acceso (organizacin del archivo)
ndices del archivo
nmeros de niveles (altura)
Tipo (primario, secundario, agrupado)

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Clculo del espacio en disco
requerido por una relacin
Marzo 2012 Administracin de Base de Datos 45
1. Registros de longitud fija y no extensible
N: el nmero de registro del archivo A
Ra: el tamao en bytes de cada registro
B: Tamao en bytes de cada bloque



(

=
a
R
B
fdb
(
(
(

=
fdb
N
A NumBloques ) (
Se usa para las tablas base
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Estimacin de costos
Marzo 2012 Administracin de Base de Datos 46
2. Extensibles / Tamao Fijo





(
(
(


=
B
R N
A NumBloques
a
) (
Se usa para las tablas vista o resultados
intermedios
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Estimacin de Costos
Marzo 2012 Administracin de Base de Datos 47
4. Tamao variable
se usan las mismas frmulas pero se
calcula un promedio de tamao del
registro




muestreo. de as con tcnic
A, registro un de promedio tamao =
A
R
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Costo de operadores fsicos
Marzo 2012 Administracin de Base de Datos 48
Seleccin
Ordenamiento
Proyeccin
Reunin
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Estimacin de costos en
operaciones fsicas: Seleccin
Marzo 2012 Administracin de Base de Datos 49
Operacin Seleccin


Seleccin sin ndices
Seleccin con ndices
Seleccin de igualdad
Seleccin de comparacin
Selecciones complejas (Conjuntivas o
Disyuntivas)



) (R
condicion
o
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Seleccin sin ndices
Marzo 2012 Administracin de Base de Datos 50
Considere una operacin seleccin sobre
un archivo A y:


disco a acceso de tiempo :
disco de bloques en
A relacin la ocupa que tamao :
D
TB
A
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Seleccin sin ndices
Marzo 2012 Administracin de Base de Datos 51
Bsqueda lineal
A
A
TB Costo
TB
Costo
=
(
(
(

=
: clave la sobre es no condicin la Si
2
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Seleccin sin ndice
Marzo 2012 Administracin de Base de Datos 52
Busqueda binaria
Si el archivo se ordena segn el atributo clave
y la condicin es una igualdad.



Si la seleccin no es de igualdad, o no es
sobre un atributo clave (y el archivo est
ordenado segn ste atributo)

) ( log
2 A
TB Costo =
fs) con calculan (se condicin la con
cumplen que bloques de Nmero :
) 1 ( ) ( log
2
f
f A
TB
TB TB Costo + + =
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Seleccin con ndices
Marzo 2012 Administracin de Base de Datos 53



Asumimos que los ndices son de tipo
rbol B+ y la longitud del camino es
siempre la altura del rbol.
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Seleccin de igualdad
Marzo 2012 Administracin de Base de Datos 54
ndice primario
Se obtiene el nmero de niveles de ndice (h) + 1
ndice agrupado




ndice secundario


indexacin de atributo del seleccin de ad Cardinalid :
) , (
cos
s
nr R c f s s
h
fdb
s
to
=
+
(
(
(

=
h s to + = cos
R cond fs s * ) ( =
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Seleccin de comparacin
Marzo 2012 Administracin de Base de Datos 55
ndice primario o agrupado
Si la comparacin es Att > v o Att v se
puede obtener el primer valor de v en el
archivo de datos, de all se explora hasta el
final
Si la comparacin Att < v o Att v no es
necesario usar el ndice.
ndice secundario
Slo es necesario hallar el primer apuntador a
v y recorrer la lista formada por las hojas para
obtener los apuntadores a los diferentes
bloques del archivo de datos.


El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Selecciones complejas
Marzo 2012 Administracin de Base de Datos 56
Conjuntivas (c1 and c2)
- ndices Simples (ndices diferentes por cada
atributo)
- Se verifica si hay un ndice sobre alguno de los
atributos, se busca sobre ste y se verifica si
cumple las dems condiciones
- El ms econmico es el que tiene el fs ms bajo
- Si hay un ndice por cada atributo, se utilizan los
distintos ndices, se recuperan los elementos y
luego se interceptan los tres conjuntos
obtenidos.


El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Selecciones Complejas
Marzo 2012 Administracin de Base de Datos 57
Conjuntivas (Cont)
ndices Compuestos
Slo puede utilizarse si cada uno de los atributos
estn en la condicin de seleccin
El tipo de ndice determina el uso de algoritmos
de seleccin simples
Disyuntiva
Se realiza una bsqueda y se realiza la unin
de stas.
El hecho de que un slo atributo no tenga
ndice implica una bsqueda lineal de datos.

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Operacin Proyeccin
Marzo 2012 Administracin de Base de Datos 58
Con duplicados



For each tupla t in B
Guardar en B < t.At1, t.At2, , t.Ati >
End
Resultado tabla o relacin con registros
duplicados

Costo = TB
B
(recorrer la tabla B)
Costo de almacenamiento
TB
B
(guardar la tabla proyectada)
B
B
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Operacin Proyeccin
Marzo 2012 Administracin de Base de Datos 59
Sin duplicados
Basado en ordenamiento


For each tupla t in B
Guardar en B < t.At1, t.At2, , t.Ati >
End
Ordenar B en base a los atributos de proyeccin
For each tupla t in B
Guardar t en B sii no existe t en B
End
Resultado tabla o relacin donde los duplicados
son eliminados

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Operacin Proyeccin
Marzo 2012 Administracin de Base de Datos 60
Costo de proyeccin








Costo de almacenamiento
) log(
' ' ' B B B B
TB TB TB TB + +
Recorrer B
Generar B
Ordenar B
' ' B
TB
Tabla proyectada sin duplicados
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Operacin Proyeccin
Marzo 2012 Administracin de Base de Datos 61
Basado en HASH
Se crea B
For each tupla tj in B
Aplicar f(tj) #se contruye una tabla hash
en mp
si tupla tj en f(ti) / ti = tj
Descartar ti
sino
Guardar ti en f(ti)
fsi
Retornar tuplas en tabla hash
end
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Operacin Proyeccin
Marzo 2012 Administracin de Base de Datos 62
Basado en HASH (costo)
Suponiendo que

se puede almacenar en la tabla hash


Sino


Aunque este costo puede ser menor que el de
ordenamiento, requiere memoria principal
+ Costo de almacenar B
'
'
3
B B
B B
TB TB
TB TB
B
+
+
' '
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Operacin Join
Marzo 2012 Administracin de Base de Datos 63
El operador Join se puede evaluar de
varias maneras distintas
Nested loop join
Block Nested Loop Join
Merge sort join
Index Join
Hash Join
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Nested Loop Join
Marzo 2012 Administracin de Base de Datos 64
For each tupla tA in A
For each tupla tB in B
If satisfy (tA, tB, Cond)
Return (tA. tB)
End
End
End
Costo = TB
A
+ RA*TB
B
RA = cantidad de
registro de A
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Block Nested Loop Join
Marzo 2012 Administracin de Base de Datos 65
Este algorito se puede mejorar si se aprovechan los
bloques de memoria disponibles
Si se carga A por bloques el costo seria
Costo = TB
A
+ TB
A
*TB
B

Si se tienen T bloques disponibles se dejan dos para
entrada/salida

A
B
B
A
A *TB
T-
TB
TB Costo
(
(
(

+ =
2
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Sort-Merge Join
Marzo 2012 Administracin de Base de Datos 66
Si ambas tablas estn ordenadas sobre los atributos
del Join, el costo es el menor
Costo = TB
A
+ TB
B

Si no hay que agregar el costo de ordenacin
Costo = TB
A
Log(TB
A
)+ TB
B
Log(TB
B
) +TB
A
+TB
B


A
B
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Index Join
Marzo 2012 Administracin de Base de Datos 67
Se usa si la tabla de la derecha tiene un ndice sobre el
atributo del Join, el costo es el de leer A y buscar cada
registro de A por el ndice

Costo = TB(A) + CostoBuscar*Ra

El costo de buscar depende del indice (ver operador
select)
A
B
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Hash Join
Marzo 2012 Administracin de Base de Datos 68
Se dividen las tuplas de cada relacin
utilizando una funcin hash tal que:


) ( ) ( . . ) , ( ) , ( / ,
b a b a b a
t h t h e i t B part t A part B t A t = = e e
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Hash Join
Marzo 2012 Administracin de Base de Datos 69

h es una funcin que asigna a los atributos de join
los valores {0,1,..,n-1}
H
a0
.. H
a(n-1)
denota las particiones de A
inicialmente vacas. Se colocan las tuplas en H
ai

con i = h(t
a
[atributos join])

H
b0
.. H
b(n-1)
denota las particiones de B
inicialmente vacas. Se colocan las tuplas en H
bi

con i = h(t
b
[atributos join])
Al aplicar la misma funcin para ambos
particionamientos, cada tupla de A y B que tengan
resultados iguales de la funcin de asociacin,
estarn en la misma particin

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Hash Join
Marzo 2012 Administracin de Base de Datos 70
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Video Join
Marzo 2012 Administracin de Base de Datos 71
Videos
Video 1
Video 2
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Calcular el costo de un rbol
de ejecucin
Marzo 2012 Administracin de Base de Datos 72
Una vez que el rbol este optimizado
Se cambian los operadores lgicos por fsicos
p.e join por index join
Si hay mas de un operador posible se debe
verificar el menos costoso
Se calculan los costos de las operaciones por
nodo, y el costo de almacenar resultados
intermedios
Se suman los costos de todos los nodos
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Ejercicio
Marzo 2012 Administracin de Base de Datos 73
Jugador (DI, Nombre, Apellidos,
FechaNac, Direccion)

DI: 9 bytes

Nombre: 40 bytes

Apellidos: 40 bytes

FechaNac: 8 bytes

Direccion: 50 bytes


Num registros: 250.000


Equipo( CodEq, NombreEq, FechaFund,
Ciudad, Liga, Estadio)

CodEq: 4 bytes

NombreEq: 40 bytes

FechaFund: 8 bytes

Liga: 2 bytes (Nacional =0, Americana=1)

Estadio: 50 bytes


Num registros: 30


Juegos(CodEq1, CodEq2, Temporada,
Fecha, Resultado, CodEquipoGana)

CodEq1: 4 bytes

CodEq2: 4 bytes

Temporada: 4 bytes, min : 1902, mximo
2011, valores diferentes, 110

Fecha: 8 bytes (162 valores distintos)

Resultado: 8 bytes

CodEquipoGana: 4 bytes (INDICE)


Num registros: 18.000


Juega (DIJugador, CodEq, FechaIni,
FechaFin, Posicion)

DIJugador: 9 bytes

CodEq: 4 bytes

FechaIni: 8 bytes (un promedio de 20 jug
por ao)

FechaFin: 10 bytes

Posicin: 20 bytes (9 valores distintos)


Num registros: 875.000





El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Marzo 2012 Administracin de Base de Datos 74
Consulta: Nombre, apellido y equipo de
los jugadores que han participado en la
temporada 2009 en juegos ganados, y
que han jugado en primera base.
D el rbol cannico para q.
D el rbol optimizado heursticamente.

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Marzo 2012 Administracin de Base de Datos 75
Suponga que el SMBD se caracteriza por
Disponer de 20 bloques de memoria principal
para las operaciones AR
Cada bloque ocupa 1024 bytes
Disponer de los operadores fsicos vistos en
clase
Materializar los resultados intermedios. Asuma
registros fijos extensibles para las tablas
intermedias y no extensibles para las relaciones
base
Indices primarios para las claves primarias,
todos tienen 4 de altura

El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
El SMBD
Manejo de Memoria
Restauracin
Ejemplo de plan de ejecucin
Caso Oracle
Marzo 2012 Administracin de Base de Datos 76
SELECT e.employee_id, e.last_name, e.salary,
d.department_name, l.city
FROM employees e, departments d, locations l
WHERE e.department_id = d.department_id
AND d.location_id = l.location_id
AND l.city = 'Oxford'
AND e.salary > 10500 AND e.last_name LIKE '%e%';
Ejemplo de plan de ejecucin
Caso Oracle
Marzo 2012 Administracin de Base de Datos 77
Bsqueda
usando
ndice
Marzo 2012 Administracin de Base de Datos 78
Ordenamiento
en memoria
Marzo 2012 Administracin de Base de Datos 79
Bsqueda
lineal
Marzo 2012 Administracin de Base de Datos 80
Sort merge
join
Marzo 2012 Administracin de Base de Datos 81
Block
nested loop
join

También podría gustarte