Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ERWin_hw5w1xxa4sjc.pdf
Скачиваний:
289
Добавлен:
07.06.2015
Размер:
4.06 Mб
Скачать

Рис. 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]