Juan Garcés

Personal Blog

Organización de Archivos

mayo 7th, 2013

(Otro apunte de ayudantías de la Universidad)

Introducción

La mayoría de aplicaciones necesitan almacenar y recuperar información para su funcionamiento. Durante su ejecución una aplicación puede almacenar datos en su espacio de direcciones en Memoria Principal, sin embargo, este espacio es de un tamaño muy limitado. Además, cuando el proceso termina su ejecución la información que se había registrado en memoria se pierde. Por otra parte, en algunas ocasiones se hace necesario que varios procesos accesen la misma información en forma simultánea. La solución a estos tres problemas está en el almacenamiento de la información en medios externos, en unidades denominadas ARCHIVOS.

La información almacenada en archivos debe ser persistente, es decir, no debe depender de la creación y terminación de un proceso. Un archivo, en teoría, solo debe desaparecer por su eliminación explícita.

Los archivos son administrados por el sistema operativo. Su estructura, nombre, forma de acceso, uso, protección e implantación son responsabilidad de él. La parte del sistema operativo que se encarga de esta labor se conoce con el nombre de Sistema de Archivos.

 
 

Conceptos Básicos

  • Dato: Es la representación de un hecho o una entidad. Un dato puede ser volátil o persistente. Se dice volátil cuando éste existe sólo durante la ejecución de la aplicación y es persistente cuando «perdura» aunque la aplicación haya terminado su ejecución.
  • Información: Conjunto de datos que procesados, permiten reducir la incertidumbre de alguien con respecto a algo para cumplir un objetivo específico.
  • Registro: Es el conjunto de datos relacionados pertenecientes a una entidad. Este conjunto de datos es una colección finita, ordenada y posiblemente heterogénea en sus elementos que son tratados como una unidad.
  • Campo: Campo es un área específica de un registro, usada para representar una clase particular de información.
  • Registro Lógico: Es una unidad de información significativa para el programador.
  • Registro Físico: Es una serie de registros continuos registrados como una sola unidad en algún lugar de almacenamiento de la computadora.
  • Llave: Es el campo que identifica un registro. Es el campo cuyos valores son usados para colocar una colección de registros en un orden específico.
  • Llave Primaria: Es el campo llave principal de un archivo multillave. En un archivo secuencial indexado con llaves alternas representa el campo por medio del cual el acceso directo y secuencial es manejado.
  • Llave secundaria: Es, en un archivo multillave, cualquier llave exceptuando la primara.

 
 

  • Archivo: Los archivos, también denominados ficheros (file) son una colección de registros lógicamente relacionados (datos relacionados entre sí), localizada o almacenada como una unidad en alguna parte de la computadora (Disquete, Disco Duro, CD, etc.).

    Los archivos como colección de datos sirve para la entrada y salida a la computadora y son manejados con programas.

  • Base de Datos: Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. La base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos. Una base de Datos puede dar servicio a muchas aplicaciones al mismo tiempo al combinar los datos de manera que aparezcan estar en una sola ubicación.
  • Transacción: Es un evento o acción que manipula los datos de un archivo maestro o base de datos grabados en algún medio de almacenamiento, pasándolo de un estado A inicial a un estado B.
  • Organización de Archivos: Es la técnica usada para representar, estructurar y almacenar los registros en un archivo.

 
 

El Almacenamiento de Datos

Almacenamiento en Dispositivos Magnéticos:

Los discos magnéticos son el medio más popular de almacenamiento secundario. Un disco magnético es un plato metálico o plástico que se parece a un disco fonográfico sin surcos. Todos los discos magnéticos son platos redondos recubiertos de un material de grabación magnetizable, pero hasta allí llega el parecido. Existen varios tipos de discos. Pueden ser portátiles o pueden estar montados permanentemente en unidades de disco, pueden estar hechos de material rígido o plástico flexible.

