Разница между 3NF и BCNF

Разница между 3NF и BCNF
Разница между 3NF и BCNF

Видео: Разница между 3NF и BCNF

Видео: Разница между 3NF и BCNF
Видео: Difference between 3NF and BCNF, De-normalization 2024, Июль
Anonim

3NF против BCNF

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

Что такое 3NF?

3NF - третья нормальная форма, используемая при нормализации реляционных баз данных. Согласно определению Кодда, таблица находится в 3НФ тогда и только тогда, когда эта таблица находится во второй нормальной форме (2НФ), и каждый атрибут в таблице, не принадлежащий ключу-кандидату, должен напрямую зависеть от каждый потенциальный ключ этой таблицы. В 1982 году Карло Дзаньоло дал другое определение 3NF. Таблицы, соответствующие 3NF, как правило, не содержат аномалий, возникающих при вставке, удалении или обновлении записей в таблице.

Что такое BCNF?

BCNF (также известная как 3.5NF) - еще одна нормальная форма, используемая для нормализации реляционных баз данных. Он был введен для выявления некоторых аномалий, которые не рассматриваются в 3NF. Говорят, что таблица находится в НФБК тогда и только тогда, когда для каждой из нетривиальных зависимостей вида A → B A является суперключом. Декомпозиция таблицы, которая не находится в нормальной форме BCNF, не гарантирует создание таблиц в форме BCNF (при сохранении зависимостей, которые присутствовали в исходной таблице).

В чем разница между 3NF и BCNF?

И 3NF, и BCNF являются нормальными формами, которые используются в реляционных базах данных для минимизации избыточности в таблицах. В таблице, которая находится в нормальной форме BCNF, для каждой нетривиальной функциональной зависимости формы A → B, A является суперключом, тогда как таблица, соответствующая 3NF, должна быть во 2NF, и каждая непростая атрибут должен напрямую зависеть от каждого потенциального ключа этой таблицы. BCNF считается более сильной нормальной формой, чем 3NF, и она была разработана для выявления некоторых аномалий, которые не могут быть обнаружены 3NF. Получение таблицы, соответствующей форме BCNF, потребует декомпозиции таблицы, находящейся в 3NF. Эта декомпозиция приведет к дополнительным операциям соединения (или декартовым произведениям) при выполнении запросов. Это увеличит время вычислений. С другой стороны, таблицы, соответствующие BCNF, будут иметь меньше избыточности, чем таблицы, соответствующие только 3NF. Кроме того, в большинстве случаев можно получить таблицу, соответствующую 3NF, не препятствуя сохранению зависимостей и объединению без потерь. Но это не всегда возможно с BCNF.

Рекомендуемые: