Jump to content

ИСАМ

(Перенаправлено с HISAM )

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

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

  • Продукт IBM ISAM и алгоритм, который он использует. [ 1 ]
  • Система базы данных , в которой разработчик приложения напрямую использует интерфейс прикладного программирования для поиска индексов с целью нахождения записей в файлах данных. Напротив, реляционная база данных использует оптимизатор запросов , который автоматически выбирает индексы. [ 2 ]
  • Алгоритм индексирования, который обеспечивает как последовательный, так и ключевой доступ к данным. [ 3 ] Большинство баз данных используют для этой цели некоторые варианты B-дерева , хотя исходные реализации IBM ISAM и VSAM этого не делали.
  • Чаще всего это любой индекс базы данных. Индексы используются практически всеми базами данных.

Организация

[ редактировать ]

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

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

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

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

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

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

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

Рекомендации по проектированию

[ редактировать ]

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

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

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

[ редактировать ]

См. также

[ редактировать ]
  1. ^ Чин, Ю.Х. (1975). «Анализ поведения VSAM в свободном пространстве». Материалы 1-й Международной конференции по очень большим базам данных - VLDB '75 . стр. 514–515. дои : 10.1145/1282480.1282529 . ISBN  9781450318181 . S2CID   11082747 .
  2. ^ Бог, Роберт Л. (13 февраля 2004 г.). «Изучите различия между ISAM и реляционными базами данных» . Проверено 17 октября 2014 г.
  3. ^ Ларсон, Пер-Оке (1981). «Анализ индексно-последовательных файлов с цепочкой переполнения» . Транзакции ACM в системах баз данных . 6 (4): 671–680. дои : 10.1145/319628.319665 . S2CID   16261748 .
  4. ^ Рамакришнан Рагху, Герке Йоханнес - Системы управления базами данных, McGraw-Hill Higher Education (2000), 2-е издание (en), стр. 252
  5. ^ Jump up to: а б с «FairCom ISAM API для C — Руководство для разработчиков» .
  6. ^ «Руководство программиста C-ISAM» (PDF) .
  7. ^ Корпорация IBM (1973). DOS/VS LIOCS Том 3: Логика DAM и ISAM . стр 63–72 . . Проверено 30 декабря 2018 г.
  8. ^ Корпорация IBM (1972). IBM Virtual Machine Facility /370: Руководство по планированию (PDF) . п. 45 . Проверено 8 января 2018 г.
  9. ^ Граф, Питер. «Реализация pblIsamFile» . Mission-base.com . Проверено 8 сентября 2017 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d34a2dcb9f27c8845f7212af6cbe6df9__1717956180
URL1:https://arc.ask3.ru/arc/aa/d3/f9/d34a2dcb9f27c8845f7212af6cbe6df9.html
Заголовок, (Title) документа по адресу, URL1:
ISAM - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)