ISAM


ISAM (un acrónimo de método de acceso secuencial indexado ) es un método para crear, mantener y manipular archivos informáticos de datos para que los registros se puedan recuperar de forma secuencial o aleatoria mediante una o más claves . Los índices de los campos clave se mantienen para lograr una recuperación rápida de los registros de archivos necesarios en los archivos indexados . IBM desarrolló originalmente ISAM para computadoras centrales , pero las implementaciones están disponibles para la mayoría de los sistemas informáticos.

En un sistema ISAM, los datos se organizan en registros que se componen de campos de longitud fija, originalmente almacenados secuencialmente en secuencia clave. Los conjuntos secundarios de registros, conocidos como índices , contienen punteros a la ubicación de cada registro, lo que permite recuperar registros individuales sin tener que 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 mejora clave en ISAM es que los índices son pequeños y se pueden buscar rápidamente, posiblemente en su totalidad en la memoria, lo que permite que la base de datos acceda solo a los registros que necesita. Las modificaciones adicionales a los datos no requieren cambios en otros datos, solo 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 que ocurren más tarde (solo cambia el contenido de los nodos hoja después). Como consecuencia de esto, si las inserciones en algún nodo hoja superan la capacidad del nodo, los nuevos registros se almacenan en cadenas de desbordamiento. Si hay muchas más inserciones que eliminaciones de una tabla, estas cadenas de desbordamiento pueden volverse muy grandes gradualmente y esto afecta el tiempo requerido para recuperar un registro. [4]

Las bases de datos relacionales se pueden construir fácilmente en un marco ISAM con la adición de lógica para mantener la validez de los enlaces entre las tablas. Por lo general, el campo que se utiliza como enlace, la clave externa , se indexará para una búsqueda rápida. Si bien esto es más lento que simplemente almacenar el puntero a los datos relacionados directamente en los registros, también significa que los cambios en el diseño físico de los datos no requieren ninguna actualización de los punteros; la entrada seguirá siendo válida.

ISAM es fácil de entender e implementar, ya que consiste principalmente en el acceso directo a un archivo de base de datos. La compensación es que cada máquina cliente debe administrar su propia conexión con cada archivo al que accede. Esto, a su vez, genera la posibilidad de inserciones conflictivas en esos archivos, lo que genera un estado de base de datos inconsistente. Para evitar esto, algunas implementaciones de ISAM [5] [6] proporcionan la funcionalidad de bloqueo de registros individuales o de archivos completos . El bloqueo de múltiples registros corre el riesgo de interbloqueo a menos que se siga estrictamente un esquema de prevención de interbloqueo . Los problemas de bloqueo y interbloqueo generalmente se resuelven con la adición de un cliente-servidormarco que ordena las solicitudes de los clientes 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 detrás de un sistema de administración de base de datos (DBMS), que es una capa de cliente sobre el almacén de datos subyacente.

ISAM fue reemplazado en IBM con una metodología llamada VSAM (método de acceso al almacenamiento virtual). Aún más tarde, IBM desarrolló SQL/DS y luego DB2 que, a partir de 2004, IBM promueve como su principal sistema de gestión de bases de datos . VSAM es el método de acceso físico utilizado en DB2. [ cita requerida ]