我想教我自己的關係代數。我遇到了這個問題,並且想要明白它的含義。瞭解關係代數
(。=ℎ.ℎ)(×ℎ×_)
∧(=ℎ。)
⋀(。=。)
∧(_> 30 )其中,該部分從第一線被示出爲上標
:
(×ℎ×_)
我想教我自己的關係代數。我遇到了這個問題,並且想要明白它的含義。瞭解關係代數
(。=ℎ.ℎ)(×ℎ×_)
∧(=ℎ。)
⋀(。=。)
∧(_> 30 )其中,該部分從第一線被示出爲上標
:
(×ℎ×_)
select * from ((Orders inner join Shipment on Orders.oid = Shipment.Oid)
inner join Order_Item on Orders.Oid = Order_Item.Oid)
where Order_Item > 30 ;
σ=選擇
χ=跨產品
內加入做跨產品我們的表。 我該如何解釋,我無法做出決定。
這是一個選擇,這意味着您將只選擇滿足括號內條件的行。在這種情況下,您有多個條件,所有以^開頭的條件都是SELECT()運算符的條件。
Orders,Shipment和Order_Item是您正在處理的表格。
你首先做了這些表的產物,這意味着你正在把每個表的每個元組與其他元組的所有元組合在一起。
之後,您將執行select操作,獲得數量大於30的所有訂單,這些訂單已在訂購當天發貨。
謝謝。那麼剩下的列會是什麼?它們將是所有三個表格(訂單,裝運和訂單項目)中的列? – SummerDays
難道沒有一種更有效的方法來爲此編寫代數嗎? – SummerDays
@SummerDays 1.你必須告訴我們你的限制操作符被定義爲什麼樣的關係。你從哪裏得到這個表達?否則,我們不得不猜測,因爲從給出的語法中不清楚。 2.在這方面定義「有效」。通常情況下,DBMS通過評估涉及代數運算符和值的組合的相同值表達式,以及非代數運算符和值以及狀態(例如,重新排列表達式,例如使用索引)來計算表達式的值。 「效率」則取決於DBMS實施者所做的保證。 – philipxy
通常,對關係代數選擇/限制運算符的調用被寫爲一個下標條件,然後是一個關係值。你給出的表達沒有任何意義。似乎所有的∧s都應該是條件的一部分。看來你已經解析了你給出的錯誤。你能給我們一個鏈接,照片或準確描述你給的東西嗎? PS有*許多* RA,不同的運算符,甚至不同的關係,所以你需要找到這個寫入的定義。(這是一個相當SQL-ish變體。) – philipxy
請解釋部件你確實認爲自己明白,並確定你不明白的部分。 – philipxy