Vous êtes sur la page 1sur 24

I.E.S.

Miguel Romero Esteo Administracin de Sistemas Informticos


Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros


TEMA 1.- SISTEMAS CLSICOS DE GESTIN DE FICHEROS


Apartado....................................................................................................................... Pag
1.1. Evolucin del tratamiento de la informacin. .................................................. 1
1.2. Caractersticas de los sistemas de ficheros convencionales. ............................ 1
1.3. Clasificacin de los archivos segn su uso....................................................... 3
1.4. Organizacin de archivos. ................................................................................ 4
1.5. Apilo................................................................................................................. 5
1.6. Organizacin secuencial................................................................................... 6
1.7. Organizacin secuencial indexada.................................................................... 9
1.8. Organizacin indexada.................................................................................. 17
1.9. Organizacin relativa o directa....................................................................... 21


1.1. Evolucin del tratamiento de la informacin.

En casi todos los mbitos del mundo actual, es fundamental el procesamiento de
datos para obtener informacin que permita tomar decisiones.

El mundo empresarial cada vez utiliza ms datos, lo cual dificulta su procesamiento.
A partir de los aos sesenta varias empresas empiezan a almacenar sus datos en soportes
magnticos para ser tratados directamente por computadoras. Desde entonces el auge de
los equipos informticos y soportes de informacin ha ido aumentando a pasos
agigantados, y de igual forma han ido disminuyendo su coste.

En la evolucin del tratamiento automtico de la informacin podemos ver varias
etapas: Las primeras aplicaciones integraban los datos en los programas en forma de
constantes y slo se analizaban pequeas parcelas del mundo cientfico. Posteriormente
aparecen los ficheros, que representan pequeas parcelas del mundo real. En un
principio estos ficheros slo podan ser accedidos de forma secuencial y posteriormente
de forma aleatoria. Las aplicaciones estaban constituidas por programas independientes
y cada uno de ellos procesaba sus propios ficheros. Por ello, algunos datos tenan que
ser repetidos en distintos archivos, pudiendo producirse incoherencias entre los mismos.
A finales de los aos sesenta, para evitar estos problemas, surgen las bases de datos, que
pretenden modelar grandes parcelas del mundo real mediante la interrelacin de varios
archivos, evitando las redundancias y posibles incoherencias.

1.2. Caractersticas de los sistemas de ficheros convencionales.

El ordenador no slo trabaja con datos individuales y aislados, sino con conjuntos de
datos lgicamente relacionados. Se denomina registro lgico a un conjunto de datos
referentes a una misma entidad y que constituyen una unidad para el proceso. A cada
uno de los datos que forman un registro lgico se le denomina campo o atributo.

Pag. 1 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
Llamamos archivo a un conjunto de registros (lgicos) del mismo tipo, que posee
una organizacin coherente y que se ubica en dispositivos de almacenamiento
secundario.
Campos


NIF NOMBRE LOCALIDAD
1111 Manuel Mlaga
3333 Gabriel Granada
5555 Marcos Mlaga

Se llama registro fsico o bloque al conjunto de datos transferidos en una sola
operacin de entrada/salida. Se conoce como factor de bloqueo al nmero de registros
lgicos que hay en cada registro fsico o bloque.
Los registros pueden ser de longitud fija o de longitud variable. La utilizacin de
registros de longitud fija provoca prdida de espacio, pero son ms fciles de manejar.
Los registros de longitud variable provocan menos prdida de espacio pero su
utilizacin ser ms difcil al tener que utilizar marcas de principio y final de registro, o
campos extra con la longitud del registro.

Asociado a los archivos de un soporte suele existir un directorio de archivos, se
trata de un archivo, donde para cada archivo del soporte, existe un registro de directorio.
Este registro contiene informacin acerca de la posicin y el formato de los registros
que forman el archivo. Segn el tipo de organizacin el contenido de este registro ser
diferente. Normalmente el contenido de cada registro directorio suele ser el nombre del
archivo, el propietario, el punto inicial, el punto final, la cantidad de espacio permitida y
la utilizada actualmente. El propietario de este archivo directorio es el S.O.

Se denomina apertura de un fichero al proceso de leer el registro directorio
asociado al fichero y retener esta informacin para su consulta posterior. El proceso
contrario, cerrar el archivo, consiste en la actualizacin del directorio de archivo
correspondiente al fichero, en el caso que haya sufrido alguna modificacin.

Tipos de acceso: Se denomina acceso al proceso fsico de localizar la informacin
contenida en el fichero. Podr ser secuencial o directo:
Acceso secuencial: Se accede a los registros siguiendo su orden fsico de
aparicin en el soporte de entrada.
Acceso al azar o directo: Se accede a los registros atendiendo a un orden
aleatorio de solicitud de los mismos. Este orden es externo al programa y no
predecible.

El tipo de acceso depender directamente del tipo de soporte que se utilice:
Soporte de acceso secuencial: Para acceder a un registro fsico estamos
obligados a acceder a todos los registros fsicos que le preceden. Por ejemplo:
una cinta magntica.
Soporte de acceso directo: Son los que permiten el acceso a cualquier registro
fsico una vez conocida su direccin. Por ejemplo: un disco magntico. Los
soportes de acceso directo tambin admiten accesos secuenciales.

Fichero
Registros lgicos
Pag. 2 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
Tipo de proceso: Depender de la aplicacin que procese el archivo. Podr ser de
dos tipos:
En lote o batch: En general son los que no requieren la intervencin del usuario.
Un caso tpico son las actualizaciones de un fichero maestro a partir de uno de
movimientos. En estos procesos todos los movimientos (altas, bajas, y
modificaciones) sobre un fichero denominado maestro son acumulados durante
cierto tiempo en un fichero de movimientos, que posteriormente es procesado
actualizando al fichero maestro. Los procesos en lote son eficaces siempre que
no sea necesario que el fichero maestro est continuamente actualizado.
En lnea: En los procesos en lnea los movimientos o alteraciones del fichero
son tratadas en el momento en que se producen. Estos procesos se caracterizan
por permitir el dilogo con el usuario, se dice que son interactivos o
conversacionales.
1.3. Clasificacin de los archivos segn su uso.

Los archivos se clasifican segn la utilizacin que se hace de ellos en tres grupos:

Archivos permanentes. Contienen informacin que vara poco a lo largo del
tiempo. Su contenido es esencial para la aplicacin que los utiliza. Deben protegerse
ante alteraciones accidentales y realizar copias de seguridad de forma peridica para
garantizar la reconstruccin en caso de prdida total o parcial. Pueden ser de tres
clases:
- Archivos de constantes. Su informacin permanece prcticamente
inamovible, utilizndose principalmente como archivos de consulta. Un archivo
de este tipo puede ser el archivo de datos personales de empleados, que suele
sufrir escasas modificaciones.
- Archivos de situacin o maestros. Reflejan el estado o situacin de una
empresa, entidad o algn aspecto de ella en un determinado momento. Estos
archivos se actualizan peridicamente para adaptarlos a cada nueva situacin.
Un ejemplo de este tipo de archivos sera: el archivo de existencias de almacn,
que para cada entrada o salida de almacn deber ser modificado.
- Archivos histricos. Se obtienen de los anteriores cuando quedan fuera de
uso. Aunque la informacin que contienen no es de actualidad, reflejan la
evolucin de la misma. Suelen ser de gran tamao, y no es frecuente su consulta
al azar, su uso habitual es para elaborar estudios estadsticos. Un archivo
histrico puede ser el que contiene la informacin de libros adquiridos por una
biblioteca en la dcada de los ochenta. Otro podra ser, la facturacin de una
empresa en el ao 1.998.

Archivos de movimientos. En ellos se almacena la informacin que se utilizar
para actualizar los archivos maestros. Sus registros, denominados movimientos o
transacciones, suelen especificar tres tipos de acciones sobre el maestro: altas, bajas
y modificaciones. Una vez realizado el proceso de actualizacin de un archivo
maestro por medio de un archivo de movimientos, ste pierde su validez y podemos
deshacernos de l. Su destruccin accidental no es muy grave ya que se puede
reconstruir a partir de los documentos que provocaron los ltimos movimientos.
Estos archivos eran muy utilizados en sistemas batch o por lotes. Actualmente,
aunque siguen siendo utilizados, se recurre a soluciones ms interactivas. Podra
utilizarse un archivo de este tipo para actualizar un maestro de almacn con los
Pag. 3 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
nuevos artculos, eliminar los artculos descatalogados, modificar el stock de
artculos debido a entradas o salidas, o cualquier otro tipo de modificacin.

Archivos de maniobra o trabajo. Se utilizan como auxiliares de los anteriores.
Tienen una vida limitada, normalmente igual a la duracin de la ejecucin del
programa que los maneja. Son ficheros puente, que no seran necesarios si
dispusiramos de una memoria principal infinita. Por ejemplo, si se desea listar un
archivo ordenado por alguno de sus campos, se har por medio de un archivo de
maniobra en el que se almacena esta informacin, all se ordena por dicho campo, se
imprime y posteriormente podramos eliminarlo.



En la figura siguiente se muestra un ejemplo de actualizacin de un archivo maestro
de almacn mediante un archivo de movimientos:

Archivo maestro de ALMACEN Archivo de MOVIMIENTOS
Cod Descripcin PVP Stock Mov Cod Descripcin PVP Stock
100 Impresora HP 690 26000 20 A 095 Fax 56 K 7000 20
104 Teclado ACER 2600 25 B 104
115 Pentium III 850 28000 10 M 115 27500
120 DIMM 128M 4100 10 A 118 Minitorre 2500 20
M 120 +5


Nuevo archivo maestro de ALMACEN
Cod Descripcin PVP Stock
095 Fax 56 K 7000 20
100 Impresora HP 690 26000 20
115 Pentium III 850 27500 10
118 Minitorre 2500 20
120 DIMM 128M 4100 15


Como ejercicio realiza el algoritmo en pseudocdigo que actualice el archivo
maestro de almacn mediante las transacciones del archivo de movimientos.

1.4. Organizacin de archivos.

En los dispositivos de almacenamiento de acceso directo podemos organizar los
ficheros de forma muy diversa. Se trata de establecer un mtodo que nos proporcione la
ubicacin fsica de cada registro, y que se adapte a nuestras necesidades de acceso.

A continuacin analizaremos las siguientes organizaciones de ficheros:

Apilo
Organizacin secuencial
Organizacin secuencial-indexada
Pag. 4 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
Organizacin indexada
Organizacin relativa o directa

En el anlisis de las distintas organizaciones de archivos realizaremos
comparaciones con las siguientes operaciones:

Economa de almacenamiento: Se desea almacenar los datos con un mnimo de
redundancia. Existe redundancia cuando estn duplicados los campos de datos o
cuando se repite la descripcin del contenido de los registros. La existencia de datos
redundantes aumenta el esfuerzo a la hora de modificar sus valores, ya que se espera
que todas las copias de un elemento dato sean consistentes.

Recuperacin de un registro: La recuperacin de un registro consiste en dos pasos:
primero localizar el registro y posteriormente la lectura del registro. Para una eficaz
recuperacin del registro es necesario una rpida localizacin, que depender del
tipo de organizacin que estemos utilizando.
Obtencin del siguiente registro: Los datos aislados rara vez producen informacin,
la cual se genera al relacionar un hecho con otro. El registro sucesor de otro es ms
fcil de obtener cuando los datos relacionados se conservan fsicamente juntos.
Insercin de registros: Consiste en agregar un nuevo registro a un archivo. Es ms
costoso agregar que leer un registro. Si es posible colocar el registro al final del
archivo, insertarlo ser fcil; si por el contrario es necesario seguir un orden, ser
necesario recorrer y acomodar el nuevo registro.
Agregar registros: Insercin al final del archivo.
Actualizacin de un registro: Modificacin de algunos de los campos que forman
el registro. En ocasiones no es posible la escritura en la posicin que ocupaba
anteriormente.
Borrado de un registro: Eliminacin del registro dentro del fichero; generalmente
volviendo a escribirlo con una marca llamada epitafio.
Lectura de todo el archivo: Consiste en la lectura completa del archivo. En
aplicaciones que necesiten este tipo de operacin es preferible el uso de ficheros
densos (sin huecos entre registros).
Reorganizacin de un archivo: Consiste en realizar de nuevo la escritura del
archivo evitando la escritura de los registros borrados, recuperando as espacios para
nuevos datos.

1.5. Apilo.

Es la organizacin ms bsica y rara vez utilizada. El orden de los registros suele
ser cronolgico, pueden ser registros de longitud variable y no tienen necesariamente
conjuntos semejantes de datos.

En este tipo de organizacin un registro est formado por elementos datos y cada
valor dato debe tener un identificador que se graba junto con el dato.

Ej.: Nombre =Luis altura =1,95

Pag. 5 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
Al conjunto de las dos anotaciones anteriores se les denomina par atributo valor.
Un registro est formado por un nmero variable de estos pares.

El uso de los apilos se limita a casos muy extremos cuando los datos son muy
difciles de organizar y no guardan demasiada relacin entre s.

Caractersticas del apilo.

