2013-11-02 41 views
1

樓下的圖像顯示了一個小型的數據庫, enter image description here我可以使用Natural Join加入3個表嗎?

我有一個問題

給出一個關係代數表達式來找到法官的名字誰 主持稱爲「審判被告邁克「從 開始1.12.2012。

而且給出的答案是

enter image description here


但我認爲它應該加入JUDGE表,以及這樣的事情:

如果我」錯了,請留下一些評論此

enter image description here

回答

1

不,你不需要加入JUDGE表來獲得法官的名字。

請注意,JnameJUDGE s的主鍵,也就是說,法官由她的名字唯一標識;和TRIAL表實際上將包含Jname表示該法官主持了一個給定的試驗:

Judge | Defendant | Number | Sdate 
Dredd | 1  | 1 | 1.12.2012 
Dredd | 2  | 2 | 2.12.2012 
Rico | 1  | 3 | 1.12.2012 

你可以看到如何選擇元組得到美國法官的名字沒有加入任何東西(在你想知道的情況下,這是。一個非常糟糕的設計,你不應該在現實世界中使用)

相比之下,我們也不得不加入DEFENDANTTRIAL:一個DEFENDANT的主鍵是他的身份證,所以只有ID出現在TRIAL表,所以如果我們需要按名稱選擇被告,我們必須加入一個聯合。

至於你的問題標題:是的,你當然可以加入三個以上的表格。如果你發現很難想象,請回憶一下R ⨝ S ⨝ T = (R ⨝ S) ⨝ T。請注意,自然連接也很好地交換和關聯。