高分求救!救命呀……

Eagle112 2004-12-07 07:50:37
这个题目是关于“关系数据库系统的查询优化”,将用到“关系代数表达式的优化算法”。可以参看 萨师煊 王珊 编著的《数据库系统概论(第三版)》[高等教育出版社] ,第157页“4.2 关系数据库系统的查询优化”,优化算法参看此书第164页“4.2.5 关系代数表达式的优化算法”。
题目要求:
用VB或者VC(最好是VB)编程实现以下功能,用图形界面和命令行两种方式实现(如果只能用一种方式实现也可)。
输入:关系代数表达式或SELECT查询语句
输出:优化后的关系代数表达式
优化算法:
(1)分解选择运算
σF1(σF2(E)) ≡σF1∧σF2(E)
(2)移到叶端
σF (E1×E2) ≡σF (E1)×E2
(3)分解投影并移到叶端
ΠA1,A2,…,An,B1,B2,…,Bm(E1×E2) ≡ ΠA1,A2,…,An(E1) × ΠB1,B2,…,Bm(E2)
(4)合并投影和选择
σF (ΠA1,A2,…,An(E)) ≡ΠA1,A2,…,An(σF (E))
(5)合并选择和笛卡尔积为连接运算
σF (E1×E2) ≡E1∞F,E2
(6)生成优化后的关系代数表达式
说明:详细优化算法参看 萨师煊 王珊 编著的《数据库系统概论(第三版)》[高等教育出版社] ,第164页“4.2.5 关系代数表达式的优化算法”。


先谢谢各位了!
可以将源代码发到我的邮箱:landcn518@sina.com
并请说明解题过程及思路,可以简单说一下。
谢谢!
由于级别有限,分数只能这么多了,如果不够可以再给。谢谢!
...全文
132 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eagle112 2004-12-08
  • 打赏
  • 举报
回复
哇塞……
唉!……
Eagle112 2004-12-07
  • 打赏
  • 举报
回复
救命呀……!
cindytsai 2004-12-07
  • 打赏
  • 举报
回复
既然已经有优化的表达式,按说也就差不多了,还写不出来吗?
Eagle112 2004-12-07
  • 打赏
  • 举报
回复
To cindytsai(笨笨的蔡鸟) :
  谢谢你的帮助,不过写关系代数表达式我也会,我也看过这方面的例子,只是现在要编程序实现这种功能,比如最简单的:有个文本框输入任意的关系代数表达式或SELECT查询语句,点击一命令按钮后,在另一个文本框中输出优化后的关系代数表达式。
GGL123 2004-12-07
  • 打赏
  • 举报
回复
up
cindytsai 2004-12-07
  • 打赏
  • 举报
回复
2)向叶端靠拢,把移到投影和另外两个选择操作下面,直接放在笛卡积外面得到子表达式:
σSEX='F'(σTEACHER='LIU'(SC×C)×S)
其中,内层选择仅涉及关系C,外层选择仅涉及到关系S,所以上式可变换成:
(SC×σTEACHER='LIU'(C))×σSEX='F'(S)
cindytsai 2004-12-07
  • 打赏
  • 举报
回复
1)把每个选择运算分裂成两个选择运算,共得4个选择操作:
σTEACHER='LIU'
σSEX='F'
σSC.C#=C.C#
σSC.S#=S.S#
cindytsai 2004-12-07
  • 打赏
  • 举报
回复
我正在看的一本书中有类似的例子,但这种优化似乎跟用什么语言没有很大关系。把这个例子抄一下给看看,帮上忙再说吧。
对于教学数据库
S(S#,SNAME,AGE,SEX)'学生资料库,学号,姓名,年龄,性别
SC(S#,C#,GRADE) '学生成绩库,学号,课程号,成绩
C(C#,CNAME,TEACHER)'教师库,课程号,课程名称,教师
现有一查询语句:检索至少LIU(刘)老师所授一门课程的女学生的学号和姓名。
该查询语句的关系代数表达式如下:
ΠS#,SNAME(σ TEACHER='LIU'∧SEX='F'(ΠL(σ SC.C#=C.C#∧SC.S#=S.S#(SC×C×S))))
True1024 2004-12-07
  • 打赏
  • 举报
回复
UP
jilong4 2004-12-07
  • 打赏
  • 举报
回复
关注
guoxu_009 2004-12-07
  • 打赏
  • 举报
回复
看到公式头大了:P
UP.........
aohan 2004-12-07
  • 打赏
  • 举报
回复
先up了
Eagle112 2004-12-07
  • 打赏
  • 举报
回复
这个问题要用到的树的操作。
快救救我吧!
Eagle112 2004-12-07
  • 打赏
  • 举报
回复
不要这样吗?
这样会死人的!
快救救我吧!……快救救我吧!……
guyanf 2004-12-07
  • 打赏
  • 举报
回复
高难度问题
Eagle112 2004-12-07
  • 打赏
  • 举报
回复
怎么就没有人回应了呢?
不要这样吧!
快来救救我吧!
………………

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