Almacenamiento de datos en discos magnéticos: En un disco fonográfico, la música se almacena en un surco continuo que sigue una trayectoria espiral hacia el centro del disco. Pero en un disco magnético no hay surcos. En vez de ello, los datos se almacenan, en todos los discos, en varios círculos concéntricos invisibles llamados pistas. Estas pistas, como los anillos de un árbol, comienzan en el borde exterior del disco y continúan hacia el centro sin tocarse jamás. Todas las pistas están numeradas.

Un motor hace girar el disco rápidamente. Los datos se graban en las pistas de la superficie del disco en movimiento y se leen de esa superficie, por medio de una o más cabezas de lectura/escritura. Si se utiliza un disco flexible, la cabeza está en contacto con el disco. Si se emplean discos duros, la cabeza vuela sobre un cojín de aire unas cuantas micras por encima de la superficie.

Cuando están empacados juntos varios discos, se utilizan varios brazos de acceso y cabezas de lectura/escritura. Los datos se graban en forma de pequeñas marcas magnéticas en la superficie del disco. Una marca —que equivale a un uno— está magnetizada en una dirección y la que corresponde a un cero, en otra. Para representar los datos se utilizan los códigos BCD de siete u ocho bits. Al grabar datos nuevos en un disco se borran los datos grabados previamente en ese lugar, pero de otra manera las marcas magnéticas permanecen allí por tiempo indefinido. La lectura de los datos grabados se logra al pasar las marcas magnetizadas por debajo de una cabeza de lectura, en la cual inducen pulsos eléctricos.

Cuantas más superficies tenga un sistema de disco, mayor será su capacidad de almacenamiento. Por ejemplo, los primeros sistemas de disco flexible estaban diseñados de tal manera que sólo grababan datos en una superficie del disco. El acceso a la superficie de estos discos de un solo kido se logra a través de una ranura o ventana en uno de los lados de la funda. Pero los sistemas posteriores se hicieron para utilizar discos flexibles de dos kidos que tienen ranuras para ambas superficies. Naturalmente, la capacidad de almacenamiento de un disco de dos caras es casi el doble de la de los discos de un solo lado.

 
 

Velocidad de acceso: El tiempo de acceso de los datos almacenados en un disco está determinado básicamente por:

1. El tiempo de posicionamiento: es el tiempo que se requiere para colocar una cabeza sobre la pista apropiada.

2. El tiempo de búsqueda (latencia): es el tiempo que se requiere para girar el disco de manera que el dato deseado quede bajo la cabeza.

 
 

Ventajas y limitaciones de los discos magnéticos: A continuación se hará un resumen de algunas de las ventajas de los discos:

  • Los registros en disco pueden almacenarse en forma secuencial y procesarse como los registros en cinta magnética o, pueden almacenarse para procesarlos en forma directa.
  • Puede tenerse acceso a cualquier registro de disco en línea y pueden actualizarse en unos cuantos milisegundos. No es necesario clasificar las transacciones.
  • Puede utilizarse una sola transacción de entrada de datos para actualizar los registros de disco en línea de varios archivos relacionados entre sí.

 
 

Pero los discos también tienen limitaciones:

  • Cuando se actualiza un archivo en cinta magnética, la cinta maestra anterior no suele sufrir alteraciones y sigue disponible durante cierto tiempo, en caso de que se presentaran fallas en el sistema. En cambio, cuando se actualizan los registros de un archivo en disco, es posible que se borren los registros anteriores cuando los registros nuevos se graban en el disco, quizá la información almacenada en un disco duro fijo quede inaccesible o se pierda si hay una falla de disco.
  • Ha habido gente que elude las medidas de seguridad y logra tener acceso a archivos importantes de disco en línea desde terminales remotas. Estos archivos han sido manipulados y hasta destruidos. Es más fácil mantener esta seguridad en cinta magnética.

 
 

Almacenamiento en discos ópticos

Las técnicas de almacenamiento se pueden basar en el empleo de la luz, en vez de hacerlo en los principios del magnetismo.

Sobre un recubrimiento delgado de metal u otro material depositado sobre un disco, se queman o estampan diminutas perforaciones que solamente se pueden ver bajo el microscopio. Estas perforaciones pueden hacerse en un disco de doce pulgadas a fin de grabar las imágenes y sonidos de películas, conciertos y eventos deportivos. También pueden hacerse en discos compactos (de 4.7 pulgadas) para grabar música de alta calidad. En ambos casos, los patrones de perforaciones representan los datos digitales mediante los cuales se codifican imágenes y sonidos. Cuando se colocan estos discos ópticos en dispositivos reproductores, se utiliza un rayo láser para leer los patrones de perforaciones y convertirlos en las señales audiovisuales que se requieren para producir las imágenes y sonidos de la televisión o los sonidos de los discos compactos. Por supuesto, los bits quemados o estampados en los discos para entretenimiento no se pueden borrar, por lo que no es posible grabar nuevas imágenes o sonidos en ellos.

 

La misma tecnología de disco óptico que se utiliza en los productos para el hogar puede usarse para almacenar y recuperar datos. Por ejemplo, la tecnología de los discos compactos (CD, compact disc) de audio se adaptó para desarrollar discos de almacenamiento óptico CD-ROM (disco compacto, memoria sólo de lectura; compact disck, read-only memory) y las unidades correspondientes que se pueden usar con computadoras personales. La densidad de almacenamiento de los discos ópticos es enorme, el costo de almacenamiento es muy bajo y el tiempo de acceso es relativamente breve. En un solo disco CD-ROM caben cerca de 650 megabytes. Las perforaciones de los discos CD-ROM ya vienen estampadas por sus fabricantes, entre los cuales se pueden mencionar los creadores de enciclopedias electrónicas, editores de catálogos de piezas, reglamentos y documentos legales y médicos, así como los distribuidores de bancos de datos de información financiera, legal y de otros tipos. Con todo, los discos CD-ROM son sólo una forma de almacenamiento óptico. Además de estos dispositivos pregrabados sólo de lectura, existen dispositivos de almacenamiento óptico con base en los rayos láser en los cuales se puede escribir. Con los sistemas de escritura única y lectura múltiple (WORM,wrile-once,read-many), los usuarios graban sus propios datos en discos ópticos en blanco. Un dispositivo grabador láser escribe bits uno mediante la fusión, burbujeo o deformación de una capa delgada y sensible de material que se encuentra en la superficie del disco.

 
 

ARCHIVOS

Como se dijo anteriormente, un archivo es una colección de registros lógicamente relacionados y que son almacenados en alguno de los medios de almacenamientos disponibles.

Los archivos pueden ser contrastados con Arrays y registros; Lo que resulta dinámico y por esto en un registro se deben especificar los campos, él número de elementos de un arrays (o arreglo), el número de caracteres en una cadena; por esto se denotan como «Estructuras Estáticas».

En los archivos no se requiere de un tamaño predeterminado; esto significa que se pueden hacer archivos de datos más grandes o pequeños, según se necesiten.

    Generalmente, los registros de un archivo se almacenan juntos para un propósito común como por ejemplo para apoyar el manejo de inventarios, para manejar la nómina de trabajadores de alguna oficina o empresa, para llevar un registro de las citas de una persona, etcétera.

    Existen muchas razones por las cuales un conjunto de datos son almacenados como un archivo. Entre las principales razones (características de los archivos) podemos mencionar las siguientes:

  • Independencia de los datos respecto de los programas, ya que al terminar la ejecución de una aplicación, el espacio de memoria que se le había asignado es reasignado a otra unidad ejecutable. Debido a esto, los datos que haya guardado la aplicación en memoria temporal se pierde. En cambio, los archivos proporcionan un medio de almacenamiento permanente en el tiempo.
  • La información almacenada es permanente, lo que se deriva del punto anterior, ya que los datos almacenados en un archivo no son volátiles, quedando registrados físicamente en algún medio de almacenamiento hasta que se produce su eliminación explícita. (Delete Archivo).
  • Un archivo puede ser accedido por distintos programas en distintos momentos, ya que éste permanecerá allí, con la misma estructura, pero con los datos que las aplicaciones que accedan a él hayan registrado o modificado.
  • Gran capacidad de almacenamiento de datos, ya que ésta se verá limitada solamente por el espacio de almacenamiento del medio que se utilice para contener el archivo en un momento dado.
  • Los archivos brindan la posibilidad de acceso a algunos o todos los datos de él, lo que es muy útil ya que la gran mayoría de las veces no es necesario accesar todos los datos que se contienen en un archivo al mismo tiempo, con lo que los datos que se pasen desde el archivo a memoria principal serán sólo los que se necesiten en algún momento de la ejecución de la aplicación, lo que permite que esta memoria volátil no sea mal utilizada.

 
 

Los registros de un Archivo: A continuación se presentan algunos métodos que se usan con mayor frecuencia para organizar un archivo en registros:

  • Los registros deben ser de longitud predecible (la cual puede medirse en términos de bytes o en términos de campos).
  • Comenzar cada registro con un indicador de longitud que señale el número de bytes que contiene.
  • Usar un segundo archivo para mantener información de la dirección del byte de inicio de cada registro.
  • Colocar un delimitador al final de cada registro para separarlo del siguiente.

 
 

Los campos de un Archivo: Un campo en un registro puede ser atómico (no es divisible en más de un campo o una estructura compuesta). Entre las características de un campo se tienen:

  • Nombre: El nombre del campo debería en lo posible reflejar su contenido, por ejemplo Nombre_Alumno, Teléfono_Alumno, etcétera.
  • Tipo: Corresponde a la característica del dominio del campo, como por ejemplo entero, real, carácter, booleano, fecha, string, etcétera.
  • Largo: Es la cantidad de espacio en bytes que se deberán reservar para almacenar el contenido de este campo.
  • Validación: Característica de algunos campos, que dice relación con los posibles valores que puede tomar un campo.

 
 

Clasificación de Archivos por Función

Según Loomis* existen seis tipos básicos de archivos, clasificados por la función que desempeñan en un sistema de información:

  1. Archivo Maestro
  2. Archivo de Transacciones
  3. Archivo de Reporte
  4. Archivo de Trabajo
  5. Archivo Histórico
  6. Archivo de Programa
  7. Archivo de Texto
  • Archivo Maestro: Estos contienen información que varía poco, es decir, que es relativamente permanente o que contiene datos de estados históricos. En algunos casos es preciso actualizarlos periódicamente.
  • Archivo de Transacciones: Es un archivo que sirve como contenedor de los cambios que se le realizarán a un archivo maestro.
  • Archivo de Reporte: Contiene datos que son formateados para su presentación al usuario.
  • Archivo de Trabajo: Tienen una vida limitada, normalmente menor que la duración de la ejecución de un programa. Se utilizan comúnmente para pasar datos creados por un programa a otro programa y también se utilizan como auxiliares de los archivos de transacciones.
  • Archivo Histórico: Almacena todos los hechos producidos a través del tiempo (por ejemplo un archivo de movimiento de cuenta en un sistema bancario).
  • Archivo de Programa: Contiene instrucciones para procesar datos, los cuales pueden almacenarse en otros archivos o residir en la memoria principal.
  • Archivo de Texto: Contiene datos alfanuméricos y gráficos ingresados a través de un programa editor de textos.

 
 

Maneras de Accesar Archivos: Existen tres modos de acceso a un archivo y son: Entrada, Salida y Entrasa/Salida.

    Un programa lee un archivo de entrada, por ejemplo un archivo de transacciones es generalmente un archivo de entrada a un programa de actualización.

    Un archivo de salida es escrito solamente por un programa, es decir, es creado por el programa. Por ejemplo un archivo de reporte.

    Un archivo de entrada/salida es leído y escrito durante la ejecución de un programa. Por ejemplo, el archivo maestro de nómina de una empresa podría ser usado por el programa de nómina tanto para ser leído, como una fuente de información sobre los sueldos del empleado, como para registrar los pagos totales mensuales y anuales a la fecha.

 
 

