- •Введение
- •Функциональные возможности AllFusion ERwin DM 7.2
- •Инструментальная среда AllFusion ERwin DM
- •Интерфейс AllFusion ERwin DM 7.2
- •Уровни отображения модели (Display Level)
- •Подмодели (Subject Area).
- •Хранимые отображения (Stored Display)
- •Навигатор модели (Model Explorer)
- •Журнал изменений модели (Action Log)
- •Русификация ERwin DM
- •Поддерживаемые методологии: IDEF1X, IE, DM
- •Краткая характеристика методологий
- •Особенности методологий IDEF1X и IE
- •Панель инструментов для добавления объектов в модель данных
- •Разработка и поддержка баз данных с ERwin DM
- •Начало создания модели в AllFusion ERwin DM
- •Уровни модели данных
- •Создание логического уровня модели
- •Сущности
- •Атрибуты
- •Связи
- •Связи идентифицирующие и неидентифицирующие
- •Связь "многие ко многим"
- •Типы зависимых сущностей
- •Иерархия категорий (иерархия наследования).
- •Ключи
- •Домены
- •Нормализация и денормализация
- •Создание физического уровня модели
- •Выбор сервера
- •Таблицы
- •Колонки
- •Представления (View)
- •Материализованные представления (materialized view)
- •Правила валидации и значения по умолчанию
- •Индексы
- •Задание объектов физической памяти
- •Триггеры и хранимые процедуры
- •Скрипты «до и после генерации»
- •Прямая генерация
- •Обратная генерация
- •Сравнение и синхронизация с Complete Compare
- •Уровни проектирования
- •Трансформация
- •Документирование моделей данных в ERwin DM
- •Создание отчетов с помощью Report Template Builder
- •Создание отчетов с помощью Data Browser
- •Практическая работа с ERwin Data Modeler
- •1. Создание концептуальной модели данных
- •2. Порождение новой модели из концептуальной
- •3. Проработка модели на уровне первичных ключей
- •4. Автотрансформация связей «многие ко многим»
- •5. Доработка модели до полно атрибутивной модели
- •6. Проработка физического уровня модели
- •7. Генерация каталога базы данных из модели данных
- •8. Обратная генерация каталога базы данных в модель
- •9. Сравнение и синхронизация каталога базы данных и модели
- •10. Документирование модели данных
- •Опись созданных файлов
- •Задание для самостоятельной работы
- •Литература и источники
Рис. 115. Модель данных с первичными ключами.
4. Автотрансформация связей «многие ко многим»
Целью данного этапа является усовершенствование модели, полученной на предыдущем этапе, за счет преобразования связей "многие ко многим" с помощью механизма автотрансформаций ERwin DM.
1. Откройте файл модели «лаба 3-первичные ключи.erwin». 2.Трансформируйте связь между сущностями Тест и Студент. Для
этого щелкните по линии связи правой кнопкой мыши и в появившемся контекстном меню выберите пункт Create Association Table. Появляется Мастер трансформаций Many-To-Many Transform Wizard. Щелкните по кнопке Next для перехода ко второму шагу трансформации. В поле Transform Definition введите описание трансформации: «Преобразование связи
"многие ко многим" между сущностями "Тест" и "Студент"» и нажмите
Next. На третьем шаге Мастера трансформации в поле Entity Name введите имя новой сущности: «Тест студента», в поле Entity Definition введите описание сущности: «Содержит информацию о прохождении определенным студентом определенного теста» и нажмите Next. На четвертом ша-
ге отображается итоговая информация о трансформации. Нажмите Finish, чтобы завершить трансформацию.
В результате создается сущность Тест студента, которая связана идентифицирующими связями с сущностями Тест и Студент. Можно изменить расположение и цвет сущностей и линий связи (рис. 116).
3.Трансформируйте связь между сущностями Вариант ответа и Студент. Для этого запустите Мастер трансформаций - Many-To-Many Transform Wizard. На втором шаге трансформации в поле Transform Definition введите описание трансформации: «Преобразование связи "многие ко многим" между сущностями "Вариант ответа " и "Студент"» и нажмите
Next. На третьем шаге в поле Entity Name введите имя новой сущности: «Вариант ответа студента», в поле Entity Definition введите описание
121
сущности: «Содержит информацию о выбранных определенным студентом ответах на вопросы тестов» и нажмите Next. На четвертом шаге нажмите Finish, чтобы завершить трансформацию.
В результате создается сущность Вариант ответа студента, которая связана идентифицирующими связями с сущностями Вариант ответа и Студент. Можно изменить расположение и цвет сущностей и линий связи (рис. 116).
Рис. 116. Результат трансформации связей «многие ко многим».
4. Измените свойства новых сущностей Тест студента и Вариант ответа студента в соответствии с таблицей 26. Проанализируйте эти свойства.
5. Сохраните файл модели как «лаба 4-трансформация»
Таблица 26. Свойства новых сущностей модели данных.
№ |
Название |
Значение |
закладки |
||
|
|
|
1 |
Name |
Тест студента |
|
|
|
|
Definition |
Содержит информацию о прохождении определенным студен- |
|
том определенного теста. |
|
|
|
|
|
|
|
|
|
1)Каждый студент может пройти каждый тест лишь один раз. |
|
Note |
2)Если удаляется тест или студент, следует удалять соответ- |
|
ствующую запись о прохождении теста студентом в сущности |
|
|
|
|
|
|
Тест студента. |
|
|
|
|
|
-Вывести список студентов, проходивших тест «Х»; |
|
Note 2 |
-Вывести список студентов группы 2у3, не сдававших тест «Y»; |
|
-Вывести список студентов группы 2ф4, сдавших тест «Z» на |
|
|
|
|
|
|
«4» или «5»; |
|
|
|
|
|
1) 10.11.2007 студент № 1 проходил тест № 3, набрал 37 баллов |
|
Note 3 |
и получил «4» |
|
|
2) 19.11.2007 студент № 2 проходил тест № 8, набрал 41 балл и |
|
|
|
122
|
|
получил «5» |
|
|
|
2 |
Name |
Вариант ответа студента |
|
|
|
|
Definition |
Содержит информацию о выбранных определенным студентом |
|
ответах на вопросы тестов. |
|
|
|
|
|
|
|
|
|
1) Хранится информация лишь о выбранном студентом вариан- |
|
|
те ответа на вопрос теста; |
|
Note |
2) Запрещено удалять вариант ответа, если его выбрал хотя бы |
|
один студент; |
|
|
|
|
|
|
3) Если удаляют студента, то автоматически удалить все вы- |
|
|
бранные им варианты ответов. |
|
|
|
|
Note 2 |
-Вывести количество вопросов в тесте № 2, на которые студент |
|
№ 1 дал правильные ответы. |
|
|
|
|
|
|
|
|
|
1) Студент № 1 на вопрос № 3 в тесте № 3 выбрал вариант от- |
|
Note 3 |
вета № 2 - Верно. |
|
2) Студент № 1 на вопрос № 4 в тесте № 3 выбрал вариант от- |
|
|
|
|
|
|
вета № 4 -Ошибочно. |
|
|
|
5. Доработка модели до полно атрибутивной модели
Цель данного этапа - доработать модель, созданную на предыдущем этапе, до уровня Fully Attributed model (FA) - полно атрибутивной модели.
1.Откройте файл «лаба 4-трансформация.erwin».
2.Создайте новое хранимое отображение. Для этого в диалоговом окне Stored Display (меню Format/Stored Display Settings) в закладке General щелкните по кнопке New и введите имя хранимого отображения «Атрибуты» и нажмите ОК; введите свою фамилию в строку ввода Author, установите флажок Logical Model, снимите флажок Display Shadows.
Затем перейдите к закладке Logical. В разделе Display Level (уровень отображения) выберите Attribute (уровень атрибутов), в разделе Relationship Option установите флажки Verb Phrase и Cardinality, в разделе Entity Option – флажки Foreign Key Designator (FK), Alternate Key Designator (AK)
иShow Migrated Attributes как показано на рис. 117. Нажмите ОК, чтобы закрыть диалог. Можно изменить расположение сущностей и линий связи на диаграмме в новом хранимом отображении.
3.Создайте атрибуты для сущностей модели в соответствии с таблицей 27. При создании атрибутов используйте технику «drag & drop»: «перетащите» родительский домен из навигатора модели на диаграмму в область неключевых атрибутов сущности, затем переименуйте полученный атрибут. После добавления всех атрибутов сравните представление своей модели в хранимом отображении «Атрибуты» с рис. 118.
123
Рис. 117. Свойства хранимого отображения «Атрибуты».
Таблица 27. Свойства атрибутов сущностей модели данных.
№ |
Родительский |
Сущность |
Атрибут |
|
домен |
||||
|
|
|
||
1 |
название |
Тест |
Название теста |
|
2 |
имя |
Тест |
Автор теста |
|
3 |
дата |
Тест |
Дата внесения |
|
4 |
текст |
Тест |
Описание теста |
|
5 |
текст |
Вопрос |
Текст вопроса |
|
6 |
текст |
Вариант ответа |
Текст варианта ответа |
|
7 |
логический |
Вариант ответа |
Правильность варианта |
|
8 |
имя |
Студент |
Имя студента |
|
9 |
имя |
Студент |
Фамилия студента |
|
10 |
имя |
Студент |
Отчество студента |
|
11 |
имя |
Студент |
Код группы |
|
12 |
дата |
Тест студента |
Дата тестирования |
|
13 |
Number |
Тест студента |
Набранные баллы |
|
14 |
Number |
Тест студента |
Оценка за тест |
|
15 |
логический |
Вариант ответа студента |
Правильность варианта |
124
.
Рис. 118. Модель данных в хранимом отображении «Атрибуты».
Рис. 119. Модель данных в хранимом отображении «Атрибуты и домены».
4. Для проверки правильности создания атрибутов из доменов в соответствии с табл. 27 создайте еще одно хранимое отображение Атрибуты и домены, используя все перечисленные в пункте 2 свойства хранимого
125
отображения Атрибуты. Дополнительно в закладке Logical в разделе Entity Option установите флажок Attribute Domain для отображения на диаграмме родительского домена для каждого атрибута.
Измените расположение сущностей и связей в хранимом в хранимом отображении Атрибуты и домены. Проанализируйте рисунки 118 и 119. Обратите внимание, что на рисунках отображается одна и та же модель в разных хранимых отображениях. Для дополнительной проверки правильности создания атрибутов сравните рис. 119 и табл. 27.
5. Усовершенствуем модель данных и создадим правило проверки (правило валидации) и значения по умолчанию.
Для создания правила проверки в меню Model следует выбрать пункт
Validation Rules. В открывшемся диалоге Validation Rules щелкните по кнопке New. В открывшемся диалоге New Validation Rule введите в строке Logical логическое имя правила: «Проверка оценки», в строке Physical введите физическое имя правила: «Rule_ozenka» (рис. 120), нажмите ОК, чтобы вернуться в диалог Validation Rules.
Рис. 120. Определение имен правила в диалоге New Validation Rule.
В закладке Definition введите описание правила: «Оценка за тест может принимать только одно из 6 значений: 0, 1, 2, 3, 4 или 5». В за-
кладке General (рис. 121) установите переключатель Type на Valid Value List (список допустимых значений), а в таблице Valid Value в колонке Valid Value введите допустимые значения: 0,1,2,3,4,5 – как показано на рис. 121. Обратите внимание, что опция Quote (кавычки) отключена. В табл. 28 собраны свойства создаваемого правила проверки. Нажмите ОК, чтобы за-
крыть диалог Validation Rules.
Таблица 28. Свойства правила проверки (валидации).
№ |
Свойство правила |
Значение правила проверки |
|
1 |
Логическое имя |
Проверка оценки |
|
2 |
Физическое имя |
Rule_ozenka |
|
3 |
Описание правила |
Оценка может принимать только одно из |
|
6 значений: 0, 1, 2, 3, 4 или 5 |
|||
|
|
||
4 |
Тип правила |
Valid Value List |
|
5 |
Допустимые значения |
0,1,2,3,4,5 |
126
Рис. 121. Диалог Validation Rules.
Для создания значений по умолчанию в меню Model следует выбрать пункт Default Values. В открывшемся диалоге Default Values щелкните по кнопке New. В открывшемся диалоге New Default Value введите в строке Logical логическое имя значения по умолчанию: «Балл по умолчанию», в строке Physical введите физическое имя значения по умолчанию: «Default_ball», затем нажмите ОК, чтобы вернуться в диалог Default Values.
Взакладке Definition введите описание значения по умолчанию: «По умолчанию Количество набранных баллов = 0, Оценка = 0 и т.п.».
Взакладке General в поле Default Value введите значение: «0». Аналогично добавьте еще одно значение по умолчанию «Правиль-
ность по умолчанию», используя табл. 29 и рис. 122. Нажмите ОК, чтобы закрыть диалог Default Values.
Таблица 29. Свойства значений по умолчанию.
№ |
Свойство значения по |
Значение свойства |
|
умолчанию |
|||
|
|
||
|
Логическое имя |
Балл по умолчанию |
|
|
Физическое имя |
Default_ball |
|
1 |
Описание |
По умолчанию Количество набранных |
|
|
|
баллов = 0, Оценка = 0 и т.п. |
|
|
Значение по умолчанию |
0 |
127
|
Логическое имя |
Правильность по умолчанию |
||
|
Физическое имя |
Default_Pravilnost |
||
2 |
Описание |
По умолчанию вариант ответа считается |
||
|
|
|
ошибочным, т.е. False |
|
|
Значение по умолчанию |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 122. Фрагмент диалога Default Values.
Проанализируйте структуру навигатора модели Model Explorer. Обратите внимание, что в разделах Default Values и Validation Rules навигатора появились новые записи (рис. 123).
Рис. 123. Новые записи в навигаторе модели.
6. Уточните свойства атрибутов модели (табл. 30). Для добавления правила проверки к атрибуту следует в диалоге Attribute перейти к заклад-
ке Constraint и в разделе Validation Constraint в выпадающем списке Valid
выбрать требуемое правило (рис. 124). Для добавления значения по умолчанию к атрибуту в той же закладке в разделе Default в выпадающем списке Default следует выбрать требуемое значение по умолчанию (рис. 124).
128
Таблица 30. Дополнительные свойства атрибутов.
№ |
Свойство атрибута |
Значение свойства |
|
Имя атрибута |
Оценка за тест |
|
Сущность |
Тест студента |
1 |
Описание атрибута |
Оценка студента за тест |
|
Правило проверки |
Проверка оценки |
|
Значение по умолчанию |
Балл по умолчанию |
|
Имя атрибута |
Набранные баллы |
|
Сущность |
Тест студента |
2 |
Описание атрибута |
Количество баллов, набранных студентом за |
|
|
тест. |
|
Значение по умолчанию |
Балл по умолчанию |
|
Имя атрибута |
Правильность варианта |
|
Сущность |
Вариант ответа |
3 |
Описание атрибута |
Указывает, является ли вариант ответа на |
|
|
вопрос верным или ошибочным |
|
Значение по умолчанию |
Правильность по умолчанию |
|
Имя атрибута |
Правильность варианта |
|
Сущность |
Вариант ответа студента |
4 |
|
Указывает, является ли вариант ответа на |
Описание атрибута |
вопрос теста, выбранный студентом, вер- |
|
|
|
ным или ошибочным |
|
Значение по умолчанию |
Правильность по умолчанию |
Рис. 124. Обновленные свойства атрибута «Оценка за тест».
129
7. В результате анализа возможных запросов к проектируемой базе данных для ускорения поиска часто запрашиваемых данных было решено добавить ряд альтернативных и инверсных ключей, чтобы на их основе сгенерировать индексы.
Для создания альтернативных и инверсных ключей следует в меню
Model выбрать пункт Key Groups. В диалоге Key Groups в разделе Entity
следует выбрать нужную сущность (рис. 125) и щелкнуть по кнопке New.
Рис. 125. Фрагмент диалога Key Groups.
В диалоге New Key Group в разделе Key Group Type установите переключатель на нужный тип ключа: альтернативный (Alternate Key) или инверсный (Inversion Entry), затем в строке Key Group введите логическое имя ключа (рис. 126) и нажмите ОК.
Рис. 126. Диалог New Key Group.
В закладке Members диалога Key Groups (рис. 125) из списка Available
Attributes следует выбрать атрибуты и с помощью кнопки добавить их в список атрибутов, вошедших в ключ (Key Group Members); нажмите ОК.
130