


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库中关系模式的等级与检索
1几种范式的解决技术搜索效率与模式模型的类型密切相关。在数据库设计阶段,糟糕的数据库模型通常容易导致以下问题:数据量过大、插入异常、删除异常并更新异常。按照关系模式满足实际需求程度的不同,可将关系模式分为不同等级,即:1NF、2NF、3NF、BCNF、4NF、5NF,这几个范式可以在不同程度解决上述问题。一个较低范式的关系模式,可以通过模式分解转换为若干个高一级范式的关系模式的集合,此过程即是关系模式的规范化过程。规范化理论的基本思想是逐步消除不合适的数据依赖,让其中关系的概念更确定和单一。具体来说,从1NF到5NF是一个逐渐消除非主属性对码的部分函数依赖和传递函数依赖、消除主属性对码的部分函数依赖和传递函数依赖、消除非平凡且非函数依赖的多值依赖、消除连接依赖的过程。需要注意的是,规范化理论虽然为数据库设计提供了理论指导,但并不是规范化程度越高,模式就越好。例如:规范化程度越高,虽然对降低数据冗余和消除数据异常有好处,但由于关系被分解得更细,当查询要用到两个以上关系模式的属性时,就会因为连接运算而付出较高的代价,反而会降低查询的效率。所以在设计过程中,必须结合实际需要和应用环境,为关系模式选用合理的范式等级。2创建索引的原则索引是一种数据结构,通过对数据表中一列或多列的值排序,从而提升数据查询效率。但当对数据表进行增加、删除和修改数据的时候,索引也需要发生相应变化即还需要动态维护索引,因此使用索引会降低数据的更新速度。在数据库的设计过程中,既要注意利用索引来提升查询效率,同时也要考虑索引的维护代价,因此,应该遵从创建索引的一些原则。(1)索引要建立在经常需要查询的列上因为经常需要查询的列对索引利用率高。(2)在经常需要根据范围进行查询的列上要创建索引,因为索引已经排序,则根据范围进行查询时效率更高。(3)对查询中经常需要进行GROUPBY、ORDERBY的列上建立索引,这样可以加快查询的分组和排序的时间。(4)不应在数据值很少的列上创建索引。因为此种情况索引并不能显著提高查询速度。(5)不应在经常需要存取的列上创建索引,因为在经常存取的列上建立索引会付出较大的维护代价。3使用通配符匹配查询方式从大多数数据库来看,查询语句往往消耗了大部分的数据库资源,如果对查询语句进行优化,则可以大大提升数据库的性能。此外,查询语句独立于程序设计逻辑,相对于程序源代码的优化,对查询语句优化的风险和时间成本会更低,所以,对查询语句进行优化具有重要的意义。以下是对查询语句进行优化的几条原则。(1)将最具有限制性的条件放在前面,大值在前,小值在后。如“WHEREa<=10000ANDa>=1”效率高,而“WHEREa>=1ANDa<=10000”效率低。原因就在于虽然这两个表达式表达的是同一个意思,但因为“a<=10000”比“a>=1”具有更强的限制性,所以具有更高的效率。(2)避免采用通配符匹配查询。通配符匹配查询特别耗费时间。即使在条件字段上建立了索引,在使用通配符匹配查询的情况下也还是采用顺序扫描的方式。解决办法是可以考虑将通配符表达式转化成等价的不等式,则在执行查询时就会利用索引来查询,这样就会大大的提高查询速度。(3)避免相关子查询。一个列如果同时在主查询和WHERE子句中的查询中出现,那么很可能当主查询中的字段值改变之后,子查询必须重新查询一次。查询嵌套层次越多,效率越低,因此应当尽量避免子查询。解决办法是可以考虑将子查询改为用“AND”来表达的等价表达式,这样就可以有效避免相关子查询,提高查询效率。例如:将语句“SELECTs1,s2FROMTaWHEREs3IN(SELECTs3FROMTbWHERETb.num=100)”改为“:SELECTs1,s2FROMTa,TbWHERETa.s3=Tb.s3ANDTb.num=100”。(4)消除对大型表行数据的顺序存取。在嵌套查询中,采用顺序存取策略将可能严重影响查询效率。比如采用顺序存取策略,一个嵌套3层的查询,如果每层都查询1000行,那么这个查询就要查询10亿行数据。解决办法是对连接的字段进行索引,此外还可以使用并集来避免顺序存取。(5)使用临时表加速查询。合理使用临时表可以有效提升查询效率。以下两种情况可使用临时表提高查询效率。(1)当某一个SQL语句关联的表在两张及以上,并且和一些小表关联。可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中。(2)当程序执行过程中可能需要存放一些临时的数据,这些数据在整个程序的会话过程中会用到。在使用临时表的过程中需要注意的是:临时表创建后不会反映主表的修改。在主表中数据频繁修改的情况下,注意不要丢失数据。(6)字段的提取应采取“按需提取”的原则。本原则要求查询语句应避免“SELECT*”,而应根据实际需要提取字段。如果在结果中只需要显示字段“s1,s2,s6”,则应写成“SELECTs1,s2,s6”,这样可以省去不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络管理员考前复习试题及答案
- 行政法学职业道德试题及答案分享
- 法学概论法律政策评估的方法探讨试题及答案
- 2025年软考新规试题及答案剖析
- 多层网络架构试题与答案解析
- 2025年计算机VB考试布置试题及答案性质分析
- 网络协议基本知识考题及答案
- 行政诉讼的程序与步骤试题及答案
- 网络故障处理访谈纪实试题及答案
- 销售渠道优化的具体措施计划
- 2025云南中考:语文必考知识点
- DB65T 4740-2023 变电设备物联网数据常用格式规范
- 《胸腔镜肺部切除术》课件
- 辽宁点石联考2025届高三5月份联合考试-政治试卷+答案
- 2025-2030年中国铜冶炼行业前景预测与投资价值研究报告
- 2025年官方兽医答题题库附答案详解(达标题)
- 国企物业考试试题及答案
- 军队文职-新闻专业 (军队文职)真题库-5
- 2025年下半年保山市消防救援支队防火监督科招聘消防文员4名易考易错模拟试题(共500题)试卷后附参考答案
- 以患者为中心的医疗数据管理系统-基于区块链技术
- 2025至2030中国寺庙经济市场深度调研与未来前景发展研究报告
评论
0/150
提交评论