jueves, 7 de julio de 2011

CARACTERISTICAS Y EJEMPLOS DE LAS DIFERENTES FORMAS DE ALMACENAR ESTRUCTURAS DE DATOS

ARCHIVOS SECUENCIALES.
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 secuancial puede ver los registros en un orden secuancial 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.
Archivos Secuenciales indexados
Un método popular para superar las desventajas de los archivos secuenciales es el del archivo secuencias indexado.
El archivo secuencial indexado mantiene las caracteristicas 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 indice provee una capacidad de búsqueda para llegar rapidamente 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 intregrado de forma que los registros del archivo de desbordamiento se ubican en la dirección de un puntero desde si registro precedente.
En la estructura secuencial indexada mas simple, se usa un solo nivel de indexacion. El indice, 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 busqueda continua en el archivo principal a partir de la posición indicada por el puntero.
Archivos Secuenciales
La forma mas 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 numero 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 ves) 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);
Type registro – maestro = Record

Número – empleado: 1…9999 

   Nombre – empleado: packed array [1..25] of char; 

   Departamento: packed array [1..5] of char; 

   … 

   end; 

registro – movimiento = record

tipo – movimiento: A,D; 

   detalle: packed array [1..81] of char; 

   end; 

var reporte:text;

movimiento: file of registro – movimiento; 

 maestro – ent, maestro-sal: file of registro – maestro; 

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 mas grande sea la necesidad de tener datos actuales en el archivo maestro, mayor deberá ser la frecuencia de actualizaciones.
Mientras mas 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 loa 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.

Archivos Indexados
Los archivos secuenciales indexados retienen la limitación del archivo secuencial: la eficacia en el procesamiento se limita al basado en un único campo del archivo. Cuando es necesario buscar un registro basándose en algún otro atributo distinto del campo clave ambas formas de archivo secuencial no son adecuadas. En algunas aplicaciones esta flexibilidad es deseable.
Para alcanzar esta flexibilidad, se necesita una estructura que utilice múltiples índices, uno para cada tipo de campo que pueda ser objeto de la búsqueda.
Se suelen utilizar dos tipos de índices. Uno indice exhaustivo contiene una entrada par cada registro del archivo principal. Otro índice parcial contendrá entradas a los registros donde este el campo de interés. Con registros de longitud variable, algunos registros no contendran todos los campos.
Los archivos indexados son muy utilizados en aplicaciones donde es critica la oportunidad de la informacion y donde los datos son rara vez procesados de forma exhaustiva.
Archivos Directos o de Dispersión
Los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Como en los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro. Sin embargo, aquí no hay concepto de ordenamiento secuencia

No hay comentarios:

Publicar un comentario