Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лёшка / Маркин Тест 3 / SQL / К ПРАКТИЧ ЗАНЯТИЯМ.doc
Скачиваний:
43
Добавлен:
15.04.2015
Размер:
698.37 Кб
Скачать

Verb Phrase

Если сущность-родитель или сущность-потомок в сложной модели не видна на экране, то для ее отображения ЩПКМ по связи и выберите пункт

Go To Parent или Go TO Child.

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

  • Zero, One or More;

  • One or More;

  • Zero or One и

  • Exactly (точно).

Тип отношения (поле Relationship Type) устанавливается одной из двух кнопок:

  • Identifying – идентифицирующее отношение;

  • Non-Identifying – неидентифицирующее отношение.

Для неидентифицирующей связи можно указать обязательность связи (поле Nulls).

В случае обязательной связи (кнопка No Nulls) при генерации схемы БД атрибут внешнего ключа получает признак Not Null, несмотря на то, что внешний ключ не входит в состав первичного ключа дочерней сущности.

В случае необязательной связи (кнопка Nulls Allowed) внешний ключ может принимать значение Null. Необязательная неидентифицирующая связь помечается на линии связи прозрачным ромбиком со стороны родительской сущности.

Миграция атрибутов.

При установлении идентифицирующего отношения атрибуты первичного ключа родительской сущности автоматически переносятся в состав первичного ключа дочерней сущности. Дочерняя (зависимая) сущность изображается прямоугольником со скругленными углами.

При выборе неидентифицирующего отношения атрибуты первичного ключа мигрируют в состав неключевых атрибутов дочерней сущности.

В дочерней сущности новые атрибуты помечаются как внешний ключ (FK).

В закладке Definition диалога Relationships можно дать более подробное описание каждого вновь созданного отношения.

Перейдите на уровень отображения атрибутов модели и проверьте правильность отображения диаграммы.

Если на диаграмме не отображается имя отношения или значение мощности, то ЩПКМ на свободном месте диаграммы, выберите из выпадающего списка пункт

Relationship Display,

затем отметьте пункты

Verb Phrase и Cardinality.

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

Если не предпринято никаких попыток для их различия, то они объединяются (унифицируются) в один атрибут.

Рис. 46

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

Роли атрибутов. Один и тот же первичный ключ может порождать в дочерней сущности более одного внешнего ключа. Так происходит при миграции атрибута в сущность потомок более чем через одно отношение. В этих случаях атрибут появляется внутри сущности более одного раза, что приводит к необходимости отличать одно появление от другого. Для этого каждому вхождению атрибута в дочернюю сущность может быть присвоено имя роли, показывающее, чем одно появление отличается от другого.

ЩПКМ на линии связи.

Имя роли задается в диалоге :

Relationships ( закладка Rolename)

В примере атрибут Номер кафедры получил имена ролей Обслуживаемая, Своя.

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

Рис. Рекурсивная связь.

Рис.50 Закладка Rolename

По умолчанию в списке атрибутов показывается только имя роли.

Для отображения полного имени атрибута (как имени роли, так и базового имени) ЩПКМ по свободному месту диаграммы и выбрать пункт

Entities Display

и за тем включить опцию

Rolename / Attribute.

Полное имя показывает как имя роли, так и базовое имя, разделенные точкой.

Если ввести несколько рекурсивных связей, то можно:

Создать иерархическую структуру связей в таблице

Руководитель имеет много подчиненных, но подчиненный имеет только одного руководителя.

Отношения между членами семьи любой сложности.

Атрибут ТИП_ОТНОШЕНИЯ может принимать значения «отец-сын», «мать-дочь», «дед-внук» и т.п.

Правила ссылочной целостности (Referential Integrity – RI).

На начальной стадии изучения Erwin можно использовать правила ссылочной целостности, устанавливаемые по умолчанию:

(смотри поля RI Action в закладке RI Action диалога Relationships ).

Правила ссылочной целостности могут отображаться на диаграмме модели (рис.).

Для отображения правил необходимо ЩПКМ по свободному месту диаграммы, выбрать пункт Relationships Display и выбрать Referential Integrity.

Рис. 52

Условные обозначения:

D – Delete ;

U – Update ;

I – Insert ;

R – Restrict;

N – None;

C – Cascade;

SN – SET NULL;

SD – SET DEFAULT.

NA - NO ACTION

Более подробно об этом поговорим позднее (физический уровень).

Связь многие_ко_многим – возможна только на уровне логической модели данных.

ЩПКМ по связи и выберите Create Association Table.

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

Отношение категоризации. Например, в организации работают служащие, занятые полный рабочий день (штатные) и совместители (почасовики). Из их общих свойств можно сформировать общую сущность СЛУЖАЩИЙ.

Специфическая для каждого типа служащего информация может бать расположена в категорных сущностях. Например, ШТАТНЫЙ СЛУЖАЩИЙ и СЛУЖАЩИЙ-ПОЧАСОВИК являются категориями общей сущности СЛУЖАЩИЙ (рис. ).

Для создания отношений категоризации используется специальный графический объект (дискриминатор) – атрибут родового предка, который показывает, как отличить одну категориальную сущность от другой (на рис.53 атрибут – ТИП).

Рис. .

Категории делятся на два типа – полные и неполные. Полная категория помечается символом , неполная.

Для создания категориальной связи следует:

  • установить курсор на кнопке в палитре инструментов и нажать левую кнопку мыши;

  • щелкнуть сначала по родовому предку, а затем по потомку (он должен быть уже создан );

  • для установления следующей связи в иерархии категории следует сначала щелкнуть по символу категории, затем по следующему потомку.

При необходимости редактирования категорий щелкните правой кнопкой мыши по символу категории и выберите в меню пункт

Subtype Relationship .

В этом диалоге укажите атрибут – дискриминатор категории

(список Discriminator )

и тип категории – полная/неполная

(кнопки Complete / Incomplete).

Соседние файлы в папке SQL