数据库设计--范式

关于1NF

怎么判断有没有重复组,或者说怎么判断多个字段是否同一性质?我有一个简单的方法,或许不完整,我是直接从集合的定义里推导出来的,大家不妨一听。

N个字段具备同一性质是指他们在应用领域中值域是一样的,在同一条记录中值永不相同,且没有顺序的区别。
也就是说如果你有两个字段,电话1和电话2,这两个字段的值域显然是一致的,如果对于任何一条记录而言它们的值又总是不相同,或者说如果相同可以只使用一个字段,且电话1和电话2的数据对调不会影响任何查询和逻辑,那么它们就是Repeate Group。


关于2NF
超键的定义是,可以唯一确定一条记录的字段集合。显然符合1NF的数据的所有字段集合自动是超键,超键可以有N个。

候选键的定义则是最简的超键,即不存在一个可以作为键字段集合,是一个候选键的子集,这里的最简不是最小。即一个表可以存在一个仨字段候选键还存在一个俩字段候选键,并不因为俩字段候选键的存在就否定那个仨字段候选键,只要俩字段的不是它的子集。候选键也可以有N个,这也是被称之为候选键的原因(同样对候选键这个翻译无限怨念)。


关于3NF
其实key就是键,键一般指超键。

可以简单的看出来,如果一个表拥有超键,则必然拥有候选键。如果一个东西依赖于所有的候选键,则这个东西必然依赖于所有的超键。
所以依赖于任何键,和依赖于任何候选键,是一个意思。:)


关于依赖
X依赖于Y(X和Y都是字段集合)或者说Y决定了X是指在关系(数据表)中,对于确定的Y,都有确定的X与之对应。或者通俗点说,X依赖于Y,是指存在X到Y的一对多或一对一的关系(不能是多对一或多对多)。

 

原文链接:http://www.cnblogs.com/KissKnife/archive/2009/10/26/1590029.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值