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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Top Related