关系型数据库的范式分析并举例

一、第一范式(1NF)

第一范式要求属性具有原子性,不可再分解。例如:活动表(活动名称、活动时间、活动地址)如果活动地址可以细分国家,城市、地区等则此时的设计不满足第一范式。


二、第二范式 (2NF)

第二范式要求数据记录的唯一性,且有唯一的主键,如果表中存在多个主键且不完全依赖主键,则不满足第二范式。例如:版本表(版本编号、版本名称、产品编号、产品名称)此时主键为版本编号、产品编号。产品名称依赖产品编号此时为不完全依赖主键故不满足第二范式。解决方案,分表;版本表(版本编号、版本名称)产品表(产品编号、产品名称)

三、第三范式(3NF)

第三范式强调数据冗余性的约束,即非主键完全直接依赖于主键。例如订单表(订单编号、顾客编号、顾客名称)订单编号为主键,此时顾客编号和顾客名称都完全依赖与订单编号满足第二范式,但是顾客名称直接依赖顾客编号,顾客编号直接依赖订单编号从而顾客名称间接依赖主键从而不满足第三范式。解决的办法分表订单表(订单编号、顾客编号)顾客表(顾客编号、顾客名称)此时完全满足第三范式。


范式可以避免数据冗余,减少数据空间,减轻维护数据完整性的麻烦。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值