Лабораторная работа динамические базы данных




Скачать 35.18 Kb.
НазваниеЛабораторная работа динамические базы данных
Дата21.12.2012
Размер35.18 Kb.
ТипЛабораторная работа
Лабораторная работа

ДИНАМИЧЕСКИЕ БАЗЫ ДАННЫХ


Цель работы – овладеть приемами создания и ведения реляционных баз данных на Прологе.


Краткая справка

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

database /* Секция базы данных */

person (symbol, symbol, integer) /* Фамилия, специальность, возраст */


Предикат, указываемый в секции database, можно рассматривать как описа­ние схемы отношения реляционной базы данных.

В одной секции может быть описано несколько предикатов. Факты, соответствующие разным предикатам, должны быть сгруппированы по имени предиката, т.е. их нельзя записывать вперемежку.

Например, возможно такое описание базы данных.

database

person(symbol,symbol,integer) /* Фамилия,специальность,возраст */

oklad(symbol,real) /* Специальность, оклад */


clauses

person("Иванов","инженер",25).

erson("Петров","токарь",23).

person("Сидоров","слесарь",24).

person("Кузнецов","слесарь",26).

oklad("инженер",1000).

oklad("токарь",800).

oklad("слесарь",900).


Для того чтобы записать текущую базу данных на диск, используется предикат: save (“Имя_DOS_файла”).


Например:

goal: save(“bd.ddd”).


Запись осуществляется на активный диск в текущую директорию. Если файл с таким именем уже существует, то он будет уничтожен.

Записи фактов хранятся на диске в том же виде и в том же порядке, что и в исходной базе данных. Но следует обратить внимание на отсутствие точки в конце каждого факта! Это важно помнить при подготовке файла базы данных с помощью текстового редактора

Для добавления фактов в базу данных используются предикаты:


asserta (факт) - факт добавляется в начало базы данных;

assertz (факт) - факт добавляется в конец базы данных;

assert (факт) - факт добавляется на место удаленного при модификации .

Например:


Goal : asserta (person(“Иванников”, “программист”, 26)).


Для удаления факта из динамических баз данных используется предикат:

retract (факт).


Например, необходимо удалить факт, касающийся конкретного лица:

Goal: retract(person(“Иванников”, _, _ )).


При этом удаляется единственный (первый попавшийся) факт из базы данных.

Для удаления всех фактов, соответствующих некоторому значению объекта (атрибута), используется предикат:


retractall (person( _ , “слесарь”, _ )).


Файл, сохраненный на диске с помощью предиката save, или подготовлен­ный с помощью текстового редактора, можно загрузить в оперативную память, используя предикат:

consult (“имя_DOS_файла”).


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

При работе с базами данных часто бывает полезно выделить для дальнейшей обработки все значения какого-либо столбца. Компоновка всех значений какого-либо объекта предиката в список выполняется с помощью предиката “найти все”.


findall (объект_ i, предикат(объект­_1, объект_2, . . . , объект_ i,... ), список ).

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


clauses

. . . . . .

srv:- findall( Age, person( _ , _ , Age), L),

sumlist(L, S ), lenlist( L, N ), SV= S/N,

write(“Средний возраст: ”, SV),nl.


Процедуры нахождения суммы элементов списка и длины списка были рассмотрены ранее.


Порядок выполнения работы


При выполнении этой работы нужно организовать выполнение следующих действий:

  • добавление записей в конец базы данных;

  • удаление записи;

  • изменение записи;

  • поиск данных по какому-либо признаку;

  • просмотр содержимого базы данных.


Контрольные вопросы


  1. Как описываются базы данных в программе на Прологе?

  2. Можно ли в одной секции базы данных описать несколько отношений (таблиц)?

  3. В каком случае целесообразно использовать поименованные секции базы данных?

  4. Как сохранить базу данных на диске?

  5. Какие предикаты используются для добавления записей в базу данных?

  6. Как удалить запись из базы данных (факт из базы знаний)?

  7. Как загрузить базу данных в оперативную память?

  8. Какой можно скомпоновать все значения объекта предиката в один список?



Список используемых источников





  1. Крылов, Б.А. Логическое программирование. Учебное пособие – М.: Изд-во МГИЭМ, 2006. – 100 с.

  2. Программирование на Прологе. Методические указания к выполнению лабораторных работ 4-8 по дисциплине “Логическое программирование” / Сост. Б.А. Крылов, Моск. гос. ин-т электроники и математики. - М.: Изд-во МГИЭМ, 2006. - 22 с.

Похожие:

Лабораторная работа динамические базы данных iconЛабораторная работа динамические базы данных (продолжение)
Цель работы – овладеть приемами создания и ведения реляционных баз данных на Прологе
Лабораторная работа динамические базы данных iconЛабораторная работа № Создание простейшей базы данных 8 Лабораторная работа № Создание базы данных «Библиотека»
База данных – это организованная структура, предназначенная для хранения информации. В современных базах данных хранятся не только...
Лабораторная работа динамические базы данных iconВопросы к экзамену по курсу "Сетевые базы данных"
Понятия: база данных, система управления базами данных, банк данных, словарь данных, администратор базы данных
Лабораторная работа динамические базы данных iconЛабораторная работа №1 Создание базы данных Access
Создать первую таблицу, согласно заданию из приложения 1, с использованием мастера
Лабораторная работа динамические базы данных iconЛабораторная работа ╧ 1
Первая часть цикла лабораторных работ к курсу "Базы данных и знаний" изучению основных принципов работы с субд access
Лабораторная работа динамические базы данных icon«Базы данных» Разработал докт физ мат наук, Ш. Т. Ишмухаметов Содержание
Лабораторная работа Выполнение расчетов с использованием программирования в среде Visual Basic for Applications (vba). 8
Лабораторная работа динамические базы данных iconЛабораторная работа №1. Создание файла базы данных и таблицы в среде
Субд ms access, об основных объектах, с которыми работает пользователь в среде ms access
Лабораторная работа динамические базы данных iconИнформационные системы, использующие базы данных: оборудование, программное обеспечение, данные, люди
Информационная система это нечто большее, чем просто данные или данные в сочетании с программным обеспечением базы данных. Полная...
Лабораторная работа динамические базы данных iconСтатья посвящена описанию речевой базы данных русского языка, разработанной в Институте системного анализа ран при поддержке Российского Фонда Фундаментальных Исследований
Рассматриваются вопросы, связанные с разработкой структуры базы данных, подбором текстовых материалов, вводом и разметкой речевых...
Лабораторная работа динамические базы данных iconПонятия о базах данных и системах управления ими. Классификация баз данных. Основные средства обработки данных базы данных являются одним из основных
Базы данных являются одним из основных компонентов современных информационных систем
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница