stringtranslate.com

ISMA

El método de acceso secuencial indexado ( ISAM ) es un método para crear, mantener y manipular archivos informáticos de datos de modo 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 requeridos en archivos indexados . IBM desarrolló originalmente ISAM para computadoras mainframe , pero existen implementaciones disponibles para la mayoría de los sistemas informáticos.

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

Organización

En un sistema ISAM, los datos se organizan en registros que se componen de campos de longitud fija, almacenados originalmente de forma secuencial en una secuencia de claves. 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 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 que ocurren posteriormente (solo cambia el contenido de los nodos hoja). Como consecuencia de esto, si las inserciones en algún nodo hoja exceden 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 gradualmente muy grandes y esto afecta el tiempo necesario para la recuperación de un registro. [4]

Las bases de datos relacionales se pueden crear fácilmente en un marco ISAM con la adición de lógica para mantener la validez de los vínculos entre las tablas. Normalmente, el campo que se utiliza como vínculo, 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 desventaja es que cada máquina cliente debe administrar su propia conexión a cada archivo al que accede. Esto, a su vez, conduce a la posibilidad de inserciones conflictivas en esos archivos, lo que lleva a un estado de base de datos inconsistente. Para evitar esto, algunas implementaciones de ISAM [5] [6] proporcionan una funcionalidad de bloqueo de archivos completos o de registros individuales . El bloqueo de múltiples registros corre el riesgo de bloqueo a menos que se siga estrictamente un esquema de prevención de bloqueo . Los problemas de bloqueo y bloqueo se resuelven típicamente con la adición de un marco cliente-servidor que ordena las solicitudes del cliente y mantiene el orden. Algunas implementaciones de cliente-servidor de ISAM proporcionan sistemas completos de administración de transacciones ACID . [5] Estos son los conceptos básicos detrás de un sistema de administración de bases de datos (DBMS), que es una capa de 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). Más tarde, IBM desarrolló SQL/DS y luego Db2 , que 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 ]

OpenVMS

El sistema operativo OpenVMS utiliza el sistema de archivos Files-11 junto con RMS ( Record Management Services ). RMS proporciona una capa adicional entre la aplicación y los archivos en el disco que proporciona un método consistente de organización y acceso a los datos en varios lenguajes 3GL y 4GL. RMS proporciona cuatro métodos diferentes de acceso a los datos: acceso secuencial, acceso relativo a números de registro, acceso a direcciones de archivos de registro y acceso indexado.

El método de acceso indexado para leer o escribir datos solo proporciona el resultado deseado si, de hecho, el archivo está organizado como un archivo ISAM con las claves adecuadas definidas previamente. El acceso a los datos a través de las claves definidas previamente es extremadamente rápido. Se admiten claves múltiples, claves superpuestas y compresión de claves dentro de las tablas hash. Se proporciona una utilidad para definir o redefinir claves en archivos existentes. Los registros se pueden eliminar, aunque la "recolección de basura" se realiza a través de una utilidad independiente.

Consideraciones de diseño

Los ingenieros de IBM diseñaron el sistema ISAM para utilizar una cantidad mínima de memoria de la computadora . La compensación fue que el canal de entrada/salida , la unidad de control y el disco se mantuvieron más ocupados. Un archivo ISAM consta de una colección de registros de datos y dos o tres niveles de índice. El índice de pista contiene la clave más alta para cada pista de disco en el cilindro que indexa. El índice de cilindro almacena la clave más alta en un cilindro y la dirección de disco del índice de pista correspondiente. Un índice maestro opcional , generalmente utilizado solo para archivos grandes, contiene la clave más alta en una pista de índice de cilindro y la dirección de disco de ese índice de cilindro. Una vez que se carga un archivo, los registros de datos no se mueven; los registros insertados se colocan en un área de desbordamiento separada . Para localizar un registro por clave, se buscan los índices en el disco mediante un programa de canal complejo que se modifica automáticamente . [7] Esto aumentó el tiempo de ocupación del canal, la unidad de control y el disco. Con el aumento de los tamaños de memoria física y virtual en sistemas posteriores, esto se consideró ineficiente y se desarrolló VSAM para alterar el equilibrio entre el uso de la memoria y la actividad del disco.

El uso de programas de canal automodificables por parte de ISAM posteriormente causó dificultades para el soporte CP-67 de OS/360 , ya que CP-67 copiaba un programa de canal completo en una memoria fija cuando se iniciaba la operación de E/S y traducía direcciones virtuales a direcciones reales. [8]

Implementaciones de estilo ISAM

Véase también

Referencias

  1. ^ Chin, YH (1975). "Análisis del comportamiento en el 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.S2CID11082747  .​
  2. ^ Bogue, Robert L. (13 de febrero de 2004). "Explore las diferencias entre ISAM y bases de datos relacionales" . Consultado el 17 de octubre de 2014 .
  3. ^ Larson, Per-Åke (1981). "Análisis de archivos de índice secuencial 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. ^ abc "FairCom ISAM API para C - Guía para desarrolladores".
  6. ^ "Manual del programador C-ISAM" (PDF) .
  7. ^ IBM Corporation (1973). DOS/VS LIOCS Volumen 3: DAM and ISAM Logic. págs. 63–72 . Consultado el 30 de diciembre de 2018 .
  8. ^ IBM Corporation (1972). IBM Virtual Machine Facility /370: Guía de planificación (PDF) . p. 45 . Consultado el 8 de enero de 2018 .
  9. ^ Graf, Peter. "Implementación de pblIsamFile". mission-base.com . Consultado el 8 de septiembre de 2017 .