Установление связей между сущностями. Построение моделей в ERwin Erwin создание логической модели

Установление связей между сущностями. Построение моделей в ERwin Erwin создание логической модели
Установление связей между сущностями. Построение моделей в ERwin Erwin создание логической модели

6. Моделирование в ERwin

Место ERwin в информационном моделировании
Процесс построения информационной модели состоит из следующих шагов:

  • определение сущностей;
  • определение зависимостей между сущностями;
  • задание первичных и альтернативных ключей;
  • определение атрибутов сущностей;
  • приведение модели к требуемому уровню нормальной формы;
  • переход к физическому описанию модели: назначение соответствий имя сущности - имя таблицы, атрибут сущности - атрибут таблицы; задание триггеров, процедур и ограничений;
  • генерация базы данных.

ERwin создает визуальное представление (модель данных) для решаемой задачи. Это представление может использоваться для детального анализа, уточнения и распространения как части документации, необходимой в цикле разработки. Однако ERwin далеко не только инструмент для рисования. ERwin автоматически создает базу данных (таблицы, индексы, хранимые процедуры, триггеры для обеспечения ссылочной целостности и другие объекты, необходимые для управления данными).

Отображение логического и физического уровня модели данных в ERwin

В ERwin существуют два уровня представления и моделирования - логический и физический. Логический уровень означает прямое отображение фактов из реальной жизни. Например, люди, столы, отделы, собаки и компьютеры являются реальными объектами. Они именуются на естественном языке, с любыми разделителями слов (пробелы, запятые и т.д.). На логическом уровне не рассматривается использование конкретной СУБД, не определяются типы данных (например, целое или вещественное число) и не определяются индексы для таблиц.
Целевая СУБД, имена объектов и типы данных, индексы составляют второй (физический) уровень модели ERwin.
ERwin предоставляет возможности создавать и управлять этими двумя различными уровнями представления одной диаграммы (модели), равно как и иметь много вариантов отображения на каждом уровне.

Компоненты диаграммы ERwin и основные виды представлений диаграммы

Диаграмма ERwin строится из трех основных блоков - сущностей, атрибутов и связей. Если рассматривать диаграмму как графическое представление правил предметной области, то сущности являются существительными, а связи - глаголами.
Выбор между логическим и физическим уровнем отображения осуществляется через линейку инструментов или меню. Внутри каждого из этих уровней есть следующие режимы отображения:

  • Режим "сущности" - внутри прямоугольников отображается имя сущности (для логической модели) или имя таблицы (для физического представления модели); служит для удобства обзора большой диаграммы или размещения прямоугольников сущностей на диаграмме.
  • Режим "определение сущности" служит для презентации диаграммы другим людям.
  • Режим "атрибуты". При переходе от предметной области к модели требуется вводить информацию о том, что составляет сущность. Эта информация вводится путем задания атрибутов (на физическом уровне - колонок таблиц). В этом режиме прямоугольник-сущность делится линией на две части - в верхней части отображаются атрибуты (колонки), составляющие первичный ключ, а в нижней - остальные атрибуты. Этот режим является основным при проектировании на логическом и физическом уровнях.
  • Режим "первичные ключи" - внутри прямоугольников - сущностей показываются только атрибуты/колонки, составляющие первичный ключ.
  • Режим "пиктограммы". Для презентационных целей каждой таблице может быть поставлена в соответствие пиктограмма (bitmap).
  • Режим "показ глагольной фразы". На дугах связей показываются глагольные фразы, связывающие сущности (для логического уровня) или имена внешних ключей (для физического уровня).

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

Инструменты для создания модели в ERwin

Основные инструменты создания модели доступны как из меню, так и через окно инструментов. С их помощью создаются независимые и зависимые сущности, идентифицирующие и неидентифицирующие связи, полные и неполные категории, неспецифические связи и текстовые элементы.
Нажатием мыши над сущностью производится вход в один из многочисленных редакторов ERwin:

  • редакторы, связанные с сущностью в целом (определение сущности, дополнительная информация, триггеры, индексы, характеристики таблицы, хранимые процедуры, связанные с таблицей);
  • редакторы атрибутов (определение атрибутов, колонки таблицы в физическом представлении модели, репозитарий средства 4GL, например, расширенные атрибуты в PowerBuilder).

Идентификация сущностей. Сущности в ERwin

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

  • атрибуты, составляющие первичный ключ;
  • неключевые атрибуты;
  • тип сущности (независимая/зависимая).

Первичный ключ - это атрибут или набор атрибутов, уникально идентифицирующий экземпляр сущности. Если несколько наборов атрибутов могут уникально идентифицировать сущность, то выбор одного из них осуществляется разработчиком на основании анализа предметной области.
Для каждого первичного ключа ERwin создает при генерации структуры БД уникальный индекс.
Экземпляры независимой сущности могут быть уникально идентифицированы без определения ее связей с другими сущностями; зависимая сущность, наоборот, не может быть уникально идентифицирована без определения ее связей с другими сущностями. Зависимая сущность отображается в ERwin прямоугольником с закругленными углами.

Связи (relationships) в ERwin

Связь - это функциональная зависимость между двумя сущностями (в частности, возможна связь сущности с самой собой). Например, важно знать фамилию сотрудника, и не менее важно знать, в каком отделе он работает. Таким образом, между сущностями "отдел" и "сотрудник" существует связь "состоит из" (отдел состоит из сотрудников). Связь - это понятие логического уровня, которому соответствует внешний ключ на физическом уровне. В ERwin связи представлены пятью основными элементами информации:

  • тип связи (идентифицирующая, неидентифицирующая, полная/неполная категория, неспецифическая связь);
  • родительская сущность;
  • дочерняя (зависимая) сущность;
  • мощность связи (cardinality);
  • допустимость пустых (null) значений.

Связь называется идентифицирующей, если экземпляр дочерней сущности идентифицируется через ее связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в первичный ключ дочерней сущности. Дочерняя сущность при идентифицирующей связи всегда является зависимой.
Связь называется неидентифицирующей, если экземпляр дочерней сущности идентифицируется иначе, чем через связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в состав неключевых атрибутов дочерней сущности.
Для определения связей ERwin выбирается тип связи, затем мышью указывается родительская и дочерняя сущность. Идентифицирующая связь изображается сплошной линией; неидентифицирующая - пунктирной линией. Линии заканчиваются точкой со стороны дочерней сущности.
При определении связи происходит миграция атрибутов первичного ключа родительской сущности в соответствующую область атрибутов дочерней сущности. Поэтому такие атрибуты не вводятся вручную.
Атрибуты первичного ключа родительской сущности по умолчанию мигрируют со своими именами. ERwin позволяет ввести для них роли, т.е. новые имена, под которыми мигрирующие атрибуты будут представлены в дочерней сущности. В случае неоднократной миграции атрибута такое переименование необходимо. Например, сущность "посредническая сделка" имеет атрибут "код предприятия-продавца" и "код предприятия-покупателя". В данном случае первичный ключ сущности "предприятие" ("код предприятия") имеет две роли в дочерней сущности.
На физическом уровне имя роли - это имя колонки внешнего ключа в дочерней таблице.
Мощность связи представляет собой отношение количества экземпляров родительской сущности к соответствующему количеству экземпляров дочерней сущности. Для любой связи, кроме неспецифической, эта связь записывается как 1:n.
ERwin в соответствии с методологией IDEF1X предоставляет 4 варианта для n, которые изображаются дополнительным символом у дочерней сущности: ноль, один или больше (по умолчанию); ноль или один; ровно N, где N - конкретное число.
Допустимость пустых (NULL) значений в неидентифицирующих связей ERwin изображает пустым ромбиком на дуге связи со стороны родительской сущности.
Обозначения мощности соответственно ноль, один или больше, один или больше, ноль или один в нотации IE приведены на рис. 1.

Рис.1. Обозначения мощности связи в нотации IE

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

Графическое редактирование модели

Соглашения

Примем некоторые соглашения для краткости последующего изложения:

· Щелчок - нажатие на левую кнопку мыши.

· Правый щелчок - нажатие на правую кнопку мыши.

· Двойной щелчок - два последовательных нажатия на кнопку мыши

· Выбрать - подвести курсор к соответствующему объекту (элементу диаграммы, пункту меню, пиктограмме) и щелкнуть левой кнопкой мыши.

· Перетащить- выбрать объект и, не отпуская кнопку мыши, переместить курсор в другое положение.

· Запись типа File/Open означает, что нужно выбрать пункт меню File, a затем из раскрывшегося меню - пункт Open.

Рабочий стол ERwin

На рис. 1 представлен рабочий стол программного продукта ERwin фирмы Logic Works.

Рис.1- Рабочий стол Erwin.

На рисунке 1 цифрами обозначено:

1- главное меню;

2- панель инструментов;

3- набор специальных инструментов;

4- панель шрифтов и цветов;

5- поле диаграммы.

Рассмотрим подробнее составные части рабочего стола.

Главное меню содержит команды общего назначения. Заметим, что большинство этих команд дублируются либо пиктограммами панели инструментов, либо пунктами меню, всплывающего по правому щелчку мыши. Поэтому остановимся сейчас на командах, относящихся к общему виду рабочего стола. Пункт Window имеет следующие подпункты:

Toolbar - панель инструментов;

Font & Color Toolbar - панель шрифтов и цветов;

Statusbar - строка состояния;

ERwin Toolbox - набор специальных инструментов.

Если какой-либо из перечисленных пунктов не отмечен, то соответствующий элемент не отображается на рабочем столе. Пункты Option / Show Display Menu и Option / Show Editor Menu добавляют в главное меню дополнительные 1гуш;ты: Display и Editor.

Панель инструментов содержит следующие группы пиктограмм:

Работа с файлами:

Создать новую диаграмму;

Открыть существующую диаграмму;

Отправить диаграмму на печать.

Заметим, что эти пиктограммы дублируются командами пункта главного меню File.



Уровни представления модели:

Уровень сущностей;

Уровень атрибутов;

Уровень описания;

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

Эти инструменты дублируются пунктом меню Display. Он содержит дополнительные уровни представления: Primary Key Level - демонстрируются только первичные ключи, Physical Order Level - атрибуты не делятся на ключевые и неключевые.

Масштабирование:

Уменьшить;

Увеличить;

Без увеличения;

Наиболее мелкий (дальнейшее уменьшение приведет к нечитаемости схемы);

Просмотреть часть (после выбора этого инструмента выделите на рабочем поле фрагмент, который нужно просмотреть).

Все действия этой группы дублируются пунктом Display/ /Zoom.

Работа с сервером:

Сгенерировать скрипт для сервера;

Подключиться к серверу;

Выбрать сервер.

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

Выбор объекта;

Манипулирование атрибутами;

Независимая сущность;

Зависимая сущность;

Полное разбиение на категории;

Неполное разбиение на категории;

Идентифицирующая связь «один ко многим»;

Неидентицирующая связь «одой ко многим»;

Связь «многие ко многим»;

Текстовая метка.

КОНЦЕПТУАЛЬНОЕ ПРОЕКТИРОВАНИЕ

Создание сущностей

Сущности на концептуальной схеме могут быть зависимыми и независимыми. На диаграмме любая сущность изображается прямоугольником. Над ним располагается имя сущности. Прямоугольник разбит на две части: верхняя - область первичного ключа; нижняя - область остальных атрибутов. При построении сущности прямоугольник первоначально пустой, а имя имеет вид E/n (например, Е/1, Е/2 и т.д.).

Чтобы построить независимую сущность, нужно щелкнуть на соответствующей пиктограмме из набора специальных инструментов, а затем щелкнуть на поле диаграммы в том месте, где должна располагаться создаваемая сущность. Для построения зависимой сущности нужно выбрать инструмент «Зависимая сущность» и щелкнуть на поле диаграммы. Заметим, что прямоугольник, изображающий такую сущность, имеет скругленные углы. При построении диаграммы практически нет необходимости непосредственно задавать зависимые сущности, так как ERwin преобразует обычные сущности в зависимые при организации связей или разбиении на категории.

Если проектировщика не устраивает положение сущности на поле, то нужно выбрать пиктограмму «Указать на объект» из набора специальных инструментов и перетащить сущность на новое место. Для удаления выделенной сущности воспользуйтесь клавишей Delete на клавиатуре. Изменить размеры прямоугольника, изображающего сущность, можно, выбрав пункт главного меню Option / Entity Size. Пункт меню Option / Layout применяется для упорядочения положения сущностей на поле.

Теперь определим имя сущности и характерные для нее атрибуты. Для этого служит пункт Entity-Attribute из меню, всплывающего по правому щелчку мыши. В поле Entity Name открывшегося редактора вводится название сущности. Используя переключатель, можно изменить зависимость сущности. Поле редактирования Primary Key предназначено для ввода наименований атрибутов, составляющих первичный ключ. В поле Non-Key Attributes вводятся неключевые атрибуты. Заметим, что в обоих случаях для отделения атрибутов друг от друга используется клавиша Enter на клавиатуре. На рис. 2 приведен пример независимой сущности.

Рис. 2 - Независимая сущность

Для добавления расширенного описания сущности (Definition) и общего просмотра всех сущностей воспользуйтесь пунктом Report / Entity Browser.

В ERwin существует возможность манипулирования отдельными атрибутами. Для этого выберите пиктограмму «Манипулирование атрибутами». В таком режиме можно:

· Удалить атрибут. Для этого выделите отдельный атрибут и нажмите Delete на клавиатуре.

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

· Переместить атрибуты между сущностями. Методика этого действия аналогична предыдущей. Если при перемещении атрибута нажата клавиша Ctrl, то он скопируетеся в другую сущность.

Построение связей

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

Рис.3. – Идентифицирующая связь

Неидентифицирующая связь строится аналогичным образом. Она изображается пунктирной линией и ромбом у прямоугольника, отображающего родителя. Такой ромб означает, что существование родителя необязательно, т.е. поле внешнего ключа может иметь значение nul. Построение неидентифицирущей связи в ERwin характеризуется перенесением первичного ключа родителя в состав неключевых атрибутов потомка. На рис.4 приведена неидентифицирующая связь.

Рис. 4. - Неидентифицирующая связь

Как уже отмечалось, проектирование связи «многие ко многим» приводит к возникновению новой сущности. Пример построения связи этого типа между сущностями first и second приведен на рис. 5.

Рис. 5. - Связь вида "многие ко многим"

Просмотреть и изменить описание связи можно, используя пункт Rela­tionship из меню, всплывающего по правому щелчку мыши на связи. В открывшемся окне указываются:

· Название связи (поле Verb Phrase).

· Тип связи (Relationship Type): идентифицирующая (Identifying) или неидентифицирующая (Non-Identifying).

· Кардинальность связи (Cardinality). ERwin позволяет задать нижеприведенные виды связей.

1. Ноль, один или более. Наличие такой кардинальности не вносит дополнительных обозначений в диаграмму.

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

3. Ноль или один. Кардинальность обозначается буквой Z.

4. Заданная. В этом случае поле Exactly должно содержать число, характеризующее кардинальность. Такая связь обозначается числом у прямоугольника, отображающего потомка.

· Возможность существования Null - значений (переключатель Nulls).

· Роль внешнего ключа. В этом случае название роли записывается в поле Role Name. При этом поле Foreign Key редактора содержит конструкцию <имя роли>.<имя первичного ключа родителя>.

Если на диаграмме не отображены имена или кардинальности связи, то необходимо поставить указатели напротив пунктов Display / Verb Phrase и Dis­play /Cardinality.

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

Разбиение сущностей на категории в ERwin показано на аналогично рис. 6.

Рис. 6 - Полное разбиение на категории

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

Полностью описать главную сущность;

Построить сущности-категории;

Выбрать пиктограмму полного или неполного разбиения на категории из набора специальных инструментов;

Щелкнуть на главной сущности;

Щелкнуть на одной из категорий;

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

Для удаления связи одной из категорий с главной сущностью нужно выделить соответствующую ветвь и нажать Delete на клавиатуре. Если необходимо удалить целиком разбиение на категории, укажите на знак категории и нажмите Delete.

ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ

Логическое проектирование начинают с выбора модели данных. Все СУБД, с которыми работает ERwin, являются реляционными, это и определяет выбор модели данных.

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

Важным этапом логического проектирования является определение стратегии поддержания целостности информации. Чтобы установить стратегию по умолчанию для различных типов связей, нажмите кнопку Referential Integrity Default в окне выбора СУБД. ERwin предлагает три типа стратегий:

1. Restrict - запрещающая. Она характеризуется запрещением действий со связанными сущностями.

2. Cascade - каскадная. Такая стратегия заключается в осуществлении каскадных операций над связанными сущностями.

3. Set Null - нулевая. Эта стратегия заключается в установлении Null - значения поля.

После выбора СУБД приступим к описанию данных в ее терминах. Для этого нужно выбрать из меню, всплывающего по правому щелчку на сущности, пункт <имя выбранной СУБД> Database Schema. В открывшемся окне можно задать имена таблиц и их полей, а также характеристики этих полей.

На практике часто бывает, что не все связи какого-либо типа определяются одинаковыми стратегиями поддержки ограничений целостности. Для изменения стратегий по конкретной связи воспользуйтесь пунктом Referential Integrity из меню, всплывающего по правому щелчку на связи. Если на диаграмме отсутствует информация о выбранных стратегиях, поместите указатель напротив пункта Display / Referenda Integrity.

Чтобы построить скрипт для выбранной СУБД, нажмите пиктограмму «Сгенерировать скрипт для сервера». При этом ERwin строит схему базы данных согласно определенным таблицам. Если выбранная СУБД поддерживает написание триггеров, то они строятся в зависимости от выбранных стратегий поддержки ограничений целостности.

ФИЗИЧЕСКОЕ ПРОЕКТИРОВАНИЕ

На этом этапе проектирования добавим дополнительные индексы к полученной схеме. Для этого воспользуйтесь пунктом <имя СУБД> Index меню, всплывающего по правому щелчку на сущности. В открывшемся окне нажмите кнопку New для построения нового индекса, после чего укажите атрибут для него, щелкнув на визуальном изображении этого атрибута. Заметим, что теперь на общей диаграмме атрибуты, по которым построены индексы, отмечены буквами АК. Это значит, что они являются альтернативными ключами.

ЗАДАНИЕ

1. Построить с использованием ERwin концептуальную схему базы данных для органа по сертификации. Описание предметной области приведено ниже.

Орган по сертификации аккредитован на выдачу сертификатов по некоторым видам продукции. Каждый вид продукции описывается кодом (согласно классификатору), наименованием типа (например, молочная продукция) и видом (например, молоко). На каждый вид продукции может существовать несколько нормативных документов, а действие каждого нормативного документа распространяется на несколько видов продукции. Нормативный документ характеризуется уровнем (ГОСТ, ОСТ и т.п.), номером и названием.

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

Клиент может обратиться в орган по сертификации с одним из двух видов заявления на сертификацию: заявкой или декларацией. В зависимости от этого оформляются различные виды внутренней документации и хранится различная информация.(Таблица1)

Таблица 1

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

Орган по сертификации хранит информацию о своих сотрудниках (личный код, фамилия, должность и адрес). Кроме того, необходимо знать, какую именно работу и по какому заявлению выполнил сотрудник. Работы, проводимые по заявлению, могут быть четырех видов: оформить заявление, принять решение по заявке, принять решение о выдаче сертификата, выдать сертификат. По одному и тому же заявлению различные виды работ могут выполнять разные сотрудники. В концептуальной схеме обязательно должно присутствовать разбиение на категории. Кроме того, необходимо использовать роли внешних ключей.

2. Преобразовать концептуальную схему в таблицы выбранной СУБД с использованием ERwin. Построить триггеры.

3. Создать для базы данных трех пользователей со следующими правами:

1) «Отчеты» - право чтения на всю информацию (другие права отсутствуют);

2) «Справочники» - все права на информацию о сотрудниках, клиентах, продукции и нормативных документах;

3) «Документация» - все права на информацию о внутренней документации органа по сертификации и клиентах; право чтения на данные о продукции и нормативных: документах.

Отчет должен содержать:

Распечатку концептуальной схемы из ERwin;

Обоснование выбора стратегий поддержки ограничений целостности базы;

Структуру таблиц и триггеров;

Описание средств создания пользователей базы.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Какие виды связей могут существовать в предметной области?

2. Как устранить из схемы базы данных связь вида «многие ко многим»?

3. В чем различие идентифицирующей и неидентифицирующей связей?

4. В каких случаях возникает необходимость описания ролей внешних ключей?

5. Чем можно обосновать выделение категорий?

6. В чем различие полного и неполного разделения на категории?

7. Какие виды стратегий поддержки ограничений целостности применялись при выполнении лабораторной работы?


Список используемой литературы

1. Дейт К.Дж. Введение в системы баз данных.- Учеб. пособие: Пер.с англ. – 6-е изд. – М.и др.: Вильямс, 2000. – 846 с.

2. Робинсон С. Microsoft Access 2000: учеб. курс: пер. с англ. – СПБ.: Питер, 2001. – 511 с.

3. Кузнецов С.Д. Основы баз данных: Курс лекций: Учеб. пособие.М.:Интернет-ун-т Информ. технологий, 2005.-484 с.

4. Гофман В.Э.,Хомоненко А.Д. Работа с базами данных в Delphi. СПБ.:Dhv,2002.-656 с.

5. Маклаков С.В. Bpwin и Erwin. Cаse-средства разработки информационных систем.-М.:Диалог-Мифи, 2003.-254с.

6. Малыхина М.П. Базы данных: основы, проектирование, использование:Учеб. пособие для вузов.-2-е изд.-СПБ.:БХВ-Петербург,2006.-517 с.

Создание сущностей и информации о них - это только часть картины. Связями называются логические соединения или ассоциации между двумя сущностями. Если Вы не знакомы с типами связей, которые поддерживаются в ER

win , обратитесь к руководству по методам ER win Methods Guide .

В этой главе Вы узнаете, как:

Создавать новую связь Переносить внешние ключи на зависимые сущности Входить в редактор Relationship Входить в редактор Relationship Definition Корректировать расположение "изгиба" связи

Существует некоторый базовый объем информации, которую Вы должны знать, прежде чем Вы начнете рисовать связи.

Что такое связь Как входить в нужные редакторы Какие инструменты из toolbox Вам понадобятся

Анатомия связи

Данные, относящиеся к связям, очень важны и часто являются критическими данными, которые мы используем в повседневном бизнесе. Например, важно знать о каком-то типе инструмента, но знание того, к кому относится конкретный инструмент (связь между человеком и инструментом) может иметь критическую важность. Связь - это соотношение либо между двумя сущностями, либо между сущностью и этой же сущностью. Связь - "логический" объект, представленный одним или несколькими атрибутами - внешними ключами. Связь в ER

win обычно содержит пять типов информации: тип связи, родительский конец связи, дочерний конец связи, знак "обязательности" связи и кардинальность связи.

Как показать на экране меню Editor

поставляется со строкой меню, в которой отсутствует меню Editor. Вы всегда можете войти в меню Display и Editor нажатием правой кнопки мыши. Указывая стрелкой курсора на диаграмму, вы вызываете на экран меню Display, а указывая курсором на объект, вызываете меню, содержащее все редакторы, связанные с этим объектом. Вместе с тем Вы можете показать меню Editor в строке меню или убрать его оттуда.

1. Дайте команду переключателя "Show Editor Menu" в меню Option для того, чтобы показать меню Editor в строке меню.

2. Для того, чтобы убрать меню Editor из строки меню, повторите эту команду.

Поддержка связей в Toolbox

win Toolbox есть пять типов связей: идентифицирующая, неидентифицирующая, полный кластер подтипов, неполный кластер подтипов, неопределенная (связь"многие-ко-многим"). Идентифицирующая связь - такая связь, при которой экземпляр дочерней сущности идентифицируется через свою ассоциацию с родительской сущностью. Атрибуты первичного ключа родительской сущности становятся атрибутами первичного ключа дочерней. Неидентифицирующая связь - это такая связь, при которой экземпляр дочерней сущности не идентифицируется через свою ассоциацию с родительсой сущностью. Атрибуты первичного ключа родительской сущности становятся неключевыми атрибутами дочерней. См. также гл. 9, Связи: возможности повышенного уровня сложности, разд. "Задание неидентифицирующих связей" и "Создание связей подтипов".

