103年中華電信計算機概論選擇49題 - 考試

Table of Contents

※ 引述《killermech (SONY控)》之銘言:
: 在RDB模型中,下列哪一個關聯式代數運算子可以從關連表選出指定條件的值組?
: 1)Join 2)Selection 3)Projection 4)Set Difference
: 答案是2
: 有沒有人覺得,這題的題目敘述有點奇怪,指定條件感覺比較像是WHERE a=b
: 而我認為LETT/RIGHT OUTER JOIN 後面的ON條件就是WHERE功能所以選1,
: 而且如果是SELECT的話應該不是依照條件選出值組吧,而是限定值組顯示的的欄位
: 集合??

我想原PO可能把關聯式代數中的Selection運算,想成等於SQL中的where子句指定條件?

再把關聯式代數中Projection運算,想成等於SQL中的select子句選出結果?

不知我是否有誤解?

------------------------------------------------------------------------------

其實資料庫系統(by陳玄玲)中Chapter 6.1.1和6.1.2都有2個的詳細定義與舉例:

書中定義:
Seleection:select運算相當於是選擇該表格的某些列,而丟棄其它列。
Projection:project運算則是從表格選某些欄位,而丟棄其他欄位。

舉例:

Selection:
σ (Employee)
Dno=4 and Salary>25000

對應SQL例子:
Select *
From Employee
Where Dno=4 and Salary>25000

Projection:
π (Employee)
Sex, Salary

對應SQL例子:
Select distinct Sex, Salary
From Employee

所以由上述例子,應該可以很明顯了解這2個運算都是從表格中取資料出來,

只是Selection的限制條件相當於在SQL中的where子句
而Projection的限制條件相當於在SQL中的select子句

所以應該並沒有說最後的選取資料需透過Projection運算。


PS:以上是我個人看法,有錯請多多指教。

--

All Comments

Barb Cronin avatarBarb Cronin2014-02-21
學到了不少非常感謝!!
Adele avatarAdele2014-02-21
^^~ 有幫忙到就好。