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

Реализация инструмента для построения баз данных и приложений на основе расширенной реляционной модели

21.10.2008

Тимофеев Д.В.
Санкт-Петербургский институт информатики и автоматизации РАН
1. Удержание большего смысла данных
Поставим перед собой задачу создания инструмента для построения баз данных и приложений как задачу представления смысла данных. Как известно, задача представления смысла данных не имеет окончательного решения, это «никогда не завершающаяся задача» [1]. Тем не менее, обсудим некоторые практические шаги в указанном направлении.
На сегодняшний день среди инструментальных средств разработки систем баз данных доминирующее положение занимают системы управления базами данных (СУБД), поддерживающие реляционную модель данных. Для понимания причин повсеместного перехода к реляционным системам нужно знать особенности дореляционных систем (иерархических и сетевых). Рассмотрим присущие им достоинства и недостатки.
Достоинства:
1. Структуры данных, используемые в дореляционных системах, являются наиболее подходящими абстракциями для описания объектов и отношений в реальном мире, то есть наиболее полно отражают семантику предметной области.
2. Развитые средства управления данными во внешней памяти на низком уровне.
3. Возможность построения вручную эффективных прикладных систем.
Недостатки:
1. Доступ к базе данных производится на уровне записей, между которыми поддерживаются явные связи. Следствием этого являются низкоуровневый навигационный стиль программирования и сложность использования таких систем непрограммистами.
2. Отсутствие физической и логической независимости данных. Необходимы знания о физической организации данных. Пользователю самому приходится производить всю оптимизацию доступа к базе данных без какой-либо поддержки системы.
3. Отсутствие теоретической основы. Следует отметить, что понятие модели данных фактически вошло в обиход специалистов в области баз данных только вместе с реляционным подходом. Абстрактные представления ранних систем появились позже на основе анализа и выявления общих признаков у различных конкретных систем.
Как известно, целью реляционного подхода было преодоление указанных выше недостатков ранних систем. Реляционные системы в свою очередь характеризуются следующим набором свойств и возможностей:
Достоинства:
1. Наличие простого и в то же время мощного математического аппарата, опирающегося главным образом на теорию множеств и математическую логику и обеспечивающего теоретический базис реляционного подхода к организации баз данных.
2. Обеспечение физической и логической независимости данных. Нет необходимости знать конкретную физическую организацию баз данных во внешней памяти.
3. Единственной конструкцией данных, используемой в реляционной модели, является отношение. Между данными реализуются виртуальные связи (на основании значений данных), а не физические (на основании указателей) как в ранних системах. Следствием являются ненавигационный доступ данных (отношения трактуются как операнды и как результат операции, а не обрабатываются поэлементно). Простота структуры данных и манипулятивных операций в свою очередь облегчает работу пользователей (как программистов, так и непрограммистов).
Недостатки:
1. Примитивность типов данных, используемых в реляционных системах. Вследствие чего присущая реляционным системам ограниченность в так называемых нетрадиционных областях (например, САПР), в которых требуются предельно сложные структуры данных.
2. Слабые возможности по части представления семантики предметной области. Реляционная база данных представляет собой совокупность взаимосвязанных отношений, для которых должны поддерживаться ограничения целостности данных.
Относительно первого недостатка Дейт в [2, 3] отмечает: «Вопрос о том, какие типы поддерживаются, ортогонален вопросу о поддержке реляционной модели». В существующих реляционных системах (SQL-системах) «они являются простейшими, однако ничто в реляционной модели не запрещает им иметь более сложный вид».
Второй недостаток является следствием простоты используемой структуры данных. Реляционная модель достаточна для моделирования предметных областей. Однако проектирование базы в терминах отношений часто представляет очень сложный и неудобный процесс. Потребности проектировщиков баз данных в более удобных и мощных средствах представления предметной области вызвала к жизни направление семантического моделирования.
Расширенные реляционные модели несут большую смысловую нагрузку, чем базовая модель, однако и они не выявляют всю семантику предметной области, термин «семантическая модель» для них не подходит. Основная цель исследований в области семантического моделирования состоит в том, чтобы сделать СУБД более «разумными», в удержании большего смысла данных. Конкретная цель состоит в предоставлении систематического подхода к решению проблемы проектирования базы данных. Общая процедура проектирования базы данных включает следующие два этапа:
1. Использование семантического моделирования для создания концептуальной модели предметной области.
2. Отражение спецификаций модели предметной области в среду конкретной СУБД. Результатом этого этапа является концептуальная схема базы данных в терминах модели данных концептуального уровня выбранной СУБД.
При этом полученная концептуальная схема базы данных может существенно отличаться от первоначальной концептуальной модели предметной области. Для преодоления этого недостатка, а также для решения ряда других задач потребовалось построение специальной системы, названной нами «qWORD-XML». Задачи, которые должна решать эта система будем здесь формулировать в виде требований к проводимой разработке. Сформулируем первое требование.
Требование 1
Система должна основываться на модели данных семантически более полной, чем базовая реляционная модель. При этом модель данных должна быть естественным расширением реляционной модели.
Это позволит в значительной степени упростить отображение концептуальной модели предметной области в концептуальную схему базы данных, а тем самым упростить проектирование и использование баз данных.
Для удовлетворения этого требования в качестве основы qWORD-XML предлагается использовать расширенную реляционную модель RM/T [1]. Рассмотрим важные для нас элементы этой модели.
В RM/T для идентификации сущностей используются суррогаты (определяемые системой идентификаторы). Пользователи базы данных могут заставить систему сгенерировать или удалить некоторый суррогат, но они не имеют контроля над значением суррогата. С введением суррогатов не отменяются ключи, контролируемые пользователями.
Сущности имеют типы. Сущности и их типы классифицируются на три категории:
характеристические сущности – характеристическая сущность выполняют вспомогательную роль в описание некоторой другой сущности;
ассоциативные сущности – ассоциативная сущность выполняет вспомогательную роль в обеспечении взаимосвязи других сущностей;
стрежневые сущности – стержневая сущность не выполняет никакой их указанных выше ролей и обладает независимым существованием.
RM/T поддерживает определённую атомарную и молекулярную семантику. Атомарная семантика представляется n-мерными отношениями (в крайнем случае, бинарными), которые являются наиболее малыми смысловыми единицами, молекулярная семантика представляется смысловыми единицами большими, чем n-мерные отношения. RM/T поддерживает четыре измерения молекулярной семантики – декартову агрегацию, обобщение, агрегацию покрытия и предшествование событий.
Декартова агрегация – это абстракция, в которой связь между объектами рассматривается как объект более высокого уровня.
В RM/T декартова агрегация подразделяется на 3 вида:
1. Агрегация простых свойств, которая образует некоторый тип сущностей (характеристический, стержневой или ассоциативный).
2. Агрегация характеристических сущностей, которая образует некоторый тип сущностей (характеристический, стержневой или ассоциативный).
3. Агрегация любой комбинации стержневых и ассоциативных сущностей, которая образует ассоциативный тип сущностей.
Обобщение – это абстракция, при которой множество схожих объектов рассматривается как родовой объект (подтипы и супертипы сущностей).
Агрегация покрытия – это абстракция, при которой разнородные объекты могут связываться по признаку компонентного вхождения в другие объекты.
Предшествование событий – это абстракция, которая отражает последовательность некоторых типов событий. Сущности типа событий содержат как часть своего описания некоторый момент или интервал времени.
RM/T содержит также расширяемый каталог для предоставления системе сведений о существующих связях между сущностями.
Характеристическая агрегация и обобщение могут быть описаны простой древовидной структурой, а ассоциативная агрегация и агрегация покрытия горизонтальными связями между объектами. Древовидная структура с горизонтальными связями в свою очередь может быть описана компонентами платформы XML (eXtensible Mark-up Language).
В модели данных XML допустимыми структурами являются деревья, узлами которых являются элементы, обладающие атрибутами и содержанием. Для адресации в дереве элементов используется язык XPath, в котором предполагается упорядоченность элементов дерева. Горизонтальные связи между элементами могут быть определены с помощью языков XLink и XPointer.
Для запросов по дереву элементов используется язык XQuery. Для преобразования структуры дерева элементов – язык XSLT. Объектная модель документа DOM описывает функционально полную модель данных XML, так как включает помимо структурных аспектов полный набор возможностей манипулирования данными.
2. Обеспечение динамики существования динамических систем
Сегодняшние подходы к моделированию данных (что реляционный, что объектный) сориентированы в первую очередь на статическое моделирование прикладной области и мало рассчитаны на её динамику. В лучшем случае используется практика «долго и тщательно разрабатывать схему данных, а уж потом фиксировать её и реализовывать в информационной системе», но не эксплуатируется тезис о том, что «введённые данные могут изменяться (а не только пополняться)». Поэтому сформулируем второе требование к разрабатываемой системе.
Требование 2
Система должна учитывать и поддерживать изменчивость и расширяемость схемы базы данных и темпоральную изменчивость данных в период эксплуатации информационной системы. Общая схема базы данных не должна декларироваться явным образом.
Это позволит вести непрерывную разработку приложений в процессе развития и использования информационной системы (обеспечение динамики существования динамических систем).
Для описания древовидной структуры с внешними связями, а также для удовлетворения этого требования в qWORD-XML реализуется модель данных XML, почему разработка и получила такое название.
В такой модели данных для XML-документов могут быть использованы различные языки описания схем, например, XDR, XML Schema, Relax NG, Schematron, которые имеют синтаксис XML. Некоторые языки поддерживают открытую модель информационного наполнения, что означает возможность добавления в XML-документ элементов и атрибутов элементов, которые не были предварительно описаны в продекларированной схеме документа. Следовательно, использование модели данных XML позволяет модифицировать схему данных, не только в процессе создание базы, но и в процессе её эксплуатации.
Темпоральная изменчивость учитывается за счёт поддержки системой темпоральных связей между элементами данных. Такие связи могут быть описаны с помощью языков XLink и XPointer.
Важно отметить такую особенность модели данных XML как отсутствие проблем с null-значениями. Если значение некоторого элемента или атрибута элемента неопределено, то этот элемент или атрибут просто отсутствует в XML-документе. Следовательно, модель данных XML естественным образом подходит для описания разреженных данных.
Фактически, в qWORD-XML иерархическая модель данных в варианте XML накладывается поверх реляционной, что с одной стороны позволяет сохранить строгость реляционной модели, а с другой привнести в неё дополнительную молекулярную семантику [4]. Таким образом, обеспечивается совмещение достоинств реляционной и дореляционных моделей.
Иерархия моделируется как дерево информационных объектов со специфичным для данного объекта набором понятий (реквизитов). Объекты соответствуют элементам XML-документа, а понятия – атрибутам элементов. С другой точки зрения объекты соответствуют реляционным отношениям, а понятия - атрибутам отношений.
Взаимосвязь объектов (дерево объектной структуры) строится за счет специальным образом структурированных суррогатных первичных ключей, то есть между данными реализуются виртуальные связи. Горизонтальные связи объектов могут быть получены за счет использования одинаковых значений понятий в разных объектах. Возможность описывать виртуальные объекты позволяет создавать отображения иерархии, не соответствующей спроектированному дереву.
Понятия объектов могут быть как структурированными (упорядоченное множество слов), так и неструктурированными (текст, рисунок, звук, видео). Слова значений структурированных понятий кодируются суррогатными кодами. Для слов значений создаются домены. Домен представляет собой два словаря: прямой и обратный. Прямой словарь связывает слово значения с суррогатным кодом, обратный словарь – суррогатный код со словом значения. Экземпляр объекта (кортеж отношения) связывает слова значений понятий из различных доменов через их суррогатные коды. Прямой словарь помимо того используется для индексации значений понятий, что позволяет осуществлять быстрый поиск. Кодирование слов значений также решает проблему избыточности данных, свойственную иерархической организации.
Следует также отметить, что в соответствии с [5] qWORD-XML можно классифицировать как естественную (native) модельную XML-СУБД для хранения дата-центричных (data-centric) XML-документов.
3. Оперативная и аналитическая обработка информации
Ещё с давних времён в обработке информации выделялись два уровня: оперативный и аналитический. На практике сегодняшние предприятия используют две отдельные базы данных: базу с оперативными данными, предназначенную для поддержки текущей деятельности организации, и базу с аналитическими данными, предназначенную для поддержки принятия решений.
Системы первого рода называют OLTP-системами (On-Line Transaction Processing – оперативная обработка транзакций), системы второго рода – системами поддержки принятия решения (СППР).
Эти системы в значительной степени отличаются по условиям функционирования и по требованиям к ресурсам. OLTP-системы обычно характеризуются жёсткими требованиями к производительности, предсказуемым уровнем общей нагрузки, небольшими единицами работы и высоким коэффициентом использования. СППР, напротив обычно имеют различные требования к производительности, непредсказуемый уровень нагрузки, большие единицы работы и характеризуются нерегулярным использованием. Теперь можно сформулировать третье требование к разрабатываемой системе.
Требование 3
С помощью qWORD-XML должна быть возможной эффективная реализация как оперативных, так и аналитических информационных систем.
Для обеспечения высокой производительности, очевидно, система не может строиться как надстройка над какой-либо SQL-СУБД или объектной СУБД. Вместе с тем разработка «с нуля» требует гораздо больше времени и усилий, в частности, необходима реализация механизма управления внешней памятью. Поэтому qWORD-XML реализуется как надстройка на M-системой [6, 7].
М – процедурный язык программирования без какой-либо жёсткой парадигмы. M стандартизирован как международными (ISO), так и американскими (ANSI, FIPS) органами стандартизации.
В M отсутствует декларирование переменных, единственный тип данных — это строка символов переменной длины. При вычислении выражений строка может быть проинтерпретирована как число или как логическое значение, поэтому декларации оказываются излишними.
Идея отсутствия деклараций в М естественным образом распространяется и на массивы. Каждая переменная может представлять собой массив с переменным числом измерений, причем память занимают лишь те переменные, которые были определены в программе. В качестве индексов массива разрешены любые строки символов. Переменные могут быть локальными (существующими лишь в оперативные памяти) и глобальными (существующими во внешней памяти). Глобальные переменные в М называются глобалами.
M содержит богатый набор функций для различных манипуляций с текстом. Управление последовательностью операций осуществляется традиционными методами, такими как вызов подпрограммы, ветвление или условное выполнение.
Доступ к локальным и к глобальным переменным обслуживается мощными функциями, обеспечивающими М функциональную полноту системы управления базой данных. Координация доступа к глобальным переменным в многопользовательской среде осуществляется с помощью блокировок, М поддерживает обработку транзакций и сетевое взаимодействие. В M могут быть реализованы все известные модели данных. Вместе с тем следует отметить, что M – это, прежде всего, язык для разработки СУБД, а не собственно СУБД.
Во всех известных М-системах глобалы реализуется через B*-деревья. B*-деревья являются эффективным механизмом управления внешней памятью. Эффективный механизм управления внешней памятью, реализуемой на логическом уровне через глобалы, является главным достоинством М-систем. В этой реализации нет ничего лишнего, благодаря чему решения на M выигрывают по производительности как у SQL-систем, так и у объектных систем.
Практически qWORD-XML реализуется как надстройка над М-системой, в качестве которой могут использоваться системы управления базами данных Cache’ от InterSystems Corporation [8] или GT.M от Sanchez Computer Associates [9]. Эти СУБД обладают всеми характеристиками промышленных систем: высокой производительностью, надёжностью, масштабируемостью, открытостью и переносимостью. Эффективный механизм управления внешней памятью обеспечивает исключительно высокую производительность в системах с большими и сверхбольшими базами данных и большим количеством одновременно работающих пользователей. Ещё один важный фактор – стоимость решения. Решения на базе M-систем выигрывают по стоимости у конкурентов.
Cache’ позиционируется разработчиком как постреляционная СУБД, сочетающая три модели данных и соответственно три доступа к данных: прямой (через глобалы), объектный и SQL-ный. «Постреляционность» реализована с помощью единой архитектуры данных. Она предусматривает единое описание объектов и таблиц, отображаемых непосредственно на многомерные структуры.
Объектное и SQL-ное представление данных находятся на одном логическом уровне. Cache’ может работать на различных платформах: Windows, Linux, основные реализации Unix, Open VMS. Cache’ имеет богатый набор интерфейсов к внешним инструментам проектирования и разработки приложений, работающим по SQL-ной и объектной технологии. Cache’ является коммерческим продуктом и на сегодняшний день наиболее функциональной СУБД на основе М-технологии, к тому же хорошо документированной, в том числе на русском языке.
GT.M может работать на таких платформах как Linux, основные реализации Unix, Open VMS. GT.M имеет открытую архитектуру, программы на M хранятся в виде обычных файлов и компилируются в объектные файлы. Объектные и SQL-ные интерфейсы поставляются на коммерческой основе.
Реализация GT.M на x86 Linux является свободно распространяемой вместе с исходными кодами. По своим встроенным инструментальным возможностям GT.M уступает Cache’, однако благодаря открытости системы имеется возможность реализации собственных интерфейсов.
В качестве платформы для qWORD-XML эти системы нас интересуют в описываемой разработке, прежде всего, благодаря эффективной реализации стандарта M, на котором реализуется процедурная часть qWORD-XML. На M реализуется и набор низкоуровневых операций, соответствующих интерфейсам DOM, для работы с древовидной структурой. Пользовательские хранимые процедуры и триггеры также создаются в виде программ на M, в которых можно использовать эти низкоуровневые операции.
Инструментальные средства Cache’ в значительной степени ускоряют разработку приложений, однако, при эксплуатации информационной системы в качестве сервера можно использовать любую из систем.
4. Универсальная инструментальная среда
Современные промышленные СУБД имеют набор интерфейсов к внешним инструментам проектирования и разработки приложений или снабжаются инструментальными средствами собственного производства. В общем случае мы имеем набор различных инструментов: собственно инструментарий СУБД, среду проектирования базы данных, среду разработки приложений, инструмент для поиска и аналитической обработки данных, генератор отчётов. Соответственно, для построения баз данных и их использования необходимо одинаково хорошо владеть всеми инструментальными средствами, которые могут сильно разниться друг с другом. Поэтому сформулируем четвёртое требование к разрабатываемой системе.
Требование 4
Система должна совмещать инструменты для построения и использования баз данных в рамках единого универсального визуального инструмента.
Это позволит значительно облегчить работу пользователей, ускорить разработку информационных систем и упростить их сопровождение.
Инструментальная среда qWORD-XML может называться универсальным браузером. Универсальный браузер реализуется на Delphi с использованием объекта SftTree фирмы Softel Vdm как клиентское приложение к M-серверу. Delphi – инструмент быстрой разработки приложений на базе объектноориентированного и визуального программирования. В качестве языка программирования используется Object Pascal – объектно-ориентированное расширение Pascal, синтаксис которого более описателен и более удобочитаем, чем, например, синтаксис языка C.
Расширение Object Pascal позволяет использовать всю мощь объектно-ориентированного подхода, который характерен для нового поколения объектно-ориентированных платформ, например, таких как Java. Исполняемые файлы Delphi компилируются чрезвычайно быстро, и скорость работы получившегося приложения сравнима с программами, написанными на C или C++. Таким образом, основными преимуществами Delphi являются простота и удобство разработки, а также высокая скорость работы созданных приложений.
В универсальном браузере взаимодействие с базой данных ведётся через отображения (экранные формы). Отображение описывает либо все дерево объектов, либо его часть в удобном для конкретного рабочего места виде. Отображение состоит в общем случае из дерева объектов, дерева экземпляров объектов и панелей инструментов. База данных проектируется визуально как набор взаимоувязанных объектов.
Экземпляры объектов в отображении показываются в виде дерева-таблицы. Каждый экземпляр объекта может занимать несколько строк и колонок дерева-таблицы для вывода значений своих понятий. Объекты нижнего уровня могут «встраиваться» в произвольные строки объектов верхнего уровня. Понятия одного объекта выводятся в ячейки дерева-таблицы. Помимо значений понятий, в ячейки могут выводиться константы (заголовки) служащие для наглядности представления информации. В описании отображений можно указать множество различных параметров, меняющих внешний вид окна, что позволяет получать традиционные виды экранных форм.
Экранное представление может быть создано с доступом ко всей информации, или за счет параметризации экранных форм, в виде последовательных вызовов экранов, содержащих часть информации в форме бланков или таблиц. Первый вариант удобен для аналитических задач, второй – позволяет построить традиционное оперативное приложение. Отображение также может интерпретироваться как выходная печатная форма. Это позволяет использовать отображения в качестве конструкторов печатных форм. Различных экранных представлений (отображений) базы данных может быть создано сколько угодно.
Универсальный браузер обеспечивает всё работу пользователя с базой данных:
• проектирование структуры базы данных и построение приложений;
• просмотр, ввод и коррекцию информации;
• поиск данных по произвольным запросам;
• аналитическую обработку информации и её графическую интерпретацию;
• формирование выходных печатных форм.
Заключение
Помимо решения перечисленных задач инструмент qWORD-XML имеет ряд важных особенностей и обеспечивает:
• методы идентификации пользователя позволяют создавать различные взгляды на информацию в базе;
• многоуровневую защиту доступа к информации;
• возможность синхронизации информации в территориально-распределенных базах средствами электронной почты;
• различные варианты доступа к базе через Internet;
• возможность интеграции в систему внешних баз данных.
Исходя из сказанного, qWORD-XML представляет собой удобную среду для быстрой разработки баз данных и приложений. Поддерживаемая в qWORD-XML иерархическая модель является для человека более естественным отражением семантики предметной области. Схема базы данных в qWORD-XML не декларируется явным образом и может изменяться в процессе развития и эксплуатации информационной системы. qWORD-XML может использоваться для реализации как оперативных, так и аналитических систем. В рамках универсального браузера совмещаются инструменты для построения и использования баз данных.
Применение разработанного инструмента qWORD-XML оказывается наиболее эффективным для реализации информационных проектов, связанных с использованием значительных по объему массивов данных, например, о населении. Так с помощью qWORD-XML реализуются Автоматизированная информационно-аналитическая система проблемам инвалидности и инвалидов (АИС МСЭ) и Информационно-аналитическая система органов социальной защиты населения субъекта федерации (АИС «Соцзащита»), которые изначально, по объективным причинам, являлись «плохо обусловленными» или «недостаточно регламентированными в своей организации». Таким образом, qWORD-XML открывает технические возможности проектирования систем, ранее практически недоступных для автоматизации.
Также с помощью qWORD-XML реализуются Автоматизированная информационно-справочная и аналитическая система «Реабилитационный восстановительный центр» (РВЦ), Автоматизированная информационная система «Станция переливания крови» (АИС «СПК»), корпоративные автоматизированные системы учёта для служб материально-технического снабжения.
Литература:
1. Кодд Э.Ф. Расширение реляционной модели для лучшего отражения семантики. http://www.osp.ru/dbms/1996/05/163.htm
2. Дейт К. Дж. Введение в системы баз данных, 7-е издание. : Пер. c англ. – М.: Издательский дом “Вильямс”, 2002.– 1072 c.
3. Дейт К. Дж., Дарвен Х. Основы будущих систем баз данных. Третий манифест. Изд. 2-е. : Пер. с англ. – М.: Янус-К, 2004. – 656 с.
4. Веселов В.В., Долженков А.Н. Опыт построения XML-СУБД. – «Открытые Системы», №06/2002.
5. Bourret R. XML and Databases. http://www.rpbourret.com/xml/XMLAndDatabases.htm
6. Гессе С., Кирстен В. Введение в язык программирования М. – СПб.: 1996 – 277 с.
7. Кирстен В. От ANS MUMPS к ISO M. – СПб: 1995 – 277 с.
8. http://www.intersystems.ru/cache/index.html
9. http://www.sanchez-gtm.com/ и http://sourceforge.net/projects/sanchez-gtm