Предварительная подготовка -
На основании результатов обследования объекта для своего варианта задания подготовить список имен сущностей.
Имя сущности - существительное в единственном числе. Существительное может иметь определение. Примеры имен сущностей: Студент, Учебная Группа
| -
Для каждой сущности записать:
-
словесное определение сущности;
-
примеры возможных запросов по отношению к этой сущности;
-
несколько экземпляров сущности, задав их основные свойства - атрибуты, в произвольной форме;
Продумать связи между сущностями.
На уровне логической модели наряду со связью "один ко многим" допустима связь “многие ко многим”
| Для каждой связи подготовить:
-
словесное определение связи - какие сущности связываются, в каком отношении, для отношения “один ко многим” отметить:
-
какая из сущностей является родительской;
-
характер связи - идентифицирующая / неидентифицирующая
-
имя связи, записав глагольную фразу, отражающую:
-
для связи “один ко многим” - одну фразу, отношение родительской сущности к дочерней;
-
для связи “многие ко многим”- две фразы, отношения слева направо / справа налево.
-
для связей "один ко многим" определить:
-
мощность связи: 0, 1, ∞; 1, ∞ (P); 0, 1 (Z); точно N (N);
-
правила ссылочной целостности для операций "удаление", "добавление", "обновление".
| Установим правила ссылочной целостности для идентифицирующей связи типа Р (1 или много). В этом случае на каждый экземпляр родительской сущности должен ссылаться хотя бы один экземпляр дочерней.сущности. Воспользуемся сокращениями ERwin для указания характеристик связей на хранимых отображениях:
|
|
| Сущность
| Операция
| D
| I
| U
| <Имя 1> - дочерняя
| R
| R
| R
| <Имя 2> -родительская
| C
| C
| R
|
| D - Delete, удаление записи
I - Insert , добавление записи
U - Update, обновление записи
R - Restric, ограничение: нельзя удалять/обновлять экземпляр родительской сущности, пока имеется хотя бы один ссылающийся на него экземпляр дочерней сущности.
С - Cascade, тотальное удаление/обновление экземпляров дочерней сущности, ссылающихся на удаляемый экземпляр родительской сущности.
N - None, при удалении экземпляра родительской сущности ссылающиеся на него экземпляры дочерней сущности остаются без изменений, т.е. ссылаются на отсутствующий экземпляр и не могут быть классифицированы.
|
|
|
Порядок выполнения 1-ой части работы 1. Создание хранимого отображения "Определения сущностей" - закладка 1 -
Открыть диалог Computer Associates Erwin, включить опцию “Create a new model”. В окне Create Model/New Model Type выбрать опцию Logical/Physical. Открыть диалог Stored Display Settings , выполнив ►Format ►Stored Display… (вариант: выполнить команду Stored Display… из контекстного меню рабочей области Erwin)
-
В диалоге StoredDisplay Editor сделать настройки хранимого отображения
-
нажав кнопку Rename, задать имя отображения “Определение сущностей” вместо имени по умолчанию - Display1;
-
в закладке General указать авторов работы;
-
в закладке Logical выбрать отображение сущностей на уровне определений (рамка Display Level, Definition) с иконками сущностей (рамка Entity Option, опция Entity Icon) и отключить все дополнительные опции отображения связей (рамка Relationship Option).
С помощью панели инструментов конструктора создать сущности будущей модели:
|
| -
щелкнуть по кнопке ;
-
щелчками по рабочему полю, создать нужное количество сущностей;
-
Вместо имен по умолчанию (E/1, E/2, …) набрать подготовленные имена сущностей.
-
Выделить родительские сущности, изменив цвет шрифта и цвет заливки .
-
С помощью контекстного меню сущностей вызвать диалог Entity Properties и описать каждую сущность:
-
в закладке Definition набрать определение сущности,
Описав одну сущность, переключиться на другую, выбрав ее из распахивающегося списка Entity и повторить подпункты пункта 6 для ее описания .
-
Установить нотацию IDEFX1 (►Model ►Model Properties…, закладка Notation) и создать связи:
-
задать тип связи щелчком по соответствующей кнопке;
-
для каждой связи выбранного типа щелкнуть сначала по родительской, а затем по дочерней сущности;
-
для связи many-to-many создать сущность-ассоциацию (контекстное меню связи/диалог Create Association Entity)
2. Создание хранимого отображения "Определения связей" - закладка 2 Для создания и настройки хранимого отображения вызвать диалог Stored Display Settings
| (выполнить ►EDIT ►Stored Display… или вызвать контекстное меню рабочей области Erwin и выполнить команду Stored Display…). Выполнить New и ввести название новой закладки “Определение связей)
| -
В закладке Logical диалога Stored Display Settings задать отображение сущностей на уровне сущностей (рамка Display Level - Entity) с иконками сущностей (рамка Entity Option - опция Entity Icon) и включить все дополнительные опции отображения связей (рамка Relationship Option - опции Verb Phrase, Cardinality, Referential Integrity).
-
Изменяя цвета подписей к линиям связи, выделить связи 1-го уровня (родительские), связи 2-го уровня и т.д.: вызвать диалог DefaultFonts & Colorиз меню ►Format►Default Fonts & Colors…
-
в закладке Relationship задать шрифт и цвет описания связи, а также указать к каким связям (All Objects) относится сделанная настройка (рамка Apply To)
С помощью редактора связей Relationship Editor задать свойства связей:
-
в контекстном меню любой связи выполнить команду ►Relationship Properties… для вызова редактора связей;
-
чтобы задать новую связь, нажать кнопку New… редактора и в появившемся окне New Relationship выбрать из выпадающих списков Parent и Child имена связываемых сущностей, установить переключатель в рамке Type на нужный тип связи и, нажав ставшую доступной кнопку ОК, вернуться в редактор связей
-
в редакторе связей для каждой связи из выпадающего списка Relationship:
-
на вкладке General
в окнах Parent-to-Child и Child-to-Parent задать имя связи;
| Когда тип связи "многие ко многим", задается только имя связи
| -
Для связей один ко многим, кроме того, задать мощность связи (рамка Cardinality) и уточнить тип (рамка Relationship Type);
2. Использование Erwin для разработки модели данных. Логическая модель. Атрибуты сущностей. Физическая модель.
| Цель : Создать полную атрибутивную модель, т.е. модель, содержащую все сущности в 3-ей нормальной форме со всеми атрибутами и связями. Выполнить преобразование логической модели в физическую.
| Предварительная подготовка Для каждой сущности, созданной в 1-ой части лабораторной работы:
-
подготовить имена атрибутов логического и физического уровня;
-
указать домены типов атрибутов и ограничения на их значения;
-
выделить среди атрибутов или добавить искусственный первичный ключ;
-
задать имя роли для внешних - мигрирующих ключей дочерних сущностей;
-
отметить потенциальные - альтернативные ключи;
-
сделать список инверсионных входов.
Порядок выполнения 2-ой части работы -
Открыть модель, созданную при выполнении лабораторной работы №1 - "Сущности и связи"
-
Создать хранимое отображение “Первичные ключи”(закладка 3):
-
вызвать диалог Stored Display Settingr, выполнив ►Format ►Stored Display… или ►Stored Display… из контекстного меню рабочей области Erwin
-
нажав кнопку New… этого диалога, задать имя нового отображения;
-
в закладке Logical выполнить настройку отображения:
-
рамка Display Level - опция Primary Key
-
рамка Relationship Option - опция Verb Phrase
-
рамка Entity Option - опции Rolename/Attribute, Primary Key Designation, Foreign Key Designation, Show Migrated Attributes, Entity Icon
Ввести первичные ключи в родительские сущности. Для их ввода:
-
Выполнить команду Attributes … из контекстного меню любой сущности для вызова редактора Attributs
-
В выпадающем списке Entity окна редактора выбрать нужную родительскую сущность, например, "Студент"
-
Нажать кнопку New… и создать первичный ключ этой сущности в диалоге New Attribute:
-
задать логическое - Attribute Name имя ключа
-
указать тип щелчком по соответствующему домену (в приведенном примере - String)
-
закрыть диалог New Attribute нажатием на кнопку OK
-
В закладке General включить опцию Primary Key
-
В закладке Definition записать, является ли созданный ключ реальным или автоинкрементным (из-за отсутствия явных уникальных атрибутов)
-
повторить это для других родительских сущностей
Задать имена ролей для мигрирующих ключей:
-
Выполнить команду Relationship Properties из контекстного меню любой связи.
-
В появившемся окне редактора связей выбрать закладку RoleName и набрать имя роли в поле RoleName.
-
Проверить ссылочные правила в закладке RI Actions
При выходе из этих полей имя роли будет присвоено текущему мигрирующему атрибуту.
-
Отобразить полные имена атрибутов (<имя роли>. <функциональное базовое имя>) в хранимом изображении “Первичные ключи”:
-
Выполнить команду Entitiy Display … из контекстного меню окна ERwin.
-
В появившемся списке опций включить опцию RoleName/Attribute. На экран будут дополнительно выведены имена ролей.
Задать первичные ключи для дочерних сущностей (смотри пункт 3). Расположить сущности на экране так, чтобы они хорошо смотрелись, и изменить, если нужно, масштаб изображения; выполнить ►File ►Save. Создать еще одно хранимое изображение - “Атрибуты сущностей” (закладка 4) (в контекстном меню Erwin ►Stored Displa …y, кнопка New…) Сделать настройки для этого изображения, выбрав закладку Logical:
-
рамка Display Lever - выбрать Attribute
-
рамка Relationship Option - отключить отображения всех опций связей
-
рамка Entity Option - включить все опции
Описать все атрибуты всех сущностей, выполнив команду Attributes из контекстного меню любой сущности. В редакторе атрибутов:
-
Пока не кончатся атрибуты текущей сущности:
-
создавать очередной атрибут (кнопка New…)
-
в диалоге New Attribute задавать логическое (Attribute Name) имя атрибута и домен его типа (щелчок мышью)
-
в закладку Definition заносить подробное определение атрибута;
-
в закладку Note - ограничения на значения атрибута, выявленные в процессе обследования.
-
Сменить сущность, выбрав следующую из распахивающегося списка Entity, и повторить создание атрибутов.
Для каждой сущности отметить альтернативные ключи и инверсионные входы.
-
Открыть закладку Key Group редактора атрибутов
-
Для создания новой группы нажать кнопку справа от Key Group Membership, чтобы вызвать диалог Key Group
-
В появившемся диалоге для каждой новой группы ключевых полей, нажимать кнопку New… для вызова диалога New Key Group
-
в рамке Key Group Type этого диалога с помощью переключателя указывать тип группы - альтернативный ключ или инверсионный вход (в приведенном примере - альтернативный ключ)
-
в рамке Name задавать имя ключа
-
нажатием кнопки OK вернуться из диалога New Key Group в Key Group
-
При необходимости добавить атрибуты из списка атрибутов сущности - Available Attributes в список атрибутов созданной группы - Key Group Members.
После создания всех групп и возврата в окно Erwin в модели должны быть отражены все сущности и их атрибуты, а у атрибутов, вошедших в альтернативные ключи или инверсионные входы стоять ссылки на соответствующие группы
В приведенном рисунке для сущности "Студент" созданы два альтернативных ключа "Фамилия, Имя" (АК1) и "Дата рождения" (АК2), а также инверсионный вход "Код группы, дата рождения"(IE1).
-
Создать новое хранимое изображение "Физическая модель", оставив для него те же настройки, что и для "Атрибутов сущностей".
-
Переключиться на физический уровень.
-
Выполнить Forward Engineer/Generate предварительно создав в среде Access пустую базу данных !!!!
-
В окне Access Connection ввести в User Name “ADMIN”, а в окне Database – путь к только что созданной пустой базе данных. Выполнить Connect и просмотреть созданную базу данных в Access-е.
Требования к оформлению отчета Отчет должен содержать:
-
Порядок выполнения работы.
-
Распечатки хранимых изображений.
-
Для каждого атрибута – физическое и логическое имена, домен, словесное описание (Definition), ограничения (Note), значение по умолчанию.
Информация должна быть подготовлена вручную и с помощью созданных в среде ERwin отчетов. Для этого
-
Нажать кнопку (Report Browser) на панели инструментов ERwin.
-
Завести новый отчет File/New ERWin Report, дать ему имя, выбрать категорию и включить соответствующие опции в отчет. Просмотреть отчет.
|
|
|