Диго С.М. Базы данных проектирование и использование (1084447), страница 17
Текст из файла (страница 17)
Многие автоматизированные средства проектирования позволяют просматривать модель с разной степенью детализации: только обозначения сущностей и связей между ними или сущность+ключи, или сущность+ключи+внешние_ключи, или сущность+все_атрибуты. Наличие таких возможностей создает существенные удобства, особенно при создании больших и сложных моделей.
Другой важной характеристикой CASE-средств является возможность получать различные подмодели из общей модели и, наоборот, обеспечивать интеграцию различных фрагментов в единую модель. Эти возможности могут быть полезны не только при коллективной разработке проекта несколькими разработчиками: очень удобно при обсуждении модели с конечными пользователями для каждого из них предоставлять только ту часть модели, которая имеет для него интерес; декомпозиция модели с возможностью корректной интеграции разных подсистем облегчает процесс проектирования.
Еще одним критерием для сравнения CASE-средств является степень проверки правильности построенных моделей. Следует обратить внимание, что ни одна система автоматизации проектирования, насколько бы развитой она ни была, не может гарантировать соответствия построенной концептуальной модели реалиям предметной области. Это определяется только квалификацией разработчиков, их пониманием предметной области и умением адекватно отобразить ее в модели. Но наличие средств проверки моделей может помочь устранить ошибки, связанные в основном с невнимательностью, такие, как отсутствие идентификатора у сущности, отсутствие связи объекта с другими объектами, неправильное задание имен, отсутствие в модели информации, необходимой/полезной при дальнейшем проектировании (объемные характеристики для классов объектов и связей между ними и т.п.), противоречия в модели (особенно существенно при коллективной разработке) и др.
Даже при использовании одной и той же методологии, как, например, в Design/IDEF и ERWin (обе используют методологию IDEF1X), способ их машинной реализации оказывается разным. Так, например, в Design/IDEF при описании атрибута указывается, что он является дискриминатором, при этом на схеме автоматически выводится знак дискриминатора и его имя. В ERWin не выделяется свойство, по которому проводится разбиение, и «дискриминатор» автоматически не именуется. Это менее удобно. Хотя можно потом выделить соответствующую связь для редактирования и в описании супертипа указать, какой атрибут является дискриминатором. Тогда название этого атрибута повторяется рядом со знаком дискриминатора.
Анализируя CASE-средства, мы обращали внимание только на те характеристики, которые оказывают непосредственное влияние на проектирование структуры базы данных. Однако функции CASE-средств этим не ограничиваются. Многие системы позволяют задавать в модели ограничения целостности и генерируют программы (триггеры, хранимые процедуры), проверяющие эти ограничения при эксплуатации БД. Кроме того, CASE-средства могут генерировать программы ведения БД.
Многие CASE-средства позволяют экспортировать модели в другие системы и, наоборот, импортировать их из других систем.
Отметим некоторые частные особенности конкретных CASE-средств.
Design/IDEF (версия 3.5). При описании атрибута в этой системе указывается, является ли он первичным ключом (Primary Key - РК) или инвертированным входом (Invertory Entry - IE). Подход, при котором эти вопросы приходится решать на стадии моделирования предметной области, представляется неудачным по следующим причинам:
-
«ключ» - понятие, относящееся к реляционной модели, а не к предметной области;
-
вопрос, что выбрать в качестве ключа, нужно решать на стадии проектирования даталогической модели, а не инфологического моделирования, и желательно - автоматически;
-
специалисту, строящему ER-модель, необходимо знать, что такое «ключ», «внешний ключ», «альтернативный ключ», уметь их определять и выбирать, что не так и просто, особенно если речь идет о составном ключе (как отмечалось выше, желательно активное участие специалистов предметных областей в разработке ER-модели, и требовать от всех них знания таких специфических вопросов теории баз данных нежелательно);
-
для нескольких атрибутов можно указать, что он является РК. На самом деле это означает, что каждый из таким образом обозначенных атрибутов является элементом составного ключа, а не самим ключом, что в аспекте реляционной теории принципиально важно различать;
-
термин «инвертированный вход» вообще не очень подходит для ER-модели, так как определяет способ организации хранения данных (для «инвертированных входов» строится индекс);
-
система не проверяет ошибочные с точки зрения реляционной модели определения атрибутов. Так, можно объявить какой-то атрибут одновременно и первичным, и вероятным ключом или объявить один атрибут первичным ключом (т.е. ключ простой) и его же включить в состав составного альтернативного ключа, или можно не задать длину атрибута, и при этом генерируется описание таблицы БД без указания длины поля.
Если в Design/IDEF вы изобразили объект и установили с ним связь 1:М от другого объекта, то сразу в подчиненный объект мигрирует ключ из родительского объекта. Это же закладывается автоматически и в алгоритм проектирования, что далеко не всегда целесообразно (то же самое наблюдается и в ERwin, и во многих других системах).
Недостатком такого подхода является то, что вместо мифологического моделирования на самом деле как бы сразу происходит проектирование отношения (таблицы БД). Но, во-первых, связь 1:М может быть отражена в БД разными путями (см. описание алгоритма в главе 3), а во-вторых, на уровне ER-модели происходит дублирование информации (наличие связи между сущностями отображается дважды: линией на схеме и повторением ключа родительской сущности).
В системе имеется целый ряд ошибок, связанных с преобразованием ER-модели в целевую схему БД. Так, например, если изобразить связь М:М (которая называется неспецифической), то схема (на SQL) сформируется, но с ошибками (ни в одну из таблиц не включается ключ связанной таблицы, не создается таблица связи, но в то же время создается внешний ключ, которому не соответствует первичный ключ). В документации по CASE-системам, в которых связь М:М является неспецифической, сказано, что на поздних стадиях моделирования их надо преобразовать в специфические. Но если забыть это сделать, то, как сказано выше, описание на SQL сформируется и никаких сообщений об ошибках выдано не будет. Кроме того, наблюдается неполное соответствие типов данных, определяемых CASE-средством, реальному списку типов данных, поддерживаемому целевой СУБД.
Как отмечалось выше, разные целевые системы могут иметь разнообразные ограничения на допустимые имена используемых информационных единиц. В Design/IDEF имена полей в SQL-описании даются те, которыми в модели названы атрибуты (это могут быть, например, длинные русские слова или фразы с пробелами; в большинстве случаев задание таких имен недопустимо в целевых СУБД, но система не контролирует допустимость используемых имен информационных единиц).
ERWin (версия 2.6). В этой системе просматривать модель можно на разных уровнях: только объекты, объекты и свойства, связи с указанием кардинальности или без оной, с указанием ограничений целостности и без указания и др. Для того чтобы воспользоваться этой возможностью, нужно в меню «Option» отметить позицию «Show Display menu» и в появившемся меню выбрать нужные параметры отображения.
При связывании сущностей, так же как и в Design/IDEF, ключ родительской сущности всегда мигрирует в зависимую сущность в качестве неключевого атрибута (при построении модели родительской становится та сущность, на которую «кликнули» мышью первой).
Система накладывает следующие ограничения на размер модели: до 500 сущностей и до 1500 атрибутов.
При изображении подтипов используется иной подход, нежели в Design/IDEF1X, а именно: изображаются сначала все объекты, как родовой, так и видовые. Потом они соединяются соответствующей связью. В отличие от Design/IDEF1X в ERWin не выделяется свойство, по которому проводится разбиение, и дискриминатор первоначально никак не именуется. Но потом можно (щелкнув на значке дискриминатора, выйти в соответствующий редактор) указать, по какому атрибуту идет разделение, и имя этого атрибута появится около значка дискриминатора.
В ERWin версии 3.5 введены дополнительные возможности:
-
поддержка многомерного моделирования;
-
возможность оценивать объем таблиц и индексов в БД;
-
словарь доменов;
-
расширение опций для генерации баз данных;
-
поддержка последних версий некоторых серверов баз данных и некоторые другие.
Редактор Design/IDEF интуитивно более понятен и привычен (например, чтобы перемещать линию, нужно щелкнуть по ней мышью и перемещать метки концов или середины линии; чтобы ввести новый атрибут в сущность, достаточно двойного щелчка по этой сущности). Но более привычно не всегда означает, что это безусловно лучше. Так, при перетаскивании линий в ERWin нельзя оторвать концы линий от границы знака сущностей, которые они связывают, что скорее является достоинством, чем недостатком.
S-Designor (новое название - PowerDesigner). Система включает в себя следующие модули:
-
ProcessAnalyst - потоки данных и бизнес-процессы; позволяет создать функциональную модель информационной системы.
-
DataArchitect - концептуальная и физическая модель; позволяет создавать концептуальную модель, основываясь на информации функциональной модели из ProcessAnalyst, с последующей генерацией физической модели для более чем 40 различных СУБД. Возможна обратная генерация физической модели из существующей БД.
-
AppModeler - генерация приложений; позволяет генерировать отдельные объекты или целые приложения для PowerBulder, Visual Basic и ряда других инструментов.
-
MetaWorks - поддержка коллективной работы.
-
Начиная с версии 6.0 в PowerDesigner появился новый модуль WarehouseArchitect, предназначенный для проектирования специализированных информационных моделей для хранилищ данных, включая многомерные информационные модели. Помимо поддержки традиционных СУБД позволяет генерировать физические модели для специализированных серверов Sybase IQ и Red Brick.
Имеется объект Домен (Domain), который предназначен для определения типа данных. Посредством использования этого объекта можно определить допустимые значения для каждого из элементов данных. Для Домена можно указать тип данных, длину, допустимые значения и некоторые другие свойства.
С одним Доменом можно связывать несколько элементов данных. Возможность задания Доменов, таким образом, сокращает описание концептуальной модели и позволяет стандартизировать представление однотипных данных.
2.3.9. Использование графических ПП для изображения ER-моделей
При изображении ER-моделей можно воспользоваться различными графическими средствами. Так, широко распространенное средство Visio Professional (рис. 2.35) поддерживает множество нотаций ERD (Entity - Relationship Diagrams - диаграмммы «сущность-связь»).
Рис. 2.35. Нотации, поддерживаемые в Visio Professional
В Microsoft Visio ER-модели можно рисовать, используя панель меню Stensils/Database/Entity Relationship (рис. 2.36).
Рис. 2.36. Вид окна Microsoft Visio.
Меню Stensils/Database/Entity Relationship