Organizacion de ficheros AGS

9

Click here to load reader

Transcript of Organizacion de ficheros AGS

Page 1: Organizacion de ficheros AGS

ORGANIZACIÓN DE FICHEROS

ANDRÉS GONZÁLEZ SUÁREZ1º ASIR

Page 2: Organizacion de ficheros AGS

1.- FICHEROS CON ORGANIZACIÓN SECUENCIAL

1.1- CARACTERÍSTICAS.

Un fichero con organización secuencial es aquel en el que los registros se van grabando uno a continuación de otro, sobre el soporte informático, sin dejar huecos en medio.

En este tipo de ficheros existe una correspondencia total entre el orden lógico y el orden físico, si entendemos por orden lógico el orden en que son dados de alta y recuperados los registros y por orden físico el orden en que están grabados los registros en el soporte.

Los registros normalmente estarán ordenados por el contenido de uno o más campos para hacer más fácil el trabajo de búsqueda, inserción y borrado de registros.

La organización secuencial es aconsejable para ficheros con un índice de utilización muy elevado y estables.

1.2.- VENTAJAS E INCONVENIENTES.

1.2.1.- VENTAJAS.

· Aprovecha al máximo el soporte, al no dejar huevos entre los registros.· Rápido acceso al registro siguiente. Por lo que se hace ideal cuando en cada

operación de actualización o consulta se van a procesar la mayoría de los registros.· Se pueden utilizar cualquier tipo de registros: de longitud fija, variable o indefinida.· Se pueden grabar en cualquier tipo de soporte, tanto en secuenciales como en

direccionables.· Todos los lenguajes de programación disponen de instrucciones para trabajar con

este tipo de ficheros.

1.2.2.- INCONVENIENTES.

· El único modo de acceso es el acceso secuencial, por lo que para leer el registro que ocupe la posición `n` es necesario leer los `n-1` registros anteriores. Esto hace que este tipo de organización no sea adecuado para ficheros en los que se necesita procesar frecuentemente registros aislados, es decir, que tengan un índice de utilización bajo.

· No se pueden insertar registros entre los que ya están grabados. Si tenemos el fichero ordenado por el contenido de un campo y queremos dar de alta un registro, que según ese orden debería ir entre dos registros que ya existen en el fichero, es necesario copiar todo el fichero en uno nuevo, grabando en el nuevo fichero todos los registros, insertando el registro que se quiere dar de alta en la posición que le corresponda. Otra posibilidad es ir dando de alta los registros al final del fichero y a continuación realizar una operación de reordenación de todo el fichero.

· Si el fichero está grabado en un soporte secuencia, como por ejemplo una cinta magnética, para poder hacer modificaciones o borrado de registros es necesario hacer una copia del fichero en un fichero nuevo. Si el soporte no es secuencial las modificaciones se pueden hacer sobre el mismo registro, y el borrado se puede hacer de forma lógica, es decir, mediante la grabación de una marca de registro.

Page 3: Organizacion de ficheros AGS

2.- ORGANIZACIÓN RELATIVA O DIRECTA.

2.1.- CARACTERÍSTICAS.

La organización directa está basada en la independencia entre el orden en que se dan de alta los registros y la posición en la que se graban en el soporte. La posición en la que se graban los registros está en función de la información que tenga el campo clave del registro.

En esta organización el espacio total disponible para el fichero se divide en celdas destinadas cada una de ellas a contener un registro y sólo uno. Las celdas están numeradas correlativamente y se puede acceder al contenido de un registro, de forma directa, si conocemos la dirección relativa de la celda en la que está grabado.

Esta organización sólo es posible en soportes direccionables, pues el acceso a los registros se hace sin necesidad de leer los anteriores. Es la organización que tiene un menor tiempo de acceso a un registro, en acceso directo. Se usa cuando el acceso a los datos de un registro se hace siempre empleando la misma clave y la velocidad de acceso a un registro es lo que más nos importa.

2.2.- A TENER EN CUENTA AL ELEGIR UNA TÉCNICA DE DIRECCIONAMIENTO.

· Que sea fácil de aplicar. Tenemos que tener en cuenta que en esta organización es el usuario el que se encarga de calcular la posición en la que se van a guardar los registros, y no como en los ficheros indexados, que era el sistema operativo el que se encargaba de esto.

· Que deje el menos número de huecos. Se debe procurar que el método seleccionado nos proporcione valores entre 1 y `n`, siendo `n` el número de celdas que tiene el fichero, sin dejar celdas vacías.

· Que las claves de registros diferentes nos den direcciones diferentes. Cuando dos o más claves diferentes proporcional, al aplicar la técnica de direccionamiento, la misma dirección se dice que se produce un “sinónimo”. También se dice que esos registros “colisionan”. Cuando las claves de dos registros dieron lugar a un “sinónimo” (indican la misma celda), sólo uno de ellos puede ser almacenado en esa celda y tenemos que tener previsto algún procedimiento para calcular la posición en la que se tiene que grabar el otro registro. Los métodos más empleados para el tratamiento de sinónimos son los siguientes:

- Almacenar el registro que colisiona en el primer hueco libre que se encuentra a partir de la dirección que le corresponde, y que esté ya ocupada. A este método se le conoce como búsqueda lineal o direccionamiento abierto.

- Creando una zona especial del fichero en la que se grabará todos los registros que dieron lugar a un sinónimo. A esta zona del fichero se le suele llamar “área de desbordamiento u overflow”. Este es el sistema más empleado.

2.3.- VENTAJAS E INCONVENIENTES.

2.3.1.- VENTAJAS.

· Al emplear un modo de acceso directo son los ficheros los que permiten acceder de la forma más rápida posible a un registro cualquiera del fichero. Por tanto es la organización ideal para los procesos en los que el tiempo de acceso a los registros es lo más importante, siempre y cuando el acceso se haga siempre por el campo clave. El caso más favorable para utilizar la organización directa es cuando las claves son numéricas y permiten utilizar el direccionamiento directo.

· Permite la actualización de los registros en el mismo fichero, sin necesidad de copiar el fichero.

· Permite realizar procesos de actualización en tiempo real.

Page 4: Organizacion de ficheros AGS

2.3.2.- INCONVENIENTES.

· La relación entre clave y dirección (número de registro) la define el programados y sólo él es responsable de manejarla correctamente. El acceso a un registro se hace indicándole al sistema su dirección relativa dentro del fichero (número de registro) y la comprobación de que el registro leído es o no el que buscamos la tiene que hacer el programador. El sistema operativo no nos avisa de posible errores que se produzcan en el cálculo de la dirección.

· Cuando el rango de claves posibles es muy superior al de claves que realmente están grabadas en el fichero, habrá mucho espacio desaprovechado puesto que tenemos que reservar espacio a todos y cada unos de los registros teóricamente posibles. Pueden existir celdas vacías.

· El algoritmo de direccionamiento debe garantizarnos que no se nos producirán dos direcciones iguales para dos valores de clave distintos. En el caso de no elegir un buen método de direccionamiento puede que la aparición de sinónimos haga complicado el acceso a algunos registros debido a que tendríamos que emplear un método de tratamiento de sinónimos que debe controlar el programador.

· No permite el acceso secuencial a los registros por otro orden que no sea el orden en que están grabados en el soporte.

· Sólo se puede utilizar un campo clave para acceder a los registros.

Page 5: Organizacion de ficheros AGS

3.- ORGANIZACIÓN ALEATORIA O INDIRECTA.

3.1.- CARACTERÍSTICAS.

La idea básica de este tipo de organización consiste en guardar físicamente los registros en lugares de la memoria secundaria no consecutivos.

