Está en la página 1de 12

Contenidos

Bases de Datos

Indexacin
y
Asociacin

Conceptos bsicos
Indices Ordenados
rboles B+
Arboles B
Asociacin esttica

Bases de Datos

Conceptos bsicos

Indices ordenados: los valores estn ordenados


Indices asociados: las claves de bsqueda estn
distribuidas uniformemente a los largo de cajones
utilizando una funcin de asociacin.
Indexacin y Asociacin

Criterios de evaluacin de los ndices

Los Indices se utilizan parta aumentar la velocidad


de acceso a los datos
Clave de bsqueda: atributo o conj. de atributos
que se utilizan para buscar en un archivo.
Un fichero Indice est formado por registros de la
forma
Clave de bsqueda Puntero
Dos tipos de indices:

Bases de Datos

Indexacin y Asociacin

Tipos de acceso que se soportan


eficazmente, p.ej.:
registros con un valor concreto de atributo
registros con un atributo entre un rango de
valores

Tiempo de acceso
Tiempo de inserccin

Bases de Datos

Indexacin y Asociacin

Indices Ordenados

Indice Denso

Los registros indices se almacenan ordenados por el


valor de la clave de bsqueda.
Indices primarios: en un archivo ordenado
secuencialmente,es el indice cuya clave de bsqueda
especifica el orden secuencial del archivo.

Aparece un registro indice para cada valor


de la clave de bsqueda en el archivo

Tambin se llama ndice con agrupacin.


La clave de bsqueda de un ndice primario suele ser la
clave primaria, aunque no necesariamente.

Indice secundario: es un ndice cuya clave de


bsqueda especifica un orden distinto del orden
secuencial del archivo.
Archivo Secuencial Indexado: archivos ordenados
secuencialmente con ndice primario.
Bases de Datos

Indexacin y Asociacin

Bases de Datos

Indexacin y Asociacin

Indice Disperso

Indice Denso vs. Disperso

Slo se crea un registro ndice para algunos


de los valores de la clave de bsqueda.

Generalmente ms rpido localizar un


registro con Indice Denso que con Disperso.
Los indices dispersos utilizan menos
espacio, y tienen un mantenimiento menor
para las insercciones y borrados.
Un buen compromiso entre tiempo de
acceso y espacio adicional requerido es
tener un ndice disperso con una entrada del
ndice por cada bloque.

Bases de Datos

Indexacin y Asociacin

Bases de Datos

Indexacin y Asociacin

Indices Multinivel
(2/2)

Indices Multinivel (1/2)


Si el ndice primario no cabe en memoria, el
acceso se hace costoso.
Para reducir el nmero de accesos de disco, se
trata el ndice como si fuera un archivo secuencial
y se construye un ndice disperso sobre l.
Indice externo: un ndice disperso del ndice primario
Indice interno: el ndice primario

Si incluso el ndice externo es demasiado grande


para caber en memoria, se podra crear otro nivel
de indexacin.
En las insercciones y borrados hay que actualizar
los ndices a todos los niveles.
Bases de Datos

Indexacin y Asociacin

Actualizacin del Indice: Borrado

10

Inserccin en un Indice de un solo nivel:

Indice denso: el borrado de la clave de bsqueda es


similar al borrado de un registro.
Indice disperso: si una entrada para la clave de
bsqueda existe en el ndice, se borra reemplazando la
entrada en el ndice con la siguiente clave de bsqueda
(en orden). Si la siguiente clave de bsqueda ya tiene
una entrada, se borra sin ms sin reemplazarla.

Indexacin y Asociacin

Indexacin y Asociacin

Actualizacin del Indice: Inserccin

Si el registro borrado era el nico registro en el


archivo con ese valor de clave de bsqueda, la
clave de bsqueda se borra del ndice tambin.
Borrado en un indice de un solo nivel:

Bases de Datos

Bases de Datos

11

Primero se realiza una bsqueda utilizando la clave de


bsqueda del registro a insertar.
Indices densos: si el valor de la clave de bsqueda no
aparece en el ndice, el valor se inserta en el ndice.
Indices dispersos: si almacena una entrada por cada
bloque, no es necesario cambiar el ndice, a menos que
se cree un nuevo bloque. En este caso, el primer valor
de la clave (en orden) que aparezca en el nuevo bloque
es el valor a insertar en el ndice.

Los algorimos de inserccin y borrado multinivel


son simples extensiones de los algoritmos de un
nico nivel.
Bases de Datos

