Четвертая нормальная форма
Отношение находится в четвертой нормальной форме (4НФ), если оно находится в 3НФ или НФБК и все независимые многозначные ФЗ разнесены в отдельные отношения с одним и тем же ключом. Иными словами, 4НФ применяется при наличии в отношении более чем одной многозначной ФЗ и требует, чтобы отношение не содержало независимых многозначных ФЗ.
Пример. Приведение к 4НФ
Рассмотрим отношение, содержащее сведения о кораблях (Ship), совершаемых ими рейсах (Voyage) и капитанах (Captain) (задано таблицей 6.3). Отношение представлено в таблице ниже и на рис. 6.6.
Акбар | Иванов | Санкт-Петербург - Калининград |
Акбар | Петров | Санкт-Петербург - Калининград |
Акбар | Ивлев | Санкт-Петербург - Калининград |
Акбар | Прохоров | Санкт-Петербург - Калининград |
Акбар | Лазарев | Санкт-Петербург- Лондон |
Акбар | Прохоров | Санкт-Петербург- Лондон |
Жучка | Петров | Санкт-Петербург - Марсель |
Жучка | Фролов | Санкт-Петербург - Стокгольм |
Жучка | Ивлев | Санкт-Петербург - Стокгольм |
Рис. 6.6. Отношение с многозначными зависимостями
Отношение находится в НФБК и содержит только многозначные ФЗ. Однако имеет место аномалия удаления: если капитан Петров уйдет в отставку и все кортежи о нем будут удалены, то будут потеряны сведения о том, что корабль Жучка совершает рейсы Санкт-Петербург - Марсель. Если добавить новый рейс, то, возможно, придется ввести несколько кортежей в наше отношение.
Приведение отношения к 4НФ заключается в выделении для каждой многозначной ФЗ своего отношения, как показано на рис. 6.7.
Рис. 6.7. Отношение в 4НФ
Таким образом, процедура приведения отношения к 4НФ сводится к выполнению нескольких проекций, в данном случае двух проекций.