Está en la página 1de 70

1

II. Indexacin y
asociacin

Indexacin y
asociacin

2
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

2
II. Indexacin y
asociacin

1. Conceptos bsicos
Un ndice de BD es similar al ndice de un libro.
Las palabras de ndice estn ordenadas, lo que
hace fcil la bsqueda del trmino que se est
buscando.
El ndice es mucho ms pequeo que el libro, con
lo que se reduce an ms el esfuerzo necesario
para encontrar las palabras en cuestin.

Tambin puede ser comparado con la ficha de


una biblioteca (bsqueda por autor, por ttulo,
etc.)
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

3
II. Indexacin y
asociacin

Tipos bsicos de ndices


ndices ordenados. Estos ndices estn
basados en una disposicin ordenada de los
valores.
ndices asociativos (hash ndices). Estos
ndices estn basados en una distribucin
uniforme de los valores a travs de una serie de
cajones (buckets).
El valor asignado a cada cajn est determinado
por una funcin, llamada funcin de asociacin
(hash function).
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

4
II. Indexacin y
asociacin

Tcnicas de indexacin y asociacin


Existen varias tcnicas de indexacin y
asociacin que deben ser valoradas de acuerdo a
los siguientes criterios:

Tipos de acceso
Tiempo de acceso
Tiempo de insercin
Tiempo de borrado
Espacio adicional requerido.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

5
II. Indexacin y
asociacin

2. ndices ordenados
Cada estructura de ndice est asociada con una
clave de bsqueda concreta.
Si el archivo que contiene los registros est ordenado
secuencialmente, el ndice cuya clave de bsqueda
especifica el orden secuencial del archivo es el ndice
primario o ndice con agrupacin (clustering indices)
Los ndices cuyas claves de bsqueda especifican un
orden diferente del orden secuencial del archivo se
llaman ndices secundarios o ndices sin
agrupacin (non clustering indices).
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

6
II. Indexacin y
asociacin

ndice primario
Los archivos con ndice primario segn una
clave de bsqueda se llaman archivos
secuenciales indexados.
Se emplean en aquellas aplicaciones que
demandan un procesamiento secuencial del
archivo completo as como un acceso directo a
sus registros.
Generalmente el ndice primario es la clave
principal.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

7
II. Indexacin y
asociacin

Clave de bsqueda:
Nombre-Sucursal

Archivo secuencial para los registros cuenta


Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

8
II. Indexacin y
asociacin

ndices densos y dispersos


Un registro ndice o entrada del ndice
consiste en un valor de la clave de bsqueda y
punteros a uno o ms registros con ese valor de
la clave de bsqueda.
El puntero a un registro consiste en el
identificador de un bloque de disco y un
desplazamiento en el bloque de disco para
identificar el registro dentro del bloque.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

9
II. Indexacin y
asociacin

ndice denso
Aparece un registro ndice por cada valor de la clave
de bsqueda en el archivo.
El registro ndice contiene el valor de la clave y un
puntero al primer registro con ese valor de la clave
de bsqueda.
El resto de registros con el mismo valor de la clave
de bsqueda se almacenan consecutivamente
despus del primer registro, dado que, ya que el
ndice es primario, los registros se ordenan sobre la
misma clave de bsqueda.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

10
II. Indexacin y
asociacin

Clave de bsqueda:
Nombre-Sucursal

ndice denso
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

11
II. Indexacin y
asociacin

ndice disperso
Slo se crea un registro ndice para algunos de los
valores.
Cada registro ndice contiene un valor de la clave de
bsqueda y un puntero al primer registro con ese
valor de la clave.
Para localizar un registro se busca la entrada del
ndice con el valor ms grande que sea menor o igual
que el valor que se est buscando. Se empieza por el
registro apuntado por esa entrada del ndice y se
contina con los punteros del archivo hasta
encontrar el registro deseado.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

12
II. Indexacin y
asociacin

Clave de bsqueda:
Nombre-Sucursal

ndice disperso
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

13
II. Indexacin y
asociacin

Densos o dispersos?
ndice denso: ms rpido
ndice disperso: espacio ms reducido y
mantenimiento ms sencillo.
Existe un compromiso que el diseador del sistema debe
mantener entre el tiempo de acceso y el espacio adicional
requerido. Aunque la decisin sobre este compromiso
depende de la aplicacin en particular, un buen
compromiso es tener un ndice disperso con una entrada
del ndice por cada bloque.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

14
II. Indexacin y
asociacin

ndices multinivel
Ejemplo:

Archivo con 100,000 registros


10 registros por cada bloque
Un ndice por cada bloque.
Entonces, se requieren 10,000 ndices.
En cada bloque: 100 ndices
Por lo tanto, se requieren 100 bloques para almacenar los
ndices (en archivos secuenciales)
Usando bsqueda binaria se necesitara leer log2(100)=7
bloques.
Si cada bloque se lee en 30 ms, entonces se requerir 210
ms.
La bsqueda binaria no es posible con bloques de
desbordamiento. En ese caso se usa acceso secuencial.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

15
II. Indexacin y
asociacin

ndice disperso de dos niveles

Para resolver este


problema el ndice
se trata como si
fuese un archivo
secuencial y se
construye un ndice
disperso sobre el
ndice con
agrupacin.
Los ndices con dos o ms niveles se llaman
ndices multinivel.
Cada nivel de ndice se podra corresponder con
una unidad del almacenamiento fsico. As, es
posible disponer de ndices para pistas, cilindros
y discos.
Los ndices multinivel estn estrechamente
relacionados con la estructura de rbol.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

16
II. Indexacin y
asociacin

Actualizacin del ndice


I.

INSERCIN: Realizar una bsqueda usando el valor


de la clave de bsqueda del registro a insertar. Luego:
A. Si el ndice es denso:
Si el valor de la clave de bsqueda no aparece en el ndice, el
sistema inserta en ste un registro ndice con el valor de la
clave de bsqueda en la posicin adecuada.
En caso contrario se emprenden las siguientes acciones:

o
a)
b)

Si el registro ndice almacena punteros a todos los registros


con el mismo valor de la clave de bsqueda, el sistema aade
un puntero al nuevo registro en el registro ndice.
En caso contrario, el registro ndice almacena un puntero
slo hacia el primer registro con el valor de la clave de
bsqueda. El sistema sita el registro insertado despus de
los otros con los mismos valores de la clave de bsqueda.

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

17
II. Indexacin y
asociacin

B. Si el ndice es disperso:
o Se asume que el ndice almacena una entrada por
cada bloque. Si el sistema crea un bloque nuevo,
inserta el primer valor de la clave de bsqueda (en el
orden de la clave de bsqueda) que aparezca en el
nuevo bloque del ndice. Por otra parte, si el nuevo
registro tiene el menor valor de la clave de bsqueda
en su bloque, el sistema actualiza la entrada del
ndice que apunta al bloque; si no, el sistema no
realiza ningn cambio sobre el ndice.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

18
II. Indexacin y
asociacin

II. BORRADO: Primero buscar el ndice a borrar.


Luego:
A. Si el ndice es denso:
o Si el registro borrado era el nico registro con ese valor de
la clave de bsqueda, el sistema borra el registro ndice
correspondiente del ndice.
o En caso contrario se emprenden las siguientes acciones:
a) Si el registro ndice almacena punteros a todos los registros
con el mismo valor de la clave de bsqueda, el sistema borra
del registro ndice el puntero al registro borrado.
b) En caso contrario, el registro ndice almacena un puntero
slo al primer registro con el valor de la clave de bsqueda.
En este caso, si el registro borrado era el primer registro con
el valor de la clave de bsqueda, el sistema actualiza el
registro ndice para apuntar al siguiente registro.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

19
II. Indexacin y
asociacin

B. Si el ndice es disperso:
o Si el ndice no contiene un registro ndice con el valor de la
clave de bsqueda del registro borrado, no hay que hacer
nada.
o En caso contrario se emprenden las siguientes acciones:
a) Si el registro borrado era el nico registro con la clave de
bsqueda, el sistema reemplaza el registro ndice
correspondiente con un registro ndice para el siguiente valor
de la clave de bsqueda (en el orden de la clave de
bsqueda). Si el siguiente valor de la clave de bsqueda ya
tiene una entrada en el ndice, se borra en lugar de
reemplazarla.
b) En caso contrario, si el registro ndice para el valor de la
clave de bsqueda apunta al registro a borrar, el sistema
actualiza el registro ndice para que apunte al siguiente
registro con el mismo valor de la clave de bsqueda.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

20
II. Indexacin y
asociacin

ndices secundarios
Los ndices secundarios deben ser densos, ya que
los valores de la clave de bsqueda podran estar
en cualquier lugar del archivo y se necesitara
explorar el archivo completo para encontrar un
valor especfico.
Se puede usar un nivel adicional de referencia
para implementar los ndices secundarios sobre
claves de bsqueda que no sean claves de
bsqueda primarias. Los punteros en estos ndices
secundarios no apuntan directamente al archivo
sino a un cajn que contiene punteros al archivo.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

21
II. Indexacin y
asociacin

ndice secundario del archivo cuenta, con la clave de bsqueda secundaria Saldo

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

22
II. Indexacin y
asociacin

Los ndices secundarios mejoran el rendimiento


de las consultas que emplean claves que no son
la de bsqueda del ndice primario. Sin
embargo, implican un tiempo adicional
importante al modificar la base de datos.
El diseador de la base de datos debe decidir
qu ndices secundarios son deseables, segn
una estimacin sobre las frecuencias de las
consultas y las modificaciones.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

23
II. Indexacin y
asociacin

3. Archivos de ndices del rbol B+


El inconveniente principal de la organizacin de un
archivo secuencial indexado reside en que el
rendimiento, tanto para buscar en el ndice como para
buscar secuencialmente a travs de los datos, se degrada
segn crece el archivo.
La estructura de ndice de rbol B+ es la ms extendida
de las estructuras de ndices que mantienen su eficiencia
a pesar de la insercin y borrado de datos. Un ndice de
rbol B+ toma la forma de un rbol equilibrado donde los
caminos de la raz a cada hoja del rbol son de la misma
longitud. Cada nodo que no es una hoja tiene entre [n/2]
y n hijos, donde n es fijo para cada rbol en particular.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

24
II. Indexacin y
asociacin

Estructura del rbol B+


Un ndice de rbol B+ es un ndice multinivel pero
con una estructura que difiere del ndice multinivel
de un archivo secuencial.
Una hoja de rbol B+ puede contener hasta n 1
claves de bsqueda K1, K2, ..., Kn1 y n punteros P1,
P2, ..., Pn. Los valores de la clave de bsqueda de un
nodo se mantienen ordenados; as, si i < j, entonces
K i < K j.

Nodo tpico de un rbol B+


Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

25
II. Indexacin y
asociacin

Nodo hoja sobre la clave de bsqueda


principal

Nodo hoja para el ndice del rbol B+ de cuenta (n=3)


Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

26
II. Indexacin y
asociacin

Asignacin de valores a los nodos


Cada hoja puede guardar hasta n 1 valores.
Est permitido que los nodos hojas contengan al
menos [(n 1)/2] valores.
Los rangos de los valores en cada hoja no se
solapan. As, si Li y Lj son nodos hoja e i< j,
entonces cada valor de la clave de bsqueda en
Li es menor que cada valor de la clave en Lj .
Si el ndice de rbol B+ es un ndice denso, cada
valor de la clave de bsqueda debe aparecer en
algn nodo hoja.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

27
II. Indexacin y
asociacin

Nodos internos de un rbol B+


Los nodos internos del rbol B+ forman un
ndice multinivel (disperso) sobre los nodos
hoja.
La estructura de los nodos internos es la misma
que la de los nodos hoja excepto que todos los
punteros son punteros a nodos del rbol.
Un nodo interno podra guardar hasta n
punteros y debe guardar al menos [n/2]
punteros. El nmero de punteros de un nodo se
llama grado de salida del nodo.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

28
II. Indexacin y
asociacin

Los punteros en un rbol B+


Consideremos un nodo que contiene m punteros.
Para i = 2, 3, ..., m 1, el puntero Pi apunta al
subrbol que contiene los valores de la clave de
bsqueda menores que Ki y mayor o igual que Ki1.
El puntero Pm apunta a la parte del subrbol que
contiene los valores de la clave mayores o iguales
que Km1, y el puntero P1 apunta a la parte del
subrbol que contiene los valores de la clave
menores que K1.

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

29
II. Indexacin y
asociacin

El nodo raz de un rbol B+


A diferencia de otros nodos internos, el nodo
raz puede tener menos de [n/2]; sin embargo,
debe tener al menos dos punteros, a menos que
el rbol consista en un solo nodo.
Siempre es posible construir un rbol B+, para
cualquier n, que satisfaga los requisitos
anteriores.

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

30
II. Indexacin y
asociacin

Ejemplo

rbol B+ para el archivo cuenta (n=3)


Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

31
II. Indexacin y
asociacin

Ejemplo

rbol B+ para el archivo cuenta (n=5)

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

32
II. Indexacin y
asociacin

Organizacin de archivos con rboles


B+
En la organizacin de archivo con rboles B+, los
nodos hoja del rbol almacenan registros, en lugar
de almacenar punteros a registros.

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

33
II. Indexacin y
asociacin

4. Archivos de ndices de rbol B


Los ndices de rbol B son similares a los ndices de
rbol B+. La diferencia radica en que los rboles B
permiten que los valores de la clave de bsqueda
aparezcan solamente una vez.

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

34
II. Indexacin y
asociacin

5. Asociacin esttica
Un inconveniente de la organizacin de archivos
secuenciales es que hay que acceder a una
estructura de ndices para localizar los datos o
utilizar una bsqueda binaria y, como resultado,
ms operaciones de E/S.
La organizacin de archivos basada en la tcnica
de asociacin (hashing) permite evitar el
acceso a la estructura de ndice.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

35
II. Indexacin y
asociacin

Organizacin de archivos por


asociacin
En una organizacin de archivos por asociacin
se obtiene la direccin del bloque de disco que
contiene el registro deseado mediante el clculo
directo de una funcin sobre el valor de la clave
bsqueda del registro.
Un cajn (bucket) es una unidad de
almacenamiento que puede guardar uno o ms
registros. Un cajn es normalmente un bloque
de disco, aunque tambin se podra elegir ms
pequeo o ms grande que un bloque de disco.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

36
II. Indexacin y
asociacin

Definicin formal de funcin de


asociacin
Sea K el conjunto de todos los valores de clave de
bsqueda y sea B el conjunto de todas las
direcciones de cajn. Una funcin de asociacin h es
una funcin de K a B.
Sea h una funcin asociacin:
Para insertar un registro con clave de bsqueda Ki,
calcularemos h(Ki), lo que proporciona la direccin
del cajn para ese registro.
Para realizar una bsqueda con el valor Ki de la clave
de bsqueda, simplemente se calcula h(Ki) y luego se
busca el cajn con esa direccin.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

37
II. Indexacin y
asociacin

Condiciones de una buena funcin de


asociacin
1. Distribucin uniforme: Cada cajn tiene
asignado el mismo nmero de valores de la
clave de bsqueda dentro del conjunto de
todos los valores posibles de la clave de
bsqueda.
2. Distribucin aleatoria: En el caso
promedio, cada cajn tendr casi el mismo
nmero de valores asignados a l, sin tener en
cuenta la distribucin actual de los valores de
la clave de bsqueda.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

38
II. Indexacin y
asociacin

Gestin de desbordamiento de cajones


Si un cajn no tiene suficiente espacio para
almacenar un nuevo registro, sucede lo que se
denomina desbordamiento de cajones.
Los desbordamientos de cajn es pueden ocurrir por
varias razones:
Cajones insuficientes
Atasco: generado porque:
 Varios registros podran tener la misma clave de
bsqueda, o
 La funcin de asociacin elegida podra producir una
distribucin no uniforme de las claves de bsqueda.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

39
II. Indexacin y
asociacin

Cajones de desbordamiento

Cadena de desbordamiento de una estructura asociativa

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

40
II. Indexacin y
asociacin

ndices asociativos
La asociatividad se puede utilizar no solamente para
la organizacin de archivos sino tambin para la
creacin de estructuras de ndice.
Un ndice asociativo (hash index) organiza las
claves de bsqueda, con sus punteros asociados,
dentro de una estructura de archivo asociativo.
Un ndice asociativo se construye as:
Aplicar una funcin de asociacin sobre la clave de
bsqueda para identificar un cajn.
Luego se almacenan la clave y los punteros asociados
en el cajn (o en los cajones de desbordamiento).
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

41
II. Indexacin y
asociacin

ndice asociativo de la clave de bsqueda nmerocuenta del archivo cuenta. F=suma_digitos MOD 7

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

42
II. Indexacin y
asociacin

6. Asociacin dinmica
Problema de la asociacin esttica: se debe fijar el
conjunto de direcciones de cajn a priori.
Las BD crecen con el tiempo. Si se usan asociaciones
estticas se tienen las sig. opciones:
1. Elegir una funcin de asociacin basada en el
tamao actual del archivo (degradacin del
rendimiento cuando la BD crece).
2. Elegir una funcin de asociacin basada en el
tamao previsto del archivo con relacin a un punto
determinado del futuro (desperdicio de espacio)
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

43
II. Indexacin y
asociacin

3. Reorganizar peridicamente la estructura


asociativa en respuesta al crecimiento del archivo
(mucho tiempo)

Algunas tcnicas de asociacin dinmica


permiten modificar la funcin de asociacin
dinmicamente para acomodarse al aumento o
disminucin de la base de datos.

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

44
II. Indexacin y
asociacin

Asociacin extensible
La asociacin extensible hace frente a los
cambios del tamao de la base de datos
dividiendo y fusionando los cajones a medida
que la base de datos aumenta o disminuye.
Como resultado se conserva eficazmente el
espacio.
Puesto que la reorganizacin se realiza sobre un
cajn cada vez, la degradacin del rendimiento
resultante es aceptablemente baja.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

45
II. Indexacin y
asociacin

Estructura de datos de la asociacin


extensible
Se elige una funcin de asociacin h que genere
enteros binarios de b bits (ejemplo b=32).
Se crean cajones bajo demanda. Inicialmente no
se utiliza el total de b bits del valor de la funcin
de asociacin. Se emplean i bits, donde 0i b.
El valor de i aumenta o disminuye con el
tamao de la base de datos.
Se asocia con cada cajn un nmero entero que
proporciona la longitud del prefijo comn del
valor de la funcin de asociacin (ij).
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

46
II. Indexacin y
asociacin

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

47
II. Indexacin y
asociacin

Consultas y actualizaciones
CONSULTAS
Para localizar el cajn que contiene el valor de la
clave de bsqueda Ki, se toman los primeros i bits
ms significativos de h(Ki), se busca la entrada de
la tabla que corresponda a esta cadena de bits, y
se sigue el puntero del cajn en la entrada de la
tabla.

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

48
II. Indexacin y
asociacin

INSERCION
Para insertar un registro con un valor de la clave
de bsqueda Ki se sigue el mismo procedimiento
de bsqueda, llegando a algn cajn j. Si hay sitio
en el cajn se inserta el registro en el cajn. Si por
el contrario el cajn est lleno, hay que dividir el
cajn y redistribuir los registros actuales ms uno
nuevo.

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

49
II. Indexacin y
asociacin

Divisin de cajones
Primero hay que determinar el valor de la funcin
de asociacin por si fuera necesario incrementar el
nmero de bits i:
Si i = i es necesario incrementar el tamao de la tabla
de direcciones de los cajones para incluir los punteros
a los dos cajones que resultan de la divisin del cajn j.
Esto se hace considerando un bit adicional en el valor
de la funcin de asociacin. Luego se incrementa el
valor de i en uno, duplicando el tamao de la tabla de
direcciones de cajones. A continuacin se vuelve a
calcular la funcin de asociacin para cada registro del
cajn j y, dependiendo de los primeros i bits
(recurdese que se ha aadido uno a i), se mantiene en
el cajn j o se coloca en el cajn recin creado.
j

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

50
II. Indexacin y
asociacin

Si i > i , entonces ms de una entrada en la tabla de


direcciones de cajones apunta al cajn j. As, se puede
dividir el cajn j sin incrementar el tamao de la tabla
de direcciones. A continuacin, es necesario ajustar las
entradas en la tabla de direcciones de cajones que
anteriormente apuntaban al cajn j. La primera mitad
de todas las entradas se dejan como estaban
(apuntando al cajn j) y el resto de entradas se ponen
apuntando al cajn recin creado. Por ltimo, como en
el caso anterior, se vuelve a calcular la funcin de
asociacin para cada registro en el cajn j.
j

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

51
II. Indexacin y
asociacin

Ejemplo de insercin

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

52
II. Indexacin y
asociacin

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

53
II. Indexacin y
asociacin

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

54
II. Indexacin y
asociacin

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

55
II. Indexacin y
asociacin

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

56
II. Indexacin y
asociacin

Eliminacin de un registro
Para borrar un registro con valor de la clave de
bsqueda Ki se sigue el mismo procedimiento de
bsqueda, finalizando en algn cajn (j). Se
borran ambos, el registro del archivo y la clave
de bsqueda del cajn. El cajn tambin se
elimina si se queda vaco. Ntese que en este
momento, varios cajones se pueden fusionar,
reduciendo el tamao de la tabla de direcciones
de cajones a la mitad.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

57
II. Indexacin y
asociacin

Comparacin entre indexacin


ordenada y asociacin
Criterios a tomar en cuenta:
Es aceptable el coste de una reorganizacin
peridica del ndice o de una estructura
asociativa?
Cul es la frecuencia relativa de las inserciones y
borrados?
Es deseable mejorar el tiempo medio de acceso a
expensas de incrementar el tiempo de acceso en el
peor de los casos?
Qu tipos de consultas se supone que van a
realizar los usuarios?
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

58
II. Indexacin y
asociacin

El cuarto punto, el tipo esperado de la consulta,


es un aspecto crtico para la eleccin entre la
indexacin ordenada o la asociacin.
Si las consultas son del tipo:
select A1, A2, ..., An
from r
where Ai = c
Es preferible una estructura ASOCIATIVA
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

59
II. Indexacin y
asociacin

Si las consultas son del tipo:


select A1, A2, ..., An
from r
where Ai c2 and Ai c1
Es preferible una estructura de ndices ordenados.

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

60
II. Indexacin y
asociacin

Accesos multiclave
Asumamos que el archivo cuenta tiene dos
ndices: uno para el nombre-sucursal y otro
para saldo. Consideremos la consulta :
Encontrar todos los nmeros de cuenta de la
sucursal Pamplona con saldos igual a 1.000 .
select nmero-prstamo
from cuenta
where nombre-sucursal = Pamplona and
saldo = 1000
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

61
II. Indexacin y
asociacin

Existen 3 estrategias de solucin:


1.

2.

3.

Usar el ndice en nombre-sucursal para encontrar todos


los registros pertenecientes a la sucursal de Pamplona.
Luego se examinan estos registros para ver si saldo =
1.000 .
Usar el ndice en saldo para encontrar todos los registros
pertenecientes a cuentas con saldos de 1.000 . Luego se
examinan estos registros para ver si nombre-sucursal =
Pamplona
Usar el ndice en nombre-sucursal para encontrar
punteros a registros pertenecientes a la sucursal
Pamplona. Y tambin usar el ndice en saldo para
encontrar los punteros a todos los registros
pertenecientes a cuentas con un saldo de 1.000. Se realiza
la interseccin de estos dos conjuntos.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

62
II. Indexacin y
asociacin

La tercera estrategia es la nica de las tres que


aprovecha la ventaja de tener varios ndices. Sin
embargo, incluso esta estrategia podra ser una
pobre eleccin si sucediera lo siguiente:
Hay muchos registros pertenecientes a la sucursal
Pamplona.
Hay muchos registros pertenecientes a cuentas con un
saldo de 1.000 .
Hay solamente unos cuantos registros pertenecientes a
ambos, a la sucursal Pamplona y a las cuentas con un
saldo de 1.000 .
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

63
II. Indexacin y
asociacin

ndices sobre varias claves


La clave de bsqueda se puede representar como
una tupla de valores, de la forma (a1, ..., an), donde
los atributos indexados son A1, ..., An.
En el problema anterior se podra indexar
combinando los atributos (nombre-sucursal, saldo).
Esta solucin tiene problemas en consultas como:
select nmero-prstamo
from cuenta
where nombre-sucursal < Pamplona and saldo =
1000
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

64
II. Indexacin y
asociacin

Archivos en retcula (rejilla)


Utiliza arrays bidimensionales y
unidimensionales.
El array bidimensional se llama array en
retcula y los arrays unidimensionales se llaman
escalas lineales.
El archivo en retcula tiene un nico array en
retcula y una escala lineal para cada atributo de
la clave de bsqueda.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

65
II. Indexacin y
asociacin

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

66
II. Indexacin y
asociacin

Los archivos en retcula proporcionan un descenso


significante en el tiempo de procesamiento de
consultas multiclave. Sin embargo, implican un
gasto adicional de espacio (el directorio en retcula
podra llegar a ser grande), as como una
degradacin del rendimiento al insertar y borrar
registros. Adems, es difcil elegir una divisin en
los rangos de las claves para que la distribucin de
las claves sea uniforme. Si las inserciones en el
archivo son frecuentes, la reorganizacin se tendr
que realizar peridicamente y eso puede tener un
coste mayor.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

67
II. Indexacin y
asociacin

ndices de mapas de bits


Los ndices de mapas de bits son un tipo de
ndices especializado para la consulta sencilla
sobre varias claves, aunque cada ndice de
mapas de bits se construya para una nica clave.
Para que se usen los ndices de mapas de bits,
los registros de la relacin deben estar
numerados secuencialmente.

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

68
II. Indexacin y
asociacin

Estructura de los ndices de mapas de


bits
Un mapa de bits es un array de bits.
En su forma ms simple, un ndice de mapas de
bits sobre un atributo A de la relacin r consiste
en un mapa de bits para cada valor que pueda
tomar A. Cada mapa de bits tiene tantos bits
como el nmero de registros de la relacin. El simo bit del mapa de bits para el valor vj se
establece en 1 si el registro con nmero i tiene el
valor vj para el atributo A. El resto de bits del
mapa de bits se establecen a 0.
Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

69
II. Indexacin y
asociacin

Ejemplo
Campo sexo: puede tomar slo los valores M o F
Atributo nivel-ingresos: 5 niveles:

L1: 0 9.999
L2: 10.000 19.999
L3: 20.000 39.999
L4: 40.000 74.999 y
L5: 75.000 .

Conceptos
bsicos

ndices
ordenados

Archivos y
Arboles B+

Archivos y
Arboles B

Asociacin
esttica

Asociacin
dinmica

70
II. Indexacin y
asociacin

Tarea
Estudiar la eficiencia de los mapas de bits.
Estudiar y resumir la combinacin de la tcnica
de mapa de bits con los rboles B+.
Haga una breve comparacin entre las distintas
formas de indexacin y asociacin estudiadas
indicando sus pro y sus contras al realizar
operaciones de insercin, borrado y consultas