Уважаемые читатели!

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

С уважением, Сергей Кузнецов


Modeling Object/Relational Databases

Seth Grimes, consultant in database and Internet design and development with Alta Plana Corp., www.altaplana.com, grimes@access.digex.net

( DBMS, vol.11, N 3, March 1998. Оригинал статьи можно найти по адресу www.dbmsmag.com/9804d13.html)

Добавление новых объектных возможностей к реляционным системам в объектно-реляционных системах управления базами данными (ОРСУБД) серьезно влияет на технологию современных информационных систем. Будучи эволюционным по своей природе, объектно-реляционный подход унаследовал транзакционные возможности и эффективность своего реляционного родителя, а также гибкость объектно-ориентированного кузина. Проектировщики баз данных могут работать со знакомыми табличными структурами и языками определения данными (DDL - Data Definition Languages), усваивая при этом новые возможности управления объектами. Языки запросов и процедурные языки ОРСУБД также знакомы: SQL3, процедурные языки, поставляемые производителем, ODBC, JDBC и интерфейсы вызовов являются расширениями языков и интерфейсов реляционных СУБД. Хорошо известны лидеры - IBM, Informix и Oracle.

Но как обстоят дела со средствами проектирования баз данных? Расширены ли они соответствующим образом, чтобы помочь проектировщикам строить объекты баз данных, а не только структуры данных? Позволяют ли эти средства моделировать весь набор новых возможностей - определяемые пользователями типы, функции, операции, сложные объекты и наследование равно как и использовать готовые объектные модули в форме Extenders, DataBlades и Cartridges? Производят ли средства генерации физической схемы хорошие скрипты DDL? Понимают ли они язык SQL3 и нюансы системных каталогов IBM DB2 Universal Database, Informix Dynamic Server (с опцией Universal Data) и Oracle8?

В статье представлен обзор объектно-реляционных возможностей, требуемых от средств моделирования, очерчены проблемы и проанализированы методологии моделирования, проанализированы будущие направления развития инструментальных средств. Описываются три не связанных с производителями СУБД системы: OR-Compass (Logic Works Inc. - www.logicworks.com), InfoModeler 3.1 (InfoModelers Inc., www.infomodellers.com, теперь компания является подразделением компании Visio Corp., www.visio.com) и Universal Moleler 1.0 (Silverrun Technologies Inc., www.silverrun.com).

Свойства объектно-реляционного подхода

В объектно-реляционных базах данных информация организуется в виде знакомых реляционных табличных структур. Объектно-ориентированные реализации предполагают поддержку реляционной модели данных. ОРСУБД являются постепенным развитием предшествующих им реляционных СУБД. В отличие от чисто объектных баз данных, переход к объектно-реляционным системам не требует массового перепрограммирования. Подобно тому как компилятор Си++ при отсутствии классов понимает текст на языке Си++, так и с учетом главным образом синтаксических отличий SQL-92 от SQL3 ОРСУБД должны поддерживать существующие реляционные схемы. Однако в текущих реализациях имеются пробелы, такие как отсутствие поддержки репликации в Informix Universal Data Option или наследования в Oracle8, так что детали реализации нужно держать в уме.

Наиболее важными новыми объектно-реляционными возможностями являются определяемые пользователями типы (UDT - User-Defined Types), определяемые пользователями функции (UDF - User-Defined Functions) и инфрастуктура (методы индексации и доступа, а также усовершенствованные способы оптимизации). Определяемые пользователями типы классифицируются на уточненные (distinct), непрозрачные (opaque) и строчные (составные).

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

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

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

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

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

Проблемы моделирования

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

Мультимедийные включают аудио, видео, графику и форматированный и неформатированный текст. Структуры данных сами по себе не очень интересны; для ОРСУБД, если не принимать во внимание определенные методы доступа, все они вкладываются в однотипные большие двоичные объекты (BLOBs - Binary Large Objects). Более интересна новая возможность создания серверных функций для индексирования, поиска и обработки хранимых мультимедийных данных. Например, Web DataBlade Informix включает не только набор структур данных (шаблонов) для мультимедийных страниц приложения, но также и функции для обработки SQL-запросов, переменных и процедурных тегов, встроенных в HTML. Страницы приложения сохраняются с применением непрозрачного UDT с именем html, у которого имеются методы для управления и обработки страниц. Исходный тип - это просто текст; интересны именно методы.

Временные ряды - упорядоченные массивы значений, индексируемые по времени, являются представительным примером сложного типа данных. Во всех основных ОРСУБД имеется (или будет иметься) один или более Cartridge, Datablade или Extender для работы с временными рядами. Можно также построить и свои собственные структуры и методы, поддерживающие временные ряды. Независимо от источника тип временных рядов должен иметь имя и другие описательные поля, а также один или более векторов значений, индексирующих данные. Значения серий более недоступны через нерасширенный SQL; для извлечения и обработки значений и рядов целиком обычно нужны функции и операции, например, функция GETVALUE с параметрами SERIESNAME и DATE. Можно было бы перегрузить операцию PLUS для сложения серии со скалярным значением и для сложения значений двух серий.

Эти примеры показывают, что при использовании объектно-реляционного подхода моделируются и данные, и процессы: какой информацией мы располагаем и что собираемся с ней делать. В реляционных же базах данных поддерживается лишь ограниченная инкапсуляция операций и процессов. Очевидно, что методологии и средства проектирования теперь должны моделировать и данные, и операции. Кроме того, эти средства должны давать возможность работы со встроенными типами и методами и расширять модель определенными пользователями типами и функциями и модулями Cartridge, DataBlade и Extender.

Методологии моделирования

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

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

Реляционное и объектно-реляционное моделирование

Подход "сущность-связь" (ER - Entity-Relationship) является традиционным в традиционном реляционном моделировании; информационная инженерия (IE - Information Engineering) и IDEF1X представляют собой варианты этого подхода с методологическими и нотационными различиями. Обеспечивая реляционную поддержку ОРСУБД, все эти три подхода приспособлены для моделирования объектно-реляционных баз данных, но им свойственны серьезные ограничения концептуального моделирования и неспособность моделирования процессов.

Моделирование "объект-роль"

В традиционных методологиях моделирования реляционных баз данных обычно пренебрегают поддержки концептуального уровня. Моделирование "объект-роль" (ORM - Object-Role Modeling) - это привлекательная методология, направленная на отрицание этого правила. Понятия ORM известны в течение ряда лет, хотя методология стала привлекать широкое внимание относительно недавно в связи с работой Терри Хаплина (Terry Haplin) по реализации средства проектирования InfoModeler. Формальный язык моделирования "объект-роль" (FORML - Formal Object-Role Modeling Language) основан на концепциях ORM и поддерживает систематический и строгий подход к моделированию бизнес-концепций. Концептуальный моделер FORML позволяет вербализовать данные, представить их в символической или диаграммной форме, ограничить концептуальную модель фактами, иллюстрирующими утверждения и проверить правильность модели.

Унифицированный язык моделирования

Имеется новая альтернатива моделирования баз данных - унифицированный язык моделирования (UML - Unified Modeling Language), предложенный международным консорциумом Object Management Group. Разработка UML возглавлялась компанией Rational Software Corp. ( www.rational.com) и была основана на унифицированной модели (Unified Model) программных объектов, называемой по другому компонентным моделированием масштаба предприятия (ECM - Enterprise Component Modeling). ECM представляет собой комплексный подход, включающий выработку концепций и анализ требований, концептуальное моделирование с отображением модели в классы и компоненты, а также фазы детального проектирования. Однако классы и методы UML лишь приблизительно эквивалентны типам и методам ОРСУБД.

Средства моделирования для объектно-реляционных СУБД

Ниже кратко обозреваются три средства моделирования объектно-реляционных баз данных - OR-Compass (Logic Works), InfoModeler (Visio Corp.) и Universal Modeler (Sileverrun Technologies Inc.). Каждое из этих средств позволяет специфицировать физические свойства базы данных - внешнюю память, режимы блокировок и т.д. Они также генерируют физические схемы баз данных напрямую в базе данных или (за исключением InfoModeler) в файлах, содержащих операторы определения данных.

OR-Compass

В флагманском продукте компании Logic Works ERwin/ERX реализованы средства моделирования в стиле "сущность-связь" с поддержкой нотаций IDEF1X и IE. Обеспечивается прямая и обратная инженерия для всех ведущих реляционных СУБД, синхронизация логических моделей и физических схем. Система ModelMart обеспечивает управление моделью при ее групповой разработке. Компонент ERwin/OPEN поддерживает связи со средствами разработки приложений, включая PowerBuilder и VisualBasic. Кроме того, Logic Works предлагает средство обмена метаданными с системой моделирования объектов компании Retional Rose.

OR-Compass - это новый продукт, который не является простым расширением ERwin/ERX, хотя и допускается импортирование ERX-модели. OR-Compass 1.0 работает с СУБД компании Informix ( www.informix.com), но в начале 1998 г. обещана поддержка Oracle8 ( www.oracle.com), DB2 Universal Database компании IBM ( www.ibm.com) и Adaptive Server компании Sybase ( www.sybase.com). В OR-Compass используется методология моделирования "сущность-связь" в нотации IDEF1X.

