Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ю. А. Григорьев, Г. И. Ревунков - Банки данных

.pdf
Скачиваний:
334
Добавлен:
10.02.2015
Размер:
7.54 Mб
Скачать

4. Методы специальной обработки

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

Блокирование доступа к иерархическим элементам

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

выполнять блокировку элемента, одновременно блокируя все элемен­ ты, которые являются его потомками;

выполнять блокировку элемента (узла дерева) без каких-либо предпо­ ложений о блокировке его потомков.

Ожидания и туники

При использовании блокировки приходится сталкиваться с такими нежелательными явлениями, как бесконечные ожидания и тупиковые си­ туации. Бесконечные ожидания могут при определенных условиях появить­ ся в любой системе с параллельным выполнением процессов. Например, элемент X заблокирован выполняющейся транзакцией Л . Поступившая в систему транзакция Г2, которой также необходима работа с этим элемен­ том, переходит в состояние ожидания. В момент разблокировки элемента X транзакцией Т\ в систему поступает транзакция Г2, которой также требует­ ся этот элемент, и перехватывает инициативу по его блокировке и т.д. В таких условиях не исключена возможность, что транзакция Т2 будет все время находится в состоянии ожидания.

Чтобы избежать бесконечного ожидания, система блокировок должна регистрировать все поступившие запросы и предоставлять им возможность блокировки требуемых элементов (после их разблокировки предшествую­ щей транзакцией) по правилу «первым вошел — первым обслуживается».

Тупиковые ситуации возникают при параллельном выполнении про­ цессов с использованием блокировок. При попытке параллельного исполне­ ния двух транзакций Л и Г2 эти транзакции могут заблокировать друг дру­ га и возникнет тупиковая ситуация, если они обращаются к одним и тем же данным.

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

тупики.

120

4.4. Устранение тупиковых ситуаций при параллельной обработке запросов

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

3.Никаких системных требований на написание программ не вводит­ ся. В этом случае СУБД при функционировании АС следит за возникнове­ нием тупиковых ситуаций. При обнаружении тупика действие одной из транзакций аннулируется, все выполненные ею изменения в БД устраняют­ ся. Транзакция либо переводится в состояние ожидания, а затем через неко­ торое время выполняется ее рестарт, либо полностью аннулируется.

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

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

1.Приведите пример идентификации и подтверждения подлинности при обра­ щении к системе.

2.Охарактеризуйте существующие подходы к защите данных при статистичес­ кой обработке.

3.Назовите основные виды ограничений целостности данных, которые должны поддерживаться СУБД.

4.Какие приемы используются при оптимизации реляционных выражений за­ просов пользователей?

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

5. МОДЕЛИ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ

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

5.1. Способы представления знаний для обработки на ЭВМ

Главной особенностью систем, основанных на знаниях, является на­ личие в них БЗ. Причем в отличие от БД, содержащих совокупность фактов о качественных и количественных характеристиках конкретных объектов, БЗ содержат концептуальные, понятийные знания о ПО, обычно выражае­ мые именно в терминах данной ПО. Чтобы использовать знания, хранящие­ ся в базе, система снабжается специальным механизмом вывода новых зна­ ний на основании имеющихся в базе.

Определение термина «знание» включает большей частью философ­ ские элементы. Например, знание — это проверенный практикой результат познания действительности, верное ее отражение в сознании человека. На­ учное знание заключается в понимании действительности в ее прошлом, настоящем и будущем, в достоверном обобщении фактов, в том, что за слу­ чайным оно находит необходимое, закономерное, за единичным — общее, а на этой основе осуществляет предвидение. Научное знание может быть и эмпирическим, и теоретическим.

Впростейших ситуациях знания рассматривают как констатацию фактов и их описание. В общепринятом смысле термин «знание» рассмат­ ривают противоположно незнанию, т.е. отсутствию проверенной информа­ ции о чем-либо.

Вобласти систем искусственного интеллекта и инженерии знаний оп­ ределение знаний увязывается с логическим выводом: знания — это инфор­ мация, на основе которой реализуется процесс логического вывода (т.е. на основании этой информации можно делать различные заключения по имеющимся в системе данным с помощью логических выводов). Механизм логического вывода позволяет связывать воедино отдельные фрагменты знаний, а затем по этой последовательности связанных фрагментов делать заключение.

122

5.1. Способы представления знаний для обработки на ЭВМ

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

Сегодня в области систем обработки информации нет общепризнан­ ного формального определения понятия «знания». Однако признается, что отличительные качественные особенности знаний обусловлены большими возможностями в направлении структурирования и взаимосвязанности со­ ставных единиц, их интерпретируемости, наличия метрики, функциональ­ ной целостности, активности.

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

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

Интерпретируемость предусматривает использование имен информа­ ционных единиц, что позволяет системе знать, что хранится у нее в памяти.

Наличие метрик семантического пространства предполагает возмож­ ность оценки семантической близости информационных понятий.

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

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

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

Отношения классификации позволяют организовывать классы эле­ ментов в ПО, определять связи между классами, а также между классами и элементами. Количественные отношения позволяют определять меру для вводимых понятий, признаковые — приписывать понятиям различные при­ знаки, отношения принадлежности связывают объекты по признаку отно­ шения к рассматриваемой ситуации. Широко используются при организа­ ции знаний BpeMCHHbfe, пространственные, порядковые отношения.

Одно из важнейших свойств суждений — модальность. В нем выра­ жается степень существенности того или иного признака для данного объ­ екта ПО, указанного в суждении. Модальности как класс отношений играют важную роль при построении в БЗ аксиоматических предположений. Ис­ пользуют следующие отношения модальности: НЕОБХОДИМО, ЖЕЛА­ ТЕЛЬНО, НЕВОЗМОЖНО, СОВЕРШЕННО НЕВОЗМОЖНО, ВОЗ­ МОЖНО, ОБЯЗАТЕЛЬНО, НЕОБЯЗАТЕЛЬНО, НЕЖЕЛАТЕЛЬНО, СОВЕРШЕННО НЕОБХОДИМО. Существуют и другие группы отношений, имеющие важное значение для проектирования БЗ.

123

5. Модели представления знаний

Различные языки представления знаний в разной степени отражают перечисленные выше особенности знаний.

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

5.2. Семантические сети

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

Создание семантических сетей (СЕМС) — это попытка обеспечить интегрированное представление данных, категорий (типов) данных, свойств категорий и операций над данными и категориями. Особенность семантиче­ ской сети заключается в целостности системы, выполненной на ее основе, т.е. невозможности разделить БЗ и механизм вывода. При этом интерпрета­ ция СЕМС реализуется с помощью использующих эту сеть процедур.

В СЕМС нет четких различий между операциями над данными и опе­ рациями над схемой; она позволяет манипулировать как данными, так и знаниями о них.

Рассмотрим основные концепции, реализованные в СЕМС.

1. Концепция одновременного рассмотрения в модели как знака, так и типа.

Знак — это конкретное значение или конкретный экземпляр рассмат­ риваемого объекта; тип — это класс подобных знаков.

Обобщение знаков в типы — элементарная форма абстрагирования, которое необходимо для лучшего понимания сложных объектов. Например, общее понятие Велосипед — абстракция множества представлений о кон­ кретных велосипедах.

Абстракция может быть многоуровневой (абстракция одного уровня может рассматриваться как объект абстракции другого уровня и т.д.). Абст­ ракция может использоваться для формирования нового типа из других типов.

2. Концепция иерархии типов. Ранее уже рассматривались основные операции абстрагирования: идентификация, обобщение и агрегация. Обоб­ щение позволяет соотнести множество знаков или множество типов с одним общим типом. Различают обобщения:

знак—^тип — его называют классификацией; тип—^тип, которое собственно и носит название обобщения.

Экземпляризация (порождение реализаций) — процесс, обратный процессу классификации. Специализация — процесс, обратный процессу обобщения. Например, представление конкретных служащих общим типом Служащий — это классификация. Представление типов Служащий и Уча­ щийся общим типом Личность — это обобщение. Данные конкретного слу-

124

5.2. Семантические сети

жащего — это экземпляр (реализация) типа Служащий, а тип Служащий — это специализация типа Личность.

С помощью операции агрегации объект конструируется из других ба­ зовых объектов. Агрегация также используется как на уровне знаков, так и на уровне типов. Например, тип Служащий может быть сконструирован из типов свойств Фамилия, Год рождения. Адрес. Такие свойства-типы явля­ ются дефиниционными, т.е. определяют, истолковывают понятие, и назы­ ваются интенсиональными. Конкретная же реализация типа Служащий, относящийся, например, к «Пальчику Фоме Никифоровичу», конструирует­ ся из знаков «Пальчик Ф. Н.», «1988», «Новороссийск, ул. Свободы, д. 54». Такие свойства-знаки, являющиеся фактическими значениями, называются экстенсиональными. В семантических моделях различие между интенсио­ нальными и экстенсиональными свойствами имеет важное значение.

Агрегация соотносится с понятием ЕСТЬ—ЧАСТЬ и выражает тот факт, что тип объекта есть агрегат других типов (например. Фамилия ЕСТЬ—ЧАСТЬ Служащий).

Обобщение соотносится с понятием ЕСТЬ—НЕК (есть некоторый) и выражает тот факт, что выполнено обобщение одним типом объекта друго­ го типа объекта (например. Служащий ЕСТЬ—НЕК Личность).

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

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

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

Базовым функциональным элементом семантической сети служит структура из двух компонентов: узлов и связывающих их дуг. Каждый узел представляет некоторое понятие, а дуга — отношение между парой поня­ тий. Можно считать, что такое отношение представляет простой факт, на­ пример: «Иванов П. Н. работает в производственном отделе».

С позиций логики базовую структуру СЕМС можно рассматривать эк­ вивалентом предиката с двумя аргументами. Эти два аргумента представле­ ны узлами, а собственно предикат — направленной дугой, связывающей узлы:

Работает в (Иванов, Производственный отдел).

125

5. Модели представления знаний

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

Пример. Рассмотрим модель, в которой предусматриваются четыре катего­ рии вершин:

концепты (понятия) — элементы ПО (приложения), для которых строится представление;

события-действия, наблюдаемые в ПО; характеристики (свойства)-вершины, соответствующие свойствам концепта;

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

Дуги, соединяющие вершины-события и вершины-концепты, соответствуют ролям концептов в событиях:

дуга, указывающая вершину-концепт, которая играет роль агента в событии (исполнителя, либо инициатора действия, обычно в предложении естественного языка, выражаемого глаголом);

дуга, указывающая вершину-концепт, которая является объектом воздейст­ вия в событии.

Дуги, соединяющие вершины-концепты:

дуга, соответствующая представлению утверждения.

Дуги, соединяющие вершины-концепты и вершины-характеристики: дуга, соответствующая представлению связи концепта с характеристикой.

Дуги, соединяющие вершины-характеристики и вершины-значения:

дуга, соответствующая представлению связи характеристики со значением. Построим по данной модели представление следующей ситуации: «Иванов,

1950 года рождения, работает программистом в вычислительном центре, располо­ женном в корпусе А». Представим вначале эту ситуацию в виде одной из возмож­ ных совокупностей простых бинарных фактов (утверждений):

1.Иванов работает программистом.

2.Иванов работает в вычислительном центре.

3.Иванов 1950 года рождения.

4.Вычислительный центр расположен в корпусе А.

Выполним построение СЕМС: 1. Вершины-события: РАБОТАЕТ.

2. Вершины-концепты: ИВАНОВ; ПРОГРАММИСТ;

ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР; КОРПУС А.

126

5.2.Семантические сети

3.Вершины-характеристики:

ГОД РОЖДЕНИЯ,

4.Вершины-значения: 1950.

5.Дуга, указывающая агента: РАБОТАЕТ ИВАНОВ.

6.Дуга, указывающая объект воздействия: РАБОТАЕТ ПРОГРАММИСТ.

7.Дуга, указывающая вершину-характеристику: ИВАНОВ ГОД РОЖДЕНИЯ.

8.Дуга, указывающая вершину-значение:

ГОД РОЖДЕНИЯ 1950.

9. Дуги, представляющие утверждения:

РАБОТАЕТ В: ИВАНОВ ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР; РАСПОЛОЖЕН В: ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР КОРПУС А.

Это один из возможных вариантов СЕМС по данному фрагменту ин­ формации. Можно сделать иное назначение вершин и дуг и получить дру­ гой вариант модели для рассматриваемой ситуации. На рис. 5.1 приведено графическое представление полученного варианта модели.

Событие

РАБОТАЕТ 1

 

 

 

 

Агент

^ s .

Объект воздействия

 

 

 

 

 

 

 

 

 

 

 

Утверждение

/

 

 

 

 

 

Концепт

Концепт

 

 

Концепт

 

 

 

 

 

 

 

ВЫЧИСЛИТЕЛЬНЫЙ ч

 

ИВАНОВ

 

 

ПРОГРАММИСТ

1

ЦЕНТР

РАБОТАЕТ В

 

 

 

 

 

Утвержление

 

 

 

 

 

 

 

PACnOJЮЖЕН

В

 

 

 

 

 

 

N

 

 

N/

 

 

 

 

 

Концепт

 

 

Характеристика

 

^

Значение

 

 

 

 

 

 

 

1950

1

 

КОРПУС А

 

 

г о д РОЖДЕНИЯ

 

Р

Рис. 5.1. Пример семантической сети

127

5.Модели представления знаний

Вкачестве основных операций над классами и их экземплярами в се­ мантических сетях используют следующие операции:

создания экземпляра некоторого класса; установления принадлежности существующего экземпляра некоторо­

го класса еще к одному классу; устранения принадлежности экземпляра к некоторому классу или

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

определения принадлежности экземпляра указанному классу.

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

Например, программа «Ликвидация счета в сети» будет представлена как класс с данным именем. Экземпляры этого класса есть конкретные дей­ ствия по снятию денег со счета.

Управляющие структуры для СЕМС очень разнообразны. В основном, они являются зависимыми от ПО (т.е. часть прикладных знаний перенесена в управляющую структуру (УС) в виде правил организации поиска данных, релевантных запросу) и реализованы в виде управляющей программы, под­ держивающей все основные функции экспертной системы (ЭС).

При программировании СЕМС широко используется алгоритмиче­ ский язык ЛИСП, разрабатываются также специализированные языковые средства.

5.3. Фреймы

Богатство используемых в СЕМС структур оборачивается при их про­ граммировании серьезными сложностями. Поэтому идет разработка мето­ дов по структуризации семантических сетей для упрощения процессов их программирования. Использование фреймов при создании СЕМС позволяет внести в сеть определенную структуризацию.

Описание свойств некоторого объекта либо события можно выпол­ нить с использованием нотаций вида ФРЕЙМ. Достоинство фрейма заклю­ чается в том, что элементы, присутствующие в описании объекта или собы­ тия, группируются в самостоятельную структурную единицу и поэтому из­ влекаются и обрабатываются как единое целое. Механизм организации ссы­ лок позволяет конструировать из отдельных фреймов сложные сетевые

128

5.3. Фреймы

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

Фрейм представляет собой поименованную структуру, составленную из ряда описаний — слотов. С помощью слотов идентифицируют основные структурные элементы фрейма. Слот представляет собой конструкцию двух элементов: имени слота и значения слота (или, как еще называют, шпации).

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

Кроме того, значение слота может быть константой, т.е. содержать конкретное значение понятия, определенного именем слота. Для указания этого используют некоторое ключевое слово, например: Агрегат. Допуска­ ется задавать множество значений, для чего также используют ключевое слово, например: Интервал. Допускается задавать значение слота по умол­ чанию, в этом случае также используют ключевое слово (в примерах будем употреблять ключевое слово «по умолчанию», а сами значения будем за­ ключать в круглые скобки).

Ключевые слова называют также фасетами слота.

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

При построении сети фреймов учитывают различия между категория­ ми обобщений знак-тип и тип-тип, и УС реализует наследование свойств в соответствии с иерархией типов.

Пример.

имя: Руководитель X /* где X — системный номер экземпляра фрейма */ есть-нек: Руководитель

заработная-плата: Зарплата X адрес: Адрес X

дата-зачисления: агрегат (08.04.1989) дата-увольнения: по-умолчанию /* работает по н.в. */ отдел: агрегат (ВЦ)

есть-нек: Служащий-Х

имя: Руководитель есть-нек: Служащий

определение понятия: лицо, которое направляет чью-то деятельность имя: Программист XI

есть-нек: Программист заработная плата: Зарплата XI

129