Tema 10. Dinámica y funciones de la Atmosfera 2024
Abd procesamiento consultas
1. Administración de Base de Datos
Procesamiento y Optimización
de Consultas
Prof Mercy Ospina Torres
mercy.ospinat@gmail.com
Prof Renny A. Hernandez
renny.hernandez@ciens.ucv.ve
2. Contenido
El DBA • Cómo se procesa una consulta
El SMBD
• Traducir una consulta de SQL a AR
– Repaso Algebra Relacional
Manejo de Memoria
• Árbol de ejecución
Restauración
– Árbol de ejecución lógico
Concurrencia
Concurrencia – Árbol de ejecución lineal izquierdo
Diccionario Datos – Árbol canónico
Proc. Consultas
– Axiomas del Algebra relacional
Integridad
• Técnicas para optimizar consultas
– Basada en heurísticas
Seguridad
– Basada en costos.
Marzo 2012 Administración de Base de Datos 2
3. Contenido
El DBA • Modelo de costos
– Factor de selectividad
El SMBD
– Costo de los operadores del Algebra Relacional
Manejo de Memoria
• Select
Restauración • Project.
• Join
Concurrencia
Concurrencia
• Order
Diccionario Datos • Árbol de ejecución físico
Proc. Consultas – Evaluar el árbol de ejecución físico.
• Materialización
Integridad
• Encausamiento
Seguridad
Marzo 2012 Administración de Base de Datos 3
4. Cómo procesar una consulta
El DBA
El SMBD
Manejo de Memoria SELECT Cuenta, Saldo
Procesamiento
FROM Cuenta
WHERE Saldo >40.000 de consulta
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 4
5. Cómo procesar una consulta
ρCond (R1)
El DBA
Consulta Analizador Expresión
El SMBD
de alto y en Algebra
nivel traductor Relacional
Manejo de Memoria
Restauración Select *
From R1 Optimi-
Where Cond Diccionario de datos zador
Concurrencia
Estadísticas de
Diccionario Datos los datos
Resultado
Proc. Consultas
Consultas de la
Motor de Plan de
evaluación ejecución
consulta
Integridad
Búsqueda
A1 A2 A3 binaria
Seguridad
xx yy zz
xy yy xz Base de datos
Silberschatz, Korth, & Sudarshan, 2006
Marzo 2012 Administración de Base de Datos 5
6. Análisis
El DBA
Consulta Analizador
El SMBD
de alto y
nivel traductor
Manejo de Memoria
Restauración Diccionario de datos
Concurrencia • Análisis léxico: Identifica los elementos del lenguaje como
por ejemplo, las palabras reservadas de SQL, si están bien
Diccionario Datos
formados los nombres de los atributos y relaciones en el texto
Proc. Consultas
de la consulta.
Consultas
• Análisis sintáctico: Comprueba la sintaxis de la consulta de
Integridad acuerdo a las reglas sintácticas del lenguaje de consulta.
Seguridad • Validación: Comprueba que los nombres de las relaciones,
atributos sean válidos semánticamente dentro del esquema de
la base de datos sobre la cual se realiza la consulta y si los
tipos de datos se están usando correctamente.
Marzo 2012 Administración de Base de Datos 6
7. Procesamiento de consulta
El DBA
Consulta Analizador Expresión
El SMBD
de alto y en Algebra
nivel traductor Relacional
Manejo de Memoria
Restauración
Diccionario de datos
Concurrencia
Diccionario Datos
Proc. Consultas
Consultas • Traductor: Crea una representación interna de la consulta,
mediante una estructura de árbol llamado árbol de consulta,
Integridad el cual está basado en el álgebra relacional extendido
Seguridad
Marzo 2012 Administración de Base de Datos 7
8. Procesamiento de consulta
El DBA
Expresión
en Algebra Optimi-
zador
El SMBD Relacional
Estadísticas de
Manejo de Memoria los datos
Resultado
Motor de Plan de
Restauración de la
evaluación ejecución
consulta
Concurrencia
Base de datos
Diccionario Datos
Proc. Consultas
Consultas • Optimización: desarrolla una estrategia de ejecución para
obtener el resultado de la consulta, evaluando cientos de
Integridad estrategias distintas basadas en el álgebra relacional, y sus
operadores físicos, escogiendo alguna de las estrategias
Seguridad menos costosa (plan de ejecución)
• Motor de ejecución: recibe el plan de evaluación, lo ejecuta y
devuelve la respuesta de la consulta.
Marzo 2012 Administración de Base de Datos 8
9. Algebra Relacional
Select <lista de atributos>
El DBA Lenguaje de consulta
From <lista de tablas> de alto nivel
El SMBD
Where <condiciones>
Manejo de Memoria
Restauración Operadores del Algebra Relacional
Concurrencia • Proyección
Unarios • Selección Lenguaje de consulta
Diccionario Datos • Ordenación
de bajo nivel
Proc. Consultas
Consultas • Unión
• Intersección
Integridad Binarios • Producto cartesiano
• Reunión Natural
Seguridad • Resta
• División
Marzo 2012 Administración de Base de Datos 9
10. Algebra Relacional
• PROYECCION
El DBA
– Define una vista que contiene un subconjunto vertical de R,
El SMBD extrayendo los valores de los atributos especificados y
eliminando los duplicados.
Manejo de Memoria – Ejm: T 1 ( Empleado )
CI , Sueldo
Restauración
Concurrencia Select <lista de atributos> CI Nombre Sueldo
123 Andrea Rojas 1500
Diccionario Datos From <lista de tablas>
234 Humberto 2400
Proc. Consultas Where <condiciones> Perez
Consultas
254 Camilo Diaz 1600
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 10
11. Algebra Relacional
• SELECCIÓN
El DBA
– Define una vista que contiene todas las tuplas de R que
El SMBD satisfacen la condición especificada.
– Ejm:
Manejo de Memoria T1 ( Empleado )
Sueldo 1500
Restauración
Select <lista de atributos>
Concurrencia CI Nombre Sueldo
From <lista de tablas>
123 Andrea Rojas 1500
Diccionario Datos
Where <condiciones> 234 Humberto 2400
Proc. Consultas
Consultas Perez
254 Camilo Diaz 1600
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 11
12. Algebra Relacional
• PRODUCTO CARTESIANO
El DBA
– Define una relación que es la concatenación de cada tupla
El SMBD de la relación R con cada tupla de la relación S.
– RXS
Manejo de Memoria
CI CodB CodB Desc
Restauración 123 1 1 Malta
Select <lista de atributos>
234 1 2 7 up
Concurrencia
From <lista de tablas> 254 2R.CodB
Diccionario Datos
R.CI S.CodB Desc
Where <condiciones>
123 1 1 Malta
Proc. Consultas
Consultas 234 1 1 Malta
Integridad 254 2 1 Malta
Seguridad
123 1 2 7 up
234 1 2 7 up
254 2 2 7 up
Marzo 2012 Administración de Base de Datos 12
13. Algebra Relacional
• REUNION NATURAL (JOIN)
El DBA
– Es una combinación entre dos relaciones donde se verifica
El SMBD la condición de igualdad sobre los atributos comunes entre
ambas relaciones. Del resultado se elimina una de las dos
Manejo de Memoria apariciones de cada atributo
Restauración CI CodB CodB Desc
123 1 1 Malta
Concurrencia
Select <lista de atributos> 234 1 2 7 up
Diccionario Datos
R.CI R.CodB S.CodB Desc
From <lista de tablas> 254 2
123 1 1 Malta
Proc. Consultas
Consultas Where <condiciones> and 234 1 1 Malta
Integridad T1.a1=t2.a1 and …. 254 2 1 Malta
Seguridad
123 1 2 7 up
234 1 2 7 up
254 2 2 7 up
Marzo 2012 Administración de Base de Datos 13
14. Algebra Relacional
• REUNION NATURAL (JOIN)
El DBA
– Es una combinación entre dos relaciones donde se verifica
El SMBD la condición de igualdad sobre los atributos comunes entre
ambas relaciones. Del resultado se elimina una de las dos
Manejo de Memoria apariciones de cada atributo
Restauración CI CodB CodB Desc
123 1 1 Malta
Concurrencia
Select <lista de atributos> 234 1 2 7 up
Diccionario Datos
From <lista de tablas> 254 2
Proc. Consultas
Consultas Where <condiciones> and
CI CodB Desc
Integridad T1.a1=t2.a1 and ….
123 1 Malta
Seguridad 234 1 Malta
254 2 7 up
Marzo 2012 Administración de Base de Datos 14
15. Árbol de ejecución
• Representa una consulta en algebra
El DBA
relacional
El SMBD • Es un árbol de orden 2
Manejo de Memoria – Cada nodo interno representa una tabla vista o
resultado intermedio producido por una operación
Restauración
– Cada hoja representa una tabla base
Concurrencia
Case Base Case Inductivo
Diccionario Datos
, , Op
Proc. Consultas T Op
Consultas , X
,- O
Integridad
Seguridad P1 y P2 sub arboles P1
P1 P2
Op operador AR
Marzo 2012 Administración de Base de Datos 15
16. Árbol de ejecución
• Ejemplo
El DBA
Π Apellido1, Nombre, Sueldo (σ Sueldo > c (Empleado
El SMBD Departamento))
Manejo de Memoria Π Apellido1, Nombre,
Sueldo
Restauración
T1 <-(Empleado Departamento)
Concurrencia σ Sueldo > c
T2 <- σ Sueldo > c (T1)
Diccionario Datos
Tr <- Π Apellido1, Nombre, Sueldo (T2)
Proc. Consultas
Consultas
Integridad
Seguridad Departa
Empleado
mento
Marzo 2012 Administración de Base de Datos 16
17. Árbol lineal izquierdo
• Es un árbol de ejecución donde en cada nodo
El DBA
binario el hijo derecho es una tabla
El SMBD
Manejo de Memoria • Arbol canónico: Es un árbol lineal izquierdo
donde cada nodo binario corresponde a un
Restauración
producto cartesiano, la selección es sobre toda la
Concurrencia condición y la proyección sobre todos los atributos
Diccionario Datos
SELECT <Lista Atributos>
Proc. Consultas FROM T1, T2, … Tn
Consultas
WHERE <Condición>
Integridad
Nota: es el mas rápido de
Seguridad
construir pero el más costoso
Marzo 2012 Administración de Base de Datos
18. Árbol lineal izquierdo
Ejercicios
El DBA
Construya el árbol canónico de las sig. consultas
El SMBD
SELECT CI, Nombre, CodMateria
Manejo de Memoria
FROM Estudiante E, inscripcion I
WHERE I.CodM = ‘6311’ and semestre=‘2-2011’ and E.CI =
Restauración
I.CI
Concurrencia
SELECT E.CI, E.Nombre, M.Nombre, I.semestre
Diccionario Datos FROM Estudiante E, Inscripcion I, Materia M
Proc. Consultas WHERE I.CodM = ‘6311’ and I.semestre=‘2-2011’ and E.CI =
Consultas
I.CI and M.CodM = I.CodM
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
19. Árbol lineal izquierdo
Próxima clase
El DBA
• Transformación del árbol canónico (Axiomas del
El SMBD
Algebra Relacional)
Manejo de Memoria
• Técnicas de optimización
Restauración
• Factor de Selectividad
Concurrencia • Costos de los operadores
Diccionario Datos
Proc. Consultas
Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
20. Axiomas del Algebra
Relacional
1. Cascada de selecciones
El DBA
El SMBD
c 1 and c 2 and...and cn
(R) c1
( c2
(... cn
( R )...))
Manejo de Memoria
Donde c1, c2, … cn son condiciones booleanas
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
21. Axiomas del Algebra
Relacional
2. Conmutatividad de la selección
El DBA
El SMBD
Manejo de Memoria c1
( c2
( R )) c2
( c1
( R ))
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
22. Axiomas del Algebra
Relacional
3. Cascada de proyecciones
El DBA
El SMBD
Manejo de Memoria
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
23. Axiomas del Algebra
Relacional
4. Distributividad de la proyección y la selección
El DBA
El SMBD
Manejo de Memoria
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
24. Axiomas del Algebra
Relacional
5. Conmutatividad del Join y del Producto cartesiano
El DBA
El SMBD
Manejo de Memoria
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
25. Axiomas del Algebra
Relacional
6. Distributividad de la selección con respecto al Join
El DBA
y al Producto cartesiano
El SMBD
Manejo de Memoria
Restauración
Concurrencia Este axioma permite empujar las selecciones hacia abajo
en el arbol.
Diccionario Datos
Proc. Consultas
Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
26. Axiomas del Algebra
Relacional
7. Distributividad de la proyección con respecto al
El DBA
Join y al Producto cartesiano
El SMBD
Manejo de Memoria
Restauración
Concurrencia
Diccionario Datos Este axioma permite empujar las proyecciones hacia
abajo en el arbol.
Proc. Consultas
Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
27. Axiomas del Algebra
Relacional
7. Distributividad de la proyección con respecto al
El DBA
Join y al Producto cartesiano
El SMBD
Manejo de Memoria
Restauración
Concurrencia
Diccionario Datos Este axioma permite empujar las proyecciones hacia
abajo en el arbol.
Proc. Consultas
Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
28. Axiomas del Algebra
Relacional
8. Conmutatividad de la unión y la intersección
El DBA
9. Asociatividad de la union, la intersección, y el
El SMBD
producto cartesiano
Manejo de Memoria
Restauración
Concurrencia 10. Distributividad de la selección con respecto a la
Diccionario Datos Unión y la Intersección
Proc. Consultas
Consultas
11. Distributividad de la proyección con respecto a la
Unión y la Intersección
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
29. Axiomas del Algebra
Relacional
12. Conversión del Producto Cartesiano en Join
El DBA
El SMBD
Manejo de Memoria
Restauración
Si cond es una igualdad de atributos de R1 y R2
Concurrencia
Diccionario Datos
Proc. Consultas
Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos
30. Técnicas de optimización
El DBA
Heurísticas
El SMBD
• Se refiere a las mejores prácticas
Manejo de Memoria
• Viene de la experiencia de los expertos
Restauración
Costo
Concurrencia
Diccionario Datos • Transforma el árbol de ejecución usando
diferentes técnicas (n transformaciones)
Proc. Consultas
Consultas • Estima los costos de cada
Integridad
transformación y se queda con la que
tiene costo mínimo
Seguridad
Marzo 2012 Administración de Base de Datos
31. Técnicas de control de
concurrencia
El DBA • Heurísticas
– Se construye el árbol canónico
El SMBD
– Se transforma usando los axiomas del AR en el
Manejo de Memoria
siguiente orden
Restauración
1. Aplicar el axioma o regla 1
2. Aplicar axiomas 2, 4, 6 y 10, para desplazar cada
Concurrencia operación SELECT hacia abajo en el árbol de
ejecución.
Diccionario Datos
3. Aplicar axiomas 5 y 9, para reordenar los nodos hoja
Proc. Consultas utilizando el siguiente criterio:
a) Posicionar las relaciones con los SELECT más
Integridad
restrictivos de forma que sean ejecutadas en primer
Seguridad
lugar.
Marzo 2012 Administración de Base de Datos 31
32. Técnicas de control de
concurrencia
El DBA • Heurísticas (continuación)
El SMBD
3. Aplicar axiomas 5 y 9, para reordenar los nodos
Manejo de Memoria
hoja utilizando el siguiente criterio:
b) Verificar que las ordenaciones no produzcan productos
Restauración
cartesianos que no puedan convertirse en JOIN
Concurrencia 4. Aplicar axioma 12, para combinar los SELECT con los
PRODUCTOS CARTESIANOS, para formar una
Diccionario Datos operación de JOIN
Proc. Consultas 5. Aplicar axiomas 3, 4, 7, 11 para bajar en el árbol las
operaciones PROJECT lo más que se pueda.
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 32
33. Técnicas de control de
concurrencia
El DBA • Ejercicio
– Seleccionar los estudiantes que pasaron
El SMBD
Administración de base de datos en el semestre
Manejo de Memoria 2-2009
Restauración
Select Nombre
Concurrencia From Estudiante E, Cursar C, Materia M
Where E.CI = C.CI and Nota >=10, and
Diccionario Datos
M.Cod_Mat =C.Cod_Mat and M.Nombre =
Proc. Consultas ‘Administración de base de datos’ and
semester_cursa = ’2-2009’
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 33
34. Factor de selectividad
El DBA • Una vez que se ha construido el árbol de
ejecución lógico se debe construir el físico
El SMBD
Manejo de Memoria
• Es una técnica de estimación del tamaño
de los resultados intermedios o vistas
Restauración (cantidad de registros), por medio de una
Concurrencia función de probabilidad
Diccionario Datos • Se asume independencia y
Proc. Consultas
uniformidad en los valores de los
atributos
Integridad
• Se aplica para las selecciones y los join
Seguridad
Marzo 2012 Administración de Base de Datos 34
35. Factor de selectividad
El DBA • Uniformidad
– Es igualmente probable que una tupla Ti tenga
El SMBD
un valor C en el atributo Aj.
Manejo de Memoria
Se lee la
Restauración probabilidad de
– Los valores de Aj están distribuidos que las tuplas
Concurrencia de Ti cumpla la
uniformemente entre las tuplas.
condición Ai= c
Diccionario Datos
• Independencia
Proc. Consultas – Al ejecutarse la siguiente consulta
Integridad
se asume que la satisfacibilidad de que la
condición cond1 es independiente a la
Seguridad satisfacibilidad de la condición cond2.
Marzo 2012 Administración de Base de Datos 35
36. Factor de selectividad
El DBA • Casos Base Los que cumplen
la condición
El SMBD
Valores
Manejo de Memoria totales
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 36
37. El DBA • Casos base
– Factor de selectividad del Join
El SMBD
Manejo de Memoria
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 37
38. Ejemplo del uso del fs
El DBA • Ejemplo
– ¿Cuál es el factor de selectividad la condición
El SMBD
sexo = ‘F’ en la tabla empleado?
Manejo de Memoria
1
fs ( Sexo ' F ' , Empleado ) 0 ,5
Restauración 2
– Si la tabla empleados contiene 300.000
Concurrencia
registros ¿cuántos registros tiene la siguiente
Diccionario Datos vista?
Proc. Consultas T1 ( Empleado )
Sexo 'F '
Integridad
T1 Empleado fs ( Sexo ' F ' , Empleado )
Seguridad
T1 300 . 000 0 ,5 150 . 000
Marzo 2012 Administración de Base de Datos 38
39. Costo de un Árbol de
ejecución
El DBA • Próxima clase
– Costo de los Operadores físicos
El SMBD
• Join
Manejo de Memoria
• Order by
Restauración
• Project
• Select
Concurrencia
Diccionario Datos – Evaluar el árbol de ejecución físico.
Proc. Consultas • Materialización
• Encausamiento
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 39
40. Clase de hoy
– Modelo de costo
El DBA
– Costo de los operadores del Algebra Relacional
El SMBD
• Select
Manejo de Memoria • Project.
• Order By
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 40
41. Modelo de Costos
El DBA • Es una herramienta estadística formal
para evaluar el costo de un plan físico de
El SMBD
ejecución.
Manejo de Memoria
• Se mide en función del tiempo y puede
Restauración expresarse en términos de:
Concurrencia – Accesos a disco
Diccionario Datos
– Tiempo del CPU
– Costo de comunicación (Sist. Dist)
Proc. Consultas
– Tiempo de respuesta para un plan de
Integridad evaluación de una consulta.
Seguridad
Marzo 2012 Administración de Base de Datos 41
42. Modelo de Costo
El DBA
El SMBD
Manejo de Memoria
¿Cuál es el costo más importante en las
Restauración
bases de datos centralizadas?
Concurrencia
Acceso a disco
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 42
43. El DBA • Para calcular el costo de acceso a disco
necesitamos.
El SMBD
– Tamaño a cada archivo de datos y vistas
Manejo de Memoria • Número de registros
• Tamaño de los atributos y los registros
Restauración
• Tamaño de los bloques
Concurrencia – Factor de selectividad
• Número de valores distintos,
Diccionario Datos
• mínimo y máximo de los atributos de búsqueda,
Proc. Consultas – Métodos de acceso (organización del archivo)
– Índices del archivo
Integridad
• números de niveles (altura)
Seguridad • Tipo (primario, secundario, agrupado)
Marzo 2012 Administración de Base de Datos 43
44. Cálculo del espacio en disco
requerido por una relación
El DBA 1. Registros de longitud fija y no extensible
N: el número de registro del archivo A
El SMBD
Ra: el tamaño en bytes de cada registro
Manejo de Memoria
B: Tamaño en bytes de cada bloque
Restauración
Concurrencia B NumBloques ( A)
N
fdb fdb
Diccionario Datos
Ra
Proc. Consultas
Integridad Se usa para las tablas base
Seguridad
Marzo 2012 Administración de Base de Datos 44
45. Estimación de costos
El DBA 2. Extensibles / Tamaño Fijo
El SMBD
N Ra
Manejo de Memoria NumBloques ( A)
B
Restauración
Concurrencia
Se usa para las tablas vista o resultados
Diccionario Datos intermedios
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 45
46. Estimación de Costos
El DBA 4. Tamaño variable
El SMBD
se usan las mismas fórmulas pero se
Manejo de Memoria
calcula un promedio de tamaño del
registro
Restauración
Concurrencia RA tamaño promedio de un registro A,
Diccionario Datos con técnic as de muestreo.
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 46
47. Costo de operadores físicos
El DBA • Selección
El SMBD
• Ordenamiento
Manejo de Memoria
• Proyección
• Reunión
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 47
48. Estimación de costos en
operaciones físicas: Selección
El DBA • Operación Selección
El SMBD
condicion
(R)
Manejo de Memoria
– Selección sin índices
Restauración
– Selección con índices
Concurrencia – Selección de igualdad
Diccionario Datos – Selección de comparación
Proc. Consultas
– Selecciones complejas (Conjuntivas o
Disyuntivas)
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 48
49. Selección sin índices
El DBA • Considere una operación selección sobre
un archivo A y:
El SMBD
Manejo de Memoria TB A
: tamaño que ocupa la relación A
Restauración en bloques de disco
Concurrencia
D : tiempo de acceso a disco
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 49
50. Selección sin índices
El DBA • Búsqueda lineal
El SMBD
TB A
Manejo de Memoria Costo
2
Restauración
Si la condición no es sobre la clave :
Concurrencia
Diccionario Datos Costo TB A
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 50
51. Selección sin índice
El DBA • Busqueda binaria
– Si el archivo se ordena según el atributo clave
El SMBD
y la condición es una igualdad.
Manejo de Memoria
Restauración Costo log 2 (TB A )
Concurrencia
– Si la selección no es de igualdad, o no es sobre
Diccionario Datos un atribudo clave (y el archivo está ordenado
Proc. Consultas
según éste atributo)
Integridad
Costo log 2 (TB A ) (TB f
1)
Seguridad TB f
: Número de bloques que cumplen
con la condición (se calculan con fs)
Marzo 2012 Administración de Base de Datos 51
52. Selección con índices
El DBA
El SMBD
Manejo de Memoria
• Asumimos que los índices son de tipo
Restauración
árbol B+ y la longitud del camino es
Concurrencia siempre la altura del árbol.
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 52
53. Selección de igualdad
El DBA • Índice primario
Se obtiene el número de niveles de índice + 1
El SMBD
Manejo de Memoria
• Índice agrupado
Restauración s
cos to niveles _ del _ indice
Concurrencia fdb
Diccionario Datos
s fs ( c , R ) nr
s : C ardinalid ad de s elec c ión del atributo de indexac ión
Proc. Consultas
• Índice secundario
Integridad
Seguridad
cos to s niveles _ del _ indice
Marzo 2012 Administración de Base de Datos 53
54. Selección de comparación
El DBA • Índice primario o agrupado
– Si la comparación es Att > v o Att ≥ v se
El SMBD
puede obtener el primer valor de v en el
Manejo de Memoria archivo de datos, de allí se explora hasta el
final
Restauración
– Si la comparación Att < v o Att ≤ v no es
Concurrencia necesario usar el índice.
Diccionario Datos • Índice secundario
Proc. Consultas – Sólo es necesario hallar el primer apuntador a
v y recorrer la lista formada por las hojas para
Integridad obtener los apuntadores a los diferentes
Seguridad bloques del archivo de datos.
Marzo 2012 Administración de Base de Datos 54
55. Selecciones complejas
El DBA • Conjuntivas (c1 and c2)
- Índices Simples (índices diferentes por cada
El SMBD
atributo)
Manejo de Memoria - Se verifica si hay un índice sobre alguno de los
atributos, se busca sobre éste y se verifica si
Restauración
cumple las demás condiciones
Concurrencia - El más económico es el que tiene el fs más bajo
Diccionario Datos - Si hay un índice por cada atributo, se utilizan los
distintos índices, se recuperan los elementos y
Proc. Consultas
luego se interceptan los tres conjuntos
Integridad
obtenidos.
Seguridad
Marzo 2012 Administración de Base de Datos 55
56. Selecciones Complejas
El DBA • Conjuntivas (Cont)
• Índices Compuestos
El SMBD
• Sólo puede utilizarse si cada uno de los atributos
Manejo de Memoria están en la condición de selección
• El tipo de índice determina el uso de algoritmos
Restauración de selección simples
Concurrencia • Disyuntiva
Diccionario Datos – Se realiza una búsqueda y se realiza la unión
de éstas.
Proc. Consultas
– El hecho de que un sólo atributo no tenga
Integridad índice implica una búsqueda lineal de datos.
Seguridad
Marzo 2012 Administración de Base de Datos 56
57. Operación Proyección
El DBA • Con duplicados
El SMBD
B’
Manejo de Memoria
For each tupla t in B
Restauración
Guardar en B’ < t.At1, t.At2, …, t.Ati >
B
Concurrencia End
Diccionario Datos
Resultado tabla o relación con registros
duplicados
Proc. Consultas
Integridad • Costo = TBB (recorrer la tabla B)
Seguridad • Costo de resultado intermedio
– TBB’ (guardar la tabla proyectada)
Marzo 2012 Administración de Base de Datos 57
58. Operación Proyección
El DBA • Sin duplicados
El SMBD
• Basado en ordenamiento
Manejo de Memoria
Restauración For each tupla t in B
Guardar en B’ < t.At1, t.At2, …, t.Ati >
Concurrencia
End
Diccionario Datos Ordenar B’ en base a los atributos de proyección
Proc. Consultas
For each tupla t in B’
Guardar t en B’’ sii no existe t en B’’
Integridad
End
Seguridad Resultado tabla o relación donde los duplicados
son eliminados
Marzo 2012 Administración de Base de Datos 58
59. Operación Proyección
El DBA • Costo de proyección
El SMBD
Manejo de Memoria
TB B TB B ' TB B ' log( TB B ' )
Restauración
Concurrencia Ordenar B’
Recorrer B
Diccionario Datos
Generar B’
Proc. Consultas
Integridad • Costo de almacenamiento
Seguridad
TB B '' Tabla proyectada sin duplicados
Marzo 2012 Administración de Base de Datos 59
60. Operación Proyección
El DBA • Basado en HASH
Se crea B’
El SMBD
For each tupla tj in B’
Manejo de Memoria
Aplicar f(tj) #se contruye una tabla hash
Restauración
en mp
si tupla tj en f(ti) / ti = tj
Concurrencia
Descartar ti
Diccionario Datos
sino
Proc. Consultas Guardar ti en f(ti)
Integridad fsi
Retornar tuplas en tabla hash
Seguridad
end
Marzo 2012 Administración de Base de Datos 60
61. Operación Proyección
El DBA • Basado en HASH (costo)
– Suponiendo que
El SMBD
Manejo de Memoria
B– se puede almacenar en la tabla hash
Restauración
TB B TB B '
Concurrencia
Sino
Diccionario Datos
Proc. Consultas TB B 3TB B '
Integridad Aunque este costo puede ser menor que el de
ordenamiento, requiere memoria principal
Seguridad
+ Costo de almacenar B’’
Marzo 2012 Administración de Base de Datos 61
62. Operación Join
El DBA • El operador Join se puede evaluar de
varias maneras distintas
El SMBD
– Nested loop join
Manejo de Memoria
– Block Nested Loop Join
Restauración – Merge sort join
– Index Join
Concurrencia
– Hash Join
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 62
63. Nested Loop Join
El DBA
El SMBD
Manejo de Memoria
Restauración
Concurrencia
For each tupla tA in A
Diccionario Datos For each tupla tB in B
If satisfy (tA, tB, Cond)
Proc. Consultas Return (tA. tB)
End
Integridad
End
End
Seguridad
RA = cantidad de
Costo = TBA + RA*TBB registro de A
Marzo 2012 Administración de Base de Datos 63
64. Block Nested Loop Join
El DBA
El SMBD
Manejo de Memoria
Restauración
Concurrencia
A B
Diccionario Datos Este algorito se puede mejorar si se aprovechan los
bloques de memoria disponibles
Proc. Consultas
Si se carga A por bloques el costo seria
Integridad Costo = TBA + TBA*TBB
Seguridad
Si se tienen T bloques disponibles se dejan dos para
entrada/salida
TB A
Costo TB A *TB B
T- 2
Marzo 2012 Administración de Base de Datos 64
65. Sort-Merge Join
El DBA
El SMBD
Manejo de Memoria
Restauración
Concurrencia
A B
Diccionario Datos Si ambas tablas están ordenadas sobre los atributos
del Join, el costo es el menor
Proc. Consultas
Costo = TBA + TBB
Integridad Si no hay que agregar el costo de ordenación
Seguridad Costo = TBA Log(TBA )+ TBB Log(TBB ) +TBA +TBB
Marzo 2012 Administración de Base de Datos 65
66. Index Join
El DBA
El SMBD
Manejo de Memoria
Restauración
Concurrencia
A B
Diccionario Datos 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
Proc. Consultas registro de A por el índice
Integridad
Costo = TB(A) + CostoBuscar*Ra
Seguridad
El costo de buscar depende del indice (ver operador
select)
Marzo 2012 Administración de Base de Datos 66
67. Hash Join
El DBA • Se dividen las tuplas de cada relación
utilizando una función hash tal que:
El SMBD
ta A, tb B / part ( A , t a ) part ( B , t b ) i .e . h ( t a ) h (tb )
Manejo de Memoria
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 67
68. Hash Join
El DBA
• h es una función que asigna a los atributos de join
El SMBD los valores {0,1,..,n-1}
Manejo de Memoria • Ha0 .. Ha(n-1) denota las particiones de A
inicialmente vacías. Se colocan las tuplas en Hai
Restauración
con i = h(ta[atributos join])
Concurrencia • Hb0 .. Hb(n-1) denota las particiones de B
inicialmente vacías. Se colocan las tuplas en Hbi
Diccionario Datos
con i = h(tb[atributos join])
Proc. Consultas
• Al aplicar la misma función para ambos
Integridad particionamientos, cada tupla de A y B que tengan
resultados iguales de la función de asociación,
Seguridad
estarán en la misma partición
Marzo 2012 Administración de Base de Datos 68
69. Hash Join
El DBA
El SMBD
Manejo de Memoria
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 69
70. Video Join
El DBA • Videos
– Video 1
El SMBD
– Video 2
Manejo de Memoria
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 70
71. Calcular el costo de un árbol
de ejecución
El DBA • Una vez que el árbol este optimizado
– Se cambian los operadores lógicos por físicos
El SMBD
p.e join por index join
Manejo de Memoria
– Si hay mas de un operador posible se debe
Restauración
verificar el menos costoso
– Se calculan los costos de las operaciones por
Concurrencia nodo, y el costo de almacenar resultados
Diccionario Datos intermedios
– Se suman los costos de todos los nodos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 71
72. Ejercicio
Jugador (DI, Nombre, Apellidos, Juegos(CodEq1, CodEq2, Temporada,
FechaNac, Direccion) Fecha, Resultado, CodEquipoGana)
El DBA DI: 9 bytes CodEq1: 4 bytes
Nombre: 40 bytes CodEq2: 4 bytes
El SMBD Apellidos: 40 bytes Temporada: 4 bytes, min : 1902, máximo
FechaNac: 8 bytes 2011, valores diferentes, 110
Manejo de Memoria Direccion: 50 bytes Fecha: 8 bytes (162 valores distintos)
Resultado: 8 bytes
Restauración Num registros: 250.000 CodEquipoGana: 4 bytes (INDICE)
Equipo( CodEq, NombreEq, FechaFund, Num registros: 18.000
Concurrencia
Ciudad, Liga, Estadio)
CodEq: 4 bytes Juega (DIJugador, CodEq, FechaIni,
Diccionario Datos
NombreEq: 40 bytes FechaFin, Posicion)
FechaFund: 8 bytes DIJugador: 9 bytes
Proc. Consultas
Liga: 2 bytes (Nacional =0, Americana=1) CodEq: 4 bytes
Estadio: 50 bytes FechaIni: 8 bytes (un promedio de 20 jug
Integridad por año)
Num registros: 30 FechaFin: 10 bytes
Seguridad Posición: 20 bytes (9 valores distintos)
Num registros: 875.000
Marzo 2012 Administración de Base de Datos 72
73. El DBA • Consulta: Nombre, apellido y equipo de
los jugadores que han participado en la
El SMBD
temporada 2009 en juegos ganados, y
Manejo de Memoria
que han jugado en primera base.
Restauración – Dé el árbol canónico para q.
– Dé el árbol optimizado heurísticamente.
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 73
74. El DBA • Suponga que el SMBD se caracteriza por
– Disponer de 20 bloques de memoria principal
El SMBD
para las operaciones AR
Manejo de Memoria
– Cada bloque ocupa 1024 bytes
Restauración – Disponer de los operadores físicos vistos en
clase
Concurrencia
– Materializar los resultados intermedios. Asuma
Diccionario Datos registros fijos extensibles para las tablas
intermedias y no extensibles para las relaciones
Proc. Consultas
base
Integridad – Indices primarios para las claves primarias,
Seguridad todos tienen 4 de altura
Marzo 2012 Administración de Base de Datos 74
75. Ejemplo de plan de ejecución
Caso Oracle
El DBA
El SMBD
SELECT e.employee_id, e.last_name, e.salary,
Manejo de Memoria d.department_name, l.city
FROM employees e, departments d, locations l
Restauración WHERE e.department_id = d.department_id
AND d.location_id = l.location_id
Concurrencia AND l.city = 'Oxford'
Diccionario Datos AND e.salary > 10500 AND e.last_name LIKE '%e%';
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 75
76. El DBA
El SMBD
Manejo de Memoria
Restauración
Concurrencia
Diccionario Datos
Proc. Consultas
Integridad
Seguridad
Marzo 2012 Administración de Base de Datos 76