在数据库设计中,我们要规范数据库表的设计,如果不合理规范的话,不同的场景在表中会出现许多问题。例如常见的问题有数据冗余、插入异常、更新异常和删除异常。
这张图就是不按三范式规范设计的图,数据基本杂合在一起。
数据冗余:如图所示,比如部门地址不断的重复,如办公楼一层,且重复存储。
插入异常:假如这是一个以员工为主体的表,给定情况,公司刚成立了一个新的部门,这个部门没有员工,那要怎么维护新部门的信息呢?你要输入部门的信息就要有员工,但这个部门刚成立没有员工那就不能部门的信息。这就出现了一个插入异常的问题。
更新异常:假如部门名称对应了部门地址,当行政管理部门地址改变了,相对应的要改掉表中的对应的全部部门地址,不过由于你的疏忽忘掉改了其中一个部门地址,这个部门名称就会有两个不同的部门地址(原来和改变的)。这就产生了更新异常的问题。
删除异常:假如一个部门只剩一个员工,公司在打算重建部门要炒了最后一个员工,如果真的炒了这个员工,那么这个部门的信息也会被删掉,这不在部门信息的维护上出了问题?所以这就是所谓的删除异常。
这就是数据库表要合理规范的原因,在合理规范的中可以用三范式来规范。说来话长,来日方长。这是个人的见解,如有错误欢迎指正。感谢您的耐心阅读!