1.为什么需要数据库遐想
遐想数据表的时候,要研讨好多的问题:
用户需要哪些数据,咱们在数据表中要保存哪一些数据怎样保证数据表中的数据的正确性怎样镌汰数据表的冗余度开拓东说念主员怎样智商更绵薄的使用数据库
如果数据库遐想得不对理的话,可能导致底下的几种问题:
遐想容易,信息访佛,存储空间败坏数据更新,插入,删除的非常不可正确示意信息丢失灵验信息重要性能差
咱们不错看出遐想精熟的数据库是很进攻的,它有底下的优点:
省俭数据的存储空间大略保证数据的好意思满性绵薄进行数据库欺诈系统的开拓
遐想数据库,咱们得醉心数据表的遐想,为了培植冗余度小,结构合理的数据库,遐想数据库必须罢职一定的纪律。
2.范式(Normal Formal)
2.1范式空洞
关系型数据库中,对于数据表遐想的基本原则,纪律就称为范式,范式是咱们在遐想数据库结构经过中需要罢职的纪律和指引步骤。
不外,有的时候为了提高某一些查询性能,咱们还需要防碍范式纪律,也便是反模范化。
2.2键和关系属性的想法
范式的界说会用到主键和候选键,咱们先来望望关系的想法,数据库中的键是由一个或多个属性构成的。
2.3第一范式(1NF)
第一范式主如果保证数据表中的每一个字段的值必须具有原子性,也便是数据表中的每个字段的值是不可再拆分的最一丝据单位
属性的原子性是主不雅的,咱们要阐述内容项贪图需求来遐想,比如说地址,如果情势莫得说要细分为省,市,县,镇这样具体的话,咱们一般就不错不拆分。
2.4第二范式(2NF)
第二范式要求在满足第一范式的基础上,还要满够数据内外的每一条数据记载,都是可惟一标识的,况兼所有的非主键字段,都必须皆备依赖主键,不可只依赖主键的一部分。如果知说念主键的所有属性的值,咱们就不错检索任何元组(行)的任何属性的任何值(要求中的主键不错拓展替换为候选键)
比如说,在得益表(学号,课程号,得益)关系中,(学号,课程号)不错决定得益,因为一个学生不错选多门课,一门课也不错被多个学生聘请,是以学号或课程号都不可单独决定得益。是以(学号,课程号)——>得益便是皆备依赖关系。比赛表内部包含球员编号,姓名,年齿,比赛编号,比赛内容和比赛局面等属性,候选键和主键都是(球员编号,比赛编号),咱们不错通过候选键(主键)来决定底下的关系。(球员编号,AG百家乐网站地址比赛编号)——>(姓名,年齿,比赛时刻,比赛局面,得分)然而这个数据表起火足第二范式,因为数据表中的字段之间还存不才面的对应关系:(球员编号)——>(姓名,年齿)(比赛编号)——>(比赛时刻,比赛局面)非主属性并非皆备依赖候选键,这样会产生底下的问题。
数据冗余:如果一个球员进入m场比赛,那么球员的姓名和年齿就访佛了m-1次,一个比赛可能有n个球员进入,比赛时刻和所在就访佛了n-1次插入非常:如果咱们要添加一场新的比赛,然而这时还莫得细则进入的球员都有谁2,那么就没发插入删除非常:咱们想删除某个球员编号,然而如果莫得单独保存比赛表的话,就会同期把比赛信息删撤回更新非常:如果咱们退换了某个比赛时刻,那么数据表所有的这个比赛的时刻都得进行退换,否则就会出现统一场比赛然而时刻不同的情况。
为了幸免上述情况,咱们不错把球员比赛表遐想成底下的三张表。
这样的话,每张数据表都顺应第二范式,就幸免了非常情况的发生
第二范式要务实体的属性皆备依赖主重要字,如果存在不皆备依赖,那么这个属性和主重要字的这一部分就应该差异处治造成一个新的实体,新实体和正本实体之间是一双多的关系
2.5第三范式(3NF)
第三范式培植在如故满足第二范式的基础上数据表中的每一个非主键字段都和主键字段径直关系也便是说数据表中的所有非主键字段不可依赖于其他非主键字段这个纪律的理由是所有非主属性之间不可有依赖关系,它们是彼此寥寂的这里的主键不错拓展成为候选键
2.6范式的优污点
优点:数据的模范化有助于排斥数据库中的数据冗余第三范式庸俗被觉得在性能,扩张性和数据好意思满性方面达到了最佳的均衡污点:镌汰了查询成果,因为范式品级越高,遐想出来的表就越多,进行数据查询的时候就可能需要关联多张表,不仅代价奋斗,况兼可能会使得一些索引失效范式仅仅冷落遐想的标模范,内容遐想的时候,咱们可能为了性能和读取成果违背范式的原则,通过加多少量的冗余或访佛的数据来提高数据库的读取性能,减少关联查询,兑现空间换时刻的贪图
3.反范式化
3.1空洞
罢办事务优先的原则当先满足业务需求,再进来减少冗余无意候咱们想要对查询成果进行优化,反范式化亦然一种优化念念路,咱们不错通过在数据表中加多冗余字段来提高数据库的读性能
3.2 反范式的新问题
反范式诚然不错通过空间换内容,普及查询的成果,然而反范式也会带来一些新问题
存储空间变大了一个表中字段作念了修改,另外一个表中冗余字段也要同步进行修改,否则会导致数据不一致如果用存储经过了复旧数据的更新,删除等操作,如果操作频繁,就会铺张系统资源在数据量小的情况下,反范式不可体现性能的上风,可能还会让数据库的遐想愈加复杂。
3.3反范式的适用场景
当冗余信息能大幅度提高查询成果的时候,咱们才会继承反范式的优化。
加多冗余字段的建议
加多冗余冗余字段一定要顺应底下的两个要求,满足底下的两个要求才不错研讨加多冗余字段
①这个冗余字段不需要庸俗进行修改
②这个冗余字段查询的时候不可或缺
4.BCNF(巴斯范式)
这个表顺应第三范式ag百家乐交流平台
- ag百家乐接口多少钱 墨菲单节独得24分,率鹈鹕将分差迟滞到个位数2025-01-28
- ag百家乐接口多少钱 马祖拉:输球时咱们不会过度暴燥 团队凝合力和均衡性很遑急2025-01-26
- ag百家乐接口多少钱 徐若晗你不要太听劝了!2025-01-07
- 下载AG百家乐 这辈子,不知谈为啥,即是和骗子傀怍不安~#吉他弹唱 #骗子 #现场版li...2025-01-02
- ag百家乐接口多少钱 曼联没与任何球员签左迁降薪条目 但签了欧冠奖金2025-01-02
- ag百家乐老板 化妆品致敏性评价毒理学检测身手有哪些?化妆品过敏原监管法例2025-01-01