COMO CREAR ARCHIVOS

3.- ARCHIVO SECUENCIAL INDEXADO

Los registros se organizan en una secuencia basada en un campo clave presentando dos características, un índice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento. El índice proporciona una capacidad de búsqueda para llagar rápidamente al registro deseado y el archivo de desbordamiento es similar al archivo de registros usado en un archivo secuencial, pero está integrado de forma que los archivos de desbordamiento se ubiquen siguiendo un puntero desde su registro predecesor.

La estructura más simple tiene como índice un archivo secuencial simple, cada registro del archivo índice tiene dos campos, un campo clave igual al del archivo principal y un puntero al archivo principal. Para encontrar un campo especifico se busca en el índice hasta encontrar el valor mayor de la clave que es iguale o precede al valor deseado de la clave, la búsqueda continua en el archivo principal a partir de la posición que indique el puntero.

Cada registro del archivo principal tiene un campo adicional que es un puntero al archivo de desbordamiento. Cuando se inserta un nuevo registro al archivo, también se añade al archivo de desbordamiento. El registro del archivo principal que precede inmediatamente al nuevo registro según la secuencia lógica se actualiza con un puntero del registro nuevo en el archivo de desbordamiento, si el registro inmediatamente anterior está también en el archivo de desbordamiento se actualizará el puntero en el registro.

Para procesar secuencialmente un archivo completo los registros del archivo principal se procesarán en secuencia hasta encontrar un puntero al archivo de desbordamiento, el acceso continúa en el archivo de desbordamiento hasta que encuentra un puntero nulo, entonces renueva el acceso donde se abandonó en el archivo principal.

Las características más relevantes de un archivo indexado, son las siguientes:



a) El diseño del registro tiene que tener un campo, o combinación de campos, que permita identificar cada registro de forma única, es decir, que no pueda haber dos registros que tengan la misma información en él. A este campo se le llama campo clave y es el que va a servir de índice. Un mismo fichero puede tener mas de un campo clave, pero al menos uno de ellos no admitirá valores duplicados y se le llama clave primaria. A las restantes se les llama claves alternativas.



b) Permiten utilizar el modo de acceso secuencial y el modo de acceso directo para leer la información guardada en sus registros.

El modo de acceso directo se hace conociendo el contenido del campo clave del registro que queremos localizar. Con esa información el sistema operativo puede consultar el índice y conocer la posición del registro dentro del fichero.



En el modo de acceso secuencial los registros son leídos ordenados por el contenido del campo clave, independientemente del orden en que se fueron grabando (El orden lógico no es igual al orden físico), debido a que el acceso a los datos se hace a través del índice, que para hacer más fácil la búsqueda de los registros permanece siempre ordenado por el campo clave.



c) Solamente se puede grabar en un soporte direccionable. Ej.: disco magnético. Si esto no fuera así no podría emplear el acceso directo.



VENTAJAS

1. Permite el acceso secuencial.

2. Permite el acceso directo a los registros.

3. Se pueden actualizar los registros en el mismo fichero, sin necesidad de crear un fichero nuevo de copia en el proceso de actualización.



DEVENTAJAS



1. Ocupa más espacio en el disco que los ficheros secuénciales, debido al uso del área de índices.

2. Tiene tendencia a que aumente el tiempo medio de acceso a los registros, cuando se producen muchas altas nuevas con claves que hay que intercalar entre las existentes, ya que aumenta el área de overflow.

3. Solo se puede utilizar soportes direccionables.

4. Obliga a una inversión económica mayor, por la necesidad de programas y, a veces, hardware más sofisticado.

3.1 ESTRUCTURA DE LA ORGANIZACIÓN SECUENCIAL INDEXADO.



Este tipo de organización se utiliza cuando existe la necesidad tanto de acceder a los registros secuencialmente, por algún valor de llave, como de acceder los individualmente. Un archivo secuencial indexado puede tener acceso porque manejan un archivo secuencial y un archivo relativo o de acceso directo.



El tipo de sus registros contiene un campo clave identificador.

Los registros están situados en un soporte direccionable por el orden de los valores indicados por la clave.

Un archivo secuencial indexado contiene



un archivo índice y un archivo de datos. Es necesario que los registros contengan un campo clave para identificarlos y que estén almacenados en un soporte direccionable según el orden que indique dicha clave. El archivo índice agilizar la búsqueda dentro del fichero. El fichero de datos se organiza, lógicamente, en bloques o páginas de varios registros.



. Cada registro del fichero índice almacena:



• El valor del campo clave del último registro de un bloque. Los bloques están constituidos por un número fijo de registros consecutivos.



• La dirección del primer registro de dicho bloque. Puede haber un área de desbordamiento. Ocupa más espacio en disco pero es más rápido. Puede almacenarse el fichero índice en memoria. Habría que calcularlo al iniciar una sesión de trabajo.



En este tipo de organización de archivos se dispone de una tabla en que aparecen ordenados secuencialmente los números de la clave del archivo y asociados a cada uno de ellos de da la dirección del registro correspondiente.



AREAS DEL ARCHIVO SECUENCIAL INDEXADO



Área de Datos: Contiene los registros secuencial, esta ordenados alfabéticamente o alfanuméricamente y no deja espacios.



Área de índice: Los niveles de índice están contenidos en una tabla, si existieran varios índices enlazados se denomina nivel de indexación



Área de Desbordamiento o Excedentes: Esta área es utilizada para realizar actualizaciones si ello es necesario



FICHEROS CON ORGANIZACIÓN SECUENCIAL INDEXADA.



Un archivo con organización secuencial indexada está formado por:



AREA DE DATOS: Es el área en la que se escriben los registros cuando el archivo es creado el en directorio del fichero.



Los ficheros con organización secuencial indexada se graban en un soporte de almacenamiento directo, en secuencia ascendente, de acuerdo con los valores de la clave y en páginas o bloques de longitud fija.



El AREA DE INDICES: es creada por el sistema al mismo tiempo que se van almacenando los datos. Contiene una tabla que asocia las claves con las direcciones de los registros en el área de datos.



Cada entrada del área de índices está formada por el valor más alto de la clave de cada grupo de registros y un puntero con la dirección del primer registro del grupo.



Un AREA DE EXCEDENTES: donde se graban los registros que no tienen sitio en el área de datos. Los nuevos registros se insertan y quedan enlazados entre sí mediante punteros conservando el orden lógico que marca la clave o índice principal.



Del tratamiento de los índices y punteros se encarga el sistema operativo por lo que no va a crear problemas al usuario cuando maneja este tipo de ficheros. El usuario sabe lo que sucede cuando solicita una consulta de un registro, pero no sabe cómo se realiza internamente esa consulta.



3.2 REPRESENTACIÓN DE INDICES



El campo clave-secundaria sobre el cual se crea un índice se llama clave inversa o clave indexada. Se dice entonces que el campo es inverso para la recuperacion por clave secundaria. La figura muestra un archivo de estudiantes y sus índices asociados: un índice valor clave y un nombre clave. Las dos claves inversas son CLASS y AGE. Cada entrada del índice valor clave consiste en un valor de clave secundaria y en un conjunto de señaladadores a los registros de datos. Un señalador



Puede contener en una dirección relativa, una dirección física o una clave principal de los registros objetos.



DIRECCION RELATIVA El campo señalador en el índice valor clave de la fig. Contiene direcciones relativas. Para ejemplificar, la primera entrada del índice indica que los registros uno, cuatro y cinco contienen el valor clave 541 en el campo CLASS. SEÑALADOR SIMBOLICO Un señalador simbólico es un identificador de registros, pero no una dirección de registro. Por ejemplo, un valor de clave primaria puede usarse como señalador simbólico porque identifica de manera única a un registro del archivo. Si se escoge al señalador simbólico como identificador de registro, la primera entrada del índice en el índice valor clave de la fig. Contendría: Valor de clave secundaria señalador de registro • 541 150, 164,172 los valores 150, 164 y 172 son los valores de las claves primarias (S-ID) de los registros 1,4 y 5, respectivamente. Estos valores de clave-primaria pueden traducirse a su dirección de registro correspondiente por medio de distribución o búsqueda de índice (Hamhung) dependiendo de la organización básica de archivo subyacente, es decir, directa o secuencial indexada.

DIRECCION FISICA El campo señalador puede contener direcciones físicas, las cuales pueden usarse para acezar registros directamente sin necesidad de traducir la dirección, como fue necesario en los casos 1) y 2). Sin embargo, la mayor desventaja del uso de las direcciones reales, es que los valores del señalador dependen entonces del dispositivo. Por ejemplo, hay que recrear un índice si los datos del archivo emigran de un disco a otro. Cada entrada en el índice nombre clave en la fig. Consiste en un nombre clave-inversa y un señalador hacia la primera entrada del índice valor-clave. Los distintos índices en una organización inversa juntos forman un directorio. ¿Cómo responde un sistema inverso de archivos a las consultas sobre las claves secundarias? Considérese la siguiente consulta en el archivo inverso de la fig. Listar los nombres de los estudiantes cuya edad sea 21 años. Puede responder rápidamente buscando en el directorio de la manera siguiente: • empezar la búsqueda con el índice nombre-clave para localizar la entrada AGE. • Analizar el índice valor-clave para encontrar el valor 21 en la clave secundaria. • Recuperar los registros objetivos del archivo de datos en las direcciones relativas 3y 7. Se dice que se tiene un índice denso cuando este incluye cada valor clave posible en un conjunto indexado. El índice valor- clave de la fig. Es denso porque todos los valores de las claves inversas están incluidos en el índice. Por ejemplo, los tres números posibles de CLASS en el archivo de datos son 541, 542, y 543. Los tres aparecen en el índice valor-clave. Se dice que una clave inversa está parcialmente indexada si solo algunos de sus valores claves están incluidos en el índice valor-clave. Los valores clave que están indexados son aquellos usados en la condiciones de búsqueda. Un índice parcialmente indexado se llama índice disperso. Para un índice con una gran cantidad de elementos, la búsqueda secuencial sobre el índice no es muy eficiente. Por esto, un índice se organiza generalmente como una estructura de varios niveles como es el caso de la estructura multinivel de índice principal para los archivos secuenciales indexados. El directorio para el archivo de datos de la fig. Esta organizado como un índice de nivel dos, en el cual el índice nombre-clave se crea para facilitar la búsqueda en el índice valor-clave. El grado de inversión se refiere al nivel de totalidad de inversión expresada por el número de campos y lo extenso de los valores de los campos invertidos. Una inversión de 0% significa que no se invirtió ningún campo clave en un registro. Por otro lado, un archivo con el 100% de inversión tiene invertido cada valor clave de cada campo de datos. En algunos sistemas operativos macro mainframe se dispone de elementos para invertir índices automáticos si se declaran las claves secundarias en un programa, por ejemplo. VSAM de IBM y AAM de Cyber, son capaces de crear índices inversos sobre la organización secuencial indexada y directa. MANEJO DE INDICES Cada vez que se inserta, borra o actualiza un registro, las entradas afectadas de un índice deben ser modificadas por el sistema para que así, el índice pueda proporcionar las trayectorias de datos correctas.



3.3 OPERACIONES SOBRE UN ARCHIVO SECUENCIAL.



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 estructura y manejo de archivos secuenciales con el fin de proporcionar una secuencia para los registros, se define una llave para cada uno.

Uno o más atributos se volverán los atributos llave para los registros en los archivos. el conjunto de valores para los atributos llave generalmente identifica el objeto descrito por el registro; es decir, el número de placa de un automóviles el nombre de une persona. Se espera poder identificar los registros en forma única con base en sus llaves. entonces los registros en el archivo se conservan en el orden de acuerdo con los atributos llave. Un atributo llave proporcionara la llave primaria de clasificación de alto orden y si este atributo no identifica en forma única al objeto, entonces puede identificarse atributos llave secundarios o inferiores hasta que el orden se determine por completo.



La lectura serial del archivo en este orden puede realizarse ahora en forma secuencial. Algunas veces se agregan campos artificiales conteniendo números de secuencia o identificación, para obtener atributos llave únicos.

La participación del archivo, analizada con la descripción de archivo de apilo ahora se realiza de forma explícita:

Se selecciona el número de identificación para que sea único para todos los registros y parta al archivo en n registros individuales. Desafortunadamente, puede resultar necesaria una computación separada para determinar el número de identificación perteneciente al dato deseado.



Con estas restricciones estructurales y mayor eficiencia en la atención en el procesamiento orientado en forma tabular, se pierde mucha flexibilidad.



No es fácil colocar las actualizaciones en un archivo secuencial. el hecho de que determine el atributo llave exclusivamente la secuencia de los registros introduce una simetría que hace que los archivos secuenciales resulten inadecuados para recuperar información general.



El procedimiento común para manejarisercion en un archivo secuencial consiste en recolectarlas en un apilo, el archivo de bitácora de transacciones, hasta que el apilo resulte demasiado grande para realizar entonces una actualización por lote. esto se hace reorganizando el archivo.



En este momento el archivo de bitácora de transacciones se clasifica desacuerdo con las mismas llaves utilizadas para el archivo principal y las modificaciones se unen en una nueva copia del archivo secuencial.



ARCHIVOS SECUENCIALES



Existen además muchas operaciones asociadas a archivos, las más elementales son:



1.- Creación de Archivo.- En este proceso se pretende solamente crear un archivo nuevo en disco, con su nombre, tipo y especialidad de almacenamiento de datos apropiado.



2.- Apertura de Archivos.- En este caso se pretende abrir un archivo ya existente en disco para procesarlo, ya sea cargar o grabar datos en sus registros, o leer algún registro en especial para mandarlo a una variable de cualquier tipo.



No confundir creación con apertura, creación es un proceso que solo se ejecuta una sola vez en la vida de un archivo, mientras que apertura, siempre se está realizando por los programas especializados en algún proceso.



3.-Cierre de archivos: Es la operación más importante en cualquier programa que maneje archivos, o se cierra el archivo como última instrucción del programa o se verá el anuncio ABORT, RETRY, FAIL.



98, /s, scandisk



4.-Altas en archivo.- En este proceso se carga una clase en memoria con sus datos pertinentes y se graba la clase en el archivo en disco.



5.-Lectura de archivo.- En este proceso, se abre el archivo y se manda el registro de disco, a una clase en memoria para su procesamiento.



6.- Consulta de archivos: En este proceso se pretende desplegar todos los registros del archivo en disco a la pantalla, ya sea consola o mejor aún, a una pagina HTML



7.-Busqueda en archivos: Una de las operaciones más comunes, consiste en que el usuario pide toda la información de algún renglón en disco, proporcionando la información de algún campo, generalmente el campo clave de la clase.



8.- Filtros.- En este proceso el usuario está interesado en algún conjunto de renglones con características comunes (condición), por ejemplo todos los alumnos de “sisJAVA TEMA s”, o todos los empleados que ganen más de $500.00 pesos, o todos los clientes que sean de “Tijuana”, etc.



9.-Modificaciones de registros o archivos: Problema muy común, donde los datos originales ya grabados se tienen que cambiar o actualizar, por ejemplo el nombre no era “Juan” es “Juana”, o la calificación no es 100 es 20, etc.



10.- Bajas de registros: también muy común este proceso, por ejemplo el alumno ya egreso, el cliente huyo, etc.

Seguidores