Источник: DBMS, vol.11, N 3, March 1998.
Авторы: Seth Grimes
Добавление новых объектных
возможностей к реляционным системам в объектно-реляционных системах управления
базами данными (ОРСУБД) серьезно влияет на технологию современных
информационных систем. Будучи эволюционным по своей природе,
объектно-реляционный подход унаследовал транзакционные возможности и
эффективность своего реляционного родителя, а также гибкость
объектно-ориентированного кузина. Проектировщики баз данных могут работать со
знакомыми табличными структурами и языками определения данными (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) в файлах, содержащих операторы
определения данных.
В
флагманском продукте компании 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 3.1 было первым, поддерживающим ОРСУБД на основе
связей с продуктами компании Informix. В этой версии также обеспечиваетс
возможность генерации схем для DB2 Universal Database. Отличительной
особенностью системы является поддержка концептуального моделирования в стиле
FORML. Кроме того, поддерживаются логические реляционные модели ER и IDEF1X.
Серьезный
недостаток InfoModeler состоит в наличии очень небольшого числа встроенных
типов. Чтобы получить доступ к полному набору объектно-реляционных типов и
функций, обеспечиваемых непосредственно ОРСУБД или расширителями (Cartridge,
DataBlade, Extender), необходимо иметь подключение к "живой" базе
данных, что ограничивает возможность автономной работы. Подключение к базе
данных требуется и для проведения прямой и обратной инженерии, т.е. невозможно
обойтись только DDL-скриптами.
InfoModeler пока не обеспечивает возможность моделирования
серверных функций, а именно они вместе с определяемыми пользователями типами
составляют суть объектно-реляционного подхода. Система позволяет увидеть
функции, которые уже определены в базе данных, но только при наличии подключени
к ней. Ситуация похожа на "Уловку-22": можно работать только с уже
существующими функциями, они не могут существовать, пока их не создали, а
создать их InfoModeler не позволяет. Компания обещает устранить этот недостаток
к будущих выпусках.
Этот
продукт компании 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. Между объектной моделью приложения и моделью базы данных
устанавливаются мосты на основе "общей метамодели".
В
заключение автор отмечает, что представленные средства моделировани имеют много
общего с тремя основными ОРСУБД: они незрелые и функционально неполные. Общим
дефектом рассмотренных средств является недостаточная методологическа поддержка
при принятии решения об использовании типов.