MySQL数据库设计·范式

数据库范式:


  1NF: 在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域。
  2NF: 在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)
  3NF: 在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)


  
  函数依赖: 通过一个属性(组)A, 能确定唯一的B属性的值, 称B函数依赖于A
            例如: 学号 -> 姓名  学号+课程名称 -> 分数

普通表:

 1NF:

 2NF:

 3NF:

 
  部分函数依赖: 通过属性组A中的部分属性, 就能确定唯一的B属性的值, 称B部分函数依赖于A
            例如: 学号+课程名称 -> 姓名
  完全函数依赖: 通过属性组A中的每一个属性一起确定唯一的B属性的值, 称B完全函数依赖于A
            例如: 学号+课程名称 -> 分数    
  传递依赖: 通过属性(组)A确定唯一的B属性的值, 再通过B属性, 确定唯一C属性的值, 称C 传递依赖于A
            例如: 学号 -> 系名 -> 系主任
  
  主码: 也叫主属性, 表中其他所有属性的值, 都能通过一个属性(组)来确定, 这个属性(组)就是主码
            例如: 学号+课程名称

总结:

范式特点
1NF原⼦性:表中每列不可再拆分。
2NF不产⽣局部依赖,⼀张表只描述⼀件事情。
3NF不产⽣传递依赖,表中每⼀列都直接依赖于主键。⽽不是通过其它列间接依赖于主键。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值