Достоинством Пролога является простота создания динамических баз данных. Основной задачей систем управления баз данных СУБД является добавление, удаление и корректирование записей в базе.
Различают 3 модели СУБД:
Данные в реляционной базе данных представляются в виде таблицы. Под каждую запись в БД отводится одна строка, которая рассматривается как элемент отношения. Число элементов отношения является мощностью отношения. Число колонок (полей) в записи называется арностью. Имя колонки является атрибутом. Например, список студентов
Например: студент
ФИО |
группа |
№ студента |
Фамилия , группа и номер образуют запись в базе, которую можно определить предикатом – dstudent (name, groupe, position). Таким образом, можно установить следующие соответствия
База данных Турбопролога |
Реляционная база |
Предикат базы |
Отношение |
Объект |
Атрибут |
Отдельное утверждение |
Элемент отношения |
Количество утверждений |
Мощность |
Имя предиката |
Имя таблицы |
Для работы с БД в Прологе имеются встроенные предикаты:
Например: assertbase: - student (name, group, number),
Assertz (dstudent (name, group, number)),
Faile.
assertbase: -!.
Например, из записи убрать конкретного студента:
Retract (dstudent («Иванов», 461, 5))
Предикаты для работы с базой в целом:
Save (Dos_filename) – сохраняет из ОЗУ на диске.
Пример:
Domains
Name = string
Group = integer
Number = integer
student(name, group, number)
readterm(dstudent, student(name, groupe, number))
Для получения списка всех студентов можно использовать предикат findall(Name, dstudent(Name, _, _), Namelist). Переменная Namelist будет содержать список всех имен.
Создание базы данных в ОЗУ