关系数据模型的规范化是一种组织数据的技术。规范化方法对表进行分解,以消除数据冗余,避免异常更新,提高数据完整性。
规范化是通过应用凡是规则实现的,最常用的范式有第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。
1.第一范式(1NF)
表中的列只能含有原子性(不可再分)的值。
比如下表所示:
id | name | mobile |
---|---|---|
1 | 张三 | 1111111111 22222222 |
此表的mobile字段中存了两个手机号,违反了1NF规则。
2.第二范式(2NF)
第二范式要同时满足下面两个条件:
满足第一范式
没有部分依赖
例如,员工表的一个候选键是{id,mobile,deptNo},而deptName依赖于{deptNo},同样name仅依赖于{id},因此不是2NF的。这时需要对表进行拆分。
3.第三范式(3NF)
第三范式要同时满足下面两个条件:
满足第二范式
没有传递依赖
例如,员工表的province、city、district依赖于zip,而zip依赖于{id},换句话说,province、city、district传递依赖于{id},违反3NF规则。需要对表进行分拆。
在关系数据模型设计中,一般需要满足第三范式的要求。如果一个表有良好的主外键设计,就应该是满足3NF的表。规范化带来的好处是通过减少数据冗余提高更新数据的效率,同时保证数据完整性。
但是,在实际应用中要防止过度规范化的问题,规范化程度越高,划分的表就越多,在查询数据时就有可能使用表连接操作。如果连接的表过多,又会影响查询的性能。
作者:阿猫阿狗Hakuna
链接:https://www.jianshu.com/p/e5a6e365f31a
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