首页 > 代码库 > 关于一道数据库例题的解析。为什么σ age>22 (πS_ID,SCORE (SC) ) 选项是错的?
关于一道数据库例题的解析。为什么σ age>22 (πS_ID,SCORE (SC) ) 选项是错的?
本人大二学子。近段时间在做数据库复习题的时候遇到一道题,如下。
有关系SC(S_ID,C_ID,AGE,SCORE),查找年龄大于22岁的学生的学号和分数,正确的关系代数表达式是( ) 。
ⅰ. πS_ID,SCORE (σ age>22 (SC) )
ⅱ. σ age>22 (πS_ID,SCORE (SC) )
ⅲ. πS_ID,SCORE (σage>22 (πS_ID,SCORE,AGE (SC) ) )
答案是 i和iii,当时我自己做的结果是三个都正确。看了答案后,总是觉得 i 和 ii 不就是一样的吗?后来百度,哈哈,这题倒是出现过了很多便,在不同的
资料中,看了很多,都没解析。一时间,百度已经帮不了我了。只能自己翻书看定义。
π,课本上定义的是 取出属性列组成新的关系,就是组成新的表。突然,恍然大悟。如果是这样的话,选项 ii 中,先执行(πS_ID,SCORE (SC) )这句,
那么这个新的表里就没有年龄列,只有S_ID和SCORE,这样的话,σ age>22,前面的这句就在一个没有age属性的表里去进行 行 选择,这自然就是错的了。
上面上居于课本定义的主观臆测。为求验证,请看 iii (σage>22 (πS_ID,SCORE,AGE (SC) ) ),它的这句比 ii 的多了个age的列。结果一目了然,我上面
的解析很可能是正确的。
关于一道数据库例题的解析。为什么σ age>22 (πS_ID,SCORE (SC) ) 选项是错的?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。