關係代數是以關係為運算物件的一組高階運算的集合。由於關係定義為屬性個數相同的元組的集合,因此集合代數的操作就可以引入到關係代數中。關係代數中的操作可以分為兩類:傳統的關係操作,並、差、交、笛卡爾積(乘)、笛卡爾積的逆運算(除);擴充的關係操作,對關係進行垂直分割(投影)、水平分割(選擇)、關係的結合(連線、自然連線)等。
五個關係代數操作分別是:並、差、笛卡爾積、投影和選擇。
它們組成了關係代數完備的操作集。例子,分析下面兩個關係:
關係代數操作的結果
(a)r∪s 並 (b)r-s 差 (c)r×s 笛卡爾積 (d)πc,a(r) 投影 (e)σb>』4』 (r) 選擇
說明:笛卡爾積,若r有m個元組,s有n個元組,則r×s有m×n個元組。投影,c和a為屬性名,說明要選擇的列。選擇b>'4',即選擇語句的條件,對關係做水平分割,選擇符合條件的元組。
連線是從關係r和s的笛卡爾積中選取屬性值滿足某乙個操作的元組。
下面的例子同σ2=4 (r×s)。
在關係代數運算中,把由五個基本操作經過有限次復合的式子稱為關係代數表示式。這種表示式的運算結果仍是乙個關係。我們可以用關係代數表示式表示各種資料查詢操作。
【例4.5】對於下面的教學資料庫中的四個關係,為方便起見,其名稱簡化為t、c、s和sc:
下面用關係代數表示式表達每個查詢語句
1)檢索學習課程號為c2課程的學生學號和姓名
由於這個查詢涉及到兩個關係s與sc,因此先要對這兩個關係進行自然連線操作,然後再執行選擇和投影操作。
SQL 交集,差集,並集,笛卡爾積
1 交集 join 1 inner join 其處理結果與等值 自然連線相同 如mssql mssql 中 inner join 連線需要 on connection條件 否則會報錯,mysql 不會,其結果等於cross join select from major m inner join db...
SQL 交集 差集 並集 笛卡爾積 應用例項
一 交集 join 1 inner join 其處理結果與等值 自然連線相同 mssql mssql 中 inner join 連線需要 on connection條件 否則會報錯,mysql 不會,其結果等於cross join select from major m inner join dbo...
Mysql資料庫多表聯查出現笛卡爾積問題
以上兩位大佬說明什麼是笛卡爾積及其解決辦法,我遇到的情況是這樣的 sql語句 select from a inner join b on a.id b.id 這樣看確實沒問題,但是查詢之後還是不行,後發現,a表和b表的字段資料型別不一致!我的a表id為varchar b表id為int,查詢後b表in...