對於何時使用這兩個運算符,我有點困惑。我覺得我理解他們,但我很難弄清楚什麼時候需要他們進行關係代數表述。有人能給我一些見解/建議嗎?關係代數交叉產品和自然聯接
0
A
回答
0
某些版本的關係代數具有關聯標題,這些關係標題是(無序的,唯一命名的)屬性的集合。然後(關係(笛卡爾))產品,又名CROSS JOIN,又名CROSS PRODUCT,只有當輸入關係不共享屬性名稱,否則就像NATURAL JOIN一樣定義。所以它的作用是確認你期望沒有共享屬性名稱。 (某些版本的關係代數的關係標題不是集合;屬性可以是有序的,或者多個屬性可以具有相同的名稱。通常,PRODUCT爲每個輸入屬性輸出一個屬性,如果有一個NATURAL JOIN,則它的結果就像先做PRODUCT一樣,然後確定相同名稱屬性對的相等性,然後計算出每對的一個屬性,所以PRODUCT適用於任何兩個輸入,當一個輸入具有重複屬性時,NATURAL JOIN可能是未定義的名字,但他們會給時,有沒有共享的屬性名相同的結果)
至於why you would compose any particular relational algebra query:
每個表/關係都有一個由 列/屬性參數化的語句。 (它的「特徵謂詞」)。使表達式成立的行/元組 進入表/關係。首先找到爲給定的表/關係 聲明:
// customer [Cust-Name] has £[Balance] in account [Acc-No] at branch [Branch] Deposit (Branch, Acc-No, Cust-Name, Balance) // customer [Cust-Name] loan [Loan-No] balance is £[Balance] at branch [Branch] Loan(Branch, Loan-No, Cust-Name, Balance)
現在把這些給報表一併獲得,只有 行我們要滿足的聲明。使用AND,OR,NOT和AND條件。保留或 刪除名稱。如果您需要,請使用新名稱。
customer [Cust-Name] loan [Loan-No] balance is £[Loan-Balance] at branch [Branch] AND customer [Cust-Name] has £[Balance] in account [Acc-No] at branch [Branch]
我們得到代數替換:
- 每聲明其表/關係
- 每一個和⋈表/關係報表(自然連接)
- 表/關係語句的每個OR(它們必須具有相同的列/ attributes)通過∪(工會)
- 每而不是語句(必須由σ由\具有相同的列/屬性)(差)
- EVERY和條件條件
- 每一個保持通過名字π保持名稱保持(投影)(和π刪除名稱保持)
- 每列/屬性由ρ在給定的聲明重命名(更名)。
∩(交叉點)和x(產品)是⋈的特殊情況下(兩 兩側∩相同的列/屬性以及x爲沒有共享 列/屬性)。
(ρ Loan-Balance/Balance Loan) ⋈ Deposit
相關問題
- 1. 自聯接,交叉聯接和分組
- 2. 關係代數 - 具有兩個同名的屬性的交叉產品
- 3. 關係代數聯合,聯接和相交
- 4. 學說數據庫關係,如何關聯產品和產品屬性
- 5. 關係代數自然連接
- 6. matlab - 交叉產品錯誤
- 7. 交叉表比較,產品
- 8. MapReduce中的交叉產品
- 9. 與Einsums的交叉產品
- 10. TinyOs中的交叉產品?
- 11. z3中的交叉產品
- 12. 產品和類別關係
- 13. 如何左聯接和右聯接在關係代數
- 14. 自豬交叉聯接被忽略
- 15. 將來自羣組產品的所有簡單產品交叉銷售。可能?
- 16. 自動交付產品代碼?
- 17. 數據庫交叉表關聯邏輯
- 18. Scala中的2套產品的交叉產品
- 19. MySQL交叉參考不同的產品
- 20. 兩個列表的交叉產品
- 21. SQL交叉聯接空值
- 22. SQL交叉聯接查詢
- 23. 的SQL Server交叉聯接
- 24. 對稱交叉聯接
- 25. 關係代數自然連接數據庫
- 26. 獲取關聯產品
- 27. 交叉的兩個關係
- 28. 零件和產品的關係模式
- 29. Oracle自然聯接和計數(1)
- 30. 關係代數:自然連接與NULL值
請給您正在使用的realtional代數的版本的參考。或者描述關係的各個部分以及如何調用運營商。 – philipxy
你谷歌你的(大概是合適的)標題,即'關係代數交叉產品和自然加入網站:stackoverflow.com'? – philipxy