- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[第六章-全局查询到段查询的变换
第六章 全局查询到段查询的变换
一般说来,把对全局关系的查询(称为全局查询)变换为段的查询(称为段的查询),有几种不同的方法,采用某些规则就可把一个全局查询表达式重新写成一种等价的段查询表达式。
6.1 查询的算符树及其等价变换
例: S(学号,姓名,年令,性别,系号,奖学金,班长学号,民族)
C(课号,课名,学时,任课教师)
SC(学号, 课号,成绩)
D(系号,系名,系主任)
查询:学生‘刘建‘所学课号及成绩
SELECT 课号,成绩
FROM S,SC
WHERE S. 学号 = SC. 学号 AND S. 姓名 = ‘刘建‘ ;
以上是用SQL完成的查询(语义),在内部实现上,同一个语义可有多种不同方式。对上面的查询,系统可用下面三种方式来实现:
T1 = PJ课号,成绩(SLS.学号= SC.学号∧S.姓名=‘刘建‘(S CP SC))
T2 = PJ课号,成绩(SL姓名=‘刘建‘(S NJN SC))
T3 = PJ课号,成绩((SL姓名=‘刘建‘S) NJN SC)
分析上式,T1、T2、T3是等价的,但T3优于T2,T2优于T1。
怎样才能写出优化的表达式呢? 这就要相应有些准则。引入查询的算符树的概念,并利用准则,通过对算符树进行等价变换达到优化目的。
6.1.1 查询的算符树
Q1:查询对北部地区的各个部门供货的供应商号。图6.1是查询Q1的算符树的一个例子, 其中树叶是全局关系,而每个节点表示了一个一元或二元的操作。在本例中,先执行结合操作,再执行选择和投影操作。
图6.1 查询Q1的一种算符树
我们可以把关系代数表达式的算符树看作是表达式本身的语法分析树,语法规则(产生式)。
R 标识符
R (R)
R UN—OP R
R R BIN—OP R
UN—OP SLF∣PJA
BIN—OP CP∣UN ∣DF∣JNF∣NJN∣IN∣SJF∣NSJ
上述的R可以是算符树的叶节点,运算符是枝节点,可通过对算符树进行等价变换达到优化目的。
6.1.2 关系代数的等价变换
令U和B分别表示一元代数运算符和二元代数运算符,我们有:
一元运算的交换律(commutativity):
U1U2R U2U1R
二元运算的操作数的交换律
R B S S B R
二元运算的结合律(associativity):
R B(S BT) (R B S)B T
一远运算的幂等(idempotence):
UR U1U2R
一元运算相对于二元运算的分配律(distributivity):
U(R B S) U(R)B U(S)
一元运算的因子分解(factorization),(这种变换正好与分配律相反):
U(R)B U(S) U (R B S)
下面讨论对于上述各条的具体可行的情况。(见表6.1----表6.5)
表6.1 一元运算的交换律
SLF2 PJA2
SLF1(*(R)) Y Y
*(SLF1(R))
PJ A1(*(R)) SNG1 SNG2
*(PJA1(R))
SNG1:Attr(F2) A1 ;SNG2:A1 ? A2
表6.2 二元运算的结合律及操作数的交换律
UN DF CP JNF SJF
R*S Y N Y Y N
S*R
(R*S)*T Y N Y SNG1 N
R*(S*T)
SNG1:for(R JNF1 S)JNF2T R JNF1(S JNF2 T):
Attr(F2) Attr(S)U Attr(T):???
表6.3 一元运算的幂等
PJA(R) PJA1PJA2(R) SNG:A ? A1,A A2
SLF(R) SLF1SLF2(R) SNG:F=F1? F2
6.4、6.5见教材。
在非分布式数据库中,为了优化查询的执行,给出了一些相关的等价变换的一般准则:
准则1 使用选择和投影的幂等来为每个操作数关系产生相应的选择和投
文档评论(0)