Articulo de referencia

ISAM

El método de acceso secuencial indexado ( ISAM ) permite crear, mantener y manipular archivos de datos informáticos para recuperar registros de forma secuencial o aleatoria medi...

El método de acceso secuencial indexado ( ISAM ) permite crear, mantener y manipular archivos de datos informáticos para recuperar registros de forma secuencial o aleatoria mediante una o más claves. Se mantienen índices de los campos clave para lograr una recuperación rápida de los registros necesarios en los archivos indexados . IBM desarrolló originalmente ISAM para ordenadores centrales , pero existen implementaciones para la mayoría de los sistemas informáticos.

El término ISAM se utiliza para varios conceptos relacionados:

  • El producto IBM ISAM y el algoritmo que emplea. [ 1 ]
  • Un sistema de base de datos donde un desarrollador de aplicaciones utiliza directamente una interfaz de programación de aplicaciones para buscar en los índices y así localizar registros en los archivos de datos. En cambio, una base de datos relacional utiliza un optimizador de consultas que selecciona automáticamente los índices. [ 2 ]
  • Un algoritmo de indexación que permite el acceso secuencial y por clave a los datos. [ 3 ] La mayoría de las bases de datos utilizan alguna variación del árbol B para este propósito, aunque las implementaciones originales de IBM ISAM y VSAM no lo hicieron.
  • En términos generales, cualquier índice de una base de datos. Casi todas las bases de datos utilizan índices.

Organización

En un sistema ISAM, los datos se organizan en registros compuestos por campos de longitud fija, almacenados originalmente de forma secuencial según su clave. Un conjunto secundario de registros, denominado índice , contiene punteros a la ubicación de cada registro, lo que permite recuperar registros individuales sin necesidad de buscar en todo el conjunto de datos. Esto difiere de las bases de datos de navegación contemporáneas , en las que los punteros a otros registros se almacenaban dentro de los propios registros. La principal mejora de ISAM reside en que los índices son pequeños y se pueden buscar rápidamente, posiblemente en memoria, lo que permite a la base de datos acceder únicamente a los registros que necesita. Las modificaciones adicionales a los datos no requieren cambios en otros datos, solo en la tabla y los índices en cuestión.

Cuando se crea un archivo ISAM, los nodos de índice son fijos y sus punteros no cambian durante las inserciones y eliminaciones posteriores (solo cambia el contenido de los nodos hoja). Como consecuencia, si las inserciones en algún nodo hoja superan la capacidad del nodo, se almacenan nuevos registros en cadenas de desbordamiento. Si hay muchas más inserciones que eliminaciones en una tabla, estas cadenas de desbordamiento pueden volverse muy grandes gradualmente, lo que afecta el tiempo necesario para recuperar un registro. [ 4 ]

Las bases de datos relacionales se pueden construir fácilmente sobre un marco ISAM añadiendo lógica para mantener la validez de los vínculos entre las tablas. Normalmente, el campo que actúa como vínculo, la clave externa , se indexa para una búsqueda rápida. Si bien esto es más lento que almacenar directamente el puntero a los datos relacionados en los registros, también significa que los cambios en la estructura física de los datos no requieren actualizar los punteros; la entrada seguirá siendo válida.

ISAM es sencillo de entender e implementar, ya que consiste principalmente en el acceso directo a un archivo de base de datos. La desventaja es que cada máquina cliente debe gestionar su propia conexión a cada archivo al que accede. Esto, a su vez, conlleva la posibilidad de inserciones conflictivas en esos archivos, lo que resulta en un estado inconsistente de la base de datos. Para evitar esto, algunas implementaciones de ISAM [ 5 ] [ 6 ] proporcionan funcionalidad de bloqueo de archivos completos o de registros individuales . Bloquear varios registros conlleva el riesgo de interbloqueo a menos que se siga estrictamente un esquema de prevención de interbloqueos . Los problemas de bloqueo e interbloqueo se resuelven normalmente con la adición de un marco cliente-servidor que gestiona las solicitudes del cliente y mantiene el orden. Algunas implementaciones cliente-servidor de ISAM proporcionan sistemas completos de gestión de transacciones ACID . [ 5 ] Estos son los conceptos básicos de un sistema de gestión de bases de datos (DBMS), que es una capa cliente sobre el almacén de datos subyacente.

