Chinaunix

标题: 谁给我讲下这道题是怎么解出来的?(关系代数表达式转换成元组演算表达式) [打印本页]

作者: sirius    时间: 2006-04-06 20:39
标题: 谁给我讲下这道题是怎么解出来的?(关系代数表达式转换成元组演算表达式)
假设学生S,课程C和学生选课SC的关系模式分别是S(sno,sname,sage,saddr),SC(sno,cno,grade)及C(cno,cname,pcno) 那么与下面这个关系代数表达式等价的元组演算表达式是什么?
πsno,sname,grade(σcname='数据库'(S<>SC<>C))

解的过程说:"这个关系代数表达式的意思是选择同时满足S.sno=SC.sno,SC.cno=C.cno"且cname='数据库'三个条件sno,sname,grade"  是什么意思啊!在线等,请高手解答!!!
作者: sirius    时间: 2006-04-06 20:42
上面的π是PI的符号,σ也是符号,是连接,选择的表示符号!!!
作者: rardge    时间: 2006-04-06 20:49
你是正在读数据库原理这门课程么?
作者: sirius    时间: 2006-04-07 04:24
是啊,我在准备软件设计师的考试,怎么了?
作者: sirius    时间: 2006-04-07 04:36
我等了一晚怎么没人给我说下啊?
作者: rardge    时间: 2006-04-07 09:56
原帖由 sirius 于 2006-4-7 04:24 发表
是啊,我在准备软件设计师的考试,怎么了?

我的意思是,既然你都在读这么课程了,怎么还会到这里来问这个问题,可以问老师啊。

πsno,sname,grade(σcname='数据库'(S<>SC<>C))
后面的符号 <> 我没见过,我知道的是 |X| 这样的。
解法,从括号一层层往外推。
1. (S<>SC<>C)
    三个表 S、SC、C 根据公共字段进行自然连接。
   S 和 SC 利用 sno 字段连接,相当于 where S.sno = SC. sno;
   C 和 SC 利用 cno 字段连接,相当于 where C.cno = SC. cno;
   综上,相当于:where S.sno = SC. sno AND C.cno = SC. cno;
2. σcname='数据库'(S<>SC<>C)
    对 1 这个步骤得到的表进行映射,条件是 cname='数据库';(按标准还要去掉重复的公共字段)
   相当于:where (S.sno = SC. sno AND C.cno = SC. cno) AND C.cname = '数据库';
3. 就是在 2 得到的关系中取字段了,只要 sno、sname、grade 三个字段就好了。
作者: xxjoyjn    时间: 2006-04-07 11:31
这些好像是属于数据库理论上面的东西,我都忘记了。
作者: sirius    时间: 2006-04-07 16:58
我也没见过<>,是买的辅导书上面的了!先谢谢楼上的了!
我不是计算机专业的了,自学看不懂的就发到网上来求助,先保存下来看看!不会了再问啊!不要跑哦!呵呵!
再次感谢.......
作者: rardge    时间: 2006-04-07 17:00
原帖由 sirius 于 2006-4-7 16:58 发表
我也没见过<>,是买的辅导书上面的了!

那教材上怎么写的?
学这个,先把常用术语和符号搞熟悉了。
作者: sirius    时间: 2006-04-07 17:06
恩,我买的 <软件设计师冲刺指南>上面的,也没说符号怎么回事,直接例题了!我又没系统学过数据库!
问题死是个多!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2