Para encontrar donde está cada registro, la única solución es utilizar un campo clave de entre todos los que hay en el registro. Este campo clave, que suele ser numérico, permite averiguar la dirección física donde está almacenado el registro en la memoria secundaria mediante un algoritmo de transformación. Por eso, la clave suele denominarse “dirección de memoria lógica”, para distinguirlo de la “dirección de memoria física” donde efectivamente se encuentra guardado el registro. Esta transformación de claves para obtener direcciones física se denomina “hashing”.

El “hashing” es utilizado para localizar archivos en la memoria secundaria. Cada registro debe tener un campo clave, y el “hashing” consiste en aplicar una función de transformación a cada una de estas claves (lo que también se denomina función “hash”). Dependiendo de la función “hash” empleada, pueden surgir colisiones o que muchas direcciones físicas no sean utilizadas, con lo que se desaprovecha el espacio de almacenamiento.

Los archivos relativos son más versátiles que los secuenciales porque permiten acceder a cualquier parte del fichero en cualquier momento, como si fueran “arrays”. Las operaciones de lectura y escritura pueden hacerse en cualquier punto del archivo.

3.2.- VENTAJAS E INCONVENIENTES.

3.2.1.- VENTAJAS.

· No es necesario ordenar el fichero.· Son muy rápidos en el tratamiento individual de los registros.· Permiten realizar accesos secuenciales.· Permiten realizar operaciones de lectura y escritura simultáneamente.· Acceso inmediato a los registros mediante su clave.

3.2.1.- INCONVENIENTES.

· Se quedarán muchos huecos libres si no elegimos la función “hash” adecuada.

Page 6: Organizacion de ficheros AGS

4.- ORGANIZACIÓN SECUENCIAL ENCADENADA.

4.1.- CARACTERÍSTICAS.

La consulta es secuencial, cada vez que se lee un registro, se lee además la posición del siguiente, lo que permite seguir la secuencia lógica del archivo, pudiéndose establecer una equivalencia entre esta organización una lista de registros.

Los archivos con organización encadenada son útiles en aquellos casos en que se deban realizar frecuentes inserciones de pocos registros. Si cada vez que se accede al archivo se van a insertar muchos registros en comparación con el `n` total, será preferible una organización secuencial. La principal ventaja de esta organización es su flexibilidad y el inconveniente es su limitación en una consulta secuencial, además del espacio adicional ocupado por el puntero en cada registro.

En estos ficheros la secuencia física y la secuencia lógica no coinciden, pudiendo ocurrir que el último registro en secuencia física sea el primero en secuencia lógica y viceversa.

4.2.- CONSULTA, INSERCIÓN, BORRADO Y MODIFICACIÓN.

4.2.1.- CONSULTA.

La consulta es secuencial, cada vez que se lee un registro, se lee además la posición del siguiente, lo que permite seguir la secuencia lógica del archivo, pudiéndose establecer una equivalencia entre esta organización y una lista de registros.

4.2.2.- INSERCIÓN.

Será necesario para insertar un registro localizar la dirección en la que se desea insertar el registro.

Físicamente, el registro se escribe en una zona vacía del soporte, con la misma dirección en el campo que el registro que lo precede, modificándose posteriormente el registro precedente para actualizar el valor de su puntero, que debe contener la dirección del nuevo registro.

4.2.3.- BORRADO.

Un registro deja de estar en la secuencia de lectura del archivo cuando se elimina su dirección del puntero del registro anterior. Para borrar un registro se asigna al puntero precedente la dirección del registro posterior. El sistema operativo puede o no liberar el espacio ocupado por el registro si libera el espacio, y dicho espacio será asignado por otro archivo.

4.2.4.- MODIFICACIÓN.

Si la modificación no implica un aumento de longitud del registro, este puede reescribirse en el mismo espacio. En el caso de que el registro aumente su longitud, se debe insertar el registro y posteriormente borrar la versión anterior a la modificada.

Page 7: Organizacion de ficheros AGS

5.- ORGANIZACIÓN SECUENCIAL INDEXADA.

5.1.- CARACTERÍSTICAS.

A los ficheros con este tipo de organización se les llama también ficheros indexados, por que se basan en la utilización de índices que permiten el acceso a un registro del fichero de forma directa, sin tener que leer los anteriores. Estos índices son similares a los de los libros. Si nos interesa leer un capítulo concreto, podemos recurrir al índice que nos dice en que página comienza, y abrimos el libro por esa página, sin tener que mirar en todas las páginas anteriores para localizarlo.

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. A este se le llama “clave primaria”.

Este tipo de fichero permite utilizar el modo de “acceso secuencial” y el modo de “acceso directo” para leer la información guardada en sus registros.

Solamente se puede grabar en un soporte direccionable (por ejemplo, un disco magnético). Si no fuera así, no podría emplear el acceso directo.

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

5.2.- ESTRUCTURA.

· Área de datos: es el área en la que se escriben los registros cuando es creado el fichero. Los registros de un fichero 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.

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

· Área de desbordamiento u Overflow: aquí 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.

5.3.- VENTAJAS E INCONVENIENTES.

5.3.1.- VENTAJAS.

· Permite el acceso secuencial. Esto es muy interesante cuando la tasa de actividad es alta. En el acceso secuencial, además, los registros se leen ordenados por el campo clave.

· Permite el acceso directo a los registros. Primero busca la clave en el área de índice y luego va a leer al área de datos la dirección que le indica la tabla.

· Se pueden actualizar los registros en el mismo fichero, sin necesidad de crear un fichero nuevo de copia en el proceso de actualización. Permite tanto el procesamiento por lotes (procesos que hay que preparar previamente) como el procesamiento en tiempo real (las actualizaciones de la información se llevan a cabo en el momento en el que se producen).

Page 8: Organizacion de ficheros AGS

5.3.2.- INCONVENIENTES.

· Ocupa más espacio en el disco que los ficheros secuenciales, 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. Requiere una reorganización periódica.

· Sólo 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 9: Organizacion de ficheros AGS

6.- ORGANIZACIÓN SECUENCIAL INDEXADA-ENCADENADA.

6.1.- CARACTERÍSTICAS.

Este tipo de organización consiste en aprovechar las ventajas de la organización secuencial indexada y de la organización secuencial encadenada, facilitando las inserciones y eliminaciones de los registros en un archivo indexado, que es de índices y punteros.

Para eliminar registros se marcan, en lugar de ser borrados físicamente.Las adiciones se realizan sobre la zona de overflow, ya que no se pueden añadir registros en

el área primaria una vez creado el fichero.Estos ficheros deben ser reorganizados a menudo, ya que la no eliminación física de los

registros marcados y las adiciones crea un área de overflow grande, llegando a funcionar como ficheros secuenciales en el caso de no ser reorganizados.

Este tipo de organización se utiliza cuando existe la necesidad tanto de acceder a los registros secuencialmente o individualmente.

Utiliza punteros entre los registros de la zona primaria y la de overflow.El fichero de datos se organizar en bloques o páginas de varios registros y tiene un campo

con una clave para identificarlos.Cada fichero índice almacena el valor del campo clave del último registro de un bloque y la

dirección del primer registro de dicho bloque.

6.2.- ESTRUCTURA.

· Área de datos: es en la que se escriben los registros cuando el archivo es creado en el directorio del fichero.

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

· Área de Overflow: es la zona de memoria done se almacenan los registros duplicados.

6.3.- FUNCIONAMIENTO.

La adiciones se realizan sobre la zona de overflow, ya que no se pueden añadir registros en el área primaria una vez creado el fichero.

Para eliminar registros se marcan, ya que la no eliminación física de éstos crean un área de overflow grande.

La forma de acceder a un registro es la siguiente:· Primero, ir al área de índices.· Segundo, buscar la dirección de inicio del bloque de registros al que pertenece.· Si no se encuentra al registros en el área de índices, el último registro del bloque

debe apuntar a un bloque del área de overflow.· Si tampoco se localiza en el área de overflow, se termina la búsqueda.