Archivos Todos los datos que un programa utiliza durante su ejecución se encuentran en sus variables, que están almacenadas en la memoria RAM del computador. La memoria RAM es un medio de almacenamiento volátil: cuando el programa termina, o cuando el computador se apaga, todos los datos se pierden para siempre. Para que un programa pueda guardar datos de manera permanente, es necesario utilizar un medio de almacenamiento persistente, de los cuales el más importante es el disco duro. Para que un programa pueda guardar datos de manera permanente, es necesario utilizar un medio de almacenamiento persistente. Archivos Los datos en el disco duro están organizados en archivos. Un archivo es una secuencia de datos almacenados en un medio persistente que están disponibles para ser utilizados por un programa. Todos los archivos tienen un nombre y una ubicación dentro del sistema de archivos del sistema operativo. Los datos en un archivo siguen estando presentes después que termina el programa que lo ha creado. Un programa puede guardar sus datos en archivos para usarlos en una ejecución futura, e incluso puede leer datos desde archivos creados por otros programas. Archivos (Definición) Un archivo o fichero es una estructura o colección secuencial de datos de tamaño variable que puede guardarse de forma permanente en un sistema de almacenamiento masivo. El acceso a los datos contenidos en el archivo puede ser secuencial (esto quiere decir que los datos se acceden en el orden en el que fueron introducidos) o aleatorio o directo (cada dato tiene asociado una posición de almacenamiento). Archivos (Características) Las principales características de los archivos de disco como estructura de datos son las siguientes: a) un archivo de disco es un almacén de datos no volátil, b) no tiene un tamaño predeterminado : el tamaño de un archivo puede ir variando durante la ejecución de un programa según las necesidad es. Por otro lado, el tamaño está sólo limitado por el espacio de almacenamiento existente en disco y, c) en un archivo todos los datos están almacenados en formato determinado, que no tiene porqué coincidir con el formato empleado en otros archivos. Archivos (Ventajas) a) la posibilidad de manejar grandes cantidades de datos (tanto de entrada como de salida), b) los datos no se pierden al terminar de ejecutar un programa o al apagar el ordenador, es decir, pueden quedar almacenados permanentemente y, c) su empleo facilita la transmisión de datos entre programas , aplicaciones, ordenadores o sistemas diferentes. Esta ventaja afecta especialmente a los archivos de tipo text. Archivos (Inconvenientes) Aunque su empleo también tiene algunos inconvenientes, tanto en la construcción como durante la ejecución de un programa, así: a) la manipulación de un archivo en un programa es algo más complicada que el de una estructura de datos interna y, b) las operaciones de entrada y salida (el acceso para escritura y lectura en los archivos en disco) son relativamente más lentas. Archivos y Registros Los archivos como colección de datos sirven para la E/S a la computadora y son manejados con programas. Un registro lógico (registro), es cada uno de las componentes del archivo, conteniendo el conjunto de informaciones que se acceden y se tratan de manera unitaria. Cada registro está constituido por uno o más elementos denominados campos, que pueden ser de diferentes tipos y que a su vez pueden estar compuestos por subcampos. Los bloques son la cantidad de información que se transfiere físicamente en cada operación de acceso (R o W) sobre el exterior. Un bloque puede tener uno o más registros (registros bloqueados) Un registro ocupe más de un bloque (registros expandidos). Organización de los Archivos Existen tres tipos de organización de archivos: Organización secuencial: Es aquella en la cual los registros ocupan posiciones consecutivas de memoria, y sólo se puede acceder a ellos de uno en uno a partir del primero. En un archivo secuencial no se pueden hacer operaciones de escritura cuando se está leyendo, ni operaciones de lectura cuando se está escribiendo. Para actualizarlos es preciso crear nuevos archivos donde se copien registros que vayan a permanecer, modificados o no, junto con los nuevos. Organización de los Archivos Organización directa o aleatoria: Los datos se colocan y se acceden de forma aleatoria mediante su posición, es decir, indicando el lugar relativo que ocupan dentro del conjunto de posiciones posibles. En esta organización se pueden leer y escribir registros, en cualquier orden y en cualquier lugar. Presenta el inconveniente de que es tarea del programador establecer la relación entre la posición que ocupa un registro y su contenido. Además puede desaprovecharse parte del espacio destinado al archivo, ya que pueden quedar huecos libres entre unos registros y otros. Su principal ventaja es la rapidez de acceso a un registro cualquiera, puesto que no es preciso pasar por los registros anteriores. Organización de los Archivos Organización secuencial indexada: Un archivo con esta organización consta de tres áreas: área de índices, área primaria y área de excedentes. (overflow). Ventajas: Rápido acceso, y, además, el sistema se encarga de relacionar la posición de cada registro con su contenido por medio del área de índices. Gestiona las áreas de índices y excedentes. Desventajas: Necesidades de espacio adicional para el área de índices. El desaprovechamiento de espacio que resulta al quedar huecos intermedios libres después de sucesivas actualizaciones. Modo de Acceso Se denomina modo de acceso a la forma en que el dispositivo que maneja el soporte al que accedemos se posiciona en un determinado lugar del mismo para realizar una operación de lectura o escritura de un registro. Es determinado por el programador de la aplicación en función del soporte utilizado y del tipo de organización. Hay dos modos básicos: Acceso secuencial a un registro supone acceder inicialmente al primer registro del archivo y después, consecutivamente, a todos los sucesivos hasta llegar al registro deseado. Se puede utilizar con cualquier soporte y organización. Acceso directo solamente se puede dar en los soportes direccionales, como los discos magnéticos, y consiste en el posicionamiento sobre cualquier registro sin necesidad de haber accedido antes a los anteriores. Operaciones sobreArchivos Creación: Consiste en la escritura o grabación en un soporte determinado de todos los registros que van a formar el archivo. Los datos pueden ser introducidos desde un teclado, pueden proceder de otro archivo o ser obtenidos como resultado de algún proceso. Copia: Es una de las operaciones más usadas y consiste en crear un nuevo archivo como duplicación de otro existente. La copia puede realizarse en el mismo o en diferente soporte de información. Un caso particular de esta operación es la impresión de un archivo. Consulta: Se realiza para obtener el contenido de uno o varios registros. En muchos casos irá precedida de una búsqueda de los mismos. Clasificación u ordenación: Es la operación consistente en reubicar los registros de tal forma que queden ordenados con respecto a los valores de un campo que denominamos clave de ordenamiento. En un archivo clasificado serán mucho más rápidas las consultas que se realicen por medio del campo que rige el ordenamiento. Por ejemplo, será muy útil clasificar alfabéticamente el archivo de alumnos por el campo nombre, ya que la mayoría de las consultas se harán utilizando este campo. Concatenación: Dados dos archivos con registros de igual estructura, se trata d e obtener uno solo en que figuren todos los registros del primero y a continuación todos los del segundo. Esta operación se puede generalizar para más de dos archivos. Operaciones sobreArchivos Intersección: Dados dos archivos de igual estructura, se trata de obtener otro en que figuren los registros comunes a ambos. Fusión o mezcla: A partir de dos archivos de igual estructura clasificados por un mismo campo, se obtiene como resultado un archivo que contiene los registros de ambos y que mantiene la ordenación. Partición: Consiste en descomponer un archivo en dos, atendiendo a alguna característica de su registro. Actualización: Es la operación de modificar un archivo de situación por medio de un archivo de movimientos, conteniendo altas, bajas y modificaciones que hay que realizar sobre el archivo maestro para ponerlo al día. Reorganización: Operación consistente en reubicar los registros de un archivo que ha sufrido actualizaciones, de tal manera que se ocupen de los posibles huecos libres intermedios resultantes de bajas de registros para optimizar la ocupación de la memoria, liberando la que no estaba aprovechada. Borrado: Eliminación total del archivo, cuando ya no se necesite, dejando libre el espacio de la memoria que ocupaba en el soporte utilizado.