organización de archivos secuenciales indexados

36
Ingeniería en Sistemas Informáticos - Informática III Temas de Investigación. Organización de Archivos Secuenciales Indexadas. Organización de Archivos Multillaves. 1

Upload: ajacx

Post on 23-Jul-2015

1.851 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

Temas de Investigación.

Organización de Archivos Secuenciales Indexadas.

Organización de Archivos Multillaves.

1

Page 2: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

Planteamiento del Problema.

Los archivos en informática tienen esa denominación porque son los

equivalentes digitales de los archivos en papel o microfichas del entorno de una

oficina tradicional. Dentro del desarrollo de software los archivos pueden ser

organizados en diferentes estructuras, esto, viendo de forma interna a los

archivos; como requisito para entender el funcionamiento y estructura de un

archivo dentro del desarrollo de software, el tema presentado más arriba es de

primordial interés.

2

Page 3: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

Preguntas de Investigación.

1. ¿Cómo se define la organización de archivos secuenciales indexados?

2. ¿Cuál es la aplicación de la organización de archivos secuenciales

indexados?

3. ¿En qué consiste la Estructura del Árbol B+?

4. ¿Cómo es un archivo secuencial indexado en COBOL?

5. ¿Cómo es el diseño de los archivos secuenciales?

6. ¿En qué consiste la organización de archivos multillaves?

7. ¿En qué consiste la organización de archivos invertidos?

8. ¿En qué consiste la organización de archivos multilista?

9. ¿A qué hacen referencia los archivos indexados con llave alterna?

3

Page 4: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

Objetivo General.

Analizar la Organización de Archivos Secuenciales indexadas y la

Organización de Archivos Multillaves.

Objetivos Específicos.

Definir Organización de Archivos Secuenciales Indexadas y Organización

de Archivos Multillaves.

Determinar la aplicación de los Archivos Secuenciales Indexadas.

Indagar sobre la Estructura del Árbol B+.

Examinar el diseño de los archivos secuenciales.

Explorar el funcionamiento de la organización de archivos invertidos y

multilistas.

4

Page 5: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

Introducción.

Un archivo en informática es un conjunto de bits almacenados en un

dispositivo periférico, ya sea un Disco Duro, CD-ROM o una Memoria USB. Se

llaman así porque son los equivalentes en formato digital de los archivos

normales de una oficina o similar.

Los archivos informáticos facilitan en gran manera la organización de

recursos usados para almacenar permanentemente datos en un sistema

informático.

La mayoría de los archivos informáticos son usados por programas de

computadora. Estos programas crean, modifican y borran archivos para su

propio uso bajo demanda. Los programadores que crean los programas

deciden qué archivos necesitan, cómo se van a usar, y sus nombres.

Dentro de la Organización de archivos existen diferentes enfoques o

formas de organizarlos; en este trabajo práctico estaremos tratando la

Organización de Archivos Secuenciales Indexados y la Organización de

Archivos Multillaves, cada uno de las cuales presentan sus características

particulares a la vez de sus ventajas y desventajas en el uso.

5

Page 6: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

Organización de Archivos Secuenciales Indexados.

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 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 está integrado de forma que

los registros del archivo de desbordamiento se ubican en la dirección de un

puntero desde su registro 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 índice 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 específico se busca en el

índice 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.

Aplicación.

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

accederlos 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.

6

Page 7: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

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.

Aéreas del archivo secuencial indexado.

Área de Datos: Contiene los registros secuencial, este ordenado

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

7

Page 8: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

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 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.

CARACTERÍSTICAS.

Las características más relevantes de un fichero 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 más 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.

c) Solamente se puede grabar en un soporte direccionable. Ej.: disco

magnético.

8

Page 9: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

VENTAJAS E INCONVENIENTES.

Las principales 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.

Inconvenientes:

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.

Estructura y manejo de archivos secuenciales indexados

Esta organización de archivo permite, al leerse los datos en serie, el

acceso secuencial a las áreas originales de registro del archivo. Esto se logra

leyendo las partes secuénciales del archivo. Los registros que se han insertado

se encuentran en un área separada del archivo, semejante al archivo bitácora

de transacciones. Se encuentran directamente siguiendo un apuntador

proveniente de su registro predecesor. La lectura en serie del archivo

combinado se realiza secuencialmente, hasta que se encuentra un apuntador

hacia el archivo de derrama; después se continúa en el archivo de derrama

