Что такое нормальная форма Бойса-Кодда (BCNF)?

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

Цели нормализации базы данных состоят в том, чтобы исключить избыточные данные и гарантировать, что зависимости данных имеют смысл. База данных нормализуется, когда одни и те же данные не хранятся в более чем одной таблице, и когда в таблице хранятся только связанные данные.

Происхождение Бойса-Кодда нормальной формы

Следуя ряду рекомендаций, убедитесь, что базы данных нормализованы. Эти рекомендации называются нормальными формами и пронумерованы от одного до пяти. Реляционная база данных описывается как нормализованная, если она соответствует первым трем формам: 1NF, 2NF и 3NF.

BCNF был создан как продолжение третьей нормальной формы, или 3NF, в 1974 году Раймондом Бойсом и Эдгаром Коддом. Мужчины работали над созданием схем базы данных, которые минимизируют избыточность с целью сокращения времени вычислений. Третья нормальная форма удаляет столбцы, которые не зависят от первичного ключа, в дополнение к соответствию рекомендациям в первой и второй нормальных формах. BCNF, который иногда называют 3.5NF, отвечает всем требованиям 3NF и требует, чтобы ключи-кандидаты не зависели от других атрибутов в таблице.

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

Используя свое понимание реляционной базы данных, Кодд определил руководящие принципы 1NF, 2NF и 3NF. Он объединился с Бойсом, чтобы определить BCNF.

Ключи-кандидаты и BCNF

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

Ключи-кандидаты должны быть уникальными. 

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

В этой таблице поле определяет first_name и last_name. Аналогично, кортеж (,) определяет.

Идентификатор сотрудникаИмяФамилиязаглавие
13133ЭмиликузнецМенеджер
13134Джимкузнецассоциированный
13135ЭмилиДжонсассоциированный

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

Ссылка на основную публикацию