2011-05-26 29 views
0

enter image description heresql - >關係代數

如何將其轉換爲關係代數樹?

什麼是邏輯步驟?我首先需要轉換爲關係代數嗎?或者我可以直接從SQL到樹?

+0

你在講座中是如何學習的? :-) – diagonalbatman 2011-05-26 14:44:32

+0

哈這就是我們沒有的笑話 – user559142 2011-05-26 15:35:18

+0

我認爲這個笑話是你沒有注意到。即使在研究生院,教授也會解釋如何做事。 – Woot4Moo 2011-05-26 17:21:51

回答

3

我會先轉換爲關係代數,然後轉換爲樹。

看,SELECT子句只需要三個字段。這是一個projection

FROM子句有三個關係。這是一個Cartesian product

WHERE子句給出了一堆selection s。在轉換爲樹之前,這是幫助轉換爲關係代數的部分。

我不知道你在課堂上使用的符號,但你可能想要的東西,有

projection((things-you-want), selection((criteria), selection((criteria), 
    selection((criteria), aXbXc)))) 

或投影的...從跨產品產生的東西選擇的選擇的一般形式。

請注意,根據教師的挑剔程度,您可能需要重新命名字段。由於Show和Seat都將showNo作爲屬性,所以在給予它們唯一名稱(可選規則,屬性由隱式關係名稱前綴唯一標識)之前,可能不允許您使用交叉產品。

此外,根據課程的目的,您可能會通過其中一些操作。在將交叉產品作爲限制日期範圍的方法之前,您可以在Booking上進行選擇。最終結果將是等效的。

無論如何,從sql到關係代數到樹的真正額外工作是多少?我毫不懷疑,通過練習,你可以跳過中間步驟。但是,由於您首先提出了這個問題,因此我建議通過議案。請記住初中數學老師的「顯示你的工作」要求,以結合在高中時離開的簡單術語?這裏適用相同的規則。我說這是作爲CS任務的前分級。

2

該SQL查詢的結果不是關係,所以它在RA中沒有完全相同的關係。您可以嘗試使用添加的DISTINCT創建相同SQL查詢的RA版本。