三大范式

就是指主键

非主属性是指除了主键以外的属性

 

学生选课表(学生,课程,教材,老师姓名+老师职称,教室,上课时间)

(学生,课程)->教室

(学生,课程)->老师姓名+老师职称         ->主键是(学生,课程)

(学生,课程)->教材
(学生,课程)->上课时间

 

 

第一范式(1NF):属性不可分。

学生选课表(学生,课程,教材,老师姓名+老师职称,教室,上课时间)à不满足1NF

记录1(张三,java,《疯狂Java》,小白副教授,201,10点)

看“老师姓名+老师职称”这一列:小白副教授

那么就可以拆分掉,

学生选课表(学生,课程,教材,老师姓名,老师职称,教室,上课时间)->满足1NF

 

 

 

第二范式(2NF):符合1NF,并且,非主属性完全依赖于码。

学生选课表(学生,课程,教材,老师姓名,老师职称,教室,上课时间)->满足1NF,不满足2NF

 

要知道什么叫完全依赖,什么叫部分依赖

首先,找出码和非主属性

码:(学生,课程)

非主属性:(教材,老师姓名,老师职称,教室,上课时间)

部分依赖:

(学生,课程)->教材 

 课程->教材

(学生,课程)整体才是码,课程只是部分的码

非主属性(教材)部分依赖于码(学生,课程)

完全依赖:

(学生,课程)->教室

(学生,课程)->上课时间

 

学生选课表(学生,课程,教材,老师姓名,老师职称,教室,上课时间)

拆分:

学生选课表(学生,课程,老师姓名,老师职称,教室,上课时间)

课程表(课程,教材)

->满足1NF,也满足2NF

 

 

 

 

第三范式(3NF):符合2NF,并且消除传递依赖

传递依赖

首先,找出非主属性(教材,老师姓名,老师职称,教室,上课时间)

老师姓名->老师职称

非主属性(老师职称)传递依赖于非主属性(老师姓名)

 

学生选课表(学生,课程,老师姓名,老师职称,教室,上课时间)

课程表(课程,教材)

->满足1NF,也满足2NF

 

继续拆分

学生选课表(学生,课程,老师姓名,教室,上课时间)

课程表(课程,教材)

老师表(老师姓名,老师职称)

->满足1NF,满足2NF,也满足3NF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值