Средства автоматизированного проектирования структур баз данных

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

ER/Studio фирмы Embarcadero Technologies по своему назначению сходен с ErWin представляет собой специализированное средство проектирования данных и не содержит в своем составе инструментов для объектно-ориентированного моделирования

Таблица 3.3. Средства проектирования структур баз данных

CASE-средство

Производитель

URL

Designer 2000

Oracle

http://www.oracle.com/

ErWin

Computer Associates

http://www.cai.com/

PowerDesigner

Sybase

http://www.sybase.com/

ER/Studio

Embarcadero

http://www.embarcadero.com/

System Architect

Popkin Software

http://www.popkin.com/

Visible Analyst

Visible Systems

http://www.visible.com

Visio Enterprise

Microsoft

http://www.microsoft.com/

или моделирования бизнес-процессов [17]. Список поддерживаемых СУБД у этого продукта достаточно широк и включает все наиболее популярные серверные и настольные СУБД. В отличие от ErWin, последняя версия ER/Studio поддерживает новые типы данных SQL Server 7.

К особенностям пакета относится написание макросов на SAX Basic (клон Visual Basic for Applications) для выполнения однотипных операций, например добавления стандартных полей к вновь создаваемым сущностям. Этот же язык позволяет генерировать стандартные триггеры и хранимые процедуры для вставки, удаления, изменения записей. Можно даже отлаживать код на этом языке и обращаться к свойствам сущностей для конструирования серверного кода. Однако, в отличие от ErWin, ER/Studio не позволяет добавлять к каждой таблице свои шаблоны триггеров или просматривать код конкретного триггера в процессе разработки модели; чтобы получить код одного триггера, нужно сгенерировать скрипт для всей модели.

Модели ER/Studio сохраняют не только в виде DDL-скрип- та, но и в формате XML. Предусмотрена возможность создания репозитария для их хранения в любой серверной СУБД. ER/Studio позволяет импортировать модели ErWin, но при импорте теряются связи шаблонов серверного кода с конкретными таблицами, и не все макросы ErWin корректно преобразуются в макросы SAX Basic.

Программный пакет также предусматривает генерацию Java-классов для клиентских приложений.

Кроме того, ER/Studio является COM-сервером, т. е. пригоден для использования в других приложениях с возможностью просмотра и редактирования моделей данных, а также для создания других решений на его основе [17].

System Architect 2001 фирмы Popkin Software представляет собой универсальное CASE-средство, позволяющее осуществить не только проектирование данных, но и структурное моделирование [18]. Средство создания ER-диаграмм является одной из составных частей этого продукта.

System Architect 2001 поддерживает СУБД практически всех ведущих производителей, включая Oracle (Oracle 8), Sybase, DB2, SQL Server, IBM (AS400, DB2), Informix, Sybase, Access, dBASE, Paradox и др. В процессе логического моделирования позволяет проверять модель на соответствие правилам проектирования БД (на соответствие ее первой, второй или третьей нормальным формам). При генерации DDL-скрипта можно сгенерировать триггеры (в том числе и нестандартные).

Все компоненты System Architect позволяют документировать процесс работы над проектом, включая техническое задание, план тестирования и др.

Модели System Architect 2001 при необходимости сохраняют в репозитарии, однако в отличие от традиционных репозитариев с более или менее стандартной структурой хранимых данных, этот является настраиваемым — к сохраняемым объектам можно добавлять дополнительные свойства, определенные пользователем.

System Architect обладает встроенным языком Visual Basic for Application, что позволяет создавать разнообразные решения на базе этого продукта, включая автоматическую генерацию моделей и проектной документации.

System Architect 2001 при необходимости генерирует код клиентских приложений для Visual Basic, Delphi и PowerBuilder (на сегодняшний день это практически единственное CASE-средство, поддерживающее генерацию кода Delphi), классы C++, а также код и текстовые экранные формы COBOL [18].

Visible Analyst фирмы Visible Systems Corporation — весьма популярный продукт; широко известны также ранее производимые компанией CASE-средства EasyER и EasyCASE — предшественники Visible Analyst [19].

Продукт выпускается в трех модификациях. Первая — Visible Analyst DB Engineer, включает средства проектирования данных; Visible Analyst Standard, кроме проектирования БД, позволяет осуществлять структурное моделирование; третья модификация — Visible Analyst Corporate, помимо указанных выше функций, осуществляет также объектно-ориентированное моделирование.

Visible Analyst поддерживает довольно широкий спектр СУБД с точки зрения генерации серверного кода, включая Oracle 7, Sybase SQL Server (System 10 и 4.x); Informix, DB2, Ingres. Последние версии многих серверных СУБД (Oracle 8, Microsoft SQL Server 6.5/7/2000, последние версии серверов Sybase) в этом списке пока отсутствуют.

Для Informix и DB2 указанный продукт позволяет генерировать DDL-скрипты, учитывающие специфические особенности организации физической памяти наиболее популярных серверных СУБД, такие как управление табличным пространством, размером экстентов, режимами блокировки данных, степенью заполнения данными (fill factor), а также создавать кластеризованные индексы и генерировать триггеры для выполнения стандартных операций. Из этих же СУБД можно производить непосредственно обратное проектирование. Помимо этих двух СУБД обратное проектирование производится из DDL-скриптов, сгенерированных для других СУБД, а также на основе кода COBOL.

Модели Visible Analyst можно сохранять в многопользовательском репозитарии, созданном в одной из серверных СУБД. Кроме того, Visible Analyst позволяет на основе созданных моделей генерировать код для Visual Basic, C++ и COBOL [19].

Visio Enterprise фирмы Microsoft. Продукт под названием Visio, приобретенный в январе 2000 г. корпорацией Microsoft вместе с его разработчиком — компанией Visio Corporation, позиционировался на рынке как одно из самых популярных средств создания схем и диаграмм. Модификация Microsoft Visio 2000 — Visio 2000 Enterprise — содержит в своем составе полноценное CASE-средство [20].

Visio Enterprise позволяет производить прямое и обратное проектирование БД, преобразовывать логическую модель в физическую. Этим средством поддерживаются все ODBC- и OLE DB-источники данных. С его помощью создаются триггеры для стандартной обработки нарушений ссылочной целостности в случае, если DDL-скрипт создается для Microsoft SQL Server, и серверные ограничения, если скрипт создается для другой СУБД. Отметим, что Visio при генерации скриптов позволяет указывать параметры организации физической памяти Oracle, Informix, Microsoft SQL Server, DB2 и некоторых других СУБД.

Помимо средств проектирования баз данных Visio включает средства объектно-ориентированного моделирования и генерации кода приложений Visual Basic 6, а также классов C++ и Java. Модели Visio можно сохранять в Microsoft Repository.

В отличие от специализированных средств проектирования данных, Visio не обладает скриптовым языком, позволяющим создавать серверный код, не связанный с конкретной СУБД. При использовании этого продукта такой код нужно создавать на этапе физического проектирования в уже созданном скрипте, однако и стоимость Visio Enterprise по сравнению с ErWin или PowerDesigner DataArchitect невысока, тем более что Visio в целом представляет собой продукт более широкого назначения. К тому же продукт является сервером автоматизации, обладает весьма обширной объектной моделью и встроенным средством разработки — Visual Basic for Applications, что позволяет, в частности, создавать на его базе разнообразные решения, в том числе и автоматизировать разработку моделей данных [20].

Vantage Team Builder фирмы Westmount I-CASE. Согласно [4] характерной особенностью этого программного продукта является использование одного из вариантов нотации П. Чена. На ER-диаграммах сущность обозначается прямоугольником, содержащим ее имя (рис. 3.24), а связь — ромбом, связанным линией с каждой из взаимодействующих сущностей. Числа над линиями означают степень связи.

Обозначение сущностей и связей

Рис. 3.24. Обозначение сущностей и связей

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

В необязательной связи (рис. 3.25) могут участвовать не все экземпляры сущности.

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

Необязательная связь

Рис. 3.25. Необязательная связь

четырех видов: обязательная связь, слабая связь, связь «супертип—подтип» и ассоциативная связь.

