El Administra de BD debe conocer como se organizan los archivos de datos para tener criterios de selección de la organización que incida en el rendimiento de la Base de Datos
1. Administración de Base de Datos
Manejo de Memoria II
Profesora: Mercy Ospina
Mercy.ospinat@gmail.com
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN
3. Repaso clase pasada
• ¿Qué es un archivo de datos?
• ¿Qué es una organización de archivos?
• ¿Porqué la BD requiere que los datos estén en memoria principal?
• ¿Cuando un usuario requiere un registro el SMBD solo carga en
memoria este registro y ningún otro? (V, F)
• ¿Cuando un usuario requiere un número n de registro el SMBD
solo carga en memoria estos registros y ningún otro? (V, F)
• ¿Describa los tipos de registros?
• ¿Describa las organizaciones de datos en el modelo normalizado?
• ¿Qué es una colisión y como se manejan?
5. • Permite cambiar dinámicamente el tamaño del
archivo para permitir el crecimiento y reducción de
los datos.
• Técnicas
• Hash extensible
• Hash lineal
14 de mar de 2018 Administracion de Base de datos 5
Organizaciones de Archivo - Hash dinámico
6. • Hash extensible
• Mantiene un directorio de 2d
direcciones de bloque que
puede representarse como un arreglo o un árbol binario
• El valor d se conoce como profundidad global del
directorio y son los d bits menos significativos del binario
del campo hash14 de mar de 2018 Administracion de Base de datos 6
Organizaciones de Archivo
hash dinámico
d=2
00
01
10
11
raiz
0
1
0
1
0
1
7. • Hash extensible
• Se define también una profundidad local d’ que
especifica el número de bits en los que está basado el
contenido del bloque
• El valor d se duplica si un bloque con profundidad local
d’=d se desborda. El valor de d se reduce si todos los d’ <14 de mar de 2018 Administracion de Base de datos 7
Organizaciones de Archivo - Hash dinámico
d=2
00
01
10
11
raiz
0
1
0
1
0
1
Bloques de datos
d'=2
d'=2
d'=2
d'=2
8. 14 de mar de 2018 Administracion de Base de datos 8
Organizaciones de Archivo - Hash extensible ejemplo
Clave hash
2, 3, 5
7, 11, 17
18, 19, 23
28, 29, 31
32, 36, 37
40, 41, 46
53, 60
d=2
00
01
10
11
Bloques de datos
5,
3
2,
d'=2
d'=2
d'=2
d'=2
5, 17
3, 7, 11,19
2,18
d'=2
d'=2
d'=2
d'=2
23
Produce una colisión
¿Qué hacer?
1. Como todas las profundidades locales son iguales a la profundidad global, se
incrementa la profundidad global en 1
2. Se añade un bloque donde se generó la colisión y se coloca las d’ = d en estos
bloques y se redistribuyen los registros
3. Se actualizan los apuntadores a bloque
9. 14 de mar de 2018 Administracion de Base de datos 9
Organizaciones de Archivo - Hash extensible ejemplo
Clave hash
2, 3, 5
7, 11, 17
18, 19, 23
28, 29, 31
32, 36, 37
40, 41, 46
53, 60
d=3
000
001
010
011
100
101
110
111
Bloques de datos
5, 17
2, 18
d'=2
d'=2
d'=2
d'=3
7, 23
d'=3
3,11, 19
10. 14 de mar de 2018 Administracion de Base de datos 10
Organizaciones de Archivo - Hash extensible ejemplo
Clave hash
2, 3, 5
7, 11, 17
18, 19, 23
28, 29, 31
32, 36, 37
40, 41, 46
53, 60
d=3
000
001
010
011
100
101
110
111
28,32,36,40
Bloques de datos
5,17,29,37
2, 18
d'=2
d'=2
d'=2
d'=3
7, 23, 31
d'=3
3,11, 19
41
Produce una colisión
¿Qué hacer?
1. Como la profundad local es menor a la global
2. Se añade un bloque donde se generó la colisión y se coloca las d’ = d en estos
bloques y se redistribuyen los registros
3. Se actualizan los apuntadores a bloques
11. 14 de mar de 2018 Administracion de Base de datos 11
Organizaciones de Archivo - Hash extensible ejemplo
Clave hash
2, 3, 5
7, 11, 17
18, 19, 23
28, 29, 31
32, 36, 37
40, 41, 46
53, 60
d=3
000
001
010
011
100
101
110
111
28,32,36,40
Bloques de datos
17,41
2, 18
d'=2
d'=3
d'=2
d'=3
7, 23, 31
d'=3
3,11, 19
46
Produce una colisión
¿Qué hacer?
1. Respóndalo ustedes
5,29,37
d'=3
12. Vía de Acceso Montículo Ordenado Hash
Exploración TA(B)*D TA(B)*D TA(B)*D
Búsqueda con
selección de
igualdad
TA(B)*D/21
TA(B)*D2
Log2(TA(B)) o
Log2(TA(B)+N)3
Igual montículo4
D + colisión3
Igual montículo4
Búsqueda con
selección de rango
TA(B)*D Log2(TA(B))+N3
Igual monticulo4
D*Val distint3
Igual monticulo4
Inserción 2*D CB + TA(B)*D 2D + colisión
Borrado CB + D CB + TA(B)*D 2D + colisión
14 de mar de 2018 Administracion de Base de datos 12
Organizaciones de Archivo - Costo de vías de Acceso
D: Tiempo medio de leer o escribir una página en disco (Vel. de transferencia)
N: Numero de páginas ocupadas por los registros
1: Si el campo es clave
2: Si el campo no es clave
3: Si es sobre el campo de ordenamiento o hash
4: Si no es sobre el campo de ordenamiento o hash
13. • Cada base de datos se corresponde con varios archivos de
datos diferentes que el sistema operativo subyacente
mantiene.
• Cada archivo esta dividido en unidades de almacenamiento
de longitud fija llamadas bloques o páginas.
• Cada bloque puede contener varios elementos de datos que
vienen determinados por la organización física de los datos
que se use.
• El tiempo de acceso a los datos viene dado por la cantidad
de accesos a bloques necesarios para localizar los datos y
depende de la organización física de los datos
14 de mar de 2018 Administracion de Base de datos 13
Conclusión
16. • ¿Qué es un índice?
• Tipos de índices
• Organización Secuencial ordenada indexada
• Organización directa indexada
• Otras
• Índices multinivel
• Estructuras de datos
• Listas
• Arboles B y B+
• Indices Bitmap
Marzo 2012 Administración de Base de Datos 16
Organización indexada
17. • ¿Qué es un índice?
• Un índice en una BD es similar al índice de un libro, es
una estructura que puede consultarse al buscar
elementos de datos en una BD.
Marzo 2012 Administración de Base de Datos 17
Organización indexada
DatosIndice
19. • Definición de índice
• Una estructura de datos llamada Archivo de Índice que
permite al SMBD localizar registros concretos dentro de
un Archivo de datos, de manera más rápida.
• Entrada de datos:
• registro del archivo índice
Marzo 2012 Administración de Base de Datos 19
Organización indexada
• <K, P>
• <K, lista-P>
K: campos indexados (clave de búsqueda)
P: apuntador a página
Si K está compuesto de
un solo atributo
entonces el índice es
simple,
Si no el índice es
compuesto
20. • Organizaciones de índice
• Secuenciales ordenados: están ordenados físicamente
según el valor de la clave K.
• Directos (hash): están organizados según una función
hash sobre la clave K.
• En este curso se trabajara con índices secuenciales
ordenados
Marzo 2012 Administración de Base de Datos 20
Organización indexada
Manejo de memoria
21. Organización indexada
• Tipos de Índices
• Primario: El índice esta construido sobre un archivo ordenado sobre un
campo clave de ordenamiento.
• Agrupado: El índice esta construido sobre un archivo ordenado sobre un
campo no clave de ordenamiento.
• Secundario: El índice esta construido sobre un archivo no ordenado o
sobre un campo que no es clave de ordenamiento.
Marzo 2012 21Administración de Base de Datos
22. Índice primario
Los títulos está en el
mismo orden interno y
son únicos dentro del
libro
Marzo 2012 22Administración de Base de Datos
23. Índice
Agrupado
Los nombres se agrupan
por letras, el índice tiene
el mismo orden que la
guía
Marzo 2012 23Administración de Base de Datos
24. Índice secundario
Las palabras están
ordenadas alfabéticamente
Indica las páginas donde
se encuentra cada palabra
Marzo 2012 24Administración de Base de Datos
25. • Índice primario
Marzo 2012 Administración de Base de Datos 25
Organizaciones secuencial Indexada
1234 Maria Castillo DE
1657 Ana Paredes CO
3456 Jose Perdomo CO
5432 Pedro López DE
5678 Luis Perez MT
5879 Beatriz Martínez MT
6784 Ana Vasquez MT
7865 Victor Trejo CO
8762 Julio León CO
…..
Archivo de datosArchivo índice
fb 8 registros por bloque
26. • Índice primario
Marzo 2012 Administración de Base de Datos 26
Organizaciones secuencial - Indexada
1234 Maria Castillo DE
1657 Ana Paredes CO
3456 Jose Perdomo CO
5432 Pedro López DE
5678 Luis Perez MT
5879 Beatriz Martínez MT
6784 Ana Vasquez MT
7865 Victor Trejo CO
8762 Julio León CO
…..
1234
1657
3456
5432
5678
5879
6784
7865
1
1
1
2
2
2
3
3
8762
. .
3
…
Archivo de datosArchivo índice
fb 8 registros por bloque
27. • Índice primario > Índices densos
• Dispone de un registro de índice para CADA UNO de los
valores de la clave de búsqueda del archivo
Marzo 2012 Administración de Base de Datos 27
Organización secuencial - Indexada
1234 Maria Castillo DE
1657 Ana Paredes CO
3456 Jose Perdomo CO
5432 Pedro López DE
5678 Luis Perez MT
5879 Beatriz Martínez MT
6784 Ana Vasquez MT
7865 Victor Trejo CO
8762 Julio León CO
…..
1234
1657
3456
5432
5678
5879
6784
7865
1
1
1
2
2
2
3
3
8762
. .
3
…
Archivo de datos
28. • Índice primario > Índices disperso
• Dispone de un registro de índice para ALGUNOS de los
valores de la clave de búsqueda del archivo (p.e. uno por
página)
Marzo 2012 Administración de Base de Datos 28
Organización secuencial - Indexada
1234 Maria Castillo DE
1657 Ana Paredes CO
3456 Jose Perdomo CO
5432 Pedro López DE
5678 Luis Perez MT
5879 Beatriz Martínez MT
6784 Ana Vasquez MT
7865 Victor Trejo CO
8762 Julio León CO
…..
. .
…
3456
5879
8762
…
1
2
3
. .
…
Manejo de memoria
29. • Índice agrupado
Marzo 2012 Administración de Base de Datos 29
Organización secuencial - Indexada
1657 Ana Paredes CO
6784 Ana Vasquez MT
5879 Beatriz Martínez MT
3456 Jose Perdomo CO
8762 José León CO
1235 José Castillo DE
5678 Luis Perez MT
2432 Luis Ramirez DE
6865 Luis Urbina CO
5555 Luis Ricardo DE
Ana
Beatriz
Jose
Luis
1
1
2
?
. . …
Archivo de datosArchivo índice
30. • Este tipo de archivo necesita ser reorganizado
periódicamente para mantener la eficiencia
• La principal desventaja de esta organización es que
es preciso mantener el orden a medida que se
insertan y borran registros
• El problema se agrava debido a que se debe
mantener el orden en ambos archivos tanto el de
datos como en el de índice.
Marzo 2012 Administración de Base de Datos 30
Organización secuencial - Indexada
Manejo de memoria
31. • Índice secundario
Marzo 2012 Administración de Base de Datos 31
Organización directa indexada
6784 Ana Vasquez MT
2432 Luis Ramirez DE
3456 Jose Perdomo CO
1657 Ana Paredes CO
6865 Luis Urbina CO
5678 Luis Perez MT
8762 José León CO
5879 Beatriz Martínez MT
1235 José Castillo DE
5555 Luis Ricardo DE
1235
1657
2432
3456
5555
5678
5879
6784
6865
4
2
1
1
4
2
4
1
2
6865
8762
. .
2
3
…
Archivo de datosArchivo índice
fb 8 registros por bloque
32. • Índice secundario (atributo no único)
Marzo 2012 Administración de Base de Datos 32
Organización directa indexada
6784 Ana Vasquez MT
2432 Luis Ramirez DE
3456 Jose Perdomo CO
1657 Ana Paredes CO
6865 Luis Urbina CO
5678 Luis Perez MT
8762 José León CO
5879 Beatriz Martínez MT
1235 José Castillo DE
5555 Luis Ricardo DE
Ana
Beatriz
Jose
Luis
…
Archivo de datos
Registros de tamaño variable
Ana
Beatriz
Jose
Luis
…
1, 2
4
1, 3, 4
1, 2, 3,4
Archivo índice
Manejo de memoria
33. • Multilistas
Marzo 2012 Administración de Base de Datos 33
Organización directa indexada
N registro
relativo
registro Apun-
tador a
registro
1
2
3
6784 Ana Vasquez MT
2432 Luis Ramirez DE
3456 Jose Perdomo CO
4 (inicio)
5
9
4
5
1657 Ana Paredes CO
6865 Luis Urbina CO
8
6
6
7
5678 Luis Perez MT
8762 José León CO
10
2
8
9
10
5879 Beatriz Martínez MT
1235 José Castillo DE
5555 Luis Ricardo DE
3
7
null
Ana
Beatriz
Jose
Luis
…
1
4
1
1
Archivo de datosArchivo índice
Manejo de memoria
34. • Indice multinivel
Marzo 2012 Administración de Base de Datos 34
Organización indexada
6784 Ana Vasquez MT
2432 Luis Ramirez DE
3456 Jose Perdomo CO
1657 Ana Paredes CO
6865 Luis Urbina CO
5678 Luis Perez MT
8762 José León CO
5879 Beatriz Martínez MT
1235 José Castillo DE
5555 Luis Ricardo DE
1235
1657
2432
3456
5555
5678
5879
6784
3
2
1
1
3
2
3
1
6865
8762
. .
2
3
…
6784
8762
1
2
Archivo de datosArchivo índice
Nivel 1 (interno)
Archivo índice
Nivel 2
Manejo de memoria
35. • ¿Como calcular el tamaño del índice?
• ¿Cuál es el costo de búsqueda al usar un índice?
36. • Ejercicio
• Dado un archivo de datos para Proveedor con los
siguientes campos
+ un byte para marcado de borrado
1.Si el tamaño del bloque es 2048 bytes, hay 500.000
registros, y los registros son de tamaño fijo no
extensibles
• Calcular fb y TA de Proveedores.
• El tamaño de los apuntadores es 6 bytes
Marzo 2012 Administración de Base de Datos 36
Organización de Archivos
RIF Nombre Región Ciudad Dirección telefono email
9 80 20 30 250 50 50
Manejo de memoria
37. • Ejercicio (continuación)
2. Si el archivo Proveedor está ordenado por RIF
3. Calcule el tamaño en bloques de un índice sobre RIF.
a) Denso
b) Disperso
c) Disperso de 2 niveles
2. Si el archivo está ordenado por ciudades indique que
tipo de índices se pueden crear sobre este, para
cualquier atributo. (primario, agrupado o secundario)
Marzo 2012 Administración de Base de Datos 37
Organización de Archivos
38. Marzo 2012 Administración de Base de Datos 38
Organización indexada -Arboles B y B+
Manejo de memoria
39. • Son arboles de búsqueda balanceados
• La profundidad de cada subarbol difiere en +-1
• Un recorrido en profundidad inorden da los elementos
ordenados.
Marzo 2012 Administración de Base de Datos 39
Organización indexada
Arboles B y B+
Manejo de memoria
40. • Cada nodo ocupa una página de disco y tiene la
siguiente estructura.
K1<K2< ….Km-1
• Se puede ver como un índice multinivel, donde cada
nodo es un subíndice
• El orden del árbol será el numero de apuntadores
que pueda tener cada nodo
• Si tenemos m apuntadores P y (m-1) claves K las cuales
ocupan un bloque de tamaño B entonces
Marzo 2012 Administración de Base de Datos 40
Organización indexada
Arboles B y B+
P1 K1 P2 K2 ……. Km-
1
Pm
P.m + K(m-1) = B m = (B+K)
(P+K)
Manejo de memoria
41. • Cada nodo, excepto la raiz debe estar lleno al menos
hasta la mitad (m/2).
• La altura del árbol depende de su orden
• Altura mínima:
• Altura máxima:
• n es el numero total de valores distintos de K
Marzo 2012 Administración de Base de Datos 41
Organización indexada
Arboles B y B+
Manejo de memoria
42. • Árbol B+
• Variación del Árbol B
• Solo las hojas apuntan a los datos
Marzo 2012 Administración de Base de Datos 42
Organización indexada
Arboles B y B+
Manejo de memoria
43. • Árbol B
• Cada celda apunta al archivo de datos.
• La cantidad de accesos para localizar un valor de K es al
menos uno y a lo sumo la altura del árbol.
Marzo 2012 Administración de Base de Datos 43
Organización indexada
Arboles B y B+
Manejo de memoria
44. • Árbol B
Marzo 2012 Administración de Base de Datos 44
Organización indexada
Arboles B y B+
P1 K1 P2 K2 ……. Km-
1
Pm
Manejo de memoria
……. …….
K<K1
…….
K1<K<K2 K>Km-1
Apuntador al archivo de datos
45. • Árbol B+
Marzo 2012 Administración de Base de Datos 45
Organización indexada
Arboles B y B+
P1 K1 P2 K2 ……. Km-
1
Pm
Manejo de memoria
1 2 ……. 5 6 7 ……. 10
K<K1
11 12 ……. 15
K1<=K<K2 K>Km-1
Apuntador al archivo de datos
46. • Los árboles B+ son más fáciles de mantener que los
árboles B.
• Son los tipos de índice por defecto en las BD
• Los árboles B son usados para almacenar datos tipo
CLOB o BLOB
Marzo 2012 Administración de Base de Datos 46
Organización indexada
Arboles B y B+
Manejo de memoria
47. • Ejercicio
• Dado el mismo archivo de datos para Proveedor del
ejercicio anterior
1. Calcule la altura máxima de un índice B+ sobre RIF.
2. Calcule la altura media de un índice sobre nombre.
Marzo 2012 Administración de Base de Datos 47
Organización de Archivos
Manejo de memoria
48. • Índices Bitmap
• Resumen vías de acceso
• Inicio tema Recuperación
Marzo 2012 Administración de Base de Datos 48
Próxima clase
Manejo de memoria
49. Administración de Base de datos
Manejo de memoria II
Profesora: Mercy Ospina
Mercy.ospinat@gmail.com
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN