Материал: BD_Laboratornyi_774_praktikum

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

Товар

Код товара

Отдел

№ отдела

Наименование

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

Цена

ГОСТ

Название

заказывается состоит из

Рис. 1.3. ER‑диаграмма полной атрибутивной модели

Переход от логической модели данных к физической заключается в том, что сущности преобразуются в таблицы, атрибуты и кортежи становятся соответственно столбцами и строками таблиц, домены отображаются в типы данных, принятые в конкретной СУБД. Таблицы, как и сущности, снабжаются первичными и внешними ключами и связываются между собой с помощью связей типа 1:1 и 1:М. Связи типа М:М при переходе к физической модели преобразуются в пары связей типа 1:М и связующие таблицы.

Если логическая модель представлена в виде ER-диаграммы, то переход к физической модели значительно упрощается. В этом случае с помощью CASE-средства, например ERwin, можно выбрать нужную СУБД и автоматически создать соответствующую физическую модель данных. Затем на ее основе ERwin может сгенерировать системный каталог базы данных или соответствующий SQL-скрипт (описание базы данных на языке SQL). Этот процесс называется прямым проектированием. Тем самым достигается масштабируемость – создав один раз логическую модель данных, можно генерировать физические модели данных под любую СУБД, которую поддерживает ERwin. С другой стороны, ERwin способен по содержимому системного каталога базы данных или SQL-скрипту воссоздать физическую и логическую модели данных. Этот процесс называется обратным проектированием. На основе логической модели, полученной в процессе обратного проектирования, можно сгенерировать физическую модель и системный каталог базы данных для другой СУБД. Тем самым решается задача по переносу структуры базы данных с одной СУБД на другую, например с SQL Server на Oracle или с Access на Sybase и т.д.

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

Раздел I. Создание сущностей в eRwin

Создайте в ERwin новую модель данных. Тип модели (New Model Type) – Логическая/Физическая, целевая база данных (Target Database) – Access.

Логическая (Logical) модель должна включать в себя следующие 6 приведенных ниже сущностей (Entity). При этом первый атрибут в каждой сущности сделайте первичным ключом (Primary Key); атрибуты, отмеченные одной или двумя звездочками, – не создавайте, так как в дальнейшем они будут созданы автоматически в процессе установления связей между сущностями.

Сущность 1: Поставщик

Атрибут (Attribute)

Домен (Domain)

Обязательный атрибут (Not Null)

Код поставщика

Имя поставщика

Условия оплаты

Код региона**

Заметки

Number

String

String

Number

Blob

Да

Да


Сущность 2: Товар

Атрибут (Attribute)

Домен (Domain)

Обязательный атрибут (Not Null)

Код товара

Наименование

ЕдиницаИзм

Цена

Код валюты**

Number

String

String

Number

String

Да

Да


Сущность 3: Клиент

Атрибут (Attribute)

Домен (Domain)

Обязательный атрибут (Not Null)

Код клиента

Имя клиента

ФИО руководителя

Код региона**

Number

String

String

Number

Да

Да


Сущность 4: Заказ

Атрибут (Attribute)

Домен (Domain)

Обязательный атрибут (Not Null)

Код заказа

Код клиента*

Код товара*

Количество

Дата заказа

Срок поставки

Код поставщика**

Number

Number

Number

Number

Datetime

Datetime

Number

Да

Да

Да

Да


Сущность 5: Регион

Атрибут (Attribute)

Домен (Domain)

Обязательный атрибут (Not Null)

Код региона

Страна

Область

Город

Адрес

Телефон

Факс

Number

String

String

String

String

String

String

Да

Да

Да

Да

Да


Сущность 6: Валюта

Атрибут (Attribute)

Домен (Domain)

Обязательный атрибут (Not Null)

Код валюты

Имя валюты

Шаг округления

Курс валюты

String

String

Number

Number

Да

Да


Каждую сущность снабдите кратким описанием ее назначения (Definition). Например, для первой сущности это может быть «Список поставщиков товаров», для второй – «Перечень предлагаемых товаров» и т.д.

Раздел II. Создание связей между сущностями, подмножеств модели и хранимых отображений. Переход к физической модели данных

1. Создайте между сущностями связи типа 1 : М (один ко многим) таким образом, чтобы в результате сущности оказались дополнены атрибутами, отмеченными выше звездочками.

Связь 1:М между парой сущностей, одна из которых рассматривается как родительская, а другая – как дочерняя, создается следующим образом: на панели инструментов нужно нажать одну из двух кнопок создания связи 1:М (идентифицирующей – Identifying relationship или неидентифицирующей – Non-identifying relationship), после чего щелкнуть мышью на родительской сущности, а затем – на дочерней. При этом между сущностями появляется связь и в дочернюю сущность будет автоматически добавлены атрибуты, дублирующие ключевые атрибуты родительской сущности. Эти атрибуты получают название внешнего ключа (FK) и будут включены в состав ключевых (идентифицирующая связь) или неключевых (неидентифицируюшая связь) атрибутов дочерней сущности. Выше в сущностях атрибуты внешних ключей отмечены звездочками, причем одна звездочка указывает на идентифицирующую связь 1:М, а две – на неидентифицирующую связь 1:М.

Например, чтобы в сущности Поставщик появился атрибут Код региона нужно создать неиндефицирующую связь 1:М между родительской сущностью Регион и дочерней сущностью Поставщик.

2. Создайте между сущностями Поставщик и Товар связь типа М:М (многие ко многим). Эта связь создается следующим образом: на панели инструментов нужно нажать кнопку создания связи М:М (Many-to-many relationship), после чего щелкнуть мышью на одной сущности, а затем – на другой.

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

3. Выделите подсветкой одну из связей между сущностями и затем с помощью команды меню Model►Relationships откройте окно Relationships и дайте имя этой, а затем и остальным связям, используя для этого подходящие глаголы или глагольные формы. Для связей 1:М достаточно указать имя, характеризующее отношение или от родительской сущности к дочерней (Parent-to-Child) или от дочерней сущности к родительской (Child-to-Parent). Для связи М:М следует указывать имена как Parent-to-Child так и Child-to-Parent.

Например связи М:М между сущностями Поставщик и Товар можно дать такие имена: «Поставляет» (Parent-to-Child) и «Поставляется» (Child-to-Parent).

4. Измените заданное по умолчанию правило ссылочной целостности RESTRICT (Ограничить) на правило CASCADE (Каскадировать) для двух связей: для связи между сущностями Клиент и Заказ и для связи между сущностями Товар и Заказ. Для этого в окне Relationships перейдите на вкладку RI Actions, выберите вверху с помощью выпадающего списка Relationship нужную связь и далее поменяйте правило RESTRICT на правило CASCADE в каждом из списков: Parent Delete и Parent Update.

5. С помощью команды меню ModelSubject Areas откройте окно Subject Areas и создайте помимо существующего основного множества Main Subject Area еще два подмножества модели: Subject Area 1 и Subject Area 2, включив (вкладка Members) в первое из них сущности Клиент, Поставщик, Регион, а во второе – Товар со всеми непосредственно связанными с ней (Level = 1) сущностями. После этого просмотрите поочередно все три модели, используя для переключения между ними кнопку с выпадающим списком Create Subject Area, расположенную на панели инструментов.

6. С помощью команды меню Format►Stored Display Settings откройте окно Stored Displays и создайте для каждого из подмножеств модели Subject Area 1 и Subject Area 2 по два новых хранимых отображения (Display2 и Display3), отличающиеся друг от друга и от исходного отображения Display1 расположением частей логической модели на экране, масштабом, уровнями просмотра этой модели, видимостью отдельных компонентов сущностей и связей, а также другими характеристиками.