码迷,mamicode.com
首页 > 数据库 > 详细

关于一道数据库例题的解析。为什么σ age>22 (πS_ID,SCORE (SC) ) 选项是错的?

时间:2015-01-11 12:15:05      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

本人大二学子。近段时间在做数据库复习题的时候遇到一道题,如下。

有关系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) ) 选项是错的?

标签:

原文地址:http://www.cnblogs.com/linguanh/p/4216329.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!