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

Реализация внешнего уровня для интерпретации расширенной реляционной модели RM/T

1.12.2008

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


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


Рис. 2. Реализация иерархических связей
Такой иерархический позиционный первичный ключ определяет уникальность экземпляра не только в пределах родительского экземпляра, но и в пределах любого экземпляра-предка. Используя метод редукции ключа, можно получить доступ к любому предку данного экземпляра объекта. Поэтому, несмотря на избыточность данных, такой ключ является наиболее предпочтительным, он позволяет реализовать и поддерживать иерархические связи автоматически.
Горизонтальные связи реализуются пользователем с помощью механизмов пользовательских потенциальных и внешних ключей объектов.
В модели данных предусматриваются ограничения целостности: ограничения типов и понятий, ограничения объектов и ограничения базы данных. Ограничения целостности могут быть описаны с помощью языка Schematron [5]. Благодаря выбранной структуре кодов экземпляров, правила целостности сущностей и правила ссылочной целостности для иерархических связей поддерживаются автоматически.
В модели данных предлагается поддерживать не только спецификационные операции, но и навигационные операции манипулирования данными, так как они предоставляют большую гибкость и свободу в реализации конкретных задач. Навигационные операции соответствуют низкоуровневым операциям модели DOM [6] с некоторыми расширениями. Спецификационные операции соответствуют реляционной алгебре с расширением операций на деревья объектов. Спецификационные операции могут быть описаны с помощью языка XQuery [9].
В работе [10] были предложены механизмы для логической переструктуризации дерева объектов – ссылочные и виртуальные объекты. Ссылочные объекты ссылаются на экземпляры объектов, реально существующие в базе данных. Виртуальные объекты позволяют создавать виртуальные деревья объектов. С помощью предложенных механизмов реализуются операции произведения и соединения без создания дополнительных структур хранения, решается задача представления горизонтальных связей как логических иерархических, задача инвертирования иерархии.
В работе [11] был предложен механизм интеграции аналитической обработки данных в разработанную модель данных. Согласно этому механизму результатом аналитической обработки становится физическое дерево, в котором уровни представляют собой аналитические срезы, а значения – анализируемые признаки – и в котором совмещаются дерево объектов и дерево экземпляров в рамках единой структуры хранения. В результате по такому физическому дереву может быть автоматически построено специальное отображение с результатами расчёта аналитики.
В работе [12] был предложена реализация физического уровня для системы, поддерживающей разработанную модель данных. В качестве средства для реализации физического уровня предлагается использовать M-системы. Для быстрого чтения экземпляров в последовательно-сти иерархического обхода предлагается в качестве основной структуры хранения использовать кластерный индекс кодов экземпляров. В кластерном индексе экземпляры каждого объекта хранятся в порядке кодов экземпляров вместе с данными экземпляров. Для быстрого поиска требуемых экземпляров реализуются некластерные индексы, которые ссылаются на коды эк-земпляров кластерного индекса. Для устранения избыточности, свойственной иерархической организации данных, на физическом уровне предлагается выполнять кодирование слов струк-турированных значений понятий суррогатными кодами.
На основании предложенного подхода разработан инструмент для построения и использования информационных систем qWORD-XML [13].
В данной работе рассматривается реализация внешнего уровня инструмента qWORD-XML. Определяется механизм представления базы данных и взаимодействия с базой данных для пользователей системы.
Современные промышленные СУБД имеют набор интерфейсов к внешним инструментам проектирования и разработки приложений или снабжаются инструментальными средствами собственного производства. В общем случае имеется набор различных инструментов: соб-ственно инструментарий СУБД, среда проектирования базы данных, среда разработки при-ложений, инструмент для поиска и аналитической обработки данных, генератор отчётов. Соответственно, для построения и использования информационной системы необходимо одинаково хорошо владеть всеми инструментальными средствами, которые могут сильно разниться друг с другом.
Поэтому задачей является разработка системы, которая совмещает эти инструменты в рамках единого универсального визуального инструмента. Это позволит значительно облегчить работу пользователей, ускорить разработку информационных систем и упростить их сопровождение.
2. Взаимодействие клиента и сервера
Для решения поставленной задачи в данной работе предлагается перенести всё программирование информационной системы – взаимодействие с базой данных, описание логики работы приложения, реализацию пользовательского интерфейса – на сторону сервера и осуществлять на языке M.
Собственно инструментальную среду qWORD-XML, названную универсальным браузером, предлагается реализовать на Delphi как клиентское приложение к M-серверу. Управление клиентской частью предлагается осуществлять в реальном времени по командам сервера. Управление клиентской частью включает в себя создание объектов – экземпляров классов Delphi, установку их свойств и вызов их методов в реальном времени по командам сервера. Эти классы являются потомками визуальных (соответствующих видимым объектам) и невизуаль-ных классов Delphi.
Для взаимодействия с клиентской частью на сервере создаётся системный класс qARM, который содержит как методы управления клиентской частью, так и методы-обработчики событий клиента.
Управление клиентской частью реализуется с помощью следующих методов класса qARM (табл. 1).
Табл. 1. Управление клиентской частью
Действие Вызов метода на сервере
Создание объекта класса Delphi D qARM.wC(<класс>,<имя объекта>,<параметры>)
Вызов метода объекта D qARM.wM(<имя объекта>,<имя метода>,<параметры>)
Присвоение значения свойству объекта D qARM.wP(<имя объекта>,<имя свойства>,<значение>)
Предлагается следующая схема взаимодействия клиентской части и серверной части (здесь предполагается, что вся инициализация уже выполнена и система находится в состоянии ожи-дания действий пользователя) (рис. 3).


Рис. 3. Схема взаимодействия клиента и сервера
Пользователь производит некоторое действие, требующее реакции системы (нажатие кнопки мыши, клавиши и др.) Происходит событие (1), обработчик события клиентской программы вызывает (2) соответствующий метод-обработчик из класса qARM сервера и передает ему не-обходимые параметры, например, имя метода, который необходимо выполнить по данному действию пользователя. Обращение к серверу всегда является модальным для клиента, т.е. кли-ентское приложение ожидает завершения выполнения метода на сервере, прежде чем сможет продолжить выполнение. Благодаря этому уменьшается количество пересылок между клиентом и сервером и увеличивается скорость работы.
В это время на сервере вызванный метод (3) производит некоторые действия и может обра-щаться к методам wC, wM, wP. Эти методы не вызывают никаких действий на клиенте (он про-стаивает в ожидании), однако при этом формируется программа для клиента – запись последо-вательности действий, которые необходимо осуществить на клиенте (4). По окончании выпол-нения серверного метода работа клиентского приложения продолжается, оно считывает сфор-мированную программу (5) и последовательно её исполняет (6), создавая объекты, присваивая значения их свойствам и вызывая их методы. Пока клиент занят обработкой программы, все действия пользователя ставятся в очередь для последующей обработки.
При программировании на стороне сервера вызываются методы работы с базой данных и мето-ды клиентской части (методы объектов Delphi). Весь вид приложения определяется сервером и создается практически «с нуля» в процессе работы, а универсальный браузер представляет собой универсальное клиентское приложение ко всем построенным в qWORD-XML базам данных.
3. Универсальный браузер
В универсальном браузере всё взаимодействие с информационной системой предлагается реализовать через отображения (экранные формы). Главным системным отображением яв-ляется отображение Проводник (рис. 4).


