Бойс-Кодд Нормальная форма объяснить

Согласно определению нормальной формы Бойса-Кодда,

Reln R с FDs F находится в BCNF, если для всех X -> A в F+ -A есть подмножество X (называемое тривиальным FD), или -X является суперключем для R.

 “R is in BCNF if the only non-trivial FDs over R are key constraints.”

 If R in BCNF, then every field of every tuple records information that 
 cannot be inferred using FDs alone.

Что я не понимаю, так это два приведенных выше утверждения о нормальной форме,

Может кто-нибудь привести пример?

Спасибо!

1 ответ

Решение

Лично мне сложно создавать образцы, выходящие за рамки 3NF, но, возможно, эта презентация поможет, когда кто-то придумает лучший ответ:

http://www.cs.sjsu.edu/~lee/cs157b/The_Normal_Forms2.ppt

Это кратко идет от 1NF до 3NF и затем объясняет различия между 3NF и BCNF.

РЕДАКТИРОВАТЬ: Поскольку исходная ссылка вышла из строя, я нашел это: http://www.authorstream.com/Presentation/aSGuest134613-1415068-the-normal-forms2/

Некоторые предварительные условия, прежде чем я попытаюсь объяснить:

Неключевой атрибут: Атрибут, который не является частью какого-либо кандидата-ключа, известен как неключевой / неосновной атрибут.

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

Теперь BCNF - это расширенная версия 3NF, более строгая, чем 3NF.

Таблица находится в BCNF, если каждая функциональная зависимость X → Y, X является суперключом таблицы.

Consider a relation : R(A,B,C,D)

The dependencies are:

A->BCD

BC->AD

D->B

So, Candidate keys(or minimal super keys) are A and BC.

But in dependency: D->B, D is not a superkey.

Hence it violates BCNF form.

We can break this relation into R1 and R2 as:
R1(A,D,C) and R2(D,B) to get BCNF.
Другие вопросы по тегам