2017年深圳大学FS28专业基础知识综合(软件工程学术型)之数据库系统概论复试实战预测五套卷
● 摘要
一、简答题
1. 图书馆数据库中有如下关系:
其中,BOOKS 为图书表,对应的各个属性依次是书名、作者名、出版社名和图书编号;PUBLISHERS 为 出版社表,对应的各个属性依次是出版社名、出版社地址和出版社所在城市名;BORROWERS 为借书人表,对 应的各个属性依次是借书人姓名、借书人地址、借书人所在城市名和借书证号;LOANS 为借书表,对应的各个 属性依次是借书证号、图书编号和图书借出日期。若查询2003 / 10 / 1以前借出的书籍的书名和借书人姓名,请说明优化的过程。
【答案】根据题意查询表达式为:
该查询表达式对应的语法树如图1所示。对语法树进行优化,其具体步骤如下:
①将选择运算:
分解为两个选择运算:
②将上述的3个选择运算尽可能移到树的叶端,将与投影交换,同时,
由于
的属性Date 只涉及关系LOANS , 将其移到分出的两个选择下边,故有:
通过上述分析,可得到如图2所示的语法树。
图1初始语法树
图2 ②得到的语法树
③从图2的语法树可知,最顶层的投影与选择只用到了 4个属性,
所以可增加一个投影4个属性的投影运算:
而该投影运算根据它们所在的不同关系,又可分为两个投影运算:
通过上述分析,可得到如图3的语法树。
④从图3的语法树可知,最下面的笛卡尔积只用到了 4个属性,
所以可增加一个投影4个属性的投影运算:
而该投影运算根据它们所在的不同关系,又可分为两个投影运算:
即
即
通过上述分析,可得到如图4的语法树。
图3 ③得到的语法树
图4 ④得到的语法树
⑤按照分组原则,对生成的语法树进行分组。共分成两组,顶层笛卡尔积右下分枝为一组,顶层笛卡尔积祖先及左下分枝为一组。
⑥先写出执行第一组的运算程序,再写出执行第二组的运算程序。
相关内容
相关标签