5. ARCHIVOS Un archivo es un conjunto de datos sobre un mismo tema, tratado como una unidad de almacenamiento y organizado de forma estructurada para la búsqueda de un dato individual. Un archivo es un conjunto de registros relacionados entre si, que forman una entidad, que puede identificarse y manipularse de modo unitario. Registros y campos Un registro es una estructura de datos formada por yuxtaposición o unión de elementos que contienen información relativa a una misma entidad. Es un conjunto organizado de campos relacionados entre si por la información relativa que contienen. A los elementos que componen el registro se les denomina campos, siendo cada campo de un determinado tipo. Un campo es un dato o una mínima unidad de información definida por el usuario dentro del registro, independientemente de los demás. El campo puede estar dividido en subcampos. Para distinguir los registros uno de otro se determina por una posición relativa dentro del archivo, un número asociado o una clave. Una clave es un campo que contiene un dato especial y que identifica a cada registro. Tipos de registros Registro lógico. Cada uno de los componentes de un archivo que posee una estructura para almacenar información referente a un tema especial, es diseñado por el programador. Registro físico. Información que el sistema puede transmitir como una unidad, en una sola operación de entrada o salida. Los registros pueden ser de longitud fija o de longitud variable. En los registros de longitud fija los campos poseen la misma longitud cada uno en todos los registros, en general, el registro lógico es igual al registro físico. Los registros de longitud variable, presentan diferente número de campos, o los campos son de diferente longitud o la manipulación del sistema realiza diferencias entre el registro lógico y el físico. La vida de un archivo empieza cuando se crea y acaba cuando se borra. A lo largo de la vida de un archivo se pueden realizar sobre él determinadas operaciones de consulta, de actualización o de mantenimiento. Estas operaciones las realizan módulos específicos. Las operaciones que se realizan en archivos pueden ser sobre los registros o campos, como: Actualización La actualización en un archivo puede tratarse de modificación o borrado de los registros que contiene en un momento dado, o de inserción de nuevos registros. 72 Inserción de registros Inserción de un nuevo registro. De acuerdo a la estructura establecida se agregan nuevos registros conteniendo información. En general no tiene sentido agregar registros cuyos campos estén con información nula. Modificación de registro Se actualiza la información que posee alguno o todos los campos que posee cada uno de los registro. Borrado de Registros Eliminación de algún registro existente. Consulta de registros Proceso en la cual se accede a uno o varios registros para visualizar por impresora o por pantalla la información que posee en cada campo. Listado de registros Proceso en la cual se accede a todos los registros para visualizar por impresora o por pantalla cierta información que posee en campos. Existen también operaciones totales sobre archivos, como: Creación. Consiste en la grabación, por primera vez, del soporte de los registros de un determinado archivo. Apertura y cierre. Para empezar un proceso en un archivo debe ser abierto adecuadamente, igualmente para evitar deterioro de información que posee el archivo debe ser cerrado cuando ya no se va a utilizar. Borrado. Es la eliminación de todo el archivo, se inhibe definitivamente el acceso a él. Se destruye toda la información que había en el archivo. Ordenamiento o clasificación. Es lograr una nueva disposición de los registros en el archivo, de acuerdo a una secuencia determinada por el valor de uno o varios campos. Duplicación o copiado. Consiste en crear un archivo idéntico a otro existente, sin que se afecte el original, con la misma estructura lógica y física, al igual que la misma información. Los archivos pueden ser secuenciales, directos o indexados. Un archivo secuencial es aquel en la cual el registro que va siendo insertado se va posicionando en la siguiente posición disponible física. Un archivo directo es aquel en la cual los registros tienen un número que indica la posición que debe ocupar dentro del archivo. Un archivo indexado es aquel en la cual los registros que ingresan se posicionan dentro del archivo en el lugar correspondiente de acuerdo al valor que posee un campo, el cual es llamado clave. La clave en general es un valor demasiado grande, por tanto debe existir alguna función de hashing para hallar la Luis Carlos Torres Soler Estructuras de Datos posición que le corresponde. 73 Ejemplo. Se tienen dos archivos, Arch1 y Arch2, con N1 y N2 registros respectivamente; ordenados cada uno de ellos por el campo código, con información del mismo tipo pero totalmente diferente. Formar un Archivo Arch3, ordenado también por el campo código. ORDENARCH() sw1 <- 0 sw2 <- 0 lea Arch1 SI EOF TH sw1 <- 1 FSI lea Arch2 SI EOF TH sw2 <- 1 FSI CREARCH(Arch3) MQ (sw1 = 0 & sw2 = 0) SI (codigo.reg1 <= codigo.reg2) TH reg3 <- reg1 lea Arch1 SI EOF TH sw1 <- 1 FSI SN reg3 <- reg2 lea Arch2 SI EOF TH sw2 <- 1 FSI FSI FMQ MQ (sw1 = 0) reg3 <- reg1 lea Arch1 SI EOF TH sw1 <- 1 FSI FMQ MQ (sw2 = 0) reg3 <- reg2 lea Arch2 SI EOF TH sw2 <- 1 FSI FMQ Escribir Arch3 FINORDENARCH() Facultad de Ingeniería