1. Установите курсор на тот инструмент, который Вам нужен, и нажмите левую кнопку мыши.

идентифицирующая связь неидентифицирующая связь

2. Щелкните по родительской, а затем по дочерней сущности для создания связи.

Использование pop-up меню Editor для связей

содержит специальную сокращенную версию меню Editor для связей. Если Вы щелкнете правой кнопкой мыши по связи, находящейся в окне диаграммы, то ER win выведет на экран сокращенный, контекстно-чувствительный вариант меню Editor, которое содержит только редакторы, ориентированные на связи.
См. гл. 3, Сущности и атрибуты в
ERwin , разд. "Использование редакторов ER win ".

Если Вы установите курсор на линию связи, нажмете SHIFT и дважды щелкнете левой кнопкой мыши, то появится окно-диалог, в котором ERwin спросит Вас, хотите ли Вы открыть активный редактор для родительской или для дочерней сущности. Выберите нажатием кнопки мыши родительскую или дочернюю сущность и нажмите "ОК".

Создание связи

Создать связь в ER

win легко. В этом разделе описывается, как создать связь и ввести необходимые данные по ней.

Как создать связь

1. На Toolbox выберите инструмент, соответствующий нужному типу связи (идентифицирующая связь - простая линия с одной точкой на конце, неидентифицирующая связь - пунктирная линия, у которой может быть (но не обязательно) ромбик на одном конце и точка на другом).

2. Нарисуйте связь: щелкните сначала по родительской, а затем по дочерней сущности.

Когда Вы сформируете связь, то ключ родительской сущности автоматически появится в качестве части ключа дочерней (для идентифицирующей связи) или в качестве неключевого атрибута дочерней сущности (для неидентифицирующей связи), причем рядом с ним будет стоять (FK), то есть внешний ключ, Foreign Key. Эта операция изменения дочерней сущности вследствие создания связи называется миграцией ключа

.

Поскольку ERwin автоматически производит миграцию ключей, Вам не нужно вводить внешние ключи. Если Вы это сделаете, то получите повторяющиеся атрибуты и колонки, что приведет к конфликтной ситуации в Вашем проекте.

Работа в редакторе Relationship

Связи, как и сущности, могут иметь имена и метки. Эти метки называются глагольными фразами, они должны описывать, каким образом родительская сущность связана с дочерней. Редактор Relationship позволяет Вам задать глагольную фразу, кардинальность и отношение к нулевым значениям для связи.

Вы можете также задать в редакторе Relationship имя роли для атрибута - внешнего ключа. См. также гл. 8, Сущности и атрибуты: возможности повышенного уровня сложности, разд. "Использование имен ролей атрибутов".

Как открыть редактор Relationship

1. Дайте команду "Relationship" в меню Editor.

2. Дважды щелкните по линии той связи, которую Вы хотите редактировать. Вы войдете в редактор Relatio

nship.

Установите курсор на линию связи и щелкните правой кнопкой мыши. Вы войдете в pop-up меню Editor. Дайте в нем команду "Relationship".

Как пользоваться редактором Relationship

1. Введите имя, которое идентифицирует связь, в окно "Verb Phrase".

Обычно именем связи служит глагольная фраза (verb phrase). Старайтесь, чтобы имена связей как можно более полно их описывали! Редактор Relationship показывает первые четыре строки глагольной фразы и позволяет Вам вводить и просматривать даже большее число строк.

Для перехода на новую строку используйте клавишу "Возврат каретки". ER

win изображает глагольную фразу на диаграмме в то самое время, когда Вы вводите ее в редакторе.

2. Рядом с областью для ввода глагольной фразы находится список "Foreign Keys", который содержит все внешние ключи, которые возникли в результате миграции при задании текущей связи.

3. Если тип связи еще не задан, задайте его нажатием на кнопку выбора: "Identifying" или "Non-Identifying".

4. Нажмите нужные кнопки выбора в окнах "Cardinality" и "Nulls" для задания кардинальности и режима нулевых значений для текущей связи.

5. Если Вы хотите связать имя роли с внешним ключом, щелкните по атрибуту в окне-списке "Foreign Key" и введите имя роли в текстовое окно "Role Name".

См. гл. 8, Сущности и атрибуты: возможности повышенного уровня сложности, разд. "Использование имен ролей атрибутов".

Как просматривать окно VERb Phrase

Вы можете пользоваться стрелками для прокручивания текста в окне "Verb Phrase" для того, чтобы просмотреть весь текст длинной глагольной фразы.

Задание кардинальности связи

Кардинальность связи

служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней. Родительская сущность может связываться с дочерней одним из четырех способов. В IDEF1X кардинальность бинарных отношений равна 1:n, где n может принимать значения: 0, 1 или более - обозначается "пустым местом"
Каждая родительская сущность связана с 0, 1 или более экземпляров дочерней.
1 или более - обозначается буквой "Р"
Каждая родительская сущность связана с 1 или более экземпляров дочерней.
0 или 1 - обозначается буквой "Z"
Каждая родительская сущность связана с 0 или 1 экземпляром дочерней.
ровно n, где "n" - некоторое число
Каждая родительская сущность связана с ровно n экземплярами дочерней.

Редактор Relationship также позволяет Вам задавать кардинальность связи.

1. Находясь в редакторе Relationship, нажмите кнопку выбора, обозначающую нужную Вам кардинальность.

2. Если Вы нажали кнопку "Exactly", то необходимо ввести число.

Если Вы задали этот режим и не ввели число, то ER

win не даст Вам выйти из окна-диалога.

Как показать кардинальность связи

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

Как показать или убрать кардинальность связи

1. Дайте команду "Cardinality" в меню Display.

2. Для того, чтобы убрать информацию о кардинальности, повторите эту команду.

См. также гл. 11, Документирование правил (Business Rules), разд. "Использование кардинальности связи для выражения правил".

Задание режима Null (нулевых значений)

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

Как задать "обязательную" или
"необязательную" связь

1. Находясь в редакторе Relationship, нажмите кнопку "No Nulls" для задания "обязательной" связи (ромбик на родительском конце отсутствует), или нажмите кнопку "Nulls Allowed" для задания "необязательной" связи (с ромбиком на родительском конце).

Работа в редакторе Relationship Definition

Вы можете также захотеть дать более полное определение Вашей связи для того, чтобы в дальнейшем иметь возможность на него ссылаться. Это делается в редакторе Relanship Definition.

1. Дайте команду "Relationship Definition" в меню Editor, если Вы еще ее не давали.

2. Дважды щелкните по той связи, которую Вы хотите отредактировать.

Установите курсор на ту связь, которую Вы хотите отредактировать, и нажмите правую кнопку мыши. Дайте команду "Relationship Definition" в меню Editor.

Если при попытке дважды щелкнуть по связи Вы получили сообщение "Select an Object First", это значит, что Вы щелкнули не точно по линии связи. Нажмите кнопку "ОК" в окне сообщения, для того чтобы убрать его с экрана, и попробуйте снова. Постарайтесь щелкнуть точно по линии.

Как пользоваться редактором Relationship Definition

1. Имя связи, если оно есть, находится в окне "Verb Phrase". Если хотите, можете его отредактировать.

2. Отредактируйте, как нужно, физическое имя связи "Relationship Physical Name".

3. Введите определение в окно "Rel

ationship Definition".

4. После того, как Вы закончите работу, нажмите кнопку "ОК" для того, чтобы сохранить информацию и выйти из редактора. Для выхода из редактора без сохранения изменений нажмите кнопку "Cancel".

Коррекция связей

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

Как откорректировать связь

1. Щелкните по той связи, которую Вы хотите отредактировать. На экране появится "рычаг" связи (темный квадрат) . Он определяет место на линии связи, которое можно переносить.

2. Щелкните по любому месту того сегмента линии связи, где изображен рычаг.

3. Не отпуская левой кнопки мыши, измените расположение линии связи в соответствии с Вашим вкусом и затем отпустите кнопку мыши.

Никогда не забывайте регулярно сохранять изменения, которые Вы вносите в диаграмму.

Краткое повторение главы 4

Как показать или убрать меню Editor

Дайте команду "Show Editor Menu" в меню Option для того, чтобы показать меню Editor в строке меню. Для того, чтобы убрать меню Editor из строки меню, повторите эту команду.

Как пользоваться инструментами, ориентированными на связь

Установите курсор на нужный Вам инструмент и щелкните левой кнопкой мыши.

Как создать новую связь

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

Как произвести миграцию внешних ключей в зависимые сущности

Ничего не делайте. ERwin автоматически производит миграцию внешних ключей при создании связи. Никогда не вводите внешние ключи самостоятельно.

Как войти в редактор Relationship

Убедитесь, что режим "Relationship" активен в меню Editor, а затем дважды щелкните по той связи, которую Вы хотите отредактировать.

Как задать кардинальность связи

Находясь в редакторе Relationship, нажмите одну из кнопок выбора в окне "Cardinality" для того, чтобы задать кардинальность связи. Если Вы нажали кнопку "Exactly", то необходимо ввести точное значение кардинальности в текстовое окно, расположенное рядом с названием кнопки.

Как войти в редактор Relationship Definition

Убедитесь, что режим "Relationship Definition" активен в меню Editor, а затем дважды щелкните по той связи, которую Вы хотите отредактировать.

Как откорректировать форму линии связи

Щелкните по одному из углов на линии и двигайте его, пока линия не станет более красивой.

Описание интерфейса ERwin. Интерфейс CASE - средства ERwin состоит их трех основных частей. Первая - это главное меню и панели инструментов.

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

Рис. 5.3.

Вторая - это Model Explorer. Она содержит три закладки: Model, Subject Areas и Domains. Чаще всего в Model Explorer применяется закладка Domains или Model (которая содержит все объекты и модели). В Domains отображаются соответственно домены, в Subject Areas - отображаемые области (рис. 5.4).

Рис. 5.4.

И третья - непосредственно область, отведенная для создания модели объектов, в которой создаются и редактируются все объекты модели. Снизу появляются закладки с именами запомненных хранимых отображений (Stored Displays) (рис. 5.5).


Рис. 5.5.

ERwin имеет два уровня представления данных модели: логический и физический. Логический уровень - это абстрактный взгляд на данные, на нем данные представляются так, как выглядят в реальном мире, например «Заказчик», «Цех» или «Фамилия сотрудника». Объекты модели, представляемые на логическом уровне, называются сущностями и атрибутами. Логическая модель данных может быть построена на основе другой логической модели, например модели процессов. Логическая модель данных является универсальной и никак не связана с конкретной реализацией СУБД.

Физическая модель данных, напротив, зависит от конкретной СУБД, фактически являясь отображением системного каталога. В физической модели содержится информация обо всех объектах БД. Поскольку стандартов на объекты БД не существует (например, нет стандарта на типы данных), физическая модель зависит от конкретной реализации СУБД. Следовательно, одной и той же логической модели могут соответствовать несколько разных физических моделей. Если в логической модели не имеет значения, какой конкретно тип данных имеет атрибут, то в физической модели важно описать всю информацию о конкретных физических объектах - таблицах, колонках, индексах, процедурах и т. д. Разделение модели на логические и физические позволяет решить много важных задач.

ERwin имеет несколько уровней отображения диаграммы: уровень сущностей, уровень атрибутов, уровень определений, уровень первичных ключей и уровень иконок. Переключиться между первыми тремя уровнями можно с использованием кнопок панели инструментов. Переключиться на другие уровни отображения можно при помощи контекстного меню, которое появляется, если «кликнуть» по любому месту диаграммы, не занятому объектами модели. В контекстном меню следует выбрать пункт Display Level и затем необходимый уровень отображения. ERwin позволяет связать с сущностью большую и малую иконки. При переключении на уровень иконок показывается большая иконка. Для отображения малой иконки следует выбрать в контекстном меню пункт Entity Display/Entity Icon. Маленькая иконка будет показана слева от имени сущности на всех уровнях отображения модели.

