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
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.