УДК 519.85:004.42
МАТЕМАТИЧЕСКАЯ МОДЕЛЬ ХРАНЕНИЯ И ЭФФЕКТИВНОЙ ОБРАБОТКИ ОРГРАФОВ, ПРЕДСТАВЛЕННЫХ В МАШИННОМ ВИДЕ
© 2007 г. А.В. Маликов, Ю.В. Гулевский
Анализ известных методов управления данными, представленными в виде орграфов
Самой популярной моделью хранения и обработки хорошо формализованной информации является реляционная модель данных. Одной из основных проблем ее использования является сложность определения полноты структуры базы данных (БД) реляционной системы. Известно, что изменения структуры предметной области влекут за собой изменение структуры БД, в том числе и состава отношений, их структуры и связей между ними. С целью преодоления указанной проблемы обычно прибегают к моделированию полуструктурированных данных, например возможно использование реляционных БД, нормализованных на основе операций выборки и соединения [1].
В основе таких систем лежит идея представления информации в виде графовых структур, в отличие от классического подхода хранения информации в виде плоских реляционных отношений. При этом сама структура предметной области определяется как обычные данные и по отношению к ней допустимы стандартные операции манипулирования данными: добавление, удаление, модификация. Основной сложностью такого подхода является способ машинного представления графа и способ его обработки. Языковые средства выборки информации, представленной в виде орграфа, как правило, не достаточно наглядны и не обладают достаточной производительностью по сравнению с языком SQL известных реляционных СУБД [1-4].
Пусть G = (V, E) - орграф атомарных значений
предметной области, где V - множество вершин (атомарных значений), E - множество дуг (связей между атомарными значениями) таких, что дуга e е E, e = (u, v), u e V , v £ V определяет ситуацию
зависимости u от v (u ^ v). Природа зависимости
может быть произвольной: функциональная, транзитивная, многозначная, зависимость соединения.
Наиболее распространенным способом хранения графовых структур в реляционных системах является введение в отдельное реляционное отношение внешнего ключа по отношению к первичному ключу данного отношения. Фактически моделируется бинарное отношение непосредственной достижимости на графе G, так называемая «модель списка смежных вершин»
(adjacency list model). Это одна из самых простых и распространенных структур. Процедура добавления/модификации информации о новом атомарном значении или связи включает в себя одну команду добавления/модификации кортежа соответствующего отношения.
Ситуация независимости отдельных вершин G может моделироваться двумя способами: использование в поле внешнего ключа маркера NULL-значение, или дублирование значения первичного ключа. Трудоемкости организации обоих способов соизмеримы, отличны лишь способы извлечения (и синтаксис запросов соответственно) из отношения кортежей с независимыми значениями. Внутри отношения поддерживается система ссылочной целостности между первичным и внешним ключами. Правило ограничения удаления/модификации первичного ключа должно ограничивать указанные операции при попытке удалить/модифицировать кортеж, на который ссылаются другие кортежи данного отношения в поле внешнего ключа. Правило каскадирования операций удаления/модификации первичного ключа должно приводить к удалению/модификации дерева G'сG , корнем которого является исходная вершина.
Описанный способ хранения и обработки графовых структур подходит только для доступа к деревьям или лесу. Для моделирования орграфов с произвольной структурой необходимо использовать два реляционных отношения. Первое отношение применяется для хранения информации об атомарных значениях предметной области. Второе содержит пару внешних ключей (iDchild, IDparent) по отношению к первичному ключу первого отношения, где IDchild - идентификатор атомарного значения, IDparent - идентификатор родительского атомарного значения, на которое ссылается IDchild : IDchild ^ IDparent. С использованием такой структуры возможен третий способ идентификации независимых значений предметной области: информация о них не добавляется во второе отношение.
Достаточно удачный способ организации хранения и доступа к дереву, так называемая «множественная модель дерева», предложен Джо Селко. Каждой вершине v eV ставится в соответствие пара целочисленных значений (leftv, rightv), такая что, если u е V , u ^ v , то leftv < leftu , rightu < rightv . Для
вычисления значений (lefti, righti), i = 1..|v| используется специальный алгоритм обхода и нумерации вершин графа [5].
Основное достоинство множественной модели дерева - это отсутствие необходимости восстанавливать отношение достижимости между отдельными вершинами в задачах выборки данных, что значительно упрощает написание запросов к БД, содержащим древовидные структуры.
Основные недостатки предложенного подхода:
1. Связывание с каждой вершиной графа пары значений. При использовании реляционной СУБД соединение отношений на основе операций «<» или «>» эффективно только при применении кластерных индексов, которых в каждом отношении может быть не более одного (кластерный индекс может быть составным). Поэтому для условия запроса leftv < leftu and rightu < rightv эффективным поиск будет только для той составляющей, которая будет выполняться с использованием кластерного индекса.
2. Сложность использования для деревьев с часто изменяемой структурой. Изменение структуры дерева приводит к вызову алгоритма вычисления значений (lefti,righti), i = 1..|V|, которые могут измениться
при новом пересчете. Так как производится полный обход дерева, то значительно снижается производительность операций добавления и удаления вершин. Учитывая, что поиск вершин дерева производится на основе бинарного отношения неравенства, имело бы смысл организовать плотное отношение, например на множестве действительных чисел. Качество работы такой системы зависит от точности представления значений (lefti, righti), i = 1.. |v| при частой модификации дерева. Другой альтернативой является использование диапазонов целых чисел «с запасом» для добавления новых значений. Учитывая, что информация, как правило, вводится не равномерно, то в отдельных поддеревьях могут заканчиваться свободные значения для нумерации новых вершин. И если хотя бы одной новой вершине не хватило свободных чисел для нумерации, то это породит каскадную операцию пересчета значений всех вершин дерева.
3. Отсутствует возможность хранения и обработки орграфов произвольной структуры, и в частности ориентированной сети. Данный факт значительно ограничивает использование множественной модели деревьев.
Построение математической модели хранения и эффективной обработки орграфов с произвольной структурой
В качестве примера будем рассматривать нормализованные на основе операций выборки и соединения БД, в которых для описания взаимосвязей атомарных значений предметной области используется ориентированная сеть. Достоинства, недостатки и особенности нормализованных на основе операций выборки и соединения БД подробно представлены в [1].
Анализ современного мирового опыта в области проектирования БД показывает, что задача создания модели хранения и эффективной обработки орграфов атомарных значений предметных областей с динамичной структурой считается актуальной. При этом в разрабатываемой модели должны отсутствовать недостатки известных моделей хранения и обработки графовых структур.
Предлагается новая модель хранения и обработки орграфов, которая базируется на следующих парадигмах:
1. Способ и объекты физического хранения орграфа.
2. Порядок обхода ролей реляционных отношений. Под ролью реляционного отношения следует понимать идентификацию отдельного ссылочного ограничения, в котором участвует данное отношение [1]. Алгоритм перевода орграфа отношений предметной области в ориентированную сеть их ролей представлен в [6].
3. Правило формирования ключа вершин дерева.
4. Способ подмены структуры ориентированной сети атомарных значений деревом.
5. Организация операций манипулирования данными орграфа атомарных значений с использованием инструментария реляционных СУБД и стандартизированного языка SQL.
Способ и объекты физического хранения орграфа
Основными объектами физического хранения орграфа всякой предметной области являются реляционные отношения, основными из которых служат:
• Rj - отношение для хранения отношений (сущностей) пользовательской предметной области;
• R 2 - отношение для хранения ролей отношений (сущностей) пользовательской предметной области;
• R 3 - отношение для хранения атрибутов ролей отношений;
• R 4 - отношение для хранения атомарных значений предметной области (физическая реализация множества v );
• R 5 - отношение для хранения дуг атомарных значений (физическая реализация множества E ).
Представленный список содержит только основные отношения. Оригинальная структура нормализованных на основе операций выборки и соединения баз данных представлена в [1]. Основным достоинством предложенной структуры является универсальность описания объектов реального мира: соединение всех отношений полностью восстанавливает информацию о пользовательской предметной области. Введение понятия роли реляционного отношения позволяет на логическом уровне без потери информации подменить ориентированной сетью орграф атомарных значений с произвольной структурой. Отношение
R 5 =(IDparent, IDchild) дополняется атрибутом leftKey для хранения специального ключа, идентифи-
цирующего конкретную ассоциированную с ЮсЫМ дугу в орграфе атомарных значений, где ЮрагеЫ и ЮсЫМ - внешние ключи по отношению к первичному ключу отношения Я 4. По атрибуту Я 5.1еАКеу строится кластерный индекс.
Порядок обхода ролей реляционных отношений
Порядок обхода ролей реляционных отношений предметной области служит для определения правила формирования ключей вершин дерева. Порядок обхода формируется на основе бинарного отношения о, являющегося отношением порядка. Для любой пары ролей (А, В) справедливы свойства:
1. Антисимметричность: если А ° В и В ° А , то
А = В.
2. Рефлексивность: А ° А, В ° В.
3. Транзитивность: пусть существует роль С такая, что А о В, В о С , тогда А о С.
Бинарное отношение ° строится на основе отношения ссылочных ограничений ^ между парами ролей отношений, которое в свою очередь является отображением отношения непосредственной достижимости на графе ролей отношений:
1. Пусть для ролей Ai, i = 1..к, где к - количество ролей отношений ориентированной сети, на которые ссылается роль В , справедливо В ^ Ai, тогда А1 о А2, А2 о А3,..., Ак о В . Следствием данного правила является факт существования наименьшего элемента А' бинарного отношения о; роль А' является одним из стоков ориентированной сети.
2. Пусть для двух произвольных ролей Ап, Ат и роли В 0 уровня 0 ориентированной сети справедливо В0 ^ Ап, В0 ^ Ат , Ап * Ат, Ап ^ А', но не существует Ап ^ Ат , где отношение достижимости ^ -есть рефлексивно-транзитивное замыкание отношения
^ , тогда Ап о Ат , Ат ° В0.
На основе бинарного отношения «порядок обхода ролей отношений» о производится трансформация ориентированной сети ролей отношений в дерево с корнем А' и высотой не менее числа уровней ориентированной сети. Согласно правилам формирования бинарного отношения о, эксперт предметной области на основе собственных предпочтений и логике представления данных предметной области может формировать собственную иерархию подчинения ролей отношений по средствам перестановок элементов множества |Аг-}, i = 1..к и перестановок элементов множества, сформированного из ролей Ап для всякого Ат .
Рассмотрим упорядоченное множество ролей отношений (А, о):
1. Существует минимальный элемент А'е А , и он наименьший, так как для любого а е А имеет место
А' о а.
2. Существует множество максимальных элементов {Ау}, у = 1... 3 , где 3 - количество максимальных элементов таких, что для любого а е А элементы а и А у несравнимы или а ° А у. Максимальными
элементами являются все источники ориентированной сети. Если 3 = 1, то максимальный элемент единственен и он так же является наибольшим элементом упорядоченного множества.
3. Бинарное отношение ° плотное, т.е. подразумевает модификацию предметной области, при которой для любых двух ролей (А1,А2): А1 оА2, возможно существование роли А3 такой, что А1 о А3, А3 о А2.
Правило формирования ключа вершин дерева атомарных значений
На основе построенного дерева ролей отношений, строится дерево атомарных значений предметной области и каждой вершине в дереве назначается сформированный специальным образом уникальный ключ, посредством которого становится возможным не только однозначно идентифицировать отдельные значения, но и определять в какие отношения данное значение вступает с другими атомарными значениями.
Для формирования ключа атомарных значений орграфа используется специальное правило. На основе атрибута Я 5.1е/Кеу строится плотное бинарное отношение на основе строкового типа данных:
1. Независимым вершинам V, в том числе V е А', назначается leftKeyV =" а"+ ЮСЫЫ, где ЮсЫМ -уникальный идентификатор V в Я 4, " а" - символьный разделитель (символьный разделитель может быть выбран произвольно).
2. Пусть согласно порядку обхода ролей отношений для V е Av, и е Аи справедливо, что Av расположена непосредственно перед Аи, и существует вершина у е Ау (возможно у = и), такая что у и
и у ^ + V, тогда 1еАКеуи = 1еАКеуу +" а"+ ЮсЫМ, где 1еАКеуу - известный 1еАКеу вершины V. Если в Я 5 отсутствуют соответствующие кортежи для хранения вычисленного 1еАКеуи, то такие кортежи добавляются.
3. Частным случаем п. 2 является вычисление ключа для вершин, связанных отношением непосредственной достижимости. Пусть вершина и ссылается на V : и ^ V, а между соответствующими и и V ролями отсутствуют другие роли в порядке обхода, тогда и назначается ключ 1еАКеуи = 1еАКеуу +" а"+ ЮсЫМ.
Способ подмены структуры ориентированной сети атомарных значений деревом
Результатом вычисления всех leftKey является построение в R5 дерева связей атомарных значений при следующем допущении: вершины из п.1. ссылаются на единственное значение - корень, которое не добавлено в дерево. Построенное дерево является
упорядоченным множеством (Vy/Key, где VleftKey
расширенное в результате процедуры вычисления ключей множество V , со следующими свойствами:
1. Существует множество минимальных элементов {vi}, i = 1..I, где I - количество минимальных элементов, вступающих в отношение ^ с отсутствующим корнем v0 дерева атомарных значений:
v 0 = inf VleftKey .
2. Существует множество максимальных элементов (листьев дерева) {v j}, j = U, где J - количество максимальных элементов.
3. Бинарное отношение ^ плотное, т.е. подразумевает модификацию предметной области, при которой для любых двух атомарных значений (vx,v2): v1 ^ v 2 возможно существование атомарного значения v 3 такого, что v1 ^ v3, v 3 ^ v 2.
4. Пусть h (vlejtKey, - высота дерева, построенного на основе (vlejtKey,с учетом элемента v0, а h (A,о) - высота дерева, построенного на основе (A, о), тогда h (VleftKey, = h (A, о)+1.
Организация операций манипулирования данными орграфа атомарных значений с использованием инструментария реляционных СУБД и стандартизированного языка SQL
Для нормализованных на основе операций выборки и соединения баз данных, реализованных с использованием представленных структур, должны выполняться операции манипулирования данными: добавление, удаление, обновление и выборка. Данные операции должны быть реализованы средствами стандартизированного языка SQL.
Для операций добавления, удаления и обновления информации о дугах орграфа атомарных значений вводятся дополнительные правила:
1. Добавление всякой дуги между парой атомарных значений порождает цикл проверок на существование вершин дерева на пути между этими значениями, согласно порядку обхода ролей, которым эти значения принадлежат. Если какие-либо узлы отсутствуют в дереве, то они добавляются, и для них вычисляется значение leftKey по описанным выше правилам.
2. Удаление всякой дуги между парой атомарных значений приводит к удалению всех вершин дерева на пути между этими значениями, согласно порядку обхода ролей, которым эти значения принадлежат.
3. Обновление всякой дуги между парой атомарных значений приводит к пересчету значений 1е/Кеу всех вершин дерева на пути между этими значениями, согласно порядку обхода ролей, которым эти значения принадлежат.
Особенности формирования запросов на выборку данных рассмотрим на примере. На рисунке представлена структура БД учета учебных планов. Основными отношениями предметной области являются: «вуз», «кафедра», «учебный план», «уровень образования», «специальность». Между любыми двумя отношениями не более одного ссылочного ограничения, поэтому перечень и именование ролей совпадает с названием отношений.
а
б
Структура предметной области учета учебных планов: a - взаимосвязь ролей отношений; б - порядок обхода ролей отношений
Вариант наполнения базы данных представлен в таблице, которая является эквисоединением отношений Tree = R 2 х R 3 х R 4 х R 5. В нормализованную на основе операций выборки и соединения БД добавляется новый атрибут rightKey , который может быть однозначно вычислен на основе известных значений leftKey путем добавления справа нового разделителя, который был бы при сравнении больше разделителя, используемого в leftKey.
Введение нового атрибута обусловлено упрощением написания запросов к БД и придания им определенной стилизации. Кластерный индекс организуется по атрибуту leftKey . В таблице последний кортеж
добавлен согласно правилу выполнения операции добавления информации о новых связях атомарных значений.
Табличное представление дерева атомарных значений предметной области учета учебных планов
Роль Атрибут Атомарное значение Родительское атомарное значение Код значения leftKey rightKey
Вуз название СевКавГТУ СевКавГТУ 01 a01 a01b
Кафедра название АСОУ СевКавГТУ 02 a01a02 a01a02b
Кафедра название ИСТ СевКавГТУ 03 a01a03 a01a02b
Уровень образования название специалист специалист 04 a04 a04b
Уровень образования название бакалавр бакалавр 05 a05 a05b
Специальность название 220200 специалист 06 a04a06 a04a06b
Специальность название 351400 специалист 07 a04a07 a04a07b
Специальность название 551700 бакалавр 08 a05a08 a05a08b
Учебный план год 2007 АСОУ 09 a01a02a04a06a09 a01a02a04a06a09b
Учебный план год 2007 220200 09 a01a02a04a06 a01a02a04a06b
Уровень образования название специалист специалист 04 a01a02a04 a01a02a04b
Примеры запросов к БД:
1. Выбрать название вузов, в которых реализуются учебные планы 2007 г.:
select Тгее1.[Атомарное значение] from Tree Treel, Tree Tree2
where Tree2.[Роль]= 'учебный план' and Tree2. [Атомарное значение]= '2007' and Tree1.[Роль]= 'вуз' and Tree1.leftKey<Tree2.leftKey and Tree1.rightKey>Tree2.rightKey
2. Выбрать названия вузов, в которых реализуются учебные планы 2007 г. с уровнем образования -специалист:
select Tree1.[Аmомарное значение] from Tree Tree1, Tree Tree2, Tree Tree3
where Tree2.[Роль]= 'учебный план' and Tree2. [Атомарное значение]= '2007' and
Tree3.[Роль]= 'уровень образования' and Tree3. [Атомарное значение]= 'специалист' and Tree1.[Роль]= 'вуз' and Tree3.leftKey<Tree2.leftKey and Tree3. rightKey>Tree2.rightKey and
Tree1.leftKey<Tree3.leftKey and Tree1. rightKey>Tree3.rightKey
Заключение
Основные выводы:
1. В нормализованных на основе операций выборки и соединения БД орграфу атомарных значений
всякой предметной области ставится в соответствие дерево атомарных значений.
2. Для каждой вершины дерева вычисляется ключ специального вида, являющийся уникальным идентификатором вершины и позволяющий определить взаимосвязи с остальными вершинами на основе отношения неравенства ключей.
3. Предложены математические методы формирования ключей вершин и поддержания дерева атомарных значений в актуальном состоянии.
4. Запросы к БД формулируются с использованием стандартизированного языка SQL. В запросах указываются только значимые в контексте запроса сущности и не учитываются взаимосвязи между сущностями. Структура и содержание запросов остаются постоянными даже в ситуациях изменения структуры предметной области. Эксперименты по хронометрированию выполнения запросов показали лучшую их производительность по сравнению с классическим подходом хранения информации в виде плоских таблиц (производительность на сложных запросах увеличилась в 10-100 раз).
5. Недостатком предложенного подхода является усложнение процедур добавления, удаления, обновления вершин дерева, что приводит к увеличению времени операций обновления дерева и увеличению размеров БД.
Предложенные математические методы и алгоритмы реализованы и успешно применяются в рамках проектов:
1. Автоматизации учебного процесса в вузах (на примере СевКавГТУ, СевКавГТИ) и школах Ставропольского края на базе ИАСУ «ВУЗ» (свидетельство №2005612457 от 19.09.2005 об официальной регистрации программы для ЭВМ «Интегрированная автоматизированная система управления (ИАСУ) «ВУЗ»»).
2. Создания высокоуровневой платформы разработки автоматизированных систем управления «БИвне» (свидетельство №2006620015 от 10.01.2006 об официальной регистрации БД Б12опе).
Литература
1. Маликов А.В. Проектирование реляционных баз данных на основе операций выборки и соединения. Исследова-
ние их свойств / Под ред. проф. А.Г. Чефранова Ставрополь, 2002.
2. Abiteboul S., Quass D., McHugh J., Widom J., Weiner J. The Lorel query language for semistructured data // Int. J. on Digital Libraries, 1997. № 1(1):68-88,. http://pub-db.stanford.edu/ publist.html.
3. Гринев М. Системы управления полуструктурированными данными // Открытые системы. 1999. № 5, 6. http://www. osp.ru/os/1999/05-06/09.htm.
4. Палей Д. Моделирование квазиструктурированных данных // Открытые системы. 2002. № 9. http://www. osp.ru/os/2002/09/057.htm.
5. Шаша Д., Бонне Ф. Оптимизация баз данных: принципы, практика, решение проблем: Пер. с англ. М., 2004.
6. Маликов А.В., Лидовской К.В. Анализ и модификация графа связей отношений реляционной базы данных // Первая междунар. науч.-техн. конф. «Инфотелекоммуни-кационные технологии в науке, производстве и образовании». Ставрополь, 2004.
24 сентября 2007 г.
Северо-Кавказский государственный технический университет, г. Ставрополь
Наши поправки
В специальном выпуске журнала «Проблемы мехатроники - 2006», «Изв. вузов. Сев-Кавк. регион. Технические науки», 2007 на стр. 66 в статье «Применение модифицированной кривой Бизьера для планирования траектории робота-манипулятора» допущена описка.
Напечатано:
Фамилия автора Фирас А. Рахеем
Следует читать:
Фамилия автора Фирас А. Рахим
Редакция журнала приносит извинения за допущенные опечатки.