hasta que se encuentra un apuntador NULL; luego, se reinicia la lectura del

archivo secuencial. Para recuperar un registro específico se utiliza el índice.

EL INDICE: un índice consiste en un conjunto de anotaciones, una para cada

registro dato, que contienen el valor de un atributo llave para ese registro y un

apuntador que permite el acceso inmediato a ese registro. En los grandes

9

Page 10: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

registros, la anotación índice será considerablemente menor que el mismo

registro dato. El índice siempre se conserva en orden clasificado de acuerdo

con su atributo llave, de manera que la búsqueda pueda ser rápida.

Los índices resultan efectivos cuando los archivos son bastante grandes, de

manera que el índice requiere muchos bloques menos. El proceso de

búsqueda dentro de un índice grande se auxilia nuevamente indexando

subconjuntos del índice.

Los niveles sucesivamente más altos del índice se vuelven cada vez

más pequeños, hasta que reste solamente un índice pequeño de nivel más

alto, que pueda conservarse en la memoria del núcleo.

Los índices se han implantado en muchas formas. Una alternativa del manejo

por índices de niveles múltiples consiste en permitir una búsqueda binaria en el

archivo índice.

ÍNDICE PRIMARIO: el índice para un archivo secuencial indexado se

basa en el mismo atributo llave que se ha utilizado para determinar la

secuencia del archivo mismo. A este índice primario pueden aplicársele un

cierto número de refinamientos. Uno de estos consisten en indexar solamente

el primer registro de cada bloque, es decir emplear anclas de bloques; y el otro

consiste en conservar la mayor parte del índice en el mismo cilindro que los

registros datos, índices de cilindro.

Anclas de Bloques: la ventaja de los índices es que permiten el acceso

rápido a un bloque de archivo. Los registros individuales en un bloque

pueden encontrarse mediante una búsqueda dentro del bloque. Al registro

que le corresponde la referencia se le domina punta de ancla, y en el índice

se conserva solamente el valor llave del ancla y el apuntador del bloque.

Índices de Cilindro: ya que mucha de la derrama al recuperar un bloque se

debe al tiempo de búsqueda necesario para llegar a un determinado

cilindro, puede lograrse una reducción del esfuerzo de búsqueda colocando

el subconjunto del índice de acuerdo con las fronteras del hardware. Para

este método comúnmente se utiliza un índice de dos niveles. Habrá un

índice maestro que contenga solamente los valores de los atributos llave y

las direcciones de la anclas de cilindro. En la pista inicial de cada cilindro

10

Page 11: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

habrá un índice de cilindros utilizando pistas, bloques o registros como

anclas para ese cilindro. No habrá retraso de localización entre índices de

cilindros y registros datos.

RAZON DE ABANICO DE SALIDA DE UN ÍNDICE: un parámetro importante

de un índice es la capacidad de hacer referencia a un bloque de anotaciones

del índice, es decir su abanico de salida. La amplitud y es el cociente del

tamaño de bloque B y del espacio necesario para cada anotación, V+P.

Y = [B/(V+P)]

FORMAS DE LOS INDICES: puede verse que en estas organizaciones de

índices estos son más anchos que altos. El término utilizado para medir el

ancho de un árbol fue la razón de abanico de salida y. los árboles anchos

tienen menos niveles y proporcionan rápido acceso de recuperación. El numero

de niveles del índice o altura de un árbol índice x se calcula en el caso de un

archivo secuencial indexado evaluando el crecimiento exponencial.

c = [log g [n/Bfr]] fácil de calcular, como [ln[n/Bfr]ln g]

Índice Maestro en el Núcleo: durante el procesamiento es común otra

reducción del costo de acceso: el índice maestro que permanece disponible

en la memoria del núcleo, una vez que se ha leído.

DERRAMA: a fin de insertar registros en el archivo, es necesario asignar

algún espacio desocupado. Es posible colocar las inserciones en un archivo

separado; también puede reservarse espacio para inserciones en cada

bloque, o guardar espacio en cada cilindro para registros insertados. Un

archivo de inserciones separado requiere un acceso separado con derrama

de localización y latencia en cualquier punto en que tenga que realizarse

una inserción. La asignación de espacio en cada bloque es factible solo si

los bloques son grandes y las inserciones están bien distribuidas. En

general este enfoque requiere una asignación dinámica de espacio.

La localización de un registro de derrama requerirá latencia rotacional, pero

no una localización. Para insertar un registro puede obtenerse la dirección

de cilindro a partir del índice, haciendo coincidir el valor de la llave atributo

del nuevo registro con la anotación para el predecesor más cercano. El

11

Page 12: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

nuevo registro se coloca en la siguiente posición desocupada en el área de

derrama del cilindro.

Enlace a Registros de Derrama: los registros en las reas de derrama

deberán encontrarse tanto mediante operaciones FETCH (recuperar), como

GET_NEXT (obtener el siguiente). El proceso de búsqueda de estos casos

comienza en el registro predecesor y continúa en los apuntadores.

Los apuntadores a los registros de derrama se colocan con los registros

predecesores en los bloques primarios de datos. La llave del registro

insertado no se conserva ahí. Solamente se coloca el apuntador en el

archivo secuencial, de manera que una búsqueda de cualquier registro

relacionado se dirija el área de derrama. Este procedimiento evita modificar

el índice para que refleje la inserción, pero agrega el tiempo de lectura de

un bloque a cada recuperación de un registro de derrama.

Encadenamiento de Registros de Derrama: con el fin de localizar

derramas múltiples se colocan apuntadores en los registros de las áreas de

derrama. Todos los registros de derrama que empiecen en una fuente se

eslabonan en una cadena, posiblemente mediante muchos bloques del área

de derrama. Un nuevo registro se eslabona en la cadena de acuerdo con su

valor llave, de manera que s conserve el orden secuencial.

Cuando la recuperación tenga que atravesar muchos registros de derrama,

en un gran número de bloques, seguir la cadena para llegar a un registro

específico puede ser en realidad menos eficiente que la simple búsqueda

exhaustiva en el área de derrama.

Impulso a Través: en vez de tener un apuntador de derrama por registro

en el archivo de datos, es común utilizar solamente un apuntador por

bloque. Este método conserva la secuencia de llaves en los bloques del

archivo primario. Los nuevos registros se insertan después de su

predecesor adecuado; los registros sucesores se impulsan hacia el fin del

bloque. Los registros provenientes del fin del bloque primario se impulsan al

área de derrama.

Tamaño de las Áreas de Derrama: es necesario dimensionar

cuidadosamente las áreas de derrama del cilindro. Si las inserciones se

aglomeran en ciertas áreas, los cilindros correspondientes necesitaran

grandes áreas de derrama. Si el sistema proporciona una asignación de

12

Page 13: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

espacio de manera que todas las áreas de derrama de los cilindros sean del

mismo tamaño, entonces se desperdiciara mucho espacio en aquellos

cilindros que no reciben muchas inserciones. Una posible solución sería

proporcionar un área secundaria de derrama que se utiliza cuando el área

de derrama de cualquier cilindro se derrama a su vez.

REORGANIZACION: cuando las áreas de derrama se derraman a su vez, o

antes, es necesaria una organización del archivo. También puede

necesitarse la reorganización cuando, debido a la creación de largas

cadenas, los tiempos de recuperación o de procesamiento serial se vuelven

excesivos. Tal reorganización consiste en leer el archivo en la forma en que

se utilizaría al realizar el procesamiento en serie y escribirlo de nuevo

dejando fuera todos los registros que estén marcados como eliminados y

escribiendo todos los registros restantes, nuevos y viejos, secuencialmente,

en las áreas principales del nuevo archivo. Durante este procesamiento los

programas de organización crearan nuevos índices con base a los nuevos

valores de los puntos ancla.

La frecuencia de esta reorganización depende de la actividad de inserción

dentro del archivo.

Empleo de archivos secuenciales indexados.

Los archivos secuénciales indexados del tipo básico se encuentran en

uso común en el moderno procesamiento comercial. Se utilizan en forma

especial cuando existe la necesidad de conservar archivos actualizados dentro

de marcos de tiempo menores que los intervalos del procesamiento factibles

con la reorganización cíclica de archivos secuénciales. Debido a que es posible

insertar y recuperar registros individuales a través del índice, de manera que es

necesario un número limitado de accesos de bloque, este tipo de archivo es

adecuado para el acceso en línea u orientado a terminales. Esto no es posible

con los tipos de archivo de apilo y secuencial.

Los archivos secuénciales indexados también se utilizan comúnmente

para manejar consultas, con la restricción de que la consulta deberá especificar

el atributo llave.

13

Page 14: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

