oldi

PLATINUM OR Compass — инструмент проектирования объектно-реляционных БД

Сергей Маклаков

 

Прямое и обратное проектирование

 

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

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

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

Появившиеся не так давно объектно-реляционные СУБД (ОРСУБД) совмещают объектную и реляционную технологии, одновременно обеспечивая возможность работы как со сложными данными, так и со сложными запросами, что в значительной мере решает проблемы РСУБД и ООСУБД. С одной стороны, они поддерживают стандартный SQL, с другой — обеспечивается создание, хранение и модификация объектов сложной структуры. Появление на рынке объектно-реляционных СУБД нового поколения, созданных фирмами Informix, Oracle, IBM и Sybase, существенно расширяет возможности обработки данных, вместе с тем драматически усложняя структуру БД. В дополнение к стандартным данным, таким как текст и числа, обычно хранящимся в реляционных СУБД, ОРСУБД позволяют хранить такие сложные объекты, как изображения, карты, документы, видео, и др. в естественном формате. ОРСУБД содержат также новые типы связей между объектами БД. Эти особенности не позволяют эффективно проектировать ОРСУБД с помощью традиционных, основанных на построении диаграмм «сущность — связь», или объектно-ориентированных, инструментов.

В 1997 году фирмой Logic Works (в 1998 году слилась с PLATINUM technology, inc. ) выпущен специализированный инструмент проектирования ОРСУБД — OR Compass, который в полной мере поддерживает работу INFORMIX-Universal Server (IUS). OR Compass — достаточно полная среда объектно-реляционного моделирования, позволяющая разрабатывать и генерировать все аспекты ОРСУБД. Техника моделирования OR Compass основана на стандарте общеизвестного средства моделирования PLATINUM ERwin и дополнена характерными для объектно-реляционной модели конструкциями, такими как наборы (collections), строчные типы (row types), функции (functions), и др.

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

Рассмотрим основные возможности OR Compass по поддержке объектно-реляционных БД.

Поддержка реляционной модели. Так же как и PLATINUM ERwin, OR Compass поддерживает графическое моделирование сущностей, атрибутов, идентифицирующих и неидентифицирующих связей. С его помощью можно создать классическую диаграмму «сущность — связь» (ERD).

Поддержка специальных типов данных. Большинство реляционных СУБД поддерживает атомарные, то есть подразумевающие единственное значение типы данных, которые определяются производителем СУБД. Эти встроенные типы данных позволяют эффективно работать с текстом, числовыми значениями, но не позволяют оперировать более сложными структурами данных, такими как графические изображения, большие текстовые объекты, аудио- и видеозаписи, сложные (имеющие множественные значения) данные. OR Compass поддерживает встроенные типы данных, существующие в предыдущих версиях INFORMIX, типы данных, определяемые пользователем, — Distinct type (типы данных, основанные на встроенных типах), а также типы Opaque type и Row type. Например, организация может вести расчеты с поставщиками в разной валюте. Тогда на основе типа данных «money» можно создать тип данных «Доллар США» и «Российский рубль» и ассоциировать созданный тип данных с соответствующей колонкой. Интерфейс OR Compass позволяет легко создать новый тип данных и описать его свойства (рис. 1).

Набор (Collection) — сложный тип данных, позволяющий хранить множественные значения в одной колонке. Этот тип данных может принадлежать к одному из трех видов — set (набор уникальных значений), multiset (набор неуникальных значений) и list (набор упорядоченных неуникальных значений). Например, в таблице «Сотрудник» можно определить колонку «Телефоны» типа set.

Тип-запись (Row type) — сложный тип данных, который позволяет хранить в одной колонке множественные данные разных типов. Он состоит из групп связанных элементов данных, называемых полями. Например, можно определить тип данных «Адрес», состоящий из обычных элементов адреса (полей типа Row) — почтового индекса, страны, района, города, улицы, дома, квартиры. Каждое такое поле должно быть описано при определении типа. Тип данных Row может быть именованным и неименованным. Неименованный тип определяется как тип данных колонок. После создания нового неименованного Row-типа (меню Insert/Datatype/Row type) и описания полей (меню Insert/Datatype/Row type field) можно присвоить этот тип какой-либо колонке (диалог Column Property Shield). Именованный тип создается как объект БД, на основе которого создается типизированная таблица, отображаемая в модели на уровне таблиц и позволяющая наглядно представить поля и правила для каждого типа. При внесении новой таблицы типа необходимо указать именованный тип, на основе которого создается таблица.

Для создания типа-записи может быть использован диалог Row Type Wizard, позволяющий задать свойства типа в диалоговом режиме.

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

OR Compass позволяет связывать таблицы типов и обычные таблицы (внешние ключи при этом не мигрируют, их необходимо описывать вручную), а также получать новую типизированную таблицу из существующей. Иерархию таблиц типов можно получить и из иерархии типов-записей. Таблица-потомок может включать все поля таблицы-предка; кроме того, потомок может иметь свои собственные поля, которых у предка нет. Таблица-потомок может также содержать другие свойства предка — правила ссылочной целостности, триггеры, индексы и др. Наследование таблиц наглядно отображается в модели OR Compass.

Абстрактный тип (Opaque type) — полностью инкапсулированный тип данных, который не может быть получен из встроенных типов данных. Для доступа и манипулирования данными такого типа должны быть определены соответствующие функции и индексы, включая функции сравнения и арифметические функции. В модели OR Compass можно также использовать DataBlade со встроенными данными типа Opaque и соответствующими объектами и функциями. Для создания абстрактного типа необходимо имя и область определения, параметры хранения и требуемые функции.

Функциональные индексы (индексы, значения которых вычисляются из предварительно заданных функций). При описании соответствующей индексу функции необходимо задать ее имя, параметры (колонки таблицы) и возвращаемое значение, которое записывается как индекс. Примером значения функционального индекса может быть стаж работы сотрудника, который вычисляется из даты поступления и текущей даты. OR Compass позволяет задать имя функционального индекса, его описание, список аргументов, возвращаемое значение, свойства, определяемые пользователем, и т.д.

Поддержка DataBlade. DataBlade — набор объектов, типов данных и подпрограмм, которые разрабатываются и продаются для использования с БД INFORMIX-Dynamic Server совместно с Universal Data Option (INFORMIX). DataBlade обеспечивает расширенные функциональные возможности базы данных, например, для обработки графики, решения финансовых задач или работы с видеоданными.

OR Compass может импортировать типы данных, объекты и функции в DataBlade. В дополнение к моделированию данных, использующему DataBlade-компоненты, можно провести обратное проектирование приобретенных DataBlade и представить их структуру в виде графической модели. Можно также самостоятельно сгенерировать по модели собственный DataBlade. Для импорта DataBlade в вашу модель данных необходимо импортировать либо файл SQL DDL, используемый для создания DataBlade (Меню File \ Import DataBlade from Script), либо файл ModelBlade (.mbf), поставляемый производителем DataBlade.

После импорта информации об объектах DataBlade в модель последние становятся доступны для просмотра в окне Model Explorer.

 

В начало

В начало

Прямое и обратное проектирование

OR Compass использует графическую модель для генерации скрипта на стандартном SQL Data Definition Language (DDL) или для генерации БД, а также поддерживает специфические конструкции для Informix.

В процессе обратного проектирования OR Compass извлекает информацию из базы данных или файл сценария, включая таблицы, столбцы, представления (view), отношения, триггеры, хранимые процедуры, определяемые пользователем типы данных и т.д., и автоматически создает модель, основанную на этой информации. На базе этой модели можно создавать документацию системы и перепроектировать структуру базы данных в соответствии с изменяющимися требованиями. Можно установить режим выборочного обратного проектирования, когда извлекаются не все объекты, а только специфические классы объектов базы данных, типа таблиц или процедур, или объекты базы данных, основанные на определенном имени владельца и области хранения.

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

КомпьютерПресс 1'1999