首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >3NF与BCNF:示例

3NF与BCNF:示例
EN

Stack Overflow用户
提问于 2013-12-14 05:30:58
回答 1查看 5.5K关注 0票数 3

Gday小伙子们

好的,我有一个数据库类,我有这个例子,它让我觉得我真的没有完全理解这两个NFs之间的区别。

我知道

对于R满足的每个非平凡FD (X->A),R至少满足下列条件之一的关系R在3NF当且仅当: (a) X是R的超键,或 (b) A是R的一个关键属性

一个关系R是BCNF当且仅当R满足的每一个非平凡FD (X->A)满足以下条件: (a) X是R的超级密钥

下面是一个例子:

R= (A,B,C,D) F= {AB->C,AB->D,C->A,D->B} 1。R在3NF中,为什么?如果不是,就把它分解成3NF。 索尔:是的。查找所有候选密钥: AB、BC、CD、AD检查F中的所有FDs是否为3NF条件

嗯,C->A不是导致违规吗?C不是超级键,它也不平凡,D->B也是如此?

但这不是BCNF:

  1. R在BCNF,为什么?如果不是,把它分解成BCNF编号。因为C->A,C不是超级钥匙。类似于D->B R1 = {C,D},R2 = {A,C},R3 = {B,D}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-14 21:03:44

嗯,C->A不是导致违规吗?C不是超级键,它也不平凡.

至于3NF的第二个条件呢?A是R中某个键中的一个属性吗?

(提示:这种练习的目的在一定程度上也是为了说明为什么3NF不是一种非常有用的正常形式,以及3NF和BCNF之间的区别很重要的情况)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20580019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档