Базы данных. Нормализация. Вторая нормальная форма 2НФ

Нормализация. Вторая нормальная форма 2НФ

Перед изучением данной темы рекомендуется ознакомиться со следующими темами:


Содержание


Поиск на других ресурсах:




1. Вторая нормальная форма. Определение

Таблица (отношение) соответствует второй нормальной форме, если:

  • таблица приведена к первой нормальной форме 1НФ;
  • в таблице отсутствуют частичные зависимости. Это означает, что каждый неключевой атрибут (поле) таблицы неприводимо зависит от первичного ключа таблицы (ключа отношения).

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

 

2. Способы приведения таблицы ко второй нормальной форме 2НФ

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

Если таблица имеет составной (композитный) ключ и содержит частичные зависимости, то можно использовать следующие способы приведения:

  • ввести дополнительное поле-счетчик (counter), которое будет первичным ключом. Это поле содержит уникальные значения, которые идентифицируют каждую строку таблицы. Поскольку первичный ключ не является составным, то нет и частичных зависимостей. После ввода дополнительного поля-счетчика между этим полем-счетчиком и любым другим полем таблицы устанавливается однозначное соответствие;
  • разорвать исходную таблицу на несколько таблиц таким образом, чтобы ключевые атрибуты (ключевые поля) разошлись по разным отношениям. Этот способ также может быть использован в высших нормальных формах.

 

3. Пример таблицы во второй нормальной форме. Зависимость неключевого атрибута от составного ключа

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

Ключом отношения являются атрибуты МаркаМодельГод выпуска. Атрибут «Количество выпущенных моделей» неприводимо зависит от ключа.

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

Рисунок 1. Функциональная зависимость атрибута «Количество выпущенных моделей» от ключа. Таблица во второй нормальной форме 2НФ

Вышеприведенная таблица (рисунок 1) находится во второй нормальной форме по следующим причинам:

  • таблица находится в первой нормальной форме 1НФ;
  • неключевой атрибут (Количество выпущенных моделей) неприводимо зависит от первичного ключа (МаркаМодель — «Год выпуска«);
  • в таблице отсутствуют частичные зависимости. Это означает, что атрибут «Количество выпущенных моделей» не зависит отдельно от одного из атрибутов, входящих в ключ отношения (Марка, Модель, Год выпуска). Этот атрибут зависит от сочетания этих атрибутов МаркаМодельГод выпуска.

 

4. Примеры приведения таблицы ко второй нормальной форме путем добавления поля-счетчика

Пример 1. Задана таблица учета сотрудников со следующей структурой.

Таблица учета сотрудников

Ключом отношения избраны атрибуты НомерДолжность (рисунок 2).

Базы данных. Частичная зависимость неключевого атрибута от ключа отношения

Рисунок 2. Частичная зависимость неключевого атрибута Оклад от ключа отношения НомерДолжность

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

Чтобы привести таблицу ко второй нормальной форме 2НФ нужно ввести дополнительное ключевое поле как показано на рисунке 3.

Базы данных. Нормализация. Добавление нового поля-счетчика. Устранение частичной зависимости

Рисунок 3. Добавление нового поля ID, которое является ключом отношения. Устранение частичной зависимости

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

Пример 2. Пусть задана таблица учета прочтенных занятий в учебном заведении.

Базы данных. Таблица учета прочтенных занятий

В таблице ключом отношения избраны атрибуты «Номер аудитории» — «Номер занятия» — «Дата» — «Преподаватель«. На рисунке 4 показана эта зависимость.

Базы данных. Нормализация. Частичная зависимость неключевого атрибута от ключа отношения

Рисунок 4. Частичная зависимость неключевого атрибута Дисциплина от ключа отношения

Атрибут Дисциплина зависим от атрибута Преподаватель. Это объясняется тем, что по конкретному преподавателю закреплена конкретная дисциплина. Поскольку, атрибут Преподаватель является частью первичного ключа, то атрибут Дисциплина зависим от части первичного ключа. Значит, существует частичная зависимость между первичным ключом и атрибутом Дисциплина.

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

Базы данных. Нормализация. Таблица во второй нормальной форме 2НФ

Рисунок 5. Таблица во второй нормальной форме 2НФ

 


Связанные темы