Isam что это
Перейти к содержимому

Isam что это

  • автор:

Isam что это

ISAM (англ.  Indexed Sequential Access Method  — Индексно-Последовательный Метод Доступа) — способ хранения данных для быстрого доступа к ним. Способ был разработан компанией IBM для мейнфреймов в 1963 году, в настоящее время это основной способ представления данных почти во всех базах данных (реляционных и пр.).

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

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

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

ISAM был заменен IBM методологией, названной VSAM (Virtual Storage Access Method). Позднее, IBM разработал DB2, которая стала основной СУБД от IBM. VSAM — это способ физического хранения данных в DB2.

Isam что это

ISAM (англ. Indexed Sequential Access Method — индексно-последовательный метод доступа) — способ хранения данных для быстрого доступа к ним. Способ был разработан компанией IBM для мейнфреймов в 1963 году, в настоящее время это основной способ представления данных почти во всех базах данных.

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

Реляционные базы данных могут быть построены на способе хранения данных ISAM с добавленной логикой по сохранению целостности связей между таблицами. Обычно поле, используемое для связи (внешний ключ), индексируется для быстрого поиска. Конечно, это медленнее, чем просто хранить указатели на нужные записи в другой таблице непосредственно в записях, но зато изменения на физическом уровне хранения данных не потребуют изменения указателей: на физическом уровне таблицы остаются независимыми друг от друга, слабо связанными через пару «внешний/первичный ключ», что позволяет провести перекомпоновку структуры хранения таблицы, содержащей первичный ключ, или даже переместить её в отдельную партицию без потери связности.

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

ISAM был заменен IBM методологией, названной VSAM (Virtual Storage Access Method). Позднее IBM разработал DB2, которая стала основной СУБД от IBM. VSAM — это способ физического хранения данных в DB2.

Isam что это

Решил написать свою простенькую базу.

Надоели мне все эти дятлы, парадоксы и проч.
У дятла непонятно что с лицензированием. Парадокс и ему подобные вещи- это как-то не солидно, да и требуют BDE, или ADO, что есть плохо.

А платить (за dbiisam,firebird, и проч.)совсем невозможно(программа и так дешёвая).

Искал такие вопросы: how ISAM works, ISAM definition, isam programming, и проч и проч. Но толком ничего не нашёл, так что в гуглы меня не посылайте.

объясните мне пожалуйста принцип Indexed Sequential Access Method,
или его альтернативы


Виталий Панасенко   ( 2004-08-30 12:51 ) [1]

Юморист. -))


Danilka ©   ( 2004-08-30 13:01 ) [2]

>  платить (за dbiisam,firebird, и проч.)совсем невозможно(программа
> и так дешёвая).

За выделеное платить ненадо. И не только за это — бесплатных движков есть много.
Впрочем, как желаете, уважаемый, только совет небольшой — пиши сразу под .NET, т.к., к тому времени, когда более менее опыта наберешся, и получится путный движок, от WinAPI останутся одни воспоминания..


Maxim____   ( 2004-08-30 13:01 ) [3]

что вы смеётесь? я всего дишь прошу подсказать мне источник, где можно узнать об ISAM принципе.
конечно то, что я собираюсь создать — несравнимо меньше парадоксов и фоксов, и заточено под мою небольшую задачку.


ydv   ( 2004-08-30 13:40 ) [4]

Maxim____
>что вы смеётесь?
А они всегда смеются, когда не знают. А не знают они почти всегда.


Sergey13 ©   ( 2004-08-30 13:42 ) [5]

2[3] Maxim____   (30.08.04 13:01)
>я всего дишь прошу подсказать мне источник
Нет. Ты вначале охаял половину БД, основываясь на непонятно откуда подчепрнутых сведеньях, а потом попросил объяснить тебе принципы, без отсылания в Гуглы. Про источник ты не спрашивал. 😎


sniknik ©   ( 2004-08-30 14:30 ) [6]

> я всего дишь прошу подсказать мне источник
это без проблем
http://www.google.com/search?q=Indexed+Sequential+Access+Method&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf- 8
Results 1 — 10 of about 98,600 for Indexed Sequential Access Method [definition]. (0.46 seconds)
(заметь я никуда тебя не посылаю ;о), и почти сто тысяч источников)

ydv   (30.08.04 13:40) [4]
незарегистрированным никам некоторые из принцыпа не отвечают, уж больно много от них (как бы это помягче сказать). "запаха". непомерные запросы и требование внимания к себе а в ответ грубость (даже тем кто честно пытается помочь).
если тебя обидели, не ответили, не иши причину дальше чем в полметре от себя. причина скорее всего ты, и твои руки набившие глупый(/неинтересный/набивший всем оскомину/. ) вопрос


sniknik ©   ( 2004-08-30 14:33 ) [7]

странно, а по ссылке дало 44,500 тыс. но все одно немало.


ydv   ( 2004-08-30 14:43 ) [8]

sniknik ©
Вообще-то, размещая сообщения в этом форуме, люди надеются на помощь, но когда в ответ получают фразы типа: "ну ты дал", или "иди полечись", это говорит только о том, что отвечающий такое ничего не знает, зато хочет предстать весьма вумным перед другими.


Danilka ©   ( 2004-08-30 14:54 ) [9]

[8] ydv   (30.08.04 14:43)
Возможно, вместо обид следовало-бы посмотреть вопросы, на которые действительно отвечают, сравнить со своими и немного подумать?


ydv   ( 2004-08-30 14:56 ) [10]

