Строка 1: |
Строка 1: |
− | '''ISAM''' ({{lang-en|Indexed Sequential Access Method}} — индексно-последовательный метод доступа) — способ хранения данных для быстрого доступа к ним. Способ был разработан компанией [[IBM]] для [[мейнфрейм]]ов в 1963 году, в настоящее время это основной способ представления данных почти во всех базах данных. | + | '''ISAM''' ({{lang-en|Indexed Sequential Access Method}} — ''индексно-последовательный метод доступа'') — способ организации хранения [[Набор данных|набора данных]] для быстрого доступа к ним. Способ был разработан компанией [[IBM]] для [[мейнфрейм]]ов в 1963 году, в настоящее время это основной способ представления данных почти во всех базах данных. |
| | | |
| В ISAM отдельно хранятся записи с данными и [[индекс (базы данных)|индексы]] (служебные данные), служащие для быстрого доступа к записям. Данные хранятся последовательно (изначально ISAM использовался для хранения данных на [[ленточный накопитель|ленточных накопителях]], обеспечивающих только последовательные чтение/запись). Второй набор данных — [[хеш-таблица]] — индексы, содержащие указатели, которые позволят извлечь определенные записи без поиска по всей базе данных. Это несколько отличается от индексов в современных поисковых базах данных, так как в них индексы хранятся прямо в записях. Ключевая особенность ISAM — индексы малы и поиск по ним быстр. Изменение в записях не требует изменять все записи, требуется только перестроить индекс. | | В ISAM отдельно хранятся записи с данными и [[индекс (базы данных)|индексы]] (служебные данные), служащие для быстрого доступа к записям. Данные хранятся последовательно (изначально ISAM использовался для хранения данных на [[ленточный накопитель|ленточных накопителях]], обеспечивающих только последовательные чтение/запись). Второй набор данных — [[хеш-таблица]] — индексы, содержащие указатели, которые позволят извлечь определенные записи без поиска по всей базе данных. Это несколько отличается от индексов в современных поисковых базах данных, так как в них индексы хранятся прямо в записях. Ключевая особенность ISAM — индексы малы и поиск по ним быстр. Изменение в записях не требует изменять все записи, требуется только перестроить индекс. |
| | | |
− | Реляционные базы данных могут быть построены на способе хранения данных ISAM с добавленной логикой по сохранению целостности связей между таблицами. Обычно поле, используемое для связи ([[внешний ключ]]), индексируется для быстрого поиска. Конечно, это медленнее, чем просто хранить указатели на нужные записи в другой таблице непосредственно в записях, но зато изменения на физическом уровне хранения данных не потребуют изменения указателей: на физическом уровне таблицы остаются независимыми друг от друга, слабо связанными через пару "внешний/первичный ключ", что позволяет провести перекомпоновку структуры хранения таблицы, содержащей первичный ключ, или даже переместить её в отдельную партицию без потери связности. | + | Указанная схема организации данных была, в дальнейшем, унаследована многими [[СУБД]]. |
| + | |
| + | [[Реляционная база данных|Реляционные базы данных]] могут быть построены на способе хранения данных ISAM с добавленной логикой по сохранению целостности связей между таблицами. Обычно поле, используемое для связи ([[внешний ключ]]), индексируется для быстрого поиска. Конечно, это медленнее, чем просто хранить указатели на нужные записи в другой таблице непосредственно в записях, но зато изменения на физическом уровне хранения данных не потребуют изменения указателей: на физическом уровне таблицы остаются независимыми друг от друга, слабо связанными через пару "внешний/первичный ключ", что позволяет провести перекомпоновку структуры хранения таблицы, содержащей первичный ключ, или даже переместить её в отдельную партицию без потери связности. |
| | | |
| ISAM легко реализуется и это дешевый метод. Плата за это — каждая клиентская машина должна держать собственные соединения с каждым файлом, к которому происходит доступ. Это может привести к конфликтам при одновременной работе нескольких клиентов при попытке изменить или вставить новые значения и привести к потере данных. Обычно эта проблема решается добавлением клиент-серверного приложения, которое обслуживает запросы пользователей и управляет ими, чтобы сохранять целостность данных. Это основная концепция [[СУБД]], которая создает клиентский уровень над надлежащими данными. | | ISAM легко реализуется и это дешевый метод. Плата за это — каждая клиентская машина должна держать собственные соединения с каждым файлом, к которому происходит доступ. Это может привести к конфликтам при одновременной работе нескольких клиентов при попытке изменить или вставить новые значения и привести к потере данных. Обычно эта проблема решается добавлением клиент-серверного приложения, которое обслуживает запросы пользователей и управляет ими, чтобы сохранять целостность данных. Это основная концепция [[СУБД]], которая создает клиентский уровень над надлежащими данными. |
Строка 12: |
Строка 14: |
| | | |
| == Литература == | | == Литература == |
− | * Indexed Sequential Access Method // Encyclopedia of Database Systems, ISBN 978-0-387-35544-3, 2009, pp 1435–1438 [[doi:10.1007/978-0-387-39940-9 738]] | + | * Indexed Sequential Access Method // Encyclopedia of Database Systems, ISBN 978-0-387-35544-3, 2009, pp 1435–1438 [https://dx.doi.org/10.1007/978-0-387-39940-9%20738 doi:10.1007/978-0-387-39940-9 738] |
| * [http://www.textfiles.com/bitsavers/pdf/ibm/360/os/R20.1/plm/GY28-6616-4_ISAM_R20.1_PLM_Jun71.pdf IBM System/360 Operating System Indexed Sequntial Access Methods. Program Logic Manual] Program Number 360S-IO-526 // IBM, 1966-1971 | | * [http://www.textfiles.com/bitsavers/pdf/ibm/360/os/R20.1/plm/GY28-6616-4_ISAM_R20.1_PLM_Jun71.pdf IBM System/360 Operating System Indexed Sequntial Access Methods. Program Logic Manual] Program Number 360S-IO-526 // IBM, 1966-1971 |
| | | |