archivos secuenciales indexados drasly

30
UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA FACULTAD DE INGENIERÍA EN SISTEMAS DE INFORMACION DRASLY ADALI RAFAEL ESQUIVEL Tercer Semestre

Upload: drasly-adali-rafael-esquivel

Post on 19-Feb-2017

91 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Archivos secuenciales indexados   drasly

UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA

FACULTAD DE INGENIERÍA EN SISTEMAS DE INFORMACION

DRASLY ADALI RAFAEL ESQUIVEL

Tercer Semestre

Page 2: Archivos secuenciales indexados   drasly

ARCHIVOS SECUENCIALES

INDEXADOS

Page 3: Archivos secuenciales indexados   drasly

DEFINICION:

Es uno de los varios métodos de accesos existentes, mediante este método el usuario obtiene acceso secuencial a los registros clasificados por llaves y también acceso indexado a los mismos registros.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 llegar 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.

Page 4: Archivos secuenciales indexados   drasly

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.

Page 5: Archivos secuenciales indexados   drasly

Á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

AREAS DEL ARCHIVO SECUENCIAL INDEXADO

Page 6: Archivos secuenciales indexados   drasly

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.

Page 7: Archivos secuenciales indexados   drasly

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.

Page 8: Archivos secuenciales indexados   drasly

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.

Page 9: Archivos secuenciales indexados   drasly

FICHEROS CON ORGANIZACIÓN SECUENCIAL INDEXADA.

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

Área 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 Área De Índices: 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.

Page 10: Archivos secuenciales indexados   drasly

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

Page 11: Archivos secuenciales indexados   drasly

MANTENIMIENTO DE UN ARCHIVO SECUENCIAL INDEXADO

Al transcurrir un determinado tiempo de operación la estructura tiende a saturarse, se requiere entonces realizar un reacomodo de los datos contenidos en el área de desborde, trasladándolos hacia el archivo principal, teniendo que ajustar por supuesto el tamaño de los bloques y en consecuencia los apuntadores en el índice.

El mantenimiento puede darse por cualquiera de estos criterios: Tiempo transcurrido Tamaño del área de desborde (entre 25 y 30% del tamaño

del archivo principal)

Page 12: Archivos secuenciales indexados   drasly

La eliminación de registros en tiempo de operación se recomienda en forma lógica; es decir, mediante marcas que indiquen si un registro está activo o no en el proceso de mantenimiento se realizara el reacomodo de los registros suprimiendo así los registros marcados para la eliminación.

Cuando es relevante el orden de llegada de los registros en cada bloque puede tomarse el criterio de sustituir a un registro eliminado por el último asociado al mismo bloque ya sea que este se encuentre al final del bloque o en el área de desborde.

Page 13: Archivos secuenciales indexados   drasly

MANTENIMIENTO DE UN ARCHIVO

El mantenimiento consiste que al momento de transcurrir un determinando tiempo de operación la estructura se satura, por ello se tiene que hacer un reacomodo de datos contenidos en el área de desbordamiento, trasladándolos al archivo principal y modificando el tamaño del bloque y los apuntadores del índice.El mantenimiento consiste en aplicar cualquiera de estos dos criterios los cuales son el tiempo transcurrido y el tamaño del área de desbordamiento.La eliminación de los registros se recomienda de forma lógica, mediante una marca que indique si el archivo está activo o no, se realiza el reacomodo de los registros eliminando así los registros marcados para la eliminación.

Page 14: Archivos secuenciales indexados   drasly

Es relevante el orden de llegada de los registros en cada bloque puede tomarse la decisión de sustituir un registro eliminado por el ultimo asociado al mismo bloque. Las operaciones que se pueden realizar dentro de la organización mediante un Archivo Secuencial Indexando son:

Creación y Apertura de un Fichero Consulta de Datos Cierre de un Fichero Inserción de Datos Borrado de un Fichero

Estas Operaciones se Describen a continuación (pseucodigo):

Page 15: Archivos secuenciales indexados   drasly

***Creación y Apertura de un Fichero****crea ( <variable fichero > )

Crea el fichero asociado a la variable y lo deja preparado para la inserción de datos en el mismo, con un único elemento: EOF, indicando que está vacío.Hay que asegurarse que el dispositivo físico esté listo para que no se produzca un error de ejecución.

abre ( < variable fichero > )

Abre un fichero previo para poder acceder a sus registros. Si no existe da error. Se traslada al buffer el primer grupo de registros. El primer registro pasa a ser el registro activo. Tras crear un fichero, éste queda abierto.

Page 16: Archivos secuenciales indexados   drasly

***Consulta de Datos***lee ( <variable fichero> , <variable> ). <variable>

Es una variable del mismo tipo que los registros del fichero que, después de la lectura, pasa a tener el valor del que era registro activo en ese momento.- Tras una operación de lectura el apuntador interno del buffer se incrementa automáticamente y pasa a señalar al registro siguiente. Si es necesario se carga el siguiente bloque en el buffer.- No se puede sobrepasar el fin de fichero, produciría error.

Utilizamos la función:EOF ( < variable fichero > ) : Lógico

Mientras nota (EOF (<variable fichero>))Lectura

Fin Mientras

Page 17: Archivos secuenciales indexados   drasly

***Cierre de un Fichero***

El cierre de un fichero consiste en pasar toda la información que contiene el buffer al fichero del disco (la escritura se efectuaba sobre el buffer) y limpiar a continuación el buffer.

cierra ( <variable fichero>)

Posicionamiento del Apuntador y Tamaño del Ficheroapunta ( <variable fichero> , <posición> )

donde posición es un entero (constante o variable) entre cero y el número total de registros menos uno.

posición ( < variable fichero > ):enterotamaño ( < variable fichero > ): entero

Si hacemosapunta ( <variable fichero> , tamaño (<variable fichero> ) )

estaremos colocados sobre la marca EOF. No da error.

Page 18: Archivos secuenciales indexados   drasly

***Inserción de Datos***escribe ( <variable fichero> , < variable > )

Donde <variable> tiene las mismas restricciones que en el caso de la lectura.Se grabarán los datos, machacando los anteriores. El apuntador se avanza automáticamente.

Si el fichero está recién creado, se irán insertando los registros en cada operación de escritura, avanzando el apuntador automáticamente y empujando la marca EOF al final del fichero.Si el fichero tiene datos, debemos avanzar el apuntador al final antes de insertar nuevos datos si queremos mantener los antiguos.

Page 19: Archivos secuenciales indexados   drasly

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

Page 20: Archivos secuenciales indexados   drasly

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.

Page 21: Archivos secuenciales indexados   drasly

VENTAJAS Y DESVENTAJAS

VENTAJAS:

Permite el acceso secuencial.

Permite el acceso directo a los registros.

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

Page 22: Archivos secuenciales indexados   drasly

DESVENTAJAS:

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

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.

Solo se puede utilizar soportes direccionables.

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

Page 23: Archivos secuenciales indexados   drasly

Ejemplo Sencillo

Creado en Dev C++

Este es un ejemplo el cual crea un bloc de notas con el nombre que le colocamos en nuestro código y almacena el msj que se ha escrito en el.

Page 24: Archivos secuenciales indexados   drasly
Page 25: Archivos secuenciales indexados   drasly

El bloc de notas se crea donde tengamos almacenado nuestro

programa, en este caso se creo en los archivos de la carpeta de DEV

C++.

Con el nombre que habíamos declarado anteriormente.

Page 26: Archivos secuenciales indexados   drasly

Al abrir el bloc de notas se

muestra este mensaje

Page 27: Archivos secuenciales indexados   drasly

EJEMPLO EN ID DE ECLIPSE

Page 28: Archivos secuenciales indexados   drasly
Page 29: Archivos secuenciales indexados   drasly
Page 30: Archivos secuenciales indexados   drasly

GRACIAS