第4 章关系系统及其查询优化

合集下载

第四章全局查询处理和优化

第四章全局查询处理和优化

§4.4 查询优化的基础
2、查询树 在查询树中,叶子表 示关系,中间节点表 示运算,前序遍历关 系表示运算次序。 定义: ROOT:=T T:=R/(T) /TbT/UT U:=σF/ПA b: =∞/X/∪/∩//∝
§4.4 查询优化的基础
3、举例 例4.2.1 设有一供应关系数据库,有供应者和供应两关系,如下: 供应者:SUPPLIER{SNO,SNAME,AREA} 供应者编号 供应者姓名 供应者所属地域 供应:SUPPLY{SNO,PNO,QTY} 供应者编号 零件号 质量 查询要求:找出地域在″北方″供应100号零件的供应商的信息。 SQL查询语句:SELECT SNO,SNAME FROM SUPPLIER,SUPPLY WHERE AREA=″北方″AND PNO=100 AND SUPPLIER.SNO=SUPPLY.SNO
§4.4 查询优化的基础
(2)等价变换 重复律:UR ≡ UUR 交换律:U1U2R ≡ U2U1R 分配律:U(RbS)≡(UR)b(US) 结合律:Rb1(Sb2T)≡ (Rb1S)b2T 提取律:(UR)b(US) ≡ U(RbS) 其中:R、S、T为关系,U1、U2、U为一元运算符 ,b1、b2、 b为二元运算符。
§4.4 查询优化的基础
3、举例 等价的关系表达式: Q1:ПSNO,SNAMEσAREA=″北方″σPNO=100 (SUPPLIER∞SUPPLY) 查询树:
§4.2 Overview of Query Processing
通常用SQL语言操纵语言来表达全局查询。之后, 由系统将其转换成内部表示。实际上,在查询执 行过程时,最终涉及的是具体场地上的物理关系 的查询。影响查询处理效率的因素有:网络传输 代价(数据量和延迟等)、局部I/O代价及CPU 使用情况代价等,但主要由网络通信代价和局部 I/O代价来衡量。不同的分布式数据库系统可能对 评估查询处理的传输代价和I/O代价的侧重不同, 同时,为提高查询的效率,在查询处理过程中还 要进行优化处理,查询优化就是确定出一种执行 代价最小的查询执行策略或寻找相对较优的操作 执行步骤。一般可采用多级优化。本章介绍全局 查询的处理与优化。

第4章 关系模式的规范化与查询优化

第4章 关系模式的规范化与查询优化
6/10/2014 14
4.3.4 BCNF
BCNF(Boyce Codd Normal Form) 比3NF又进了一步, 通常认为BCNF是修正(扩充)的第三范式。 定义4.8 关系模式R〈U,F〉∈1NF。若X→Y且not Y≤X 时X必含有码,则R〈U,F〉∈BCNF 即:关系模式R〈U,F〉中,若每一个决定因素都包含码, 则R〈U,F〉∈BCNF。 由BCNF的定义可以得到,一个满足BCNF的关系模式有: 所有非主属性对每一个码都是完全函数依赖。 所有的主属性对每一个不包含它的码,也是完全函数依赖。 没有任何属性完全函数依赖于非码的任何一组属性。 可以证明:若R∈BCNF,则 R∈3NF。反之不然。
6/10/2014
8
4.2.2 码(用函数依赖的概念定义) 定义4.4 设K为R(U,F)中的属性或属性组合,若K→U, 则K为R的候选码(Candidate key)。若候选码多于 一个,则选定其中的一个为主码(Primary key)。 包含在任何一个候选码中的属性,叫做主属性. 不包含在任何码中的属性称为非主属性或非码属性. 最简单的情况,单个属性是码。 最极端的情况,整个属性组是码,称为全码. 关系模式S(Sno,Sname,Sdept,Sage) 关系模式SC(Sno,Cno,G) (Sno,Cno)是码 关系模式R(P,W,A), P:演奏者,W:作品,A:听众. 全码(P,W,A)。
S J
6/10/2014
T
S T
J
17
小结: 1NF 消除非主属性对码的部分函数依赖 2NF 消除非主属性对码的传递函数依赖 3NF 消除主属性对码的部分和传递函数依赖 BCNF BCNF在函数依赖范畴内已实现了彻底的分 离,已消除了插入和删除异常。