Компоненты Row Type Wizard (RTW) и Functional Index Wizard (FIW) помогают моделировать объектно-реляционные свойства. RTW ориентирован на поддержку проектировщиков, мигрирующих от реляционных к объектно-реляционным базам данных, и позволяет произвести строчный тип на основе выбранных столбцов таблицы. Компонент не дает возможности просто определить строчный тип. FIW кажется более полезным, позволяя определить индекс для таблицы на основе вычисляемого поля.

Полезным механизмом являются ModelBlades. Эти модули состоят из определений и документации объектов, входящих в состав DataBlades компании Informix, которые могут импортироваться из файлов ModelBlade или скриптов DDL (Data Definition Language). Импортируемые объекты могут включаться в определяемые пользователями модели.

InfoModeler

Средство моделирования InfoModeler 3.1 было первым, поддерживающим ОРСУБД на основе связей с продуктами компании Informix. В этой версии также обеспечивается возможность генерации схем для DB2 Universal Database. Отличительной особенностью системы является поддержка концептуального моделирования в стиле FORML. Кроме того, поддерживаются логические реляционные модели ER и IDEF1X.

Серьезный недостаток InfoModeler состоит в наличии очень небольшого числа встроенных типов. Чтобы получить доступ к полному набору объектно-реляционных типов и функций, обеспечиваемых непосредственно ОРСУБД или расширителями (Cartridge, DataBlade, Extender), необходимо иметь подключение к "живой" базе данных, что ограничивает возможность автономной работы. Подключение к базе данных требуется и для проведения прямой и обратной инженерии, т.е. невозможно обойтись только DDL-скриптами.

InfoModeler пока не обеспечивает возможность моделирования серверных функций, а именно они вместе с определяемыми пользователями типами составляют суть объектно-реляционного подхода. Система позволяет увидеть функции, которые уже определены в базе данных, но только при наличии подключения к ней. Ситуация похожа на "Уловку-22": можно работать только с уже существующими функциями, они не могут существовать, пока их не создали, а создать их InfoModeler не позволяет. Компания обещает устранить этот недостаток к будущих выпусках.

Universal Modeler

Этот продукт компании Siverrun представляет собой набор интероперабельных средств, включающий BPM для моделирования бизнес-процессов, ERX (Entity Relational Expert) для концептуального реляционного моделирования и RDM для реляционного (физического) моделирования данных. Эти средства связаны со многими реляционными СУБД и средствами разработки, включая Delphi и PowerBuilder. В качестве репозитория модели можно использовать Model Management Center компании Silverrun.

К моменту написания этой статьи Universal Modeler 1.0 поддерживал только Informix. Компания обещала вскоре обеспечить поддержку DB2 Universal Database, а в следующей версии RDM обещаны расширения, поддерживающие Oracle8 и связывающие RDM с компонентом объектного моделирования.

В Universal Modeler можно использовать три модельных нотации: IE, Silverrun (вариант ER) и UML. Можно создавать определяемые пользователями типы, в том числе и в визуальном режиме. Допускается импортирование информации о DataBlades (здесь эта информация называется SilverBlade). Объекты SilverBlade могут использоваться в моделях. Однако возможности Universal Modeler для определения серверных функций ограничены.

Другие средства моделирования

В PowerDesign 6.1 компании Sybase добавлена поддержка абстрактных типов данных. Полная поддержка объектов и моделирования в духе UML ожидается в середине 1998 г. Выпуск Object Database Designer компании Oracle - основанного на UML продукта, генерирующего классы Си++ и схему базы данных, расширенной объектами, ожидается в начале 1998 г. Весной 1998 г. ожидается выпуск Designer/2000 с возможностями объектно-реляционного моделирования. Компания Popkin Software & Systems ( www.popkin.com) собирается построить средство объектно-реляционного моделирования на основе возможностей объектного моделирования (UML) системы SA/Object Architect.

Средства категории ECM нужны для отображения классов и методов в соответствующие объектно-реляционные типы и функции. Кроме того, эти средства должны давать проектировщикам выбор между размещением методов в прикладных классах и их инкапсуляцией в базе данных. Средства ECM включают Paradigm Plus компании Platinum Technology Inc. ( www.platinum.com), Rational Rose и Select Enterprise компании Select Software Tools ( www.selectst.com). Продукт компании Rational Software уже в состоянии генерировать схемы для Oracle8, хотя компания рассматривает этот как вспомогательный и не заменяющий средства моделирования баз данных. Основанный на UML продукт ParadigmPlus в настоящее время позволяет моделировать и производить прямую инженерию объектных расширений Oracle8 на фазах детального проектирования и конструирования. ParadigmPlus создает логические и физические модели, которые включают абстрактные типы данных, атрибуты, методы, и отображает их в физические схемы и программные классы Oracle8. Между объектной моделью приложения и моделью базы данных устанавливаются мосты на основе "общей метамодели".

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