Обязательная (mandatory) связь описывает связь между независимой и зависимой сущностями. Все экземпляры зависимой (обязательной) сущности существуют только при наличии экземпляров независимой (необязательной) сущности, т. е. экземпляр обязательной сущности существует только при условии существования определенного экземпляра необязательной сущности. Так, на рис. 3.26 показано, что каждый автомобиль имеет, по крайней мере, одного водителя, но не каждый служащий управляет машиной.

Обязательная связь

Рис. 3.26. Обязательная связь

В слабой связи существование одной из сущностей (слабой), принадлежащей некоторому множеству, зависит от существования определенной сущности (сильной), принадлежащей другому множеству, т. е. экземпляр слабой сущности идентифицируется только посредством экземпляра сильной сущности. Ключ сильной сущности является частью составного ключа слабой сущности.

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

Как показано на рис. 3.27, ключ (номер) строки в документе может не быть уникальным и должен быть дополнен ключом документа.

Слабая связь

Рис. 3.27. Слабая связь

Связь «супертип—подтип» изображена на рис. 3.28. Общие характеристики (атрибуты) типа определяются в сущности-су-

Связь «супертип—подтип»

Рис. 3.28. Связь «супертип—подтип»

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

В ассоциативной связи каждый экземпляр связи (ассоциативный объект) существует только при условии существования определенных экземпляров каждой из взаимосвязанных сущностей. Ассоциативный объект — объект, являющийся одновременно сущностью и связью. Ассоциативная связь — это связь между несколькими независимыми сущностями и одной зависимой сущностью. Связь между независимыми сущностями имеет атрибуты, которые определяются в зависимой сущности. Таким образом, зависимая сущность определяется в терминах атрибутов связи между остальными сущностями.

Иллюстрация указанной связи приведена на рис. 3.29: самолет выполняет посадку на взлетную полосу в заданное время при определенной скорости и направлении ветра. Поскольку эти характеристики применимы только к конкретной посадке, они являются атрибутами посадки, а не самолета или взлетной полосы. Пилот, выполняющий посадку, связан гораздо сильнее с конкретной посадкой, чем с самолетом или взлетной полосой.

Ассоциативная связь

Рис. 3.29. Ассоциативная связь

Первичный ключ каждого типа сущности помечается звездочкой (*).

В свою очередь ER-диаграмма строится по следующим правилам [4]:

  • • каждая сущность, каждый атрибут и каждая связь должны иметь имя (связь супертипа или ассоциативная связь может не иметь имени);
  • • имя сущности должно быть уникально в рамках модели данных;
  • • имя атрибута должно быть уникально в рамках сущности;
  • • имя связи должно быть уникально, если для нее генерируется таблица БД;
  • • каждый атрибут должен иметь определение типа данных;
  • • сущность в необязательной связи должна иметь ключевой атрибут. То же самое относится к сильной сущности в слабой связи, супертипу в связи «супертип—подтип» и необязательной сущности в обязательной (полной) связи;
  • • подтип в связи «супертип—подтип» не может иметь ключевой атрибут;
  • • в ассоциативной или слабой связи может быть только одна ассоциативная (слабая) сущность;
  • • связь не может быть одновременно обязательной, «супертипом—подтипом» или ассоциативной.

Общие характеристики CASE-средств.

В результате анализа функциональных возможностей вышеперечисленных продуктов можно сделать вывод о том, что несмотря на некоторую специфику и различные сферы применения, все они характеризуются рядом одних и тех же функций, к которым относятся [4]:

  • • создание логических моделей, не зависящих от СУБД, и генерации физических моделей на их основе;
  • • поддержка нескольких типов СУБД, включая не только серверные, но и настольные;
  • • поддержка специфических особенностей тех или иных СУБД ведущих производителей (генерация триггеров, управление физическим хранением данных);
  • • реализация обратного проектирования на основе либо имеющейся базы данных, либо имеющегося DDL-скрипта;
  • • генерация отчетов и проектной документации на основе созданной модели;
  • • сохранение модели в репозитарии, который во многих случаях может быть разделяемым;
  • • поддержка генерации кода для одного или нескольких средств разработки или языков программирования.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >