Бойс-Кодд Нормальная форма объяснить
Согласно определению нормальной формы Бойса-Кодда,
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.