数据库的1NF,2NF和3NF

1NF(第一范式)

强调的是列的原子性,即列不能够再分成其他几列,限定条件如下:

  1. 每个列必须有一个唯一的名称
  2. 行和列的次序无关紧要
  3. 每一列都必须有单个数据类型
  4. 不允许包含相同值的两行
  5. 每一列都必须包含一个单值 (一个列不能保存多个数据值)
  6. 列不能包含重复的组
    第一范式会存在更新、删除和插入异常。

2NF(第二范式)

2NF的限定条件如下:

  1. 它符合第一范式
  2. 所有的非键值字段均依赖于所有的键值字段
几个概念

A)函数依赖:A—>B,如果通过A的属性(属性组)的值,可以唯一确定B的属性的值。则称B依赖于A。Eg:学号—>姓名。(学号,课程名称)—> 分数

B)完全函数依赖: A–>B,如果A是一个属性组,则B属性值的确定需要依赖A属性组中所有的属性值。
例如:(学号,课程名称)—> 分数
C)部分函数依赖:A—>B,如果A是一个属性组,B属性值的确定只需要依赖A属性组中某一些值即可。例如:(学号,分数)—> 姓名
D)传递函数依赖:A—>B,B—>C,传递唯一时,则称C函数传递依赖与A
E)码:如果在一张表中,一个属性或者属性组,被其他属性所完全依赖,则称这个属性(属性组)为该表的码。
主属性:码属性组中的所有属性;
非主属性:其他属性
第二范式也会存在更新、删除和插入异常。

3NF(第三范式)

3NF的限定条件如下:

  1. 符合2NF
  2. 不包含传递相关性(即,一个非键值字段的值依赖于另一个非键值字段的值)。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。

Appendix

转自Paul_Huang_2011

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值