- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.1 DBMS 简介 1.DBMS 是介于用户和OS之间的系统软件,它实现对共享数据的有效组织、管理和各种操作。 关系: DBMS建立在OS之上,需要OS的支持。 DBMS是用户操纵、管理DB的工具。 DBMS 简介 DBMS的功能: (1)数据定义 DDL(数据定义语言)--Data Definition Language (2) 数据操纵 DML(数据操纵语言)--Data Manipulation Language (3) 数据组织、存储和管理 (4) 数据库运行管理 (5) 数据库的建立和维护 (6) 数据接口 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.2 关系数据库的查询优化 1. 查询优化及其目标 查询优化:从查询的多个执行策略中进行合理选择的过程。 目标:选择有效的策略,求得关系式的值,以提高查询效率。 基本途径可以分为两种:用户处理和机器自动处理。 查询优化器:由DBMS自动生成并从中选取较优查询计划的程序。 查询的开销主要包括: 在单机数据库中:总代价=I/O代价+CPU代价 在多用户环境下:总代价=I/O代价+CPU代价+内存代价 在网络环境下:总代价=I/O代价+CPU代价+内存代价+网络代价 查询的执行开销与多个因素有关: 软件环境、硬件环境、数据量、方法。 为什么要查询优化? 例:查询“王林”所选修课程的成绩在85分以上的课程号。 假定student表有l000个学生记录,每个学生平均选10门课程,sc表共有有l000×10=10000个选课记录。 F1代表student.sno=sc.sno;F2代表student.sname=‘王林’ F3代表sc.grade=85 等价的关系代数表达式: (1)∏cno(σF1∧F2 ∧F3(Student×SC)) (2)∏cno(σF2∧F3(Student?SC)) (3)∏cno(σF2(Student) ? σF3(SC)) 对执行基本运算(关系扫描与连接)的次数分析 (1)∏cno(σF1∧F2 ∧F3(Student×SC)) (2)∏cno(σF2∧F3(Student?SC)) (3)∏cno(σF2(Student) ? σF3(SC)) (1)先在两表上做×,产生1000*10000=107个连接记录,再在其上进行先σ后∏操作。其基本运算次数为:107+107+10。 (2)先在两表上做 ? ,产生1000*10=104个连接记录,再在其上进行先σ后∏操作。其基本运算次数为:107+104+10 。 (3)先分别在两表上做σ,再做 ? ,产生1*10=10个连接记录,再在其上进行∏操作。其基本运算次数为:103+104+10。 2. 查询优化的一般准则 1.选择运算应尽可能先做。 2.在执行连接前对关系适当地预处理(其方法有:索引连接方法、排序合并连接方法)。 3.把投影运算和选择运算同时进行。 例: ∏sno(σgrade90(SC)) 4.让投影运算与其前后的双目运算同时进行。 例: ∏sno(S1-S2) 5.合并笛卡尔积与其后的选择为连接运算。 例: σR.AS.C(R×S))=R ? S AC 6.找出公共子表达式。将公共子表达式预先计算出结果保存起来,以免重复计算。 3. 关系代数表达式的等价规则 关系代数表达式的优化是查询优化的基本课题。而研究关系代数表达式的优
文档评论(0)