Economa de almacenamiento: El tamao de registro se ve aumentado por la
necesidad de guardar los nombres de los atributos junto con los datos (adems del
espacio que se utiliza para los separadores); en cambio no es necesario tener campos
de datos vacos.
Recuperacin de registros: El tiempo necesario para encontrar un registro en un
apilo puede ser largo, al ser necesaria la lectura de todos los registros anteriores al
buscado. Una solucin a este problema puede ser organizar, si la aplicacin lo
permite, las recuperaciones de registros por lotes, disminuyendo as el tiempo total
en la bsqueda de los registros.

Obtencin del siguiente registro: Ya que en un apilo no se proporciona un
ordenamiento de los registros, el siguiente registro (en orden) puede estar en
cualquier lugar del archivo, por tanto no sera posible a no ser que se conozca la
secuencia de claves.

Insercin de un registro: Debido a la falta de estructura dentro de un apilo, la
insercin de un registro consistir en agregar ste al final del fichero. Como se
conoce la direccin de final de archivo, el nuevo registro simplemente se aade al
final y se actualiza la direccin final del archivo.

Borrado de un registro. Consiste en marcarlo como borrado mediante una marca de
epitafio. Por ejemplo: con un asterisco (*) en el primer carcter.

Actualizar un registro: Se da de baja el registro y se aade el nuevo al final. No se
puede reescribir en el mismo lugar, porque podra no tener cabida.

Lectura de todo el apilo: La lectura de todo el apilo depender si se desea realizar
atendiendo a algn orden o no. Si no se desea la lectura mediante una ordenacin de
un atributo, la lectura resulta rpida; en cambio si se desea la lectura mediante un
atributo concreto ordenado sera ms conveniente una clasificacin anterior del
archivo; con el aumento de dificultad que esto conlleva.

Reorganizacin de un apilo: La reorganizacin del apilo es necesaria cuando se han
producido muchas eliminaciones de registros (marcas de epitafio); esto se logra
copiando de nuevo el fichero y eliminando estos registros marcados.


1.6. Organizacin secuencial.

Una mejora respecto al tipo anterior es que los registros se ordenan en una secuencia
especifica ocupando posiciones de almacenamiento fsicamente contiguas y adems los
Pag. 6 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
registros tienen una estructura predefinida, por lo que no es necesario almacenar pares
de nombre atributo-valor, con el consiguiente ahorro de espacio.

Como acabamos de comentar, un archivo secuencial est formando por un conjunto
predeterminado de atributos, si se desea aadir un nuevo atributo sera necesario una
reorganizacin completa del fichero, ya que hay que reservar espacio para el nuevo
atributo introducido. Si se prev que pueden existir nuevos atributos es posible dejar
espacio libre que ser definido posteriormente.



Para proporcionar una secuencia para los registros, se define un campo como clave,
este campo identificar a cada registro y los registros se almacenaran en orden del
atributo clave. Es necesario que el atributo clave identifique unvocamente al registro
que representa; si esto no fuera as, se escogeran atributos clave secundarios hasta que
el registro sea identificado de forma unvoca.

Tambin es posible escoger como atributo clave un campo artificial, que no
representa ningn dato de la entidad que describe.

El problema ms importante con este tipo de ficheros se plantea a la hora de realizar
nuevas inserciones o modificaciones que afecten al campo clave.

Tambin sera posible almacenar los registros correspondientes a un fichero
secuencial sin orden ninguno, respetando nicamente el orden cronolgico en el que son
introducidos; pero esto nos hara perder todas las ventajas que posee la organizacin
secuencial, que sern vistas posteriormente.

El tipo de archivo secuencial se utiliza en aplicaciones comerciales orientadas al
manejo por lotes o aplicaciones cclicas donde la actividad del fichero ronde el 70% o
incluso ms (operaciones de facturacin mensual, nminas, etc. ...) y donde no es
demasiado importante el tiempo de acceso a un registro determinado. Para combinar
varios archivos secuenciales, todos deben estar clasificados por la misma clave, ya que
el archivo secuencial slo puede estar ordenado por una clave. Podemos resumir
diciendo que los archivos secuenciales pueden ser excelentes para algunas aplicaciones;
pero imposibles para otras.

Caractersticas de los archivos secuenciales.

Economa de almacenamiento: La descripcin de los atributos aparece una sola
vez o incluso ninguna, ya que aparece nicamente en las definiciones del
programa que lo usa. El tamao del registro es un nmero fijo, la suma del
tamao de cada uno de los campos.

Si muchos de los campos pueden estar vacos la densidad del archivo ser baja
y se trata de un archivo disperso; en cambio si todos los campos estn ocupados
estamos hablando de un archivo denso.

Recuperacin de registros en archivos secuenciales: Para recuperar un registro
dentro de esta organizacin consiste en la bsqueda secuencial a travs de l;
Pag. 7 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
distinguiendo si la bsqueda se realiza a travs del campo clave por el que est
ordenado o si por el contrario la bsqueda se realiza por cualquier otro campo.
En este ltimo caso, la bsqueda es siempre secuencial y ser necesario, como
promedio, la lectura de la mitad del archivo.

Si la bsqueda se realiza mediante el campo clave y se dispone de un
dispositivo de acceso directo se puede utilizar una bsqueda dicotmica o
binaria dentro del fichero; esto implicara una reduccin en el tiempo de
localizacin del registro. Las bsquedas dicotmicas consisten en comenzar
leyendo un registro central del archivo, hacer una comparacin y dependiendo
del resultado se realiza una nueva bsqueda dicotmica en una de las dos
mitades, as sucesivamente hasta encontrar el registro buscado o quedarnos sin
registros donde buscar.

Obtencin del siguiente registro en un archivo secuencial: En este caso el
registro sucesor es inmediatamente accesible e incluso puede estar en el mismo
bloque, nicamente cuando no se d esta situacin ser necesario acceder al
siguiente bloque de disco para obtenerlo, con el consiguiente aumento de
tiempo.

Insercin de un registro en un archivo secuencial: La insercin de un nuevo
registro requiere la insercin en el lugar adecuado segn la clave, si no,
perderamos todas las ventajas que nos ofrece esta organizacin. Para insertar
un registro habra que localizar el lugar que le corresponde en secuencia,
insertar el registro y reescribir todos los registros que se encuentran despus.
Este mtodo es adecuado cuando se trata de aplicaciones donde rara vez se tiene
que realizar una insercin.

Si por el contrario, las inserciones son una operacin comn dentro de la
aplicacin, ser necesario crear un archivo de transacciones donde se irn
guardando todas las altas para procesarlas por lotes cada cierto tiempo.

Actualizacin de un registro en un archivo secuencial: El nuevo registro se crea
mediante datos recuperados del registro y nuevos valores de atributos.

Dentro de la actualizacin podemos distinguir aquellas en las que el valor del
campo clave no cambia, por tanto el registro seguir ocupando el mismo lugar;
y aquellas actualizaciones donde el valor del campo clave cambia, y esto lleva
consigo una baja del antiguo registro y una insercin de registro nuevo.
Normalmente se anota en un fichero de transacciones el borrado del registro
antiguo y la insercin del nuevo.

El borrado de un registro se puede considerar como una actualizacin donde no
cambia el campo clave, marcando el campo de borrado como tal. Tambin se
pueden desplazar todos los registros hacia arriba para ocupar el hueco dejado.

Al igual que se utiliz anteriormente para las inserciones y actualizaciones el
fichero de transacciones, tambin se puede utilizar este fichero para los
borrados que se procesarn por lotes.

Pag. 8 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
Lectura de todo el archivo secuencial: Consiste en la lectura exhaustiva de todo
el fichero. Estn especialmente indicados para este tipo de procesos.

Reorganizacin de un archivo secuencial: La reorganizacin consiste en el
enfrentamiento del fichero secuencial (maestro) y el de transacciones generando
un maestro nuevo. Podra resumirse de la siguiente forma:

1. Abrir los tres ficheros (el maestro, transacciones y el nuevo maestro que
surgir de la unin de los anteriores).

2. Comparar el valor de las claves de los dos ficheros (ambos deben estar
obligatoriamente ordenados por el mismo campo clave; si el de
transacciones no est ordenado habr que ordenarlo como paso previo).
- Claves iguales: se ha localizado el registro buscado y se efecta el
tratamiento indicado en el fichero de transacciones. Despus se
vuelve a leer del fichero de movimientos o transacciones.
- Clave del fichero de movimiento mayor que clave del fichero
maestro: No se ha localizado el registro buscado, se copia el registro
del fichero maestro y se vuelve a leer del fichero maestro.
- Clave del fichero de movimiento menor que clave del fichero
maestro: El registro buscado no existe, si es una actualizacin se
trata de un error, mientras que si es una insercin se realiza. Se
vuelve a leer del fichero de transacciones.
3. El proceso concluye cuando uno de los dos ficheros acaba. Si se acaba el de
movimientos se copia el resto del maestro al nuevo maestro. Si se acaba el
maestro el resto de los registros del fichero de transacciones se procesan
como errores en el caso que no se traten de altas que sigan la secuencia.
4. Al final del proceso el fichero de movimientos y el antiguo maestro
desaparecern y el nuevo maestro se renombra como fichero secuencial.

1.7. Organizacin secuencial indexada.

La organizacin secuencial indexada pretende conservar las ventajas de la
organizacin secuencial, venciendo a su vez los inconvenientes que presenta a la hora
del acceso aleatorio a los registros. Se utilizan cuando es necesario realizar consultas
rpidas por determinado campo, cuando los archivos deben estar continuamente
actualizados y a su vez es necesario un acceso secuencial.

Un archivo secuencial indexado se compone de tres partes:

Area de datos. Se trata de un archivo secuencial ordenado por un campo clave.
Indice. Se trata de un archivo de punteros para proporcionar acceso aleatorio al
rea de datos.
Area de excedentes (desborde, overflow o derrama) donde se incluyen las
inserciones que se pueden producir en un futuro y que no tienen cabida en el
rea de datos.

El Area de datos.

Pag. 9 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
En el rea de datos o primaria se escriben los registros cuando el fichero se crea
por vez primera o cuando se reorganiza. Tambin se escriben las inserciones
siempre que tengan cabida. En el rea de datos los registros siempre se encuentran
en secuencia de clave.

En la mayora de los S.O. slo se permiten registros de longitud fija.
Aunque algunos sistemas admiten de longitud variable.

El ndice.

El ndice consiste en una anotacin por cada registro de datos (veremos como
no siempre es as), que contiene el valor de un atributo clave de un registro y un
puntero que permite el acceso directo a ese registro. El ndice debe estar ordenado
por el atributo clave para que la bsqueda pueda realizarse de forma rpida. Con
objeto de aumentar la rapidez en la bsqueda dentro de los ndices suele utilizarse
una bsqueda binaria.

Los archivos de ndice pueden ser exhaustivos o selectivos:

Indice exhaustivo o denso: Existe un registro ndice por cada valor del
campo clave en el archivo de datos. Es comnmente utilizado en
organizaciones indexadas puras.

Indice selectivo o escaso: Se crean registros ndices para algunos de los
registros del campo clave en el archivo de datos. Para ello se agrupan los
registros del rea de datos, los tamaos de los grupos normalmente
dependen del hardware de almacenamiento, se indexa por grupos y se
realiza una bsqueda secuencial dentro del grupo indexado.

Por ejemplo, se puede utilizar anclas de bloque, que consiste en indexar
nicamente el valor de clave mayor de cada bloque (registro fsico), esto
permite el rpido acceso a un bloque y el registro individual (registro
lgico) puede encontrarse realizando una bsqueda dentro del bloque. Al
registro que corresponde la referencia se denomina punto de ancla. Los
puntos de ancla se pueden basar en bloques, pistas o cilindros. El costo de
buscar un registro dentro de un bloque es mnimo, ya que en cada lectura se
trae todo el bloque a memoria; el nico inconveniente es la falta de
seguridad de la existencia del registro buscado.

Es ms rpido localizar un registro con un ndice denso que con uno escaso.
Sin embargo, los ndices escasos ocupan menos espacio y necesitan menos
mantenimiento cuando se realizan inserciones o eliminaciones.

Si el ndice es muy grande se puede volver a indexar, crendose as ndices de
niveles mltiples. Los niveles ms altos del ndice se vuelven cada vez ms
pequeos, hasta que quede un ndice lo suficientemente pequeo como para
mantenerlo siempre en memoria principal.

El ndice puede ser esttico o dinmico, se considera estticos cuando no varan
a lo largo de la utilizacin del fichero, y dinmicos, como los rboles B, cuando
Pag. 10 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
varan a lo largo de la utilizacin del fichero. Estos ltimos, se utilizan en
organizaciones indexadas puras.





Para comprender el funcionamiento de un ndice, veremos un ejemplo deun
ndice selectivo y esttico de niveles mltiples:

En la figura siguiente se muestra un ndice de dos niveles. Veamos como acta
el sistema para localizar el registro de clave Luis: se busca en el ndice de segundo
nivel el primer valor igual o mayor al de la clave buscada Luis, en nuestro caso,
Rosa. Este registro apunta al bloque del ndice de primer nivel con direccin 4.
Dentro de este bloque se busca de nuevo el primer valor superior o igual al
buscado, en nuestro caso, Manuel. Este registro apunta al bloque del rea de datos
con direccin 13. Se accede a dicho bloque y se rastrea secuencialmente hasta
encontrarlo. En caso de no estar el registro buscado (por ejemplo el registro con
clave Lourdes, que debera estar en el mismo grupo de datos) una vez ledo el
registro Manuel el sistema deja de buscarlo.

Area de datos


Direccin
Relativa
Clave +datos
1 Ana
2 Antonio
3 Beln
Indice de primer nivel 4 Carlos
5 Cristina
Indice de segundo
Direccin
Clave
Puntero
6 David
nivel 1 Beln 1 7 Diana
2 David 4 8 Emilio
clave
Puntero
3 Federic
o
7 9 Federico
Federico 1 4 Irene 10 10 Fernando
Rosa 4 5 Manuel 13 11 Gabriel
Yolanda 7 6 Rosa 16 12 Irene
7 Yolanda 19 13 J ulia
14 Luis
15 Manuel
16 Nuria
17 Ramn
18 Rosa
19 Susana
20 Vernica
21 Yolanda

Area de desborde, excedentes o derrama.
Pag. 11 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros

Es el espacio que se reserva para posibles inserciones que pueden tener lugar en un
futuro. Cada registro del rea de datos tiene un puntero que apunta a su sucesor dentro
del rea de desborde. Los registros del rea de desborde poseen a su vez, punteros con el
fin de encadenar desbordes que empiecen en una misma fuente (registro); formando as
cadenas de desborde, que en el caso de que sean demasiado largas ralentiza an ms el
acceso a registro.
La tcnica para la reserva de espacio puede ser muy variada, destacando:

a) Area de excedentes nica e independiente: Colocando las inserciones en un
archivo separado; lo que implica un acceso por separado cada vez que haya que
buscar en el rea de desborde. Es adecuado cuando la distribucin de excedentes
no es uniforme, o cuando se prevn pocos excedentes.
b) Area de excedentes por cilindros: Consiste en dejar espacio reservado en cada
cilindro, utilizado por ISAM de IBM. La localizacin de un registro de desborde
requiere menos tiempo que si se utiliza un archivo separado. Es adecuado
cuando se prev una distribucin uniforme de los excedentes. Tiene el
inconveniente que si se llena totalmente el rea de excedentes de uno de los
cilindros nos obliga a reorganizar todo el fichero.

Cilindro 0 Cilindro 1 Cilindro 2 Cilindro 3 Cilindro 4
Indice de pistas Indice de pistas Indice de pistas Indice de pistas Indice de pistas








Area primaria
Area de
excedentes
Area de
excedentes
Area de
excedentes
Area de
excedentes
Area de
excedentes


Cilindro 0 Cilindro 1 Cilindro 2 Cilindro x Cilindro y
Indice de pistas Indice de pistas Indice de pistas







Area de
excedentes
Area de
excedentes
Area de
excedentes

Area de
excedentes
independiente
Area primaria

El uso de reas de desborde aumenta el tiempo de acceso para leer los registros
insertados. Una solucin alternativa, se basa en el uso de espacios libres distribuidos.
Los registros lgicos se disponen en grupos y se dejan espacios libres en cada grupo.

Existen dos formas de direccionar el rea de excedentes:

a) Utilizando un puntero por registro del rea de datos.
b) Utilizando un puntero por bloque del rea de datos: En este caso la insercin
se realiza reordenando mediante la tcnica de impulso a travs; que consiste
en que el nuevo registro se coloca en el lugar que le corresponde y el resto se
Pag. 12 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
impulsa hacia el final del bloque, y los registros del final del bloque, llegado
el caso, avanzan hacia el rea de desborde. El inconveniente principal es que
las cadenas de desborde sern ms largas que si cada registro tuviera su
propia cadena sucesora en el rea de desborde

Los archivos secuenciales indexados se deben reorganizar cuando se ha llenado
completamente alguna de las reas de desborde, o cuando las cadenas de desborde son
demasiado largas ocasionando tiempos de acceso muy largos. Para la reorganizacin se
lee el archivo completo y se escribe de nuevo, eliminado los registros marcados como
eliminados, y se realiza de nuevo la creacin de ndices. Al leerse en secuencia de clave,
el nuevo archivo creado no hace uso del rea de desborde hasta futuras inserciones.

En la siguiente figura se representa el rea de datos, el ndice y el rea de excedentes
de un archivo secuencial indexado. Se trata de un ndice de dos niveles con ancla de
bloque.

Area de datos


Direccin
Relativa
Clave +datos
1 Ana
2 Antonio
3 Beln
Indice de primer nivel 4 Carlos
5 Cristina
Indice de segundo
Direccin
clave
Puntero
6 David
nivel 1 Beln 1 7 Diana
2 David 4 8 Emilio
clave
Puntero
3 Federic
o
7 9 Federico
Federico 1 4 Irene 10 10 Fernando
Rosa 4 5 Manuel 13 11 Gabriel
Yolanda 7 6 Rosa 16 12 Irene
7 Yolanda 19 13 J ulia
14 Luis
15 Manuel
16 Nuria
17 Ramn
18 Rosa
19 Susana
20 Vernica
21 Yolanda
Area de excedentes
Direccin Clave +datos Puntero
1
2
3
4
5
6
Punteros de desborde por bloques
Pag. 13 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
...



Veamos el funcionamiento del rea de excedentes si se utiliza la tcnica de
impulso a travs. Si suponemos que queremos introducir a Eugenio, Federico sera
desplazado al rea de excedentes y Eugenio ocupara su lugar:

Area de datos
4 Carlos
5 Cristina Area de excedentes
6 David

Direccin Clave +datos Puntero
7 Diana 1 Federico NULL
8 Emilio 2
9 Eugenio 1 3
10 Fernando 4
11 Gabriel 5
12 Irene 6


Si posteriormente quisiramos introducir a Ernesto se producira lo siguiente:

Area de datos
4 Carlos
5 Cristina Area de excedentes
6 David

Direccin Clave +datos Puntero
7 Diana 1 Federico NULL
8 Emilio 2 Eugenio 1
9 Ernesto 2 3
10 Fernando 4
11 Gabriel 5
12 Irene 6


El siguiente ejemplo se trata de una implementacin real de un ndice orientado
al hardware multinivel. Los ndices orientados al hardware multinivel utilizan
varios niveles de ndices. Un ejemplo de este tipo de ndices es el mtodo de acceso
secuencial indexado de IBM, comnmente llamado ISAM (Indexed Sequential
Access Method). En ISAM, las direcciones de los punteros vienen expresadas en
trminos de pistas y cilindros. En ISAM una pista es equivalente a un bloque de
datos.

ISAM utiliza tres niveles de ndices:

Indice maestro: Puede considerarse que se encuentra en memoria principal.
Puede estar dividido en varios niveles. Los punteros del nivel ms bajo
apuntan a un grupo de campos clave en el ndice de cilindros y guardan la
clave mayor de cada grupo.
Pag. 14 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
Indice de cilindros: Se trata de un conjunto de registros que guardan la
clave ms alta de cada cilindro y cada puntero apunta al ndice de pista de
cada cilindro. Existe un nico ndice de cilindros para todo el fichero.
Indice de pista: Es el nivel de ndice ms bajo. Se sita en la pista 0 de cada
cilindro. Consta de dos clases de anotaciones:
a) Anotacin normal: Guarda la clave ms alta de cada pista y el nmero
de pista (puntero a pista). Una vez en el rea de datos se recorre la pista
hasta encontrar el registro buscado.
b) Anotacin de derrame: Si no se han producido derrames contiene el
mayor valor de la clave de cada pista y un puntero a NULL. Cuando se
producen derrames pasa a contener el mayor valor de clave de la cadena
de derrame de esa pista, y los nmeros de pista y registro del primer
registro d e la cadena de derrame.


Caractersticas de un fichero secuencial indexado.

Es posible disear este tipo de organizacin de mltiples maneras; sin embargo, a la
hora de su evaluacin se utilizar un archivo secuencial indexado con anclas de bloque,
el rea de datos dispone de espacios libres distribuidos, el rea de desborde se encuentra
dentro del mismo cilindro y se utiliza la tcnica del impulso a travs. Los registros no
se eliminan sino que se marcan con un epitafio

Economa de almacenamiento: En el rea de datos el registro requiere el espacio
para valores de datos y para un posible epitafio, adems uno de los registros del
bloque debe disponer de un puntero al rea de desborde. En el rea de desborde cada
Pag. 15 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
registro debe poseer un puntero para generar las cadenas de desborde. A todo esto
hay que aadir el espacio ocupado por el ndice.

Recuperacin de registros: Para recuperar un registro concreto se utiliza el ndice; el
ndice maestro al encontrarse en memoria no necesita acceso a disco y se consideran
que los restantes ndices se encuentran en el mismo cilindro que los datos.
Si el registro se encuentra en el rea primaria de datos, ser necesario una bsqueda
en cada nivel de ndice y una lectura del bloque de datos. Si el registro se encuentra
en el rea de desborde, el tiempo de acceso al registro depender de la longitud de
la cadena de desborde e ir aumentando con la longitud de sta.
Obtencin del siguiente registro: Para localizar el siguiente registro se ignora el
ndice y se empieza desde el ltimo dato accedido. Puede ocurrir cualquiera de los
casos siguientes:

a) El registro actual se encuentra en el rea primaria de datos y el registro sucesor
en la misma rea y en el mismo bloque; avanzar un registro que se encuentra
disponible en memoria.
b) El registro actual es el ltimo del bloque, no hubo inserciones y el registro
sucesor se encuentra en el siguiente bloque dentro del mismo cilindro; habr que
leer el prximo bloque y coger el primer registro.
c) El registro actual es el ltimo del bloque, no hubo inserciones y el registro
sucesor se encuentra en el siguiente bloque en otro cilindro; habr que saltar al
prximo cilindro, leer el primer bloque y tomar el primer registro.
d) El registro actual es el ltimo del bloque, pero s hubo inserciones; habr que
acceder al rea de desborde y coger el registro.
e) El registro actual es un registro insertado y el siguiente tambin es un registro
insertado; habr que seguir la cadena de desborde.
f) El registro actual es un registro insertado, pero el siguiente no; habr que
regresar al rea primaria de datos, leer el siguiente bloque y coger el primer
registro.

El tiempo de acceso a cada uno de los casos ser diferente, siendo el ms rpido el
primero de ellos.
Insercin de un registro: Agregar un registro, si no hay espacio libre en el rea de
datos, dar lugar a una adicin a la cadena de desborde (impulso a travs), o el
nuevo registro seguir a uno dentro de la cadena de desborde dependiendo del lugar
que deba ocupar. Esta insercin da lugar a una lectura, para determinar el lugar que
debe ocupar, la escritura del nuevo registro y el cambio de un puntero o ms (si el
nuevo registro no ocupa el ltimo lugar en la cadena de desborde).
Actualizacin de un registro: Un registro actualizado de igual tamao e igual clave
puede colocarse en su lugar original; por lo tanto slo ser necesario una
recuperacin y una escritura. Una baja puede tomarse de la misma manera, al ser
una actualizacin con un cambio en el campo epitafio. Una actualizacin con
cambio en la clave, puede tomarse como una baja y una nueva insercin.
Lectura del archivo completo: Para leerlo en secuencia de clave habr que leer de
forma combinada el rea primaria de datos con el rea de desborde. Se leera
secuencialmente el rea primaria de datos, hasta encontrar un apuntador diferente de
NULL que llevar al rea de desborde, se contina en esta rea hasta encontrar un
apuntador NULL siguiendo entonces en el siguiente registro del rea primaria de
datos.
Pag. 16 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros

Reorganizacin del archivo: Se realiza una lectura del archivo completo por
secuencia de clave (ignorando los registros marcados por epitafio) y se va
escribiendo en un archivo nuevo, esto ocasiona que el rea de desborde pase al rea
primaria de datos del nuevo archivo y se construyan de nuevo los ndices. El nuevo
archivo tendr el rea de desborde vaca hasta que se produzcan nuevas inserciones.

1.8. Organizacin indexada.

Esta organizacin consta de dos partes:

Area de datos: En ella se almacena la informacin en orden de llegada. Es
decir, los datos no siguen una secuencia de clave como los archivos secuenciales
indexados. Los registros pueden ser de longitud fija o variable.
Indices: Un ndice consiste en un conjunto de anotaciones, una para cada
registro del rea de datos (anclado en registros), que contiene el valor de un
atributo clave de ese registro y un apuntador que permite el acceso inmediato a
ese registro. El ndice siempre se conserva en orden del atributo clave. Pueden
existir tantos ndices como atributos. El acceso a los registros se logra slo
mediante un ndice.

La siguiente figura representa una organizacin indexada:

Indice de primer nivel Area de datos


Direccin
relativa
Clave Puntero

