最新要闻
- 全球最强!传音260W快充手机将亮相:10分钟内充满
- 性能对标奔驰大G 比亚迪“F品牌”首车曝光:够硬够强
- 世界快消息!传欧盟准备批准微软收购动视-暴雪
- 当前报道:女司机“神操作”:100来公里高速连撞4次 竟甩锅路太窄
- 世界视讯!又一大作优化翻车!《卧龙:苍天陨落》RTX 4090依旧闪退
- 12GB+256GB到手仅2699元!Redmi K60正式开启降价
- 温州特斯拉事故驾驶员家属发声:记不清车辆失控场景 妻子去世自责
- 环球时讯:中国航天员遇到外星人怎么办?载人航天总师:积极交流 星际合作
- 焦点要闻:漫威等好莱坞大片中国市场遇冷:大家不爱看了 不符合国人审美、文化观
- 550元 富士发布Instax Mini 12拍立得相机 支持APP存照片
- 环球即时:卷成白菜价!致态TiPlus 7100固态硬盘新史低:1TB仅549元
- 环球头条:马斯克10万亿美元“改造地球”背景下!特斯拉电机要完全不用稀土:专家回应有可能
- 今头条!天问二号任务已获得国家批准立项:要从小行星2016 HO3采样返回
- 委员:996制度是导致就业难、生育率低的重大原因
- 当前播报:电商价格战开打!京东百亿补贴上线:全场包邮 买贵双倍赔
- 特斯拉未来要狂暴降价:就靠这改变世界?其实都被骗了!
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
(数据库系统概论|王珊)第九章关系查询处理和关系优化-第一节:查询处理
- pdf下载:密码7281
- 专栏目录首页:【专栏必读】(考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解
- 一:查询处理步骤
- (1)查询分析
- (2)查询检查
- (3)查询优化
- (4)查询执行
- 二:实现查询操作的算法示例
- (1)选择操作的实现
- ①:全表扫描
- ②:索引(或散列)扫描
- (2)连接操作的实现
- ①:嵌套循环方法(nested loop)
- ②:排序-合并方法(sort-merge join)
- ③:索引连接(indexjoin)
- ④:哈希连接(hash join)
- (1)选择操作的实现
查询处理是关系数据库管理系统执行查询语句的过程,其任务是把用户提交给关系数据库管理系统的查询语句转换为高效的查询执行计划
一:查询处理步骤
关系数据库管理系统查询处理可以分为4个阶段:
(资料图片仅供参考)
- 查询分析
- 查询检查
- 查询优化
- 查询执行
(1)查询分析
任务:对查询语句进行扫描,分析词法、语法是否符合SQL语法规则
- 如果没有语法错误转入下一步
- 如果有语法错误则在报告中显示错误
(2)查询检查
任务:
- 对合法的查询语句进行语义检查,即根据数据字典中有关的模式定义检查语句中的数据库对象,如关系名、属性名是否存在和有效
- 如果是对视图的操作,则要用视图消解方法把对视图的操作转换成对基本表的操作
- 还要对权限、完整性约束进行检查,如果违反则拒绝查询
- 检查通过后,把SQL查询语句转化为内部表示,也即等价的关系代数表达式
- 在此过程中,要把数据库对象的外部名称换为内部表示
- RDBMS一般用查询树(又称为语法分析树)来表示扩展的关系代数表达式
(3)查询优化
任务:每个查询都会有许多可供选择的执行策略和操作算法,查询优化就是选择一个高效执行的查询处理策略。按照优化的层次一般可以将查询优化分为
- 代数优化:是指关系代数表达式的优化,也即按照一定规则,通过对关系代数表达式进行等价变换,改变代数表达式中操作的次序和组合,使查询更高效
- 物理优化:是指存取路径和底层操作算法的选择。选择依据可以是基于规则的(rule based)、基于代价的(cost based)、基于语义的(semantic based)
(4)查询执行
依据优化器得到的执行策略生成查询执行计划,由 代码生成器(code generator)生成执行这个查询计划的代码,然后加以执行,回送查询结果。
二:实现查询操作的算法示例
(1)选择操作的实现
以简单的单表选择为例,如下
SELECT* FROM STUDENT WHERE<条件表达式>
<条件表达式>
可以有以下几种情况
- \(case1\):无条件
- \(case2\):Sno="201215121"
- \(case3\):Sage > 20
- \(case4\):Sdept="CS" AND Sage > 20
选择操作只涉及一个关系,典型的实现方法有
①:全表扫描
思想:假设可以使用的内存块为\(M\)块
- 按照物理次序读
Student
的\(M\)块到内存 - 检查内存的每个元组\(t\),如果\(t\)满足选择条件,则输出\(t\)
- 如果
Student
还有其他块未被处理,重复即可
优缺点:
- 优点:只需要用很少的内存(最少为1块)就可以运行,且控制简单。适用于规模较小的表
- 缺点:对于规模大的表进行顺序扫描,当选择率低时会使效率很低
②:索引(或散列)扫描
思想:如果选择条件中的属性上有索引(例如\(B\)+树索引或\(hash\)索引),可以用索引扫描。通过索引先找到满足条件的元组指针,再通过元组指针在查询的基本表中找到元组。一般来说,当选择率低于10%时建立索引才有意义
- 以\(case\) 2为例:Sno="201215121",并且Sno上有索引,则可以使用索引得到Sno为"201215121"元组的指针,然后通过元组指针在Student表中检索到该学生
- 以\(case\) 3为例:Sage>20, 并且Sage上有B+树索引,则可以使用B+树索引找到Sage=20的索引项,以此为入口点在B+树的顺序集上得到Sage>20的所有元组指针,然后通过这些元组指针到
Student
表中检索到所有年龄大于20的学生 - 以\(case\) 4为例: Sdept="CS" AND Sage>20, 如果
Sdept
和Sage
上都有索引,一种算法是,分别用上面两种方法找到Sdept="CS"的一组元组指针和Sage>20的另一组元组指针,求这两组指针的交集,再到Student表中检索,就得到计算机系年龄大于20岁的学生;另一种算法是,找到Sdept="CS"的一组元组指针,通过这些元组指针到Student表中检索,并对得到的元组检查另一些选择条件(如Sage>20) 是否满足,把满足条件的元组作为结果输出
(2)连接操作的实现
连接操作是查询处理中最常用也是最耗时的操作之一。不失一般性,这里通过例子简单介绍 等值连接(或自然连接)最常用的几种算法思想
SELECT * FROM Student,SC WHERE Student.Sno=SC.Sno;
①:嵌套循环方法(nested loop)
思想:对外层循环(Student
表)的每一个元组,检索内层循环(SC
表)中的每一个元组,并检查这两个元组在连接属性(Sno
) 上是否相等。如果满足连接条件,则串接后作为结果输出,直到外层循环表中的元组处理完为止
②:排序-合并方法(sort-merge join)
思想:
- 如果参与连接的表没有排好序,首先对
Student
表和SC
表按连接属性Sno
排序 - 取Student表中第一个
Sno
,依次扫描SC
表中具有相同Sno
的元组,把它们连接起来 - 当扫描到
Sno
不相同的第 一个SC元组时,返回Student
表扫描它的下一 个元组,再扫描SC
表中具有相同Sno
的元组,把它们连接起来
重复上述步骤直至Student
扫描完毕
③:索引连接(indexjoin)
思想:
- 在
SC
表上已经建立了属性Sno
的索引 - 对
Student
中每一个元组,由Sno
值通过SC
的索引查找相应的SC
元组 - 把这些
SC
元组和Student
元组连接起来
循环执行第二步和第三步,直至Student
中的元组处理完毕
④:哈希连接(hash join)
思想:它把连接属性作为hash码,用同一个hash函数把Student
表和SC
表中的元组散列到hash表中
- 划分阶段(创建阶段):即创建hash表。对包含较少元组的表( 如
Student
表)进行一遍处理,把它的元组按hash函数(hash码是连接属性)分散到hash表的桶中 - 试探阶段(连接阶段):对另一个表(
SC
表)进行一遍处理,把SC
表的元组也按同一个hash函数(hash 码是连接属性)进行散列,找到适当的hash桶,并把SC
元组与桶中来自Student
表并与之相匹配的元组连接起来。
(数据库系统概论|王珊)第九章关系查询处理和关系优化-第一节:查询处理
全球速递!视频上传及压缩SpringBoot篇上
世界热门:el-input 使用 回车键会刷新页面的问题
全球最强!传音260W快充手机将亮相:10分钟内充满
性能对标奔驰大G 比亚迪“F品牌”首车曝光:够硬够强
世界快消息!传欧盟准备批准微软收购动视-暴雪
当前报道:女司机“神操作”:100来公里高速连撞4次 竟甩锅路太窄
世界视讯!又一大作优化翻车!《卧龙:苍天陨落》RTX 4090依旧闪退
12GB+256GB到手仅2699元!Redmi K60正式开启降价
温州特斯拉事故驾驶员家属发声:记不清车辆失控场景 妻子去世自责
环球时讯:中国航天员遇到外星人怎么办?载人航天总师:积极交流 星际合作
焦点要闻:漫威等好莱坞大片中国市场遇冷:大家不爱看了 不符合国人审美、文化观
550元 富士发布Instax Mini 12拍立得相机 支持APP存照片
环球即时:卷成白菜价!致态TiPlus 7100固态硬盘新史低:1TB仅549元
环球头条:马斯克10万亿美元“改造地球”背景下!特斯拉电机要完全不用稀土:专家回应有可能
读Java性能权威指南(第2版)笔记07_即时编译器上
今头条!天问二号任务已获得国家批准立项:要从小行星2016 HO3采样返回
实现 Vue 折叠面板组件
委员:996制度是导致就业难、生育率低的重大原因
当前播报:电商价格战开打!京东百亿补贴上线:全场包邮 买贵双倍赔
特斯拉未来要狂暴降价:就靠这改变世界?其实都被骗了!
世界快资讯:豆瓣8.9分!韩国拼体格真人秀在欧美爆红
暗黑三国风!《卧龙:苍天陨落》正式上线:298元 GTX 1650就能玩
3.3 数据结构 时间复杂度 和空间复杂度 计算
环球简讯:004. html篇之《标签分类和嵌套》
天天动态:星巴克国内最大对手!瑞幸咖啡财报:年收入首次突破百亿
硬件狗狗3.3新版发布:跑分排行 实时PK
【环球热闻】使用ansible部署服务到k8s
专家:双休制度很难被改变 可以试试“做四休三”
【当前独家】同样是PCIe 5.0 SSD:Intel、AMD跑分竟不一样!差距达30%
世界观焦点:大熊猫为什么近期扎堆回国?美日等国养不起“国宝”了吗?完全是误解
当前速讯:女子称因准点下班试用期第3天被辞退:还被领导一顿痛骂
全球聚焦:R数据分析:做量性研究的必备“家伙什”-furniture包介绍
003. html篇之《表单》
全球即时:Codeforces 1774 G Segment Covering 题解 (观察性质,倍增)
【全球播资讯】Feign踩坑源码分析 -- 请求参数分号变逗号
【全球快播报】火箭弹电子版领取处>>
视讯!完美还原!玩家用虚幻5复刻《狂飙》高启强老家:桌上还有孙子兵法
《龙马精神》4月上映!69岁成龙再跳120米高摩天轮 本人直言小事情
天天快资讯:C++面经(持续更新)
今亮点!实验楼(规则)怪谈
热推荐:电视剧《三体》豆瓣评分上涨 于和伟:《三体》涨分像涨工资
热门看点:《卧龙:苍天陨落》今晚零点正式解锁!乱世三国冒险即将开启
前沿资讯!口感醇正!熊猫精酿好时光皮尔森啤酒好价:2.8元/听
即时:中国科技公司:让老外开眼了
完爆H.265!优酷用上H.266编解码:最便宜手机放视频也丝般顺滑
世界今头条!搭建两台web服务器基于HAProxy实现负载均衡
焦点短讯!路飞-day5——git 多分支开发、git远程仓库、ssh方式连接远程仓库、协同开发、冲突解决、线上分支合并、远程仓库回滚
简讯:(数据库系统概论|王珊)第七章数据库设计:习题
全球时讯:我国网民规模达10.67亿!短视频用户首次突破10亿:你每天刷多久?
B站发布2022年Q4及全年财报:全年营收219亿元 Q4日活用户达9280万
零排放、低噪音!国内首列氢燃料混合动力铰接轻轨车下线
环球微头条丨003 jmeter连接数据库及jmeter关联提取器
git-git、gitee使用介绍
面试官:从 MySQL 读取 100w 数据进行处理,应该怎么做?问倒一大遍!
天天快播:常用的Prestosql
python3和scrapy使用亿牛云隧道代理问题以及代码
为何近半数安卓用户想换苹果?背后原因揭开
天天快资讯:国人也买不动了!1月iPhone全球销量大跌11% 苹果会降价刺激销量吗?
当前速看:纯电飞行250公里 国产厂商创电动载人飞行器新纪录
【世界新要闻】公司招聘会计要求一定是A型血 网友:很奇葩
每日快讯!中国空间站成功首次“点火”!高速相机拍下神奇一幕
今日观点!Pod控制器
创建型:构造器模式
天天最新:Python类和对象的绑定方法及非绑定方法
答菲洗脸巾80片到手6.9元:干湿两用 不掉毛絮
全球视点!男子犯困竟在高速行车道睡觉30分钟 科普:连续开车不应超4小时
甄子丹谈好莱坞对亚裔的刻板印象:怎么都这么老套?
特斯拉减少75%碳化硅用量 马斯克一句话干崩第三代半导体 上市公司回应
知名博主曝保时捷卡宴中控鼓包:我脚上皮鞋的皮都更好
法拉第未来恢复贾跃亭的公司执行官身份
全球微资讯!Adobe Photoshop 键盘快捷键 备忘清单_开发速查表分享
环球简讯:mperf:移动/嵌入式平台算子性能调优利器
天天动态:玩转Angular系列:组件间各种通信方式详解
焦点要闻:DL 基础:PyTorch 常用代码存档
世界热推荐:MySQL学习笔记-多表查询(下)
酒店比价网站_酒店比价
【当前独家】“保时泰”破产重整后凄凉!股权六折甩卖仍无人接盘
每日速看!韩国拟取消校园暴力者读大学资格:转学脱罪也没用
环球精选!网友拍下真实版“乌鸦喝水” 原来是表演节目 两只乌鸦都会
今亮点!魅族20系列1元36月超长质保加码!电池最大容量低于80%免费换
全球新资讯:神舟十五号乘组太空出差过半:完成多项首次实验测试
美团2面:如何保障 MySQL 和 Redis 数据一致性?这样答,让面试官爱到 死去活来
宕机了,Redis 如何避免数据丢失?
世界简讯:风控系统就该这么设计,万能通用,稳的一批!(建议收藏)
焦点要闻:权限提升(1)
全球新消息丨《最终幻想16》仍然只有白人:没有对人种多样性妥协
每日报道:sonar代码扫描bug:Use try-with-resources or close this "FileInputStream" in a "f
世界时讯:通过手动创建hibernate工厂,自动生成表,完成数据库备份还原功能
每日简讯:【36oj】 画圣诞树
全球聚焦:AMD Zen4正式登顶!16核7954HX性能战平24核13980HX、功耗低得多
老司机全程不踩刹车?特斯拉潮州事故车主不服鉴定:官方尚未出责任认定书
【播资讯】不为人知的网络编程(十五):深入操作系统,一文搞懂Socket到底是什么
轻松玩转makefile | 变量与模式
天天百事通!3888元 + 可叠加百亿补贴:天猫无门槛红包12点正式开抢
4条狼青犬咬死几十只羊!警惕:性情凶狠、攻击性非常强
全球微头条丨211文科硕士吐槽均薪5500引争议:文科生转码或成趋势 还是理科香?
报道:“RNG老板道歉”登热搜 CEO:轮换中单是我的决定
【世界播资讯】李想:理想汽车要占20万元以上市场35% 将对标苹果特斯拉
垂头丧气的丧是什么意思?关于垂头丧气的反义词有哪些?