Нормализация. Вторая нормальная форма 2НФ
Перед изучением данной темы рекомендуется ознакомиться со следующими темами:
- Первая нормальная форма. Приведение таблицы к первой нормальной форме. Примеры
- Функциональные зависимости. Построение схем функциональных зависимостей. Примеры
Содержание
- 1. Вторая нормальная форма. Определение
- 2. Способы приведения таблицы ко второй нормальной форме 2НФ
- 3. Пример таблицы во второй нормальной форме. Зависимость неключевого атрибута от составного ключа
- 4. Примеры приведения таблицы ко второй нормальной форме путем добавления поля-счетчика
- Связанные темы
Поиск на других ресурсах:
1. Вторая нормальная форма. Определение
Таблица (отношение) соответствует второй нормальной форме, если:
- таблица приведена к первой нормальной форме 1НФ;
- в таблице отсутствуют частичные зависимости. Это означает, что каждый неключевой атрибут (поле) таблицы неприводимо зависит от первичного ключа таблицы (ключа отношения).
Вторая нормальная форма актуальна только для тех отношений, в которых есть составные (композитные) ключи.
⇑
2. Способы приведения таблицы ко второй нормальной форме 2НФ
Как известно, первичный ключ может быть простой или составной. Если ключ составной (композитный), то бывает трудно избежать частичных зависимостей. Одно из полей может функционально зависеть от части первичного ключа (зависеть от некоторых атрибутов ключа).
Если таблица имеет составной (композитный) ключ и содержит частичные зависимости, то можно использовать следующие способы приведения:
- ввести дополнительное поле-счетчик (counter), которое будет первичным ключом. Это поле содержит уникальные значения, которые идентифицируют каждую строку таблицы. Поскольку первичный ключ не является составным, то нет и частичных зависимостей. После ввода дополнительного поля-счетчика между этим полем-счетчиком и любым другим полем таблицы устанавливается однозначное соответствие;
- разорвать исходную таблицу на несколько таблиц таким образом, чтобы ключевые атрибуты (ключевые поля) разошлись по разным отношениям. Этот способ также может быть использован в высших нормальных формах.
⇑
3. Пример таблицы во второй нормальной форме. Зависимость неключевого атрибута от составного ключа
Демонстрируется зависимость атрибута от составного (композитного) ключа. На рисунке 1 изображена таблица выпуска разных моделей автомобилей в разные годы.
Ключом отношения являются атрибуты Марка—Модель—Год выпуска. Атрибут «Количество выпущенных моделей» неприводимо зависит от ключа.
Рисунок 1. Функциональная зависимость атрибута «Количество выпущенных моделей» от ключа. Таблица во второй нормальной форме 2НФ
Вышеприведенная таблица (рисунок 1) находится во второй нормальной форме по следующим причинам:
- таблица находится в первой нормальной форме 1НФ;
- неключевой атрибут (Количество выпущенных моделей) неприводимо зависит от первичного ключа (Марка — Модель — «Год выпуска«);
- в таблице отсутствуют частичные зависимости. Это означает, что атрибут «Количество выпущенных моделей» не зависит отдельно от одного из атрибутов, входящих в ключ отношения (Марка, Модель, Год выпуска). Этот атрибут зависит от сочетания этих атрибутов Марка—Модель—Год выпуска.
⇑
4. Примеры приведения таблицы ко второй нормальной форме путем добавления поля-счетчика
Пример 1. Задана таблица учета сотрудников со следующей структурой.
Ключом отношения избраны атрибуты Номер — Должность (рисунок 2).
Рисунок 2. Частичная зависимость неключевого атрибута Оклад от ключа отношения Номер—Должность
От занимаемой должности зависит размер должностного оклада сотрудника. Значит, между частью ключа отношения (атрибут должность) и неключевым атрибутом Оклад существует функциональная зависимость. Это частичная зависимость. Поэтому таблица не находится во второй нормальной форме 2НФ.
Чтобы привести таблицу ко второй нормальной форме 2НФ нужно ввести дополнительное ключевое поле как показано на рисунке 3.
Рисунок 3. Добавление нового поля ID, которое является ключом отношения. Устранение частичной зависимости
После введения дополнительного поля, частичные зависимости устранены. Таблица приведена ко второй нормальной форме 2НФ.
Пример 2. Пусть задана таблица учета прочтенных занятий в учебном заведении.
В таблице ключом отношения избраны атрибуты «Номер аудитории» — «Номер занятия» — «Дата» — «Преподаватель«. На рисунке 4 показана эта зависимость.
Рисунок 4. Частичная зависимость неключевого атрибута Дисциплина от ключа отношения
Атрибут Дисциплина зависим от атрибута Преподаватель. Это объясняется тем, что по конкретному преподавателю закреплена конкретная дисциплина. Поскольку, атрибут Преподаватель является частью первичного ключа, то атрибут Дисциплина зависим от части первичного ключа. Значит, существует частичная зависимость между первичным ключом и атрибутом Дисциплина.
Чтобы привести таблицу ко второй нормальной форме 2НФ нужно добавить дополнительное поле-счетчик и сделать его ключевым. После внесенных изменений таблица выглядит как показано на рисунке 5.
Рисунок 5. Таблица во второй нормальной форме 2НФ
⇑
Связанные темы
- Нормализация. Понятие и необходимость применения. Аномалии модификации. Примеры
- Первая нормальная форма 1НФ. Приведение таблицы к первой нормальной форме. Примеры
- Функциональные зависимости. Построение схем функциональных зависимостей. Примеры
⇑