СП.АРМНаши публикации → Расширение реляционной технологии для создания информационных систем на основе языков разметки

Расширение реляционной технологии для создания информационных систем на основе языков разметки

19.11.2008

УДК 004.65

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

Главной целью совершенствования процесса разработки и эксплуатации информационных систем является повышение удобства их построения, развития и использования. Для этого необходима модель данных, позволяющая «удерживать больше смысла данных», а также единая инструментальная среда проектирования и использования информационных систем, которая обеспечивает унификацию хранения, представления и обработки данных. Это определяет основные две задачи данного исследования.
Большая часть данных, возникающих в ходе деятельности предприятия, представлена в виде документов. Манипулирование этими данными называется документооборотом. С точки зрения манипулирования данными, все аспекты деятельности либо являются документооборотом, либо могут быть формально к нему сведены.
В основе информационной системы лежит система баз данных. Система баз данных предоставляет предприятию средства централизованного управления его данными. На сегодняшний день доминирующее положение занимают реляционные СУБД, они предоставляют удобный способ хранения информации, представленной в виде таблиц. Структура данных большинства реальных документов может быть представлена как произвольное иерархическое дерево с горизонтальными связями. Поэтому документы хранятся либо полностью в одной ячейке таблицы реляционной базы, либо разбиваются на множество таблиц, некоторые таблицы, полученные из разных документов, объединяются. В реляционной базе имеем дело с другими документами, поэтому алгоритм обработки реального документа невозможно положить в основу алгоритма программного кода хранимой процедуры. Реальные документы опять появляются только на уровне приложения. Здесь, по сути, имеем дело не с отображением, а с перепроектированием документов, и, соответственно, документооборота. Соответственно появляются модель предметной области на уровне базы данных и модель предметной области на уровне приложений, между которыми необходимо реализовывать отображение. В результате усложняется построение информационной системы, а если предметная область является динамической, то также развитие и сопровождение информационной системы. В этой связи наиболее перспективным является прямая реализация СУБД, основанной на расширенной модели данных, в большей степени соответствующей семантике предметной области. При этом разработка информационных систем станет в большей степени описательной, декларативной.
Первой задачей является разработка расширенной модели данных, несущей большую смысловую нагрузку, чем базовая реляционная модель, но при этом являющейся естественным расширением реляционной модели.
В качестве основы такой модели в данной работе предлагается использовать расширенную реляционную модель RM/T [1]. Эта модель была предложена Коддом с целью расширения семантических аспектов реляционной модели. В RM/T вводятся различные семантические абстракции (декартова агрегация, обобщение, агрегация покрытия, предшествование событий), а также формальные объекты, правила целостности и операторы. Однако механизм реализации расширений в RM/T является низкоуровневым, что делает модель более мощной и гибкой, но вместе с тем более сложной и ориентированной в первую очередь на программистов, а не на пользователей.
Для описания молекулярных типов RM/T предлагается введение молекулярной структуры – дерева с горизонтальными связями – поверх атомарной структуры – n-мерного отношения. Дерево должно быть логическим, что позволит легко решать задачи переструризации дерева. Также должна поддерживаться возможность представления горизонтальных связей в виде логических деревьев. Логико-математический аппарат иерархической базы данных с горизонтальными связями, в общем случае, существенно сложнее, чем реляционных – последние лишь частный случай первых. Однако с созданием и развитием платформы XML появилась возможность формального описания иерархической модели с горизонтальными связями.
На основе языков платформы XML может быть построена модель данных. Структурой данных этой модели является дерево элементов с горизонтальными связями, задаваемое базовой спецификацией XML [2], языками описания схем Relax NG [3], Schematron [4], элементы этого дерева упорядочены. Ограничения целостности задаются с помощью языков Relax NG, Schematron. Операции осуществляются с использованием DOM [5], XPath [6, 7] и XQuery [8]. И эта модель данных позволяет описать предложенную интерпретацию модели RM/T.
Современные промышленные СУБД имеют набор интерфейсов к внешним инструментам проектирования и разработки приложений или снабжаются инструментальными средствами собственного производства. В общем случае имеется набор различных инструментальных средств: собственно инструментарий СУБД, среда проектирования базы данных, среда разработки приложений, инструмент для поиска и аналитической обработки данных, генератор отчётов.
Второй задачей является разработка системы, которая совмещает эти инструментальные средства в рамках единой универсальной визуальной среды проектирования и использования информационных систем. Это позволит значительно облегчить работу пользователей, ускорить разработку информационных систем и упростить их сопровождение.