Todos los archivos secuénciales tienen la restricción de que solamente

una llave atributo determina el orden principal del archivo, de manera que los

otros valores atributo no son adecuados como argumentos de búsqueda.

Estructuras de árbol B +.

Esquema.

14

Page 15: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

Es una de las técnicas más populares para instrumentar esta

organización. El árbol B+ consta de dos partes: la parte índice que consta de

los nodos interiores y el conjunto secuencia que consta de las hojas del árbol.

La parte índice se usa para direccionar la posición de algún registro en

particular, mientras que el acceder secuencialmente a las hojas (conjunto

secuencia) podemos tener acceso a todo el archivo en general.

Ahora bien los valores de la llave dentro del índice solo existen con el propósito

de dirigir el acceso al conjunto secuencia.

Ahora mostramos el esquema de un árbol B+.

La composición de una hoja es como sigue:

Un nodo puede utilizar desde 2 hasta n ligas, más no podemos manejar

una sola, esto quiere decir que si un nodo maneja tres ligas podemos inhabilitar

solo una.

Manipulación de un árbol - B+.

La inserción de nuevos valores de llave en un árbol B+ se realiza más o

menos de la misma manera como son insertados en un árbol - B clásico.

Cuando un nodo hoja es particionado en dos nodos, una copia del valor de

llave de menor orden, del nodo que se encuentra a la derecha, es promovida

15

Page 16: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

para ser el valor de llave separador en el nodo padre. El nuevo nodo también

debe ser insertado en la lista ligada del conjunto de secuencias.

Búsqueda de árboles B+

Una búsqueda directa en un árbol B+ debe terminar en un nodo del

conjunto de secuencias. Si existe una llave en el índice que corresponda a la

llave buscada, el apuntador precedente es seguido hasta que, eventualmente,

la hoja correcta es alcanzada. No todas las llaves de la parte de índices

necesitan aparecer también en el conjunto de secuencias. Una llave pudo

haberse eliminado del conjunto secuencias, cuando su correspondiente registro

fue suprimido del conjunto de registros, pero la llave pudo haber sido retenida

en la parte de índices del árbol B+, con el propósito de guiar el acceso al

conjunto de secuencias.

Acceso Secuencial.

Una solicitud para accesar datos en orden secuencial es atendida

accesando los bloques de datos en orden secuencial. Los bloques de datos

son el conjunto de secuencias; son lógicamente consecutivos pero no están

necesariamente físicamente consecutivos.

Esquema Físico de Índices.

Otro método para implantar el concepto de archivo secuencial indexado,

consiste en basar la estructura de índices más en las características físicas de

almacenamiento que en la distribución lógica de valores de las llaves. El índice

puede tener varios niveles, tal como un nivel de índice de pista. El archivo de

datos es generalmente instrumentado como dos archivos: un área primaria y un

área de sobrecarga.

La figura siguiente ilustra este tipo de estructura para el archivo

secuencial indexado de datos de animales.

Supongamos que cada cilindro del dispositivo de almacenamiento tiene

cuatro pistas. Este archivo en particular tiene seis cilindros asignados al área

primaria de datos. La primera pista (número 0) de cada cilindro contiene un

16

Page 17: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

índice a las llaves de los registros en ese cilindro. Las entradas a este índice

son de la forma:

Valor de la llave menor, número de pista.

Dentro de una pista de datos, los registros son guardados

secuencialmente con base en el valor de la llave. El primer nivel del índice en el

archivo de índices es llamado índice maestro. Como se muestra en la figura

anterior, las entradas a este índice son de la forma:

Valor de la llave mayor, número de cilindro

El segundo nivel de índice es llamado el índice de cilindro. Este contiene

apuntadores al archivo primario de datos y sus entradas tienen la forma:

Valor de la llave mayor, número de cilindro.

Acceso a registros de datos.

Cuando se recibe una solicitud de acceso a un registro en particular,

digamos el registro con valor de llave Borrego, el índice maestro es examinado

primero. Dado que Borrego precede a Lince, el apuntador desde Lince es

seguido hasta el cilindro índice. Dado que Borrego precede a Elefante, el

apuntador desde elefante es seguido hasta la pista 0 del cilindro 1. Dado que

Borrego le sigue a Ballena es seguido a la pista 2, la cual es examinada

secuencialmente hasta encontrar a Borrego y disponer de él, o hasta

