Archivos de datos

From ABCD Wiki
Revision as of 22:13, 6 January 2020 by Guilda (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Estructura de los archivos de datos

El almacenamiento de los datos en CDS/ISIS se lleva a cabo en una entidad lógica que comprende dos archivos físicos: el archivo maestro,con la extensión .MST y el archivo de referencias, con la extensión .XRF. Los datos se almacenan en el archivo maestro y el archivo de referencias es un archivo auxiliar que provee un mecanismo para el procesamiento de las operaciones de entrada y salida del archivo maestro.

El archivo de referencias se forma con registros de longitud fija, uno por cada registro del archivo maestro, y contienen la ubicación de cada registro dentro del maestro, permitiendo de esta forma acceso directo a los registros. Además de la dirección, se almacena el estado de cada registro: activo, lógicamente eliminado o físicamente eliminado. También indica si las listas invertidas ya han sido actualizadas con el registro en referencia. Los registros del archivo maestro son de longitud variable y cada uno de ellos se identifica con un número secuencial llamado “master file number” (MFN) o número de registro en el archivo maestro.

centro

Los registros se almacenan secuencialmente en el archivo maestro y su posición física dentro al interior de éste se guarda en el registro correspondiente del archivo de referencias. Esto es, la dirección y estado del registro 1 del archivo maestro se encuentra almacenada en la posición 1 del archivo de referencias, la dirección y estado del registro 2 del archivo maestro se encuentra almacenada en la posición 2 del archivo de referencias ... y así sucesivamente. Los nuevos registros se van agregando al final del archivo maestro, creándose el registro correspondiente en el archivo de referencias.

Como la estructura del maestro mantiene registros de longitud variable, en el proceso de actualización de registros ya existentes se da un caso especial: si se edita un registro ya almacenado el mismo puede no ocupar la misma posición que tenía asignada en la base de datos, dependiendo de las siguientes condiciones:

  • Si la versión modificada del registro tiene una longitud mayor que la versión anterior del mismo, entonces el registro se graba de nuevo al final de la base de datos y la versión anterior del registro se marca para indicar que el mismo está deshabilidado. El archivo de referencias se modifica para colocar la nueva posición del registro dentro de la base de datos.
Ejemplo: supongamos que al Mfn 4 tiene una longitud de 215 bytes. Lo editamos para agregar dos descriptores más, con lo cual la nueva longitud del registro es de 248 bytes. Cuando intentamos actualizar el registro, éste no puede sobreescribirse en el mismo lugar que ocupaba la versión de 215 bytes. Entonces, el registro de 215 bytes es marcado como eliminado y la nueva versión del registro se graba al final de la base de datos. El archivo .xrf también es modificado para indicar la nueva posición del registro 4 dentro del archivo maestro. Podemos representar esta situación de la siguiente manera:

centro

En la nueva versión del Mfn 4 se graba un apuntador hacia su versión anterior. Esto con el objeto de permitir extraer las claves de la lista invertida, correspondientes a la versión anterior del registro, para luego agregar las nuevas claves.Al actualizarse la lista invertida el apuntador hacia a la versión no modificada del registro desaparece.
  • Si la longitud de la versión modificada del registro no sufre ningún incremento, la lista invertida no ha sido actualizada y es la segunda modificación que ocurre sobre el registro, el registro modificado puede sobreescribir su versión anterior ya que las versiones intermedias generadas entre la primera versión y la última versión del registro no necesitan almacenarse para actualizar la lista invertida por cuanto con las dos versiones extremas basta para mantener actualizados los índices.

Las versiones del registro que han sido objeto de modificación permanecen en la base de datos hasta tanto no se active un proceso de reorganización del archivo maestro.

Todos los productos de la familia CDS/ISIS proveen funciones para las operaciones de entrada y salida de registros, las cuales manejan en forma automática el almacenamiento físico de los archivos maestro y de referencia y sus correspondientes mecanismos de actualización.


Integridad del archivo maestro

Dada la estrecha relación entre el archivo maestro y el archivo de referencias, la integridad de los datos en las estructuras CDS/Isis depende de la integridad de estos dos archivos: si el archivo .xrf se corrompe, el archivo maestro también se verá como corrompido aun cuando los datos están físcamente correctamente almacenados. Existen programas que ayudan a restablecer el archivo .xrf a partir del archivo maestro, para recuperar el acceso a la base de datos. Uno de estos programas es el denominado MKXRF perteneciente a las librerías CISIS distribuídas por Bireme.

La mejor manera de protejer los datos es asegurar el respaldo conjunto de los archivos .mst y .xrf, tener definidos procedimientos de auditoría y saber aplicar las herramientas de recuperación de bases de datos que ya existen para el mantenimiento de estas estructuras.


El registro de Control del Archivo Maestro

Todo archivo maestro posee un registro con MFN 0 denominado Registro de control del archivo maestro. Siempre se almacena al inicio del archivo, posee longitud fija y no genera entrada alguna en el archivo de referencias. Almacena la siguiente información

  • Número de archivo maestro (siempre cero)
  • Próximo Mfn a ser asignado
  • Dirección del próximo registro disponible: apunta al inicio del próximo bloque de 512 bytes disponible
  • Dirección del próximo registro del archivo maestro (apunta al desplazamiento dentro del próximo bloque disponible)
  • Tipo de archivo maestro (siempre es cero)
  • Número de aplicaciones que han solicitado el bloqueo de entrada de datos
  • Indicador de bloqueo de lectura de la base de datos


Estructura de los registros del archivo maestro

En los registros del archivo maestro la información se organiza en campos de longitud variable y algunos son opcionales, esto es, no siempre están presentes en todos los registros. La estructura del registro del archivo maestro posee tres secciones:

  • Leader
  • Directorio
  • Area de Datos

Los datos son almacenados en el área de datos uno a continuación del otro, sin ningún separador entre ellos. La sección de directorio contiene entradas de longitud fija las cuales almacenan apuntadores hacia cada campo contenido en el área de datos. El Leader también posee longitud fija y contiene información acerca de las características generales del registro en sí mismo, tales como: número de archivo maestro (MFN), longitud de registro, el número de campos almacenados, etc. En forma esquemática la estructura de un registro es la siguiente

centro

El Leader

La estructura de datos del leader ocupa 18 bytes con la siguiente información:

  • Mfn del registro
  • Longitud del registro
  • Apuntador hacia la versión anterior del registro si éste ha sido modificado (número del bloque en el archivo maestro)
  • Apuntador hacia la versión anterior del registro si éste ha sido modificado (desplazamiento dentro del bloque)
  • Posición de inico del area de datos, donde se encuentran los campos del registro
  • Número de campos contenidos en el registro (representa el número de entradas presentes en la sección Directorio
  • Estado del registro (0 = registro activo, 1 = registro marcado para eliminación)

El Directorio

La sección del directorio del registro posee una entrada por cada uno de los campos presentes en el registro. Cuando un campo, tal como el nombre del autor, ocurre más de una vez en el registro (campo repetible), existirá una entrada en el directorio para cada ocurrencia del campo, Igualmente, en el área de datos, existirán tantos campos como ocurrencias posea el campo repetible. El orden como se presentan estas ocurrencias corresponde con el orden como se ingresa el campo al momento de captura de información.

Cada entrada del directorio posee un máximo de 6 bytes y tiene la siguiente estructura:

  • Tag (etiqueta) del campo
  • Posición de inicio del campo dentro del registro (se expresa en término de desplezamiento respecto al inicio del area de datos
  • Longitud del campo

Las entradas en el directorio se almacenan en el mismo orden como fueron ingresados los campos.

El área de datos

A continuación del directorio del registro se encuentra el área de datos con la información ingresada en el registro.

Una base de datos ISIS provee tres modalidades para almacenar la información en los campos:

  • Campos elementales
  • Campos repetibles
  • Campos con sub-campos

Campos elementales son aquellos que poseen una sola instancia (ocurrencia) en el registro, ejm: la fecha de nacimiento de una persona, el estado civil, etc.

Campos repetible son aquellos que pueden poseer más de una instancia en el registro, ejm: los autores de una publicación, las materias de las cuales trata, etc.

Los campos con subcampos permiten estructurar la información al interior del campo a efectos de proveer el acceso a cada una de los elementos de datos que lo componen. Ejemplo: identificar dentro del nombre del autor, la porción correspondiente al nombre y la porción correspondiente al apellido (subcampo nombre y subcampo apellido). Cada subcampo estará precedido por un delimitador consistente en un indicador de subcampo (el carácter ^) y un identificador de subcampo (una letra o un número)

Ejemplo de un registro en formato Marc almacenado bajo una estructura CDS/Isis. El mismo ha sido obtenido a través de una catalogación directa desde la Biblioteca del Congreso (LC). El valor al inicio del registro, mostrado entre <...>, corresponde a la etiqueta del campo.

         <1>1163388 
         <8>960711s1996    sz a     b    001 0 eng c 
         <35>  $9(DLC)   96031775 
         <7>07-17-96; CIP ver. pv07 11-20-96 
         <10>  ^a96031775 
         <20>  ^a3805563337 (hardcover : acid-free paper) 
         <40>  ^aDNLM/DLC^cDLC^dDLC^dIVIC-BMR 
         <50>00^aWD300^bM755^c1996^dv.33
         <60>10^aW1 MO567E v.33 1996^aWF 553 G3283 1996
         <82>00^a616.2/38042$220
         <245>00^aGenetics of asthma and atopy /^cvolume editor, I.P. Hall.
         <260>  ^aBasel ;^aNew York :^bKarger,^c1996.
         <300>  ^av, 174 p. :^bill. ;^c25 cm.
         <440> 0^aMonographs in allergy^v33
         <504>  ^aIncludes bibliographical references and index.
         <650> 0^aAsthma^xGenetic aspects.
         <650> 0^aAllergy^xGenetic aspects.
         <650>12^aAsthma^xgenetics.
         <650>22^aHypersensitivity^xgenetics.
         <700>1 ^aHall, I. P.
         <5>20010417 0904
         <935>SD
         <900>^n91523^m33^fCompra^p19970100^rSwets^w20010416^zSD
         <5>20010417^t04:09:46 a.m.^bSD

Notese el manejo del campos repetibles, ejm. el campo 650, donde cada ocurrencia se mantiene en un campo por separado pero identificado con la misma etiqueta. El arte del trabajo con las herramientas CDS/Isis reside en un buen manejo del lenguaje de formateo, para extraer y manejar la información almacenada bajo estas estructuras.