Концепция баз данных Активная деятельность по отысканию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых с истемы управления базами данных

Вид материалаДокументы

Содержание


Цель - предикат, который требует согласовать с базой фактов и правил. Пример
Основные механизмы языка Prolog.
Механизм отсечения
Списки в языке PROLOG.
Создание БД в Turbo Prolog.
Системы управления базами данных.
Access. access
ACCESS использует также средства программирования, которые называются Visual Basic for Applications (VBA).
VBA. Запросы.
Отчеты. Для формирования выходных документов и вывода их на печать. Макросы.
Модули. Содержит набор процедур на VBA
Защита данных
Введение в технологию CLIENT SERVER.
Трехзвезнная архитектура.
СОМ: Эта технология поддерживает распределенную компонентную модель объектов. CORBA
Системы искусственного интеллекта
Назначение и особенности экспертных систем(ЭС).
Методология разработки экспертных систем.
Создание ЭС.
4 подхода для вывода знаний или 4 механизма управления.
...
Полное содержание
Подобный материал:
1   2
Раздел правил, в который записываются правила построения предикотов и их вывода или связь их с уже существующими.


GOAL (необязателен)

Формулирование запросов к базе данных.


Факт - предикат, который не определяется через другие предикаты ли через самого себя.

Пример : is_sister (X, Y) : x является сестрой y,

women (x), если x - женщина.

parents (x, f, m),

parents (y, f, m).

Цель - предикат, который требует согласовать с базой фактов и правил.

Пример : Дерево родственных отношений.





Predicates

rod (symbol, symbol)

CLUSES

rod (Pam, Bob)

rod (Tom, Bob)

rod (Tom, Liz)

rod (Bob, Ann)

rod (Bob, Pat)

rod (Pat, Jim)

rod (Liz, Ken)


?- rod (X, Ann)


X = Bob

?- rod (X, Bob)

X = Pat

X = Tom


В PROLOG’е существует переменная, которой присваиваются значения при согласовании с базой данных.

Кто чей родитель? rod (x, y)

Кто внуки Тома? rod (Tom, y), rod(x, y)


Пример :

Domains

product, sum = integer

Predicates

add(sum, sum, sum)

multiply(product, product, product)

Clauses

add(x, y, s):-s = x + y.

multiply(x, y, p):-p = x * y

Goal

add(3, 5, 5),

multiply(4, 8, p).


Пример (поиск минимума из двух чисел):

Predicates

min(integer, integer, integer)

Clauses

min(y, 0, 0):-y = 0, write(“min = 0, end”), exit

min(y, x, z):-x
min(y, x, z):-z<= x, y = z.

wr:-write(“x =”), readint(x), write(“z =”), readint(z),

min(y, x, z), write(y), nl, wr.

Goal

wr.

nl - переход на новую строку.

fail - стандартный предикат, имеющий всегда ложное значение.

wr - циклически запрашивает x и y, из которых ищет минимум и заносит в y. Выход из программы происходит при вводе исходного значения, равного нулю.


Основные механизмы языка Prolog.

Механизм унификации -сопоставление целевого предиката с БД и конкретизация переменных.

При конкретизацииь, переменные преобретают определенные значения и преходят из свободных в связанные.

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

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

Пример : date (d, y, 1993) d и d1 свободные

date (d1, “may”, z) унифицированные переменные


Механизм отсечения (!).

Отсечение используется для сокращения времени выполнения программы.

Рассмотрим целевое утверждение

GOAL Cогласуется с БД путем последовательного

G1, G2, G3, !G4. согласования каждой из подцепей G1, G2,…

Механизм ! запрещает PROLOG’у находить более одного решения в соответствующих подцепях.

Автоматический возврат для поиска новых решений при согласовании подцепей называется Backtracking.


Рекурсия.

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

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

Пример : (фрагмент)

/*вычисление R = XN */

step(x, 0, 1) - ограничения





step(X, N, R):-M = N - 1,

step(X, M, Q),

R = Q * X.


Списки в языке PROLOG.

Это последовательность, составленная мз любого количества элементов. [a, b, c, d] - список.

Список можно обозначить как [ X ] или [ H/T ] - голова или хвост.

[a /[b, c, d]], [ ] - пустой список.

Пример : /*печать списка и определение принадлежности элемента списку*/

Domains

m = real описание списка

Predicates

write_list(m) принадлежность элемента этому списку

pri(real, m)

Clauses

write_list( [ ] ):-nl.

write_list( [x/y]): write(x), write(“_”),write_list(y).

pri(b,[ ]):-write(“Нет в списке”), nl.

pri(b,[x/y]):-b = x, write(“Есть в списке”), nl

pri(b,[x/y]):-b<>, pri(b, y)

Goal

readreal(b),

write_list([1, 2, 3.14]),

pri(b, [1, 2, 3.14]).


Создание БД в Turbo Prolog.

При создании БД в программу на ТР вводится дополнительный разделб который называется Database.

БД в ТР можно создавать в оперативной памяти с помощью атрибута in_memori или в файле in_file. При создании БД, как совокупности таблиц, каждой таблице соответствует своё отношение, описываемое через предикат. Таким образом, в разделе Predicates мы описываем структуру соответствующих таблиц.

Для работы с БД используется большое количество встроенных или стандартных предикатов, которые позволяют открыть, закрыть, создать БД и реализовать операции над записями.

Пример : в файле BD.pro или LAB1.pro.


Системы управления базами данных.

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

Рассмотрим реляционную СУБД ACCESS.

ACCESS ориентирована на работу с объектами, к которым относятся таблица БД, схема БД, запросы, объекты приложений для работы с БД, формы, отчеты, макросы, модули.

При создании приложений ACCESS использует также средства программирования, которые называются Visual Basic for Applications (VBA).

Каждый объект имеет свои свойства и с ним связывается набор событий, которые могут обрабатываться макросами на VBA.

Запросы. Создаются для реализации различных действий в зависимости от типа запроса.
  1. Запрос на выборку.

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

2.Запрос на создание.

Предназначен для создания новых таблиц на основе имеющихся.
  1. Запрос на обновление.

С помощью них можно удалить, добавить записи.


В ACCESS’е запросы реализуются в двух формах:
  1. Запрос по образцу(QBE);
  2. SQL

Формы.

Являются основным средством создания диалогового интерфейса

приложения пользователя.

Отчеты.

Для формирования выходных документов и вывода их на печать.

Макросы.

Программа, которая содержит описание действий, выполняемых

при наступлении некоторого события.

Создание Макроса осуществляется в диалоговом режиме путем

выбора нужных макро-команд и задания параметров.

Модули.

Содержит набор процедур на VBA, предназначенных для

выполнения стандартных действий.

Обеспечение связной целостности данных.

При корректировке БД ACCESS обеспечивает контроль для связных таблиц .

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

2.В главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчинненой таблице.

3.Изменение значений ключа связи в записи главной таблицы невозможно, если в подчиненной таблице связанные с ней записи.

Если в схеме БД установлен параметр “Каскадное автоматическое обновление-удаление связных записей, то при корректировке записей в главной таблице ACCESS автоматически изменит или удалит в записи подчиненную таблицу.


DELPHI.Среда визуального програмирования.


Применяется компонентно-объектная технология программирования. Для организации связей между таблицами используется следующий подход :

для подчинения таблице необходимо указать
  • псевдоним
  • поле инспекторов объектов ( Master Field )

псевдоним главной таблицы.


ЗАЩИТА ДАННЫХ

При организации совместного ипользования многими пользователями одной БД, используется распределенные СУБД, основными функциями которых являются :
  1. защита от отказов
  2. обеспечение уровней доступа и логической целостности данных
  3. синхронизация работы для предотвращения параллельного доступа и изменения полей в БД. Для этого ипользуется механизм транзакций и бдокировки ресурсов.

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

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

Рассмотрим механизм рестарта транзакций.

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

В журнал записывается: 1.идентификатор транзакций

2.старое значение данных

3.новое значение данных

4.время начала транзакции

5.время окончания транзакции

6.время фиксации транзакции.

Существует двухфазовая стратегияфиксации :
  1. транзакция не может осуществлять запись в БД до своей фиксации
  2. транзакция не может быть зафиксирована до тех пор, пока она не запишет все изменения в журнал.


Введение в технологию CLIENT SERVER.

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

Распределённые БД - это дальнейшее развитие в области реляционных БД. Основной задачей распределённых СУБД являутся обеспечение эффективной коллективной работы с общей БД.

До недавнего времени для организации коллективного доступа в локальной сети использовалась архитектура File Server.




В этой архитектуре на пользователя ложатся следующие задачи :
  1. организация и управление БД
  2. обеспечение целостности данных
  3. управление транзакциями.

Недостатки : 1) возможность нарушения целостности данных
  1. большая загруженность сети.






В этой архитектуре функция СУБД разделены на две части.

Пользовательские программы (приложения) для формирования интерактивных запросов и отчетов работают на компьютере клиента.

Ядро БД и основная СУБД хранятся на сервере БД. Для взаимодействия между клиентом и сервером используются SQL.

Известны следующие серверы БД:
  • SQL Server Microsoft;
  • Oracle Server Oracle
  • Netware Server SQL Novell

Реализовать архитектуру клиент - сервер позволяет также среда Delphi с ее сервером InterBase

SQL серверы являются мощным приложением для сетевой проработки данных. Сервер под управлением сетевой операционной системы.

Подключение к SQL серверам осуществляется с помощью драйверов ODBC, которые позволяют работать с одной и той же БД различным пользователям из различных приложений, таких как ACCESS, EXELL, FOXPRO, DELPHI.

Рассмотрим характеристики распределенных СУБД.
  1. Пользователь должен иметь возможность доступа к любой таблице если у него имеются соответствующие привелегии.
  2. Реализация распеределенных транзакций.
  3. Реализация удаленных запросов.


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

Бизнес-правила определяют целостность данных. Они должны располагаться на сервере БД. Однако клиент может задать дополнительные бизнес-правила.


Трехзвезнная архитектура.


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

Сервер приложений может располагаться на сервере БД или на выделенном компьютере.

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

СОМ: Эта технология поддерживает распределенную компонентную модель объектов.

CORBA: Достоинство в том, что она позволяет работать клиенту с сервером приложений из различных операционных систем, работающих на различной аппаратной платформе.


В технологиях удаленного доступа важную роль играют интерфейсы.

Интерфейсы - это новая структура в ЯП.

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


СИСТЕМЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА


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


Все системы искусственного интеллекта(СИИ) делятся на:




Специализированные (ССИИ)

(системы, предназначенные для решения фиксированного набора задач)

Общего назначения (СИИОН)

(решают задачи определенные при проектировании их,но и также могут оперировать решение новых задач)


Технология использует СИИОН => Пользователь-эксперт формирует знания, описывает выбранную область знания формирует в виде данных и правил вывода новых данных, затем конечный пользователь на основе этих знаний задает исходные данные и цель; ССИИ генерируют и решают задачу, приводящую к результату. Такая технология базируется на БД и позволяет конечному пользователю, незнающему програмирования решать новые прикладные задачи.

Примером СИИОН являются оболочки экспертных систем.

Назначение и особенности экспертных систем(ЭС).


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

Задачи направления :
  1. исследование и разработка программ
  2. использование процедуры решения задач, которые являются трудоёмкими и требуют большого труда от экспертов.

Областью применения экспертных систем являются
  • военные приложения
  • медицина
  • электроника
  • геология
  • космос
  • с/х
  • управление и мониторинг
  • финансы

Знания

формализованные

неформализованные


Традиционное программирование в качестве основы для разработки программ использует формализованные знания, т.е. алгоритмы, а при реализации экспертных систем требуеся находить решение неформальных задач(задача не может быть определена в численной форме, алгоритм неизвестен, цели не могут быть заданы функцией).

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


Свойства экспертных систем.

  1. Алгоритм решения генерируется динамически.
  2. Способность анализа и объяснения хода решения задачи и полученных результатов.
  3. Способность к приобретению новых знаний и изменению своего поведения.
  4. Общение с пользователем на естественном языке.


Рассмотрим структуру экспертной системы.





Экспертная система работает в двух режимах :

-режим приобретения знаний

-режим решения задач


Методология разработки экспертных систем.


Чтобы определить возможность построения экспертной системы требуется : 1)наличие экспертов

2)эксперты должны сходиться в оценке предполагаемых решений

3)эксперты должны уметь выразить и объяснить используемые методы и результаты решения

4)задача, возложенная на экспертную систему, требует рассуждений, а не действий.


Проектирование ЭС целесообразно в следующих случаях :

1)когда отсутствует человек-эксперт, а также требуется срочно решать задачи

2)когда решение задачи, в том числе ЭС, принесёт экономический эффект.


Создание ЭС.

  1. создание прототипа ЭС, котрый решает типичные задачи и демонстрирует пригодность методов ЭС для данной области.
  2. создание конечного варианта.

Технология :

Представление о знании.


Особенности знаний.
  1. внутренняя интерпретируемость знаний.
  2. Структурированность. Информационные единицы для определения знаний должны иметь рекурсивную вложенность, типа часть-целое.



  1. Связанность информационной единицы, представляющее единицы знаний должна иметь между собой различные по типу связи или отношения причина - следствие.
  2. Семантическая метрика. Она задается отношением, характеризующим близость по смыслу - отношение релевантности.
  3. Активность: состояние системы работ со знаниями, определяющихся текущим состоянием базы знаний.

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

4 подхода для вывода знаний или 4 механизма управления.

  1. Все правила просматриваются последовательно.
  2. База знаний использует метаправило и правило.

Метаправило - некоторое подмножество глобальных правил, каждое из которых определяет свою группу выводимых правил.
  1. Поиск в глубину.




  1. Поиск в ширину.



Рассмотрим модели представления знаний.
  1. Логические модели.

В их основе лежит формальная система. Задавая <Т,Р,А,В >, где Т - множество единиц ( единиц) любой природы.

Существует специальная процедура: П(х,Т) (принадлежит x T или не принадлежит )

П определяет множество синтаксических правил, с помощью которых на основе множества Т строится синтаксически правильные выражения . В системе также определена процедура, которая говорит о принадлежности П1( Y, P) .

А - множество аксиом, образованных из синтаксически правильных конструкций. Является ли синтаксически правильная Z аксиомой П2(Z,A).

В - определяет правила вывода, которые позволяют получить новые правильные синтаксические конструкции.

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

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

Для описания логических моделей, используется язык исчисления предикатов, а для использования в программе, prolog.
  1. Сетевые модели. В основе лежит семантическая сеть, которая задается 1,C2…CN,Г> где I-определяет множество информативных единиц C1…СN – множество типов связей, Г – множество отображений связей между информативными единицами.

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

В классиф. сетях используют отношение структуризации для определения иерархических отношений между объектами.

Функциональные сети характеризуются наличием функциональных отношений. Они позволяют описывать процедуры вычислений одних информационных единиц через другие.

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

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

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

Сетевые модели являются наиболее общей моделью для представления знаний, т.к. они обладают универсальностью.
  1. Продукционные модели. В моделях этого типа используются элементы логических и сетевых моделей. ИЗ логических моделей заимствуются правила вывода новых знаний, которые называются продукцией. А из сетевых моделей используются предметные знания в виде семантической сети.

Для представления П.М. используется запись: (i);Q;P;A=>B;N

i – имя продукции.

Q – правила вывода

P – условие применимости продукции

A=>B – ядро продукции

N – постусловие продукции

Оно становится активным если ядро продукции выполнено. Р определяет условие применимости и может принимать два значения (истина или ложь). Если TRUE, ядро становится активным.

Однако существуют ситуации, когда активизируется одновременно несколько ядер продукции. Тогда необходима процедура управления процедурами реализации ядер продукции.

Продукц. модели широко распространены в экспертных системах.
  1. Фреймовые модели.

В отличии от других моделей Ф.М. фиксируют жесткую структуру информационных единиц. Эта структура называется протофрейм.

Имя фрейма

Имя слота 1 (значение слота 1)

слота 2 (…………………)

………………………………………

С использованием протофрейма при конкретизации ему присваивается каждый слот соответствующее значение. Т.о. из протофрейма получается фремоэкземпляры.

Протофрейм.

Список работников.

ФИО (значение слота 1)

Год рождения (значение слота 2)

Связь (значение)

Имя фрейма

Полученный фрейм

Список работников

ФИО (Иванов, петров, Сидоров)

Год рождения (1928,1963,1960)