Использование платформы XML для описания расширенной реляционной модели данных RM/T

1. Введение

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

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

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

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

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

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

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

С целью расширения семантических аспектов реляционной модели Коддом была предложена расширенная реляционная модель RM/T [1], в которой помимо семантических понятий вводятся также формальные объекты, правила целостности и операторы.

В данной работе рассматривается расширенная реляционная модель данных RM/T, которая не получила широкого распространения из-за своей сложности, предлагается использовать для формального описания модели RM/T языки платформы XML и разрабатывается модель данных, основанная на модели данных RM/T, с использованием платформы XML.

2. Модель данных RM/T

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

Сущности имеют типы, которые классифицируются на три категории:

  • Характеристические сущности выполняют вспомогательную роль в описание некоторой другой сущности. Существование характеристик зависит от существования описываемых ими сущностей.
  • Ассоциативные сущности выполняют вспомогательную роль в обеспечении взаимосвязи других сущностей. Ассоциации представляют связи типа «многие ко многим».
  • Стержневые сущности независимы.

Сущности могут иметь свойства, поддерживаются супертипы и подтипы сущностей.

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

Каждому типу сущности соответствует унарное E-отношение (рис. 1). В E-отношении перечисляются суррогаты всех сущностей, которые имеют этот тип и существуют в базе. Свойства типов сущностей представляются P-отношениями (рис. 1).


Рис. 1. E- и P-отношения

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

RM/T поддерживает определённую атомарную и молекулярную семантику. Атомарная семантика представляется n-мерными отношениями (в крайнем случае, бинарными), которые являются наиболее малыми смысловыми единицами, молекулярная семантика представляется смысловыми единицами большими, чем n-мерные отношения. RM/T поддерживает четыре измерения молекулярной семантики: декартову агрегацию, обобщение, агрегацию покрытия и предшествование событий.

Декартова агрегация – это абстракция, в которой связь между объектами рассматривается как объект более высокого уровня. В RM/T декартова агрегация подразделяется на 3 вида:

1. Агрегация простых свойств, которая образует некоторый тип сущностей.

Совокупность P-отношений для заданного E-отношения составляет молекулярный тип свойств.

2. Агрегация характеристических сущностей, которая образует некоторый тип сущностей.

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

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

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


Рис. 2. Характеристическая агрегация

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

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

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


Рис. 3. Ассоциативная агрегация

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

Обобщение – это абстракция, при которой множество схожих объектов рассматривается как родовой объект (подтипы и супертипы сущностей).

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

Иерархия обобщения в общем виде представляет собой решётку типов. В предлагаемом подходе она может быть реализована с помощью горизонтальных связей между типами сущностей характеристических деревьев (рис. 4).


Рис. 4. Агрегация обобщения

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

Агрегация покрытия – это абстракция, при которой разнородные объекты могут связываться по признаку компонентного вхождения в другие объекты.

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


Рис. 5. Агрегация покрытия

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

Предшествование событий – это абстракция, которая отражает последовательность некоторых типов событий.

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

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

В целом RM/T вводит молекулярные смысловые единицы, более крупные, чем отдельные n-арные отношения. Эти смысловые единицы более естественны и интуитивно понятны для человека. Однако механизм реализации расширений является низкоуровневым, что делает модель более мощной и гибкой, но вместе с тем более сложной и ориентированной в первую очередь на программистов, а не на пользователей. Большинство деталей расширения должно быть скрыто от основной массы пользователей. Из-за своей сложности RM/T не получила широкого распространения.

Как было отмечено, характеристическая агрегация может быть описана древовидной структурой, а ассоциативная агрегация, обобщение и агрегация покрытия – горизонтальными связями между типами сущностей этих деревьев. В целом для описания молекулярных типов RM/T в данной работе предлагается введение молекулярной структуры – дерева с горизонтальными связями – поверх атомарной структуры – n-мерного отношения. Такое дерево, очевидно, должно быть логическим, что позволит легко решать задачи переструризации дерева. Кроме того, должна поддерживаться возможность представления ассоциативной агрегации, обобщения и агрегации покрытия в виде логических деревьев. Суррогаты должны служить для упорядочивания кортежей отношений.

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

3. Платформа XML

XML (Extensible Markup Language) [2] – стандарт, который определяет синтаксис, позволяющий создавать собственные языки разметки документов. XML не содержит готового набора элементов разметки (тегов), а описывает правила создания собственных тегов.

Главным достоинством XML является отделение друг от друга структурной разметки, форматирующей (визуального представления) разметки и семантики разметки. Следует отметить, что XML как таковой не предписывает какой-либо конкретный смысл применяемой разметке. Семантику разметки определяют использующие документы XML приложения.

Структура XML-документов

Главной конструкцией языка XML является XML-документ. Основными структурными единицами XML-документа являются элементы и атрибуты. XML-документ представляет собой набор вложенных друг в друга элементов, обладающих атрибутами. Элементы иерархически организуют информацию, содержащуюся в документе. Элементы упорядочены, соответственно, существует определённый порядок обхода документа, для атрибутов порядок следования не имеет значения. Иерархическая организация информации в XML описывается древовидной структурой (рис. 6).


Рис. 6. XML-документ и дерево элементов

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

Описание структуры и ограничений целостности

Схема документа – это формальное описание структуры документа и семантических ограничений, накладываемых на содержащиеся в документе данные. Знание схемы XML-документа позволяет относить его к определённому классу.

Все языки описания схем можно разбить на две группы: основанные на грамматике (DTD, XML Schema, RELAX NG [3]) и основанные на правилах (Schematron [4]).

Языки, основанные на грамматике, сосредотачиваются на явном объявлении схемы документа и определяют закрытую модель содержания XML-документа, что означает невозможность добавления в XML-документ новых элементов без их предварительного определения в схеме. Такие языки позволяют описывать древовидную структуру XML-документа.

Языки, основанные на правилах, сосредотачиваются на проверке допустимости конкретных документов и определяют открытую модель содержания XML-документа. Каждое правило представляет собой ограничение целостности, выраженное языком XPath. С помощью правил можно обеспечить проверку допустимости ограничений, которые невозможно объявить в языках, основанных на грамматике. Такие языки позволяют описывать горизонтальные связи между элементами XML-документа и ограничения целостности.

Совместное использование языков, основанных на грамматике, и языков, основанных на правилах, позволяет описывать древовидные структуры с горизонтальными связями, то есть, структуры модели RM/T.

Операции с XML-документами

Объектная модель документа DOM (Document Object Model) [5] обеспечивает объектное представление XML-документов. Структура документа моделируется как дерево узлов-объектов различных типов (всего 12). Модель также включает полный набор низкоуровневых операций с узлами, то есть описывает функционально полную модель данных XML. Однако следует отметить, что, так как операции низкоуровневые, DOM предназначена, прежде всего, для программистов.

Для более высокоуровневого манипулирования XML-данными в платформе XML используются языки XPath [6, 7] и XQuery [8].

Язык XPath предназначен для адресации отдельных частей XML-документа. Основу языка составляют выражения различных типов, особо выделяются выражения пути – пути выборки. Пути выборки позволяют выбирать в XML-документе последовательность узлов в соответствии с разнообразными критериями.

Язык запросов XQuery предназначен для извлечения информации из любых участков XML-документа и оформления ее в виде элементов XML-документа. Для поиска информации в XML-документе в XQuery используются выражения XPath.

По сравнению с XPath одних из основных дополнений, предусмотренных в XQuery, является способность формировать новые узлы. Поэтому в XQuery определяется такое понятие как конструктор узлов. Конструктор узлов – это выражение, которое создает и добавляет к дереву документа новые узлы.

Запрос к XML-документу записывается в виде выражения относительно переменных, которые принимают значения отобранных узлов, и содержит конструктор узлов, в котором используются эти переменные.

Следует отметить, что язык Query предназначен только для чтения данных, поэтому для обновления необходимо использовать DOM либо создавать собственные высокоуровневые средства на основе DOM.

Преобразование структуры XML-документа

Для преобразования структуры XML-документа используется язык XSLT [9, 10]. Таблица стилей, по которой идет преобразование, содержит правила, состоящие из двух частей: образцов для отбора узлов, предназначенных для преобразования, и шаблонов для построения преобразованных узлов. Результат преобразования может стать новым самостоятельным документом.

Модель данных XML

Из вышесказанного следует, что на основе языков платформы XML может быть построена модель данных. Структурой данных этой модели является дерево элементов с горизонтальными связями, задаваемое базовой спецификацией XML, языками описания схем Relax NG, Schematron, элементы дерева упорядочены. Ограничения целостности задаются с помощью языков Relax NG, Schematron. Операции осуществляются с использованием DOM, XPath и XQuery. Преобразование структуры XML-документа осуществляется с использование XSLT.

И эта модель данных позволяет описать предложенную интерпретацию модели RM/T.

4. Расширенная модель данных

