Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

2NF – вторая нормальная форма

Довольно часто первичный ключ отношения может включать несколько атрибутов (тогда он называется составным).

К примеру, отношение ДЕТИ, которое показано на рисунке 1.

2NF – вторая нормальная форма. Автор24 — интернет-биржа заказчиков и авторов

Полная функциональная зависимость

Рассмотрим понятие полная функциональная зависимость.

Определение 1

Неключевой атрибут находится в полной функциональной зависимости от составного ключа, если он находится в функциональной зависимости от всего ключа в целом, но функционально не зависит от какого-нибудь атрибута, который входит в него.

Пример 1

Рассмотрим отношение ПОСТАВКИ (НОМЕР_ПОСТАВЩИКА, ТОВАР, СТОИМОСТЬ).

Поставщиком могут поставляться различные товары, а одинаковый товар может поставляться разными поставщиками. Тогда ключом отношения будет НОМЕР_ПОСТАВЩИКА + ТОВАР. Предположим, что всеми поставщиками поставляется товар по одинаковой цене. Тогда будут существовать следующие функциональные зависимости:

  • НОМЕР_ПОСТАВЩИКА, ТОВАР $\to$ СТОИМОСТЬ
  • ТОВАР $\to$ СТОИМОСТЬ

При неполной функциональной зависимости атрибута СТОИМОСТЬ от ключа возможно появление следующей аномалии: если изменится стоимость товара, необходимо полностью просмотреть отношения для изменения всех записей о его поставщиках. Такая аномалия появляется вследствие того, что два семантических факта объединены в одной структуре данных.

Рассмотрим разложение, которое дает отношения во второй нормальной форме:

  • ПОСТАВКИ (НОМЕР_ПОСТАВЩИКА, ТОВАР)
  • СТОИМОСТЬ_ТОВАРА (ТОВАР, СТОИМОСТЬ)
«2NF – вторая нормальная форма» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Вторая нормальная форма касается отношений между неключевыми и ключевыми атрибутами.

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

Определение 2

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

Следовательно, вторая нормальная форма может быть нарушена лишь в том случае, если ключ является составным, т.е. ключ состоит из нескольких атрибутов.

Рассмотрим таблицу «Назначение 1», представленную на рисунке 1. В таблице ключ состоит из набора атрибутов № здания и № работника. Атрибут Фамилия определяет атрибут № работника, а значит состоит в функциональной зависимости от части ключа. То есть для того, чтобы определить фамилию работника достаточно узнать № работника. Следовательно, таблица не удовлетворяет второй нормальной форме.

Таблица «Назначение 1

Если данную таблицу не приводить ко второй нормальной форме, могут появиться такие проблемы:

  1. Фамилия работника будет повторяться в каждой строке, которая относится к назначению данного работника.
  2. При изменении фамилии работника необходимо выполнить обновление всех строк, которые содержат записи о назначениях данного работника. Такая проблема называется аномалией изменения данных.
  3. Вследствие подобной избыточности возможно несоответствие данных – в разных строках для одного и того же работника могут содержаться разные имена.
  4. В ситуации, когда в какой-либо момент времени у работника нет назначений, может не быть строки, в которой будет храниться имя работника. Такая проблема называется аномалией ввода данных.

Для решения этих проблем необходимо выполнить разбиение таблицы на 2 реляционные таблицы, которые будут удовлетворять второй нормальной форме (рисунок 3).

2NF – вторая нормальная форма. Автор24 — интернет-биржа заказчиков и авторов

Полученные реляционные таблицы «Работник» и «Назначение» находятся во второй нормальной форме и не содержат перечисленных выше проблем. Следовательно, 2NF уменьшает избыточность данных и исключает возможность аномалий.

Этапы разбиения на 2 таблицы в 2NF:

  1. Создание новой таблицы, которая состоит из атрибутов исходной таблицы. Детерминант функциональной зависимости станет ключом новой таблицы.
  2. Исключение атрибута, который стоит в правой части функциональной зависимости, из исходной таблицы.
  3. Повторение 1 и 2 шагов для каждой функциональной зависимости, которая нарушает 2NF.
  4. При вхождении одного и того же детерминанта в несколько функциональных зависимостей, все функционально зависящие от детерминанта атрибуты располагаются как неключевые атрибуты в таблицу, в которой детерминант будет ключом.
Воспользуйся нейросетью от Автор24
Не понимаешь, как писать работу?
Попробовать ИИ
Дата написания статьи: 19.09.2016
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot