Вторая нормальная форма

Термин в нормализации базы данных

Вторая нормальная форма ( 2NF ), в нормализации базы данных , является нормальной формой . Отношение находится во второй нормальной форме, если оно удовлетворяет следующим двум требованиям:

  1. Находится в первой нормальной форме .
  2. Он не имеет ни одного не-первичного атрибута , который функционально зависит от любого надлежащего подмножества любого потенциального ключа отношения (т.е. у него отсутствуют частичные зависимости). Не-первичный атрибут отношения — это атрибут, который не является частью ни одного потенциального ключа отношения.

Проще говоря, отношение (или таблица) находится во 2НФ, если:

  1. Он находится в 1NF и имеет единственный атрибут — уникальный идентификатор (UID) (в этом случае каждый неключевой атрибут зависит от всего UID), или
  2. Он находится в 1NF и имеет уникальный идентификатор с несколькими атрибутами, а каждый обычный атрибут (не являющийся частью UID) зависит от всех атрибутов в многоатрибутном UID, а не только от одного атрибута (или части) UID.

Если какие-либо регулярные (непервичные) атрибуты предсказуемы (зависимы) от другого (непервичного) атрибута, то это рассматривается в третьей нормальной форме .

История

Вторая нормальная форма была первоначально определена Э. Ф. Коддом в 1971 году. [1]

Разложение 1НФ во 2НФ

Чтобы сделать отношение 1NF отношением 2NF, удалите функционально зависимые атрибуты в частичных зависимостях отношения первой нормальной формы и поместите эти зависимые от частичной зависимости атрибуты в отношение, где их соответствующие атрибуты-определители являются целым потенциальным ключом.

Пример

Следующее соотношение не удовлетворяет 2НФ, потому что:

  • Существует многоатрибутный уникальный идентификатор/ключ-кандидат: «Производитель» и «Модель».
  • {Страна-производитель} функционально зависит (предсказуема) от {Производителя}.
  • {Производитель} — это собственное подмножество ключа-кандидата {Производитель, Модель}.
  • {Страна-производитель} не является частью потенциального ключа, поэтому это неосновной атрибут. (Предполагается, что два производителя в одной стране могут производить зубную щетку с одинаковым названием модели, поэтому {Страна-производитель, Модель} не является потенциальным ключом, даже если в текущей таблице эта пара однозначно идентифицирует строки.)


Другими словами, поскольку {Страна-производитель} является неосновным атрибутом, функционально зависящим от надлежащего подмножества потенциального ключа, отношение нарушает 2NF.

Модели электрических зубных щеток
ПроизводительМодельСтрана производитель
ФортеX-ПраймИталия
ФортеУльтрачистыйИталия
Дент-о-ФрешEZbrushСША
Мастер кистиСуперЩеткаСША
КобаяшиСТ-60Япония
ХохЗубной мастерГермания
ХохX-ПраймГермания

Чтобы дизайн соответствовал 2NF, необходимо иметь два отношения. Для создания этих отношений:

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

Как видно ниже, {Страна-производитель} удалена из исходной таблицы:

Модели электрических зубных щеток
ПроизводительМодель
ФортеX-Прайм
ФортеУльтрачистый
Дент-о-ФрешEZbrush
Мастер кистиСуперЩетка
КобаяшиСТ-60
ХохЗубной мастер
ХохX-Прайм

Как показано ниже, частичная зависимость помещается в новое отношение, в котором зависимость может существовать, не будучи частичной зависимостью:

Производители электрических зубных щеток
ПроизводительСтрана производитель
ФортеИталия
Дент-о-ФрешСША
Мастер кистиСША
КобаяшиЯпония
ХохГермания

Теперь может возникнуть необходимость добавить числовой идентификатор к каждой строке таблицы «Модели электрических зубных щеток», чтобы гарантировать, что она останется в 1NF, или оставить таблицу как есть, что позволит использовать каждую уникальную комбинацию значений в каждой строке в качестве первичного ключа, тем самым позволяя использовать столбцы {Производитель, Модель} в этой таблице в качестве потенциального ключа таблицы.

Смотрите также

Ссылки

  1. ^ Кодд, Э. Ф. «Дальнейшая нормализация реляционной модели базы данных». (Представлено на симпозиуме по компьютерным наукам Courant Computer Science Symposia Series 6, «Системы баз данных», Нью-Йорк, 24–25 мая 1971 г.) Отчет об исследованиях IBM RJ909 (31 августа 1971 г.). Переиздано в Randall J. Rustin (ред.), Системы баз данных: симпозиумы по компьютерным наукам Courant Computer Science Symposia Series 6. Prentice-Hall, 1972 г.

Дальнейшее чтение

  • Советы Литта: Нормализация
  • Дейт, К.Дж .; Лоренцос, Н.; Дарвен, Х. (2002). Временные данные и реляционная модель (1-е изд.). Морган Кауфманн. ISBN 1-55860-855-9. Архивировано из оригинала 2012-12-09 . Получено 2006-08-16 .
  • Дейт, К.Дж. (2004). Введение в системы баз данных (8-е изд.). Бостон: Addison-Wesley. ISBN 978-0-321-19784-9.
  • Кент, В. (1983). «Простое руководство по пяти нормальным формам в теории реляционных баз данных». Сообщения ACM . 26 (2): 120– 125. doi : 10.1145/358024.358054 .
  • Основы нормализации баз данных Майка Чаппла (About.com)
  • Введение в нормализацию баз данных Майка Хиллера.
  • Учебник по первым 3 нормальным формам от Фреда Коулсона
  • Описание основ нормализации базы данных от Microsoft
Retrieved from "https://en.wikipedia.org/w/index.php?title=Second_normal_form&oldid=1264434770"