Установка цвета и шрифта. Установить шрифт и цвет объектов в ERwin можно несколькими способами. Во-первых, для установки цвета и шрифта объекта служит Font and Color Toolbar, которая располагается под основной панелью. Для редактирования шрифта и цвета конкретного объекта следует, щелкнув правой кнопкой мыши по сущности или связи и выбрав из всплывающего меню пункт Object Font & Color..., вызвать диалог Font/Color Editor, в котором определяются имя, описание и комментарии сущности. В диалоге Font/Color Editor можно выбрать шрифт и установить его размер, стиль и цвет, установить цвет заливки (свойство Fill Color, только для сущностей) и цвет линий (свойство Outline Color, только для сущностей).

При создании реальных моделей данных количество сущностей и атрибутов может исчисляться сотнями. Для более удобной работы с большими моделями в ERwin предусмотрены подмножества модели (Subject Areas), в которые можно включить тематически общие сущности. В подмножество модели может входить произвольный набор сущностей, связей и текстовых комментариев. Для создания, удаления или редактирования подмножеств модели нужно вызвать диалог Subject Areas (меню Model/Subject Areas...), в котором указывается имя подмножества и входящие в нее сущности. Все изменения, сделанные в любой Subject Area, автоматически отображаются на общей модели. Одна и та же сущность может входить в несколько Subject Area.

Хранимое отображение (Stored Display) - представление подмножества модели, отображающее специфический аспект структуры данных. Одна Subject Area может включать в себя несколько хранимых отображений. В хранимое отображение входят те же самые сущности и связи, что и в Subject Area, но они могут по-разному располагаться на экране, иметь разные уровни, различный масштаб и цвет объектов или фона.

Для создания хранимого отображения служит диалог Stored Displays (меню Format/Stored Display Settings...). Для переключения между хранимыми отображениями служат закладки в нижней части диаграммы.

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

Создание логической модели данных предметной области «Мебель под заказ». Создаваемая логическая модель повторяет структуру проектируемой ИС. Для того чтобы создать сущность в области для создания моделей объектов, необходимо (убедившись предварительно, что вы находитесь на уровне логической модели: переключателем между логической и физической моделью служит раскрывающийся список в правой части панели инструментов) «кликнуть» по кнопке сущности на панели инструментов (ERwin Toolbox) Q , затем «кликнуть» по тому месту на диаграмме, где необходимо расположить новую сущность. Щелкнув правой кнопкой мыши по сущности и выбрав из всплывающего меню пункт Entity Properties..., можно вызвать диалог Entities, в котором определяются имя, описание и комментарии сущности (например, имя сущности - поставщик, описание - данные о поставщике). Каждая сущность определяется с помощью текстового описания в закладке Definition. Закладки Note, Note 2, Note 3, UDP (User Defined Properties - Свойства, определенные пользователем) служат для внесения дополнительных комментариев к сущности. Следующим шагом является создание атрибутов сущности. Как было указано выше, каждый атрибут хранит информацию об определенном свойстве сущности, а каждый экземпляр сущности должен быть уникальным. Атрибут или группа атрибутов, которые идентифицируют сущность, называется первичным ключом. Для создания атрибутов следует, «кликнув» правой кнопкой по сущности, выбрать в появившемся меню пункт Attributes.... Появляется диалог Attributes. Если щелкнуть по кнопке New..., то в появившемся диалоге New Attribute указываем имя атрибута, имя соответствующей ему в физической модели колонки и домен (например, имя атрибута - наименование поставщика). Домен атрибута будет использоваться при определении типа колонки на уровне физической модели. Для атрибутов первичного ключа в закладке General диалога Attributes необходимо сделать пометку в окне выбора Primary Key.

Для отображения иконки атрибута следует выбрать в контекстном меню пункт Entity Display и в каскадном меню включить опцию Attribute Icon. Малая иконка будет показана слева от имени атрибута на уровне атрибутов отображения модели. Имя сущности показывается над прямоугольником, изображающим сущность, список атрибутов сущности - внутри прямоугольника. Список разделен горизонтальной чертой, выше которой расположены атрибуты первичного ключа, ниже - неключевые атрибуты. Атрибуты должны именоваться в единственном числе и иметь четкое смысловое значение. Соблюдение этого правила позволяет частично решить проблему нормализации данных уже на этапе определения атрибутов. Например, создание в сущности Поставщик атрибута Телефоны поставщика противоречит требованиям нормализации, поскольку атрибут должен быть атомарным, т. е. не содержать множественных значений. Согласно синтаксису IDEF1X имя атрибута должно быть уникально в рамках модели (а не только в рамках сущности!). Каждый экземпляр сущности должен быть уникален и отличаться от других атрибутов. Следующим шагом создания модели является установление связей между сущностями. Каждая связь должна именоваться глаголом или глагольной фразой (Relationship Verb Phrases рис. 5.6). Имя связи выражает некоторое ограничение или бизнес-правило и облегчает чтение диаграммы, например:

Каждый ЗАКАЗЧИК ЗАКАЗы;

Каждый ЗАКАЗ ДИЗАЙН.

Рис. 5.В. Имя связи - Relationship Verb Phrases

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

  • установить курсор на нужной кнопке в палитре инструментов (идентифицирующая или неидентифицирующая связь) и нажать левую кнопку мыши;
  • щелкнуть сначала по родительской, а затем по дочерней сущности. При установлении связей между сущностями атрибуты первичного ключа родительской сущности мигрируют в качестве внешних ключей в дочернюю сущность. По умолчанию имя связи на диаграмме не показывается. Для отображения имени следует в контекстном меню, которое появляется, если щелкнуть левой кнопкой мыши по любому месту диаграммы, не занятому объектами модели, выбрать пункт Relationship Display и в контекстном меню включить опцию Verb Phrase.

Логическая модель данных предметной области «Мебель под заказ» приведена на рис. 5.7.


Рис. 5.7.

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

На уровне сущностей модель представлена на рис. 5.9.

На рис. 5.10 представлена модель данных на уровне определений.

Рис. 5.8.

Рис. 5.Э. Уровень сущностей модели данных

В предыдущих главах рассматривался наиболее часто встречающийся тип связей - идентифицирующие связи - и было показано, как ER

win производит миграцию ключей через эти связи.

В этой главе Вы узнаете, как:

Создавать и использовать неидентифицирующие, рекурсивные связи и связи подтипов. Производить автоматическую миграцию ключевых атрибутов из одной сущности в другую. Предотвращать появление одинаковых имен атрибутов. Задавать режимы наследования атрибутов. Задавать порядок обработки нулевых значений в дочерней сущности связи. Исключать связи "многие-ко-многим".

Управление внешними ключами

При создании диаграммы, хотя Вам, может быть, и хочется добавить ключевые атрибуты в сущность, когда Вы ее создаете, ER

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

Чтобы облегчить проектирование базы данных, ER

win позволяет задать режим Unique Key, который можно использовать для того, чтобы предупредить Вас о создании атрибута, который может автоматически мигрировать через связь, или запретить Вам создание таких атрибутов. Кроме того, если Вы удаляете связь, ER win автоматически удаляет соответствующие внешние ключи из дочерних сущностей. См. Гл.11, Документирование правил, разд. "Обеспечение уникальности имен сущностей и атрибутов".

Как создать внешние ключи

1. Нарисуйте связь между двумя сущностями или между сущностью и ею же самой (рекурсивная связь). Внешний ключ автоматически мигрирует. Вам не нужно ничего делать!

Чтобы видеть автоматическую миграцию внешних ключей,

нужно установить режим просмотра диаграммы Attribute Display. У Вас должны быть уже созданы атрибуты первичного ключа в родительской сущности.

Как посмотреть атрибуты внешнего ключа

1. Щелкните правой кнопкой мыши по соединительной линии связи - Вы войдете в меню Relationship.

2. Дайте команду "Relationship" для входа в редактор Relationship.

Задание режимов наследования атрибутов

win производит миграцию атрибута первичного ключа, то по умолчанию внешний ключ, который появляется в дочерней сущности, наследует имя, но не наследует определение атрибута первичного ключа. Если Вы хотите, чтобы определение атрибута первичного ключа тоже мигрировало в дочернюю сущность, Вам нужно изменить режимы наследования - Attribute Inheritance Option - которые ER win устанавливает по умолчанию. Для того, чтобы изменить режим наследования по отношению к мигрирующим ключам, дайте команду "Attribute Inheritance..." в меню Option. Вы войдете в окно-диалог Attribute Inheritance Option.

В этом диалоге можно установить три режима. По умолчанию установлен режим "No Inheritance", а Вы можете изменить его на "Full Inheritance" или "Restricted Inheritance", нажимая соответствующую кнопку, а затем - "ОК" для сохранения нового режима.

Как задать режим наследования атрибута

1. Дайте команду "Attribute Inheritance..." из меню Option.

2. Нажмите на одну из кнопок в окне "Inheritance of Primary Key Definitions" для того, чтобы задать нужный Вам режим наследования атрибута:

"Full Inheritance" - определения атрибутов первичного ключа мигрируют во внешний ключ для всех новых и уже созданных связей текущей диаграммы.

"Restricted Inheritance" - определения атрибутов первичного ключа мигрируют во внешний ключ для всех новых cвязей, но это не распространяется на уже созданные связи текущей диаграммы.

"No Inheritance" - миграция определений атрибутов запрещается для всех связей текущей диаграммы. Это тот режим, который установлен по умолчанию.

Задание неидентифицирующих связей

Идентифицирующей связью

называется связь, которая добавляет признаки идентичности в дочернюю сущность путем миграции ключей родительской сущности в область ключевых атрибутов дочерней и таким образом делая дочернюю сущность зависимой от родительской в смысле своей идентичности. Например, когда атрибут movie-numb ER мигрирует из сущности MOVIE в MOVIE-COPY на диаграмме MOVIES.ER1, токаждый экземпляр MOVIE-COPY зависит и от movie-numb ER, и от movie-copy-numb ER, которые уникальным образом его определяют (ни один из этих двух атрибутов не может сам по себе уникальным образом определить конкретную копию фильма).

Можно задать также и такую связь, которая не ставит дочернюю сущность в зависимость от родительской. Этот тип связи называется неидентифицирующей связью . В ER

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

На рисунке ниже показано, как изображаются в ER

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

Если связь уже создана на диаграмме, то Вы можете изменить ее тип в редакторе Relationship.

Как изменить тип связи

1. Выберите ту связь, которую Вы хотите изменить. Установите курсор на линию связи и щелкните правой кнопкой мыши для входа в pop-up меню Editor.

2. Дайте команду "Relationship" в меню Editor для входа в редактор Relationship.

3. Нажмите нужную кнопку в окне Relationship Type (Identifying - идентифицирующая, Non-Identifying - неидентифицирующая).

4. Нажмите "ОК" для того, чтобы зафиксировать изменения. ER

win изменяет линию связи на диаграмме в соответствии с новым типом.

Рекурсивной связи в

ER win автоматически присваивается тип Non-Identifiyng. Изменить его нельзя.

Разрешить или не разрешить нулевые значения?

Когда Вы рисуете неидентифицирующую связь, Вам нужно решить, могут ли атрибуты внешнего ключа, наследуемые от родителя, принимать значение NULL или нет. По умолчанию для неидентифицирующей связи задается режим "Nulls Allowed", что означает, что дочерняя сущность может существовать без родительской, и связь называется необязательной. "No Nulls" означает, что существование дочерней сущности зависит от родительской, и связь называется обязательной. В случае необязательной связи (Nulls Allowed) на родительском конце неидентифицирующей связи ER

win ставит знак - ромбик.

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

См. руководство по методам ER

win Methods Guide , Гл.3, "Обзор языка", разд. "Идентифицирующие и неидентифицирующие связи".

По умолчанию для неидентифицирующей связи установлен

режим "Nulls Allowed", т.е. значения NULL для внешних ключе