На основе предложенного подхода разработана расширенная реляционная модель данных, в которой иерархическая модель данных в варианте XML наложена как вторичная поверх реляционной. Это позволяет сохранить строгость реляционной модели и привнести в неё дополнительные преимущества иерархической модели, а также использовать для описания модели как реляционную алгебру, так и языки платформы XML: XML, Relax NG, Schematron, XPath, XQuery.

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

Объекты соответствуют типам элементов XML-документа, экземпляры объектов – отдельным элементам, а понятия – атрибутам элементов. С другой точки зрения объекты соответствуют реляционным отношениям, экземпляры объектов – кортежам отношений, а понятия – атрибутам отношений (рис. 6).


Рис 6. Структурные компоненты модели данных

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

Для описания связей понятий с объектами, а также связей между объектами вводится ещё одна структура – отображение. Отображение включает схему дерева объектов и дерево экземпляров. Дерево объектов соответствует схеме ХML-документа и может быть описано с помощью языка Relax NG, а дерево экземпляров – множеству ХML-документов, удовлетворяющих этой схеме.

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

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

В код экземпляра помимо первичного позиционного ключа объекта, включаются также внешние ключи, ссылающиеся на экземпляры-предки данного экземпляра (рис. 7).


Рис. 7. Реализация иерархических связей

Такой иерархический позиционный первичный ключ определяет уникальность экземпляра не только в пределах родительского экземпляра, но и в пределах любого экземпляра-предка. Используя метод редукции ключа, можно получить доступ к любому предку данного экземпляра объекта. Поэтому, несмотря на избыточность данных, такой ключ является наиболее предпочтительным, он позволяет реализовать и поддерживать иерархические связи автоматически.

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

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

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

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

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

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

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

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

Разработанная модель данных основывается на базовой реляционной модели данных и модели данных XML и является функциональной полной. Она позволяет манипулировать логическими деревьями с горизонтальными связями, предоставляет средства логической переструктуризации дерева с возможностью представления горизонтальных связей в виде логических деревьев и соответствует предложенной интерпретации модели данных RM/T. Модель также обладает свойством самоописания, что позволяет использовать одни те же операции для манипулирования как данными, так и метаданными.

5. Заключение

В данной работе предложена новая интерпретация расширенной реляционной модели данных RM/T. Согласно этой интерпретации молекулярные типы RM/T могут быть описаны молекулярной структурой – деревом с горизонтальными связями, которое накладывается поверх атомарной структуры – n-мерного отношения. Такое дерево является логическим, что позволяет легко решать задачи реструризации дерева. Поддерживается возможность представления ассоциативной агрегации, обобщения и агрегации покрытия в виде логических деревьев. Суррогаты служат для упорядочивания кортежей отношений.

Для описания этой интерпретации модели данных RM/T предложено использовать модель данных XML. Представляется краткое описание разработанной расширенной модели данных, основанной на модели данных RM/T, для описания которой используется модель данных XML.

Предложенная модель данных является основой разработанного инструмента для построения и использования информационных систем qWORD-XML [11]. Благодаря реализованной модели данных, а также унификации хранения, обработки и представления данных, инструмент qWORD-XML представляет собой удобную среду для быстрой и простой разработки, простого сопровождения и использования информационных систем.

С помощью инструмента qWORD-XML были разработаны Автоматизированная информационно-аналитическая система по проблемам инвалидности и инвалидов (АИС МСЭ) и Информационно-аналитическая система органов социальной защиты населения субъекта федерации (АИС «Соцзащита»).

Литература

  1. Кодд Э.Ф. Расширение реляционной модели для лучшего отражения семантики. http://www.osp.ru/dbms/1996/05/163.htm
  2. Extensible Markup Language (XML) 1.0. http://www.w3.org/TR/REC-xml/
  3. Relax NG. http://relaxng.org/
  4. The Schematron. http://xml.ascc.net/resource/schematron/
  5. Document Object Model (DOM). http://www.w3.org/DOM/
  6. XML Path Language (XPath) Version 1.0. http://www.w3.org/TR/xpath
  7. XML Path Language (XPath) 2.0. http://www.w3.org/TR/xpath20/
  8. XQuery 1.0: An XML Query Language. http://www.w3.org/TR/xquery/
  9. XSL Transformations (XSLT) Version 1.0. http://www.w3.org/TR/xslt
  10. XSL Transformations (XSLT) Version 2.0. http://www.w3.org/TR/xslt20/
  11. Долженков А., Тимофеев Д. Семантический инструмент построения баз данных. «Открытые системы», №01/2006