Indexacin y Asociacin

12

Indices Secundarios

Indices primarios y secundarios

Es como un indice primario, excepto en que los


registros apuntados por el indice no estn almacenados
sucesivamente.

Bases de Datos

Indexacin y Asociacin

13

Los ndices secundarios tienen que ser densos.


Los ndices ofrecen sustanciales beneficios
cuando se utilizan para buscar registros.
Cuando se modifica un archivo, se debe
actualizar cada ndice del archivo.
La actualizacin de los ndices imponen un
tiempo adicional en la modificacin de la Base
de Datos.

Bases de Datos

Archivos de Indices de rbol B+

Indexacin y Asociacin

14

Archivos de Indice de rbol B+

Desventajas de los archivos secuenciales


indexados: el rendimiento se degrada segn crece
el archivo. Esta degradacin se resuelve
reorganizando el archivo.
Ventajas de rboles B+: automaticamente se
reorganiza con cambios pequeos y locales en las
insercciones y borrados. No se requiere la
reorganizacin total del archivo.
Desventajas de rboles B+: una degradacin al
insertar y borrar, y espacio extra.
Las ventajas de los rboles B+ son mayores que
sus desventajas y se usan ampliamente, siendo una
alternativa a los archivos secuenciales indexados..
Bases de Datos

Indexacin y Asociacin

15

Un rbol B+ satisface estas propiedades:


Todos los caminos de la raz a las hojas tienen la
misma longitud.
Cada nodo que no es raz ni hoja tiene entre n/2
y n hijos, donde n est fijo para cada rbol en
particular.
Un nodo hoja tiene entre (n-1)/2 y (n-1) valores.
Casos especiales:
si la raz no es una hoja, tiene como mnimo 2 hijos.
Si la raz es una hoja, puede tener entre 0 y (n-1)
valores.

Bases de Datos

Indexacin y Asociacin

16

Estructura de un nodo de rbol B+

Nodos hoja en rboles B+

Nodo tpico

Propiedades de un nodo hoja:


Para i=1, 2, ..., n-1, el puntero Pi apunta o bien a
un registro del archivo con valor de la clave de
bsqueda Ki, o bien a un cajn de punteros, cada
uno de los cuales apunta a un registro del archivo
con valor de la clave de bsqueda Ki.
Si Li, Lj son nodos hojas y i < j, entonces cada
valor de la clave de bsqueda en Li es menor que
cada valor de la clave en Lj.
Pn apunta al siguiente nodo hoja en orden de la
clave de bsqueda.

Ki son los valores de la clave de bsqueda


Pi son
punteros a hijos (para nodos que no son hojas), o
punteros a cajones (para nodos hoja).

Los valores de la clave de bsqueda estn


ordenados:
K1 < K2 < K3 < ... < Kn-1
Bases de Datos

Indexacin y Asociacin

17

Bases de Datos

Nodos hoja en rboles B+

Indexacin y Asociacin

18

Nodos internos en rboles B+


Los nodos internos del rbol B+ forman un ndice
multinivel disperso sobre los nodos hoja. Para un
nodo interno con m punteros:
P1 apunta a la parte del subrbol que contiene los
valores de la clave de bsqueda menores que K1
Para i=2, 3, ..., m-1, Pi apunta al subrbol que contiene
los valores de la clave menores que Ki y mayor o igual
que Ki-1
Pm apunta a la parte del subrbol que contiene los
valores de la clave mayores o iguales a Km-1

Bases de Datos

Indexacin y Asociacin

19

Bases de Datos

Indexacin y Asociacin

20

Ejemplo de rbol B+

Ejemplo de rbol B+

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


Los nodos hoja deben tener entre 2 y 4 valores
((n-1)/2 y n-1, con n=5)
Los nodos internos distintos de la raz deben tener
entre 3 y 5 hijos (n/2 y n, con n=5)
La raz debe tener como mnimo 2 hijos

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


Bases de Datos

Indexacin y Asociacin

21

Bases de Datos

Indexacin y Asociacin

22

Observaciones sobre rboles B+

Consultas en rboles B+ (1/2)

Como las conexiones entre nodos se hace a travs


de puntero, no hay ninguna suposicin sobre que
los nodos cercanos lgicamente lo sean
fisicamente.
Los niveles de nodos internos forman una
jerarqua de indices dispersos.
El rbol B+ contiene un nmero relativamente
pequeo de niveles (logartmico en el tamao del
archivo principal), por lo que las bsquedas se
pueden realizar eficientemente.
Las insercciones y borrados tambin son
eficientes, ya que el ndice se reestructura en
tiempo logartmico.

Hay que seguirlo por el orden de la clave de


bsqueda

Bases de Datos

Bases de Datos

Indexacin y Asociacin

23

Indexacin y Asociacin

24

Consultas en rboles B+ (2/2)

Inserccin en rboles B+ (1/3)

El camino que se recorre en el procesamiento de una


consulta (de la raz a la hoja) no es mayor de log(n/2)K,
siendo K los valores de la clave de bsqueda del
archivo.
Un nodo es generalmente del mismo tamao que un
bloque de disco, tipicam,ente 4kB, y n es alrededor de
100 (40 bytes por registro de ndice).
Con un milln de valores de la clave de bsqueda y
n=100, tenemos que como mucho log(50)(1.000.000) =
4 nodos se acceden en una bsqueda.
Si tuvieramos un rbol binario equilibrado con un
milln de valores, accederamos a alrededor de 20
nodos para una busqueda. (acceso a E/S 30 ms)

Encontrar el nodo hoja en donde aparece el


avlor de la clave de bsqueda.
Si el valor de la clave ya est en el nodo
hoja, se aade el registro al fichero.
Si el valor de la clave no est all, entonces
aadimos el registro al archivo, y despus:

Bases de Datos

Indexacin y Asociacin

25

Si hay espacio en el nodo hoja, insertamos la


pareja (k,p) en el sitio adecuado.
Si no hay espacio, dividimos el nodo hoja e
insertamos la pareja (k,p) de acuerdo a lo sgte.
Bases de Datos

Inserccin en rboles B+ (2/3)

Indexacin y Asociacin

26

Inserccin en rboles B+ (3/3)

Divisn de un nodo:
cogemos los n pares (k,p) (includo el nuevo a
insertar) ordenados. Colocamos los primeros n/2 en
el nodo original, y el resto en un nuevo nodo.
Sea p el puntero al nuevo nodo, y sea k la menor
clave en ese nodo. Insertamos (k,p) en el padre del
nodo que estamos dividiendo. Si el padre est
completo, lo dividimos y propagamos hacia arriba
esa divisin.
La divisin de nodos se hara hacia arriba hasta que se
encontrara un nodo que no estuviese completo.
Bases de Datos

Indexacin y Asociacin

27

Inserccin de Cdiz en el rbol B+

Bases de Datos

Indexacin y Asociacin

28

Eliminacin en rboles B+ (1/2)

Eliminacin en rboles B+ (2/2)

Encuentra el registro a ser borrado, y elimnalo del


archivo o del cajn.
Eliminamos el par (k,p) del nodo hoja (si el cajn queda
vaco).
Si el nodo despus de la elminacin ha quedado con
pocos elementos, y junto con la de un hermano caben
en un solo nodo:
Insertamos todos los pares de los dos nodos en el
nodo de la izquierda y eliminamos el de la derecha.
Eliminamos el par (ki-1, Pi), donde Pi es el puntero al
nodo eliminado, del nodo padre, recursivamente
utilizando el procedimiento anterior.
Bases de Datos

Indexacin y Asociacin

29

En otro caso, si el nodo tiene menos elementos


de los necesarios, y junto los de su hermano no
caben en un slo nodo:
Redistribur los elementos entre los dos nodos tal que
los dos tengan ms del mnimo necesario.
Actualizar los correpondientes valores de la clave de
bsqueda en los padres de los nodos.

Las eliminaciones de nodos pueden propagarse


hacia arriba. Si la raz quedase slo con un
puntero, se borrara y el nico hijo sera ahora la
raz.
Bases de Datos

Indexacin y Asociacin

30

Ejemplos de borrado en rboles B+ (1/3)

Ejemplos de borrado en rboles B+ (2/3)

Borrado de Daimiel

Borrado de Pamplona

Bases de Datos

Indexacin y Asociacin

31

Bases de Datos

Indexacin y Asociacin

32

Ejemplos de borrado en rboles B+ (3/3)

Organizacin de archivos con rboles B+

Borrado de Pamplona

La degradacin de los archivos indexados se resuelve


mediante los ndices en rbol B+
La degradacin de los archivos de datos se resuelve
utilizando una organizacin de archivos en rbol B+
Los nodos hojas guardan registros, en vez de punteros.
Puesto que los resgistros son ms grandes que los punteros,
el nmero mximo de registros que se pueden guardar en
un nodo hoja es menor que el nmero de punteros en un
nodo interno.
Los nodos hojas siguen manteniendose medio llenos
La inserccin y borrado se manejan de la misma forma que
en los ndices de rbol B+

Bases de Datos

Indexacin y Asociacin

33

Archivos de Indices de rbol B (1/2)

34

Ventajas:
Utiliza menos nodos que un rbol B+
Algunas veces se encuantran los valores antes de
alcanzar los nodos hojas
Desventajas:
Slo una pequea parte de las claves se encuantran
antes.
Al ser los nodos internos ms grandes, disminuye su
grado de salida, por lo que el rbol ha de ser ms
profundo que su correspondiente B+
La inserccin y borrado son ms complicados que B+
La implementacin es ms complicada que B+

Nodo hoja
Nodo interno
Indexacin y Asociacin

Indexacin y Asociacin

Archivos de Indices de rbol B (2/2)

Son similares a los rboles B+: los rboles B slo


permiten una nica aparicin de las claves de
bsqueda, eliminando la redundancia en su
almacenamiento.
Las claves en un nodo interno no vuelven a
aparecer en el rbol B, por lo que necesitamos
inclur un puntero adicional.

Bases de Datos

Bases de Datos

35

Bases de Datos

Indexacin y Asociacin

36

Ejemplo de rbol B

Asociacin esttica
Un cajn (bucket) es una unidad de almacenamiento que
contiene uno o ms registros.
En un archivo organizado por asociacin, el cajn de un
registro se obtiene directamente de su clave de bsqueda
utilzando la funcin de asociacin.
La funcin de asociacin h es una funcin desde el conj.
K de todos los valores posibles de clave de bsqueda al
conj. B de direcciones de cajones.
La funcin de asociacin se utiliza para localizar
registros para acceso, inserccin y borrado.
Registros con distinta clave de bsqueda pueden estar en
el mismo cajn; por lo que habr que buscar
secuencialmente todo el cajn para localizar el registro.

rbol B+

rbol B

Bases de Datos

Indexacin y Asociacin

37

Bases de Datos

Indexacin y Asociacin

38

Ejemplo de Organizacin
Asociativa (1/2)

Funciones de Asociacin
La peor funcin de asociacin asigna todas las claves de
bsqueda al mismo cajn; esto hara el teimpo de
acceso proporcional al nmero de clvaes en el fichero.
Una funcin de asociacin ideal es uniforme, i.e. se
asigna a cada cajn el mismo nmero de claves de
bsqueda.
Tambin es aleatoria, y as cada cajn tendr el mismo
nmero de registros asignados independientemente de
la distribucin actual de claves de bsqueda.
Las funciones tpicas de asociacin realizan el clculo
sobre la representacin binaria interna de la clave de
bsqueda.
Bases de Datos

Indexacin y Asociacin

39

Bases de Datos

Indexacin y Asociacin

40

Ejemplo de Organizacin Asociativa (2/2)


Organizacin asociativa del archivo cuenta,
utilizando nombre-sucursal como clave.
Hay 10 cajones
Representamos la letra i-sima por el entero i
La funcin de asociacin devuelve la suma de la
representacin de las letras mdulo 10.

Manejo del desbordamiento de cajones


El desbordamiento de los cajones puede
ocurrir a causa de:
Cajones insuficientes
Atasco en la distribucin de cajones:
Varios registros tienen la misma clave de bsqueda
La funcin de asociacin elegida puede producir una
distribuccin irregular de las claves de bsqueda

La probabilidad de desbordamiento se
puede reducir, pero no eliminar: cajones de
desbordamiento.
Bases de Datos

Indexacin y Asociacin

41

Bases de Datos

Ejemplo de cajones de desbordamiento

Indexacin y Asociacin

42

Indices asociativos
La asociacin se puede emplear tambin
para estructuras de ndices.
Los ndices asociativos organizan las claves
junto a sus punteros en un fichero
asociativo.
Los ndices asociativos son siempre
secundarios

Bases de Datos

Indexacin y Asociacin

43

Bases de Datos

Indexacin y Asociacin

44

Ejemplo de Indice
asociativo

Indice asociativo
de la clave de
bsqueda
nmero-cuenta
del archivo
cuenta.

Bases de Datos

Indexacin y Asociacin

45

También podría gustarte