Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Базы данных




Внутренняя БД (часто называют динамическая база данных) хранится в текстовом файле, она может быть целиком считана в оперативную память и быстро обработана. Внутренняя база данных состоит из фактов, которые можно динамически, в процессе выполнения программы, добавлять в базу данных и удалять из нее, сохранять в файле, загружать факты из файла в базу данных. Эти факты могут использовать только предикаты, описанные в разделе описания предикатов базы данных.

DATABASE [ — <имя базы данных >]

<имя предиката>(<имя домена первого аргумента>,...,

< имя домена n-го аргумента>)

Если раздел описания предикатов базы данных в программе только один, то он может не иметь имени. В этом случае он автоматически получает стандартное имя dbasedom. В случае наличия в программе нескольких разделов описания предикатов базы данных только один из них может быть безымянным. Все остальные должны иметь уникальное имя, которое указывается после названия раздела DATABASE и тире. Когда объявлен раздел описания предикатов базы данных, компилятор внутренне объявляет соответствующий домен с таким же именем, как у этого раздела; это позволяет специальным предикатам обрабатывать факты как термы.

Описание предикатов базы данных совпадает с их описанием в разделе описания предикатов PREDICATES. Однако эти предикаты можно задействовать в качестве параметров встроенных предикатов. Кроме того, факты, использующие эти предикаты, могут добавляться и удаляться во время выполнения программы.

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

 

Встроенные предикаты для работы с БД:

consult(DosFileName,InternalDatabaseName)(string,InternalDatabaseName) - (i,i) Загрузка из файла DosFileName внутренней БД с именем InternalDatabaseName, объявленной как DATABASE - InternalDatabaseName.
consult(DosFileName) (string) - (i) Загрузка из файла DosFileName внутренней базы данных, объявленной без имени.
save(DosFileName,InternalDatabaseName) (string,DatabaseName) - (i,i) Сохранение внутренней базы данных, объявленной с именем InternalDatabaseName, в файле DosFileName.
save(DosFileName) (string) - (i) Сохранение внутренней базы данных, объявленной без имени, в файле DosFileName.
assert(Term) (InternalDatabaseDomain) - (i) Добавление терма (факта) Term во внутреннюю базу данных.
asserta(Term) (InternalDatabaseDomain) - (i) Добавление факта Term в начало базы данных.
assertz(Term) (InternalDatabaseDomain) - (i) Добавление факта Term в конец базы данных.
retractall(_,InternalDbaseName) (_,DatabaseName) - (_,i) Удаление всех термов во внутренней базе данных с указанным именем InternalDbaseName.
retractall(Term) (InternalDatabaseDomain) - (_) Удаление всех термов вида Term во внутренней базе данных без имени.

 

Пример: Имеется база данных – список имён. Составить программу, которая будет проводить пополнение БД.





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 344 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент может не знать в двух случаях: не знал, или забыл. © Неизвестно
==> читать все изречения...

2817 - | 2385 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.