En IBM, ISAM fue reemplazado por una metodología llamada VSAM (método de acceso al almacenamiento virtual). Posteriormente, IBM desarrolló SQL/DS y luego Db2, que IBM promociona como su principal sistema de gestión de bases de datos . VSAM es el método de acceso físico utilizado en Db2.

OpenVMS

El sistema operativo OpenVMS utiliza el sistema de archivos Files-11 junto con RMS ( Servicios de Gestión de Registros ). RMS proporciona una capa adicional entre la aplicación y los archivos en disco, ofreciendo un método consistente de organización y acceso a los datos en múltiples lenguajes de programación de tercera y cuarta generación (3GL y 4GL). RMS ofrece cuatro métodos diferentes de acceso a los datos: acceso secuencial, acceso relativo al número de registro, acceso a la dirección del archivo de registro y acceso indexado.

The indexed access method of reading or writing data only provides the desired outcome if in fact the file is organized as an ISAM file with the appropriate, previously defined keys. Access to data via the previously defined key(s) is extremely fast. Multiple keys, overlapping keys and key compression within the hash tables are supported. A utility to define/redefine keys in existing files is provided. Records can be deleted, although "garbage collection" is done via a separate utility.

Design considerations

IBM engineers designed the ISAM system to use a minimum amount of computer memory. The tradeoff was that the Input/Output channel, control unit, and disk were kept busier. An ISAM file consists of a collection of data records and two or three levels of index. The track index contains the highest key for each disk track on the cylinder it indexes. The cylinder index stores the highest key on a cylinder, and the disk address of the corresponding track index. An optional master index, usually used only for large files, contains the highest key on a cylinder index track and the disk address of that cylinder index. Once a file is loaded data records are not moved; inserted records are placed into a separate overflow area. To locate a record by key the indexes on disk are searched by a complex self-modifyingchannel program.[7] This increased the busy time of the channel, control unit, and disk. With increased physical and virtual memory sizes in later systems this was seen as inefficient, and VSAM was developed to alter the tradeoff between memory usage and disk activity.

ISAM's use of self-modifying channel programs later caused difficulties for CP-67 support of OS/360, since CP-67 copied an entire channel program into fixed memory when the I/O operation was started and translated virtual addresses to real addresses.[8]

ISAM-style implementations

Véase también

Referencias

  1. Chin, YH (1975). "Análisis del comportamiento en espacio libre de VSAM". Actas de la 1.ª Conferencia Internacional sobre Bases de Datos Muy Grandes - VLDB '75 . págs. 514–515 . doi : 10.1145/1282480.1282529 . ISBN  9781450318181. S2CID 11082747 . 
  2. Bogue, Robert L. (13 de febrero de 2004). "Explora las diferencias entre ISAM y las bases de datos relacionales" . Recuperado el 17 de octubre de 2014 .
  3. Larson, Per-Åke (1981). "Análisis de archivos secuenciales de índice con encadenamiento de desbordamiento" . ACM Transactions on Database Systems . 6 (4): 671– 680. doi : 10.1145/319628.319665 . S2CID 16261748 . 
  4. Ramakrishnan Raghu, Gehrke Johannes - Sistemas de gestión de bases de datos, McGraw-Hill Higher Education (2000), 2.ª edición (en) página 252
  5. 1 2 3 "Guía para desarrolladores de la API FairCom ISAM para C" .
  6. "Manual del programador de C-ISAM" (PDF) . Archivado del original (PDF) el 21/07/2021 . Consultado el 21/07/2021 .
  7. IBM Corporation (1973). DOS/VS LIOCS Volumen 3: DAM y lógica ISAM . págs. 63–72 . Recuperado el 30 de diciembre de 2018 . 
  8. IBM Corporation (1972). IBM Virtual Machine Facility /370: Guía de planificación (PDF) . pág. 45. Archivado del original (PDF) el 25 de octubre de 2022. Recuperado el 8 de enero de 2018 . 
  9. "Taller de RDBMS: Informix" (PDF) (Entrevista). Entrevista realizada por Luanne Johnson. Museo de Historia de la Computación. 12 de junio de 2007. Consultado el 30 de mayo de 2025 .
  10. Graf, Peter. "Implementación de pblIsamFile" . mission-base.com . Consultado el 8 de septiembre de 2017 .