Отношение находится во второй нормальной форме (2НФ) тогда и только тогда, когда она находится в 1НФ и каждый неключевой атрибут полностью зависит от первичного ключа.
2НФ имеет смысл только для отношений, имеющих составной первичный ключ.
Особенности 2НФ:
отношение представлено в 1НФ,
если отношение имеет простой первичный ключ, то оно представлено в 2НФ,
если отношение имеет составной первичный ключ, то каждый неключевой атрибут полностью зависит от первичного ключа (не должно быть зависимости от части ключа).
Оба отношения SECOND и SP находятся во 2НФ, а отношение FIRST не находится в ней. Всякое отношение, которое находится в 1НФ и не находится в 2НФ, всегда можно свести к эквивалентному набору отношений, находящихся в 2НФ.Но структура SECOND-SP может еще вызвать проблемы. SP уже находится в 3НФ. Неключевые атрибуты же SECOND не являются взаимно независимыми. Зависимость STATUS от S# является транзитивной (через CITY), то есть каждое значение S# определяет значение CITY, а значение CITY определяет значение STATUS.
Если выполняются зависимости A ® В и B ®C, то выполнятся А ® С. Говорят, что С транзитивно зависит от А. Транзитивные зависимости вызывают проблемы.
INSERT: нельзя включить данные о некотором городе, обладающим некоторым статусом, до тех пор пока в этом городе не существует конкретного поставщика.
DELETE: при удалении кортежа для некоторого города будет удалена информация о данном поставщике и том каким статусом обладал этот город. Здесь опять причиной неприятности является совместная информация: информация о поставщиках и вместе с ней информация о городах. Необходимо разделить информацию.
UPDATE: статус повторяется для каждого города несколько раз. Возникает проблема при изменении значения статуса.
Заменяем SECOND двумя проекциями SC {S#, CITY} CS {CITY, STATUS}. Переработанная структура преодолевает все описанные проблемы