Скачиваний:
201
Добавлен:
17.06.2016
Размер:
2.69 Mб
Скачать

Домены, связанные с внешними базами данных.

Базы данных используют 4 стандартных домена, приведенных здесь:

Домен Для чего используется:

----- ----------------------

db_selector для объявления селекторов баз данных

bt_selector для объявления селекторов B-деревьев

place для объявления местоположения базы данных (в

памяти, на диске, или в расширенной памяти)

ref ссылка на расположение терма в цепочке.

Указатели базы данных.

Всякий раз при введение нового терма в базу данных Турбо Пролог

присваивает ему указатель. Вы можете использовать указатель терма для вы-

борки, перемещения или замены терма, или для доступа к предыдущему или

последующему терму. Вы можете также внести указатель в Bдерево (это опи-

сано ниже), а затем использовать B-дерево для сортировки или быстрого по-

иска терма.

Указатель не зависит от местоположения базы данных или от возможных

операций упаковки. Если указатель был связан с термом, вы можете исполь-

зовать его для доступа к терму до момента удаления этого терма, независи-

мо от того, какие операции по управлению базой данных производятся.

Домен ref.

Указатель - это особый тип данных, так как вы можете включать его во

внутреннюю базу данных, выводить его операторами write и writef, но вы не

можете ввести его с клавиатуры. Можно объявить аргументы предикатов,

предназначенных для работы с указателями, как принадлежащие домену ref.

При удалении терма предикатом term_delete указатель удаленного терма

используется вновь в момент внесения нового терма в базу данных. Это про-

исходит автоматически, однако, если указатели в силу каких-то причин были

внесены во внутреннюю базу данных или B-дерево, необходимо убедиться, что

данный указатель связан именно с тем термом, который вы имеете в виду.

Обработка целых баз.

Когда вы создаете новую внешнюю базу данных или открываете существу-

ющую, вы можете поместить ее в файл, в оперативную или расширенную память

в зависимости от значения аргумента place в при обращении к db_create или

db_open. После окончания работы с внешней базой данных вы закрываете ее с

помощью вызова db_close.

Если база данных размещена в основной или расширенной памяти, то

закрытие базы данных с помощью db_close не будет приводить к удалению ба-

зы данных из памяти. Вы должны сделать это явно обращением к предикату

db_delete для высвобождения памяти, занятой базой данных. Если вы закры-

ваете базу данных, но не уничтожаете ее, то можете позднее открыть ее

снова предикатом db_ open.

Так как система внешних баз данных зависит от буферной системы DOS,

она будет работать слишком медленно, если не загружены буферы. Для заг-

рузки 40 буферов (это число не так уж велико), включите в файл CONFIG.SYS

(часть среды DOS) следующую строку:

buffers=40

В этом параграфе мы обсудим предикаты db_create, db_open, db_copy,

db_close, db_delete, db_openinvalid, db_flush, db_garbagecollect,

db_btrees, db_chains, db_statistics.

Соседние файлы в папке Документация