- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库6章
6.1 DBMS 简介 1.DBMS的功能 (1)数据定义 DDL(数据定义语言)--Data Definition Language (2) 数据操纵 DML(数据操纵语言)--Data Manipulation Language (3) 数据组织、存储和管理 (4) 数据库运行管理 (5) 数据库的建立和维护 (6) 数据通信接口 6.1 DBMS 简介 2.DBMS的组成 (1) 数据定义语言及其翻译处理程序 (2) 数据操纵语言及其编译(或解释)程序 (3) 数据库运行控制程序 (4) 实用程序 用户访问数据库的工作过程 ① 应用程序A向DBMS发出读一个记录的命令。程序给出记录类型名及欲读记录的码值。 ② DBMS分析命令,并调用A对应的子模式,检查A的存取权限,决定是否执行A的命令。 ③ 决定执行A的命令后,DBMS调用模式,根据子模式与模式变换的定义,确定所涉及的模式记录类型;通过模式与内模式的变换找到这些记录类型内模式名。 ④ DBMS调用内模式,确定所读入的物理记录。 ⑤ DBMS向OS发读该物理记录的命令。 用户访问数据库的工作过程 ⑥ OS执行读命令并把数据从外存读到内存的系统缓冲区。 ⑦ DBMS按模式、子模式定义,导出用户程序需要的记录形式,并送到应用程序A的工作区。 ⑧ DBMS向应用程序A送命令执行情况的状态信息。 ⑨ 记载日志 DBMS把对数据库更新操作的全部情况都记载下来,以便数据库的恢复。 ⑩ 应用程序检查状态信息,若成功,对工作区中的数据正常处理;若失败,决定下一步如何执行。 6.3 关系数据库的查询优化 关系模型的主要缺点是查询效率低,影响其效率的主要运算是笛卡尔积。如何有效地执行笛卡尔积操作,使得花费的时间和空间较少,就有一个策略的问题。 例:查询“王林”所选修课程的成绩在85分以上的课程号。 假定student表有l000个学生记录,sc表有l000×10=10000个选课记录。 等价的关系代数表达式: (1)∏cno(σstudent.sno=sc.sno∧student.sname=‘王林’ ∧sc.grade=85(Student×SC)) (2)∏cno(σstudent.sname=‘王林’∧sc.grade=85(Student?SC)) (3)∏cno(σstudent.sname=‘王林’(Student)? σsc.grade=85(SC)) 第一种情况 1.计算广义笛卡尔积 假设内存给这个操作6块的内存空间。设一块能装l0个Student元组或l00个SC元组,在内存中存放5块Student元组和l块SC元组。假设每秒读写20块。 (1)读块数为 (1000/10+(20*10000/100)=2100块 花费l05秒。 (2)写中间文件花费的时间 103*104=107条记录≈106块 需5*104 秒 2.作选择操作 读取中间文件花费的时间需5*104 秒 3.作投影(忽略) 第一种情况下执行查询的总时间≈105+2*5*104 秒 第二种情况 1.计算自然连接 为了执行自然连接,读取Student和SC表的策略不变,总的读取块数仍为2100块花费l05秒。但自然连接的结果比第一种情况大大减少,为104个。因此写出这些元组时间为104/10/20=50秒。仅为第一种情况的千分之一。 2.读取中间文件块,执行选择运算,花费时间也为50秒。 3.把第2步结果投影输出。(忽略) 第二种情况总的执行时间≈105+50+50≈205秒。 第三种情况 1.先对SC表作选择运算,只需读一遍SC表,存取l00块花费时间为5秒。 2.读取STUDENT表,把读入的STUDENT元组和内存中的SC元组作连接。也只需读一遍STUDENT表共l00块花费时间为5秒。 3.把连接结果投影输出。(忽略) 第三种情况总的执行时间≈5+5≈10秒。 6.3.2 查询优化的一般准则 1.选择运算应尽可能先做。 2.合并笛卡尔积与其后的选择为连接运算。 3.把投影运算和选择运算同时进行。 4.让投影运算与其前后的其他运算同时进行。 5.在执行连接前对关系适当地预处理(索引连接、排序合并连接)。 6.找出公共子表达式。将公共子表达式预先计算出结果保存起来,以免重复计算。 6.3.3 关系代数表达式的等价规则 关系代数表达式的优化是查询优化的基本课题。而研究关系代数表达式的优化最好从研究关系表达式的等价变换规则开始。 两个关系表达式El和E2是等价的,可记为E1≡E2。
文档评论(0)