Работа со строками ( STRING HANDLING )
frontchar(String,FrontChar,RestString) (string,char,string) - (i,o,o) (i,i,o) (i,o,i) (i,i,i) (o,i,i) fronttoken(String,Token,RestString) (string,string,string) - (i,o,o) (i,i,o) (i,o,i)(i,i,i)(o,i,i) frontstr(Lenght,InpString,StartString,RestString) (integer,string,string,string) - (i,i,o,o)
concat(String1,String2,String3) (string,string,string) - (i,i,o) (i,o,i) (o,i,i) (i,i,i) str_len(String,Length) (string,integer) - (i,i) (i,o) (o,i) isname(StringParam) (string) - (i) format(OutputVariable,FormatString,Variable|Constant*) - (o,i,i)
Преобразования ( CONVERSIONS ) char_int(CharParam,IntgParam) (char,integer) - (i,o) (o,i) (i,i) str_int(StringParam,IntgParam) (string,integer) - (i,o) (o,i) (i,i) str_char(StringParam,CharParam) (string,char) - (i,o) (o,i) (i,i) str_real(StringParam,RealParam) (string,real) - (i,o) (o,i) (i,i) upper_lower(StringInUpperCase,StringInLowerCase) (string,string) - (i,i) (i,o) (o,i)
Базы данных 2.8.1 Внутренняя база данных Внутренняя БД хранится в текстовом файле, она может быть целиком считана в оперативную память и быстро обработана. Для объявления формата внутренней БД используется специальный раздел Пролог-программы, выделяемый ключевым словом: database [- <имя>]. consult(DosFileName,InternalDatabaseName) (string,InternalDatabaseName) - (i,i) consult(DosFileName) (string) - (i) save(DosFileName,InternalDatabaseName) (string,DatabaseName) - (i,i)
save(DosFileName) (string) - (i) assert(Term) (InternalDatabaseDomain) - (i)
asserta(Term) (InternalDatabaseDomain) - (i) assertz(Term) (InternalDatabaseDomain) - (i) nondeterm retract(Term) (InternalDatabaseDomain) - (_) nondeterm retract(Term,InternalDbaseName) (InternalDatabaseDomain,DatabaseName) - (_,i) retractall(_,InternalDbaseName) (_,DatabaseName) - (_,i) retractall(Term) (InternalDatabaseDomain) - (_) 2.8.2 Внешняя база данных ( EXTERNAL DATABASE SYSTEM ) Каждая БД имеет уникальное имя, которое называется селектором БД (db-selector). БД состоит из записей - цепочек (chain).
Основные типы данных, используемые во внешних БД: Предикаты для создания БД: db_create(Dbase,Name,Place) (db_selector,string,place) - (i,i,i) db_open(Dbase,Name,Place) (db_selector,string,place) - (i,i,i) db_openinvalid(Dbase,Name,Place) (db_selector,string,place) - (i,i,i)
db_delete(Name,Place) (string,place) - (i,i) db_copy(Dbase,Name,Place) (db_selector,string,place) - (i,i,i) db_flush(Dbase) (db_selector) - (i) db_garbagecollect(Dbase) (db_selector) - (i) Предикаты по работе с В-деревьями: bt_create(Dbase,BtreeName,Btree_selector,KeyLen,Order) (db_selector,string,bt_selector,integer,integer) bt_open(Dbase,BtreeName,Btree_selector) (db_selector,string,bt_selector) - (i,i,o)
bt_delete(Dbase,BtreeName) (db_selector,string) - (i,i) nondeterm db_btrees(Dbase,Btree) (db_selector,string) - (i,o)
Предикаты статистики: db_statistics(Dbase,NoOfTerms,MemSize,DbaSize,FreeSize) (db_selector,real,real,real,real) - (i,o,o,o,o) Пример: db_statistics (pers, Nch, M, D, FM)
bt_statistics(Dbase,Btree_selector,NoOfKeys,NoOfPages, Dept,KeyLen,Order,PageSize) (db_selector,bt_selector,real,real, integer,integer,integer,integer) -(i,i,o,o,o,o,o,o)
Предикаты для работы с цепочками записей заданного типа: nondeterm db_chains(Dbase,Chain) (db_selector,string) - (i,o) Выдать имена типов записей Chain из базы данных Dbase. db_chains (dba, Сh) chain_inserta(Dbase,Chain,Domain,Term,Ref) (db_selector,string,symbol,,ref) - (i,i,i,i,o) chain_insertz(Dbase,Chain,Domain,Term,Ref) (db_selector,string,symbol,,ref) - (i,i,i,i,o) chain_insertafter(Dbase,Domain,Ref,Term,NewRef) (db_selector,symbol,ref,,ref) - (i,i,i,i,o) chain_delete(Dbase,Chain) (db_selector,string) - (i,i)
Передвижение по цепочке: БД Пролога позволяют следить за текущей цепочкой записей заданного типа с помощью специальной структуры данных (маркера). Он представляется как указатель, указывающий на запись в БД, записанную или прочитанную последней. chain_first(Dbase,Chain,FirstRef) chain_last(Dbase,Chain,LastRef) (db_selector,string,ref) - (i,i,o) chain_next(Dbase,Ref,NextRef) (db_selector,ref,ref) - (i,i,o) chain_prev(Dbase,Ref,PrevRef) (db_selector,ref,ref) - (i,i,o)
Работа с записями базы данных: nondeterm chain_terms(Dbase,Chain,Domain,Term,Ref) (db_selector,string,symbol,,ref) - (i,i,i,_,o) term_delete(Dbase,Chain,Ref) (db_selector,string,ref) - (i,i,i) term_replace(Dbase,Domain,Ref,NewTerm) (db_selector,symbol,ref,) - (i,i,i,i) ref_term(Dbase,Domain,Ref,Term) (db_selector,symbol,ref,) - (i,i,i,_)
key_insert(Dbase,Btree,Key,Ref) (db_selector,bt_selector,string,ref) - (i,i,i,i) key_delete(Dbase,Btree,Key,Ref) (db_selector,bt_selector,string,ref) - (i,i,i,i) Каждое B-дерево сохраняет (поддерживает) внутренний указатель на свои узлы. Key_first и key_last позволяют вам ставить указатель на первый и последний ключ соответственно, key_search на заданный, key_current - на текущий. key_first(Dbase,Btree,FirstRef) (db_selector,bt_selector,ref) - (i,i,o) key_last(Dbase,Btree,LastRef) (db_selector,bt_selector,ref) - (i,i,o) key_search(Dbase,Btree,Key,Ref) (db_selector,bt_selector,string,ref) - (i,i,i,o) key_current(Dbase,Btree,Key,Ref) (db_selector,bt_selector,string,ref) - (i,i,o,o) Предикаты key_next и key_prev служат для передвижения указателя B-дерева вперед или назад в отсортированном дереве. key_next(Dbase,Btree,NextRef) (db_selector,bt_selector,ref) - (i,i,o) key_prev(Dbase,Btree,PrevRef) Если указатель стоит в одном из концов, то попытки передвинуть указатель дальше ,будут безуспешны, и указатель будет действовать так, как если бы он был помещен в одной из позиций вне дерева.
Популярное: Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Почему стероиды повышают давление?: Основных причин три... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (365)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |