Sie sind auf Seite 1von 77

Unidad 3 Tcnicas de indexacin

ndices

Tcnicas de Indexacin
ndice: archivo usado para agilizar la recuperacin de los registros, en respuesta a ciertas condiciones de bsqueda. Un ndice...
Es redundante pues la informacin que guarda se encuentra presente en el archivo de datos asociado. Agrega un mayor uso del espacio en disco... ...que se compensa con posibilidad de encontrar los datos ms rpidamente.

Tcnicas de Indexacin
Tipos de ndices

Criterio: Campo de Indexacin.


ndice Primario (Principal): especificado sobre el campo clave de ordenamiento de un archivo ordenado de registros (dicha clave es nica). ndice de Grupos: construido sobre un campo de ordenamiento que abarca varios registros con el mismo valor, dentro de un archivo ordenado de registros. ndice Secundario: especificado sobre un campo que no es usado para ordenar un archivo

Tcnicas de Indexacin
Tipos de ndices

Ejemplo de ndice Primario...

Tcnicas de Indexacin
Tipos de ndices

Ejemplos de ndice Secundario...

Tcnicas de Indexacin
Tipos de ndices

Criterio: Nmero de Referencias.


ndice Denso: si tiene una entrada por cada registro. ndice Disperso o no Denso: en caso contrario, tal como....

Tcnicas de Indexacin
Tipos de ndices

Criterio: Tipo de Referencias.


ndice Fsico: si la entrada contiene una referencia fsica (puntero) al archivo de datos. ndice Lgico: si cada entrada del ndice tiene como referencia el valor de otro campo.

Tcnicas de Indexacin
Tipos de ndices

Criterio: Estructura de las Referencias.


Tener una entrada de largo fijo, con un puntero al archivo de datos, ya sea como puntero a un bloque de disco o como puntero a un registro.

Tcnicas de Indexacin
Tipos de ndices

Criterio: Estructura de las Referencias.


Tener entradas de largo variable, con un campo repetitivo para almacenar un puntero a cada bloque que contiene un registro. A este esquema se le acostumbra llamar lista invertida.

Tcnicas de Indexacin
Tipos de ndices

Criterio: Estructura de las Referencias.


Una nica entrada de largo fijo por cada valor del campo de indexacin, con un nivel extra de indireccin para direccionar a los registros asociados al valor de dicha entrada.

Tcnicas de Indexacin
Tipos de ndices

Criterio: Estructura de las Referencias.


Entradas de largo fijo y tener un bitmap asociado a cada una, con un bit por cada bloque del archivo de datos; el bitmap guarda un valor 1 en los bits de los bloques que contiene un registro con el valor de la entrada, y un valor 0 en caso contrario.

Tcnicas de Indexacin
Tipos de ndices

Ejemplos de ndice Denso...

ndice denso

ndice denso con claves duplicadas

Tcnicas de Indexacin
Tipos de ndices

Ejemplos de ndice Denso...

Delete sobre ndice denso

Tcnicas de Indexacin
Tipos de ndices

Ejemplos de ndice Disperso...

ndice disperso

ndice disperso con niveles

Tcnicas de Indexacin
Tipos de ndices

Ejemplos de ndice Disperso...

Deletes sobre ndice disperso

Tcnicas de Indexacin
Tipos de ndices

Ejemplos de ndice Disperso...

Insert sobre ndice disperso (sliding records)

Tcnicas de Indexacin
Tipos de ndices

Ejemplos de ndice Disperso...

Insert sobre ndice disperso (encadenamiento)

Tcnicas de Indexacin
Tipos de ndices

Ejemplos de ndice Secundario...

ndice secundario

ndice secundario con indireccin

Tcnicas de Indexacin
Tipos de ndices

Ejemplos de ndice Bitmap...

Tcnicas de Indexacin
Una de las formas de organizar jerrquicamente los datos de un archivo ms recomendables resulta ser la estructura de rbol B y sus variaciones. Por las mismas ventajas descritas en la unidad anterior, este tipo de rbol puede ser usado tambin como estructura para ndices.
Similar situacin se presenta con las tcnicas hashing.

Tcnicas de Indexacin
ndices Dinmicos

ndice de Tipo rbol B:


Cumple las mismas propiedades vista en la unidad, cuando se estudi como estructura de archivo. Un nodo B de orden M usado como ndice se vera del siguiente modo...

donde el puntero al registroi representa la direccin al bloque donde est el registro correspondiente, o a la posicin que ste ocupa dentro de un determinado bloque.

Tcnicas de Indexacin
ndices Dinmicos

Ejemplo de ndice de tipo rbol B (en este caso, ndice secundario, de orden 5).

Tcnicas de Indexacin
ndices Dinmicos

Variaciones del rbol B:


rbol B*: cada nodo debe estar lleno en al menos 2/3 de su capacidad de almacenamiento. rbol B virtual: la raz y otros nodos intermedios son mantenidos en la memoria principal, tras su primera lectura, evitando posteriores idas al disco. rbol B+...

Tcnicas de Indexacin
ndices Dinmicos

ndice de tipo rbol B+:

Slo en las hojas se encuentran las referencias a los datos. En los nodos internos se almacenan las claves que corresponden al mayor valor que se puede alcanzar a travs del sub-rbol direccionado por el puntero izquierdo de dicha clave.

Se puede ver como un rbol B con un nivel adicional (hojas), cuyos nodos componentes se encuentran enlazados entre s, formando una lista enlazada. Lo anterior permite, adems de la bsqueda binaria desde la raz, un recorrido lineal de los nodos hojas para acceder los datos de forma ordenada en base al atributo de indexacin.

Tcnicas de Indexacin
ndices Dinmicos

Ejemplo de ndice de tipo rbol B+ (en este caso, ndice secundario, nodo interno de orden 5, nodo hoja de orden 2).

Tcnicas de Indexacin
ndices Dinmicos

Todas las tcnicas hashing vistas en la unidad anterior se pueden adaptar para ser utilizadas para construir ndices.

Tcnicas de Indexacin
ndices Bitmap
Los bitmaps combinados con las estructuras de datos anteriores, son una alternativa a las listas invertidas.

Cada entrada del ndice,

maneja un bitmap en el cual cada bit representa un bloque de disco ocupado por el archivo de datos.

Tcnicas de Indexacin
ndices Bitmap

Esquema de Codificacin: abarca dos posibilidades.por igualdad o por rangos. Este esquema se relaciona, con una representacin que se preocupa por el tipo de consultas a responder. Esquema de Descomposicin: en este caso, la representacin se centra en el almacenamiento de los bits, pudindose manejar diversos subcomponentes para guardar un conjunto de valores mediante un bitmap.

Tcnicas de Indexacin
ndices Bitmap

ndice Valor-Lista de un Componente.

Es ms bien un conjunto de bitmap, uno por cada valor del dominio del atributo indexado. Cada bitmap tiene una cantidad de bits equivalente al nmero de registros del archivo que se est indexando. Para determinar el contenido de cada bitmap:
Suponer que se tiene aqul asociado a un valor v dentro del dominio del atributo indexado. El i-simo bit de dicho bitmap valdr uno si el i-simo registro del archivo tiene el valor v en el campo de indexacin. En caso contrario, el bit valdr cero.

Tcnicas de Indexacin
ndices Bitmap

Ejemplo de Valor-Lista de un Componente, sobre un atributo con dominio [0..8].

Tcnicas de Indexacin
ndices Bitmap

ndice Valor-Lista de N Componentes.

En el caso anterior, existe el inconveniente de que el nmero de bitmaps es igual al tamao del dominio del atributo de indexacin. Para disminuir la cantidad de memoria requerida, se puede utilizar una representacin en alguna base numrica que requiera menos bits.

Tcnicas de Indexacin
ndices Bitmap

Ejemplo de Valor-Lista de 2 Componentes, en base <3,3>, sobre el mismo dominio anterior.

Tcnicas de Indexacin
ndices Bitmap

ndice Codificado por Rangos de un Componente.


En este esquema tambin hay b bitmaps, pero la representacin del valor v tiene un valor cero en los v bitmaps ms a la derecha, y valores uno en los restantes bitmaps.

Tcnicas de Indexacin
ndices Bitmap

Ejemplo de ndice Bitmap, codificado por rangos, de dos componentes (base <3,3>), sobre un atributo con dominio [0..8].

Tcnicas de Indexacin
ndices Bitmap

ndice Bit-Sliced.

Un ndice bit-sliced de un atributo es una proyeccin de los bits que componen los valores de dicho atributo para el tipo llamado binario; o es un valor-lista con tantos componentes como dgitos tenga el dominio del atributo en cuestin.

Tcnicas de Indexacin
ndices Bitmap

ndice Bit-Sliced Binario: para un atributo numrico (entero), de dos bytes de representacin interna.

ndice Bit-Sliced en Base 10: para un atributo numrico (entero), de tres dgitos.

Tcnicas de Indexacin
ndices Bitmap

ndices Bitmap Decodificados:

Este esquema hace uso de funciones de codificacin, o mapping, sobre el dominio del atributo y construye un ndice bit-sliced binario sobre el resultado de la funcin.

Ejemplo:

Notar que la idea de fondo de este esquema es poder traducir el dominio no continuo de un atributo a una representacin que consuma menos memoria (utilizar una representacin de N bits para un dominio de valores de M bits, donde N < M).

Diseo Fsico de Bases de Datos

Diseno Fsico de Bases de Datos


Objetivo

Corresponde al proceso de elegir las estructuras de almacenamiento especficas y caminos de acceso para los archivos, con el objetivo de obtener un buen rendimiento de las aplicaciones que hacen uso de las distintas bases de datos.

Diseno Fsico de Bases de Datos


Aspectos a considerar

Tiempo de Respuesta: tiempo transcurrido entre la


entrada de la transaccin a la base de datos y la llegada de la respuesta. Rendimiento del Sistema: nmero promedio de transacciones que pueden ser procesadas por minuto por la base de datos.

Utilizacin del Espacio en Disco: es la cantidad de


memoria que los archivos y sus ndices ocupan en los discos del sistema.

Diseno Fsico de Bases de Datos


Anlisis de

Tipo de consultas y transacciones. Frecuencia esperada de la invocacin de la


consulta y transacciones. Posibles restricciones de tiempo de las consultas y transacciones. Frecuencias esperadas de las operaciones de actualizacin.

Criterios para la Seleccin de la Estructura de un Archivo

Criterio: Actividad del Archivo


Nmero de registros de un archivo usados en un
proceso. Se expresa como una tasa o porcentaje como:
Cantidad de Registros Usados Tasa de Actividad = ---------------------------------------Cantidad Total de Registros

Es posible detallarla ms, como tasa de


incorporacin, de eliminacin, de modificacin o de consulta.

Criterio: Actividad del Archivo


Continuacin

Si tasa de actividad es alta, entonces se


recomienda usar un archivo secuencial.

En caso contrario, usar un esquema directo, sino


jerrquico (en particular cuando se trate de recuperar un nico registro).

Criterio: Volatilidad del Archivo


Nmero de registros insertados o eliminados en un
archivo existente, durante un periodo de tiempo.
Cantidad de Cantidad de Registros Ingresados + Registros Eliminados Tasa de Volatilidad = -------------------------------------------------------Cantidad Total de Registros

Criterio: Volatilidad del Archivo


Continuacin

Si tasa de volatilidad es alta, se recomienda un


archivo secuencial desordenado, para que los nuevos registros vayan quedando guardados al final, sino algn esquema dinmico (rboles, hashing con expansin dinmica).

En caso contrario, cualquier esquema podra ser


conveniente.

Criterio: Tipos de Consultas


Consulta Directa (o Simple):
depto = INFORMTICA edad = 35
Consulta Lgica: combinacin de las anteriores, a travs de conectores AND (consulta conjuntiva) y OR (consulta disjuntiva)

Consulta por Rangos:


sueldo > 350.000 800.000 > prestamo > 500.000

Consulta por Patrones:


depto like IN%

Criterio: Tipos de Consultas


Continuacin

En consultas directas conviene:


Directo o de tipo rbol sobre el atributo de la consulta, cuando se
trata de una clave nica. Secuencial ordenado sobre el atributo de la consulta, en el caso de claves no nicas.

Para las consultas por rangos se aconseja:


Secuencial ordenado sobre el atributo de la consulta.

Criterio: Tipos de Consultas


Continuacin

Para las bsquedas de patrones, igual que


consultas directas, siempre y cuando el patrn a considerar tenga un prefijo conocido.

En consultas lgicas, va a depender si sus


componentes son directos o por rangos.

Criterio: Volumen del Archivo


Nmero de registros que componen el archivo.
Si el nmero es muy alto, es recomendable un archivo directo
para la rpida recuperacin de los registros. Si el volumen de datos es bajo, podra convenir cualquier tipo de organizacin.

Criterio: Modo de Recuperacin


Si la recuperacin y actualizacin es por lotes
(proceso tipo batch), cualquier estructura podra servir.

Si la recuperacin y actualizacin es en lnea (o


incluso, en tiempo real), servir cualquier estructura directa o jerrquica.

Criterio: Estructuras de Archivos Disponibles


De no haber estructuras jerrquicas, se puede
manejar secuenciales ordenados, para efectos de mantener una bsqueda binaria. De no existir archivos directos, se puede compensar usando rboles o archivos secuenciales ordenados.

Procesamiento de Consultas

Procesamiento de Consultas
El procesamiento de consulta tiene por objetivo el identificador una forma conveniente (rpida, barata) de ejecutar una consulta, por lo general ingresada como un comando SQL, sobre el contenido de una base de datos.

Procesamiento de Consultas
El procesador de consulta debe convertir dicho comando SQL en una secuencia de operaciones de lgebra relacional, las que se organizan entre s mediante un esquema jerrquico (llamado plan/ rbol de acceso/ejecucin.

Procesamiento de Consultas
Ejemplo: considerar el siguiente comando SQL.
select factura.#factura, cliente.razon_social from cliente, factura, detalle, producto where producto.tipo = ABC and producto.#producto = detalle.#producto and detalle.#factura = factura.#factura and factura.fecha >= 01/06/2010 and factura.RUT_cliente = cliente.RUT;

Procesamiento de Consultas
del cual se pueden distinguir:
Selecciones: producto.tipo = ABC factura.fecha >= 01/06/2010 Joins: producto.#producto = detalle.#producto detalle.#factura = factura.#factura factura.RUT_cliente = cliente.RUT;

Procesamiento de Consultas
las que organizadas de una forma jerrquica, dan origen al llamado plan de acceso cannico.

Procesamiento de Consultas
A continuacin, se van probando diversas modificaciones en dicha representacin, como cambios de ubicacin de las operaciones y formas diferentes de ejecutar la misma operacin, buscando una manera ms adecuada de hallar el mismo resultado (etapa que se denomina optimizacin de consultas).

Procesamiento de Consultas
Ejemplo: plan de acceso alternativo 1

Procesamiento de Consultas
Ejemplo: plan de acceso alternativo 2

Procesamiento de Consultas
Tras haber probado muchas posibilidades de ejecucin, idealmente el total de ellas, se escoge la que se ejecuta en el menor tiempo o bien la que consume menos recursos, y es la que se lleva a cabo para responder la consulta del usuario.

Procesamiento de Consultas
Para poder apoyar la etapa de optimizacin, es necesario trabajar con funciones de costo sobre cada forma de ejecutar cada operacin de lgebra relacional, de modo de contar con un mecanismo de comparacin entre las diversas formas de ejecucin, e identificar correctamente la ms conveniente.

Procesamiento de Consultas
Funciones de Costo: operador de Seleccin Parmetros a considerar.

b: nmero de bloques del archivo. r: nmero de registros del archivo. fb: factor de bloqueo del archivo. s: cardinalidad de la seleccin. x: nmero de niveles de un ndice. b1: nmero de bloques del ltimo nivel del ndice (o nivel de las hojas)

Procesamiento de Consultas
Bsqueda Lineal: condicin de Igualdad
en base a atributo desordenado: Clave nica, en promedio se debe recorrer la mitad del archivo: (b/2) bloques. Clave no nica, se debe recorrer el archivo completo: b bloques.
en base a atributo ordenado: (b/2) bloques

Procesamiento de Consultas
Bsqueda Binaria: condicin de Igualdad Clave nica: log2b bloques. Clave no nica: recuperar tantos bloques como sean necesarios para almacenar todos los registros que indica la cardinalidad de la seleccin: (log2b + s/fb -1) bloques

Bsqueda Hashing: condicin de Igualdad. Clave nica: 1 bloque.

Procesamiento de Consultas
Bsqueda Lineal: condicin de Desigualdad En cualquier caso (clave nica o no nica), en promedio, se
debe recorrer la mitad del archivo: (b/2) bloques.

Bsqueda Binaria: condicin de Desigualdad Se aplica esta clase de bsqueda hasta encontrar el primer
valor que cumple la condicin y se ah se sigue con un recorrido lineal que cubrir la mitad del archivo: ( log2b + b/2) bloques.

Procesamiento de Consultas
Bsqueda Indexada: mediante ndice Primario: Condicin de Igualdad: debe leer un bloque ms que el
nmero de niveles del ndice, que corresponde al bloque donde est el registro buscado: (x + 1) bloques. Condicin de Desigualdad: debe leer un bloque por cada nivel del ndice ms, en promedio, la mitad de los registros del archivo que cumpliran la condicin: (x + b/2) bloques

Procesamiento de Consultas
Bsqueda Indexada: a travs de ndice de Grupos. Condicin de Igualdad, recuperando tantos bloques como
sean necesarios para almacenar todos los registros que indica la cardinalidad de la seleccin, tras pasar por los x niveles del ndice: (x + s/fb) bloques. Condicin de Desigualdad, asumiendo que la mitad del archivo es parte de la respuesta, la que se obtiene tras de pasar por los x niveles del ndice: (x + b/2) bloques.

Procesamiento de Consultas
Bsqueda Indexada: usando un ndice Secundario: Condicin de Igualdad, dado que el archivo est
desordenado respecto del atributo indexado, los registros se hallarn en distintos bloques: (x + s) bloques. Condicin de Desigualdad, asumiendo que la mitad del archivo es parte de la respuesta, la que se obtiene tras de recuperar la mitad de los bloques del nivel hoja del ndice: (x + (b1/2) + (r/2)) bloques.

Procesamiento de Consultas
Funciones de Costo: operador de Seleccin.
Las operaciones y costos anteriores se pueden aplicar para
bsquedas directas y por rangos, dependiendo de la organizacin del archivo involucrado y el atributo de la consulta.

Para consultas por patrones, salvo que se conozca el prefijo del


valor a buscar, se tendr que aplicar una bsqueda lineal.

En consultas conjuntivas, se debe aplicar el recorrido que resulte


con el menor costo, entre la bsqueda lineal o la de menor costo de entre las condiciones asociadas.

En consultas disjuntivas, se debe aplicar el recorrido que resulte


con el menor costo, entre la bsqueda lineal o la suma de todos los costos de las condiciones asociadas.

Datos multidimensionales

Datos multidimensionales
Cubos de datos

Datos multidimensionales
Data bidimensional

Datos multidimensionales
Grid files para data bidimensional

- Fin -

Das könnte Ihnen auch gefallen