从1.1.1节的介绍可以看到,在数据库管理系统出现之前,人们对数据的操作是直接针对数据文件编写应用程序实现的,这种模式会产生很多问题。对于1.1.1小节中列举的学生基本信息管理和学生选课管理两个子系统,如果使用数据库技术来管理,其实现方式如图1-4所示。保证数据的安全是通过数据库管理系统的安全控制机制实现的,保证数据的可靠是通过数据库管理系统的备份和恢复机制实现的。......
2023-11-24
1.把查询转换成某种内部表示
通常用的内部表示是语法树。例如,学生选课实例,语法树表示为如图2-3所示。为了使用关系代数表达式的优化法,不妨假设内部表示是关系代数语法树,如图2-4所示。
图2—3 语法树
图2—4 关系代数语法树
图2—5 优化后的语法树
2.把语法树转换成标准(优化)形式
利用优化算法,把原始的语法树转换成优化的形式。各个DBMS优化算法不尽相同,这里利用前面讨论的关系代数表达式的优化算法进行优化。
例如,利用规则(4)和(6),把选择移到叶端,图2-4语法树就转换成图2-5。(www.chuimin.cn)
3.选择低层的存取路径
根据第(2)步得到的优化了的语法树计算关系表达式值的时候,要充分考虑索引、数据的存储分布等存取路径,利用它们进一步改善查询效率。这就要求优化器去查找数据字典,获得当前数据库状态的信息,例如选择字段上是否有索引,连接的两个表是否有序,连接字段上是否有索引等。然后,根据一定的优化规则选择存取路径。在本例中,若在选课表的课程号字段上建有索引,则应该利用该索引,而不必排序扫描选课表。
4.生成查询计划,选择代价最小的查询计划
查询计划是由一组内部过程组成的,这组内部过程可实现按某条存取路径计算关系表达式的值。常有多个查询计划可供选择。例如在做连接运算时,若有两个表R1和R2,均无序,连接属性上也没有索引,则可以有下面的几种查询计划。
①对两个表做排序预处理。
②对R1在连接属性上建索引。
③对R2在连接属性上建索引。
④对R1、R2在连接属性上建索引。
对不同的查询计划计算代价,选择其中代价最小的一个。在计算代价时,主要考虑磁盘读写的Ⅰ/O数,而且内存、CPU的处理时间在粗略计算时可不考虑。
有关数据库技术与应用教程的文章
从1.1.1节的介绍可以看到,在数据库管理系统出现之前,人们对数据的操作是直接针对数据文件编写应用程序实现的,这种模式会产生很多问题。对于1.1.1小节中列举的学生基本信息管理和学生选课管理两个子系统,如果使用数据库技术来管理,其实现方式如图1-4所示。保证数据的安全是通过数据库管理系统的安全控制机制实现的,保证数据的可靠是通过数据库管理系统的备份和恢复机制实现的。......
2023-11-24
如果要使用缺省参数创建一个学籍管理数据库StuData,可以使用如下命令:Create Database StuData如果希望为数据库或事务日志指定一个或者多个特定文件,增加一个On Primary子句,列出一个或者多个文件,并可为分配这个文件的空间指定一个可选值,其命令形式如下:Create Database StuDataOn Primary,;如果为了提高性能和可恢复性,则可以使用Log On子句来指定数据库的SQL Server事务日志将存储在一个与数据库对象不同的设备上,示例如下:Create Database StuDataOn Primary,Log On;GO......
2023-11-24
关键字Modify File用以表示按后面的文件说明,在指定的数据库中修改相应数据库文件。下面的语句可在学籍管理数据库增加一个新数据库文件,同时要修改原数据库文件StuFile l的最大文件尺寸为2000 MB。Alter Database StuDataAdd FileModify File又如,如果要删除学籍管理数据库文件StuFile2,则可使用如下命令:Alter Database StuDataRemove File StuFile2......
2023-11-24
SQL的数据查询语句中包括SELECT,FROM,WHERE,GROUP BY和ORDER BY子句。SELECT语句具有数据查询、统计、分组和排序的功能,其语句表达能力非常强大。查询操作需要的数据源指基本表组,表间用“,”分割。当SELECT子句后的目标列中有统计函数,如果查询语句中有分组子句,则统计为分组统计,否则为对整个结果集统计。交查询操作,操作结果为取<查询1>和<查询2>共有的元组。......
2023-11-24
由于信息结构复杂,应用环境多样,在相当长的一段时期内数据库设计主要采用手工试凑法。人们经过探索提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,提出了各种设计准则和规程,都属于规范设计法。工具在很大程度上依靠开发人员的经验来保证数据库模型能生成可行的设计方案和高性能的数据库。大多数的数据库设计方法都需要经历这三个步骤。根据所选择的设计方法按部就班地进行并最终获得一个实用的应用系统。......
2023-11-24
图7—19“文件”对话框在“打开”对话框中,输入“文件名”为“学生”,单击“打开”按钮,返回“选择目标”窗口,单击“下一步”按钮。图7—22确定“查看数据类型映射”在“SQL Server导入和导出向导”窗口中选择“立即运行”选项,单击“下一步”按钮,如图7-23所示。图7—25“执行成功”界面单击“关闭”按钮,结束数据导出操作。......
2023-11-24
下面介绍的优化策略能提高查询的效率,但它们不一定是最优的策略,实际上“优化”一词并不是很确切,用“改进”或“改善”或许更恰当些。即使这样,使用预处理方法执行连接的时间一般仍大大减少。当查询视图时,定义视图的表达式就是公共子表达式的情况。......
2023-11-24
根据事务的设置、用途的不同,SQL Server 2012将事务分为多种类型。用户定义事务在实际应用中,大多数的事务处理采用了用户定义的事务来处理。ROLLBACK语句是取消语句,该语句将事务的操作全部取消,即表示事务操作失效。显式事务显式事务是指每个事务均以BEGⅠN TRANSACTⅠON语句显式开始,以COMMⅠT或ROLLBACK语句显式结束。......
2023-11-24
相关推荐