Disambiguationspage
- 1 year ago
- 0
- 0
ISAM ( англ. Indexed Sequential Access Method — индексно-последовательный метод доступа) — способ хранения данных для быстрого доступа к ним. Способ был разработан компанией IBM для мейнфреймов в 1963 году, в настоящее время это основной способ представления данных почти во всех базах данных.
В ISAM отдельно хранятся записи с данными и индексы (служебные данные), служащие для быстрого доступа к записям. Данные хранятся последовательно (изначально ISAM использовался для хранения данных на ленточных накопителях , обеспечивающих только последовательные чтение/запись). Второй набор данных — хеш-таблица — индексы, содержащие указатели, которые позволят извлечь определенные записи без поиска по всей базе данных. Это несколько отличается от индексов в современных поисковых базах данных, так как в них индексы хранятся прямо в записях. Ключевая особенность ISAM — индексы малы и поиск по ним быстр. Изменение в записях не требует изменять все записи, требуется только перестроить индекс.
Реляционные базы данных могут быть построены на способе хранения данных ISAM с добавленной логикой по сохранению целостности связей между таблицами. Обычно поле, используемое для связи ( внешний ключ ), индексируется для быстрого поиска. Конечно, это медленнее, чем просто хранить указатели на нужные записи в другой таблице непосредственно в записях, но зато изменения на физическом уровне хранения данных не потребуют изменения указателей: на физическом уровне таблицы остаются независимыми друг от друга, слабо связанными через пару "внешний/первичный ключ", что позволяет провести перекомпоновку структуры хранения таблицы, содержащей первичный ключ, или даже переместить её в отдельную партицию без потери связности.
ISAM легко реализуется и это дешевый метод. Плата за это — каждая клиентская машина должна держать собственные соединения с каждым файлом, к которому происходит доступ. Это может привести к конфликтам при одновременной работе нескольких клиентов при попытке изменить или вставить новые значения и привести к потере данных. Обычно эта проблема решается добавлением клиент-серверного приложения, которое обслуживает запросы пользователей и управляет ими, чтобы сохранять целостность данных. Это основная концепция СУБД , которая создает клиентский уровень над надлежащими данными.
ISAM был заменен IBM методологией, названной (Virtual Storage Access Method). Позднее IBM разработал DB2 , которая стала основной СУБД от IBM. VSAM — это способ физического хранения данных в DB2.
MySQL реализовало расширение ISAM — MyISAM .