范式速记

允我心安 提交于 2020-02-07 00:44:36

第N范式总是满足第N-1范式。

范式化设计的优点:一般能解决写入的性能问题,原因:1. 范式化设计不存在重复数据,因此修改时写入更少。 2. 范式化的表比较小,因此操作起来更快。

范式化设计的缺点:真正投入使用时一般查询至少需要join一次,稍复杂一点需要join三到四张表,因此范式化设计会让查询代价变高昂

正确姿势是根据业务来混合范式化和反范式化到设计中来,做一定的折中。

第一范式(1NF)

列拆无可拆

不符合范式:
员工号 信息
1029 汤米 28岁
符合范式:
员工号 姓名 年龄
1029 汤米 28

第二范式(2NF)

抽出关系表

不符合范式:
员工号 姓名 年龄 绩效
1029 汤米 28 A
符合范式:
员工号 姓名 年龄
1029 汤米 28
员工号 绩效
1029 A

第三范式(3NF)

关系不能存在传递

不符合范式:
员工号 姓名 年龄
1029 汤米 28
员工号 绩效 奖励
1029 A 一级
奖励 年终奖(月) 期权(%)
一级 6 5

注:表二存在传递关系。奖励和绩效有直接关系,绩效和员工号有直接关系,但奖励和员工号并非直接关系而是传递关系。应该拆成两张关系表。

符合范式:
员工号 姓名 年龄
1029 汤米 28
员工号 绩效
1029 A
绩效 奖励
A 一级
奖励 年终奖(月) 期权(%)
一级 6 5
范式的建议
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!