UNIDAD DE ESTUDIOS SUPERIORES DE HUIXQUILUCAN ORGANIZACIÓN DE DATOS ARCHIVOS; SECUENCIALES, DIRECTOS E INDUXIALES. LIDIA VILLAVICENCIO GOMEZ INTEGRANTES; MA.FERNANDA GUTIERREZ HERNANDEZ KAREN ITZEL DE LA ROSA CHICO JONATHAN AGUILAR RIZO ARCHIVO DIRECTO El archivo directo intenta explorar la capacidad, proporcionada por las unidades de disco y dispositivos similares, de lograr acceso a cualquier bloque de dirección conocida. Para lograr el direccionamiento directo se utiliza la llave del registro para localizarlo en el archivo. En la figura siguiente se muestra el diagrama correspondiente a acceso directo. Los más antiguos archivos de disco de acceso directo fueron utilizados por las maquinas electrónicas de contabilidad que utilizaban un número perforado en una tarjeta, para determinar en dónde debería archivarse el resto del contenido de la tarjeta. Los métodos modernos de acceso directo transforman la llave mediante un algoritmo de computación antes de utilizarla como dirección. El método de acceso directo es rápido, ya que se evitan las operaciones intermedias de archivo, pero obliga a que los datos se localicen dé acuerdo con un solo atributo llave. Puede compararse el acceso directo con un archivo secuencial indexado en el que el acceso se proporciona de acuerdo con un solo atributo; sin embargo, los registros dentro de los archivos directos no están eslabonados con sus registros predecesores o sucesores. Los métodos de archivo directo utilizan un cálculo para proporcionar la dirección de registro para una llave, mientras que las organizaciones de archivo indexado buscan en índices para determinar cuál es el registro correspondiente a una llave. Un archivo relativo (directo) consiste en una colección de registros de longitud fija almacenados uno al lado del otro en un dispositivo de almacenamiento de acceso directo (direct - access storage device, DASD). El almacenamiento de este tipo de archivos se restringe a los DASD, tales como discos y tambores, por que el acceso a registros se hace generalmente en orden aleatorio. Cada registro en un archivo de organización relativa se puede referir por medio de un número -entero- de dirección, el cual indica su distancia o desplazamiento desde el origen del archivo. Al primer registro en un archivo relativo se le asigna el valor 1, 2 al siguiente y así sucesivamente. De este modo, la dirección relativa de un valor entero que refleja su posición respecto al primer registro del archivo. El acceso aleatorio de un registro en un archivo de organización relativa se hace vía su número relativo de registro. Un archivo de organización relativa puede crearse con un programa en un lenguaje de alto nivel si es que el método de acceso del sistema operativo central es capaz de manejar esta organización, y si el compilador del lenguaje de interfase con tal método de acceso. ARCHIVO SECUENCIAL Archivo secuencial es la forma más simple de almacenar y recuperar registros en un archivo. En un archivo secuencial, se almacenan los registros uno tras otro. El primer registro almacenado se coloca al principio del archivo. El segundo se almacena inmediatamente después (no existen posiciones sin uso), el tercero después del segundo, etc. Este orden nunca cambia en la organización secuencial. Una característica de los archivos secuenciales es que todos los registros se almacenan por posición: de primer registro, segundo registro, etc. ARCHIVO SECUENCIAL Se refiere al procesamiento de los registros, no importa el orden en que se haga, para eso los registros están organizados en forma de una lista y recuperarlos y procesarlos uno por uno de principio a fin. Rudimentos de los archivos Secuenciales; dependiendo del dispositivo de almacenamiento utilizado el archivo se puede mostrar el usuario como si fuera un sistema secuencial. Al finalizar un archivo secuencial se denota con una marca de fin de archivo. (End end-of-file) El usuario de un archivo secuencial puede ver los registros en un orden secuencial simple. La única forma de recuperar registros es comenzar al principio y extraerlos en el orden contemplado. Cuestiones de programación; la manipulación de los archivos se hace en el contexto de la programación en un lenguaje por procedimientos de alto nivel. Estos lenguajes tienden a expresar la manipulación de archivos mediante subrutinas que se definen como parte del lenguaje formal o se incluyen como extensiones del lenguaje en una biblioteca estándar. La mayor parte de los lenguajes por procedimiento de alto nivel cuenta con características que ayudan a detectar la marca de fin de archivo. ARCHIVO INDEXADO En los computadores más modernos, los archivos siempre ubican un nombre y se ubican en un directorio. Cada nombre debe ser único en cada directorio, ya que este solamente acepta una sola ruta y no puede haber dos archivos con el mismo nombre. La identificación del archivo es la ruta y su nombre. Todas la computadoras estructuran los archivos en jerarquías llamadas carpetas, directorios o catálogos. Cuando la en la computadora se usa una carpeta, esta tiene su nombre de identificación y su ruta de especificación. Cuando los archivos secuénciales indexados tienen una limitación este se basa en el registro del archivo, de acuerdo al campo que se le haya asignado. Cuando se requiere de la busca de un registro y este no es especificado de acuerdo al nombre de la clave que se le haya determinado, por lo tanto la búsqueda terminara sin arrojar ningún resultado verídico ya que es imposible buscar dicha ruta con otra especificación. Por lo general los archivos son utilizados en aplicaciones en donde pocas veces se tiene la oportunidad de hacer una búsqueda o revisión completa de la información. Dichos datos se dice que son flexibles cuando la estructura que utiliza tiene varios índices, en donde cada uno de ellos es aplicado a cada campo de cada registro. Un método popular para superar las desventajas de los archivos secuenciales es el del archivo secuencias indexado. El archivo secuencial indexado mantiene las características básicas de los archivos secuenciales: los registros están organizados en una secuencia basada en un campo. Dos características se añaden: un índice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento (overflow). El índice provee una capacidad de búsqueda para llegar rápidamente a las proximidades de un registro deseado. El archivo de desbordamiento (overflow) es similar al archivo de registro usado en un archivo secuencial, pero esta integrado de forma que los registros del archivo de desbordamiento se ubican en la dirección de un puntero desde si registró precedente. En la estructura secuencial indexada más simple, se usa un solo nivel de indexación. El índice, en este caso, es un archivo secuencial simple. Cada registro del archivo indice tiene dos campos: un campo clave, que es el mismo que el campo clave del archivo principal y un puntero al archivo principal. Para encontrar un campo especifico se busca en el indice hasta encontrar el valor mayor de la clave que es igual o precede al valor deseado de la clave. La búsqueda continúa en el archivo principal a partir de la posición indicada por el puntero. Archivos Secuenciales La forma más común de estructura de archivo es el archivo secuencial. En este tipo de archivo, un formato fijo es usado para los registros. Todos los registros tienen el mismo tamaño, constan del mismo número de campos de tamaño fijo en un orden particular. Como se conocen la longitud y la posición de cada campo, solamente los valores de los campos se necesitan almacenarse; el nombre del campo y longitud de cada campo son atributos de la estructura de archivos. Un campo particular, generalmente el primero de cada registro se conoce como el campo clave. El campo clave identifica unívocamente al registro. así, los valores de la clave para registros diferentes son siempre diferentes. Los archivos secuenciales son típicamente utilizados en aplicaciones de proceso de lotes Y son óptimos para dichas aplicaciones si se procesan todos los registros. La organización secuencias de archivos es la única que es fácil de usar tanto en disco como en cinta. Para las aplicaciones interactivas que incluyen peticione s o actualizaciones de registros individuales, los archivos secuenciales ofrecen un rendimiento pobre. Normalmente un archivo secuencial se almacena en bloques, en un orden secuencial simple de los registros. La organización física del archivo en una cinta o disco se corresponde exactamente con la ubicación lógica del archivo. En este caso, el procedimiento para ubicar los nuevos registros en un archivo de pila separado, llamado archivo de registro (log file) o archivo de transacciones. Periódicamente, se realiza una actualización por lotes que mezcla el archivo de registro con el archivo maestro para producir un nuevo archivo en secuencia correcta de claves. Organización de Archivos Secuenciales. La manera básica de organizar un conjunto de registros, que forman un archivo, es utilizando una organización secuencial. En un archivo organizado secuencialmente, los registros quedan grabados consecutivamente cuando el archivo se usa como entrada. Un archivo organizado secuencialmente es un conjunto de registros lógicamente relacionados cuya secuencia de acceso está determinada por su ordenamiento. Los registros deben ser grabados consecutivamente cuando el archivo es creado, y deben ser leídos de la misma manera cuando es usado posteriormente como entrada. Los requerimientos de proceso determinan el orden adecuado para la orden de los registros de un archivo secuencial. Por ejemplo para generar un directorio telefónico el archivo que contenga tal información deberá ordenarse con base al apellido y nombre de la persona, porque así se necesita el reporte de los datos. Sin embargo, si se requiere tener un directorio telefónico ordenado de acuerdo a la zona postal o por su dirección, deberá de existir dos archivos, que podrán contener la misma información pero ordenada de forma diferente, por lo que los sistemas de información que se construyen utilizando esta organización, tienden a duplicar registros. Esto se podría decir que es una desventaja de la organización de archivos secuenciales. Los sistemas de información que se construyen utilizando archivos secuenciales tienden a duplicar registros por los archivos que estén en orden diferente. Por lo regular no todos los archivos se conservan; muchos se consideran como temporales y se borran después de que se han utilizado como entrada al programa de aplicación y la información contendida se ha explotado para un propósito particular. Debido a que los registros de un archivo secuencialmente deben de accesarse constantemente se utilizan con mayor frecuencia en procesamiento por lotes (que pueden tomar varios registros a la vez) que en procesamiento interactivo. El desempeño de los archivos secuenciales depende de… Factor de bloqueo Longitud del archivo Selección de la llave. Actualización de archivos secuenciales. Un archivo maestro representa un panorama estático de algún aspecto de una empresa. Sin embargo muchos de los aspectos de dicha organización no son estáticos, sino que continuamente ocurren cambios internos y/o externos que afectan directa o indirectamente a la empresa, como puede ser la contratación de personal, despidos, los ajustes de precios, etc. Para que un archivo pueda reflejar un estado actual lo más confiable posible, nuestro archivo debe ser actualizado. Ventajas y Desventajas La ventaja más importante de la técnica de organización secuencial de archivos es la capacidad de acceso al “siguiente” registro rápidamente: Mientras que el patrón de acceso a un archivo secuencial se conforme al ordenamiento de registros en el archivo, los tiempos de acceso serán muy buenos. Sin embargo, si el patrón de acceso al programa no se conforma al patrón de ordenamiento de los registros, entonces la eficiencia del programa puede ser terrible. Otra ventaja de los archivos de organización secuencial es que son muy sencillos de usar y aplicar. Almacenamiento De Archivos Secuenciales. Los archivos secuenciales pueden almacenarse en dispositivos de acceso serial o directo. Con frecuencia los dispositivos de acceso serial son considerablemente menos caros que los dispositivos de acceso directo en un sistema de cómputo, pero de hecho, los dispositivos de almacenamiento de acceso directo en una computadora siempre proporcionan mayor capacidad de almacenamiento y acceso más rápido que los dispositivos de acceso serial. Declaración De Archivos Secuenciales. Casi todos los lenguajes proporcionan facilidades para declarar archivos secuenciales a continuación te presentamos un ejemplo en Pascal que bien puede ser aplicado a Delphi. Program actualiza – maestro (reporte, movimientos, maestro – ent, maestro - salida); Creación de un archivo secuencial. La creación de un archivo secuencial incluye la escritura de registros en una secuencia deseada dentro del medio de almacenamiento. La creación de un archivo secuencial de transacciones incluye la tarea de recolectar datos, convertir los datos a una forma legible para la máquina, editar los datos, convertir los movimientos rechazados y ordenar los datos editados. Archivos de Reporte. La creación de un archivo de reporte sigue el siguiente algoritmo: Recuperación De Información De Archivos Secuenciales. Los registros deben ser recuperados de un archivo secuencial en orden consecutivo. El orden en el cual los registros fueron grabados en el archivo, determina el orden en el cual los registros pueden recuperarse. De hecho, en realidad se hace todo lo contrario: el orden deseado para recuperar los registros debe dictar el orden en el cual deben grabarse. La recuperación de información de un archivo secuencial puede clasificarse, ya sea en generadora de reportes o para hacer consultas, dependiendo del volumen de información producida. Los archivos secuenciales son frecuentemente accesados en el modo de generación de reportes. Debido a que los registros deben ser accesados consecutivamente, es bastante eficiente accesar cada registro del archivo. ¿Con que frecuencia es necesaria la actualización? La frecuencia con la que debe ser actualizado el archivo depende de los siguientes factores. • Velocidad de cambio de los datos. • Tamaños del archivo • Urgencia de tener datos actualizados • Razón de actividad del archivo La razón de actividad del archivo es el número de registros del archivo maestro afectados por un lote de transacciones, dividido por el número total de registros en el archivo maestro. Mientras menor sea el tiempo entre dos actualizaciones de un archivo maestro, mayor será la razón de actividad del archivo. Entre menos actualizaciones haya, la edad promedio de los datos existentes en el archivo maestro aumentan. Mientras más grande sea la necesidad de tener datos actuales en el archivo maestro, mayor deberá ser la frecuencia de actualizaciones. Mientras más frecuenté deba ser actualizado el archivo maestro, mayor será el costo de procesamiento. Generación de archivos. Una desventaja de los archivos secuenciales es que en el proceso de actualización, la mayoría de los archivos secuenciales no pueden ser actualizados, más bien habrá que reescribirlos totalmente. Para llevar a cabo este proceso existirá un archivo maestro anterior y otro actual. Estas versiones sucesivas del archivo son normalmente conocidas como generaciones de archivo. Si el archivo maestro viejo perteneció a la generación 1, entonces el archivo nuevo del día pertenecerá a la generación 2, y así sucesivamente. El tener varias generaciones del archivo se hace con el objetivo de obtener reportes históricos que podrían ayudar en un momento dado para la toma de decisiones de una empresa. Tipos de actualización Existen 3 tipos de actualización básicos que pueden ser aplicados a los archivos maestros: 1.- Inserción de un nuevo registro 2.- supresión de un registro existente 3.- Modificación de un registro existente Manipulación de errores Existen muchos tipos de errores que pueden ser encontrados en la actualización de archivos, como los siguientes: 1.- Inserción de un archivo 2.- Supresión de un registro que no existe 3.- Modificación de un registro que no existe La acción adecuada que deba realizarse cuando estos errores ocurran depende de la aplicación pero no se debe permitir que los errores infecten al archivo. Generalmente un programa de aplicación produce un reporte de errores, que identifica cada transacción que no fue procesada y la razón por la cual no fue procesada. Desempeño De Archivos Secuenciales. El desempeño de los archivos secuenciales está determinado por tres factores principales: El factor de bloqueo, la longitud del archivo y la selección de la llave. Factor de Bloqueo Los datos leídos o grabados en una cinta magnética, en grupos de caracteres, son llamados bloques. Un bloque es el grupo más pequeño de datos que se pueden transferir entre la memoria secundaria y la memoria principal en un solo acceso. Un bloque puede contener uno o más registros. Un bloque es algunas veces mencionado como un registro físico. El factor de bloqueo se refiere al número de registros por bloque. Mientras mayor sea el factor de bloqueo se mejora más el uso del dispositivo de almacenamiento debido a que entre cada bloque existe un espacio. Los factores limitantes para determinar la amplitud del bloque son la disponibilidad de espacio de buffer en la memoria principal, los parámetros del sistema operativo (los cuales pueden limitar el tamaño del bloque) y los algoritmos locales de carga (los cuales negocian la utilización de memoria principal contra el acceso a los dispositivos de almacenamiento secundarios). Si el archivo secuencial se almacena en un dispositivo de acceso directo, es recomendable que el tamaño del bloque coincida con el tamaño del sector (si se utiliza un direccionamiento por sector) o con el tamaño de la pista. Longitud Del Archivo Secuencial. La longitud del archivo se determina por el volumen de los datos y por el diseño del registro, es decir el problema de determinar qué campos están en qué registros y en que archivos. Una norma es separar los campos de los registros de acuerdo con la frecuencia en que son accesados, de esta manera, separamos los datos de un registro completo entre un archivo activo y otro relativamente inactivo para reducir el tiempo de procesamiento sobre ese archivo. Selección de la llave. La llave de un archivo determina el orden en el cual son accesados los registros. Los campos para formar la llave del archivo secuencial son determinados por los requisitos de la información. Resumen de Archivos Secuenciales. Un archivo organizado secuencialmente es un conjunto de registros lógicamente relacionados cuya secuencia de acceso está determinada por su ordenamiento. Los registros deben ser grabados consecutivamente cuando el archivo es creado, y deben ser leídos consecutivamente cuando el archivo es usado posteriormente como entrada. Un archivo secuencial opera de la misma manera de cómo lo hace una cola larga: el primer registro físico es el primer registro escrito. Debido a que los registros deben ser accesados consecutivamente, los archivos de organización secuencial son usados más frecuentemente en procesamientos por lotes que en procesamientos interactivos. La principal ventaja de la organización secuencial es la capacidad para accesar rápidamente al “siguiente” registro. El proceso de actualización de un archivo maestro secuencial es importante. La frecuencia con la cual el archivo maestro debe ser actualizado, depende de algunos factores, incluyendo volatilidad de los datos, tamaño del archivo, urgencia de la necesidad de tener datos actualizados y a razón de actividad del archivo. El concepto de generación de archivos fue introducido y se discutieron el número de generación absoluta y relativa. Los tipos básicos de actualización del archivo maestro son la inserción de nuevos registros, la supresión de registros viejos y la modificación de registros existentes. La lógica necesaria para aplicar estas actualizaciones fue explicada. Los elementos fundamentales para el buen desempeño de archivos secuenciales son: el factor de bloqueo, la longitud del archivo (afectado por el diseño del registro) y la elección de la llave. Los archivos de organización secuencial son sencillos y pueden ser almacenados en un medio económico. Son muy adecuados para las aplicaciones que requieren sólo acceso secuencial a los datos contenidos. No son adecuados para aplicaciones que requieren acceso directo a algunos registros particulares de la colección. No proporcionan apoyo para aplicaciones interactivas. No obstante, continuarán siendo importantes. ARCHIVO INDEXADO En los computadores más modernos, los archivos siempre ubican un nombre y se ubican en un directorio. Cada nombre debe ser único en cada directorio, ya que este solamente acepta una sola ruta y no puede haber dos archivos con el mismo nombre. La identificación del archivo es la ruta y su nombre. Todas la computadoras estructuran los archivos en jerarquías llamadas carpetas, directorios o catálogos. Cuando la en la computadora se usa una carpeta, esta tiene su nombre de identificación y su ruta de especificación. Cuando los archivos secuénciales indexados tienen una limitación este se basa en el registro del archivo, de acuerdo al campo que se le haya asignado. Cuando se requiere de la busca de un registro y este no es especificado de acuerdo al nombre de la clave que se le haya determinado, por lo tanto la búsqueda terminara sin arrojar ningún resultado verídico ya que es imposible buscar dicha ruta con otra especificación. Por lo general los archivos son utilizados en aplicaciones en donde pocas veces se tiene la oportunidad de hacer una búsqueda o revisión completa de la información. Dichos datos se dice que son flexibles cuando la estructura que utiliza tiene varios índices, en donde cada uno de ellos es aplicado a cada campo de cada registro.