Sistemas de Archivo

    Cuando un programador decide trabajar con archivos aprecia que existen una serie de instrucciones en el lenguaje de programación que utilice y que le permitirán crear y manipular el archivo de manera tal de registrar los datos que desee en éste.

    Pero la tarea no es tan sencilla, existen detrás de estas instrucciones (que podríamos denominar de alto nivel) una secuencia compleja de operaciones (que a su vez denominaremos de bajo nivel) que se invocan para manejar la Entrada y Salida de los dispositivos de almacenamiento.

    Por suerte, todas estas operaciones complejas son manejadas por el Sistema de Archivo convirtiendo las instrucciones del lenguaje de programación y brindando un gran apoyo al programador haciendo que estas funciones se tornen transparentes para él, sin preocuparse de los detalles que se involucran en el almacenamiento de los datos ni en los tiempos de acceso.

    Entre las funciones que debe cumplir un Sistema de Archivo posemos mencionar las siguientes:

  • Mantener un directorio de identificación de archivos y localización de información.
  • Establecer rutas del flujo de datos entre la memoria principal y los dispositivos de almacenamiento secundario.
  • Coordinar rutas del flujo de datos entre la memoria principal y los dispositivos de almacenamiento secundario y viceversa, incluyendo:
  • Manipular la desproporción en la rapidez de la UCP del computador y de los dispositivos de almacenamiento, en tal forma que la UCP no desperdicie una excesiva cantidad de tiempo, esperando ociosamente que las operaciones de entrada/salida sean completadas.
  • Manipular datos, de tal forma que éstos puedan ser conservados si el emisor (UCP o dispositivo de almacenamiento secundario) y el receptor (dispositivo de almacenamiento secundario o UCP) no están listos al mismo tiempo.
  • Preparar los archivos para usarse como de entrada o de salida.
  • Manipular los archivos cuando su uso de entrada o salida haya terminado.

 
 

Características de los Archivos Magnéticos

 
 

1. Medio de Almacenamiento: Dependiendo del medio de almacenamiento se tienen archivos direccionables y archivos no direccionables.

2. Disposición Física de los Registros: Corresponde a la forma en que se ubican los registros en el medio de almacenamiento. Se distinguen así dos formas:

  • Serial: En este tipo de disposición los registros son escritos uno después del otro en forma continua desde el principio hasta el final de éste.
  • No Serial: Los registros se ubican escritos en una posición específica que no depende necesariamente de la posición del registro anterior.

 
 

3. Disposición Lógica de los Registros: Es la relación existente entre el orden lógico de los registros y la disposición física de ellos. Se distinguen tres tipos de disposiciones:

  • Secuencial: El orden lógico de los registros coincide con el orden físico de los mismos.
  • Al Azar: No existe ninguna relación entre el orden lógico y el orden físico. Cualquier registro del archivo puede estar en cualquier parte de él.
  • Específica: Existe una determinada relación entre el orden lógico y el orden físico de los registros. Las más utilizadas son las siguientes:
    • Organización Secuencial
    • Organización Secuencial-Indexada
    • Organización Relativa

     
     

4. Tipo de Acceso: Dependiendo de la forma en que es buscado un registro dentro del archivo se distinguen dos tipos de acceso:

  • Acceso Secuencial: Los registros son recorridos en su orden lógico, es decir, para localizar uno en particular se recorren todos los anteriores.
  • Acceso Directo: Para localizar un registro no se necesita recorrer los registros previos.

 
 

5. Procesamiento: Depende del uso del archivo. Corresponde al manejo global de los registros del archivo. Tenemos así tres procesamientos:

  • Procesamiento Serial: El archivo se procesa de acuerdo al orden físico de los registros.
  • Procesamiento Secuencial: El archivo se procesa de acuerdo al orden lógico de los registros.
  • Al Azar: Procesa los registros de cualquier forma.

 
 

Juan Garcés

Personal Blog