S02 U1 Indexacion
S02 U1 Indexacion
S02 U1 Indexacion
1
INDICE
UA
Introducción.
Clasificación
Índices Secuenciales (ordenados)
Árboles B+
Árboles B
Índices Asociativos
Índices Multiclave
Retícula
Asociación Dividida
Mapas de Bits
Referencias: Silberschatz 4ª Ed. Pp 249 - 315
Elmasri, 3ª Ed. Pp 105 - 181
2
Indización de datos
UA
Criterios de valoración:
• Tipos de acceso: búsqueda único valor o rango de valores.
• Tiempo de acceso: tiempo en buscar un elemento de datos o varios
• Tiempo de inserción: buscar + actualizar
• Tiempo de borrado: buscar + actualizar
• Espacio adicional requerido por el índice.
Coste de Buscar datos (C)= Coste Buscar Índice (Cindice) +
Coste Buscar archivo de Datos (Cdatos)
3
Clasificación de índices
UA
Valores del campo: - Campo clave 1 valor dentro del archivo / tabla
- Campo no clave valores repetidos
4
Clasificación de índices
UA
Clasificación:
5
Estimación registros/bloques a recuperar
UA
del archivo de datos (Cdatos)
Número registros a recuperar nrc
• Si el archivo no está ordenado (secundario) leer nrc bloques datos (peor caso)
6
Estimación registros/bloques a recuperar
UA
del archivo de datos (Cdatos)
Archivo de datos
Campo Campo
A A
A B
A A
A V(Campo)=2 A
B B
B A
7
Índices secuenciales (Índice ordenado)
UA
• Índice secundario
– Archivo datos no ordenado respecto a la clave de búsqueda.
– Otro nombre: índice sin agrupación (non cluster index)
8
Índices secuenciales: Primarios
UA
Índice primario:
9
Índices secuenciales: Primarios
UA
Ejemplo:
Archivo de datos (bR)
LRi = LK + LPR
nRi
Índice (bRi)
Índice Denso:
11
Índices secuenciales: Densos
UA
Índice Disperso:
14
Índices secuenciales: Multinivel
UA
LK+LPR B 4
1
5
A 5
LK+LPB B 6
5
7 C 7
9 C 8
9 D 9
B 10
17
Índices secuenciales secundarios
UA
LK+LPB
LR
LPR Cindice= log2 (bRi) + bcaj
Cajones de Punteros (bcaj)
18
1 cajón tiene nRi / V(campo) Punteros
Ejemplos
UA
Ejemplos_indices_secuenciales.ppt
19
Índices de Árbol B+
UA
20
Índices de Árbol B+
UA
B (bloque)
n*LPB + (n-1)*LK ≤ B
Nodo hoja Punteros a registro o bloque + valores campo + puntero a
bloque
B
PR1 K1 PR2 K2 … PRnh Knh PB
nh*(LPR + LK) + LPB ≤ B
n=3
n=3
nh=2
Cindice = N
24
Índices de Árbol B+
UA
PR1 PR1
PR2
Archivo datos
Cajones Punteros
(bcaj un cajón) C-101 Daimiel 500
C-212 Bracelona 750
C-110 Daimiel 600
Ejemplo de árboles B+
Ejemplos_arboles_Bmas.ppt
26
Archivos de índices de Árbol B
UA
28
Ejemplo
UA
n=4
leaf
10
20
30
Afterwards:
20
–
–
10
25
30 29
Asociación Estática
UA
30
Índices asociativos
UA
Archivo Datos (bR)
LR
ejemplos_indices_asociativos.ppt
32
Asociación Dinámica
UA
33
Asociación Dinámica
UA
Número de cajones = 2i
Dirección cajón 1
Dirección cajón 2
Dirección cajón 3
ejemplos_indices_asociativos_dinamicos.pptx
35
Definición de índices en SQL
UA
Ejemplos:
36
Accesos Multiclave
UA
37
Archivos en Retícula
UA
38
Archivos en Retícula
UA
n1
bc
LK1+LK2+LPReg
n2
LK2
Rejilla
Cindice = CLeer Rejilla + CLeer Cajones LRejilla= n1*LK1+n2*LK2+(n1+1)*(n2+1)*LPB bytes 39
BRejilla= LRejilla/ B bloques
Índices en Retícula: Ejemplo
UA
ejemplos_indices_rejilla.pptx
40
Asociación dividida
UA
101 111
Campo1 h1 h2
Campo2 41
Cindice = Cleer cajones
Asociación dividida: Ejemplo
UA
ejemplos_asociacion_dividida.ppt
42
Índices de Mapas de Bits
UA
Lmapa = nR bits
Número de mapas de cada campo V(campo)
Cada mapa tiene nR bits. bmapa = (Lmapa/8) / B
Leer secuencialmente los registros
Número mapas = V(campo)
Para contar tuplas
S03-U1-ejemplos_indices_bitmap.ppt
44