Direccin
relativa
Clave +datos
1 Ana 4 1 Beln
2 Antonio 20 2 Cristina
3 Beln 1 3 Carlos
4 Carlos 3 4 Ana
5 Cristina 2 5 Luis
Indice de segundo 6 David 6 6 David
Nivel 7 Diana 21 7 Gabriel
8 Emilio 18 8 Fernando
clave
Puntero
9 Federico 11 9 J ulia
Beln 1 10 Fernando 8 10 Irene
David 4 11 Gabriel 7 11 Federico
Federic
o
7 12 Irene 10 12 Manuel
Irene 10 13 J ulia 9 13 Nuria
Manuel 13 14 Luis 5 14 Vernica
Rosa 16 15 Manuel 12 15 Rosa
Yolanda 19 16 Nuria 13 16 Susana
17 Ramn 19 17 Yolanda
18 Rosa 15 18 Emilio
19 Susana 16 19 Ramn
20 Vernica 14 20 Antonio
Pag. 17 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
21 Yolanda 17 21 Diana
Comparando la figura anterior con la organizacin secuencial-indexada, podemos
observar las siguientes diferencias: el rea de datos no se encuentra ordenada por
secuencia de clave, sino por orden de llegada. Adems, el ndice de primer nivel es
exhaustivo.

En la figura anterior slo hemos representado un ndice por el campo clave nombre,
pero puede haber tantos ndices como atributos. A un fichero para el que se han creado
ndices slo para algunos atributos se le denomina fichero parcialmente invertido. Si
existe un ndice para cada atributo del registro, se dice que el fichero est totalmente
invertido.

Los archivos indexados se utilizan cuando es muy importante una respuesta rpida
y la indexacin mltiple de la informacin, que hace posible encontrar los mismos
datos por distintos campos.

Lo habitual en ficheros indexados puros es que se utilicen ndices dinmicos del
tipo Arbol B. Veamos brevemente su funcionamiento:

Primero veremos el funcionamiento bsico de un rbol B+: Se trata de ndices
dinmicos que varan al aadir o eliminar datos en el fichero. Los registros de
ndices se agrupan en bloques, stos disponen de espacio para nuevas inserciones y
slo cuando el bloque est lleno se crea otro. La mitad de los registros provenientes
del bloque lleno se distribuyen en el nuevo bloque y se crea una nueva anotacin en
el bloque de nivel superior. A su vez, este bloque superior puede llenarse y requerir
una divisin. Si el bloque raz est lleno, se dividir y se crear un nuevo bloque
raz con dos anotaciones, una para cada una de las mitades del antiguo bloque raz.

Vemoslo con un ejemplo:


A


Aadir A
A
R

Aadir R
A
L
R
Aadir L
J
R


A
J

Aadir J
L
R


J
R


A
F
J
Aadir F
L
R





















Pag. 18 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros

C
J
R

A
C

Aadir C
F
J

L
R













Cuando se elimina una anotacin de un bloque, puede quedarse con menos de la
mitad de anotaciones posibles. En ese caso se revisa su compaero para intentar
combinarlo, eliminando una anotacin de nivel superior. Esta eliminacin puede
propagarse hasta llegar al bloque raz.

Los ndices de rbol B son similares a los ndices del rbol B+. La diferencia
fundamental es que el rbol B elimina las anotaciones redundantes de las mayores
claves de cada grupo, con lo cual los valores de las claves aparecen una sola vez en todo
el rbol, ahorrando espacio de almacenamiento del ndice. Adems, a veces
encontraremos la clave buscada antes de llegar a un nodo hoja.

Cada anotacin de un bloque no hoja dispone de dos punteros, uno que apunta al
siguiente nodo y otro que apunta al registro correspondiente del rea de datos. La
gestin, y sobre todo las eliminaciones, en rboles B es ms compleja que en rboles
B+, y las ventajas apenas se notan, por lo que la mayora de las veces se emplean
rboles B+.



A
L
R
J
R
A


Aadir J
L


J
R

A
C
F
Aadir F y C
L




















Pag. 19 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros




Un ejemplo prctico de un archivo ndice orientado a rbol B es el Mtodo de
acceso de almacenamiento virtual propuesto por IBM en 1972 (VSAM - Virtual
Storage Access Method). El trmino virtual se debe slo a que los programas utilizados
para implantar VSAM dependan del direccionamiento virtual proporcionado por los
IBM 370.



Caractersticas de un fichero indexado.

Economa de almacenamiento: No existe rea de desborde por lo que el rea de
datos no requiere espacio para punteros de excedentes.

Recuperacin de registros: Al no existir reas de desborde el tiempo de recuperacin
suele ser inferior al de un fichero secuencial indexado, ya que la bsqueda se limita
a travs de los ndices.

Obtencin del siguiente registro: La bsqueda del siguiente registro se basa en el
seguimiento de un ndice, de forma que slo hay que acceder al registro
direccionado por la siguiente anotacin del ndice. Lo normal es que el siguiente
registro est alejado fsicamente del ltimo registro tratado, por lo que los archivos
indexados, ante procesos secuenciales, no se comportan tan bien como los
secuenciales indexados.

Inserciones de un nuevo registro: Para aadir un nuevo registro se coloca al final del
rea de datos y se actualizan todos los ndices segn vimos al tratar del
funcionamiento de un Arbol B.

Actualizacin de registros: Consiste en la bsqueda del registro, el cambio de los
datos y los cambios necesarios en los ndices afectados.

Borrado de un registro: Suele hacerse por marca de epitafio y afecta a todos los
ndices del fichero.

Lectura de un archivo indexado: La nica forma de realizarlo es mediante la lectura
de un ndice.

Reorganizacin de un archivo indexado: La reorganizacin de este tipo de archivos
puede no ser necesaria, salvo para la recuperacin de espacio de datos. Si el archivo
se reorganiza se hace obligado una reindexacin de todos los ndices.






Pag. 20 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros


1.9. Organizacin relativa o directa.

La organizacin directa intenta explotar la capacidad de acceso directo
proporcionada por las unidades de discos magnticos y dispositivos similares.

El mtodo de acceso directo es rpido, pero obliga a la localizacin de los datos
nicamente por uno de los campos del registro (atributo clave).

Para el clculo de la direccin a partir de la clave del registro, se pueden utilizar dos
mtodos:

1. Direccin directa: Consiste en amoldar la clave a las direcciones fsicas del
disco. Existen problemas al utilizar direcciones reales en trminos de
continuidad numrica y respuesta a cambios del sistema. No sera muy lgico, ni
cmodo adaptar una clave del siguiente modo:

30 07 85


Cilindro 30 Pista 07 Bloque 8 Registro 5


2. Transformacin de clave a direccin relativa: Como solucin al problema que
plantea el anterior direccionamiento, se puede transformar cada clave en una
direccin relativa numerada de 0 a N, desde la direccin de inicio del fichero.
La direccin fsica la obtiene el sistema aplicando un clculo muy simple:

Direccin de inicio +(direccin relativa * tamao del registro)

