数据库设计三大范式

关系数据库中的关系必须满足一定的要求,即满足不同的范式。
关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。
设计关系型数据库时,遵从不同的规范要求,设计出合理的关系型数据库。这些规范被称作范式。越高的范式数据库的冗余度就越低。

1NF 属性的原子性

对属性的原子性约束,要求属性具有原子性,不可再分解,即数据表的每一列都是不可分割的原子值。
比如“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对“地址”中某一部分操作的时候将非常方便。

2NF 记录的唯一性

要求属性完全依赖于主键,即数据表中的每一列都和主键相关,而不能只与主键的某一部分相关(针对联合主键而言),也就是说一个数据表中只能保存“一类数据”。

3NF 每列都和主键直接相关,而不是间接相关

数据不能存在传递关系,即每个属性都和主键有直接关系而不是间接关系。
对字段冗余性的约束,即任何字段不能由其他字段派生而来。


数据库设计的实用原则:在数据冗余和处理速度之间找到合适的平衡点。

满足第三范式的数据库设计,往往不是最好的设计。为了提高数据库的运行效率,往往需要降低范式标准:适当增加冗余,达到以空间换时间的目的。

通常情况下,一个实体不能既无主键,又无外键。主键与外键的配对,表示实体之间的连接。

派生性冗余是为了提高数据处理速度,而重复性冗余会增加数据的不一致性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值