determinar que no existe. Una solicitud para accesar los datos en orden

secuencial es atendida, accesando los cilindros y pistas del archivo primario de

datos, en esa secuencia física.

Inserción de Registros

En el ejemplo anterior el área primaria de datos fue creada con 40% de

espacio libre, con el objetivo de poder realizar inserciones y supresiones del

archivo.

Las solicitudes:

Insertar Ardilla

Insertar Águila

17

Page 18: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

Son fáciles de lograr. Solamente la pista de datos 1 del cilindro 1 es afectada,

por lo que el contenido resultante es el siguiente:

La solicitud de insertar armadillo es un poco más difícil. La búsqueda en

la estructura índice revela que armadillo debería ubicarse en la pista 1, del

cilindro 1, pero esta pista está llena. Esta condición necesita del uso de un área

de sobrecarga de datos en un archivo separado con respecto al área primaria

de datos, pero está apuntada por las entradas en el área primaria de datos.

Archivos Secuenciales indexados en COBOL.

Éste tipo de organización es lo que el común de los programadores

entienden como un verdadero archivo de bases de datos. Aquí ya contamos

con uno o varios índices que mantienen un orden lógico de los datos

contenidos independientemente de su posición relativa dentro del archivo. Lo

que sorprenderá a algunos programadores aquí es que RM/COBOL 85

mantiene esos índices dentro del propio archivo de datos y no como uno o

varios archivos externos. Sobre cómo consigue esto el compilador y su motor

de bases de datos internos escapa a los propósitos de este artículo, solo baste

decir que para lograrlo usa una técnica similar a una estructura de árbol

dinámica.

La ventaja de tener los índices físicamente en el mismo archivo que los

datos residen en que no se corre el riesgo de perder esa indexación, de esta

forma no se necesita hacer una reindexación previa al uso del archivo.

El o los índices de un archivo con organización secuencial indexada

puede ser cualquiera de los campos declarados en el registro aunque con la

salvedad de que una vez establecido uno o más de esos campos estos

permanecen fijos, es decir que posteriormente no se pueden usar otros campos

además de los declarados. Esta declaración se hace en tiempo de edición

haciendo uso de las cláusulas que COBOL proporciona para este propósito,

como veremos más adelante.

Esto último representa una desventaja respecto a otros mecanismos

desindexación. Es obvio que acceder a un conjunto de registros ordenados por

un campo índice en particular (lo que en la jerga de base de datos relacionales

18

Page 19: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

se llama "vista") es mucho más rápido que hacerlo secuencialmente o

relativamente, pero como esos campos índices se establecen al momento de

diseñar la base de datos y una vez creado el o los archivos físicos ya no se

pueden agregar más o modificarlos ya existentes un programador COBOL

debe tener muy en claro qué tipo de vistas necesita extraer de esa base de

datos de acuerdo a la aplicación que está programado. Una aplicación COBOL

con los índices mal elegidos puede resultar en una aplicación lenta o

directamente inútil.

Diseño de 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

19

Page 20: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

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.

Método de Diseño basado en la Estructura de Datos.

Una estrategia de diseño popular se basa en el análisis de las

estructuras de datos, en lugar del análisis de los flujos de datos. Esta ha sido

desarrollada por Michel Jackson y J.D.Warnier.

Esta estrategia se sumariza en las siguientes actividades:

Definir las estructuras de datos a ser procesadas.

Derivar la estructura del programa basado en la estructura de datos

Definir la tarea a ser realizada en términos de operaciones elementales, y

ubicar cada una de dichas operaciones en componentes de la estructura del

programa.

Implícitamente en el enfoque de la estructura de datos, está presente el

hecho de que la mayoría de las aplicaciones de EDP trabajan con jerarquías de

datos, como por ejemplo: campos dentro de registros de archivos. Por lo tanto,

este enfoque desarrolla una jerarquía de módulos, que en un sentido, es una

imagen espejo de la jerarquía de datos asociados con el problema. La siguiente

figura representa la estructura de un archivo secuencial simple y la estructura

de un programa que imprime dicho archivo.

Organización de archivos multillave. 

Acceso multillave 

Existen numerosas técnicas, que han sido utilizadas para implantar

archivos multillave. La mayoría de estos métodos están basados en la

construcción de índices para proporcionar acceso directo mediante el valor de

las llaves. Existen dos métodos para proporcionar trayectorias de acceso

adicional hacia los archivos de registros de datos:

 

20

Page 21: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

La inversión

La organización multilista.

Muchos compiladores de lenguajes de programación no proporcionan

capacidades preconstruidas para manejar archivos  multillave. Más bien, una

agrupación de procesamiento de datos normalmente adquiere un paquete de

manejo de datos. Entonces, los compiladores del lenguaje pueden establecer

una interface directa con este manejo de archivos, o pueden generar llamadas

a estas rutinas de manejo. 

Organización de archivos invertidos. 

Conceptos básicos.

Un método fundamental para proporcionar el encadenamiento entre un

índice y los registros del archivo es llamado inversión. Un índice de inversión

de llaves contiene todos los valores que la llave tiene presente en los registros

del archivo. Cada uno de los valores de la llave en el índice de inversión apunta

a todos los registros que tienen el valor correspondiente. El archivo de datos se

dice que está invertido sobre esa llave.

            La inversión como enfoque para proporcionar acceso multillave ha sido

utilizado como base para las estructuras físicas de bases de datos en sistemas

comerciales disponibles para la administración de bases de datos, incluyendo

varios sistemas relacionales (el DB2 de IBM ek Ingres Relational Technology y

Oracle), sistema 2000 de Intel y el Adabas de Software AG. Estos sistemas

fueron diseñados para proporcionar un rápido acceso a los registros, vía tantas

llaves de inversión como el diseñador quiere identificar. Están orientados al

usuario con lenguajes de consulta de tipo natural para asistir al usuario en la

formulación de consultas. 

Organización de archivos multilista. 

Otro enfoque básico para suministrar la conexión entre un índice y el

archivo de registros de datos, se llama organización multilista.

 

21

Page 22: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

            El enfoque de multilista para instrumentar acceso multillave ha sido la

base para estructuras físicas en muchos sistemas de administración de base

de datos jerárquicos y de redes disponibles comercialmente incluyendo la

familia de sistemas CODASYL, TOTAL de Cincom, y el IMS de la IBM. 

Conceptos básicos

Igual que un archivo invertido un archivo multilista mantiene un índice

para cada llave secundaria. Existe una entrada en el índice de llave secundaria

para cada valor que, la llave secundaria, tiene en este momento en el archivo

de datos. La organización de multilista difiere de la inversión en que, mientras

que la entrada en el índice de inversión para un valor de llave tiene un

apuntador a cada registro de datos con ese valor de llave, la entrada en el

índice de multilista para un valor de llave tiene sólo un apuntador al primer

registro de datos con ese valor de llave. Este registro de datos contiene un

apuntador al siguiente registro de datos con ese valor de llave, y así

sucesivamente. Luego hay una lista ligada de registros de datos para cada

valor de la llave secundaria. Los encadenamientos en Multilistas normalmente

son bidireccionables y ocasionalmente son circulares, para mejorar la eficiencia

de actualización. 

Procesamiento.

El método de multilista proporciona el mismo tipo de acceso, con llave

secundaria, como lo hace el método de inversión, pero el procesamiento de los

dos tipos de archivo difiere. 

Variantes.

Dos variantes con respecto a la estructura básica de multilista son las

multilistas de longitud controlada y las estructuras de multilista celular. En un

archivo multilista de longitud controlada, una longitud máxima es impuesta a las

listas ligadas de registros de datos. Si un valor de llave secundaria lo poseen

más registros de datos de lo que permite la longitud, entonces el valor de la

llave aparecerá más de una vez en el índice y podrá haber más de una lista

ligada de registros de datos con ese valor. 

22

Page 23: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

            En un archivo multilista celular, las estructuras de la lista están

determinadas en parte, por las características del almacenamiento. Por

ejemplo, una célula puede ser definida como un cilindro, como una pista, o

como una página. A una lista ligada no se le permite cruzar los límites de la

célula. Si hay registros en tres cilindros que tienen el mismo valor de llave

secundaria, entonces habrá tres entradas de índice y tres listas ligadas para

ese valor. Esta variante de multilista puede ser útil en la reducción de

movimientos de los brazos lectores del disco y de accesos  a la E/S.

Comparaciones y efectos. 

Tanto los archivos invertidos como los multilistas tienen:

Un índice para cada llave secundaria.

Una entrada de índice para cada valor distinto de la llave secundaria. 

En cualquiera de las dos organizaciones de archivo:

El índice puede ser tabular o estructurado como árbol.

Las entradas de un índice pueden o no, ordenarse.

Los apuntadores a los registros de datos pueden ser directos o

indirectos. 

Los índices difieren en que: 

Una entrada en un índice de inversión tiene un apuntador a cada uno de

los registros de datos con ese valor.

Una entrada en un índice multilista tiene un apuntador al primer registro

de datos con ese valor. 

Así un índice de inversión puede tener entradas de longitud variable,

mientras que en un índice multilista tiene entradas de longitud fija.

En cualquiera de las dos organizaciones:

Los apuntadores a registros de datos para un valor de llave pueden, o

no, aparecer ordenados.

Mantener las entradas ordenadas introduce una sobrecarga.

23

Page 24: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

El archivo de datos:

No es afectado al tener un índice de inversión sobre él.

Debe contener las listas ligadas de registros con valores idénticos de la

llave secundaria, en la estructura multilista.

Algunas de las implicaciones de estas diferencias son las siguientes:

El manejo de índices es más fácil con el método de multilista, porque

las entradas son de longitud fija.

El método de archivo invertido tiende a exhibir mejor desempeño en la

consulta. Muchos tipos de consulta pueden ser contestados accesando

los índices de inversión, sin la necesidad de accesar los registros de

datos, dando una reducción en los requerimientos de acceso de E/S.

La inversión de un archivo puede ser transparente para el programador

que accesa ese archivo cuando se usa los índices de inversión. Mientras

que en una estructura multilista afecta el formato del registro del archivo.

Los apuntadores de la multilista pueden hacerse transparentes para el

programador, si el administrador de los datos los hace disponibles para

el uso del programador y los almacena al final de cada registro.

Adicionalmente, la estructura multilista ha probado ser de utilidad para ligar

diferentes tipos de registros, proporcionando en consecuencia trayectorias de

acceso basadas en relaciones lógicas. Es también posible proporcionar

múltiples ordenamientos para una sola colección de datos, ligando los registros

en orden de varias llaves. 

      La estructuración de datos y la organización de archivos son dos factores

importantes para la determinación del desempeño de un sistema. El

programador de sistemas y el programador de aplicaciones deben diseñar las

estructuras apropiadas para adecuarse a los requerimientos de procesamiento

de datos. Los datos necesitan ser manejados para la vida de un programa en

particular y también para que sean más permanentes.

24

Page 25: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

Conclusión.

Como se especificó más arriba en la introducción, los archivos en

informática son conjuntos de bits almacenados en un dispositivo periférico, ya

sea un Disco Duro, CD-ROM o una Memoria USB. Son los equivalentes en

formato digital de los archivos en papel o similares que conocemos.

En forma básica hay dos enfoques para organizar los archivos, una es el

enfoque de acceso secuencial que se refiere al procesamiento de los archivos

de acuerdo con un orden específico. Ejemplo, archivos secuenciales y de texto.

La segunda es el enfoque de acceso Directo que permite recuperar registros

individuales sin leer otros registros del archivo, ejemplos archivos indizados.

Como objetivo del nuestro trabajo se estudian dos Organizaciones de

archivos que son variaciones de los enfoques básicos. El primero de ellos es el

archivo secuencial indexado, que mantiene las características básicas de los

archivos secuenciales, como tal los registros están organizados en una

secuencia basada en un campo; pero, se añaden un índice del archivo para

soportar los accesos aleatorios y un archivo de desbordamiento. 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 accederlos

individualmente.

El segundo es la Organización de Archivos Multillaves, que en su mayor

parte están basados en la construcción de índices para proporcionar acceso

directo mediante el valor de las llaves. Un punto importante dentro de esta

Organización de archivo es el manejo de dos enfoques para obtener accesos

multillaves las cuales son el enfoque de multilista y la inversión; que se explican

en forma básica en el trabajo.

25

Page 26: Organización de Archivos Secuenciales Indexados

Ingeniería en Sistemas Informáticos - Informática III

Bibliografía.

Fuente Internet.

- http://www.monografias.com/trabajos6/sistar/sistar.shtml

- http://boards4.melodysoft.com/.../archivos-secuenciales-indexados-6.html

- http://www.mitecnologico.com/Main/O...SobreArchivoSecuencialIndexado

- http://www.reocities.com/seminarioittepic/unidadviii/

- http://boards4.melodysoft.com/2005AAA0608/acceso-multillave-5.html

26