Para obtener una direccin relativa a partir de una clave se emplea un algoritmo
diseado para tal fin, denominado funcin de hashing. Cada direccin relativa
que se obtenga deber identificar a un slo registro y para el caso de inserciones
deber designar un espacio libre donde almacenar dicho registro. Dentro de los
procedimientos de transformacin de clave a direccin puede distinguirse dos
tipos:

a) Procedimientos determinsticos: Toman todo el conjunto de valores de la
clave y les calculan una direccin nica para cada uno. Por ejemplo, un
fichero que contenga un registro por cada da de un ao. La clave podra ser
la fecha compuesta por mes y da. En el registro 1 se almacenara los datos
correspondientes al da 1 del mes 1, en el registro 2, los correspondientes al
da 2 mes 1, as sucesivamente hasta el registro 372 (31*12) que almacenara
los datos del da 31 del mes 12.

La funcin hash podra ser la siguiente:
Direccin relativa =(31 * (nmes 1)) +nda
Pag. 21 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros

Algunos registro no estaran ocupados, ya que todos lo meses no tiene 31
das, pero el desperdicio es inapreciable.

b) Procedimientos aleatorios: Calculan el valor de la direccin a travs de la
clave, pero no asegura una direccin nica para cada clave. Cuando para dos
claves distintas se obtiene la misma direccin se dice que se ha producido
una colisin; y habr que determinar otra ubicacin para el registro que
colisiona. Llamamos sinnimos a los registros a los que la frmula asigna la
misma posicin en el fichero.


A la hora de aplicar esta tcnica hay que analizar cuatro parmetros:

a) El tamao de los cubos.
b) El nmero de cubos para el fichero.
c) La funcin de hashing.
d) El tratamiento de colisiones.

a) Tamao de los cubos: Se denominan cubos a los espacios de direccin que se
ponen a disposicin del mecanismo de direccionamiento. En un cubo tiene cabida
uno o ms registros, en el caso de admitir ms de un registro, sern registros
sinnimos. La funcin de hashing nos devolvera la direccin de un cubo. Dentro de
un cubo con ms de un registro se localizar el registro buscado leyendo
secuencialmente.

b) Nmero de cubos: El nmero de los cubos deber elegirse en funcin del tamao
de los mismos y del nmero de registros esperados.

c) La funcin de hashing: El algoritmo de la funcin debe cumplir dos objetivos:
1. Cada clave dentro del rango original deber aleatorizarse dentro del rango
permitido (es habitual sobredimensionar el tamao del fichero con objeto de
disminuir las colisiones). Por ejemplo, si utilizamos como clave de un fichero de
personal el DNI y la empresa dispone de 250 empleados. El rango original de los
DNIs oscilara entre los 20 y los 30 millones y el rango permitido podra oscilar
entre 1 y 300 si sobredimensionamos el fichero en un 20%.
2. Las direcciones debern distribuirse uniformemente dentro del rango previsto,
de forma que existan pocos sinnimos y pocos huecos.

Los mtodos ms frecuentes para calcular las direcciones a travs de las claves son:

- Resto de la divisin: la direccin relativa se obtiene de dividir la clave entre
un nmero primo cercano al tamao del fichero.

- Doblar y sumar: la clave se divide en partes y se suman, la suma nos dara
la direccin relativa. Por ejemplo: para la clave 746298

Partida por la mitad: 746 +298 =1044
Partida en tres: 74 +62 +98 =234
Dgitos alternos: 769 +428 =1197
Pag. 22 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
- Mtodo del centro del cuadrado: La clave se eleva al cuadrado y se toman
los dgitos centrales, operando con ellos para que caigan dentro del rango
permitido. Por ejemplo, para obtener la direccin relativa de la clave 6850 en
un archivo de 300 registros:

6850 * 6850 =46922500, tomando los dgitos centrales 922 y se multiplican
por un factor constante 0.3 para que se generen nmeros dentro del rango
permitido.
922 * 0.3 =276 direccin relativa.

d) Tratamiento de colisiones: Si se va a realizar una insercin una vez calculada la
direccin a travs de su clave, se lee esta direccin y se comprueba que realmente
est vaca (no se ha producido colisin), para ello el campo que se utiliza como
campo clave est igualado a NULL. Si la direccin est ocupada se ha producido
una colisin que se ha de resolver.

Para resolver las colisiones se utilizan los siguientes mtodos:

Bsqueda lineal: cuando ocurre una colisin se busca en el siguiente hueco libre
en orden secuencial.
Rehashing o realeatorizacin: calcular una nueva direccin para el registro,
bien utilizando otro campo para el clculo o utilizando un algoritmo distinto.
Esta realeatorizacin puede ser necesaria repetirla varias veces.
Utilizar un rea de colisiones independiente: Se utiliza un rea separada del
archivo principal donde van a almacenarse todas las colisiones que se
produzcan. Puede ocurrir que el rea de colisiones se llene mientras que an
queda espacio libre en el rea principal.


Caractersticas de un fichero directo.

Economa de almacenamiento: Generalmente los archivos directos utilizan una
estructura de registro fija, a lo que habra que aadir el espacio que hay que reservar
para las posibles colisiones y el espacio de sobredimensionado.

Recuperacin de un registro: Para recuperar un registro es necesario ejecutar la
funcin hashing sobre la clave, el tiempo para acceder a la direccin que nos
devuelve es muy pequeo, y slo se ver afectado por el tratamiento elegido en caso
de colisin.

Obtencin del siguiente registro: No ser posible localizar al siguiente registro a no
ser que se conozca la siguiente clave en secuencia

Insercin de un registro: Este proceso conlleva la transformacin de la clave en
direccin, el acceso a la direccin sealada y la verificacin de que no est ya
ocupada. Si no est ocupada se almacena el registro, y si lo est, se procede al
tratamiento de la colisin segn el mtodo utilizado para resolver colisiones.

Pag. 23 de 24
I.E.S. Miguel Romero Esteo Administracin de Sistemas Informticos
Sistemas Gestores de Bases de Datos TEMA 1: Sistemas clsicos de gestin de ficheros
Actualizacin de un registro: Consiste en encontrar un registro y volverlo a escribir,
si se produce un cambio de clave habra que realizar una eliminacin y una
insercin.

Borrado de un registro: Se puede liberar el espacio ocupado poniendo a NULL el
valor del campo clave, de forma que pueda ser utilizado por otro registro en caso de
colisin.

Lectura del archivo completo: Slo es posible efectuando una lectura de todo el
espacio asignado al archivo.

Reorganizacin del archivo: Para que se pueda producir es necesario reescribir el
proceso de aleatorizacin utilizado.

Pag. 24 de 24

Vous aimerez peut-être aussi