- •А.И. Костюк
- •Введение
- •1. Данные
- •1.1. Источники данных
- •1.1.1. Предметная область
- •1.1.2. Объект
- •1.1.3. Атрибуты (элементы данных)
- •1.2. Значение данных
- •1.2.1. Ключевой элемент данных
- •1.2.2. Запись данных
- •1.2.3. Файл данных
- •1.3. Недостатки традиционной организации файлов данных
- •1.4. База данных
- •1.4.1. Определение базы данных
- •1.4.2. Система управления базами данных
- •1.4.3. Недостатки интеграции данных
- •1.5. Администратор базы данных
- •1.6. Независимость данных
- •1.6.1. Два уровня независимости данных
- •1.6.2. Способы достижения независимости данных
- •1.7. Словарь данных
- •1.8.Принципы проектирования базы данных и достижения требуемых эксплуатационных характеристик
- •2. Администрирование базы данных
- •2.1. Функция администрирования базы данных
- •2.1.1. Обязанности абд
- •2.1.2. Абд и администрация предприятия
- •2.1.3. Абд и пользователи
- •2.1.4. Абд и разработчики прикладных программ
- •2.1.5. Абд и системная группа
- •2.1.6. Абд и эксплуатационная группа
- •2.1.7. Абд и поставщики программного обеспечения
- •2.1.8. Абд и поставщики аппаратных средств
- •2.2. Жизненный цикл системы с базой данных
- •2.2.1. Проектирование базы данных (этап 1)
- •2.2.2. Материализация базы данных (этап 2)
- •2.2.3. Конвертирование существующих наборов данных и прикладных программ во вновь созданную базу данных (этап 3)
- •2.2.4. Интеграция конвертированных и новых прикладных программ для работы в среде вновь созданной базы данных (этап 4)
- •2.2.5. Эксплуатация (этап 5)
- •2.2.6. Развитие, совершенствование и сопровождение (этап 6)
- •2.3. Абд, группа абд и ее обязанности
- •3. Словарь данных
- •3.1. Что такое словарь данных
- •3.1.1. Назначение
- •3.1.2. Словарь данных и система управления базами данных
- •3.1.3. Интерфейсы
- •3.1.4. Идеальный словарь данных. Требования и организация
- •3.2. Стратегия реализации словаря данных
- •3.2.1. Экономическая целесообразность
- •3.2.2. Условия применения
- •3.2.3. Рекомендации по определению данных
- •4. Модели данных
- •4.1. Что такое модель данных
- •4.2. Взаимосвязи в модели данных
- •4.2.1. Взаимосвязь «один к одному» (между двумя типами объектов)
- •4.2.2. Взаимосвязь «один ко многим» (между двумя типами объектов)
- •4.2.3. Взаимосвязь «многие ко многим» (между двумя типами объектов)
- •4.2.4. Взаимосвязь «один к одному» (между двумя атрибутами)
- •4.2.5. Взаимосвязь «один ко многим» (между двумя атрибутами)
- •4.2.6. Взаимосвязь «многие ко многим» (между двумя атрибутами)
- •4.2.7. Обзор моделей данных
- •4.3. Реляционная модель данных
- •4.3.1. Достоинства модели
- •4.3.2. Недостатки модели
- •4.4. Иерархическая модель данных
- •4.4.1. Иерархическая древовидная структура
- •4.4.2. Включение и удаление данных
- •4.4.3. Достоинства модели
- •4.4.4. Недостатки модели
- •4.5. Сетевая модель данных
- •4.5.1. Представление взаимосвязи «один ко многим»
- •4.5.2. Дополнительные классы наборов
- •4.5.3. Операции включения и удаления в сетевой модели данных
- •4.5.4. Достоинства модели
- •4.5.5. Недостатки модели
- •5. Проектирование концептуальной модели данных
- •5.1. Анализ данных
- •5.1.1. Сбор информации о данных, используемых в существующих прикладных программах
- •5.1.2. Сбор информации о данных для перспективных приложений
- •5.2. Нормализация отношений
- •5.3. Графическое представление
- •6. Проектирование логической модели данных
- •6.1. Отображение на реляционную модель данных
- •6.2. Отображение на иерархическую модель данных
- •6.3. Отображение на сетевую модель данных
- •7. Физическая модель данных
- •7.1. Интерфейсы между пользователем и базой данных
- •7.2. Методы доступа внутренней модели (физической)
- •7.2.1. Физический последовательный метод доступа
- •7.2.2. Индексно-последовательный метод доступа
- •7.2.3. Индексно-произвольный метод доступа
- •7.2.4. Инвертированный метод доступа
- •7.2.5. Прямой метод доступа
- •7.2.6. Метод доступа посредством хеширования
- •7.3. Методы доступа внешней модели (представления пользователя)
- •8. Языкsql
- •8.1. Состав языка sql
- •8.2. Реляционные операции. Команды языка манипулирования данными
- •Команда select Простейшие конструкции команды select
- •Список полей
- •Все поля
- •Все поля в произвольном порядке
- •Вычисления
- •Литералы
- •Конкатенация
- •Использование квалификатора as
- •Работа с датами
- •Агрегатные функции
- •Предложение from команды select
- •Ограничения на число выводимых строк
- •Is null
- •Операции сравнения
- •Between
- •Containing
- •Is null
- •Логические операторы
- •Преобразование типов (cast)
- •Изменение порядка выводимых строк (order by)
- •Упорядочивание с использованием имен столбцов
- •Упорядочивание с использованием номеров столбцов
- •Устранение дублирования (модификатор distinct)
- •Соединение (join)
- •Внутренние соединения
- •Самосоединения
- •Внешние соединения
- •9. Общая характеристика баз знаний и экспертных систем
- •9.1. Терминология
- •9.2. Принципы, структура и функции систем баз знаний (сбз)
- •9.3. Классификация инструментальных средств построения сбз
- •Литература
- •Содержание
- •1. Данные 6
- •2. Администрирование базы данных 21
- •3. Словарь данных 43
- •4. Модели данных 57
- •5. Проектирование концептуальной модели данных 82
9. Общая характеристика баз знаний и экспертных систем
9.1. Терминология
Под системой баз данных(СБД) понимают как инструментальную систему, обеспечивающую создание и использование баз данных, так и систему, обеспечивающую функционирование конкретной прикладной базы данных или нескольких баз, т.е. прикладную систему [7]. В первом значении обычно употребляется термин "система управления базами данных" (СУБД) [11], [12].
Ключевым понятием в системах баз данных, выражающим их специфику, является база данных (БД),а для систем баз знаний–понятиебазы знаний (БЗ) [8].Аналогично СБДсистемой баз знаний (СБЗ)называют систему, обеспечивающую создание и использование баз знаний. Ее рассматривают как инструментальную систему, называемую такжесистемой управления базами знаний (СУБЗ), или как прикладную систему с конкретной прикладной базой знаний.
Однако в англоязычной литературе предпочитают употреблять термин система, основанная на знаниях (СОЗ),илисистема, базирующаяся на знаниях (СБЗ) [9].
К этому термину близок по смыслу термин "экспертная система"(ЭС). В нем акцент делается на знания экспертов, т.е. специалистов в определенной области. В литературе можно встретить несколько определений ЭС, но суть их состоит в том, что ЭС – это система, обеспечивающая создание и использование с помощью вычислительной машины баз знаний экспертов, т.е. по существу то же, что СБЗ.
Еще одна пара терминов, близких по смыслу к СБЗ, связана с заменой слова "знание" на "интеллект" — "интеллектуальная система"и"система искусственного интеллекта". Однако в последнее время в англоязычной литературе предпочтение отдают терминам, подчеркивающим знания, а не интеллект. Отметим также, что многие известные системы рассматриваемого класса демонстрируют скорее использование (часто рутинное и шаблонное) знаний как результата интеллектуальной деятельности, чем интеллект, предполагающий творчество и нешаблонность. Далее будем использовать в качестве основных термины-синонимы "система баз (или базы) знаний" и "система, базирующаяся на знаниях" с одной и той же сокращенной формой СБЗ. СБЗ понимается как система, дающая возможность использовать представленные подходящим способом знания с помощью вычислительной техники [10].
9.2. Принципы, структура и функции систем баз знаний (сбз)
Анализируя схемы типичных ЭС или СБЗ,можно выделить в них три основные части (рис. 9.1) – базу знаний (БЗ), механизм получения решений (МР) и интерфейс (ИФ).
Каждая из этих частей может быть устроена по-разному в различных системах, причем отличия могут быть как в деталях, так и в принципах. Следует также отметить, что между этими частями нет абсолютной границы, их размежевание довольно условно, они могут "пересекаться".
Система, базирующаяся на знаниях (СБЗ)
Рис. 9.1
Самая характерная черта СБЗ наличие и использование БЗ. На рис. 9.2 приведена общая структура базы знаний.
Рис. 9.2
В контексте СБЗ и ЭС, связанном в конечном счете с "программированием знаний", полезно различать алгоритмические и неалгоритмические знания. Алгоритмические(илипроцедурные) знания —это алгоритмы (программы, процедуры), вычисляющие функции, выполняющие преобразования, решающие точно определенные конкретные задачи. Базой алгоритмических знаний можно считать любое собрание (библиотеку) программ. Каждая система программирования и операционная система включают в себя базу алгоритмических знаний (особенно яркий пример — операционная системаUNIX). Основой каждого пакета прикладных программ (ППП) или проблемно-ориентированной системы (ПОС) является база алгоритмических знаний в конкретной прикладной области.
Неалгоритмическиезнания охарактеризовать гораздо труднее, чем алгоритмические. Они состоят прежде всего из мысленных объектов, называемых понятиями. Понятие обычно имеет имя (возможно, несколько имен-синонимов), определение, структуру (части, элементы и т. д.), оно связано с другими понятиями и входит в какую-то систему понятий. Другого рода неалгоритмические знания–это связи между понятиями или утверждения о свойствах понятий и связях между ними. В БЗ выделяются два вида неалгоритмических знаний: концептуальное (понятийное) и фактуальное (предметное). При этом концептуальную часть базы знаний называют моделью предметной области (МПО), алгоритмическую – пакетом прикладных программ (ППП), фактуальную – базой данных (БД), а ту часть представленной на рис. 8.2 системы решения задач, которая имеет дело с концептуальным знанием, называют системой искусственного интеллекта (СИИ).
Однако знания, воплощенные в понятиях, не сводятся к моделям предметных областей. Математические знания, состоящие из математических понятий, связей между ними и утверждений о них, принципиально отличаются от знаний в предметных областях: физике, экономике, технике и т.д., в которых мысленные объекты (понятия) соотнесены с реальными объектами (а в математике только друг с другом).
Во многих ЭС и СБЗ содержимое базы знаний разделяют на "факты" и "правила", причем факты играют роль элементарных "единиц знания" (простых утверждений о характеристиках объектов), а правила служат для выражения связей, зависимостей между фактами и их комбинациями. В системах баз данных этому делению соответствует деление на объекты и связи, принятое во многих концептуальных моделях данных. База данных содержит не только "факты" (записи объектов с их атрибутами), но и связи, т.е. она не ограничивается "фактуальными знаниями". Следовательно, традиционную БД можно рассматривать как своеобразную базу неалгоритмических знаний (о текущей ситуации в той реальной обстановке, которую эта БД моделирует). Развитие так называемых семантических моделей данных и языков запросов к БД увеличивает сходство СБД с СБЗ.
Таким образом, мы приходим к следующей применяемой в реальных СБЗ классификации знаний:
понятия (математические и нематематические);
факты;
правила, зависимости, законы, связи;
алгоритмы, процедуры.
Системы, причисляемые к СБЗ, отличаются от традиционных СБД способами представления неалгоритмических знаний, с соответствующими механизмами получения решений и характером знаний, помещаемых в БЗ, – знаний специалистов (экспертов), в которых отражаются понимание конкретной прикладной области и приемы решения возникающих в ней типичных задач.
Отметим еще два класса прикладных систем, в которых легко усмотреть БЗ. Это обучающие системы, включающие в себя "машинный учебник" и средства управления обучением, и системы поддержки принятия решений, содержащие информацию и средства для моделирования и оценки ситуации, облегчающие принятие решений.
Обычную библиотеку тоже можно считать БЗ, но в контексте СБЗ речь идет о знаниях, хранимых в машинной памяти и в большей степени "готовых к употреблению", чем знания, находящиеся на полках библиотеки. Доступность знаний в машинной форме и возможность прямого их использования для решения конкретных задач является характерной чертой БЗ в СБЗ.
Прямое использование знаний из БЗ для решения задач обеспечивается механизмом получения решений (МР) –второй основной частью СБЗ, называемой также механизмом, или машиной вывода, процедурой поиска, планирования, решения и т.д. МР дает возможность извлекать из БЗ ответы на вопросы, получать решения задач, формулируемых в терминах понятий, хранящихся в БЗ. Обычно это "частные" задачи и вопросы такого рода: "дано то-то, найти то-то"; "найти объекты, удовлетворяющие такому-то условию"; "какие действия выполнить в такой-то ситуации".
Принципы работы МР тесно связаны со способами представления знаний в БЗ. Для знаний, представленных в БЗ уравнениями, МР является процедурой решения уравнений, для знаний, представленных логическими формулами или правилами специального вида, это некоторый механизм вывода и т.д. В СБД и ППП, не претендующих на звание СБЗ,тоже есть механизм получения решения. В СБД он обеспечивает, в частности, переходы по связям между объектами и поиск объектов, удовлетворяющих заданному условию. В ППП он устанавливает связи между модулями, необходимые для получения решения, и настраивает модули на параметры конкретной задачи. Однако львиная доля получения решения в ППП приходится на сами модули – программы решения прикладных задач.
В любом случае МР содержит алгоритм получения решения, т.е. специальное алгоритмическое знание. Так как в МР содержится, по крайней мере, часть семантики БЗ,определяемая в процедурной форме, это подтверждает относительность границы между МР и БЗ.
Третья основная часть СБЗ,которую называютинтерфейсом (ИФ),обеспечивает работу с БЗ и МР на языке достаточно высокого уровня, приближенном к профессиональному языку специалистов в той прикладной области, к которой относится СБЗ.Для этого в ИФ включается соответствующий языковой процессор. Кроме того, в функции ИФ входит поддержка диалога пользователя с системой, что дает возможность пользователю получать объяснения действий системы, участвовать в поиске решения, пополнять и корректировать БЗ. Иногда интерфейс трактуют очень широко, понимая под "системой интеллектуального интерфейса" то, что мы называем СБЗ.
Различия во взглядах на понятие СБЗ (БЗ, ЭС и т.д.) нередко сводятся к разным расстановкам акцентов на трех упомянутых частях СБЗ, оценкам их относительной значимости и вклада в общий эффект системы. Суть СБЗ состоит в том, что знания, так или иначе представленные в машинной памяти, "работают" на пользователя, дают эффект, оправдывающий затраты на построение или приобретение СБЗ. Таким образом, мы приходим к прагматическому определению СБЗ и ЭС как прикладной системы, обеспечивающей работоспособность заложенных в машинную память знаний специалистов (экспертов). Это дает критерий, по которому следует оценивать СБЗ или ЭС независимо от того, какая из трех упомянутых частей в ней преобладает, каково в ней соотношение алгоритмического и неалгоритмического знания и насколько примитивные или изощренные средства и методы в ней используются.
Используемые в ЭС способы представления знаний, механизмы получения решений и средства интерфейса обычно обеспечиваются инструментальной системой, с помощью которой создаются прикладные ЭС и СБЗ.