小米技术社区
小米技术社区管理员 关于小米

27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]

E-mail:mzze@163.com

Q Q:32362389

W X:xiaomi168527

小米技术社区大牛王飞 关于王飞

27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]

E-mail:wf_live@126.com

Q Q:3940019

微博:王小贱ss

小米技术社区设计小艳 关于小艳

大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]

E-mail:97157726@qq.com

Q Q:97157726

标签云
精品推荐
您的位置:首页 > 后端编程 > 数据库 > 数据库相关问题

数据库设计的规范化和标准化

分类: 数据库相关问题17个赞

数据库设计为什么要将数据库标准化和规范化?

数据库规范化是根据一系列所谓的规范形式重组关系数据库的过程,目的是减少数据冗余并提高数据完整性。 它最初是由Edgar F. Codd提出的,作为他的关系模型的组成部分

范式的概念:

范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。是数据库专业用语。

第一范式:确保每列原则性(字段)

第一范式的目标是确保每列的原子性,一个字段表示一个含义


确保每列原则性

思考:地址包含省、市、县、地区是否需要拆分?

答:如果仅仅起地址的作用,不需要统计,可以不拆分;如果有按地区统计的功能需要拆分。

在实际项目中,建议拆分。


第二范式:非键字段必须依赖于键字段

第二范式在满足第一范式的前提下,要求每个表只描述一件事情


每个表只描述一件事情

思考:如下表设计是否合理

与主键无关的表不要放


第三范式:消除传递依赖

第三范式:在满足第二范式的前提下,除了主键以外的其他列消除传递依赖。


数据表中字段的创建要消除传递依赖

思考:如下表设计是否合理?

不满足第三范式

结论:不满足第三范式,因为语文和数学确定了,总分就确定了


反3NF概念

范式越高,数据冗余越少,但是效率有时就越地下,为了提高运行效率,可以适当让数据冗余。

学号姓名语文数学总分
1李白7788165


上面的设计不满足第三范式,但是高考分数表就是这样设计的,为什么?

答:高考分数峰值访问量非常大,这时候就是性能更重要。当性能和规范化冲突的时候,我们首选性能。这就是“反三范式”。


总结:


1、第一范式约束的是所有字段


2、第二范式约束的主键和非主键的关系


3、第三范式约束的非主键之间的关系


4、范式越高,冗余越少,但表也越多。


5、规范化和性能的关系 :性能比规范化更重要


小米技术社区

本站内容均为小米原创,转载请注明出处:小米技术社区>> 数据库设计的规范化和标准化