### $$$ 14 $$$ Utilización de ficheros según su organización. ### $$$ 1 $$$ Introducción. $$$ Los sistemas informáticos requieren, para la manipulación de la información, que ésta se encuentre previamente almacenada en alguno de los dispositivos de almacenamiento que estos sistemas reconocen. Un fichero es una agregación de datos estructurados que es vista por el sistema operativo de la computadora como un todo, como una unidad estructural sobre la cual se pueden realizar una serie de operaciones dependiendo del dispositivo fisico en el cual se encuentre y de la propia estructura interna de los datos en el mismo. El conjunto de datos que forman parte de los ficheros se agrupan en unidades denominadas registros cuya función es representar a unidades de información del problema que se está tratando. El número y estructura de los datos que forman parte de los registros es determinado en la fase de análisis y diseño lógico del problema, mientras que la disposición de los registros y los datos en los ficheros (su estructura) es determinada en el diseño fisico. La estructura de los ficheros, la disposición de la información en los mismos, va a estar delimitada por el dispositivo fisico en el cual se encuentren, de forma que un mismo dominio de información podrá almacenarse con estructuras diferentes dependiendo del dispositivo en el cual se encuentre y, en función, por supuesto, de los requerimientos funcionales exigidos a los procedimientos que la manipulan. La vida de todo archivo comienza cuando se crea y acaba cuando se borra. Durante la vida del archivo se suelen realizar sobre él determinadas operaciones de recuperación o consulta y de mantenimiento o actualización. Estas operaciones las realizan programas específicos, que actúan a nivel de registro. Las operaciones de actualización que se pueden realizar sobre el archivo son: • Modificación de un registro • Eliminación o borrado de un registro. • Inserción de un registro. La mayor parte de las operaciones de recuperación y actualización implican Ja realización de una localización o búsqueda de un registro concreto para luego actuar sobre él (leerlo, escribir o cambiar parte de él, borrarlo, etc.). ### $$$ 2 $$$ Conceptos básicos. $$$ Un fichero es una agregación de datos estructurados que es vista por el sistema operativo de la computadora como un todo, como una unidad estructural sobre la cual se pueden realizar una serie de operaciones dependiendo del dispositivo fisico en el cual se encuentre y de la propia estructura interna de los datos en el mismo. El conjunto de datos que forman parte de los ficheros se agrupan en unidades denominadas registros cuya función es representar a unidades de información del problema que se está tratando. ### $$$ 2.1 $$$ Almacenamiento de la información. $$$ Los datos almacenados en la memoria de una computadora pueden mantenerse en ella como máximo, mientras se le suministre alimentación eléctrica. Al ser desconectada de la alimentación, la computadora pierde todos los datos almacenados en su memoria. Debido a ello, a este tipo de almacenamiento se le denomina con el término volátil. Los dispositivos de almacenamiento de ficheros, por el contrario, mantienen la información grabada en ellos aunque no se suministre alimentación a los mismos, o a la computadora en la que se encuentran instalados. Esto es debido a la naturaleza de estos dispositivos. La cabeza lectora/grabadora, cuando el dispositivo vuelve a su funcionamiento, es capaz de interpretar esas diferencias en la magnetización de la superficie y leer así los datos almacenados. Por ello, a este tipo de almacenamiento se le denomina con el término no volátil. Otra terminología hace referencia al almacenamiento en la memoria de la computadora como almacenamiento primario, mientras que otros dispositivos que almacenan ficheros reciben el nombre de almacenamiento secundario. ### $$$ 2.2 $$$ El gestor de ficheros. $$$ El gestor de ficheros de un sistema operativo es la parte del mismo que se encarga de administrar todo lo relacionado con los datos en los dispositivos de almacenamiento. Cuando un programa requiere el acceso a un fichero, es el gestor de ficheros el encargado de asociar a los elementos lógicos del fichero utilizados por el programa las correspondientes localizaciones fisicas donde se encuentran los datos. El sistema operativo utiliza como unidad de transferencia de datos al disco el bloque. Un bloque puede estar formado por uno o varios sectores (físicos o hardware) para así llevar un control, por software, más eficiente de los datos almacenados en el disco. El número de sectores por bloque depende del sistema operativo e incluso, algunos sistemas operativos permiten que éste sea un parámetro que el administrador del sistema puede seleccionar en el proceso de instalación del sistema operativo. Un bloque, por tanto, es una agrupación que datos que es considerada por el sistema operativo como la unidad de transferencia de información entre los dispositivos. El sistema operativo puede acceder directamente a los datos almacenados en un disco, pero esto supondría que las transferencias entre memoria y el disco serían muy frecuentes y haría que el manejo de ficheros tuviera un bajo desempeño debido al coste computacional de una operación de acceso al disco. En lugar de operar de esta forma, y para minimizar así la frecuencia de acceso al disco, el sistema operativo mantiene una zona en la memoria para alojar los bloques del disco de más reciente uso. Esta zona de memoria recibe el nombre de caché de disco. Cuando un programa requiere leer o escribir datos en el disco el sistema operativo accede en primer lugar a la caché de disco. Si el dato buscado se encuentra, en la caché, el sistema operativo no tiene que acceder al disco. Si el dato buscado no se encuentra en la caché, el sistema operativo accede al disco y mueve a la caché el bloque, consiguiendo así que los datos del bloque requerido se tomen siempre de la caché y que se mantengan en la caché los datos más frecuentemente utilizados. Del mismo modo, cuando el sistema debe reemplazar el bloque que en ese momento se encuentra en la caché, se escribe previamente el bloque de la caché al disco antes de reemplazarlo. ### $$$ 2.3 $$$ Rendimiento de la transferencia de la información. $$$ El número de registros lógicos que puede contener un registro fisico se denomina factor de bloqueo. Se puedendar las siguientes situaciones: • Registro lógico > Registro físico. En un bloque se contien en varios registros físicos por bloque; se denominan registros expandidos. • Registro lógico = Registro fisico. El factor de bloqueoes 1 y se dice que los registrosno están bloqueados. • Registro lógico < Registro físico. El factor de bloqueo es mayor que l y los registrosestán bloqueados. Un factor de bloqueo mayor que l siempre mejora el rendimiento; entonces, ¿por qué no incluir todos los registros en un solo bloque? La razón reside en que el aumentodel bloque implica el aumentode la memoria intermedia y por consiguiente se reduce el tamaño de la memoria central. ### $$$ 3 $$$ Tipos de archivos. $$$ En una aplicación informática se pueden utilizar archivos para realizar funciones diversas. Conocer la función que va a desempeñar un archivo concreto es fundamental a la hora de decidir como se debe organizar éste. Podemos clasificar los archivos como archivos permanentes y archivos temporales. ### $$$ 3.1 $$$ Archivos permanentes. $$$ Un archivo permanente contiene información relevante para una aplicación, es decir, los datos necesarios para el funcionamiento de la misma. Su vida es larga (al menos comparable a la de la aplicación para la que ha sido creado) y generalmente no puede generarse dé una forma inmediata a partir de otros archivos. Los archivos permanentes se pueden clasificar en: • Archivos maestros. Un archivo maestro contiene el estado actual de los datos susceptibles de ser modificados en la aplicación. • Archivos constantes. Un archivo constante es aquel que contiene datos fijos para la aplicación. En él las modificaciones son infrecuentes, normalmente se accede a él sólo para consultar. • Archivos históricos. Un archivo histórico es aquel que contiene datos que fueron actuales en tiempos anteriores. Se conservan para poder reconstruir la situación actual o situaciones anteriores. En algunos casos puede estar formado simplemente por los registros borrados del archivo maestro. Un archivo histórico puede contener, por ejemplo, los clientes que se han dado de baja en una entidad bancaria. ### $$$ 3.2 $$$ Archivos temporales. $$$ Un archivo temporal contiene información relevante para un determinado proceso o programa, pero no para el conjunto de la aplicación. Se genera a partir de los datos de archivos permanentes o para actualizar éstos, y su vida es generalmente muy corta. Los archivos temporales se pueden clasificar en: • Archivos intermedios. Se utilizan para almacenar resultados de un programa que han de ser utilizados por otro, dentro de una misma tarea. • Archivos de maniobras. Se utilizan para almacenar datos propios de un programa que éste no puede conservar en memoria principal, por falta de espacio en ésta. • Archivos de resultados. Se utilizan para almacenar datos elaborados que van a ser transferidos a un dispositivo de salida. ### $$$ 4 $$$ Operaciones sobre archivos. $$$ Las distintas operaciones que se pueden realizar son: • Creación . • Consulta . • Actualización . • Clasificación . • Reorganización . • Destrucción . • Reunión, fusión . • Rotura, estallido. Creación de un archivo. Es la primera operación que sufrirá el archivo de datos. Implica la elección de un entorno descriptivo que permita un ágil, rápido y eficaz tratamiento del archivo. Para utilizar un archivo, éste tiene que existir, es decir, las informaciones de este archivo tienen que haber sido almacenados sobre un soporte y ser utilizables. La creación exige organización, estructura, localizar o reservar espacio en el soporte de almacenamiento, transferencia del archivo del soporte antiguo al nuevo. Un archivo puede ser creado por primera vez en un soporte, proceder de otro previamente existente en el mismo o diferente soporte, ser el resultado de un cálculo o ambas cosas a la vez. Consulta de un archivo. Es la operación que permite al usuario acceder al archivo de datos para conocer el contenido de uno, varios o todos los requisitos. Actualización de un archivo. Es la operación que permite tener actualizado (puesto al día) el archivo, de tal modo que sea posible realizar las siguientes operaciones con sus registros: • Consulta del contenido de un registro . • Inserción de un registro nuevo en el archivo. • Supresión de un registro existente. • Modificación de un registro . Clasificaciân de un archivo. Una operación muy importante en un archivo es la clasificación u ordenación. Esta clasificación se realizará de acuerdo con el valor de un campo específico, pudiendo ser ascendente o descendente: alfabética o numérica. Reorganización de un archivo. Las operaciones sobre archivos modifican la estructura inicial o la óptima de un archivo. Los índices, enlaces (punteros), zonas de sinónimos, zonas de desbordamiento, etc., se modifican con el paso del tiempo, lo que hace a la operación de acceso al registro cada vez más lenta. La reorganización suele consistir en la copia de un nuevo archivo a partir del archivo modificado, a fin de obtener una nueva estructura lo más óptima posible. Destrucción de un archivo. Es la operación inversa a la creación de un archivo. Cuando se destruye un archivo, éste ya no se puede utilizar y por consiguiente no se podrá acceder a ninguno de sus registros. Reunión, fusión de un archivo. La reunión permite obtener un archivo a partir de otros varios. Se realiza una fusión cuando se reúnen vanos archivos en uno solo, intercalándose unos en otros, siguiendo unos criterios determinados. Rotura/estallido de un archivo. Es la operación de obtener varios archivos a partir de un mismo archivo inicial. ### $$$ 5 $$$ Operaciones según organizaciones. $$$ La organización de un fichero determina el modo de estructurar los registros pertenecientes a un fichero en almacenamiento secundario. Los métodos de acceso nos permitirán localizar dichos registros. La elección de una determinada organización permitirá realizar distintos tipos de acceso a los registros del fichero y, viceversa, si se desea acceder a un registro o conjunto de registros de una determinada forma, se deberá elegir una organización adecuada para ello. La organización de los ficheros y los métodos de acceso repercuten fuertemente en los tiempos de respuesta. Los métodos básicos de acceso son los siguientes: • Acceso secuencial. Para localizar un registro se necesita haber accedido al registro anterior. Puede resultar el modo de acceso más eficiente cuando se tiene que procesar el fichero completo (o un porcentaje del mismo). • Acceso directo. Se localiza un registro por su dirección, obtenida a partir del valor de una clave de direccionamiento o por la posición relativa que ocupa el registro en el fichero. ### $$$ 5.1 $$$ Organizaciones consecutivas. $$$ Las organizaciones consecutivas sitúan los registros fisicamente uno a continuación de otro. Si la colocación de los registros no tiene un orden lógico, el tipo de organización se denomina consecutiva serial; si, por el contrario, tienen un orden, según una clave de ordenación, se denomina consecutiva secuencial. El método de acceso que se utiliza para localizarlos registros almacenados es el secuencial si la organización es serial; si es secuencial puede utilizarse, además, un acceso directo por posición relativa del registro (búsqueda binaria o dicotómica). Es adecuada para recuperar ficheros en procesos por lotes, pues optimiza al máximo el espacio de almacenamiento, es muy fácil de programar, puede utilizar registros de longitud variable y heterogéneos, y no está limitada al tipo de soporte directo. Es conveniente utilizar este tipo de organización cuando existe una carga masiva de datos, las tablas son pequeñas, o cuando, en el proceso del fichero se accede normalmente a casi todas las filas. Esta es la única organización de archivos susceptible de ser gestionada en un dispositivo no direccionable (soportes secuenciales tales como cinta magnética, cinta de papel o tarjeta perforada). La secuencia en que aparecen los registros en el archivo puede estar determinada por el valor de algún campo o ser simplemente temporal. Las distintas operaciones o acciones que se pueden realizar sobre archivos con esta organización son: • Añadir. Sólo es posible escribir al final del archivo. • Consulta o recuperación. La consulta se realiza en orden secuencial. • Inserción, modificación y eliminación. No es posible realizar fácilmente ninguna de estas operaciones sobre un archivo secuencial. Si el archivo se encuentra sobre un soporte direccionable (disco por ejemplo) es posible realizar algunas actualizaciones sobre el archivo secuencial, sin necesidad de crear otro archivo maestro. En este supuesto se podrán realizar las siguientes operaciones sobre el archivo, además de las ya descritas: • Modificación. Una vez localizado un registro se puede reescribir éste en el propio archivo, siempre que al modificar el registro no aumente su longitud. • Borrado. No es posible eliminar un registro del archivo. No obstante, es posible marcarlo de tal forma que al leer se identifique como no válido, esto es lo que se llama borrado lógico. • Consulta. Si los registros son de longitud fija es posible determinar la dirección de comienzo de cada uno a partir de su posición relativa en el archivo. Si el archivo se encuentra sobre un soporte direccionable (disco por ejemplo) es posible almacenar junto a cada registro un puntero con la dirección del registro siguiente, según el orden lógico del archivo. Estructuralmente un archivo secuencial encadenado es equivalente a una lista lineal de registros. Las distintas operaciones se realizan sobre el archivo del siguiente modo: • Recuperación o consulta. La consulta es secuencial, al igual que en un archivo con organización secuencial pura. Cada vez que se lee un registro se lee la posición del siguiente, lo que permite seguir la secuencia lógica del archivo. • Inserción. Para insertar un registro es necesario, en primer lugar, localizar la posición en que se desea insertar; esto es, entre qué dos registros se quiere que aparezca al leer el archivo. Físicamente el registro se escribe en una zona libre, con el mismo valor de puntero que el registro que le va a preceder. Por último, se modifica el registro anterior para actualizar el valor de su puntero, de forma que contenga la dirección del nuevo registro. • 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 del registro anterior la dirección del registro siguiente al que se desea borrar. El sistema operativo puede o no liberar el espacio ocupado por el registro. En el primer caso, dicho espacio puede ser ocupado por información perteneciente a otro archivo. En ambos casos, ese espacio podrá ser ocupado por otro registro del mismo archivo. • Modificación. Si la modificación no implica un aumento de longitud del registro, éste puede reescribirse en el mismo espacio. En el caso de que el registro aumente de longitud se debe insertar el registro y, posteriormente, borrar la versión anterior a la modificación. Si la longitud de los registros es mucho menor que el tamaño del bloque del dispositivo (factor de blocaje mayor que uno), en cada acceso a disco se podrán leer o escribir varios registros. Si en cada nodo de la cadena hay un solo registro se ralentiza el acceso, ya que la lectura de cada registro implicará un acceso al dispositivo. Para reducir el tiempo de acceso se deben almacenar en cada bloque tantos registros como sea posible, encadenando los bloques, en lugar de encadenar los registros. Los registros contenidos en cada bloque serán consecutivos según el orden lógico del archivo. ### $$$ 5.2 $$$ Organizaciones direccionadas. $$$ Este tipo de organización almacena los registros según una relación establecida entre el valor de la clave de direccionamiento y la dirección fisica del registro, siendo posible realizar un acceso directo a un registro si se conoce la clave de direccionamiento, aunque puede impedir (o al menos dificultar) el acceso secuencial. La ubicación de un registro se determinará aplicando un algoritmo de transformación a la clave de direccionamiento, lo que dará como resultado la dirección base donde se debería almacenar dicho registro. La dirección base estará comprendida dentro de un rango de valores, que representan las direcciones relativas, denominado espacio de direccionamiento, el cual se fija previamente en función del volumen de datos que hay que almacenar. La organización direccionada resulta muy adecuada en procesos de tipo selectivo donde hay que acceder a un registro por el valor de la clave de direccionamiento o por un rango de la misma. ### $$$ 5.2.3 $$$ Operaciones básicas sobre un archivo con organización directa. $$$ Con un archivo con organización directa se pueden realizar todas las operaciones descritas. A diferencia de otras organizaciones, es necesario realizar un proceso especial de creación del archivo. Esta implica la elección de uno de los procedimientos de direccionamiento descritos en los epígrafes precedentes y de un método de gestión de sinónimos, así como reservar espacio en disco para la zona principal, • Consulta. La consulta se realiza por clave. • Borrado. Siempre se realiza un borrado lógico, pudiéndose reutilizar el espacio del registro eliminado. • Modificación e inserción. Siempre se puede modificar o insertar un nuevo registro,realizandola transformaciónde clave correspondiente. La organización directaes útil para archivos donde los accesos deben realizarse por clave, accediéndose siempre a registros concretos. Si la información se va a procesar en conjunto, con frecuencia puede ser más rentable una organización secuencial indexada. ### $$$ 5.3 $$$ Organizaciones indexadas. $$$ Sobre las organizaciones básicas (consecutivas y directas) es posible superponer nuevas estructuras que consiguen mejorar la eficiencia en el acceso a los registros que cumplan ciertas condiciones de búsqueda; se trata de las organizaciones indexadas. Puede ocurrir también que la estructura indexada esté unida a los datos, de forma que éstosno tenganuna organizaciónbásica previa a la construccióndelíndice. Una estructura de índice se define sobre uno o más campos de un fichero, llamados clave de indexación; de forma que cada uno de los valores de la clave de indexación se asocia a la dirección del registro al que le corresponde dicho valor. Con las organizaciones secuenciales indexadas se pueden realizar las siguientes operacionesa nivelde registro: • Consulta. Con este tipo de archivos se pueden realizar consultas secuenciales. Además, esta organización de archivo permite realizar consultas por clave (esto es, localizar un registro conocida su clave) sin necesidad de leer los registros que le anteceden en el archivo. El procedimiento a seguir para realizar una consulta por clave es: l. Leer secuencialmente las claves en la zona de índices hasta encontrar una mayor o igual a la del registro buscado. Obtener la dirección de comienzo del tramo donde se encuentra el registro. 2. Leer secuencialmente en la zona de registros a partir de la dirección obtenida en la zona de índices hasta encontrar el registro buscado o uno con valor de clave mayor que el buscado. En este último caso el registro no se encuentra en el archivo. • Inserción. Dado que ambas zonas son secuenciales, no es posible insertar un registro en archivos con esta organización. En algunos casos se permite la escritura de nuevos registros al final de la zona de registros. Estos registros, como es lógico, no podrán ser consultados por clave con el procedimiento antes descrito. • Eliminación y modificación. Al estar los registros escritos en secuencia no es posible borrar un registro. La única forma de eliminar la información contenida en un registro es marcándolo, lo que se conoce como borrado lógico. Las modificaciones son posibles tan solo si el registro no aumenta de longitud al modificarlo y no se altera el valor de la clave de éste. Un valor de la clave de direccionamiento con la dirección asociada constituye una entrada al índice. El acceso al registro de datos se hace por el valor de la clave de indexación, siendo dicha clave el criterio de búsqueda en consultas selectivas. La clave de indexación puede ser un identificador del fichero de datos (índice primario), o un conjunto de campos no identificadores (indice secundario). Sobre un mismo fichero de datos se pueden definir varios índices, cada uno sobre una clave de indexación. Cualquier búsqueda selectiva de un registro en una organización indexada obliga a una consulta previa al índice (la cual proporciona la dirección del registro)y un posterior acceso directoal ficherode datos por medio de la dirección obtenida. Por tanto, para optimizar la eficiencia en los accesos, será conveniente mantener el índice, siempre que sea posible, en memoria principal. Este tipo de organización admite que no exista una entrada al indice por cada registro del fichero (índice no denso), en cuyo caso el fichero de datos tiene que estar ordenado por la clave de direccionamiento. Si existe una entrada por cada registro (índice denso) el fichero no necesita estar ordenado. Los índices no densos admiten la creación de índices sobre los índices, teniendo así estructuras indexadas a varios niveles (índices multinivel). Esta organización resulta especialmente útil cuando se deben combinar consultas a registros concretos y el procesamiento secuencial de todo archivo. Su principal inconveniente es la imposibilidad de realizar actualizaciones. Para permitir actualizaciones es necesario incluir en la estructura una zona de desbordamientos. En la zona de desbordamientos (o zona de overflow) los registros están desordenados, cada nuevo registro se escribe el final de ésta. Esto complica la búsqueda por llave, pues, si el registro no es encontrado en la zona de registros por el algoritmo antes descrito, es necesario buscarlo secuencialmente en la zona de desbordamientos. Además, se imposibilita la consulta secuencial del archivo, ya que los registros no aparecen ordenados por llave. Otra mejora de la estructura anterior es incluir punteros entre los registros, de forma que éstos mantengan el orden lógico de los registros. A esta organización se le llama secuencial indexada encadenada. Cuando se crea un archivo con esta organización su estructura es igual a la de un archivo secuencial indexado, salvo que se ha previsto un campo en cada registro para albergar un puntero. Para insertar un nuevo registro es necesario encontrar el que le sigue en la zona de registros. Se escribe el nuevo registro en la zona de desbordamientos y se reescribe el siguiente según el orden lógico, para incluir el puntero al registro recién grabado. La eliminación de un registro debe realizarse por marcas. Esto no implica en ningún caso la realización de modificaciones en el índice, pero degrada al archivo. La consulta es semejante a la realizada para el caso no encadenado. Esta organización reúne las ventajas de la organización secuencial indexada y de la organización secuencial encadenada. Cuando el número de registros borrados es grande o las cadenas de desbordamiento son largas el archivo se degrada, esto es, su estructura deja de ser eficaz. Cuando se llega a este punto es necesario reorganizar el archivo; esto es, volver a crearlo introduciendo los registros secuencialmente según el valor de clave. De entre todas las organizaciones basadas en índices destacan las secuencias indexadas (ISAM),que añaden a las ventajas de las secuenciales(rapidez en el acceso secuencialal fichero), la posibilidad de acceder directamentea ciertos registros (acceso directo) apoyándose en el índice. En este tipo de organizaciones se penalizan Jas actuaciones respecto a Jas de tipo secuencial, por la necesidad de actualizar el índice; además,se deteriorancuandose producenmuchasactualizaciones. Las técnicas de indexación difieren a causa del tipo de índice (primario/secundario,denso/no denso), la estructura del índice (ordenado/desordenado, mononivel/multinivel),la organización del ficherode datos (serial/secuencial/disperso), y/olaformadetratar losdesbordamientos Los índicesmultinivel, pueden no tener un númerofijo de niveles a fin de evitar desbordamientos y/o reorganizaciones del índice, así como de los datos, cuando se insertanregistros; en este caso se fija previamenteel númerode entradaspor cada nivel, y se va incrementando el número de niveles, cuando las inserciones obligan a ello. Surgen así distintostipos de índices (binarios,equilibrados, etc.), basados, en general, en estructurasde tipo árbol. Entre todas las estructuras en árbol destacan la familia de árboles B. Los nodos del árbol son bloques del espacio de almacenamientoque contienen Ios valores de las claves de búsqueda y punteros a los nodos hijos; además han de contener, bien los datos, bien Ios punteros a los mismos. Se asegura una determinada. ocupaciónde los bloques no inferioral 50%, que se estabiliza en un promedio del 69%. El árbol B es un árbol especial de búsqueda con restricciones adicionales, que garantizan que siempre estará equilibrado y que su densidad es siempre superior a un determinado valor (el espacio de almacenamiento que se "desperdicia" nunca será excesivo). La utilización de índices mejora los tiempos de respuesta ante consultas que impliquen a los atributos indexados, pero disminuye el rendimiento de la base de datos, ya que se debe actualizar el índice cuando se actualizanlos atributos sobre los que está definido, además de aumentar el espacio de almacenamiento. Por estas razones suele ser conveniente indexar la clave primaria (mediante un índice único) en el caso de que el producto no lo haga, las claves alternativas que se utilicen frecuentemente (también mediante un índice único), y aquellas claves ajenas que se utilicen en combinacionescon otras tablas. Sin embargo, en tablas pequeñas, o en aquellas en que prácticamente se recuperan todas las filas, no suele ser conveniente, ya que es mejor una búsqueda secuencial. También se deberá tener en cuenta a la hora de indexar el tipo de datos de los atributos afectados, ya que no es conveniente indexar datos de tipo carácter muy largos. ### $$$ 6 $$$ Parámetros de utilización de un archivo. $$$ La organización de un archivo debe elegirse teniendo presente la utilización que va a hacerse del mismo. Nínguna organización es siempre mejor que otra, pero para cada caso concreto hay una ideal. Para caracterizar la utilización que se hace del archivo se utilizan los siguientes parámetros, que se describen a continuación: volumen, actividad, volatilidad y crecimiento. • Volumen. Es el espacio, en caracteres, que ocupa el archivo en el soporte. • Actividad. Caracteriza la importancia de los procesos de consulta y modificación del archivo. Se especifica con los siguientes parámetros: o Tasa de consulta o modificación. Es el porcentaje de registros consultados o modificados en cada tratamiento del archivo, respecto al total de registros en el archivo. o Frecuencia de consulta o modificación. Es el número de veces que se accede al archivo para consultar o modificar en un período de tiempo fijo (meso año, por ejemplo). En algunos casos se determina la frecuencia de consulta de cada registro del archivo o de cada campo, para optimizar la distribución de los registros en el archivo o de los campos en el registro. • Volatilidad. Es una indicación del peso de los procesos de inserción y borrado en el tratamiento del archivo. Se especifica con los parámetros tasa de renovación y frecuencia de renovación, con los mismos significados anteriores. • Crecimiento. Caracteriza la variación de volumen del archivo. Se mide mediante la tasa de Crecimiento,que es el porcentaje de registros en que aumenta el archivo en cada tratamiento.