


































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Apuntes de Metodología y Tecnología de la Programación sobre los Datos, Conceptos y definiciones, Fichero, Tipos de fichero, Estructura de registros, Clasificación de registros, Registros de longitud fija.
Tipo: Apuntes
1 / 42
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!



































Los datos con los que trabajamos normalmente en informática son procesados y manipulados de forma directa en lo que denominamos normalmente como Memoria Principal. Esto repercute en una doble limitación a la hora de tratar la información correspondiente : Por ser limitada la memoria principal, esto implica que la capacidad de almacenamiento queda también limitada o restringida a la capacidad propia de cada memoria principal que puede ser de diferente tamaño según el ordenador y sus características. Por ello deberemos de recurrir a otros dispositivos de almacenamiento de datos o de almacenamiento masivo de información, como la denominada Memoria Auxiliar. Todos los datos que quedan almacenados en la memoria principal, podemos decir que tienen un corto o breve período de vida que variará siempre en función del tiempo que dure o tarde en ejecutarse el programa en cuestión. Una vez que este programa finaliza su ejecución, sus datos correspondientes se pierden de forma irremediable y para siempre si antes no se han almacenado en un dispositivo o periférico de tipo externo como podría ser por ejemplo un disco de almacenamiento. El uso de ficheros nos va a servir de gran ayuda a la hora de estructurar adecuadamente toda la información, y además nos facilitará el manejo de grandes volúmenes de datos. Los ficheros nos permiten acceder a esa creciente avalancha de información de una forma rápida. Cualquier aplicación implica la generación y uso de una determinada información. Con algunas excepciones la entrada a la aplicación se hace utilizando archivos y casi en todas las aplicaciones, la salida se guarda en archivos para almacenamiento a largo plazo y para posteriores accesos por parte del usuario y de otros programas. TEMA 2
2. CONCEPTOS Y DEFINICIONES FICHERO Un fichero es un conjunto de datos estructurados que pueden estar almacenados en un soporte de datos de forma que puedan ser tratados o utilizados de forma individual o global. Cada fichero se tiene que identificar con un nombre. Los elementos que forman un fichero se llaman registros y dichos registros se definen como la unidad mínima de información completa de un fichero. Existen dos modelos de ficheros: Fichero Lógico : Los crea el programador agrupando un conjunto de datos con características comunes (nombres, apellidos, dirección, teléfono... etc. ). Fichero Físico: Es una determinada cantidad de información que el sistema operativo es capaz de tratar como una sola unidad.
Permanentes o fijos: Constantes: Contienen información fija y necesaria para el óptimo funcionamiento y rendimiento de la aplicación e información con un bajo índice de variación en el tiempo. Por ejemplo un fichero de códigos postales en el cual se pueden relacionar códigos postales con una serie de diversas poblaciones y distritos. Contienen tablas y funciones. Históricos : Contienen información acumulada a lo largo del tiempo sobre las actualizaciones sufridas en los ficheros maestros y constantes. Los hacen los usuarios para las estadísticas. Por ejemplo el inventario al final de año de las existencias de un almacén. Maestros : Ficheros maestros llamados también ficheros de situación. Están encargados de mantener de forma constante y actualizados los campos cuya información es variable. Estos ficheros se modifican constantemente. Por ejemplo un fichero de inventario con información sobre la cantidad de piezas existente en un almacén. No permanentes o temporales: Se borran y actualizan a los ficheros fijos maestros. Fichero de movimientos: Este tipo de ficheros suele contener la información necesaria para la actualización de los ficheros maestros. Contienen las últimas modificaciones que hay que añadir al fichero maestro. La información se obtiene de los resultados obtenidos en operaciones realizadas y que posteriormente será utilizada para actualizar los campos que tienen en común el fichero maestro y el fichero de movimiento. La durabilidad o período de vida de este tipo de ficheros es muy corto, debido a que su función o utilidad finaliza al efectuarse la modificación o actualización de dichos datos (Campos) en el fichero maestro. Una vez realizada dicha operación el fichero de movimientos puede ser destruido o mantenido durante un tiempo limitado. Por ejemplo los datos de una cuenta bancaria. Ficheros de maniobra o transitorios: Son ficheros auxiliares creados durante la ejecución de programas o aplicaciones. El fin de estos ficheros es el de obtener cierta información que posteriormente será procesada para conseguir unos resultados esperados o calculados. Su período de vida es aún mas corto que el de los ficheros de movimiento o transición, pues son destruidos antes de que el programa o la aplicación correspondiente finalice su ejecución y el usuario no puede verlos. Por ejemplo un fichero auxiliar que contiene la clasificación de un fichero de inventario para hacer un listado estadístico anual. Finalizado el proceso de listado, es destruido.
Existen dos tipos de registros: Registro lógico: Son estructuras de datos homogéneas que hacen referencia a una misma entidad o cosa. Esta estructura está dividida a su vez en unos elementos más pequeños a los cuales denominaremos Campos, estos podrán ser del mismo o diferente tipo. Podríamos considerar al registro como una unidad de tratamiento incluida dentro de un fichero. Registro físico: Un registro físico al que podemos llamar también bloque , es la cantidad de información que el sistema operativo puede transferir como unidad al realizar una operación de entrada y salida entre la memoria principal del ordenador y los periféricos o dispositivos de almacenamiento. El tamaño de un bloque o registro físico dependerá o variará en función de las características del ordenador. DEFINICIONES : Campo : Llamaremos campo a cada uno de los elementos que constituyen un registro lógico, considerándolo como una unidad de tratamiento independiente dentro del mismo registro. Cada campo se caracteriza y se diferencia de los demás dentro de un registro por: El tipo de dato que tiene asociado (numérico, alfanumérico, lógico, de tipo fecha, de campo memo,... etc. ). El identificador o nombre a través del cual podemos referenciarle y acceder a su contenido (nombre, apellidos, dirección, fecha de nacimiento,... etc. ). El tamaño del dato (20 bytes, 45 bytes,... etc.). Subcampo : Los campos de un registro, con frecuencia, se pueden subdividir en unidades de tratamiento con las mismas características que un campo. De esta forma podemos establecer cierta jerarquía entre los datos almacenados dentro de un fichero y más concretamente dentro de cada registro. Esta jerarquía deberá tenerse en cuenta a la hora de tratar o procesar la información que tenemos almacenada. Dentro de un subcampo puede haber mas subcampos. Campo clave: Para poder diferenciar a un registro de otro dentro de un fichero, se tiene que recurrir a una información que sea única. Esta información sólo nos la puede ofrecer el campo clave. Este campo solo se puede crear con independencia del resto de la información (campos) del registro o por defecto se puede utilizar un campo de los ya existentes y disponibles en la estructura de dicho registro. El objetivo es poder realizar a traves de él operaciones de búsqueda y clasificación. La definición de un campo clave en un fichero no es obligatoria, es decir, se puede carecer de ella o puede estar formada por varias definiciones de campos claves, en cuyo caso se establecerán diferentes categorías entre ellas, dando lugar a lo que denominaremos como clave principal y claves secundarias. Bloqueo de registro o registro bloqueado:
Un registro puede constar de un número variable de registros lógicos, por tanto, suponiendo que utilizáramos como soporte de almacenamiento el disco, podríamos transferir varios registros lógicos de la memoria al disco y del disco a la memoria en una sola operación de entrada y salida. Este fenómeno recibe el nombre de bloqueo y el registro físico así formado se llama bloque. Registro expandido: Es justamente el concepto contrario del registro bloqueado, cuando el registro lógico ocupa varios bloques se le da la denominación de registro expandido. Factor de bloqueo: Con factor de bloqueo hacemos alusión al conjunto o número de registros lógicos que pueden entrar o estar contenidos en un bloque o registro físico. Ejemplo : 210 97 Tamaño del registro lógico. 16 2 Factor de bloqueo. Resto : Nº de bytes que sobran. Tamaño del registro físico. REGISTRO LÓGICO NOMBRE APELLIDOS DIRECCIÓN EDAD Tamaño : 97 bytes REGISTRO FÍSICO O BLOQUE DE 210 Bytes REGISTRO LÓGICO 1 REGISTRO LÓGICO 2? Factor de bloqueo=2 Espacio sobrante=16 bytes Estructura de registros : FICHERO 1 2 3 4 5 6 7 8 9 10 11 12 REGISTRO 7 COD_ALUMNO NOMBRE APELLIDOS FECHA_NAC CAMPO FECHA_NAC DIA MES AÑO
campo 3=10 campo 3= Poniendo al principio del registro el tamaño de los tres campos, será más rápido que el anterior porque mira los tres campos de una sola vez. Cuando se tiene un número de campos igual en ambos registros, pero estos son de distinta longitud de campo en el mismo o diferentes registros.
Ejemplo : REGISTRO Nº 1: CAMPO CAMPO CAMPO CAMPO REGISTRO Nº 2: CAMPO CAMPO CAMPO CAMPO
Registro 1 A B C D E F G H I J K L M Registro 2 A B C D E F G H I J K L M Igual número de campos por registro, y distinta longitud de cada campo del mismo registro e idéntica longitud del mismo campo en distintos registros. Registro 1 A B C D E F G Registro 2 A B C D E F G Igual número de campos por registro, y distinta longitud de campos en el mismo y diferentes registros. Registro 1 A B C D .................................. N Registro 2 A B C D ........................ N Registro 3 A B C D .................................. N Diferente número de campos por registro y distinta longitud de campo en el mismo y diferentes registros. Registro 1 A B C D E Registro 2 A B C D Registro 3 A B C D E F G H 4.3 REGISTROS DE LONGITUD VARIABLE : El tamaño total del registro es variable ( longitud indefinida o variable). En este tipo de registros es necesario establecer desde el programa un tratamiento para diferenciar el comienzo y fin de cada campo y cada registro. Existen tres tipos o formas de diseño : 1º) Ponemos al principio la longitud del registro y en cada campo la longitud del campo. Ejemplo : 89 12 CAMPO 38 CAMPO 20 CAMPO 19 CAMPO Tamaño total del registro Tamaño del campo 2º) Pondremos señales de final de campo y de registro. Ejemplo : CAMPO + CAMPO + CAMPO + CAMPO * Señal de final de campo Señal de final de registro 3º) Definiremos tipos.
Cuando el fichero se acaba, el sistema detecta que lo que ha leído no es un registro, a esto se le llama marca de fin de fichero. Un fichero de entrada es aquel que se utiliza para hacer operaciones de lectura, el flujo de información va desde el fichero a la memoria central. ESCRITURA O GRABACIÓN : Esta opción implica movimiento de información desde la memoria central hacia el fichero en cuestión. La información comprende al delas variables cuyos nombres coincidan con los campos definidos para un fichero El fichero de salida es aquel que recibe la información de la memoria central y la escribe es sus registros. Utilizando la lectura y escritura de registros podemos realizar una serie de operaciones, que son las siguientes: Altas : Consiste en la adición o inserción de uno o más registros en el fichero. Esta operación sólo será posible si el fichero ya existe. Bajas : Consiste en eliminar uno o varios registros del fichero. Esta operación requiere un primer proceso de lectura para la localización del registro que se pretende borrar. Modificaciones : Consiste en realizar un cambio total o parcial de uno o varios campos de los registros de un fichero. Esta operación requiere un primer proceso de lectura para la localización del registro que se desea modificar y un segundo proceso de escritura para la actualización de todo o parte del registro. Consultas : Esta operación nos permite acceder a uno o varios registros con la intención de visualizar el contenido total o parcial de sus campos en pantalla o impresora en forma de listados ordenados siguiendo ciertos criterios de clasificación establecidos por el usuario.
a) Consulta en un fichero secuencial desordenado : Búsqueda de un registro : INICIO Abrir Fich de lectura Leer valor sw= Mientras no FF (Fich) y sw=0 hacer leer R_Fich de Fich Si campo_n = valor entonces sw= Finsi Finmientras Si sw=1 entonces escribir R_Fich sino escribir No encontrado Finsi Cerrar Fich Fin b) Consulta en un fichero secuencial ordenado : Búsqueda de un registro : INICIO Abrir Fich de lectura Leer valor sw = 0 Mientras no FF (Fich) hacer
Finsi Finsi Finmientras Si Encontrado = F Escribir No encontrado Finsi Cerrar Fich Fin Actualización : ( Altas, Bajas, y modificaciones )
resto_destino resto_mov Abrir Fich_origen de lectura Abrir Fich_mov de lectura Abrir Fich_destino de escritura Abrir Fich_errores de escritura Fin_origen = 0 Fin_mov = 0 Procedimiento Leer_origen Procedimiento Leer_mov Mientras Fin_origen = 0 y Fin_mov = 0 hacer Si clave_origen < clave_mov entonces Procedimiento Copia Procedimiento Leer_origen Sino Si clave_origen > clave_mov entonces Procedimiento Alta Procedimiento Leer_mov Sino Procedimiento Baja_modif Procedimiento Leer_origen Procedimiento Leer_mov Finsi Finsi Finmientras Mientras Fin_origen = 0 hacer
Sino Leer registro_origen de Fich_origen Finsi Fin Procedimiento Leer_mov : INICIO Si FF ( Fich_mov ) entonces Fin_mov = 0 Sino Leer registro_mov de Fich_mov Finsi Fin Procedimiento Baja_Modif : INICIO Según_sea Tipo−mov B´ : ** No se copiaM´ : ** Se modifican los campos deseados Escribir registro_destino en Fich_destino Otros : registro_error = registro_mov Escribir registro_error en Fich_error registro_destino = registro_orgen Escribir registro_destino en Fich_destino Finsegún_sea
Finsegunsea FIN Procedimiento Copia : INICIO registro_destino = registro_origen Escribir registro_destino en Fich_destino FIN
vale_clave = verif_clave ( vclave ) Cerrar fichero Si vale_clave = F entonces Escribir No existe clave para baja Sino Escribir registro Abrir Fichero para leer Abrir Temp para escribir Mientras no FF ( Fichero ) hacer Leer registro de Fichero Si clave_registro <> vclave entonces Escribir en Temp Finsi Finmientras Borrar_Fichero ( Fichero ) Renombrar_Fichero ( Temp, Fichero ) Finsi Fin Procedimiento Modificación : INICIO Escribir Introducir clave para modificar registro Leer vclave vale_clave = veirf_clave ( vclave ) Si vale_clave = F entonces Escribir No existe clave para modificar sino
Escribir registro ** Leer valores de campos del registro que se va a modificar. Escribir registro de Fichero Finsi Fin Procedimiento Verificar_clave ( clave) INICIO Abrir Fichero para lectura y escritura sw = 0 Mientras no FF ( Fichero ) y sw = 0 hacer Leer registro de Fichero Si clave_registro = clave sw = 1 Finsi Finmientras Si sw = 1 entonces retorno V Sino retorno F Finsi Fin FICHEROS SECUENCIALES INDEXADOS :