- •Нормализация баз данных
- •Происхождение и назначение нормальных форм
- •Типы нормальных форм
- •Первая нормальная форма (1nf)
- •Вторая нормальная форма (2nf)
- •Третья нормальная форма (3nf)
- •Доменно-ключевая нормальная форма (dknf)
- •Шестая нормальная форма (6nf)
- •] Определение
- •Нормальная форма Бойса—Кодда (bcnf)
- •Четвёртая нормальная форма (4nf)
- •Пятая нормальная форма (5nf)
- •Атомарность атрибутов
- •Исходное назначение 1nf
- •Определение
- •Определение
- •Определение
- •Пример 1
- •Пример 2
- •Определение
- •Определение
- •Определение
- •Определение
Определение
Таблица находится в третьей нормальной форме (3NF), если она находится во второй нормальной форме (2NF) и при этом любой ее неключевой атрибут зависит только от первичного ключа (Primary key, PK) (иначе говоря, один факт хранится в одном месте).
Таким образом, отношение находится в 3NF тогда и только тогда, когда оно находится во 2NF и отсутствуют транзитивные зависимости неключевых атрибутов от ключевых. Транзитивной зависимостью неключевых атрибутов от ключевых называется следующая: A → B и B → C, где A - набор ключевых атрибутов (ключ), B и С - различные множества неключевых атрибутов.
При решении практических задач в большинстве случаев третья нормальная форма является достаточной. Процесс проектирования реляционной базы данных, как правило, заканчивается приведением к 3NF.
Пример
Пример приведения таблицы к третьей нормальной форме
Исходная таблица:
Фамилия |
Отдел |
Телефон |
Гришин |
1 |
11-22-33 |
Васильев |
1 |
11-22-33 |
Петров |
2 |
44-55-66 |
В результате приведения к 3NF получаются две таблицы:
Фамилия |
Отдел |
Гришин |
1 |
Васильев |
1 |
Петров |
2 |
Отдел |
Телефон |
1 |
11-22-33 |
2 |
44-55-66 |
Нормальная форма Бойса—Кодда (BCNF) — одна из возможных нормальных форм таблицы реляционной базы данных. Это модификация третьей нормальной формы (в некоторых источниках именно 3NF называется формой Бойса-Кодда). Названа в честь Рэя Бойса и Эдгара Кодда.
Определение
Отношение находится в BCNF, если оно находится в 3NF и в нем отсутствуют функциональные зависимости атрибутов первичного ключа от неключевых атрибутов. Ситуация, когда отношение будет находиться в 3NF, но не в BCNF, возникает при условии, что отношение имеет два (или более) возможных ключа, которые являются составными и имеют общий атрибут. На практике такая ситуация встречается достаточно редко, для всех прочих отношений 3NF и BCNF эквивалентны.
Пример 1
Пример приведения таблицы к нормальной форме Бойса—Кодда
Исходная таблица:
Номер клиента |
Дата собеседования |
Время собеседования |
Номер комнаты |
Номер сотрудника |
С345 |
13.10.03 |
13.00 |
103 |
А138 |
С355 |
13.10.03 |
13.05 |
103 |
А136 |
С368 |
13.09.03 |
13.00 |
102 |
А154 |
С366 |
13.09.03 |
13.30 |
105 |
А207 |
В результате приведения к форме Бойса—Кодда получаются две таблицы:
Номер клиента |
Дата собеседования |
Время собеседования |
Номер Сотрудника |
С345 |
13.10.03 |
13.00 |
А138 |
С355 |
13.10.03 |
13.05 |
А136 |
С368 |
13.09.03 |
13.00 |
А154 |
С366 |
13.09.03 |
13.30 |
А207 |
Дата собеседования |
Номер сотрудника |
Номер комнаты |
13.10.03 |
А138 |
103 |
13.10.03 |
А136 |
103 |
13.09.03 |
А154 |
102 |
13.09.03 |
А207 |
105 |
