第4章 关系系统及其查询优化 关系系统 关系系统的查询优化 关系系统的分类 关系系统及其查询优化 查询优化的一般准则 关系代数等价变换规则

Slides:



Advertisements
Similar presentations
第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
Advertisements

数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
计算机软件技术基础计算机软件技术基础 数据库系统( 3 ). 第 2 页 4.3 关系数据库语言 SQL 关系数据库 SQL ( Structured Query Language )语言是关系 数据库的标准语言,对关系模型的发展和商用 DBMS 的研制起 着重要的作用。 SQL 发展历史  1986.
第2章 关系数据库基础 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社
总复习.
2012年9月等级考试辅导 数据库设计基础.
Database Principles & Applications
第六章 查询处理 6.1 查询处理概述 6.2 代价估算 6.3 基本运算的实现 6.4 表达式计算 6.5 关系表达式转换 6.6 选择执行计划.
第5章 查询处理和优化 5.1 引言 5.2 代数优化 5.3 依赖于存取路径的规则优化 5.4 代价估算优化*
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
初级会计电算化 (用友T3) 制作人:张爱红.
河北化工医药职业技术学院 数据库原理及应用教案.
An Introduction to Database System An Introduction To Database System
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
第8章 机床操作 主讲:臧红彬 博士.
高级数据库技术 金培权
数据库原理与应用.
第1章 数据库系统基础 第1章 数据库系统基础 教学提示:数据库系统基础介绍数据库的基础知识和基本理论,使读者对数据库管理系统有个初步的认识,这将对SQL Server管理与开发后续章节的学习打下坚实的理论基础。 教学要求:通过本章学习,同学们应该掌握数据库基本概念、三要素和分类;数据库系统的体系结构和功能;关系数据库的基本概念、运算和完整性约束;理解认识数据库系统的应用结构和本教材的两个应用案例。
数据库原理与应用 01 – 绪论 郑捷.
Database Principles & Applications
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
数据库系统概论考试说明.
第四章 关系系统及其查询优化 这一章包括两个内容,一是关系系统(关系数据库系统的简称),二是关系系统的查询优化。第一部分讨论关系系统的定义和分类;第二部分讨论关系系统中查询优化的概念、查询优化的基本原理和技术。
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
Hadoop I/O By ShiChaojie.
An Introduction to Database System An Introduction to Database System
Chinese Virtual Observatory
存储系统.
第2章 关系数据库 2.1 关系模型 2.2 关系代数 2.3 查询优化.
SQL Injection.
国家“十一五”规划教材 数据库原理与应用教程(第3版).
SQL SERVER 一些经典语句 1.
SPARQL若干问题的解释 刘颖颖
An Introduction to Database System
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
数据挖掘工具性能比较.
动态规划(Dynamic Programming)
CPU结构和功能.
Thanks for the Slides from Renmin U
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
1.1 数据库基本概念 1.2 数据模型 1.3 关系数据库 1.4 Access2010简介
数据库系统概论 An Introduction to Database System
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
VisComposer 2019/4/17.
作业2讲评.
VB与Access数据库的连接.
Thanks for the Slides from Renmin U
第九节 赋值运算符和赋值表达式.
第八讲 SQL语言之数据查询(2) 第三讲 SQL Server 2000 数据库技术.
数据集的抽取式摘要 程龚, 徐丹云.
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
Visual Basic程序设计 第13章 访问数据库
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
2.2矩阵的代数运算.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
基于列存储的RDF数据管理 朱敏
Chinese Virtual Observatory
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
VB与Access数据库的连接.
第2章 关系模型和 关系运算理论.
WEB程序设计技术 数据库操作.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
第十七讲 密码执行(1).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
看圆如何七十二变 微建筑早课.
Chapter 14 Databases.
关系数据库 第2章 关系数据结构 关系定义 关系性质 关系模式 关系的完整性 实体完整性 参照完整性 用户定义完整性 关系代数 关系演算
厦门大学计算机科学系本科生课程 《数据库系统原理》 第9章 数据库查询优化 (2017版) 林子雨 厦门大学计算机科学系
Presentation transcript:

第4章 关系系统及其查询优化 关系系统 关系系统的查询优化 关系系统的分类 关系系统及其查询优化 查询优化的一般准则 关系代数等价变换规则 关系系统的定义 关系系统的分类 关系系统的查询优化 关系系统及其查询优化 查询优化的一般准则 关系代数等价变换规则 关系代数表达式的优化算法 优化的一般步骤 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

4.1 关系系统 4.1.1 关系系统的定义 支持关系模型的关系数据库管理系统简称关系系统。 下述关系的DBMS不能称为关系系统 不支持关系数据结构的系统 支持关系数据结构,但无δ、π、 运算功能的系统 支持关系数据结构,有δ、π、 运算,但要求定义物理 存取路径的系统 可称为关系系统的DBMS,当且仅当 1)支持关系数据结构(关系数据库) 2)支持δ、π、 运算,且不要求用户定义任何物理存取路径 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

4.1.2 关系系统的分类 1.表式系统: 2.(最小)关系系统: 3.关系完备系统: 4.全关系系统: 仅支持关系数据结构,不支持集合级的操作。(不能算关系系统) 2.(最小)关系系统: 支持关系数据结构,支持δ、π、 运算,且不定义物理路径。 3.关系完备系统: 支持关系数据结构和所有关系代数操作(或功能上与关系代数等价)。DBⅡ,ORACLE,SYBASE,…属于这一类。 4.全关系系统: 支持关系模型的所有特征。在关系完备系统的基础上,进一步支持实体完整性和参照完整性等。DBⅡ,ORACLE,SYBASE, …已接近这个目标。目前尚无全关系系统。 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

× √ 关系系统分类 表式系统 全关系系统 数据结构 数据操作 完整性约束 表 (最小)关系系统 选择、投影、连接 关系完备的系统 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

4.2 关系数据库系统的查询优化 4.2.1 关系系统及其查询优化 查询处理的过程 数据 有关数据的统计信息 语法分析与翻译 查询语句 关系代数表达式 优化器 执行引擎 查询输出 执行计划 数据 有关数据的统计信息 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

优化器可以从数据字典中获取许多统计信息,从而选择有效的执行计划; 系统优化 优化器可以从数据字典中获取许多统计信息,从而选择有效的执行计划; 如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适应的执行计划; 优化器可以考虑数百种不同的执行计划; 优化器中包括了很多复杂的优化技术。 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

实际系统的查询优化步骤 1. 将查询转换成某种内部表示,通常是语法树 2. 根据一定的等价变换规则把语法树转换成标准(优化)形式 3. 选择低层的操作算法 对于语法树中的每一个操作 根据存取路径、数据的尺寸、数据的存储分布、存储数据的聚簇等信息来计算各种执行算法的执行代价 选择代价小的执行算法 4. 生成查询计划(查询执行方案) 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

代价模型 用启发式规则来缩减查询计划的搜索空间 利用统计信息估算执行代价 基于代价(目前商品化RDBMS大都采用) 常用查询优化技术 用启发式规则来缩减查询计划的搜索空间 利用统计信息估算执行代价 基于代价(目前商品化RDBMS大都采用) 代价模型 集中式数据库 单用户系统:总代价 = I/O代价 + CPU代价 多用户系统:总代价 = I/O代价 + CPU代价 + 内存代价 分布式数据库 总代价 = I/O代价 + CPU代价 [+ 内存代价] + 通信代价 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

4.2.2 一个实例 假设: 例. 求选2号课程的学生姓名 数据量:Student:1000条;SC:10000条;选修2号课程:50条 SELECT Student.Sname FROM Student,SC WHERE Student.Sno = SC.Sno AND Cno = ‘2’; 假设: 数据量:Student:1000条;SC:10000条;选修2号课程:50条 一个内存块装元组:10个Student或100个SC,内存中可以 存放:5块Student元组和1块SC元组 读写速度:20块/秒 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

1. Q1= ПSname(бStudent.Sno=SC.Sno ∧SC.Cno=‘c2‘ (Student×SC)) = 1000/10+(1000/(10×5)) ×(10000/100) = 2100 读数据时间=2100/20=105秒 中间结果大小 = 1000*10000 = 107 (1千万条元组) 写中间结果时间 = 10000000/10/20 = 50000秒  ② 选择操作(б) 读数据时间 = 50000秒  ③ 投影(П) 总时间 =105+50000+50000秒 = 100105秒 = 27.8小时 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

2. Q2= ПSname(бSC.Cno=' 2' (Student SC)) ①自然连接( ) 读取总块数= 2100块 ①自然连接( ) 读取总块数= 2100块 读数据时间=2100/20=105秒 中间结果大小=10000(即SC表中记录条数,减少1000倍) 写中间结果时间=10000/10/20=50秒  ②选择操作(б) 读数据时间=50秒  ③投影(П)  总时间=105+50+50秒=205秒=3.4分  2019年11月16日12时20分2019年11月16日12时20分 数据库原理

3. Q2= ПSname(Student бSC.Cno=' 2' (SC)) ①选择操作(б) 读数据时间=100/20=5秒  中间结果大小=50条 (不必使用中间文件)  ②自然连接( ) 读Student表总块数= 1000/10=100块 ③ 投影(П)  总时间=5+5秒=10秒   2019年11月16日12时20分2019年11月16日12时20分 数据库原理

4.2.3 查询优化的一般准则 选择运算应尽可能先做 在执行连接操作前对关系适当进行预处理 (索引连接方法和排序合并连接方法) 选择运算应尽可能先做   在执行连接操作前对关系适当进行预处理 (索引连接方法和排序合并连接方法) 投影运算和选择运算同时做 将投影运算与其前后的双目运算结合(连接、并、差、交等) 选择运算和笛卡尔积运算结合(等值连接比笛卡儿积省时间) 提取公共子表达式(例如,定义视图的表达式) 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

4.2.4 关系代数等价变换规则 l. 连接、笛卡尔积交换律 2. 连接、笛卡尔积的结合律 3. 投影的串接定律 4. 选择的串接定律 5. 选择与投影的交换律 6. 选择与笛卡尔积的交换律 7. 选择与并的交换 8. 选择与差运算的交换 9. 投影与笛卡尔积的交换 l0. 投影与并的交换 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

4.2.5 关系代数表达式的优化算法 分解选择运算 通过交换选择运算,将其尽可能移到叶端 通过交换投影运算,将其尽可能移到叶端 合并串接的选择和投影,以便能同时执行或在一次扫描中完成 对内结点分组 生成程序 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

4.2.6 优化的一般步骤 1.把查询转换成某种内部表示 2.代数优化:把语法树转换成标准(优化)形式 3.物理优化:选择低层的存取路径 4.生成查询计划,选择代价最小的 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

Sname Student.Sno=Sc.Sno Sc.Sno=‘2’ Sname × Sc.Sno=‘2’ Join(Student.Sno=SC.Sno) Select(SC.Cno=‘2’) Project(Sname) 结 果 × Student.Sno=Sc.Sno Sc.Sno=‘2’ Sname SC Student Student.Sno=Sc.Sno Sc.Sno=‘2’ × Student SC Sname 2019年11月16日12时20分2019年11月16日12时20分 数据库原理

小 结 关系系统 关系系统的查询优化 关系系统的定义 关系系统的分类 关系系统及其查询优化 查询优化的一般准则 关系代数等价变换规则 小 结 关系系统 关系系统的定义 关系系统的分类 关系系统的查询优化 关系系统及其查询优化 查询优化的一般准则 关系代数等价变换规则 关系代数表达式的优化算法 优化的一般步骤 2019年11月16日12时20分2019年11月16日12时20分 数据库原理