Из Википедии, бесплатной энциклопедии
  (Перенаправлено из HISAM )
Перейти к навигации Перейти к поиску

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

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

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

Организация [ править ]

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

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

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

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

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

OpenVMS [ править ]

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

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

Соображения по дизайну [ править ]

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

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

Реализации в стиле ISAM [ править ]

  • Менеджер баз данных Advantage Database Server
  • Berkeley DB
  • Btrieve
  • С-дерево FairComACE
  • C-ISAM
  • Собственная база данных DataFlex
  • dBase и сопутствующие продукты Clipper и Foxpro
  • Услуги по управлению записями Digital Equipment Corporation
  • Enscribe - это метод структурированного доступа к файлам HP Tandem
  • Расширяемый механизм хранения
  • Microsoft Access
  • MySQL реализует и расширяет ISAM как MyISAM
  • Парадокс
  • Реализация pblIsam GPL, написанная на C [7]
  • Менеджер баз данных Raima
  • Семейство баз данных Superbase
  • dbm DBM и базы данных Flat File, работающие в тандеме

См. Также [ править ]

  • Память с последовательным доступом (SAM)
  • Метод доступа к виртуальному хранилищу (VSAM)
  • Плоский файл
  • NoSQL
  • dbm

Ссылки [ править ]

  1. ^ Chin, YH (1975). «Анализ поведения VSAM в свободном пространстве». VLDB '75: Материалы 1-й Международной конференции по очень большим базам данных : 514–515.
  2. ^ Bogue, Роберт Л. (2004-02-13). «Изучите различия между ISAM и реляционными базами данных» . Проверено 17 октября 2014 года .
  3. ^ Ларсон, Пер-Оке (1981). «Анализ индексно-последовательных файлов с цепочкой переполнения». ACM-транзакции в системах баз данных . 6 (4).
  4. ^ Рамакришнан Рагху, Герке Йоханнес - Системы управления базами данных, Высшее образование Макгроу-Хилла (2000), 2-е издание (en), стр. 252
  5. ^ Корпорация IBM (1973). DOS / VS LIOCS Том 3: Логика DAM и ISAM . стр.  63 -72 . Проверено 30 декабря 2018 года .
  6. ^ Корпорация IBM (1972). IBM Virtual Machine Facility / 370: Руководство по планированию (PDF) . п. 45 . Проверено 8 января 2018 года .
  7. ^ Граф, Питер. «Реализация pblIsamFile» . mission-base.com . Проверено 8 сентября 2017 года .