Читайте также:
|
|
СУБД являются компьютеризованной системой хранения информации. Данные в БД представляют собой набор фактов и цифр, записанных в доступной для компьютера форме. Эта упорядоченная совокупность и является содержимым базы данных. СУБД должны предоставлять возможность добавления, удале-
ния и корректировки данных. Эти функции реализуются специальными программами. Совокупность базы данных и функциональных
программ образует систему управления базой данных. Существуют три хорошо известные модели организации БД. Это иерархическая модель, сетевая модель и реляционная модель. В иерархической модели данные хранятся в иерархии кластеров. В сетевой данные содержатся в виде связанных агрегатов, образующих сеть. В реляционной данные хранятся в виде таблиц. В Турбо-Прологе имеются специальные средства для организации баз данных. Эти средства рассчитаны на работу с реляционными базами данных. Внутренние унификационные процедуры языка осуществляют автоматическую выборку фактов с нужными значениями известных параметров и присваивают значения еще не определенным. К тому же механизм отката позволяет находить все имеющиеся ответы на сделанный запрос.
Чтобы понять, как в Турбо-Прологе реализуется обращение к БД, рассмотрим запрос dplayer("Bernie Kosar",Team,Pos).
В этом утверждении Team и Pоs есть переменные, значения которых нужно найти. Когда этот запрос (цель) испытывается, процедуры Турбо-Пролога просматривают утверждения БД на предмет сопоставления с утверждением, содержащим Bernie Kosar. Так
как в базе данных такое утверждение присутствует, то переменной Team присваивается значение Cleveland Browns, а переменной Pos - QB.
Если трактовать dplayer как предикат БД Турбо-Пролог, то отсюда следует с необходимостью такое его описание database
dplayer(name,team,position)
Раздел database в Турбо-Прологе предназначен для описания предикатов базы данных, таких как dplayer. Все различные утверждения этого предиката составляют динамическую базу данных Турбо-Пролога. База данных называется динамической, так во время работы программы из нее можно удалять любые содержащиеся в ней утверждения, а также добавлять новые. В этом состоит ее отличие от "статических" баз данных, где утверждения являются частью кода программы и не могут быть изменены во
время счета. Другая важная особенность динамической базы данных состоит в том, что такая база может быть записана на диск, а также считана с диска в оперативную память. Иногда бывает предпочтительно иметь часть информации базы данных в виде утверждений статической БД; эти данные заносятся в динамическую БД сразу после активизации программы.(Для этой цели используются предикаты asserta и assertz, которые будут рассмотрены ниже.) В общем, предикаты статической БД имеют другое имя, но ту же самую форму представления данных, что и предикаты динамической. Предикат статической
БД, соответствующий предикату dplayer динамической базы данных, есть predicates
player(name,team,position)
clauses
player("Dan Marino","Miami Dolphins","QB").
player("Richart Dent","Chicago Bears","DE").
Заметим, что все отличие предиката dplayer по сравнению с player заключается лишь в одной лишней букве терма. Добавление латинской буквы d - обычный способ различать предикаты
динамической и статической баз данных.
Предикаты динамической базы данных.
При создании динамической базы данных Турбо-Пролога используются как стандартные предикаты, так и специальные.
Таковыми являются asserta, assertz, retract, save, consult, readterm и
findall.
* Предикаты для работы с утверждениями динамической базы данных.
Предикаты asserta, assertz и retract позволяют занести факт в заданное место динамической БД и удалить из нее уже имеющийся факт.
Предикат asserta заносит новый факт в базу данных, располагающуюся в оперативной памяти компьютера (резидентная БД). Новый факт помещается перед всеми уже внесенными утверждениями данного предиката.
Предикат assertz так же, как и asserta, заносит новые утверждения в базу данных. Однако он помещает новое утверждение за всеми уже имеющимися в базе утверждениями того же предиката. И тд.
* Предикаты для работы с базой данных в целом
Предикаты save и consult применяются для записи динамической БД в файл на диск и для загрузки содержимого файла в динамическую БД. Предикат save cохраняет находящуюся в оперативной памяти базу данных в текстовом файле. Синтаксис этого предиката save(DOS_file_name
Для загрузки файла футбольной БД требуется выражение consult("football.dba").
Предикат readterm используется для чтения из файла объектов, относящихся к определенному в программе домену. И тд.
Дата добавления: 2015-01-30; просмотров: 275 | Поможем написать вашу работу | Нарушение авторских прав |