数据库 三范式 BCFN

三范式


范式

 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。
注意: 巴斯-科德范式(BCNF)属于第三范式

我们平时能用到的也就到前三范式,所以我也主要针对前三范式做了了解

三大范式
  • 1范式(1FN)
    • 设 R 为任一给定关系,若果 R 中每个列与行的交点处的取值都是不可再分的基本 元素,则 R 为第一范式。即:一张表中的属性和属性值都不可再分,这样的表满足于1范式
    • 缺点:
      • 冗余高
      • 插入操作异常
      • 删除操作异常
  • 2范式(2FN)
    • 设 R 为任一给定关系,若 R 为 1NF, 且其所有非主属性都完全函数依赖于候选关键字,则 R 为第二范式。即:2NF是要求记录有惟一标识,即实体的惟一性
  • 3范式(3FN)
    • 设 R 为任一给定关系,若 R 为 2NF, 且其每一个非主属性都不传递函数依赖于候选关键字,则 R 为第三范式。即:首先要满足第二范式,其次非主属性之间不存在函数依赖
  • 4范式的改进形式BCNF
    • 设 R 为任一给定关系,X、Y 为其属性集,F 为其函数依赖集,若 R 为 3NF,且其 F 中所有函数依赖 X→Y(Y 不属于 X)中的 X 必包含候选关键字,则 R 为 BCNF。
    • 一个满足BCNF的关系模式的条件:
      • 所有非主属性对每一个码都是完全函数依赖。
      • 所有的主属性对每一个不包含它的码,也是完全函数依赖。
      • 没有任何属性完全函数依赖于非码的任何一组属性。
  • 范式的转换
    • 1范式转2范式

      • 找到候选关键字,看其余的属性是否完全函数依赖候选关键字, 是的,与候选关键字一同抄下来形成一个表格, 不是的,抄下来,形成第二个表格,并且将候选关键字里能够唯一决定表格 2 的属性组抄在第一列
    • 2范式转3范式
      * 找到表格中的传递函数依赖关系的三个属性组,设为 x,y,z 将这三个属性组拆成两个表格
      第一个表格为 x,y
      第二个表格为 y,z

    • 3NF->BCNF

      • 列出表格中的所有函数依赖关系
        每个关系拆出一个表格
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值