Рис. 4. Отображение Проводник
Любое отображение состоит в общем случае из дерева объектов (левая часть окна), дерева экземпляров объектов (правая часть окна) и панелей инструментов.
Верхняя панель инструментов содержит кнопки непосредственного выполнения действий и кнопки вызовов меню. Здесь в частности присутствуют кнопки ввода и удаления экземпляров, поиска, расчёта аналитики, построения диаграммы, пункты меню печать отображения, вызов аналитического отображения. Левая панель содержит кнопки навигации по дереву экземпляров, а также кнопки управления окнами. Панели инструментов могут частично или полностью от-сутствовать – режим их вывода задается в описании отображения.
В левой части отображения располагается дерево объектов. Дерево объектов состоит из не-скольких колонок. Колонка 0 содержит собственно дерево объектов текущего отображения с понятиями этих объектов. Колонки 1 и далее предназначены для задания условий поиска и ана-литической обработки.
В дереве объектов системного отображения Проводник присутствуют следующие системные объекты:
%Отображение – содержит описания всех отображений (системных отображений инструмента и пользовательских отображений конкретной базы данных);
%Запрос – содержит описание всех созданных запросов;
%Пользователь – содержит учётные записи всех пользователей базы данных;
%Объект – содержит описание всех объектов (системных и пользовательских);
%Понятие – содержит описание всех понятий (системных и пользовательских);
%База содержит общее описание и настройки базы данных.
Конкретные отображения, запросы, пользователи, объекты, понятия являются экземплярами этих системных объектов и выводятся в дереве экземпляров. Дерево экземпляров располагается в правой части отображения. Состояние дерева экземпляров меняется при изменении состояния дерева объектов. Дерево экземпляров представляет собой дерево множеств экземпляров, соот-ветствующее текущему состоянию дерева объектов.
Проектирование структуры базы и построение приложений
Редактирование отображений предлагается производить в специальном режиме. Экран редак-тирования представляет собой интерпретацию отображения как дерева-таблицы (рис. 5) и по-зволяет описывать как структуру дерева объектов, так и внешний вид дерева экземпляров.


Рис. 5. Экран редактирования отображения
В столбце Объекты выстраивается дерево объектов (иерархические связи между объектами). В колонках 0 и далее задаются понятия объектов (связи понятий и объектов) и описание внешнего вида дерева экземпляров.
Дерево объектов выстраивается последовательно, начиная от вершины. Добавление объектов производится через контекстное меню. Объект выбирается из множества заранее определённых объектов. Можно вставить объект сразу с набором его понятий или поддерево объекта с поня-тиями. При добавлении объекта порождается нулевая строка объекта и нулевая ячейка в этой строке.
Описание дерева экземпляров создаётся путём добавления строк и колонок к дереву-таблице. Описание экземпляра объекта может занимать несколько строк и колонок дерева-таблицы. Объекты нижнего уровня могут быть встроены в произвольные строки объектов верхнего уров-ня. В ячейках дерева экземпляров могут выводиться не только понятия, но и константы, и вы-ражения.
Описание отображения создаётся в результате визуального проектирования и представляет собой такой же хранимый элемент базы данных как объекты и понятия.
При выходе из редактирования отображения описание отображения автоматически записывает-ся в базу данных, также автоматически заполняются свойства описаний объектов Понятия, По-томки и Объектная ссылка. Таким образом, с использованием отображений строится схема ба-зы.
Проектирование базы данных в qWORD-XML предлагается начинать c построения отображе-ния или нескольких отображений, в которых объекты располагаются соответственно модели-руемой иерархии. Вместе эти отображения будут определять схему базы данных как совокуп-ность деревьев.
Горизонтальные связи в предложенной модели реализуются с помощью пользовательских по-тенциальных и внешних ключей. Горизонтальные связи могут быть представлены как иерархи-ческие с помощью дополнительных отображений с использованием ссылочных и виртуальных объектов.
Таким образом, в данной работе отображение предлагается использовать как средство описания структуры базы. Экранное представление базы данных может быть создано в виде отобра-жения, описывающего общую схему базы данных или нескольких отображений, описы-вающих части общей схемы (рис. 6). Такой вариант удобен для аналитических задач.


Рис. 6. Отображение, опивающее схему базы данных
Вместе с тем отображение также предлагается использовать в качестве инструмента для по-строения приложений к базе данных. Так в описании отображения можно задать его размеры, пользовательское меню, панели инструментов, закладки, действия по входу и выходу из ото-бражения. Для каждой колонки можно задать её размеры. Для каждой ячейки можно опреде-лить выравнивание, шрифт, размер шрифта, стиль шрифта, цвет фона, цвет символа, обрамле-ние, вариант редактирования ячейки, стиль вывода в виде различных кнопок. Имеется возмож-ность встраивание дочерних отображений в дерево экземпляров.
Таким образом, экранное представление базы данных может быть создано в виде отобра-жений, представляющих собой экранные формы традиционного оперативного приложения (рис. 7).


7. Стартовое отображение приложения
Различных экранных представлений базы может быть создано сколько угодно. За счёт того, что на экран выводятся только описанные в отображении объекты и понятия, можно создавать ра-бочие места для разных типов пользователей с различными правами доступа к информации в базе.
Генератор печатных форм
Отображение предлагается интерпретировать как выходную печатную форму. В основе процес-са генерации печатных форм лежит XML-ориентированный поход системы. На основании те-кущего состояния дерева объектов и дерева экземпляров формируется XML-документ, содер-жащий данные для печати. На основании внешнего вида отображения формируется XSLT-документ. XSLT-документ представляет собой набор инструкций, описывающих преобразова-ние структуры входящего XML-документа в выходящий документ. XML-документ вместе с XSLT-документом передается XSLT-процессору. XSLT-процессор, применяя правила преобра-зования, формирует выходящий документ, который затем открывается в заданном приемнике (в качестве приёмника могут выступать Microsoft Internet Explorer, Microsoft Word, Microsoft Excel). Выходящий документ по своей структуре является HTML-документом. То есть, XSLT-документ описывает преобразование XML-документ в HTML-документ. Однако для получения необходимого форматирования выходящего документа в приёмнике, в HTML-документ долж-ны присутствовать специфичные для этого приёмника стили (например, для вывода колонтиту-лов, разрывов страниц, расстановки переносов и т.д.).


Рис. 8. Схема формирования печатных форм
По умолчанию XSLT-документ генерируется системой самостоятельно на основе внешнего ви-да отображения. Требования, предъявляемые к печатной форме, могут существенно отличаться от экранной формы приложения (не только расположением информации, так и содержанием), поэтому целесообразно создавать специальные отображения, предназначенные для печати. При разработке отображения печати его внешний вид предлагается проектировать таким образом, чтобы он соответствовал печатной форме. Следовательно, такое отображение, по сути, пред-ставляет генератор печатной формы.
Поиск
Поиск данных также предлагается выполнять в рамках отображения. Для поиска необходимо задать условия поиска. Условия поиска включают в себя условия на наличие экземпляров объ-ектов поиска и на значения понятий экземпляров объектов поиска. Условия поиска задаются в дереве объектов отображения в колонке Условие (рис. 9)


Рис. 9. Условия поиска на значения
По результат поиска строится перечень релевантных – перечень экземпляров объектов, удовле-творяющих условиям поиска. При этом в дерево экземпляров выводятся только те экземпляры объектов, которые присутствуют в перечне релевантных.
Условия поиска на значения понятий могут содержать слово значения понятия, шаблон слова значения понятия, диапазон слова значения понятия, произвольное выражение, все эти условия могут группироваться по И, по ИЛИ и по НЕ.
Аналитическая обработка данных
Аналитическую обработку также предлагается выполнять в рамках отображения (рис. 10). Пе-ред выполнением аналитической обработки может быть организован предварительный поиск данных.


Рис. 10. Аналитический запрос
Для примера, рассмотрим запрос, в котором необходимо:
определить общее количество поставок по поставщикам и деталям;
определить общее количество поставок по поставщикам;
определить общее количество поставок.
Колонка A предназначена для пометки понятий, значения которых будут использованы в каче-стве аналитических срезов. Возможно задание сразу нескольких аналитических срезов (A1, A2 и т.д.). В данном случае первый срез A1 задаётся по кодам поставщиков (s), а второй A2 – по ко-дам деталей (p).
Колонка D предназначена для пометки понятий, значения которых будут использованы в каче-стве анализируемых признаков. В данном случае маркером D помечено понятие количество по-ставок (qty).
В колонках Num, Sum, Min, Max, Mid с помощью маркера Y выбирается, какие агрегирующие функции использовать – просто количество значений, их сумма, минимальное из значений, максимальное из значений, их среднее арифметическое. В данном случае подсчитывается сум-ма (Sum).
Колонка Аналитика предназначается для описания преобразования значений из Аi и D до их агрегирования.
Результаты расчёта аналитики записываются в многомерный массив (глобал). По такому мас-сиву может быть автоматически построено специальное отображение аналитики (рис. 11).


Рис. 11. Отображение с результатами аналитики
Объекты A1, A2 в отображении имеют тип массив, т.е. ссылаются на физическое дерево.
Кроме того, результаты расчёта аналитики могут быть представлены в виде перекрёстной таб-лицы (рис. 12) или в виде различных графических изображений (рис. 13).


Рис. 12. Перекрёстная таблица Рис. 13. Столбиковая диаграмма
4. Заключение
На внешнем уровне инструмент qWORD-XML реализуется как клиентское приложение к M-серверу.
Через предложенный механизм отображений обеспечивает все необходимые средства для работы с информационной системой:
1. Отображение представляет собой инструмент для визуального проектирования структу-ры базы данных, а также средство представления этой структуры и данных, соответствую-щих этой структуре. Кроме того, в рамках отображения с помощью виртуальных и ссылоч-ных объектов предоставляется возможность логической переструктуризации базы.
2. Отображение представляет собой инструмент для визуального построения приложений к спроектированной базе данных, а также собственно экранную форму приложения.
3. Отображение представляет собой визуальное средство для проектирования внешнего ви-да выходной печатной формы.
4. Отображение представляет собой визуальное средство для поиска данных и для пред-ставления результатов поиска.
5. Отображение предоставляет визуальное средство для аналитической обработки данных и для предоставления результатов обработки.
Таким образом, в рамках отображения объединяются собственно данные, их структура, представление и обработка. Описание отображения включает в себя описание схемы дерева объектов и описание внешнего вида дерева экземпляров вместе с вызовами действий по си-туациям. Описание отображения представляет собой такой же хранимый элемент базы дан-ных как объекты и понятия и создаётся в результате визуального проектирования.
Всё программирование информационной системы – взаимодействие с базой данных, описание логики работы приложения, реализация пользовательского интерфейса – осуществляется на языке M на стороне сервера. При этом вызываются методы работы с базой данных и методы клиентской части (методы объектов Delphi). Собственно программирование информационной системы в qWORD-XML сводится к построению отображений и определению действий по ситуациям, а универсальный браузер представляет собой универсальное клиентское при-ложение ко всем построенным в qWORD-XML информационным системам.
Благодаря реализованной модели данных, унификации хранения, обработки и представления данных, унификации программирования, инструмент qWORD-XML представляет собой удоб-ную среду для быстрой и простой разработки, простого сопровождения и использования ин-формационных систем.
С помощью инструмента qWORD-XML были разработаны Автоматизированная информацион-но-аналитическая система по проблемам инвалидности и инвалидов (АИС МСЭ) и Информаци-онно-аналитическая система органов социальной защиты населения субъекта федерации (АИС «Соцзащита»).
Литература
1 Тимофеев Д.В. Использование платформы XML для описания расширенной реляционной модели данных RM/T.
2 Кодд Э.Ф. Расширение реляционной модели для лучшего отражения семантики. http://www.osp.ru/dbms/1996/05/163.htm
3 Extensible Markup Language (XML) 1.0. http://www.w3.org/TR/REC-xml/
4 Relax NG. http://relaxng.org/
5 The Schematron. http://xml.ascc.net/resource/schematron/
6 Document Object Model (DOM). http://www.w3.org/DOM/
7 XML Path Language (XPath) Version 1.0. http://www.w3.org/TR/xpath
8 XML Path Language (XPath) 2.0. http://www.w3.org/TR/xpath20/
9 XQuery 1.0: An XML Query Language. http://www.w3.org/TR/xquery/
10 Тимофеев Д.В. Реализация логической переструктуризации в интерпретации расширенной реляционной модели данных RM/T
11 Тимофеев Д.В. Аналитическая обработка данных в интерпретации расширенной реляцион-ной модели RM/T.
12 Тимофеев Д.В. Реализация физического уровня для интерпретации расширенной реляцион-ной модели RM/T.
13 Долженков А., Тимофеев Д. Семантический инструмент построения баз данных. «Открытые системы», №01/2006