stringtranslate.com

ИСАМ

Метод индексированного последовательного доступа ( ISAM ) — это метод создания, обслуживания и манипулирования компьютерными файлами данных, позволяющий извлекать записи последовательно или случайным образом по одному или нескольким ключам. Индексы ключевых полей поддерживаются для быстрого извлечения требуемых записей файлов в индексированных файлах . Первоначально IBM разработала ISAM для мэйнфреймов , но его реализации доступны для большинства компьютерных систем.

Термин ISAM используется для нескольких связанных понятий:

Организация

В системе ISAM данные организованы в записи , которые состоят из полей фиксированной длины, изначально хранящихся последовательно в ключевой последовательности. Вторичные наборы записей, известные как индексы , содержат указатели на местоположение каждой записи, что позволяет извлекать отдельные записи без необходимости поиска по всему набору данных. Это отличается от современных навигационных баз данных , в которых указатели на другие записи хранились внутри самих записей. Ключевым улучшением в ISAM является то, что индексы небольшие и их можно быстро искать, возможно, полностью в памяти, тем самым позволяя базе данных получать доступ только к тем записям, которые ей нужны. Дополнительные изменения данных не требуют изменений других данных, только таблицы и индексов, о которых идет речь.

При создании файла ISAM индексные узлы фиксируются, и их указатели не изменяются во время вставок и удалений, которые происходят позже (после этого изменяется только содержимое конечных узлов). Вследствие этого, если вставки в какой-либо конечный узел превышают емкость узла, новые записи сохраняются в цепочках переполнения. Если вставок в таблице намного больше, чем удалений, эти цепочки переполнения могут постепенно стать очень большими, и это влияет на время, необходимое для извлечения записи. [4]

Реляционные базы данных можно легко построить на основе ISAM-фреймворка с добавлением логики для поддержания валидности связей между таблицами. Обычно поле, используемое в качестве связи, внешний ключ , индексируется для быстрого поиска. Хотя это медленнее, чем простое сохранение указателя на связанные данные непосредственно в записях, это также означает, что изменения в физическом расположении данных не требуют обновления указателей — запись по-прежнему будет валидной.

ISAM прост в понимании и реализации, поскольку в первую очередь состоит из прямого доступа к файлу базы данных. Компромисс заключается в том, что каждая клиентская машина должна управлять собственным подключением к каждому файлу, к которому она обращается. Это, в свою очередь, приводит к возможности конфликтующих вставок в эти файлы, что приводит к несогласованному состоянию базы данных. Чтобы предотвратить это, некоторые реализации ISAM [5] [6] предоставляют функциональность блокировки всего файла или отдельных записей . Блокировка нескольких записей влечет за собой риск взаимоблокировки , если схема предотвращения взаимоблокировки не соблюдается строго. Проблемы блокировки и взаимоблокировки обычно решаются путем добавления клиент-серверной структуры, которая маршалирует клиентские запросы и поддерживает порядок. Полные системы управления транзакциями ACID предоставляются некоторыми клиент-серверными реализациями ISAM. [5] Это основные концепции, лежащие в основе системы управления базами данных (СУБД), которая является клиентским уровнем над базовым хранилищем данных.

ISAM был заменен в IBM на методологию VSAM (метод доступа к виртуальному хранилищу). Еще позже IBM разработала SQL/DS , а затем Db2 , которую IBM продвигает как свою основную систему управления базами данных . VSAM — это метод физического доступа, используемый в Db2. [ необходима цитата ]

OpenVMS

Операционная система OpenVMS использует файловую систему Files-11 совместно с RMS ( Record Management Services ). RMS обеспечивает дополнительный уровень между приложением и файлами на диске, который обеспечивает согласованный метод организации данных и доступа на нескольких языках 3GL и 4GL. RMS обеспечивает четыре различных метода доступа к данным: последовательный, относительный доступ к номеру записи, доступ к адресу файла записи и индексированный доступ.

Индексированный метод доступа к чтению или записи данных обеспечивает желаемый результат только в том случае, если файл фактически организован как файл ISAM с соответствующими, заранее определенными ключами. Доступ к данным через заранее определенный ключ(и) чрезвычайно быстрый. Поддерживаются множественные ключи, перекрывающиеся ключи и сжатие ключей в хэш-таблицах. Предоставляется утилита для определения/переопределения ключей в существующих файлах. Записи можно удалять, хотя «сборка мусора» выполняется с помощью отдельной утилиты.

Конструктивные соображения

Инженеры IBM разработали систему ISAM для использования минимального объема памяти компьютера . Компромисс заключался в том, что канал ввода/вывода , блок управления и диск оставались более занятыми. Файл ISAM состоит из набора записей данных и двух или трех уровней индекса. Индекс дорожки содержит наивысший ключ для каждой дорожки диска на цилиндре, который он индексирует. Индекс цилиндра хранит наивысший ключ на цилиндре и адрес диска соответствующего индекса дорожки. Необязательный главный индекс , обычно используемый только для больших файлов, содержит наивысший ключ на дорожке индекса цилиндра и адрес диска этого индекса цилиндра. После загрузки файла записи данных не перемещаются; вставленные записи помещаются в отдельную область переполнения . Чтобы найти запись по ключу, индексы на диске ищутся сложной самомодифицирующейся программой канала . [7] Это увеличивало время занятости канала, блока управления и диска. С увеличением размеров физической и виртуальной памяти в более поздних системах это считалось неэффективным, и VSAM был разработан для изменения компромисса между использованием памяти и активностью диска.

Использование ISAM самомодифицирующихся канальных программ позже вызвало трудности для поддержки OS/360 со стороны CP-67 , поскольку CP-67 копировал всю канальную программу в фиксированную память при запуске операции ввода-вывода и транслировал виртуальные адреса в реальные адреса. [8]

Реализации в стиле ISAM

Смотрите также

Ссылки

  1. ^ Чин, YH (1975). "Анализ поведения VSAM в свободном пространстве". Труды 1-й Международной конференции по сверхбольшим базам данных - VLDB '75 . стр. 514–515. doi :10.1145/1282480.1282529. ISBN 9781450318181. S2CID  11082747.
  2. ^ Bogue, Robert L. (2004-02-13). "Изучите различия между ISAM и реляционными базами данных" . Получено 17 октября 2014 г.
  3. ^ Ларсон, Пер-Оке (1981). «Анализ индексно-последовательных файлов с переполнением цепочки». ACM Transactions on Database Systems . 6 (4): 671–680. doi : 10.1145/319628.319665 . S2CID  16261748.
  4. ^ Рамакришнан Рагху, Герке Йоханнес - Системы управления базами данных, McGraw-Hill Higher Education (2000), 2-е издание (на английском языке), стр. 252
  5. ^ abc «FairCom ISAM API для C — Руководство для разработчиков».
  6. ^ «Руководство программиста C-ISAM» (PDF) .
  7. ^ IBM Corporation (1973). DOS/VS LIOCS Volume 3: DAM and ISAM Logic. стр. 63–72 . Получено 30 декабря 2018 г.
  8. ^ IBM Corporation (1972). IBM Virtual Machine Facility /370: Planning Guide (PDF) . стр. 45 . Получено 8 января 2018 г. .
  9. ^ Граф, Питер. "Реализация pblIsamFile". mission-base.com . Получено 8 сентября 2017 г. .