Fundamentos de Programación Archivos (Ficheros) Noción de Archivo (Fichero): Estructura Jerárquica Las estructuras enunciadas hasta el momento se almacenan en la memoria principal. Sin embrago, no siempre es posible almacenar los datos en la memoria central o principal de la computadora, debido a las limitaciones que su uso plantea: • Limitación de capacidad de la memoria principal. • Tiempo encendida la máquina o ejecutando el programa 2 Noción de Archivo (Fichero): Estructura Jerárquica Estas limitaciones dificultan: • Manipulación de gran número de datos. • La trasnmisión de salida de resultados de un programa puede ser tratada como entrada a otro programa. 3 Noción de Archivo (Fichero): Estructura Jerárquica Para poder superar estas dificultades se necesitan dispositivos de almacenamiento secundario (memorias externas o auxiliares) como cintas, discos magnéticos, etc., donde se almacenará la información o datos que podrá ser recuperada para su tratamiento posterior. Las estructuras de datos aplicadas a colección de datos en almacenamientos secundarios se llama organización de archivos. 4 Noción de Archivo (Fichero): Estructura Jerárquica La noción de archivo o fichero está relacionada con los conceptos de: • Almacenamiento permanente de datos • Fraccionamiento o partición de grandes volúmenes de información en unidades más pequeñas que puedan ser almacenadas en memoria central y procesadas por un programa. 5 Noción de Archivo (Fichero): Estructura Jerárquica Un archivo o fichero es un conjunto de datos estructurados en una colección de entidades elementales o básicas denominadas registros o artículos, que son de igual tipo y cosntan a su vez de diferentes entidades de nivel más bajo denominados campos. 6 Conceptos y definiciones = Terminología • Clave • Registro físico o bloque • Factor de bloqueo 7 Soportes secuenciales y direccionables El soporte es el medio físico donde se almacenan los datos. Los tipos de soporte utuilizados en la gestión de archivos son: • Soportes secuenciales • Soportes direccionables 8 Organización de Archivos Según las características del soporte empleado y el modo wen que se han organizado los registros, se consideran dos tipos de acceso a los registros de un archivo: • Acceso secuencial • Acceso directo 9 Organización de Archivos La organización de un archivo define la forma en la que los registros se disponen sobre el sioporte de almacenamiento, o también se define la organización como la forma en que se estructuran los datos en un archivo. En general, se consideran tres organizaciones fundamentales: • Organización secuencial • Organización directa o aleatoria (random) • Organización secuencial indexada (indexed) 10 Operaciones sobre Archivos Las distintas operaciones que se pueden realizar son: • Creación • Consulta • Actualización (altas, bajas, modificaación, consulta) • Clasificación • Reorganización • Destrucción (borrado) • Reunión, fusión • Rotura, estallido 11 Gestión de Archivos Las operaciones sobre los archivos se realizan mediante programas y el primer paso para poner gestionaar un archivo mediante un programa es declarar un identificador lógico que se asocie al nombre externo del archivo para permitir su manipulación. La declaración se realizará con una serie de instrucciones como las que se muestran a continuación, cuya asociación permite establecer la organuización del archivo y estructura de sus registros lógicos. 12 Borrar Archivos La instrucción de borrar tiene como objetivo la supresión de un archivo del soporte o dispositivo. El espacio utilizado por un archivo borrado puede ser utilizado para otros archivos. La información necesaria para eliminar un archivo es: • Nombre del dispositivo y número del canal de comunicación • Nombre del archivo 13 Borrar Archivos Los errores que se pueden producir son: • El archivo no se puede encontrar bien porque el nombre no es válido o porque nunca existió. • Otros usuarios estaban actuando sobre el archivo y estaba activo. • Se detectó un problema de hardware. 14 Flujos Existen lenguajes d eprogramación que realizan operaciones en archivos a través de flujos, manipulados por clases, que conectan con el medio de almacenamiento. De esta forma, para crear y abrir un archivo, se requiere utilizar una clase definida la funcionalidad del flijo. 15 Flujos Los flujos determinan la sentido de la comunicación (lectura, escritura o lectura/escritura), la posibilidad de posicionamineto directo o no en determinado registro y la forma de leer o escribir en el archivo. Cerrar un archivo implica cerra el flujo. 16 Mantenimientos de Archivos La operación de mantenimiento de un archivo incluye todas las opèraciones que sufre un archivo durante su vida y desde su creación hasta su eliminación o borrado. El mantenimiento de un archivo consta de dos operaciones diferentes: • Actualización • Consulta 17 Mantenimientos de Archivos La actualización es la operación de eliminar o modificar los datos ya existentes, o bien introducir nuevos datos. En esencia, es la puesta al día de los datos del archivo. Las operaciones de actualización son: • Altas • Bajas • Modificaciones 18 Procesamiento de Archivos secuenciales (algoritmos) Los archivos secuenciales terminan con una marca final de archivo (FDA o EOF). Cuando se tenga que añadir registros a un archivo secuencial se añadirá al final, inmediatamente pordelante de las marcas fin de archivos. Es característico de este tipo de archivos el no poder ser abiertos para operaciones de lectyra/escritura simultáneamente 19 Archivos de Texto Los archivos de texto son un caso particular de archivos de organización secuencial. Un archivo de texto es una serie contínua de caraceres que se pueden leer uno tras otro. Un archivo de texto es un archivo en el que cada registro es del tipo de cadena de caracteres. El tratamiento de archivos de texto es elemental y en el caso de lenguajes como Pascal es posible detectar lectura de caracteres especiales como fin de línea o fin de archivo. 20 Procesamiento de Archivos directos (algoritmos) Se dice que un archivo es aleatorio o directo cuando cualquier registro es directamente accesible mediante la especificación de un índice, que da la posición del registro respectoal origen del fichero. Los archivos aleatorios o directos tienen una gran rapidez para el acceso comparados con los secuenciales; los registros son fáciles de refernciar – número de orden del registro- , lo que representa una gran facilidad de mantenimiento. 21 Procesamiento de Archivos Secuenciales Indexados Los archivos de organización secuencial indexada conmtienen tres áreas: un área de datos que agrupa a los registros, un área índice que contiene los niveles de índice y una zona de desbordamiento o excedentes para el caso de actualizaciones con adición de nuevos registros. 22 Procesamiento de Archivos Secuenciales Indexados Los registros han de ser grabados obligatoriamnete en orden secuencial ascendente por el contenido del campo clave y, simultáneamente a la grabación de los registros, el sistema crea los índices. En este tipo de organización se puede usar claves compuestas por una primaria y una o varias secundarias. 23 Preguntas de Repaso 1. Escribir un algoritmo que permita la creación e introducción de los primeros datos en un archivo secuencial PERSONAL, que deseamos almacene la información mediante registros que contenga los datos personales del empleado. 2. Supuesto que deseamos añadir nueva información al archivo PERSONAL, anteriormente creado, diseñar el algoritmo correspondiente. 24 Preguntas de Repaso 3. Diseñar un algoritmo que muestre por pantalla el contenido de todos los registros del archivo PERSONAL 4. Un librería almacena en un archivo secuencial la siguiente información sobre cada uno de sus libros: CODIGO, TITULO, AUTOR y PRECIO. El archivo está ordenado ascedentemente por los códigos de los libros – de tipo cadena-, que no pueden repetirse. Se precisa un algoritmo con las opciones: Insertar y Consulta (por el campo código) 25