Organizacion de ficheros AGS

1.807 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.807
En SlideShare
0
De insertados
0
Número de insertados
1
Acciones
Compartido
0
Descargas
31
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Organizacion de ficheros AGS

  1. 1. ORGANIZACIÓN DE FICHEROS ANDRÉS GONZÁLEZ SUÁREZ 1º ASIR
  2. 2. 1.- FICHEROS CON ORGANIZACIÓN SECUENCIAL1.1- CARACTERÍSTICAS. Un fichero con organización secuencial es aquel en el que los registros se van grabando unoa 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 ordenfísico, si entendemos por orden lógico el orden en que son dados de alta y recuperados los registrosy 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 parahacer 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 muyelevado 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 cadaoperació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 endireccionables. · Todos los lenguajes de programación disponen de instrucciones para trabajar coneste tipo de ficheros. 1.2.2.- INCONVENIENTES. · El único modo de acceso es el acceso secuencial, por lo que para leer el registro queocupe la posición `n` es necesario leer los `n-1` registros anteriores. Esto hace que este tipo deorganización no sea adecuado para ficheros en los que se necesita procesar frecuentemente registrosaislados, es decir, que tengan un índice de utilización bajo. · No se pueden insertar registros entre los que ya están grabados. Si tenemos elfichero ordenado por el contenido de un campo y queremos dar de alta un registro, que según eseorden debería ir entre dos registros que ya existen en el fichero, es necesario copiar todo el ficheroen uno nuevo, grabando en el nuevo fichero todos los registros, insertando el registro que se quieredar de alta en la posición que le corresponda. Otra posibilidad es ir dando de alta los registros alfinal 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 porejemplo una cinta magnética, para poder hacer modificaciones o borrado deregistros es necesario hacer una copia del fichero en un fichero nuevo. Si elsoporte no es secuencial las modificaciones se pueden hacer sobre el mismoregistro, y el borrado se puede hacer de forma lógica, es decir, mediante lagrabación de una marca de registro.
  3. 3. 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 altalos registros y la posición en la que se graban en el soporte. La posición en la que se graban losregistros 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 destinadascada una de ellas a contener un registro y sólo uno. Las celdas están numeradas correlativamente yse puede acceder al contenido de un registro, de forma directa, si conocemos la dirección relativa dela celda en la que está grabado. Esta organización sólo es posible en soportes direccionables, pues el acceso a los registros sehace sin necesidad de leer los anteriores. Es la organización que tiene un menor tiempo de acceso aun registro, en acceso directo. Se usa cuando el acceso a los datos de un registro se hace siempreempleando 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 elusuario el que se encarga de calcular la posición en la que se van a guardar los registros, y no comoen 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 nosproporcione valores entre 1 y `n`, siendo `n` el número de celdas que tiene el fichero, sin dejarceldas vacías. · Que las claves de registros diferentes nos den direcciones diferentes. Cuando dos o másclaves diferentes proporcional, al aplicar la técnica de direccionamiento, la misma dirección se diceque se produce un “sinónimo”. También se dice que esos registros “colisionan”. Cuando las clavesde dos registros dieron lugar a un “sinónimo” (indican la misma celda), sólo uno de ellos puede seralmacenado en esa celda y tenemos que tener previsto algún procedimiento para calcular la posiciónen la que se tiene que grabar el otro registro. Los métodos más empleados para el tratamiento desinónimos son los siguientes: - Almacenar el registro que colisiona en el primer hueco libre que se encuentra apartir de la dirección que le corresponde, y que esté ya ocupada. A este método se le conoce comobúsqueda lineal o direccionamiento abierto. - Creando una zona especial del fichero en la que se grabará todos los registros quedieron lugar a un sinónimo. A esta zona del fichero se le suele llamar “área de desbordamiento uoverflow”. 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 dela forma más rápida posible a un registro cualquiera del fichero. Por tanto es la organización idealpara los procesos en los que el tiempo de acceso a los registros es lo más importante, siempre ycuando el acceso se haga siempre por el campo clave. El caso más favorable para utilizar laorganización directa es cuando las claves son numéricas y permiten utilizar el direccionamientodirecto. · Permite la actualización de los registros en el mismo fichero, sin necesidad decopiar el fichero. · Permite realizar procesos de actualización en tiempo real.
  4. 4. 2.3.2.- INCONVENIENTES. · La relación entre clave y dirección (número de registro) la define el programados ysólo él es responsable de manejarla correctamente. El acceso a un registro se hace indicándole alsistema su dirección relativa dentro del fichero (número de registro) y la comprobación de que elregistro leído es o no el que buscamos la tiene que hacer el programador. El sistema operativo nonos 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 realmenteestán grabadas en el fichero, habrá mucho espacio desaprovechado puesto que tenemos que reservarespacio 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 dosdirecciones iguales para dos valores de clave distintos. En el caso de no elegir un buen método dedireccionamiento puede que la aparición de sinónimos haga complicado el acceso a algunosregistros debido a que tendríamos que emplear un método de tratamiento de sinónimos que debecontrolar el programador. · No permite el acceso secuencial a los registros por otro orden que no sea el ordenen que están grabados en el soporte. · Sólo se puede utilizar un campo clave para acceder a los registros.
  5. 5. 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 enlugares de la memoria secundaria no consecutivos. Para encontrar donde está cada registro, la única solución es utilizar un campo clave de entretodos los que hay en el registro. Este campo clave, que suele ser numérico, permite averiguar ladirección física donde está almacenado el registro en la memoria secundaria mediante un algoritmode transformación. Por eso, la clave suele denominarse “dirección de memoria lógica”, paradistinguirlo de la “dirección de memoria física” donde efectivamente se encuentra guardado elregistro. 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 registrodebe tener un campo clave, y el “hashing” consiste en aplicar una función de transformación a cadauna 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, conlo que se desaprovecha el espacio de almacenamiento. Los archivos relativos son más versátiles que los secuenciales porque permiten acceder acualquier parte del fichero en cualquier momento, como si fueran “arrays”. Las operaciones delectura 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.
  6. 6. 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 delsiguiente, lo que permite seguir la secuencia lógica del archivo, pudiéndose establecer unaequivalencia entre esta organización una lista de registros. Los archivos con organización encadenada son útiles en aquellos casos en que se debanrealizar frecuentes inserciones de pocos registros. Si cada vez que se accede al archivo se van ainsertar muchos registros en comparación con el `n` total, será preferible una organizaciónsecuencial. La principal ventaja de esta organización es su flexibilidad y el inconveniente es sulimitación en una consulta secuencial, además del espacio adicional ocupado por el puntero en cadaregistro. En estos ficheros la secuencia física y la secuencia lógica no coinciden, pudiendo ocurrir queel ú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óndel siguiente, lo que permite seguir la secuencia lógica del archivo, pudiéndose establecer unaequivalencia 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 deseainsertar el registro. Físicamente, el registro se escribe en una zona vacía del soporte, con la mismadirección en el campo que el registro que lo precede, modificándose posteriormente el registroprecedente 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 sudirección del puntero del registro anterior. Para borrar un registro se asigna al puntero precedente ladirección del registro posterior. El sistema operativo puede o no liberar el espacio ocupado por elregistro 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 puedereescribirse en el mismo espacio. En el caso de que el registro aumente su longitud, se debe insertarel registro y posteriormente borrar la versión anterior a la modificada.
  7. 7. 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 quese basan en la utilización de índices que permiten el acceso a un registro del fichero de formadirecta, sin tener que leer los anteriores. Estos índices son similares a los de los libros. Si nosinteresa 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 paralocalizarlo. El diseño del registro tiene que tener un campo, o combinación de campos, que permitaidentificar cada registro de forma única, es decir, que no pueda haber dos registros que tengan lamisma 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 “accesodirecto” 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 acrear problemas al usuario cuando maneje este tipo de ficheros. El usuario sabe lo que sucedecuando 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 dealmacenamiento directo, en secuencia ascendente, de acuerdo con los valores de la clave y enpáginas o bloques de longitud fija. · Área de índices: es creada por el sistema al mismo tiempo que se van almacenando losdatos. Contiene una tabla que asocia las claves con las direcciones de los registros en el área dedatos. Cada entrada del área de índices está formada por el valor más alto de la clave de cada grupode 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 punterosconservando 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 esalta. 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 índicey 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 unfichero 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 (lasactualizaciones de la información se llevan a cabo en el momento en el que se producen).
  8. 8. 5.3.2.- INCONVENIENTES. · Ocupa más espacio en el disco que los ficheros secuenciales, debido al uso del áreade índices. · Tiene tendencia a que aumente el tiempo medio de acceso a los registros, cuando seproducen muchas altas nuevas con claves que hay que intercalar entre las existentes, ya queaumenta 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.
  9. 9. 6.- ORGANIZACIÓN SECUENCIAL INDEXADA-ENCADENADA.6.1.- CARACTERÍSTICAS. Este tipo de organización consiste en aprovechar las ventajas de la organización secuencialindexada y de la organización secuencial encadenada, facilitando las inserciones y eliminaciones delos 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 enel área primaria una vez creado el fichero. Estos ficheros deben ser reorganizados a menudo, ya que la no eliminación física de losregistros marcados y las adiciones crea un área de overflow grande, llegando a funcionar comoficheros secuenciales en el caso de no ser reorganizados. Este tipo de organización se utiliza cuando existe la necesidad tanto de acceder a losregistros 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 campocon una clave para identificarlos. Cada fichero índice almacena el valor del campo clave del último registro de un bloque y ladirecció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 eldirectorio del fichero. · Área de índices: es creada por el sistema al mismo tiempo que se van almacenando losdatos. Contiene una tabla que asocia las claves con las direcciones de los registros en el área dedatos. · Á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 enel á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 deoverflow 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 bloquedebe apuntar a un bloque del área de overflow. · Si tampoco se localiza en el área de overflow, se termina la búsqueda.

×