sábado, 10 de marzo de 2012

Organizaciones clásicas de ficheros


En esta entrada voy a mostrar las ventajas e inconvenientes básicas de cada uno de los tipos de las organizaciones de ficheros. En total hay seis tipos de organización: organización apilada , organización secuencial , organización encadenada, organización secuencial indexada, indexada y organización hashing; por lo que iremos viendo las ventajas e inconvenientes una a una  frente a la anterior.
Organización apilada.
Ventajas:
  1. Estructura muy simple y fácil de programar.
  2. Sólo se añade el registro final , por lo tanto inserción muy rápida.
  3. Aprovecha muy bien el espacio.
  4. Se utiliza en sistemas automáticos de adquisición de datos.
  5. Adecuada para lecturas no ordenadas.
  6. No hay que tener en cuenta el orden.
  7. Organización auxiliar de las demás. 
Inconvenientes:
  1. Organización muy clásica. Inconvenientes en el acceso de datos.
  2. Altos costes de mantenimiento.
  3. Redundancia en la información.
Organización secuencial.
Esta organización intenta superar los inconvenientes de la organización anterior , haciendo hincapié en que la información esté ordenada. 
Ventajas:
  1. Estructura muy simple y fácil de programar.
  2. Resuelve problemas de la organización apilo:
    • Búsqueda eficiente de un registro
    • Óptimo en el acceso secuencial con clave de registros.
    • Lectura ordenada muy eficiente.
Inconvenientes:
  1. Resta flexibilidad.
  2. Inserción de un registro problemática.
  3. No mejora la búsqueda con atributos que no forman parte de la clave.
  4. Deterioro de la ordenación de los registros.
  5. Los ficheros relativos pueden desperdiciar espacio.
Organización encadenada.
Ventajas:
  1. Varias órdenes internas en un mismo fichero.
  2. Representar relaciones complejas entre clases de objetos del mundo real (con punteros).
  3. Potente que aminora el coste de mantener información relacionada.
Inconvenientes:
  1. Posible pérdida de información.
  2. Los punteros físicos dependen del dispositivo.
  3. Los punteros relativos dependen de la posición del registro.
  4. Elevado coste en las reorganizaciones con más de una cadena. 
Organización secuencial indexada.
Este tipo de organización pretende subsanar los inconvenientes de la organización secuencial, pero sin perder la ventaja de que los registros estén ordenados en el archivo en base a la clave.
Ventajas:
  1. Acceso directo y secuencial usando una clave más eficiente por el uso del índice y por tener la zona de derrama ordenada mediante una cadena.
  2. Recorrido ordenado de los registros por el mismo motivo que la anterior ventaja.
Inconvenientes:
  1. Más espacio para los índices
  2. Requiere reorganizaciones periódicas y costosas.
  3. Lentas las operaciones sobre el fichero
  4. Difícil búsqueda de registros por medio de atributos que no son la clave
Organización indexada.
Se pretenden eliminar los inconvenientes, intentando conseguir los siguientes objetivos:
Ventajas:
  1. Eficiencia en el acceso a la información y alta disponibilidad.
  2. Rapidez en accesos exactos, genéricos u ordenados.
  3. Flexibilidad en las estructuras que simplifiquen los procesos de inserción, actualización...
Esta organización sigue manteniendo una serie de inconvenientes, en la que destacamos:
Inconvenientes:
  1. Existencia de la zona de derrama.
  2. Frecuentes y costosas reorganizaciones
  3. Imposibilidad de accesos rápidos por otros atributos que no sean la clave.
  4. Poca eficiencia en el recorrido ordenado por atributos que no sean la clave.
Este tipo de organización puede usar distintas implementaciones para trabajar con el índice: 
- Índice simple
- Índice en árbol binario
- Índice en árbol B
- Índice en árbol B+

Organización hashing.
Ventajas:
  1. Una razón de ocupación no muy elevada.
  2. Una función resumen que distribuya uniformemente las claves.
Inconvenientes:
  1. Si el volumen de los datos crece, se debe ampliar el espacio de los cubos. Operación costosa.
  2. Dificultad para recorrer todos los elementos.
  3. Desaprovechamiento de la memoria.