Está en la página 1de 28

BASE DE DATOS PARA LA ADMINISTRACION

INDICES
LIC. DIEGO KRAUTHAMER
PROFESOR ADJUNTO INTERINO SEDE BUENOS AIRES

AGENDA
Introduccin. Tcnicas de Indexacin. Implementacin en Microsoft SQL Server. Bibliografa.

INTRODUCCION
Qu ocurre cuando la volumetra de la base de datos es elevada? Un ndice es una estructura de disco asociada con una tabla que acelera la recuperacin de registros.

ndice de un libro Servidor de Bases de Datos

CONCEPTOS BASICOS
Tabla: es un conjunto de extensiones. Extensin: es un conjunto de pginas o bloques. Bloque: es una estructura de pginas con ranuras. Cache de datos: es una estructura de memoria para acceder rpidamente a los datos recientemente accedidos.

Bloques de Datos

TECNICAS DE INDEXACION
ndices ordenados ndices primarios Denso Disperso Multinivel ndices secundarios ndices densos ndices B+ ndices asociativos.

INDICES PRIMARIOS
Determinan el orden fsico de los registros de la tabla. Solo puede existir uno por tabla. No necesariamente se crean sobre la clave primaria

Mtodo de Bsqueda Binaria

Cmo funciona?
Se busca de a mitades el mayor valor menor o igual que el buscado (mayor de los menores).

INDICES DENSOS
Poseen una entrada por cada valor de bsqueda. Si la tabla poseen valores de clave de bsqueda duplicados, el ndice posee un puntero que lo direcciona al primer registro.
Tabla Cliente

ndice sobre el campo ciudad

Ejemplo de ndice denso

INDICES DISPERSOS
Poseen algunas entradas por cada valor de bsqueda. Si la tabla poseen valores de clave de bsqueda duplicados, el ndice posee un puntero que lo direcciona al primer registro.
ndice sobre el campo ciudad Tabla Ciudad

Ejemplo de ndice disperso

INDICES MULTINIVEL
Surgen crendose un ndice denso sobre uno disperso . Se anidan niveles de indexacin.
Ejemplo de ndice multinivel Ciudad

ndice disperso campo ciudad


Barcelona Madrid Reus

ndice denso campo ciudad


Barcelona Daimel Madrid Pamplona Reus Ronda C-217 C-101 C-110 C-215 C-102 C-201 C-222 C-305

Tabla Ciudad
Barcelona Daimel Daimel Madrid Pamplona Pamplona Reus Ronda 750 500 600 700 400 900 700 350

INDICES SECUNDARIOS
No determinan el orden fsico de los registros de la tabla. Pueden existir varios por tabla. Para valores de clave repetidos se utiliza un cajn de punteros o se genera un valor para entrada del ndice.
ndice denso campo cdigo de ciudad Tabla Ciudad

Ejemplo de ndice secundario

C-005 C-101 C-217 C-305 C-489 C-569 C-879 C-889 C-968 C-987

C-217 C-101 C-305 C-489 C-968 C-889 C-569 C-005 C-879 C-987

Buenos Aires Buenos Aires Buenos Aires Buenos Aires Crdoba Crdoba San Juan San Juan San Luis San Luis

INDICES DE ARBOL B+
Poseen una estructura jerrquica o de rbol. Componentes Nodo Puntero Grado de salida (N) Clave (K) Caractersticas Todos los nodos poseen el mismo grado de salida. Todas las bsquedas poseen la misma longitud del camino.

INDICES B+ ESTRUCTURA
Puntero Nodo Raz

Nodo Interno

Tabla Ciudad
C-217 C-101 C-110 C-215 C-102 C-201 C-222 C-305

Barcelona Daimel Daimel Madrid Pamplona Pamplona Reus Ronda

750 500 600 700 400 900 700 350

Valor de clave Madrid

Nodo Hoja

INDICES B+ NODO NO HOJA


Claves

25 27
Tabla Ciudad

Puntero al siguiente nivel en donde valor < 25

Puntero al siguiente nivel en donde valor >= 25 y < 27

Puntero al siguiente nivel en donde valor >= 27

INDICES B+ NODO HOJA


Claves

21 24
Tabla Ciudad

Puntero al registro de valor =21

Puntero al registro de valor=24

Puntero al siguiente nodo hoja

BUSQUEDAS EN INDICES B+
Comienzo Buscar puntero de clave menor de los mayores

Es nodo raz?
SI

NO

Avanzo hacia nodo intermedio o hoja


Clculo Longitud Si n=100 y K=1.000.000 Log 100/2 1000000 = 4 (Accedo a 4 nodos)

Es nodo hoja?
NO

SI

Fin

Ir al bloque o pgina apuntado para ir al registro

BUSQUEDAS EN INDICES B+
Busco 21
No sabemos que valor tendr, Pero si que va a ser mayor porque Son ndices ordenados

21
7

21 es menor que 21?


FALSO

21 es menor que 25?

25 57

VERDADERO

21

25

57 84

21es igual a 21? VERDADERO

INSERCION EN INDICES B+
Se insertan en el nivel de hojas. Si la pgina del nivel de hoja est completa, se parte y se copian la mitad de los elementos en la siguiente pgina Si alguna pgina de los niveles no hoja est completa, se parte y se copian la mitad de los elementos en la siguiente pgina de ese nivel

INSERCION EN B+ EJEMPLO

Inserto 5

INSERCION EN B+ EJEMPLO

Inserto 7

INSERCION EN B+ EJEMPLO

Inserto 21

21?

INSERCION EN B+ EJEMPLO
Inserto 21

5
El nodo se encuentra lleno: - se crea un nuevo nodo - se copia el 7 - se inserta 21

21

INSERCION EN B+ EJEMPLO
Inserto 21 se crea un nuevo nodo raiz para referenciar al nodo creado. Pasamos a tener un arbol de altura o nivel 2. Mientras ms altos, menos performance.

21

BORRADO EN INDICES B+
Se borra la clave del nivel de hoja Si la hoja queda con menos de (n-1)/2 claves, se une con la siguiente y se borra la clave en el nivel superior que la referencia Si la pgina no hoja queda con menos de n/2 claves se une con la siguiente y se borra la clave en el nivel superior que la referencia

BORRADO EN B+ EJEMPLO
Borro 7

21
7

25 57

21

25

57 84

BORRADO EN B+ EJEMPLO
Borro 7

21
7

25 57

21

25

57 84

BORRADO EN B+ EJEMPLO
Borro 7

25
21

57

21

25

57 84

IMPLEMENTACION DE BORRADO EN INDICES B+


Los motores de base de datos actuales no utilizan este mtodo: esa reorganizacin introduce demasiada sobrecarga. Utilizan supresin lgica: Marcan como borrada la entrada pero no realizan todo el desplazamiento. La supresin lgica puede provocar que el rbol posea muchos niveles restando performance: Deben recrearse o reorganizarse

BIBLIOGRAFIA
Obligatoria Fundamentos de Bases de Datos Korth. Editorial Mc Graw Hill Becas Control F. Mdulo de Programacin. Buffa Sistemas
Complementaria Blog de Maxi Acotto. http://maxiaccotto.com/category/tuning.aspx

También podría gustarte