博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解数据库的常见范式
阅读量:3951 次
发布时间:2019-05-24

本文共 474 字,大约阅读时间需要 1 分钟。

1.第一范式(1NF)

属性(列)不可再分,确保每列保持原子性。

只要能放进数据库,一般都满足第一范式。

2.第二范式(2NF)

2NF在1NF的基础之上,消除了非主属性对于码(候选码)的部分函数依赖。

需要注意的是,这里的码是组合码,比如(学号,课程);
分数完全依赖于这个码,
但是姓名只依赖于学号,也就是码的一部分,所以不满足2NF!
在这里插入图片描述

3. 第三范式(3NF)

3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖

也就是说, 如果存在非主属性对于码的传递函数依赖,则不符合3NF的要求。

如下表是满足2NF的,

在这里插入图片描述
对于选课表(表1),主码为(学号,课名),主属性为学号和课名,
非主属性只有一个,为分数,不可能存在传递函数依赖,所以选课表的设计,符合3NF的要求。

对于学生表(表2),主码为学号,主属性为学号,

非主属性为姓名、系名和系主任。

但是因为 学号 → 系名,同时 系名 → 系主任,所以存在非主属性系主任对于码学号传递函数依赖,所以学生表的设计,不符合3NF的要求。

系名->系主任 单独拆出就好!

具体细节参考:

转载地址:http://ojkzi.baihongyu.com/

你可能感兴趣的文章
各平台的推荐算法,太贴切了!
查看>>
一张图学会Python3
查看>>
500款各领域机器学习数据集,总有一个是你要找的
查看>>
2017年终奖调查出炉 程序员年终奖多少你绝对猜不到
查看>>
写给大数据开发初学者的话 | 附教程
查看>>
分享 :17款工具,让你的数据更美观
查看>>
不必再费心寻找,2017最全的开发干货就在这1067页PDF里
查看>>
养蛙火爆,大数据解读《旅行青蛙》崛起之谜
查看>>
县级城市消费力排行榜,你的家乡排第几?
查看>>
红包外挂史及AccessibilityService分析与防御
查看>>
Python破解验证码,只要15分钟就够了!
查看>>
揭秘浙商银行IT新架构及区块链应用
查看>>
最壕年会!微信送每人一台高配定制版 iPhone X
查看>>
盘点那些让程序员目瞪口呆的Bug都有什么?
查看>>
40个只有程序员才看得懂的段子
查看>>
薅资本主义羊毛,用Google免费GPU
查看>>
79页区块链报告:从理论到实践(附下载)
查看>>
这30个大数据热词,你都懂吗?
查看>>
最受世界 500 强企业青睐的编程语言,竟是它们?
查看>>
小程序“头脑王者” 因违规被微信下架整改 小程序不可逾越的红线
查看>>