- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 关系代数操作实现算法有效地处理用高级查询语言编写
第11章 关系代数操作的实现算法
有效地处理用高级查询语言编写的用户查询是数据库管理系
统的主要任务。对关系数据库系统而言,需要从两个方面讨
论查询处理:第一方面是各种关系代数操作的算法及其复杂
性分析;第二方面是产生逻辑优化的关系代数表达式或其它
形式的查询计划。本章讨论第一个方面的工作;下一章讨论
第二个方面的工作。
第一节 查询的处理过程
第二节 选择操作的实现算法
第三节 笛卡儿乘积的实现算法
第五节 投影操作的实现算法
第六节 集合的并交差实现算法.;第一节 查询的处理过程
查询是由高级查询语言(如SQL)表示的对数据库的
一系列操作。下边是查询处理的基本流程:;以下假设:
每个关系储存在一个文件中。
每个文件仅储存一个关系。
下边的参数是本章经常使用的:
TR 关系R的元组数
BR 磁盘块数
IR 每个元组的字节数
M 主存缓冲区的块数
b 每个磁盘块字节数;第二节 选择操作的实现算法
选择操作是在关系R中抽取满足条件C的元组,
其SQL表示形式为:; ?具有简单条件(条件中仅包含关系的一个属性)的选择算法
1.线性搜索:按原始顺序扫描关系,取出满足条件的元组。
2.二分搜索:要求关系已排序,并且选择条件是排序域上的
等值比较。N元组的关系,其搜索时间复杂性是O(log2N)。
3.主索引或HASH搜索:
要求选择条件是主索引属性或HASH属性上的等值比较。
4.用主索引查找多个元组:
若条件是主属性上的非等值比较,
则用等值比较可找出所有满足非等值比较条件的元组。
5.使用聚集索引按等值比较条件寻找多个元组。
6.使用B+树索引搜索。
?具有合取条件(一组简单条件用and连接而成)的选择算法
7.合取选择算法:先按一个简单条件用前述方法选择,
然后检查是否满足其它条件。
8.复合索引算法:若合取条件都是等值比较,
可考虑使用有关属性上的复合索引。
9.指针交集算法:若合取条件是等值比较,可用各索引域的
辅助索引得到元组指针集合,然后取这些集合的交集。; 第三节 笛卡儿乘积的实现算法
设:关系R和S的元组字节数分别是IR和IS,
元组数目分别是TR和TS,
则笛卡儿乘积R?S的元组的字节数是IR+IS,
元组数目是TRTS,空间字节数是TRTS(IR+IS),
占用磁盘块数是BR?S=TRTS(IR+IS)/b,
其中b是磁盘块的容量。
因此,笛卡儿乘积是一个非常耗时的操作。
以下介绍笛卡儿乘积的四种实现算法。
在选择算法时,
要分析各种算法在访问磁盘时的复杂性和对内存缓冲区的要求。;1 笛卡儿乘积的简单算法
这种算法仅要求主存提供能容纳两个磁盘块数据的缓冲区。
关系R和S各读一块到主存缓冲区,参加笛卡儿乘积运算。
通过嵌套循环完成R?S。算法定义为:;2 笛卡儿乘积的主存算法
这种算法假设内存缓冲区有足够的容量,能一次性地把关系
R和S都读入主存,完成笛卡儿乘积运算。整个过程,两个关
系各读了一遍。这种算法的磁盘存取量为BR+BS+BR?S,其中
BR?S=TRTS(IR+IS)/b是写盘块数。算法的形式定义为:;3 笛卡儿乘积的半主存算法
这种算法假定内存缓冲区比较大。把关系S一次性读入主存,而
R则每次仅读一块到主存参加笛卡儿乘积运算。跟主存算法相同,
整个过程,两个关系各读了一遍。磁盘的存取量为BR+BS+BR?S,
其中BR?S=TRTS(IR+IS)/b是写盘块数。算法的形式定义为:;4 笛卡儿乘积的大关系算法
设主存缓冲区的容量是M(即能容纳M个磁盘块的数据)。
如果 2 M min(BR,BS) ,那么,
一方面,由于缓冲区容量的限制,我们无法采用主存算法
和半主存算法降低磁盘访问复杂性;
另方面,可以发挥 M2的资源优势,采用比简单算法效率
更高的算法。
大关系算法分配给R和S的主存空间分别是1和M-1.算法如下:;由于两个关系的连接操作实际上是笛卡儿乘积后再按?条件选择
元组,故连接操作的实现算法可在笛卡儿乘积算法基础上略加修
改而成。由于选择操作和两个元组的
您可能关注的文档
最近下载
- 2025最新七年级上学期课外文言文阅读专练十篇(及答案).docx VIP
- 合成生物学-全套PPT课件.pptx
- 精品解析:天津市河东区天津市第八中学2024-2025学年九年级上学期12月月考物理试题(原卷版).docx VIP
- 高标准农田建设项目投标技术服务承诺书.docx
- 精品解析:天津市河东区天津市第八中学2024-2025学年九年级上学期12月月考物理试题(解析版).docx VIP
- 回弹法检测混凝土强度专用测强曲线试验推定.pdf VIP
- 电机与拖动4.doc VIP
- 高标准农田建设项目 投标方案(技术方案).doc
- DB11_T 1219.3-2022 文物艺术品数据元规范 第3部分:陶瓷.pdf VIP
- JJF(津) 155-2025 注册计量师计量专业项目考核规范.pdf VIP
原创力文档


文档评论(0)