焦点期刊
在线客服

著作编辑 著作编辑

咨询邮箱:568476783@qq.com

计算机论文

数据库应用系统和信息管理系统被开发和使用

时间:2022-08-21 21:35 所属分类:计算机论文 点击次数:

随着数据库技术的发展,越来越多的数据库应用系统和信息管理系统被开发和使用。在许多数据库应用系统和信息管理系统中,查询功能的要求是必不可少的,也是最大的比例。如果数据库的查询功能优化规划良好,整个系统的效率将大大提高,显示了查询优化规划的重要性。为了在很大程度上优化整个数据库的查询,必须从需求、设计到使用进行规划和技术改进。
首先,详细的需求分析是优化的基础
数据库设计是从系统的需求出发,结合软硬件的相关要求,合理设计是否能满足系统功能的数据集。数据库设计中最基本的是数据库模式的设计。然而,设计一个完美和优秀的数据库系统通常是一个重复和周期性的过程。
二利用标准化是优化的关键
在数据库的设计周期中,需要进行逻辑结构设计。此时,必须规范关系模式,以达到优化数据库的目的。所谓关系标准化,就是按照统一的标准优化关系,最大限度地消除关系数据库中的数据冗余、添加、删除、修改等操作异常,提高关系质量。不良关系操作存在三个问题:1。冗余大;2.插入异常;3.删除异常。
标准化理论认为,关系中的属性是相互关联的,它们相互依赖,相互限制,形成一个严格的结构整体。根据属性之间的相关关系,可大致分为函数依赖、多值依赖和连接依赖。根据函数依赖,可分为部分依赖、完全依赖和传递依赖。根据这三种函数依赖,标准化等级主要有五个,即第一个范式(1)NF),第2范式(2NF),第3范式(3NF),BC范式(BCNF)和第4范式(4NF),满足这些范式条件的关系模式可以在不同程度上避免冗余、插入和更新异常问题。
那么如何标准化呢?具体方法是:确定数据依赖,根据数据依赖理论,逐一分析这组关系模式,确定属于哪些范式,分解模式,逐步消除非主属性对代码的部分依赖和传递依赖。在分解过程中必须遵守以下两个原则:
1.无损分解原理 无损分解是指在关系分解过程中,既不丢失数据,也不增加数据,同时保持原有的函数依赖。
2.相互独立的原则 所谓独立,是指分解后的新关系相互独立,一种关系内容的修改不应影响另一种关系。
三、标准化收尾工作
关系分解必须从实际出发,不是范式等级越高,分解越详细越好。如果关系分解过于琐碎,虽然有利于消除数据冗余和异常更新,但在查询操作中往往需要链接,以降低查询效率。相反,如果范式等级太低,虽然有利于查询,但会导致相关数据冗余、异常更新等情况。因此,我们应该根据实际应用程序设计相关的范式。
(4)查询使用中的优化技术
在应用程序项目的实施中,许多程序员在使用一些前端数据库开发工具开发数据库应用程序时,只关注华丽的用户界面,而不关注查询句子的效率,导致开发的应用程序系统效率低下,资源浪费严重。因此,如何设计的查询句子非常重要。
在实际应用中,很多程序员认为查询优化是查询优化DBMS程序员编写的任务和程序员编写的任务SQL句子关系不大,这是错误的。一个好的查询计划通常会使程序性能提高几十倍。查询计划是用户提交的SQL句子集合,查询计划是优化后产生的句子集合。在实际数据库产品的高版本中,采用了基于成本的优化方法,可以根据系统字典表中获得的信息估计不同查询计划的成本,然后选择更好的计划。虽然数据库产品在查询优化方面做得越来越好,但用户提交SQL句子是系统优化的基础。很难想象一个糟糕的查询计划在系统优化后会变得高效,所以用户写的句子的质量非常重要。以下是改进用户查询计划的常用解决方案。
1.合理使用索引
索引是数据库中重要的数据结构,其根本目的是提高查询效率。现在大多数数据库产品都使用IBM最先提出的ISAM索引结构。索引的使用应恰到好处,其使用原则如下:
●在经常连接但未指定为外键的列上建立索引,而不经常连接的字段由优化器自动生成索引。
●在频繁排序或分组的列上建立索引。
●在条件表达式中经常使用的不同值列上建立检索,不要在不同值列上建立索引。例如,在员工表中“性别”列上只有“男”与“女”两个不同的值,因此没有必要建立索引。如果索引的建立不会提高查询效率,而是会严重降低更新速度。如果有多个列要排序,可以在这些列中建立复合索引(compoundindex)。
2.避免或简化排序
应简化或避免重复排序。当索引能够自动以适当的顺序输出时,优化器避免了排序步骤。
3.消除大型表达数据的顺序访问
在嵌套查询中,表的顺序访问可能会对查询效率产生致命的影响。例如,使用顺序访问策略,嵌套三层查询,如果每层查询1000行,则查询将查询10亿行数据。避免这种情况的主要方法是索引连接列。您也可以使用并集来避免顺序访问。
4.避免相关子查询
一列标签同时在主查询和where如果在子句中出现查询,则很可能在主查询中列值发生变化时,子查询必须重新查询。查询嵌套层次越多,效率越低,因此应尽量避免子查询。如果子查询是不可避免的,请在子查询中过滤掉尽可能多的行。
5.避免困难的正式表达式
LIKE关键词支持通配符匹配,技术上称为正式表达式。但这种匹配特别耗时。SELECT*FROMcustomerWHEREzipcodeLIKE“98___”
即使在zipcode索引建立在字段上,在这种情况下也采用顺序扫描的方式。如果将句子改为句子。SELECT*FROMcustomerWHEREzipcode>“98000”,在执行查询时会使用索引进行查询,显然会大大提高速度。
6.使用临时表加速查询
对表的子集进行排序,创建临时表,有时可以加速查询。它有助于避免多次排序操作,并简化优化器在其他方面的工作。
7.尽量不要使用or
使用or会造成全表扫描,会大大降低查询效率。
8.按字段提取“需要多少,提多少”的原则
避免“select*”,尽量使用“select字段1、字段2、字段3.”。实践证明,每少提取一个字段,数据的提取速度就会相应提高。改进的速度取决于你放弃的字段的大小
五,结语
数据库查询优化是一项综合性工作,受各种因素的限制,有些要求往往相互矛盾。因此,设计师必须根据实际情况综合应用上述技术,在基本合理总体设计的基础上,对数据库查询进行优化调整,努力最大限度地提高操作效率,减少异常,满足用户的各种要求,实现数据库查询优化设计。