Нормальная форма Бойса — Кодда

Нормальная форма Бойса — Кодда

Нормальная форма Бойса — Кодда

Нормальная форма Бойса-Кодда (англ. Boyce-Codd normal form; сокращённо BCNF) — одна из возможных нормальных форм отношения в реляционной модели данных.

Иногда нормальную форму Бойса-Кодда называют усиленной третьей нормальной формой, поскольку она во всех отношениях сильнее (строже) по сравнению с ранее определённой ЗНФ[1].

Названа в честь Рэя Бойса и Эдгара Кодда, хотя Кристофер Дейт указывает, что на самом деле строгое определение «третьей» нормальной формы, эквивалентное определению нормальной формы Бойса-Кодда, впервые было дано Иэном Хитом (англ. Ian Heath) в 1971 году, поэтому данную форму следовало бы называть «нормальной формой Хита»[1].

Содержание

Определение

Отношение находится в BCNF тогда и только тогда, когда каждая его нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ[1].

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

Для определения BCNF следует понимать понятие функциональной зависимости атрибутов отношения.

Пусть R является переменной отношения, а X и Y — произвольными подмножествами множества атрибутов переменной отношения R. Y функционально зависимо от X тогда и только тогда, для любого допустимого значения переменной отношения R, если два кортежа переменной отношения R совпадают по значению X, они также совпадают и по значению Y. Подмножество X называют детерминантом, а Y — зависимой частью.

Функциональная зависимость тривиальна тогда и только тогда, когда ее правая (зависимая) часть является подмножеством ее левой части (детерминанта).

Ситуация, когда отношение будет находиться в 3NF, но не в BCNF, возникает, например, при условии, что отношение имеет два (или более) потенциальных ключа, которые являются составными и имеют общий атрибут. На практике такая ситуация встречается достаточно редко, для всех прочих отношений 3NF и BCNF эквивалентны.

Первый пример

Пример приведения таблицы к нормальной форме Бойса — Кодда

Исходная таблица:

Номер клиента Дата собеседования Время собеседования Номер комнаты Номер сотрудника
С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

Второй пример

Предположим, создаётся таблица бронирования для теннисных кортов на день: {Номер корта, Время начала, Время окончания, Тариф, Член клуба}. Тариф зависит от выбранного корта и членства в клубе.

Таким образом, возможны следующие составные первичные ключи: {Номер корта, Время начала}, {Номер корта, Время окончания}, {Тариф, Время начала}, {Тариф, Время окончания}.

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

Тем не менее, существует функциональная зависимость тарифа от номера корта. То есть, по ошибке можно нарушить логическую целостность и, например, приписать тариф Premium для первого корта, хотя тариф Premium может относиться только ко второму корту.

Можно улучшить структуру, разбив таблицу на две: {Номер корта, Время начала, Время окончания, Член клуба} и {Тариф, Номер корта, Член клуба}. Данное отношение будет соответствовать BCNF.

Примечания

  1. 1 2 3 Дейт К. Дж. Введение в системы баз данных. — 8-е изд. — М.: «Вильямс», 2006

Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Нормальная форма Бойса — Кодда" в других словарях:

  • Нормальная форма Бойса — Кодда (англ. Boyce Codd normal form; сокращённо BCNF)  одна из возможных нормальных форм отношения в реляционной модели данных. Иногда нормальную форму Бойса Кодда называют усиленной третьей нормальной формой, поскольку она во всех… …   Википедия

  • Нормальная форма Бойса—Кодда — Основная статья: Нормальная форма Нормальная форма Бойса Кодда (BCNF) одна из возможных нормальных форм таблицы реляционной базы данных. Это модификация третьей нормальной формы (в некоторых источниках именно 3NF называется формой Бойса Кодда).… …   Википедия

  • Нормальная форма Бойса-Кодда — Основная статья: Нормальная форма Нормальная форма Бойса Кодда (BCNF) одна из возможных нормальных форм таблицы реляционной базы данных. Это модификация третьей нормальной формы (в некоторых источниках именно 3NF называется формой Бойса Кодда).… …   Википедия

  • Нормальная форма — У этого термина существуют и другие значения, см. Нормальная форма (значения). Нормальная форма  свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, потенциально приводящей к логически ошибочным… …   Википедия

  • Нормальная форма базы данных — Третья нормальная форма (3NF) одна из возможных нормальных форм таблицы реляционной базы данных. Третья нормальная форма является достаточной при решении большинства практических задач, и процесс проектирования реляционной базы данных, как… …   Википедия

  • Третья нормальная форма — (англ. Third normal form; сокращённо 3NF)  одна из возможных нормальных форм отношения реляционной базы данных. 3NF была изначально сформулирована Э. Ф. Коддом в 1971 году. Содержание 1 Определение …   Википедия

  • Вторая нормальная форма — Основная статья: Нормальная форма Вторая нормальная форма (англ. Second normal form; сокращённо 2NF) одна из возможных нормальных форм таблицы реляционной базы данных. Содержание 1 Определение 2 Пример …   Википедия

  • Первая нормальная форма — Основная статья: Нормальная форма Первая нормальная форма (1NF)  базовая нормальная форма отношения в реляционной модели данных. Содержание 1 Определение 2 Пример …   Википедия

  • Пятая нормальная форма — Основная статья: Нормальная форма Пятая нормальная форма (5NF)  одна из возможных нормальных форм отношения реляционной базы данных. Содержание 1 Определение 1.1 Декомпозиция без потерь …   Википедия

  • Четвертая нормальная форма — Основная статья: Нормальная форма Четвёртая нормальная форма (4NF)  одна из возможных нормальных форм таблицы реляционной базы данных. Определение Таблица находится в 4NF, если она находится в BCNF и не содержит нетривиальных многозначных… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»