数据库系统第九周小结

文章详细介绍了数据库查询的实现算法,包括两趟扫描法在排序、去重、分组、并、交、差操作中的应用。此外,还讨论了查询优化的层次,如语义优化、语法优化和执行优化,以及逻辑层优化的具体策略和关系操作次序的等价性。最后,文章提到了代价估算在估计表达式元组数目和属性值分布中的重要性。
摘要由CSDN通过智能技术生成

数据库系统

2023-4-17~2023-4-23

第九周小结

第十七讲–数据库查询实现算法(两趟扫描)

1.两趟扫描基本思路
第一趟,划分子集,子集具有某种性质(如有序、散列值相同);
第二趟,处理全局性内容,形成结果关系;
2.外排序问题
内存共B_memory块,每块可装载R_block条记录;
待排序数据R_problem条记录,共占用B_problem块;
应用:子集合数N<B_memory(归并时一块用于输出);子集合块数≤B_memory;大数据集块数<B_memory²(两趟扫描的要求);
在这里插入图片描述

不考虑结果写回3B®,考虑结果写回则为4B®–子集合排序读一遍写一遍,归并读一遍写一遍;
在这里插入图片描述

例如,内存共8块,设计排序方案,排序70块数据集,读写次数最少;
在这里插入图片描述

3.去重复操作
第一趟,划分子表,进行子表排序;
第二趟,归并阶段,在排序的基础上,直接将重复的记录剔除(不输出);
算法复杂性,同TPMMS(不考虑输出–3B®;考虑输出4B®);
4.分组操作
第一趟,划分子表,进行子表排序;
第二趟,归并阶段,将不重复的记录,作为新分组输出,重复记录进行分组聚集计算;
算法复杂性,同TPMMS(不考虑输出–3B®;考虑输出4B®);
5.并操作
包上的并操作无需两趟,直接合并即可;
集合上的并操作:
第一趟,划分R和S的子表,进行子表排序;
第二趟,归并阶段,R和S两路输入之间去重复性合并输出;
在这里插入图片描述

6.交操作
包、集合上的操作都需要两趟;
第一趟,划分R和S子表,子表排序;
第二趟,归并阶段,R和S的两路输入按要求输出(集合–都出现才输出;包–输出元组的次数为R和S中出现的最小次数);
7.差操作
包、集合上的操作都需要两趟;
第一趟,划分R和S子表,子表排序;
第二趟,归并阶段,R和S的两路输入按要求输出(集合–出现在R中不出现在S中的才输出;包–输出元组的次数为R的次数-S的次数);
8.连接操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9.基于散列的两趟扫描算法
第一趟,散列子表,用散列函数hp将原始关系划分为M-1个子表并存储;
第二趟,处理每个子表,用另一个散列函数hr将子表读入内存,进行不同操作的处理;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第十八讲–数据库查询优化技术

1.查询优化的三个层面
语义优化,利用模型的语义及完整性规则,优化查询;
语法优化(逻辑层优化),利用语法结构,优化操作执行顺序;
执行优化(物理层优化),村区路径和执行算法的选择与执行次序优化;
在这里插入图片描述
在这里插入图片描述

2.逻辑层优化策略
(1)尽可能早做选择和投影(中间结果变小);
(2)选择和投影串接起来(一元运算序列可一起执行,只需要扫描一遍);
(3)投影与其前、后的二元运算结合起来(减小元组的长度);
(4)把某些选择与其前的笛卡尔积组成连接操作;
(5)执行连接运算前对关系做预处理(文件排序、建立临时索引等);
(6)找出公共子表达式;
3.关系操作次序交换的等价性
设E1和E2是两个关系操作表达式,若E1和E2表示相同的映射(E1和E2的同名变量带入相同关系后产生相同的结果),则E1和E2是等价的,记为E1≡E2;
在这里插入图片描述

4.若干定理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.逻辑层优化算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.练习题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.数据库的统计信息
在这里插入图片描述

8.代价估算
给定一个表达式,估计E的元组数目T(E)和 属性A上不同值V(E,A);
(1)投影估算
在这里插入图片描述

(2)简单选择估算
在这里插入图片描述
在这里插入图片描述

(3)复杂选择估算
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)连接估计
在这里插入图片描述

(5)估计小结
在这里插入图片描述

9.练习题2
在这里插入图片描述

10.练习题3
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海质粒ABCC9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值