2. Модель данных qWORD-XML
В рамках решения первой из поставленных задач необходимо осуществить наложение иерархической модели данных в варианте XML как вторичной поверх реляционной. Это позволит сохранить строгость реляционной модели и привнести в неё дополнительные преимущества иерархической модели [9], а также использовать для описания модели qWORD-XML как реляционную алгебру, так и языки платформы XML: XML, Relax NG, Schematron, DOM, XPath, XQuery.
Основными структурными компонентами модели данных qWORD-XML являются понятие, объект, экземпляр объекта, код экземпляра объекта, отображение.
Объекты соответствуют типам элементов XML-документа, экземпляры объектов – отдельным элементам, а понятия – атрибутам элементов. С другой точки зрения объекты соответствуют реляционным отношениям, экземпляры объектов – кортежам отношений, а понятия – атрибутам отношений (рис. 1). Если с точки зрения XML позиция элемента это ключ естественный, то чисто с реляционной точки зрения он видится как ключ суррогатный. В модели данных qWORD-XML этот ключ называется кодом экземпляра объекта. Для описания связей понятий с объектами, а также связей между объектами вводится ещё одна структура – отображение. Отображение включает схему дерева объектов и дерево экземпляров. Дерево объектов соответствует схеме ХML-документа и может быть описано с помощью языка Relax NG [3], а дерево экземпляров – множеству ХML-документов, удовлетворяющих этой схеме. Базу данных предлагается моделировать как совокупность деревьев информационных объектов с горизонтальными связями и со специфичным для каждого объекта набором понятий.


Рис 1. Структурные компоненты модели данных qWORD-XML
Так как задачей является построение логической структуры с возможностью переструктуризации, то и иерархические связи, и горизонтальные связи реализуются только на основе значений понятий, таким образом, все связи являются информационными.
В код экземпляра помимо первичного позиционного ключа объекта, включаются также внешние ключи, ссылающиеся на экземпляры-предки данного экземпляра (рис. 2). Такой иерархический позиционный первичный ключ определяет уникальность экземпляра не только в пределах родительского экземпляра, но и в пределах любого экземпляра-предка. Используя метод редукции ключа, можно получить доступ к любому предку данного экземпляра объекта. Поэтому, несмотря на избыточность данных, такой ключ является наиболее предпочтительным, он позволяет реализовать и поддерживать иерархические связи автоматически.


Рис. 2. Структура иерархических ключей

Горизонтальные связи могут быть реализованы пользователем с помощью механизмов пользовательских потенциальных и внешних ключей объектов.
Значения понятий могут быть структурированными и неструктурированными. Под структурированным значением понимается последовательность слов, разделённых пробелами. Неструктурированное значение – это многострочный текст или последовательность байтов, которая может интерпретироваться как изображение, звук, видео.
Иерархической организации данных свойственно дублирование информации и соответственно избыточность данных. Такое дублирование является естественным для человека, так в процессе документооборота часто данные многократно переносятся по цепочке от одного документа к другому, что вполне естественно и должно адекватно отражаться в модели данных. Дублирование информации позволяет отказаться от реализации горизонтальных связей между отдельными деревьями и непосредственно использовать значения. Вопрос о минимизации количества хранимой информации – это вопрос физического уровня, а не уровня модели.
В модели данных qWORD-XML предусматриваются ограничения целостности: ограничения типов и понятий, ограничения объектов и ограничения базы данных. Ограничения целостности могут быть описаны с помощью языка Schematron [4]. Благодаря выбранной структуре кодов экземпляров, правила целостности сущностей и правила ссылочной целостности для иерархических связей поддерживаются автоматически.
В модели данных предлагается поддерживать как навигационные операции манипулирования данными, так и спецификационные, так как навигационные операции предоставляют большую гибкость и свободу в реализации конкретных задач. Кроме того, в системах изначально ориентированных только на спецификационные операции, навигационные операции появляются на уровне приложений, например, в виде курсоров. Навигационные операции соответствуют низкоуровневым операциям модели DOM [5] с некоторыми расширениями. Спецификационные операции соответствуют реляционной алгебре с расширением операций на деревья объектов. Спецификационные операции могут быть описаны с помощью языка XQuery [8].
На основании предложенной структуры кодов экземпляров легко решается задача инвертирования иерархии, реализуется операция проекции общей схемы базы данных по объектам.
Для логической переструктуризации дерева предлагаются механизмы ссылочных и виртуальных объектов. Ссылочные объекты ссылаются на экземпляры объектов, реально существующие в базе данных, при этом операции манипулирования экземплярами ссылочных объектов поддерживаются системой. Виртуальные объекты позволяют создавать виртуальные деревья объектов. Операции манипулирования экземплярами должны реализовываться пользователем. С помощью механизмов ссылочных и виртуальных объектов решается задача представления горизонтальных связей как логических иерархических, реализуются операции произведения и соединения.
Модель данных qWORD-XML основывается на базовой реляционной модели данных и модели данных XML и является функциональной полной. Она позволяет манипулировать логическими деревьями с горизонтальными связями, предоставляет средства логической переструктуризации дерева с возможностью представления горизонтальных связей в виде логических деревьев и соответствует модели данных RM/T. Модель также обладает свойством самоописания, что позволяет использовать одни те же операции для манипулирования как данными, так и метаданными.
3. Физический уровень

На физическом уровне qWORD-XML реализуется как надстройка над M-системой [10, 11, 12]. M-системы с одной стороны предоставляют низкоуровневый интерфейс к структурам хранения, что позволяет получить свободу и гибкость в принятии проектных решение, а с другой обладают развитыми возможностями СУБД, что позволяет значительно упростить разработку. Вместе с тем следует отметить, что M – это, прежде всего, эффективное средство для разработки СУБД, а не собственно СУБД.
Главным достоинством М-систем является эффективный механизм управления внешней памятью в виде B*-деревьев, которые на логическом уровне представляются через глобалы. Глобал – это хранимый на диске рассортированный по строковым индексам резреженный массив произвольной размерности.
Основными используемыми в данной работе преимуществами глобалов являются:
• Сортировка элементов глобалов в момент записи, представляемая на логическом уровне (на уровне глобалов), что непосредственно позволяет использовать глобалы для построения индексов.
• Сжатие ключей, что позволяет представлять логически связанные структуры хранения совместно, при этом логическая избыточность на физическом уровне устраняется.
С помощью глобалов реализуются структуры хранения инструмента qWORD-XML. Так как элементы XML-документы логически упорядочены по позициям, то для быстрого чтения экземпляров в последовательности иерархического обхода, необходимо обеспечить их хранение в непосредственной близости друг от друга. Для этого в данной работе предлагается хранить данные в кластерном индексе кодов экземпляров в порядке кодов экземпляров. Таким образом, код экземпляра на уровне хранения становится ключом кластерного индекса. Для быстрого поиска требуемых экземпляров предлагается использовать некластерные индексы, ссылающиеся на кластерный индекс.
Для устранения избыточности, свойственной иерархической организации данных, на физическом уровне предлагается выполнять кодирование слов структурированных значений понятий суррогатными кодами. На основании предложенного подхода реализуются кластерный индекс слов значений, ключом которого является суррогатный код слова значения, и некластерный индекс слов значений.

4. Универсальная инструментальная среда
Для решения второй поставленной задачи в данной работе предлагается перенести всё программирование информационной системы – взаимодействие с базой данных, описание логики работы приложения, реализацию пользовательского интерфейса – на сторону сервера и осуществлять на языке M. При этом весь вид приложения будет определяться сервером, и создаваться практически «с нуля» в процессе работы с системой.
Инструментальная среда qWORD-XML называется универсальным браузером, и реализуется как клиентское приложение к M-серверу. В универсальном браузере всё взаимодействие пользователя с информационной системой предлагается реализовать через экранные формы, которые называются отображениями. Отображение состоит в общем случае из дерева объектов, дерева экземпляров объектов и панелей инструментов (рис. 3).


Рис. 3. Экранная форма универсального браузера

Через механизм отображений обеспечиваются все необходимые средства для работы с информационной системой. Отображение представляет собой:
1. Инструментую среду для визуального проектирования структуры базы данных, а также средство представления этой структуры и данных, соответствующих этой структуре.
2. Инструментальную среду для визуального построения приложений к спроектированной базе данных, а также собственно экранную форму приложения.
3. Визуальное средство для проектирования внешнего вида выходной печатной формы.
4. Визуальное средство для поиска данных и для представления результатов поиска.
5. Визуальное средство для аналитической обработки данных и для предоставления результатов обработки. Дополнительно реализована возможность предоставления результатов аналитической обработки в виде перекрёстной таблицы или в виде различных диаграмм с помощью встроенного в универсальный браузер компонента.
Таким образом, в рамках отображения объединяются собственно данные, их структура, представление и обработка. Описание отображения представляет собой такой же хранимый элемент базы данных как объекты и понятия. Оно создаётся в результате визуального проектирования и включает в себя описание схемы дерева объектов, описание внешнего вида дерева экземпляров вместе с вызовами действий по ситуациям.
Собственно программирование информационной системы в qWORD-XML сводится к построению отображений и определению действий по ситуациям, а универсальный браузер представляет собой универсальное клиентское приложение ко всем построенным в qWORD-XML информационным системам.
Заключение

Благодаря реализованной модели данных, а также унификации хранения, обработки и представления данных, инструмент qWORD-XML представляет собой удобную среду для быстрой и простой разработки, простого сопровождения и использования информационных систем.
С помощью инструмента 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 Веселов В.В., Долженков А.Н. Опыт построения XML-СУБД. – «Открытые Системы», 2002, №06.
10 Гессе С., Кирстен В. Введение в язык программирования М. – СПб: АОЗТ «СП. АРМ», 1996 – 280с.
11 Кирстен В. От ANS MUMPS к ISO M. – СПб: СП.АРМ, 1995 – 277с.
12 Кирстен В и др. Постреляционная СУБД Cache 5: объектно-ориентированная разработка приложений. 2-е изд., перераб. и дополн. – М.: ООО «Бином-Пресс», 2005. – 416 с.

Прием комментариев прекращен.