Материал: BD_Laboratornyi_774_praktikum

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Для каждой категории можно указать дискриминатор – атрибут родового предка, который показывает, как отличить одну категориальную сущность от другой.

Кроме прямого и обратного проектирования ERwin поддерживает синхронизацию между логической моделью и системным каталогом СУБД на протяжении всего жизненного цикла создания информационной системы. Как в логическую модель, так и в объекты базы данных можно вносить изменения, после чего ERwin позволяет выполнить cинхронизацию объектов модели и базы данных (то есть привести их в соответствие друг с другом).

Задание к работе

Раздел I. Создание сущностей логической модели

1. Создайте в ERwin модель с именем Фирма. Тип модели – Логическая/Физическая, целевая база данных – Access. Логическая модель должна включать в себя следующие 5 сущностей:

Сущность 1: Подразделение

Атрибут

Домен

Обязательный

атрибут

Первичный

ключ

Номер подразделения

Имя подразделения

Number

String

Да

Да

Да


Сущность 2: Сотрудник

Атрибут

Домен

Обязательный

атрибут

Первичный

ключ

Табельный номер

ФИО

Должность

Оклад

Number

String

String

Number

Да

Да

Да


Сущность 3: Приход

Атрибут

Домен

Обязательный

атрибут

Первичный

ключ

Дата операции

Номер документа

Код товара

Имя товара

Ед_измерения

Количество

Покупная цена

Datetime

Number

Number

String

String

Number

Number

Да

Да

Да

Да

Да

Да


Сущность 4: Расход

Атрибут

Домен

Обязательный

атрибут

Первичный

ключ

Дата операции

Номер документа

Код товара

Имя товара

Ед_измерения

Количество

Отпускная цена

Datetime

Number

Number

String

String

Number

Number

Да

Да

Да

Да

Да

Да


Сущность 5: Перемещение

Атрибут

Домен

Обязательный

атрибут

Первичный

ключ

Дата операции

Номер документа

Код товара

Имя товара

Ед_измерения

Количество

Учетная цена

Datetime

Number

Number

String

String

Number

Number

Да

Да

Да

Да

Да

Да


2. Сохраните модель данных на жестком диске в файле Фирма.erwin.

Раздел II. Создание связей между сущностями и иерархии наследования

1. Создайте неидентифицирующую связь один ко многим (1:М) между родительской сущностью Подразделение и дочерней сущностью Сотрудник.

2. Создайте неидентифицирующую рекурсивную связь 1:М для сущности Подразделение. Для этой связи в свойстве Имя роли (Rolename) укажите имя роли как «Вышестоящее». Включите режим отображения полного имени атрибута, состоящего из имени роли и имени атрибута, разделенных точкой.

3. Создайте неидентифицирующую рекурсивную связь 1:М для сущности Сотрудник. Для этой связи в свойстве Имя роли (Rolename) укажите имя роли как «Руководитель».

4. Создайте новую пустую сущность с именем МатОтветственный.

5. Создайте идентифицирующую связь один ко многим (1:М) между родительской сущностью Подразделение и дочерней сущностью МатОтветственный.

6. Создайте идентифицирующую связь 1:М между родительской сущностью Сотрудник и дочерней сущностью МатОтветственный.

7. Создайте иерархию наследования на основе сущностей Приход, Расход и Перемещение. Для этого нужно создать новую пустую сущность Движение, разместив ее над указанными выше сущностями, после чего переместить в новую сущность общие атрибуты сущностей Приход, Расход и Перемещение, оставив в последних только уникальные атрибуты (по одному в каждой сущности). Кроме того, в сущность Движение добавьте новый атрибут Тип документа (домен String), который будет служить в качестве дискриминатора, т.е. отличать одну категориальную сущность от другой. Далее нужно создать категориальную связь (кнопка Complete sub-category) между новой сущностью и сущностью Приход. Затем категориальная связь устанавливается между появившемся на диаграмме значком категории и сущностью Расход, после чего аналогичным образом связывается и сущность Перемещение. В заключение щелкните правой кнопкой мыши по значку категории и выберите в контекстном меню пункт Subtype Relationships, открыв тем самым диалоговое окно Subtype Relationships. Далее в списке Discriminator Attribute Choice укажите атрибут Тип документа в качестве дискриминатора категории.

8. Создайте неидентифицирующую связь 1:М между родительской сущностью МатОтветственный и дочерней сущностью Движение.

9. Создайте неидентифицирующую связь 1:М между родительской сущностью МатОтветственный и дочерней сущностью Перемещение. Для этой связи в свойстве Имя роли укажите имена ролей для атрибутов Номер подразделения и Табельный номер как «Куда» и «К кому» соответственно.

10. Переключившись в режим показа физической модели проверьте и, в случае необходимости, скорректируйте типы и длины полей, ориентируясь на специфику типов данных СУБД Access. В частности, поле Количество должно иметь тип Single, а поля Учетная цена, Отпускная цена, Покупная цена - тип Currency.

11. Сохраните текущую модель данных на жестком диске.

Раздел III. Выполнение вариантов трансформы категориальной связи

1. В режиме показа физической модели выделите мышью значок категориальной связи и опробуйте каждый из трех вариантов трансформы этой связи с помощью соответствующих кнопок на панели инструментов (Supertype-Subtype Identity, Supertype-Subtype Rollup, Supertype-Subtype Rolldown). Для запуска второго и третьего вариантов трансформы нужно закрыть текущую модель данных без сохранения на диске, после чего снова открыть модель данных из файла Фирма.erwin.

Окончательным сделайте первый вариант трансформы (Supertype-Subtype Identity).

Примечание. Если в окне Model Properties, которое вызывается командой меню ModelModel Properties, на вкладке General установить флажок Auto apply Supertype-Subtype Identity transform, то Erwin будет автоматически выполнять первый вариант трансформы категориальной связи при переключении с логической модели на физическую.

2. Сохраните текущую модель данных на жестком диске.

3. Запустите СУБД Access и создайте новую пустую базу данных Фирма.mdb, после чего закройте Access.

4. В ERwin выполните процесс прямого проектирования (Forward Engineer) с наполнением файла базы данных Фирма.mdb метаданными согласно созданной физической модели данных. После завершения процесса прямого проектирования с помощью команды меню DatabaseDatabase Connection разорвите соединение с базой данных Фирма.mdb путем нажатия кнопки Disconnect.

5. Запустите СУБД Access, откройте базу данных Фирма.mdb и просмотрите структуру полученных таблиц и связей между ними.

Раздел IV. Выполнение методов синхронизации системного каталога базы данных и текущей модели

1. В таблицу Сотрудник базы данных Фирма.mdb внесите следующие изменения: удалите поле Оклад, измените поле Должность на поле Код должности (тип данных – Числовой), замените поле ФИО полями Фамилия, Имя, Отчество, где Фамилия - обязательное поле.

2. Создайте в базе данных Фирма.mdb новую таблицу Должность с полями: Код должности (числовое, первичный ключ), Наименование должности (текстовое, обязательное поле), Оклад по должности (числовое).

3. Откройте окно Схема данных, затем откройте окно Добавление таблицы и добавьте в схему данных созданную таблицу Должность. Далее установите связь (с обеспечением целостности данных) между таблицами Должность и Сотрудник путем перетаскивания первичного ключа из таблицы Должность (поле Код должности) на аналогичное поле таблицы Сотрудник. После этого схема данных должна выглядеть примерно так, как показано на рис. 2.1. Далее закройте СУБД Access.

Рис. 2.1. Схема данных для базы данных Фирма

4. В ERwin выполните процесс синхронизации системного каталога базы данных и текущей модели данных. Суть этого состоит в том, чтобы изменения, внесенные в базу данных, вызвали соответствующие изменениям и в модели данных. Для этого нажмите кнопку Complete Compare на панели инструментов и запустите мастер синхронизации. В нем можно выполнить сравнение двух моделей данных – левой и правой (Left Model и Right Model), получить список различающихся элементов и привести их в соответствие друг другу на основе левой или правой модели. По умолчанию в качестве левой модели используется текущая модель данных, с которой работает Erwin. В качестве правой модели можно использовать: