Сайт Информационных Технологий

Каталог >> Базы Данных >> ОО технологии >> Объектно-ориентированное проектирование самоструктурирующихся баз

А.О.Поляков, И.А.Семёнов

Объектно-ориентированное проектирование самоструктурирующихся баз

Любая СУБД основана на определенной модели данных. Модель данных должна быть отображена в компьютерно-ориентированную даталогическую модель, “понятную” СУБД. В процессе развития теории и практического использования баз данных, а также средств вычислительной техники, создавались СУБД, поддерживающие различные даталогические модели.

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

Следствием попыток овладеть с помощью реляционного подхода высокосложной моделью данных стало определённое разочарование. Дело в том, что с помощью плоских таблиц невозможно формализовать семантические взаимосвязи. Наш мир состоит из сложных объектов и связей. Бартельс, пионер в области объектно-ориентированного программирования в Германии, в нескольких обзорных статьях приводит чрезвычайно удачное сравнение: “едва ли кому-нибудь придет в голову идея разобрать свой автомобиль (как пример сложного объекта), прежде чем поместить его в гараж (база данных), на отдельные детали (записи, поля), разложить их там, а на следующее утро в обратном порядке снова собрать свою машину”.

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

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

Однако, это существенно ограничивает заявленную мощь объектно-ориентированного программирования, т.к. реляционное наследие сказывается на всей работе СУБД.

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

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

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

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

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

При разработке информационной системы на одном из начальных этапов встает вопрос выбора среды разработки.

Перечислим основные соображения, которых придерживаются при этом выборе. Это вид платформы, для которой будет проводиться разработка, способ программирования, который определяется самим средством разработки (3GL или 4GL), и возможность объектноориентированного программирования.

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

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

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

Итак, в основе концепции Cache лежит принцип многомерного представления данных. Рассмотрим пример: пусть у нас есть данные о продаже программного обеспечения за последний год. Учет продаж ведется по месяцам года, группам продуктов и типам клиентов. Естественно представить эти данные в виде куба, имеющего три измерения: время, группа продуктов и тип клиентов. В таком представлении, имея возможность суммировать данные по любому измерению, мы легко можем анализировать продажи в разрезе любого измерения. Например, получим динамику продаж по времени, и проанализируем долю каждой группы продуктов в общей сумме продаж.

С целью дальнейшего повышения производительности обработки транзакций, в БД Cache реализована концепция “разреженных массивов”. Пространство базы данных занято лишь реальными данными - пустые данные не занимают места вообще. Эта действительно “лаконичная” технология базы данных повышает производительность и масштабируемость, сокращая число операций чтения/записи.

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

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

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

Рассмотрим некоторые вопросы работы создания предметной области.

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

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

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

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

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

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

Вся информация qWORD представлена в наглядном виде и с достаточной для анализа глубиной. qWORD даёт возможность осуществлять весь комплекс работ со структурой информационной среды, опираясь на объектно-ориентированные методы проектирования.

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

Вся информация о структурах проектируемой информационной среды находится в специализированных массивах данных (фрейме и словаре) ГС. Этими мета-данными оперируют все подсистемы комплекса, на их основе формируются методы ввода информации, её обработки, анализа и вывода. Благодаря такому подходу обеспечивается целостность и устойчивость генерируемых структур информационной среды, возможность дальнейшей работы по корректировке и усовершенствованию, как её логики, так и физического представления в виде таблиц баз данных.

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

Подведём итоги статьи:


Site of Information Technologies
Designed by  inftech@webservis.ru.