Danilka ©
А не лучше ли просто быть взаимно вежливыми?


Danilka ©   ( 2004-08-30 14:58 ) [11]

[10] ydv   (30.08.04 14:56)
Конечно лучше :))


sniknik ©   ( 2004-08-30 14:58 ) [12]

ydv   (30.08.04 14:43) [8]
вопрос про проблему или чтото неполучающееся это одно а вот вопросы "лекционные" (практически требования/просбы накатать тематическую статью под одно "лицо" в понятиях этого же "лица" (ведь не начинать же с азов и терминов)) это другое. и сильно отличаюшееся.

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

вы кстати не задумывались почему авторы книг, одиночки, пишут для многих. а не наоборот?


Maxim____   ( 2004-08-30 15:12 ) [13]

спасибо, я не догадался набрать Indexed Sequential Access Method, всегда набирал просто ISAM и получал либо слишком много, либо не то.

Sergey13 ©   (30.08.04 13:42) [5]
я не охаял, а сказал в чём проблема, а она в том что я не хочу связываться BDE и с ADO.
и поэтому они меня не устраивают.

sniknik ©
// глупый(/неинтересный/набивший всем оскомину/. ) вопрос
вполне возможно что так, но для этого есть модераторы, которые должны удалять такие вопросы, да и вы в праве его проигнорироавть, если он вам неинтересен.
Перед тем как задавать вопрос о том что такое isam я также прорыл весь архив форумов, и нашёл там упоминания об этом только в связке с paradox, tdbf, etc.
а просто о том как это самому программить — ни слова.
или никто из здесь присутствуюших такими вещами никогда не занимался и все пишут только на высоком уровне?


ydv   ( 2004-08-30 15:14 ) [14]

sniknik ©
> вопросы "лекционные" (практически требования/просбы накатать тематическую статью под одно "лицо" в понятиях этого же "лица" (ведь не начинать же с азов и терминов))

я достаточно наблюдаю за форумом, и такое вижу крайне редко, и чаще всего встречается первый случай


sniknik ©   ( 2004-08-30 15:24 ) [15]

> и чаще всего встречается первый случай
не особо напрягаясь на поиски, второй (для вас) случай.
http://delphimaster.net/view/1-1093861033/

и с той же реакцией
(проада там и лекция если бы требовалось короче бы было, но не понадобилось, автор внял "паправлению")

хотелось бы вам вот такое вот дать, почитайте и поймете, поечему происходит так а не иначеhttp://ricotelecom.sf.ukrtel.net/how.htm
если бы все делали так то было бы очень здорово

а во вопросу ветки могу сказать что в данном случае с моей точки зрения подошло бы лучше всего
FirebirdEmbeded


Maxim____   ( 2004-09-03 02:10 ) [17]

Rule ©   (30.08.04 15:27) [16]
спасибо за совет.
вы уверены что я могу легально использовать firebird embedded в коммерческом продукте? у меня почкму-то нет такой уверенности, я где-то читал про платность на ibase.ru.

второй момент. я не хочу чтобы юзер увидел файлы mdb и обо всём подвохе догадался.  
есть ли какие-нибудь способы скрыть от пользователя правду?
как-нибудь быть посредником между компонентами доступа.
а базу записывать с другим расширением и , если не с шифрованием, то  хотя-бы с каким-нибудь смещением.
или это невозможно и все базы придётся хранить в открытом общедоступном mdb — виде?


sniknik ©   ( 2004-09-03 10:50 ) [18]

> я не хочу чтобы юзер увидел файлы mdb
расширение файла практически ничего не значит, меняй на любое
(но спратять аксесс врят ли удастся файл блокировок *.ldb создается системой при открытии, любой догадается)

> и все базы придётся хранить в открытом общедоступном mdb — виде?
кому это он общедоступен? правильно установленный пароль практически не вскрывается (не конечно если серьезно к делу подойти, а не просто скачать "ломалку", то невскрываемого ничего нет)


Maxim____   ( 2004-09-03 11:53 ) [19]

sniknik ©   (03.09.04 10:50) [18]
спасибо за совет.
Извините, ошибся не MDB а GDB.
Не знал что пароль шифрует базу.
Кому-нибудь встречались ломалки GDB баз? что там, подбор методом перебора (тогда можно по-длинней пароль задать) или что-то более серьёзное существует для взлома? вопрос очень важный, т.к. если пользователь сможет редактровать базу то ценность программы станет равной нулю.


sniknik ©   ( 2004-09-03 12:05 ) [20]

> Не знал что пароль шифрует базу.
в GDB нет она открыта если доступен сам файл.


Digitman ©   ( 2004-09-03 12:08 ) [21]


> Maxim____   (03.09.04 11:53) [19]


> Кому-нибудь встречались ломалки GDB баз?


> если пользователь сможет редактровать базу то ценность программы
> станет равной нулю.

ты локальное БД-приложение делать собрался или сетевое ?
в последнем случае GDB-файл вполне м.б. размещен на удаленном сервере, на котором никакому юзеру неча делать, если юзер прав на то не имеет, будь он даже трижды любопытный . а админ должен каждый день ходить под страхом расстрела, если он пустит такого юзера на территорию сервера


Maxim____   ( 2004-09-03 18:06 ) [22]

база локальная.

печально всё это. не думал что тут access окажется лучше,
и уже стал FB осваивать.

придётся писать какой-нибудь компонентик, который будет писать кривые данные в базу а считывать прямые 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *