ИСАМ


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

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

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

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

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

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