- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
本文由简悦SimpRead转码,原文地址
本讲解的主要内容是:“高性能库表设计”。
优秀的库表设计是高性能数据库的基础。如何才能设计出高性能的库表结构呢?这里必须要提到数据库
范式。范式是基础规范,反范式是针对性设计。
范式
范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。数据库
的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的
数据库,否则可能会设计出低效的库表结构。
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德
范式(BCNF)、第四范式(4NF)和第五范式(5NF,还又称完美范式)。
满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称
2NF。其余依此类推。各种范式呈递次规范,越高的范式数据库冗余越小。通常所用到的只是前三个范
式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。
###
第一范式
第一范式无重复的列,表中的每一列都是拆分的基本数据项,即列不能够再拆分成其他几列,强调的是
列的原子性.。
如果在实际场景中,一个联系人有家庭和公司,那么以“、、”为表头的表结构就
没有达到1NF。要符合1NF我们只需把列拆分,让表头变为、、家庭、公司即
可。
###
第二范式
第二范式属性完全依赖于主键,首先要满足它符合1NF,另外还需要包含两部分内容:
表必须有一个主键;
没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。即要求实体的属性完
全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。
###
第三范式
第三范式属性不传递依赖于其他非主属性,首先需要满足2NF,另外非主键列必须直接依赖于主键,不
能存在传递依赖。即不能存在:非主键列A依赖于非主键列B,非主键列B依赖于主键的情况。
###
第二范式和第三范式的区别
第二范式:非主键列是否依赖主键(包括一列通过某一列间接依赖主键),要是有依赖关系就是第
二范式;
第三范式:非主键列是否直接依赖主键,不能是那种通过传递关系的依赖。要是符合这种依赖关系
就是第三范式。
通过对前三个范式的了解,我们知道3NF是2NF的子集,2NF是1NF的子集。
###
设计符合2NF的表
接下来以订单信息表为例,讲述如何设计一个符合2NF的表,首先,我们看原始的订单信息表,如下
图所示。
图中,以订单编号和商品编号作为联合主键,商品名称、单位、价格等信息不与主键相关,只与编号相
关,了第二范式。应该对订单信息表进行拆分,商品信息单独一订单项目一如下所
示,拆分分成3
包含的订单信息表;
包含商品详情的商品信息表;
包含订单详情的订单详情表。
###
范式优缺点
经过前面的讲解和案例分析可知范式具备以下优点:
避免数据冗余,减少数据完整性的麻烦;
减少数据库的空间;
数据变更速度快。
同时,也有如下缺点:
按照范式的规范设计的表,等级越高的范式设计出来的表数量越多。
获取数据时,表关联过多,性能较差。
表的数量越多,查询所需要的时间越多。也就是说所用的范式越高,对数据操作的性能越低。
反范式
反范式设计主要从面考虑:
业务场景;
相应时间;
字段冗余。
反范式设计就是用空间来换取时间,提高业务场景的响应时间,减少多表关联。主要的优点如下。
允许适当的数据冗余,业务场景中需要的数据几乎都可以在一上显示,避免关联;
可以设计有效的索引。
###
范式与反范式异同
范式化模型:
数据没有冗余,更新容易;
当表的数量比较多,查询数据需要多表关联时,会导致查询性能低下。
反范式化模型:
冗余将带来很好的性能,因为不需要join很多表;
虽然需要冗余数据,但是对磁盘空间的消耗是可以接受的。
讲完范式,接下来我们看看MySQL使用
您可能关注的文档
- (2025.01.06)以高质量发展推动新时代西部大开发调研报告.docx
- (2025.01.06)在全县安全生产会议上的讲话.docx
- (2025.01.06)XX区在全市2025年工作务虚会的发言.docx
- (2025.01.05)2024年党风廉政建设专题会议记录.docx
- (5篇)关于学校关工委的工作总结合集.docx
- 2024幼儿园党支部书记抓党建工作述职报告.docx
- 2024年度民主生活会前理论学习中心组集体学习主持词(含总结讲话).docx
- 2024年度司法局年度工作总结:法治征程中的奋进与担当.docx
- 集体廉政谈话会讲话汇编(10篇).docx
- 交警大队年终总结.docx
- 五个管好的意识形态工作总结.docx
- 在学校党员大会上的讲话:今年国际教育发展的四个主题.docx
- 在区廉政谈话会上的讲话.docx
- 学习贯彻2024年中央经济工作会议精神 打好政策“组合拳”保持经济稳定增长.pptx
- (7篇)学习贯彻中央经济工作会议精神研讨发言心得体会汇编.docx
- 关于“时代新人”视阈下高职思政课教学实践探究报告.docx
- (2025.01.05)关于城市营商环境现状与优化路径探索报告.docx
- 教育工作会议主题发言材料和讲话材料汇编(6篇).docx
- 镇党委副书记兼派出所所长关于2024年度民主生活会个人对照查摆剖析材料.docx
- 县委常委班子2024年度民主生活会对照检查.docx
文档评论(0)