Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПБД_лабораторная_1

.pdf
Скачиваний:
5
Добавлен:
22.05.2015
Размер:
552.71 Кб
Скачать

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

Уникальность. Два экземпляра не должны иметь одинаковых значений воз- можного ключа. Потенциальный ключ № 3 (Фамилия + Имя + Отчество) является плохим кандидатом, поскольку в организации могут работать полные тезки.

Компактность. Сложный возможный ключ не должен содержать ни одного атрибута, удаление которого не приводило бы к утрате уникальности. Для обеспече- ния уникальности ключа № 3 дополним его атрибутами Дата рождения и Цвет волос. Если бизнес-правила говорят, что сочетания атрибутов Фамилия + Имя + Отчество + Дата рождения достаточно для однозначной идентификации сотруд- ника, то Цвет волос оказывается лишним, т. е. ключ Фамилия + Имя + Отчество

+ Дата рождения + Цвет волос не является компактным.

При выборе первичного ключа предпочтение должно отдаваться более про- стым ключам, т. е. ключам, содержащим меньшее количество атрибутов. В примере ключи № 1 и 2 предпочтительней ключа № 3.

Атрибуты ключа не должны содержать нулевых значений. Если допускается, что сотрудник может не иметь паспорта или вместо паспорта иметь какое-либо дру- гое удостоверение личности, то ключ № 2 не подойдет на роль первичного ключа.

Если для обеспечения уникальности необходимо дополнить потенциальный ключ дополнительными атрибутами, то они не должны содержать нулевых значений. До- полняя ключ № 3 атрибутом Дата рождения, нужно убедиться в том, что даты ро- ждения известны для всех сотрудников.

Каждая сущность должна иметь по крайней мере один потенциальный ключ. Многие сущности имеют только один потенциальный ключ. Такой ключ становится первичным. Некоторые сущности могут иметь более одного возможного ключа. То- гда один из них становится первичным, а остальные - альтернативными ключами. Альтернативный ключ (Alternate Key) - это потенциальный ключ, не ставший первичным. ERwin позволяет выделить атрибуты альтернативных ключей, и по умолчанию в дальнейшем при генерации схемы БД по этим атрибутам будет гене- рироваться уникальный индекс.

При работе с базой данных часто бывает необходимо обеспечить доступ к не- скольким экземплярам сущности, объединенным каким-либо одним признаком. Для повышения производительности в этом случае используются неуникальные индек- сы. ERwin позволяет на уровне логической модели назначить атрибуты, которые бу- дут участвовать в неуникальных индексах. Атрибуты, участвующие в неуникальных индексах, называются Inversion Entries (инверсионные входы). Inversion Entry -

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

Создать альтернативные ключи и инверсионные входы можно в закладке Key Groups (рис. 20). В верхней части диалога находится список ключей, в нижней -

21

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

щелкнуть по кнопке .

Для создания нового ключа следует щелкнуть по кнопке New. Появляется диалог New Key Group (рис. 21).

Рис. 20. Закладка Key Groups

Рис. 21. Диалог Key Group Editor

Имя нового ключа присваивается автоматически ("Alternate Key N" для аль- тернативного ключа и "Inversion Entry N" для инверсионного входа, где N - поряд-

22

ковый номер ключа).

Каждому ключу соответствует индекс, имя которого также присваивается ав- томатически ("XAKNEntity" для альтернативного ключа и " XIENEntity" для инвер- сионного входа, где N - порядковый номер ключа, Entity - имя сущности).

На диаграмме атрибуты альтернативных ключей обозначаются как (AKn.m), где n - порядковый номер ключа, m - порядковый номер атрибута в ключе. Когда альтернативный ключ содержит несколько атрибутов, (AKn.m) ставится после каж- дого.

Рис. 22. Сущность "Сотрудник" с отображением ключей

На рис. 22 атрибуты Фамилия, Имя, Отчество и Дата рождения входят в альтернативный ключ № 1 (АК1), Номер паспорта составляет альтернативный ключ № 2 (АК2). Инверсионные входы обозначаются как (IEn.m), где n - порядко- вый номер входа, m -порядковый номер атрибута. Инверсионный вход IE1 (атри- бут Должность) позволяет выбрать всех сотрудников, занимающих одинаковую должность, IE2 (атрибуты Город и Улица) - всех сотрудников, живущих на одной улице, IE3 (атрибут Номер комнаты) - всех сотрудников, работающих в одной комнате, a IE4 (атрибут Дата рождения) - всех сотрудников, родившихся в один день. Если один атрибут входит в состав нескольких ключей, ключи перечисляются в скобках через запятую (атрибут Дата рождения входит в состав АК1 и IE4). По

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

тем включить опцию Alternate Key Designator (AK).

Внешние ключи (Foreign Key) создаются автоматически, когда связь соеди- няет сущности: связь образует ссылку на атрибуты первичного ключа в дочерней сущности и эти атрибуты образуют внешний ключ в дочерней сущности (миграция ключа). Атрибуты внешнего ключа обозначаются символом (FK) после своего име- ни (см. рис. 22). Атрибут внешнего ключа Где работает. Номер отдела ("Где ра- ботает" - имя роли) является атрибутом первичного ключа (РК) в сущности Отдел.

Зависимая сущность может иметь один и тот же внешний ключ из нескольких родительских сущностей. Сущность может также получить один и тот же внешний

23

ключ несколько раз от одного и того же родителя через несколько разных связей. Когда ERwin обнаруживает одно из этих событий, он распознает, что два атрибута одинаковы, и помещает атрибут внешнего ключа в зависимой сущности только один раз. Хотя в закладке Key Group диалога Attributes этот атрибут будет входить в два внешних ключа, на диаграмме он показывается только один раз. Это комбинирова-

ние или объединение идентичных атрибутов называется унификацией.

Задания

1.Создать новый проект в ERWin.

2.Сформировать модель БД системы, согласно разработанной вами инфоло- гической модели, включить в модель сущности и задать атрибуты.

3.Определить первичные и альтернативные ключи в сущностях.

4.Связать сущности между собой, используя описанные типы связей.

5.После установления связей определить состав внешних ключей.

6.Сохранить полученную диаграмму.

Контрольные вопросы.

1.Назовите уровни методологии IDEF1X.

2.Из каких моделей состоит логический уровень?

3.Из каких моделей состоит физический уровень?

4.Что включает в себя диаграмма сущность-связь?

5.Что включает в себя модель данных, основанная на ключах?

6.Какую информацию содержит трансформационная модель?

7.Что включает в себя полная атрибутивная модель?

8.Что называют моделью СУБД?

9.Какие кнопки панели инструментов позволяют изменить уровень просмот- ра модели?

10.Как сгенерировать схему БД?

11.Назовите основные части ERD-диаграммы.

12.Что называется сущностью?

13.Какие типы связей Вам известны?

14.Чем отличается идентифицирующая связь от неидентифицирующей?

15.Что такое функциональное имя?

16.Что называют первичным ключом?

17.Назовите принципы, согласно которым формируется первичный ключ?

18.Что называют альтернативным ключом?

19.Что называется инверсионным входом?

20.В каком случае образуются внешние ключи?

21.Что называют иерархической рекурсией?

22.Что называют сетевой рекурсией?

23.Что такое «правила ссылочной целостности»?

24