Язык логического программирования ПРОЛОГ. Бураков М.В. - 32 стр.

UptoLike

Составители: 

30
DATABASE
dplayer(name, rost, ves)
PREDICATES
player(name, rost, ves)
CLAUSES
player(“Михайлов”, 180, 87)
player(“Петров”, 187, 93)
player(“Харламов”, 177, 80)
Допустим, что необходимо после запуска программы переместить
данные из статической БД в динамическую. Для этого можно описать
следующее правило:
assert_database:-player(N, R, V), assertz(dplayer(N, R, V)),fail.
В этом правиле использован встроенный предикат assertz, который
помещает утверждение в базу данных после всех утверждений, кото-
рые там уже имеются. Есть также встроенные предикаты для удаления
утверждений (retract), считывания с диска (consult), записи БД на диск
(save) и сбора данных из БД в список (findall).
Главное достоинство БД на ПРОЛОГе, как и любой другой БД, зак-
лючается в возможности быстрого выборочного доступа к информации.
Например, в приведенном выше примере это может быть запрос:
GOAL: player(N, R, V),R>180
Если сравнивать основные понятия ПРОЛОГа и реляционных БД, то
получится следующая табл.4.
Таблица 4
ГОЛОРПДБеынноицялеР
такидерП)ацилбат(еинешонтО
ткеъбОяинешонтотубиртА
еинеджревтуеоньледтО)ьсипаз(яинешонтотнемелЭ
йинеджревтуовтсечилоКяинешонтоьтсонщоМ
Таким образом, можно сказать, что любая ПРОЛОГ-программа мо-
жет быть названа базой данных.
Каково же главное отличие ПРОЛОГ-программ от реляционных БД?
В БД можно только извлекать существующие сведения или изменять
данные по заданному закону. В ПРОЛОГ-программе за счет использо-