Post on 04-Jul-2015
description
Si quieres ir a
algún lugar, ir
es la mejor
manera de
llegar
Ken Thompson
ISAM (MÉTODO DE ACCESO
SECUENCIAL INDEXADO)
Diego Camilo Aguirre Lora
David Esteban Rodríguez Gómez
Desafortunadamente el archivo secuencial es difícil de mantener.
•Los índices (aún usando un esquema de B-Tree) nos permiten hacer búsquedas rápidamente pero ...nos permiten recorrer el archivo secuencialmente ??
•En realidad el B-Tree sí nos permite recorrer el archivo en orden, pero no en una manera sencilla ya que debemos hacer demasiados "seeks" para poder hacerlo.
En la práctica en muchas situaciones se requieren de ambas cosas (búsquedas y accesos secuenciales), por ejemplo:
•En la universidad•Búsquedas: horarios, adeudos, transcript•Secuenciales: Reportes de calificaciones que se imprimen
•En una empresa•Búsquedas: agenda telefónica, vacaciones•Secuenciales: cheques de nómina
Básicamente es la idea de tener un índice esparcido, de manera que el archivo de datos lo agrupamos por bloques y en cada bloque existe un "rango" ordenado de los datos
Los r
egis
tros •La información es organizada
por registros compuestos por campos de tamaño fijo.
•Los registros se almacenan secuencialmente, inicialmente para acelerar el acceso en sistemas de cinta
índic
es •Un conjunto secundario
de ficheros dispersos(tablas "hash") conocidos como índices contienen «punteros» a los registros que permiten acceder a los registros individuales sin tener que buscar en todo el fichero (punto de partida para todos los modernos sistemas de bases de datos navegacionales)
ve
nta
jas •El avance que posee ISAM es
que los índices son pequeños y pueden ser buscados rápidamente, permitiendo a la base de datos acceder sólo a los registros que necesita. Modificaciones adicionales a la información no requieren cambios a otra información, sólo a la tabla y los índices.
Los sistemas operativos que dan soporte a las bases de datos, en ellos se plantean modalidades de acceso avanzadas que facilitan la búsqueda de la información dentro de un archivo (como el ISAM)
Mantiene ordenados los registros de un archivo según su criterio elegido por el usuario
En los sistemas que utilizan acceso indexado es posible definir varios archivos de índices sobre un mismo archivo
De esta forma se puede recorrer el fichero según distintos criterios de ordenación
Lo importante a resaltar aquí es que los bloques no necesariamente están formando una secuencia en el archivo, es decir, dentro del archivo de datos los bloques pueden estar desordenados, aquí el detalle es mantener un apuntador a cada bloque subsecuente.
Tipos de índices
Exhaustivo= contiene una entrada por cada registro del archivo principal
Parcial= contiene las entradas a los registros donde este el campo de interés con registros de longitud variable
algunos registros no contendrán todos los campos
Reglas generales para un índice ISAM
Podemos iniciar el archivo con un bloque o varios (definiendo previamente los rangos y dejando bloques vacíos reutilizables).
Cuando agregamos datos ubicamos el bloque correspondiente en base al índice en memoria y procedemos a agregar la información.
Si al insertar notamos que el bloque ya esta lleno entonces tenemos que partirlo en 2, muy similar al btreesolo que aqui no necesitamos un separador de ramas, simplemente creamos otro bloque, dividimos equitativamente los datos y ajustamos los apuntadores entre los bloques
Para eliminar, ubicamos el bloque y eliminamos el registroSi al eliminar notamos que se pueden mezclar o unir dos bloques con pocos registros entonces lo podemos hacer y el bloque libre lo marcamos para reutilización
La creación del índice puede ser muy simple, donde sólo se guardan los máximos valores de cada bloque; quizás si las llaves fueran numéricas todo sería muy simple y podría quedar bien este esquema, pero en especial para cadenas (aunque también aplica para números) lo que en realidad se busca es tener separadores que sirvan para varios casos ya que si eliminamos el máximo valor de un bloque entonces tendremos que alterar el índice.
La figura muestra una primer solución de separadores basándose en los prefijos de las palabras. De esta manera nos evitamos el tener que estar actualizando constantemente el índice. Estos separadores de rangos nos son únicos, dependerá del programador el definirlos
Links de los algoritmos
http://ebookbrowse.com/algoritmos-isam-pdf-d226065518
http://books.google.com.co/books?id=8OBlquzq83oC&pg=PA289&lpg=PA289&dq=algoritmo+de+acceso+indexado&source=bl&ots=M27O
UT0RTS&sig=-QUXdtmGkXUOO_7Itxs2Ozu44XI&hl=es&sa=X&ei=NmhnUYDHLISo8ASfzYCQBA&ved=0C
C0Q6AEwAA#v=onepage&q=algoritmo%20de%20acceso%20indexado&f=false
Diego Camilo Aguirre Lora
David esteban Rodríguez Gómez
Gracias