Студопедия  
Главная страница | Контакты | Случайная страница

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

Базы данных в прологе. Предикаты динамическое БД.

Читайте также:
  1. Ethernet (от англ. ether «эфир») — пакетная технология передачи данных преимущественно локальных компьютерных сетей.
  2. I ЭТАП – ОБСЛЕДОВАНИЕ (сбор данных).
  3. II. Из данных слов выберите то, которое закончит предложение.
  4. L3: Реферативная база данных обзоров по эффективности медицинских вмешательств
  5. L4: Кокрановская база данных по методологии обзоров
  6. Автоматизированные информационные ресурсы России, оценка их состояния. Фактографические базы социальных данных
  7. Агрегаты данных
  8. Алгоритмы обработки данных. Основные алгоритмические конструкции.
  9. Алгоритмы сжатия данных неизвестного формата
  10. Анализ данных в государственном управлении.

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

ния и корректировки данных. Эти функции реализуются специальными программами. Совокупность базы данных и функциональных

программ образует систему управления базой данных. Существуют три хорошо известные модели организации БД. Это иерархическая модель, сетевая модель и реляционная модель. В иерархической модели данные хранятся в иерархии кластеров. В сетевой данные содержатся в виде связанных агрегатов, образующих сеть. В реляционной данные хранятся в виде таблиц. В Турбо-Прологе имеются специальные средства для организации баз данных. Эти средства рассчитаны на работу с реляционными базами данных. Внутренние унификационные процедуры языка осуществляют автоматическую выборку фактов с нужными значениями известных параметров и присваивают значения еще не определенным. К тому же механизм отката позволяет находить все имеющиеся ответы на сделанный запрос.

Чтобы понять, как в Турбо-Прологе реализуется обращение к БД, рассмотрим запрос 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; просмотров: 126 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав