Unidad 41. Archivos Random (I)





41.1. Objetivos del tema.

Entrar en el funcionamiento de los archivos random.

41.2. Introducción.

Con los archivos secuenciales no se podía acceder a un registro en concreto sin haber leído todos los anteriores, eso es un sistema compacto, pero incomodo a la hora de hacer un diseño de una aplicación en la que siempre vamos a necesitar un acceso rápido y concreto a una información determinada.

Eso se consigue con el uso de archivos random.

De todos modos, en la actualidad todas las aplicaciones se diseñan haciendo uso de la estructura de una base de datos, ya que estas presentan mejores prestaciones que lo que nos facilita un archivo random.

41.3. Registros.

Mientras que en un archivo secuencial, los datos pueden ser de longitud fija o variable, en un archivo random han de ser de longitud fija, ya que de otra forma no se podría localizar la información en el mismo.

 

Además los campos no llevan separadores entre si, y al final de los registros no existe marcas de final de registro.

Evidentemente, a partir de aquí cada cual puede inventar lo que desee, pero esta es la forma adecuada de hacerlo y como lo manejan los lenguajes de programación mas habituales.

 

 

41.4. Acceso a los registros.

Hablamos de dirección, pero en realidad lo que se hace es establecer a partir del inicio del archivo, cual es el primer byte que deseamos leer, si estamos trabajando con una estructura de datos que es de longitud fija, el registro x estará, empezará en:

 

Posición = Longitud de registro * (X 1)

 

Si el registro tiene 30 bytes de longitud, el registro número dos empezará en el byte 30.

 

Posición = 30 * (2 1)

 

Se considera que el primer byte disponible es el cero, y el primer registro válido es el cero.

 

En un archivo random, para almacenar datos, utilizamos estructuras de longitud fija.

 

41.5. Ubicación de los registros.

El acceso a los registros de un archivo random se realiza a partir de una dirección, esa es la dirección que debe ocupar el registro en el archivo.

Después podemos encontrarnos con dos situaciones para localizar los datos dentro del archivo.

 

El registro se almacena en la posición que le corresponde por el valor de su campo código.

El registro se almacena por la posición que le asigna un algoritmo encargado de calcular direcciones a partir de un código.

 

La situación más lógica es utilizar la primera, hoy no tiene sentido utilizar el segundo sistema, pues sería solaparse con un archivo indexado o con una base de datos.

En el primer caso, cada registro ocuparía siempre una posición distinta, no pueden haber dos códigos iguales.

 

En el segundo caso, al ser una dirección proporcionada por un algoritmo, se podría dar la situación de que códigos distintos generarán direcciones iguales y hay que controlar esa posible duplicidad, de ahí que no tenga sentido llegar a esa complejidad, cuando hoy se disponen de los sistemas de gestión de bases de datos, que nos proporcionan esa tarea hecha.

Hay que tener también presente que el sistema de código posición tiene el inconveniente de que puede generar mucho espacio vacío y poco aprovechado, por eso en la actualidad estos archivos se utilizan para almacenar datos muy compactos, y que generan muy poco espacio libre en el archivo, Provincias, Países, etc.

41.6. Libre u ocupado.

Los archivos random son direccionables, cuando se abre, o se accede a ellos, se puede grabar o leer indistintamente, esto provoca que necesitemos saber si un registro al que accedemos está libre u ocupado, para saber que hacer con él en el momento de la lectura.

Podemos hablar de dos sistemas principalmente para distinguir cuando está libre u ocupado un registro.

El primero consiste en grabar a blancos todo el espacio que se prevé utilizar para el archivo, utilizando el ASCII treinta y dos.

 

El segundo consiste en incluir en el diseño del registro un campo adicional de un byte para grabar en el un carácter que me indique si está libre u ocupado. También se puede utilizar un campo significativo para en función de su contenido decidir esta situación.

De entre los dos sistemas el más adecuado es el primero, el segundo no es que sea malo, si no al contrario puede llegar a ser hasta mejor, todo depende de las circunstancias en las que nos movamos.

 

Si grabamos una marca para indicar libre u ocupado, eso implica que podemos conservar los datos originales en el registro aunque se borre, eso es bueno y malo, en función de lo que se tenga grabado, ya que implica que se puede recuperar todo lo que hay, lo cual a lo mejor no interesa.

 

El otro sistema, el de utilizar blancos, tiene la ventaja, o no, de que al borrar un registro se graban blancos en su lugar, ASCII treinta y dos, y eso impide que se pueda recuperar cualquier información una vez borrada.

Lo importante es determinar un sistema por el cual podamos saber si el registro está libre u ocupado.

Octubre-2010
Pág. 41.1

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies