Вторая нормальная форма
Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( июнь 2024 г. ) |
Вторая нормальная форма ( 2NF ) при нормализации базы данных является нормальной формой . Отношение находится во второй нормальной форме, если оно удовлетворяет следующим двум требованиям:
- Это первая нормальная форма .
- У него нет неосновного атрибута , который функционально зависит от какого-либо правильного подмножества любого потенциального ключа отношения (т. е. у него отсутствуют частичные зависимости). Непростой атрибут отношения — это атрибут, который не является частью какого-либо потенциального ключа отношения.
Проще говоря, отношение (или таблица) находится во 2НФ, если:
- Он находится в 1NF и имеет один уникальный идентификатор атрибута (UID) (в этом случае каждый неключевой атрибут зависит от всего UID) или
- Он находится в 1NF и имеет уникальный идентификатор с несколькими атрибутами, и каждый обычный атрибут (не часть UID) зависит от всех атрибутов в многоатрибутном UID, а не только от одного атрибута (или части) UID.
Если какие-либо обычные (непростые) атрибуты предсказуемы (зависимы) от другого (непростого) атрибута, это рассматривается в третьей нормальной форме .
История
[ редактировать ]Вторая нормальная форма была первоначально определена Э. Ф. Коддом в 1971 году. [1]
Разложение 1НФ на 2НФ
[ редактировать ]Чтобы сделать отношение 1NF отношением 2NF, удалите функционально зависимые атрибуты в частичных зависимостях первого отношения нормальной формы и поместите эти зависимые от частичной зависимости атрибуты в отношение, где их соответствующие определяющие атрибуты являются полным потенциальным ключом.
Пример
[ редактировать ]Следующее соотношение не удовлетворяет 2НФ, потому что:
- Существует многоатрибутный уникальный идентификатор: «Производитель» и «Модель».
- {Страна-производитель} функционально зависит (предсказуемо) от {Производителя}.
- {Страна-производитель} не является частью потенциального ключа, поэтому это неосновной атрибут. (Предполагается, что два производителя в одной стране могут производить зубную щетку с одним и тем же названием модели, поэтому {Страна-производитель, Модель} не является кандидатом на ключ, хотя в текущей таблице пара однозначно идентифицирует строки.)
- {Manufacturer} — это правильное подмножество потенциального ключа {Manufacturer, Model}.
Другими словами, поскольку {Страна-производитель} является непростым атрибутом, функционально зависящим от надлежащего подмножества потенциального ключа, отношение нарушает 2NF.
Производитель | Модель | Страна производитель |
---|---|---|
Сильный | Икс-Прайм | Италия |
Сильный | Ультрачистый | Италия |
Дент-о-Фреш | ЭЗбраш | олень |
Кистьмастер | СуперКисть | олень |
Кобаяши | СТ-60 | Япония |
Высокий | Зубной мастер | Германия |
Высокий | Икс-Прайм | Германия |
Чтобы проект соответствовал 2NF, необходимо иметь два отношения. Чтобы создать эти отношения:
- Удалите функционально зависимые атрибуты в частичных зависимостях первого отношения нормальной формы. В этом примере {Страна производителя} — это функционально зависимый атрибут, который будет удален.
- Поместите эти атрибуты, зависящие от частичной зависимости (т. е. {Страна производителя}), в отношение, где их соответствующие определяющие атрибуты являются кандидатом на ключ (т. е. {Производитель}).
Как показано ниже, {Страна-производитель} удалена из исходной таблицы:
Производитель | Модель |
---|---|
Сильный | Икс-Прайм |
Сильный | Ультрачистый |
Дент-о-Фреш | ЭЗбраш |
Кистьмастер | СуперКисть |
Кобаяши | СТ-60 |
Высокий | Зубной мастер |
Высокий | Икс-Прайм |
Как показано ниже, частичная зависимость помещается в новое отношение, в котором зависимость может существовать, не будучи частичной зависимостью:
Производитель | Страна производитель |
---|---|
Сильный | Италия |
Дент-о-Фреш | олень |
Кистьмастер | олень |
Кобаяши | Япония |
Высокий | Германия |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Кодд, Э.Ф. «Дальнейшая нормализация реляционной модели базы данных». (Представлено на 6-м симпозиуме по компьютерным наукам Courant, «Системы баз данных», Нью-Йорк, 24–25 мая 1971 г.) Отчет об исследовании IBM RJ909 (31 августа 1971 г.). Переиздано в Рэндалле Дж. Растине (ред.), Системы баз данных: Courant Computer Science Symposium Series 6 . Прентис-Холл, 1972 год.
Дальнейшее чтение
[ редактировать ]- Советы Литта: нормализация
- Дата, CJ ; Лоренцос, Н.; Дарвен, Х. (2002). Временные данные и реляционная модель (1-е изд.). Морган Кауфманн. ISBN 1-55860-855-9 . Архивировано из оригинала 9 декабря 2012 г. Проверено 16 августа 2006 г.
- Дата, CJ (2004). Введение в системы баз данных (8-е изд.). Бостон: Аддисон-Уэсли. ISBN 978-0-321-19784-9 .
- Кент, В. (1983). «Простое руководство по пяти нормальным формам в теории реляционных баз данных» . Коммуникации АКМ . 26 (2): 120–125. дои : 10.1145/358024.358054 .
Внешние ссылки
[ редактировать ]- Основы нормализации базы данных Майка Чаппла (About.com)
- Введение в нормализацию базы данных Майка Хиллера.
- Учебное пособие по первым трем нормальным формам Фреда Коулсона.
- Описание основ нормализации базы данных от Microsoft