标签:范式 原则 数据库 信息 编号 系别 设计 主键 冗余
数据库三范式原则
1、第一范式:
数据表的每个数据列具有原子性以及同一个数据表中内容相似的数据列必须消除;
例如:
2、第二范式:
第一范式的基础上,要有主键,要求其他字段都依赖于主键。
3、第三范式:
第二范式的基础上,不允许存在传递依赖;
可以理解为消除冗余数据,就是各种信息只在一个地方存储,不出现在多张表中。 比如说大学分了很多系(中文系、英语系、计算机系……),这个系别管理表信息有以下字段组成:系编号,系主任,系简介,系架构。那么再回到学生信息表,张三同学的年龄、性别、学号都有了,我能不能把他的系编号,系主任、系简介也一起存着?如果你问三范式,当然不行,因为三范式不同意。因为系编号,系主任、系简介已经存在系别管理表中,你再存入学生信息表,就是冗余了。 三范式中说的传递依赖,就出现了。这个时候学生信息表中,系主任信息是不是依赖于系编号了?而这个表的主键可是学号啊!所以按照三范式,处理这个问题的时候,学生表就只能增加一个系编号字段。 这样既能根据系编号找到系别信息,又避免了冗余存储的问题。
【注意】:
实际设计时,为了提高查询效率,适当的冗余有时是必要的;
标签:范式,原则,数据库,信息,编号,系别,设计,主键,冗余 来源: https://blog.csdn.net/luohaiqing123456/article/details/91449020
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。