Relational-Algebra
提供比實際需要的長的關係代數表達式
架構圖: 為涉及姓氏為“Smith”的員工(作為工人或作為控制項目的部門的經理)的項目列出項目編號。
給定的解決方案是:
但是,我相信只需使用以下表達式就足夠了:
現在,我之所以相信這一點,主要是因為該
EMPLOYEE
關係包含對應於工人和經理的元組。現在,員工可以是工人也可以是經理。所以,按照這個邏輯,上面的表達式應該足夠了。我完全同意一個給定的查詢可以通過多個關係代數表達式來表示的事實,但是按照給定的解決方案(更大的一個)上面的建議是非常多餘的。所以總結一下,我的構想對不對?
資料來源:Ramez Elmasri 和 Shamkant B. Navathe 的數據庫系統基礎,第 6 版,第 172 頁查詢 4。
試圖找到一個更簡單的解決方案是令人欽佩的,但你的表達方式有點錯誤。
問題的重要部分是:
…或作為部門經理…
請注意,這與“……或作為員工的經理……”不同。
讓我們在那裡拋出一些名字。
- Ed White 為 Brian Green 工作。Ed 正在研究 123 計劃。
- 123項目由財務部控制。Kathy Smith 是財務部的經理。
因此,請求的結果應在輸出中包含項目 123,因為項目 123 由經理姓氏為 Smith 的部門控制。
您提出的解決方案將不包括 Project 123,因為 Ed 和他的經理都沒有姓 Smith。