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

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

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

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

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

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

В 1997 году фирмой Logic Works (в 1998 году слилась с PLATINUM technology) выпущен специализированный инструмент проектирования ОРСУБД - 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).

Рисунок.1. Диалог задания свойств типа.

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

Рисунок.2. Диалог создания типизованной таблицы (показан список типов Row).

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

Рисунок.3. Тип данных Address и типизованная таблица, созданная на его основе.

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

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

Рисунок.4. Пример наследования типизованных таблиц.

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

Рисунок.5. Диалог задания свойств абстрактного типа (Opaque type).

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

Рисунок.6. Диалог задания свойств функционального индекса.

Поддержка 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. Выпуск OR*Compass будет прекращен.


Interface Ltd.

Ваши замечания и предложения направляйте по адресу: webmaster@interface.ru

Reklama.Ru. The Banner Network.