Ключевые множества значений будут взаимно
Ключевые множества значений будут взаимно функционально зависеть друг от друга. Аналогично, в отношении связей неключевые множества значений будут функционально зависеть от множеств значений первичных ключей (например, на рис. 8 PERCENTAGE функционально зависит от EMPLOYEE-NO и PROJECT-NO).
Функциональные зависимости, относящиеся к сущностям в связи. Заметим, что на рис. 11 мы указываем для множеств связей типы отображений (1:n, m:n и т.д.). Например, PROJECT-MANAGER является отображением 1:n. Допустим, что PROJECT-NO – это первичный ключ в отношении сущностей PROJECT. В отношении связей PROJECT-MANAGER множество значений EMPLOYEE-NO будет функционально зависеть от множества значений PROJECT-NO (т.е. для каждого проекта имеется только один менеджер).
Проведение различия между уровнем 1 (рис. 2) и уровнем 2 (рис. 6 и 7) и разделение отношения сущностей (рис. 7) и отношения связей (рис. 8) вносит ясность в семантику функциональных зависимостей между данными.
4.1.3 3NF-отношения в сравнении с отношениями сущностей-связей.
Из определения отношения следует, что любое группирование доменов можно рассматривать как отношение. Чтобы избежать нежелательных свойств в поддерживаемых отношениях, предлагается процесс нормализации, в ходе которого произвольные отношения преобразуются в первую нормальную форму, затем во вторую нормальную форму и, наконец, в третью нормальную форму (3NF) [9,11]. Мы покажем, что отношения сущностей и связей в модели сущность-связь
похожи на 3NF-отношения, но обладают более ясной семантикой и не требуют выполнения операций преобразования.
Будем использовать упрощенную версию примера нормализации, описанного в [9]. Следующие три отношения находятся в первой нормальной форме (т.е. в них не используется домен, элементы которого сами являлись бы отношениями):
EMPLOYEE (
EMPLOYEE-NO) PART (
PART-NO, PART-DESCRIPTION, QUANTITY-ON-HAND) PART-PROJECT (
PART-NO,
PROJECT-NO, PROJECT-DESCRIPTION, PROJECT-MANAGER-NO, QUANTITY-COMMITED)
Заметим, что домен PROJECT-MANAGER-NO (НОМЕРА МЕНЕДЖЕРОВ ПРОЕКТОВ) содержит EMPLOYEE-NO (номер служащего) менеджера проекта.
Содержание Назад Вперед