数据库 4关系系统及其查询优化共24页文档

数据库 4关系系统及其查询优化共24页文档
ቤተ መጻሕፍቲ ባይዱ
61、奢侈是舒适的,否则就不是奢侈 。——CocoCha nel 62、少而好学,如日出之阳;壮而好学 ,如日 中之光 ;志而 好学, 如炳烛 之光。 ——刘 向 63、三军可夺帅也,匹夫不可夺志也。 ——孔 丘 64、人生就是学校。在那里,与其说好 的教师 是幸福 ,不如 说好的 教师是 不幸。 ——海 贝尔 65、接受挑战,就可以享受胜利的喜悦 。——杰纳勒 尔·乔治·S·巴顿
数据库 4关系系统及其查询优化
16、人民应该为法律而战斗,就像为 了城墙 而战斗 一样。 ——赫 拉克利 特 17、人类对于不公正的行为加以指责 ,并非 因为他 们愿意 做出这 种行为 ,而是 惟恐自 己会成 为这种 行为的 牺牲者 。—— 柏拉图 18、制定法律法令,就是为了不让强 者做什 么事都 横行霸 道。— —奥维 德 19、法律是社会的习惯和思想的结晶 。—— 托·伍·威尔逊 20、人们嘴上挂着的法律,其真实含 义是财 富。— —爱献 生
谢谢!

关系数据库查询优化

关系数据库查询优化

第4章 关系数据查询优化: 4.1 查询处理与优化
查询优化实例(1) • 设有关系S,C,SC,查询修读课程号为 C5的所有学生姓名。 • 对应于此查询的SQL查询语言的语句为: • SELECT S.Sn • FROM S,SC • WHERE S.Sn=SC.Sn AND SC.C# = ' C5';
第4章 关系数据查询优化: 4.1 查询处理与优化
查询优化实例(8)
• (2)计算Q2的查询时间 • ●计算自然连接:计算自然连接时读取S与SC表 的方式与Q1一致,总读取块数为2100块,花费时 间为10 5秒,但其连接结果块数大为减少,总计 104个,所花时间为104/10/20s=50s。仅为Q1的 千分之一。 • ●作选择操作:做选择操作的时间为50s。 • ●做投影操作:与Q1类似,其时间可忽略不计 • 这样,Q2的全部查询时间≈ 105+50+50= 205s
执行查询代码
第4章 关系数据查询优化: 4.1 查询处理与优化
查询优化概念 • 一般而言,相同查询要求和结果存在不同 实现策略,系统执行这些查询策略的开销 通常有很大差别。对于一个数据库系统来 说,查询处理过程都必须面对如何从查询 的多个执行策略中进行“合理”选择的问 题,这种“择优”的过程就是“查询处理 过程中的优化”,简称为查询优化。
第4章 关系数据查询优化: 4.1 查询处理与优化
查询优化实例(2) • 考虑查询语句对应的三种代数表达式: • Q1 =∏Sn(σS.S# =SC。S#SC.C# =‘C5’ (S×SC)); • Q2 =∏Sn(σSC.C# =‘C5’(SSC)); • Q3 =∏Sn(SσSC.C# =‘C5’(SC))。
数据库系统基础教程
第4章 关系数据库查询优化

万常选第三版课后答案第四章

万常选第三版课后答案第四章

万常选第三版课后答案第四章
第四章关系系统及其优化
一、选择题
1.概念模型是现实世界的第一层抽象,这一类最著名的模型是()。

A.层次模型
B.关系模型
C.网状模型
D.实体-关系模型
2.区分不同实体的依据是()。

A.名称
B.属性
C.对象
D.概念
3.关系数据模型是目前最重要的一种数据模型,它的三个要素分别为()。

A.实体完整、参照完整、用户自定义完整
B.数据结构、关系操作、完整性约束
C.数据增加、数据修改、数据查询
D.外模式、模式、内模式
4.在()中一个结点可以有多个双亲,节点之间可以有多种联系。

A.网状模型
B.关系模型
C.层次模型
D.以上都有
5.()的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性也简化了程序员的工作和数据库开发建立的工作。

A.网状模型
B.关系模型
D.层次模型D.以上都有
6.在关系数据库中,要求基本关系中所有的主属性上不能有空值,其遵守的约束规则是()。

A.数据依赖完整性规则
B.用户定义完整性规则
C.实体完整性规则
D.域完整性规则。

数据库技术与应用PPT课件第四章 关系数据库查询优化

数据库技术与应用PPT课件第四章  关系数据库查询优化
AND o='2';
2020/4/13
4.1.4 查询优化概述 1 查询优化的必要性(续)
假设1:外存: Student:1000条,SC:10000条, 选修2号课程:50条 一个硬盘块放10个student或者100个SC
假设2:一次I/O交换元组:10个Student, 或100个SC, 内存中一次可以存放: 5块Student元组(即50个Student),
③П
总时间<1~2秒(不必遍历所有的元组记录)
2020/4/13
4.1.4查询优化概述 2 查询优化的可能性
• 用户不必考虑如何最好地表达查询以获 得较好的效率。
• 关系数据语言的级别很高,使 DBMS可以从关系表达式中分析查 询语义。
• 系统可以比用户程序的优化做得更好。
2020/4/13
4.1.4查询优化概述
2 查询优化的可能性(续)
Student×SC(做SC×Student) 读取总块数= 读SC表块数 + 读Student表遍数 *每遍块数
(读Student表遍数=SC表的总元组数/在内存中的元组数) =10000/100+(10000/(100×1))
×(1000/10) =100+100×100=10100
读数据时间=100/20=5秒
中间结果大小=50条 不必写入外存

读Student表总块数= 1000/10=100块
读数据时间=100/20=5秒
③П
总时间=5+5秒=10秒 (减少中间结果,且全部在内存)
2020/4/13
4.1.4查询优化概述
1 查询优化的必要性(续)
4. Q4= ПSname(Student бo='2' (SC)) 假设SC表在Cno上有索引,Student表在Sno上

数据库系统原理教案4

数据库系统原理教案4

《数据库系统原理》教案第四章关系系统的查询优化4.1 关系系统4.1.1 关系系统的定义笼统的说,支持关系模型的数据库管理系统(DBMS)称为关系系统。

可见,关系系统和关系模型是密切相关而又相互区别的两个概念。

设计关系模型时,我们不苛求关系模型中每一部分的同等重要性,但是要满足如下几个方面:(1) 以提高用户的生产率作为关系系统的主要目标,方便用户使用。

(2) 保证和提高数据的物理独立性,即实现关系系统能够自动地选择路径。

(3) 确保关系系统能够解决绝大部分的实际问题。

定义4.1一个系统是关系系统当且仅当·支持关系数据库(关系数据结构)。

·支持选择、投影和(自然)连接运算,对这些运算不必要求定义任何物理存取路径。

需要说明的是,该定义是关系系统的最小要求。

一个系统仅支持关系数据结构,但没有选择、投影和连接运算功能的系统仍不能算作关系系统。

支持选择、投影和连接运算,但要求定义物理存取路径,需要用户建立索引才能检索记录,也不能算作真正的关系系统。

当然并不要求关系系统的选择、投影、连接运算和关系代数的相应运算完全一样,而只要求有等价的这三种运算功能就行。

4.1.2 关系系统的分类具体地说:目前的关系系统多是按照E.F.Codd的思想划分的(如图4-1)。

图中的圆表示关系数据模型。

每个圆分为三部分,分别表示关系模型的三个组成部分:结构S(Structure)、完整性I(Integrity)、数据操纵M(Manipulation)。

图中阴影部分表示各类系统支持模型的程度。

(1) 表式系统这类系统仅支持关系数据结构,不支持集合的操作。

表式系统不能算关系系统。

(2) 最小关系系统即定义中的关系系统。

它们仅支持关系数据结构和三种关系操作。

最小关系系统完备的关系系统表式关系系统全关系系统图4-1 关系系统的分类(3) 关系完备的系统这类系统支持关系数据结构和所有的关系代数操作。

(4) 全关系系统这类系统支持关系模型的所有特征。

关系数据库查询优化

关系数据库查询优化
数据库系统基础教程
第4章 关系数据库查询优化 章
第4章 关系数据查询优化: 4.1 查询处理与优化 章 关系数据查询优化:
4.1 查询处理与优化
查询要求 DML 处理器
关系数据查询过程
查询转换为内部格式
相关数据统计信息
关系代数语法树 查询优化器 制定执行策略
数据库 查询计划 代生成器 生成执行代码
第4章 关系数据查询优化: 4.1 查询处理与优化 章 关系数据查询优化:
查询优化实例(3) 查询优化实例( )
• 作如下的统一约定: 作如下的统一约定: • ● 设S有1000个元组,SC有10000个元组,其中修读 有 个元组, 有 个元组, 个元组 个元组 其中修读C5 的元组数为50。 的元组数为 。 • ● 磁盘中每个物理块能存放 个S元组,或100个SC元组。 磁盘中每个物理块能存放10个 元组 元组, 元组。 个 元组 • ● 内存有 个块的缓冲区,其中 块可以存放 元组,1块 内存有6个块的缓冲区 其中5块可以存放 元组, 块 个块的缓冲区, 块可以存放S元组 存放SC元组 元组。 存放 元组。 • ● 读/写一块磁盘的时间为 写一块磁盘的时间为1/20秒,即1秒读写 个磁盘 秒读写20个磁盘 写一块磁盘的时间为 秒 秒读写 块。 • ● 为了简化起见,所有内存操作所花的时间忽略不计。 为了简化起见,所有内存操作所花的时间忽略不计。
第4章 关系数据查询优化: 4.1 查询处理与优化 章 关系数据查询优化:
查询优化实例(7) 查询优化实例( )
• ③ 最后做投影操作 • 第二项操作的结果满足条件的元组数为50个,它 第二项操作的结果满足条件的元组数为 个 们可全部存放在内存。对他们在S上做投影操作 上做投影操作, 们可全部存放在内存。对他们在 上做投影操作, 由于是在内存中进行,其时间可忽略不计。 由于是在内存中进行,其时间可忽略不计。这样 Q1的全部查询时间约为 的全部查询时间约为105+2×5×104 ≈ 105s。 × × 。 的全部查询时间约为 注意到一天为86400s,所以这个运算需要超过一 注意到一天为 , 天的时间来完成。 天的时间来完成。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 4 章 关系系统及其查询优化
1. 试给出各类关系系统的定义:最小关系系统;关系上完备的系统;全关系型的关系系统。
2. 试述全关系型系统应满足的十二条准则,以及十二条基本准则的实际意义和理论意义。
3. 试述查询优化在关系数据库系统中的重要性和可能性。
4. 试述查询优化的一般准则。
5. 试述查询优化的一般步骤。

答案
1.最小关系系统:一个系统可定义为最小关系系统,当且仅当它:
(1)支持关系数据库(关系数据结构)。从用户观点看,关系数据库由表构成,并且只
有表这一种结构。
(2)支持选择、投影和(自然)连接运算,对这些运算不必要求定义任何物理存取路径。
关系上完备的系统:这类系统支持关系数据结构和所有的关系代数操作(或者功能上与
关系代数等价的操作)。
全关系型的关系系统:这类系统支持关系模型的所有特征。即不仅是关系上完备的而且
支持数据结构中域的概念,支持实体完整性和参照完整性。
2. 关系模型的奠基人 E.F.Codd 具体地给出了全关系型的关系系统应遵循的十二条基本准
则。从实际意义上看,这十二条准则可以作为评价或购买关系型产品的标准。从理论意义上
看,它是对关系数据模型的具体而又深入的论述,是从理论和实际紧密结合的高度对关系型
DBMS 的评述。
准则 0 一个关系型的 DBMS 必须能完全通过它的关系能力来管理数据库。
准则 1 信息准则。关系型 DBMS 的所有信息都应在逻辑一级上用一种方法即表中的值显
式地表示。
准则 2 保证访问准则。依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据
库中的每个数据项 ( 分量值 ) 。
准则 3 空值的系统化处理。全关系型的 DBMS 应支持空值的概念,并用系统化的方式处
理空值。
准则 4 基于关系模型的动态的联机数据字典。数据库的描述在逻辑级上应该和普通数据
采用同样的表示方式,使得授权用户可以使用查询一般数据所用的关系语言来查询数据库的
描述信息。
准则 5 统一的数据子语言准则。
准则 6 视图更新准则。所有理论上可更新的视图也应该允许由系统更新。
准则 7 高级的插入、修改和删除操作。
准则 8 数据物理独立性。无论数据库的数据在存储表示或存取方法上作任何变化,应用
程序和终端活动都保持逻辑上的不变性。
准则 9 数据逻辑独立性。当对基本关系进行理论上信息不受损害的任何改变时,应用程
序和终端活动都保持逻辑上的不变性。
准则 l0 数据完整性的独立性。关系数据库的完整性约束条件必须是用数据库语言定义
并存储在数据字典中的,而不是在应用程序中加以定义的。
准则 11 分布独立性。关系型 DBMS 具有分布独立性。
准则 12 无破坏准则。如果一个关系系统具有一个低级 ( 指一次一个记录 ) 语言,则
这个低级语言不能违背或绕过完整性准则。
3. 重要性:关系系统的查询优化既是 RDBMS 实现的关键技术又是关系系统的优点所在。它
减轻了用户选择存取路径的负担。用户只要提出“干什么”,不必指出“怎么干”。查询优
化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率,而且在于系统可以
比用户程序的“优化”做得更好。
可能性:这是因为,
(1)优化器可以从数据字典中获取许多统计信息,例如各个关系中的元组数、关系中每
个属性值的分布情况、这些属性上是否有索引、是什么索引, B+树索引还是 HASH 索引?唯
一索引?组合索引?等等。优化器可以根据这些信息选择有效的执行计划,而用户程序则难
以获得这些信息。
(2)如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适
应的执行计划。在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的。
(3)优化器可以考虑数十甚至数百种不同的执行计划,从中选出较优的一个,而程序员
一般只能考虑有限的几种可能性。
(4)优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌
握。系统的自动优化相当于使得所有人都拥有这些优化技术。
4. 下面的优化策略一般能提高查询效率:
(1)选择运算应尽可能先做。
(2)把投影运算和选择运算同时进行。
(3)把投影同其前或其后的双目运算结合起来执行。
(4)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。
(5)找出公共子表达式。
(6)选取合适的连接算法 。
5. 各个关系系统的优化方法不尽相同,大致的步骤可以归纳如下:
(1)把查询转换成某种内部表示,通常用的内部表示是语法树。
(2)把语法树转换成标准 (优化) 形式。 即利用优化算法,把原始的语法树转换成优
化的形式。
(3)选择低层的存取路径。
(4)生成查询计划,选择代价最小的。

相关文档
最新文档