Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Логическое программирование. Turbo Prolog 2.0.doc
Скачиваний:
72
Добавлен:
04.06.2015
Размер:
1.59 Mб
Скачать

7.2 Управление внешней базой данных

(EXTERNAL DATABASE SYSTEM)

db_create(Db, Name, P)

(db_selector, string, place)

(i,i,i) -

создает внешнюю базу данных Nameна устройствеPи связывает ее с буферомDb.

db_open(Db, Name, P)

(db_selector, string, place)

(i,i,i) -

связывает буфер Dbс внешней базой данныхNameорганизованной на устройствеP.

db_openinvalid(Db, Name, P)

(db_selector, string, place)

(i,i,i) -

связывает буфер Dbс дефектной внешней базой данныхNameорганизованной на устройствеP.

db_close(Db)

(db_selector)

(i) -

закрывает базу данных, связанную с буфером Db.

db_delete(Name,P)

(string,place)

(i,i) -

удаляет базу данных, связанную с буфером Dbс устройстваP.

db_flush(Db)

(db_selector)

(i) -

освобождает буфер Db

db_garbagecollect(Db)

(db_selector)

(i) -

проводит очистку буфера от ненужной («мусорной») информации.

db_copy(Db, Name, P)

(db_selector, string, place)

(i,i,i)

делает дубль базы данных, связанной с буфером Db, копируя ее под именемNameна устройствоP.

nondeterm db_chains(Db, Chain)

(db_selector, string)

(i,o) -

возвращает идентификаторы цепочек фактов.

nondeterm db_btrees(Db, Bt)

(db_selector, string)

(i,o)

возвращает идентификаторы деревъев ссылок.

db_statistics(Db, NoOfTerms, MemSize, DbaSize, FreeSize)

(db_selector, real, real, real, real)

(i,o,o,o,o) -

возвращает параметры базы данных, связанной с буфером Db

NoOfTerms-

количество фактов в базе,

MemSize-

размер буфера,

DbaSize-

размер базы данных,

FreeSize-

объем свободной области.

chain_inserta(Db, Chain, Dom, Term, Ref)

(db_selector, string, symbol, <Domain>, ref)

(i,i,i,i,o) -

заносит в начало базы данных, связанной с буфером Dbв цепочкуChainпредикатTerm, описанный как доменDom, возвращает ссылочное числоRef.

chain_insertz(Db, Chain, Dom, Term, Ref)

(db_selector, string, symbol, <Domain>, ref)

(i,i,i,i,o) -

заносит в конец базы данных, связанной с буфером Dbв цепочкуChainпредикатTerm, описанный как доменDom, возвращает ссылочное числоRef.

chain_insertafter(Db, Dom, Ref, Term, NewRef)

(db_selector, symbol, ref,<Domain>, ref)

(i,i,i,i,o) -

заносит в базу данных, связанную с буфером DbпредикатTerm, описанный как доменDom, располагая его после факта со ссылочным числомRefв той же цепочке; возвращает ссылочное число новой записиNewRef.

chain_delete(Db, Chain)

(db_selector, string)

(i,i) -

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

nondeterm chain_terms(Db, Chain, Dom, Term, Ref)

(db_selector, string, symbol, <Domain>, ref)

(i,i,i, _,o) -

возвращает неизвестные параметры факта, имеющего описание Dom, удовлетворяющего шаблонуTermи хранящегося в цепочкеChainбазы данных, связанной с буферомDb.

chain_first(Db, Chain, FirstRef)

(db_selector, string, ref)

(i,i,o) -

возвращает ссылку на первый факт в цепочке Chainбазы данных связанной с буферомDb.

chain_last(Db, Chain, LastRef)

(db_selector, string, ref)

(i,i,o) -

возвращает ссылку на последний факт в цепочке Chainбазы данных связанной с буферомDb.

chain_next(Db, Ref, NextRef)

(db_selector, ref, ref)

(i,i,o) -

возвращает ссылку на запись расположенную после факта со ссылочным числом Refв той же цепочке базы данных, связанной с буферомDb.

chain_prev(Db, Ref, PrevRef)

(db_selector, ref, ref)

(i,i,o) -

возвращает ссылку на запись расположенную перед фактом со ссылочным числом Refв той же цепочке базы данных, связанной с буферомDb.

term_delete(Db, Chain, Ref)

(db_selector, string, ref)

(i,i,i) -

удаляет из цепочки Chainбазы данных, связанной с буферомDb, факт со ссылочным числомRef.

term_replace(Db, Dom, Ref, NewTerm)

(db_selector, symbol, ref, <Domain>)

(i,i,i,i) -

заменяет в базе данных, связанной с буфером Dbзапись, имеющую ссылочное числоRefна фактNewTermс описаниемDom.

ref_term(Db, Dom, Ref, Term)

(db_selector, symbol, ref, <Domain>)

(i,i,i, _) -

возвращает неизвестные параметры факта, имеющего описание Dom, удовлетворяющего шаблонуTermи имеющего ссылочное числоRefв базе данных, связанной с буферомDb.

bt_create(Db, BtName, Bt, KeyLen, Order)

(db_selector, string, bt_selector, integer, integer)

- (i,i,o,i,i)

создает дерево ссылок BtNameв базе данных связанной с буферомDbи возвращает идентификатор его буфера.KeyLen– количество значимых символов в ключе при сортировке,Order– длина узла дерева ссылок.

bt_open(Db, BtName, Bt)

(db_selector, string, bt_selector)

(i,i,o) -

открывает дерево ссылок BtNameв базе данных связанной с буферомDbи возвращает идентификатор отведенного для него буфера.

bt_close(Db, Bt)

(db_selector, bt_selector)

(i,i) -

закрывает дерево ссылок с буфером Bt.

bt_delete(Db, BtName)

(db_selector, string)

(i,i) -

удаляет указанное дерево из базы данных.

bt_statistics(Db, Bt, NoKeys, NoPages, Dept, KeyLen, Order, PageSize)

(db_selector, bt_selector, real, real, integer, integer, integer, integer)

(i,i,o,o,o,o,o,o) -

возвращает параметры указанного дерева ссылок:

NoKeys-

количество ключей в дереве;

NoPages-

количество страниц, занимаемых деревом;

Dept-

глубина дерева;

KeyLen-

количество символов ключа,используемых при сортировке;

Order-

длина узла дерева ссылок;

PageSize-

размер страницы.

key_insert(Db, Bt, Key, Ref)

(db_selector, bt_selector, string, ref)

(i,i,i,i) -

добавляет ключ и ссылочное число в дерево ссылок.

key_delete(Db, Bt, Key, Ref)

(db_selector, bt_selector, string, ref)

(i,i,i,i) -

удаляет ключ и соответствующую ссылку из дерева.

key_first(Db, Bt, FirstRef)

(db_selector, bt_selector, ref)

(i,i,o) -

возвращает ссылку, соответствующую первому ключу в дереве, делает его текущим.

key_last(Db, Bt, FirstRef)

(db_selector, bt_selector, ref)

(i,i,o) -

возвращает ссылку, соответствующую последнему ключу в дереве, делает его текущим.

key_search(Db, Bt, Key, Ref)

(db_selector, bt_selector, string, ref)

(i,i,i,o) -

возвращает ссылку, соответствующую указанному ключу.

key_next(Db, Bt, NextRef)

(db_selector, bt_selector, ref)

(i,i,o) -

возвращает ссылку, соответствующую следующему ключу в дереве и делает его текущим.

key_prev(Db, Bt, PrevRef)

(db_selector, bt_selector, ref)

(i,i,o) -

возвращает ссылку, соответствующую предыдущему ключу в дереве и делает его текущим.

key_current(Db, Bt, Key, Ref)

(db_selector, bt_selector, string, ref)

(i,i,o,o) -

возвращает ссылку и значение текущего ключа в дереве.

Контрольные вопросы

  1. Какие встроенные предикаты ввода-вывода вы знаете?

  2. Какая база данных называется внутренней, а какая внешней?

  3. Каким образом описываются предикаты динамической базы данных?

  4. Каковы требования к файлу базы данных в Турбо Прологе?

8 Лабораторный практикум

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