Таблица 18.7. Экземпляры сущности Ребенок
| 
                     Сотрудник#  | 
                     Ребенок#  | 
                     Имя ребенка  | 
                     Адрес сотрудника  | 
| 
                     Е1  | 
                     С1  | 
                     Коля  | 
                     Сурикова, 10  | 
| 
                     Е2  | 
                     С1  | 
                     Маша  | 
                     Мира, 23  | 
| 
                     E2  | 
                     C2  | 
                     Оля  | 
                     Мира, 23  | 
Одна из целей БД заключается в максимальной поддержке целостности данных, чтобы таким образом гарантировать, что информация, содержащая в БД, правильна, и факты «внутри» БД не находятся в противоречии. Поэтому важно представить каждый факт в БД один и только один раз! Если факт появляется в двух (или более) местах, ошибки могут «проникнуть» в данные. Единственное исключение из этого правила (один факт в одном месте) – в случае атрибутов первичных ключей.
Включение атрибута «Адрес сотрудника» в сущность «Ребенок» – это ошибка (табл. 15). Теперь, если сотрудник имеет несколько детей, то его адрес будет храниться для каждого ребенка.
Атрибут «Адрес сотрудника» – признак сущности «Сотрудник», но не сущности «Ребенок». Фактически, это нарушение 2НФ, которая говорит: при наличии составного первичного ключа все атрибуты должны зависеть от полного ключа, а не от его частей. Адрес сотрудника не зависит от полного первичного ключа «Сотрудник# Ребенок#», а зависит от его части – атрибута «Сотрудник#».
Для приведения сущности «Ребенок» к 2НФ:
перенесем атрибут «Адрес сотрудника» в сущность «Сотрудник».
Результат приведения сущности «Ребенок» к 2НФ на рис. 15.