Р помечается случай, когда одному экземпляру родитель- ской сущности соответствуют 1 или много экземпляров дочерней сущно- сти (исключено нулевое значение);
символом Z помечается случай, когда одному экземпляру родитель- ской сущности соответствуют 0 или 1 экземпляр дочерней сущности (ис- ключены множественные значения);
цифрой помечается случай точного соответствия, когда одному экзем- пляру родительской сущности соответствует заранее заданное число экзем- пляров дочерней сущности.
Рис. 24. Отличия в отображении мощности связей в IDEF1X и IE.
34
Основным отличием методологий IDEF1x и IE является отображение и смысл иерархии категории. Иерархия категорий представляет особый тип объединения сущностей, имеющих общие характеристики. Например, в некотором проекте используются 2 механизма: лодка и грузовик (рис.
25). Каждый из них имеет характеристики: производитель, год выпуска, модель, цвет. Эти общие характеристики могут быть вынесены в отдель- ную сущность – родовой предок (супертип). Специфические для каждого механизма характеристики могут размещаться в категориальных сущно- стях – потомках (подтипы).
Рис. 25. Пример полной иерархии категорий в нотации IDEF1X.
В табл. 10 приведены типы иерархий категорий в нотациях IDEF1X,
IE.
Таблица 10. Типы иерархий категорий и их отображение
в нотациях IDEF1X, IE.
Нотация
Тип иерархии
категорий
Графическое
обозначение
Описание
IDEF1X
Полная
Отображены все варианты сущностей-потомков
Неполная
Отображены не все варианты сущностей-потомков
IE
Эксклюзивная
Одновременно существует лишь одна из сущностей-потомков
Неэксклюзивная
Одновременно могут существо- вать все сущности-потомки
35
В IDEF1X выделяют два типа иерархии категории (наследования): полная и неполная. Полная категория означает, что отображены все воз- можные варианты сущностей-потомков (рис. 25). Неполная категория означает, что категория еще не достроена полностью, и предполагается наличие других сущностей-потомков. Возможна также комбинация полной и неполной категорий.
Нотация IE выделяет собственные типы иерархии категории (наследо- вания) в зависимости от количество вхождений экземпляра супертипа в подтипы: эксклюзивную и неэксклюзивную. При этом как эксклюзивная иерархия категорий, так и неэксклюзивная в IE считается полной.
Эксклюзивная иерархия категорий предполагает, что экземпляр су- пертипа входит только в один экземпляра подтипа. Например, банковский счет может быть либо накопительным, либо до востребования (т.е. возмо- жен лишь один вариант).
Неэксклюзивная иерархия категорий (рис. 26) предполагает, что эк- земпляр супертипа может входить более чем в один экземпляр подтипа.
Например, банковский счет может быть одновременно накопительным и до востребования.
Рис. 26. Пример неэксклюзивной иерархии категорий в нотации IE.
Панель инструментов для добавления объектов в мо-
дель данных
Панель инструментов ERwin Toolbox включает инструменты для до- бавления объектов в модель данных. Как указывалось, эта панельявляется контекстно-зависимой: она выглядит различно в зависимости от уровня
36 модели и выбранной нотации. Вид панели на логическом и физическом уровне приведен в табл. 11 и 12 соответственно.
Таблица 11. Описание функций панели инструментов ERwin Toolbox на логическом уровне (нотации IDEF1X, IE). Элемент управления (IDEF1X) Элемент управления (IE) Описание Указатель – для выбора объекта (объектов) на диа- грамме.
Создание новой сущности. Для создания сущности нужно щелкнуть левой кнопкой мыши по иконке и один раз по свободному пространству на диаграмме.
Создание категории. Для установления категориаль- ной связи нужно
щелкнуть левой кнопкой мыши по значку категории, затем один раз щелкнуть по сущно- сти – родовому предку, затем - по сущности-потомку.
Создание идентифицирующей связи.
Создание связи «многие ко многим».
Создание неидентифицирующей связи.
Таблица 12. Описание функций панели инструментов AllFusion ERwin на физическом уровне (нотации IDEF1X, IE, DM). Элемент упр-ния (IDEF1X) Элемент упр-ния (IE) Элемент упр-ния (DM) Описание Указатель – для выбора объекта (объектов) на диа- грамме.
Создание новой таблицы. Для создания сущности нужно щелкнуть левой кнопкой мыши по иконке, затем по свободному месту на диаграмме.
Создание нового материализованного представле- ния (materialized view) или материализованной за- просной таблицы (materialized query table). Кнопка доступна только для СУБД, поддерживающих та- кие объекты (Oracle 8 и выше, DB2). Для создания представления нужно щелкнуть левой кнопкой мыши по кнопке и один раз по свободному про- странству на диаграмме.
Создание нового представления (view). Для созда- ния представления нужно щелкнуть левой кнопкой мыши по значку инструмента и один раз по свобод- ному пространству на диаграмме.
Создание идентифицирующей связи.
37
Создание связи между представлением и таблицей.
Создание неидентифицирующей связи.
Разработка и поддержка баз данных с ERwin DM
Начало создания модели в AllFusion ERwin DM
Для создания новой модели следует выбрать инструмент на стан- дартной панели инструментов или в меню File выбрать команду New. В ре- зультате открывается диалоговое окно Create Model – Select Template (рис.
27). В разделе New Model Type следует выбрать один из трех возможных типов новой модели: Logical (логическая), Physical (физическая) или Logi- cal/Physical смешанная модель. В разделе Create Using Template отобража- ется название шаблона, на основе которого будет создана новая модель.
Шаблоном, используемым по умолчанию, является Blank Model (пустая модель). Подключить другой шаблон можно с помощью кнопок Browse
File System или Browse AllFusion MM. В первом случае шаблон модели должен находиться в файле с расширением *.erwin_tmpl, во втором случае
– в репозитории AllFusion Model Manager.
Рис. 27. Диалог Create Model – Select Template.
В ERwin DM шаблон создается из модели данных и используется как основа для быстрого создания новых моделей данных. Чтобы сохранить
38 существующую модель данных как шаблон в файл с расширением
*.erwin_tmpl, следует выбрать меню File/Save As.
В случае, когда новая модель определена как физическая или сме- шанная, требуется выбрать целевую СУБД в разделе Target Database: в вы- падающем списке Database следует выбрать название СУБД, а в списке
Version – версию СУБД. Если новая модель определена как логическая, целевую СУБД выбирать не требуется. После определения параметров но- вой модели диалоговое окно Create Model – Select Template можно за- крыть, нажав на кнопку ОК. В результате будет создана модель с именем по умолчанию
Model_i, где
i – номер модели, назначаемый ERwin DM ав- томатически. Имя модели отображается в заголовке окна и в навигаторе модели; текущим уровнем модели по умолчанию является логический уро- вень (рис. 28).
Рис. 28. Имя и уровень новой модели по умолчанию.
В самом начале работы с моделью рекомендуется настроить рабочую область (см. раздел «Инструментальная среда AllFusion ERwin DM»): скрыть или
отобразить необходимые для работы панели инструментов, навигатор модели. Кроме этого в начале моделирования следует настроить свойства модели в диалоге Model Properties (меню Model/Model Properties).
Уровни модели данных Различают 3 подуровня логического уровня модели данных, отлича- ющиеся по глубине представления информации о данных, и 2 подуровня физического уровня (рис. 29).
39
Рис. 29. Уровни модели данных.
Диаграмма сущность-связь включает сущности и взаимосвязи, от- ражающие основные бизнес-правила предметной области. Такая диаграм- ма не слишком детализирована, в нее включаются основные сущности и связи между ними, которые удовлетворяют основным требованиям, предъявляемым к информационной системе. Диаграмма сущность-связь может включать связи "многие ко многим" и не включать описание клю- чей. Как правило, ERD используется для презентаций и обсуждения струк- туры данных с экспертами предметной области.
Модель данных, основанная на ключах - более подробное представ- ление данных. Она включает описание всех сущностей и первичных клю- чей и предназначена для представления структуры данных и ключей, кото- рые соответствуют предметной области.
Полная атрибутивная модель - наиболее детальное представление структуры данных: представляет данные в третьей нормальной форме и включает все сущности, атрибуты и связи.
Трансформационная модель содержит информацию для реализации отдельного проекта, который может быть частью общей ИС и описывать подмножество предметной области. ERwin DM поддерживает ведение от- дельных проектов, позволяя проектировщику выделять подмножество мо- дели в виде предметных областей (Subject Area). Трансформационная мо- дель позволяет проектировщикам и администраторам баз данных лучше представлять, какие объекты
базы данных хранятся в словаре данных, и проверить, насколько физический уровень модели данных удовлетворяет требованиям к ИС.
Модель СУБД автоматически генерируется из трансформационной модели и является точным отображением системного каталога СУБД. ER- win DM непосредственно поддерживает эту модель путем генерации си- стемного каталога.
40
Создание логического уровня модели
Основными компонентами диаграммы логического уровня модели в
ERwin DM являются (рис. 30):
сущности,
атрибуты,
связи (отношения).
Каждая сущность является множеством подобных индивидуальных объектов, называемых экземплярами. Каждый экземпляр индивидуален и должен отличаться ото всех остальных экземпляров. Атрибут выражает определенное свойство объекта. Построение модели данных предполагает определение сущностей и атрибутов: необходимо определить, какая ин- формация будет храниться в конкретной сущности и в конкретном атрибу- те. На физическом уровне сущности соответствует таблица, экземпляру сущности - строка в таблице, а атрибуту - колонка таблицы (рис. 31).
Рис. 30. Базовые объекты модели логического уровня.
Логический уровень
Физический уровень
а) Сущность
б) Таблица
Рис. 31. Пример сущности и соответствующей таблицы.
Сущности
Сущность можно определить как объект, событие или концепцию, информация о которых должна сохраняться. Сущности должны иметь наименование с четким смысловым значением, именоваться существи- тельным в единственном числе, не носить "технических" наименований и быть достаточно важными для того, чтобы их моделировать. Именование сущности в единственном числе облегчает в дальнейшем чтение модели.
Фактически имя сущности дается по имени ее экземпляра. Примером мо- жет быть сущность Заказчик (но не Заказчики!) с атрибутами Номер за-
На логическом уровне
Сущности
Атрибуты
Отношения
41
казчика, Фамилия заказчика и
Адрес заказчика. На уровне физической модели ей может соответствовать таблица
Customerс колонками
Customer_number, Customer_name и
Customer_address (рис. 31).
Для внесения сущности в модель необходимо (убедившись предвари- тельно, что вы находитесь на уровне логической модели) щелкнуть на кнопке на панели инструментов ERwin Toolbox,
затем щелкнуть по то- му месту диаграммы, где планируется расположить новую сущность. За- тем, щелкнув правой кнопкой мыши по сущности и выбрав из контекстно- го меню пункт Entity Properties, можно вызвать диалог Entities, в котором определяются имя, описание и комментарии сущности (рис. 32).
Рис. 32. Закладка Definition диалога Entities.
Каждая сущность должна быть полностью определена с помощью текстового описания в закладке Definition. Закладки Note, Note 2, Note 3,
UDP (User Defined Properties - Свойства, определенные пользователем) служат для внесения дополнительных комментариев и определений к сущ- ности. В ранних версиях ERwin закладкам Note2 и Note3 соответствовали окна Query и Sample.
Закладка
Definition (рис. 32) используется для ввода определения сущности. Эти определения полезны как на логическом уровне, поскольку позволяют понять, что это за объект, так и на физическом уровне, посколь- ку их можно экспортировать как часть схемы базы данных и использовать в реальной базе данных (При соответствующих настройках генерации схе- мы ERwin DM автоматически сгенерирует скрипт
CREATE COMMENT on entity_name).
Закладка
Volumetrics (рис. 33) позволяет на логическом уровне вво- дить информацию о приблизительном размере соответствующих таблиц.
Для оценки размера таблицы следует ввести следующую информацию:
Initial Rows – начальное количество строк в таблице,
42
Max Rows – максимальное число (лимит) строк в таблице,
Grow By – скорость увеличения таблицы (строк в месяц).
Рис. 33. Закладка Volumetrics диалога Entities.
Закладка
Note позволяет вносить дополнительные замечания о сущ- ности, которые не были отражены в определении, введенном в закладке
Definition. В закладке Note можно ввести полезное замечание, описываю- щее бизнес-правило или соглашение по организации диаграммы.
В закладке
Note 2 можно задокументировать возможные запросы, ко- торые, как ожидается, будут использоваться по отношению к данной сущ- ности в базе данных. При переходе к физическому проектированию запи- санные в закладке Note 2 примеры запросов помогут сделать базу данных более эффективной.
Закладка
Note 3 позволяет вводить примеры экземпляров сущности (в произвольной форме).
Применение свойств, определяемых пользователем (UDP), аналогично использованию в AllFusion Process Modeler (см. часть I пособия). Для определения UDP служит диалог User Defined Properties (меню Model/UDP
Dictionary) (рис. 34). В нем необходимо указать вид объекта, для которого заводится UDP (диаграмма в целом, сущность, атрибут и т. д.), и тип дан- ных. Для внесения
нового свойства следует ввести имя, тип данных, зна- чение по умолчанию и описание. Следующая строка таблицы появляется автоматически.
ERwin DM поддерживает для UDP шесть типов данных:
Date. Дата. Используется формат MM/DD/YY. Для выбора значения даты можно использовать контекстный календарь.
Int. Целое число.
Real. Действительное число.
43
Рис. 34. Диалог User Defined Properties
Text. Строка (ASCII).
List. Список. При задании списка в диалоге User Defined Property значения следует разделять запятой, значение по умолчанию выделяется символом (тильда) (рис. 34).
Command. Команда - выполняемая строка. На рис. 34 свойство
Документ имеет тип Command.
Рис. 35. Закладка UDP диалога Entities.
Значение свойств, определяемых пользователем, задается в закладке
UDP диалога Entities (рис. 35). Если пользовательскому свойству Доку-
мент присвоить значение «D:\Проект\Проект0.doc», то в модели из за- кладки UDP можно редактировать файл «Проект0.doc» (кнопка в стро-
44 ке свойства
Документ). Если у сущности требуется изменить значение свойства типа List, например, свойство
Важность (рис. 35), можно, либо ввести одно из допустимых значений в строке ввода, либо просто выбрать значение из списка допустимых значения. В последнем варианте следует сначала щелкнуть мышкой по строке ввода значения свойства, затем щелкнуть по появившемуся значку и выпавшем списке выбрать требуе- мое значение свойства.
С помощью закладки
Icon каждой сущности можно поставить в соот- ветствие картинку, которая будет отображаться в режиме просмотра моде- ли на уровне иконок. В этой закладке можно задать как большую иконку, которая будет отображаться на уровне Icon, так и малую иконку, которая может отображаться на всех уровнях просмотра модели. Для связывания изображения с сущностью необходимо щелкнуть по кнопке
, в появив- шемся диалоге Icons щелкнуть по кнопке Import и выбрать соответствую- щий файл формата BMP. После выбора иконки она отображается во вклад- ке Icon диалога Entities (рис. 36).
Рис. 36. Закладка Icon диалога Entities.
ERwin DM автоматически сохраняет историю всех изменений, свя- занных с объектами (сущностями, атрибутами, таблицами, колонками и т.д.). В закладке
History диалога Entities (рис. 37) отображается список из- менений. Каждому изменению в окне Comment можно дать комментарий.
Атрибуты Как было указано выше, каждый атрибут хранит
информацию об определенном свойстве сущности, а каждый экземпляр сущности должен быть уникальным. Атрибут или группа атрибутов, которые идентифици- руют сущность, называется
первичным ключом. Для описания атрибутов
45 следует, щелкнув правой кнопкой по сущности, выбрать в появившемся меню пункт Attributes. Появляется диалог Attributes (рис. 38).
Рис. 37. Закладка History диалога Entities.
Рис. 38. Закладка General диалога Attributes.
46
Если щелкнуть по кнопке New, то в появившемся диалоге New Attrib- ute можно указать имя атрибута, имя соответствующей ему в физической модели колонки и домен. Домен атрибута будет использоваться при опре- делении типа колонки на уровне физической модели.
Для атрибутов первичного ключа в закладке
General диалога Attrib- utes необходимо сделать пометку в окне выбора Primary Key. Для нагляд- ности диаграммы каждый атрибут можно связать с иконкой из выпадаю- щего списка Icon в закладке General. Если имеющихся в списке графиче- ских изображений недостаточно, следует воспользоваться кнопкой
, расположенной справа от списка выбора. В результате откроется диалог
Icons (рис. 39). Щелкнув по кнопке Import, можно добавить в список необ- ходимую иконку. Чтобы отобразить на диаграмме иконки атрибутов сле- дует, во-первых, перейти на уровень атрибутов (меню Format/Display
Level/Attribute), во-вторых, установить режим отображения иконок для ат- рибутов (меню Format/Entity Display/Attribute Icon).
Рис. 39. Диалог Icons.
Закладка