Руководство по программному пакету ERwin

Понятие унификации


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

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

В этом простом примере EMPLOYEE/SPOUSE EMPLOYEE, первичный ключ которого - employee-numbER, связан со SPOUSE и CHILD идентифицирующими связями. Миграция ключа приводит к тому, что ключ employee-numbER мигрирует в обе зависимые сущности. Сущность SPOUSE имеет также неидентифицирующую связь с сущностью CHILD. См. Гл. 9, Связи: возможности повышенного уровня сложности, разд. 'Задание неидентифицирующих связей', а также руководство по методам ERwin Methods Guide.

Исходя из правил миграции ключей в результате неидентифицирующих связей, принятых в ERwin, мы ожидаем, что атрибуты первичных ключей обоих сущностей - EMPLOYEE и SPOUSE - появятся под чертой в сущности CHILD. Однако в первичном ключе обоих сущностей присутствует employee-numbER. ERwin распознает, что значение employee-numbER одно и то же, независимо от того, переходит ли оно непосредственно от EMPLOYEE или непрямым образом через SPOUSE. Поэтому ERwin производит унификацию employee-numbER и помещает атрибут только по одному разу в каждую сущность CHILD.

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

Более подробная информация об унификации содержится в ERwin Methods Guide.



Содержание раздела