
- 關係資料庫設計
- DBMS - 資料庫規範化
- DBMS - 資料庫連線
- 儲存和檔案結構
- DBMS - 儲存系統
- DBMS - 檔案結構
- 事務和併發
- DBMS - 事務
- DBMS - 併發控制
- DBMS - 死鎖
- 備份和恢復
- DBMS - 資料備份
- DBMS - 資料恢復
- DBMS 有用資源
- DBMS - 快速指南
- DBMS - 有用資源
- DBMS - 討論
DBMS - 連線
我們瞭解獲取兩個關係的笛卡爾積的好處,它為我們提供了所有配對在一起的可能元組。但在某些情況下,獲取笛卡爾積可能不可行,例如我們遇到具有數千個元組的大型關係,這些元組具有相當多的屬性。
連線是笛卡爾積與選擇過程的組合。當且僅當滿足給定的連線條件時,連線操作才會將來自不同關係的兩個元組配對。
我們將在以下部分簡要描述各種連線型別。
θ 連線
θ 連線組合來自不同關係的元組,前提是它們滿足 θ 條件。連線條件用符號θ表示。
符號
R1 ⋈θ R2
R1 和 R2 是具有屬性 (A1, A2, .., An) 和 (B1, B2,.. ,Bn) 的關係,使得這些屬性之間沒有任何共同點,即 R1 ∩ R2 = Φ。
θ 連線可以使用各種比較運算子。
學生 | ||
---|---|---|
學號 | 姓名 | 年級 |
101 | Alex | 10 |
102 | Maria | 11 |
科目 | |
---|---|
班級 | 科目名稱 |
10 | 數學 |
10 | 英語 |
11 | 音樂 |
11 | 體育 |
學生詳細資訊 -
STUDENT ⋈Student.Std = Subject.Class SUBJECT
學生詳細資訊 | ||||
---|---|---|---|---|
學號 | 姓名 | 年級 | 班級 | 科目名稱 |
101 | Alex | 10 | 10 | 數學 |
101 | Alex | 10 | 10 | 英語 |
102 | Maria | 11 | 11 | 音樂 |
102 | Maria | 11 | 11 | 體育 |
等值連線
當 θ 連線僅使用等號比較運算子時,稱為等值連線。上面的示例對應於等值連線。
自然連線(⋈)
自然連線不使用任何比較運算子。它不像笛卡爾積那樣進行連線。只有當兩個關係之間存在至少一個公共屬性時,我們才能執行自然連線。此外,這些屬性必須具有相同的名稱和域。
自然連線作用於那些匹配的屬性,其中兩個關係中屬性的值相同。
課程 | ||
---|---|---|
課程ID | 課程名稱 | 系別 |
CS01 | 資料庫 | CS |
ME01 | 力學 | ME |
EE01 | 電子學 | EE |
系主任 | |
---|---|
系別 | 主任 |
CS | Alex |
ME | Maya |
EE | Mira |
課程 ⋈ 系主任 | |||
---|---|---|---|
系別 | 課程ID | 課程名稱 | 主任 |
CS | CS01 | 資料庫 | Alex |
ME | ME01 | 力學 | Maya |
EE | EE01 | 電子學 | Mira |
外連線
θ 連線、等值連線和自然連線稱為內連線。內連線僅包含具有匹配屬性的元組,其餘元組在結果關係中被丟棄。因此,我們需要使用外連線將參與關係中的所有元組包含在結果關係中。外連線有三種類型:左外連線、右外連線和全外連線。
左外連線(R
S)
左關係 R 中的所有元組都包含在結果關係中。如果 R 中的元組在右關係 S 中沒有匹配的元組,則結果關係的 S 屬性將設為 NULL。
左 | |
---|---|
A | B |
100 | 資料庫 |
101 | 力學 |
102 | 電子學 |
右 | |
---|---|
A | B |
100 | Alex |
102 | Maya |
104 | Mira |
課程 ![]() |
|||
---|---|---|---|
A | B | C | D |
100 | 資料庫 | 100 | Alex |
101 | 力學 | --- | --- |
102 | 電子學 | 102 | Maya |
右外連線:(R
S)
右關係 S 中的所有元組都包含在結果關係中。如果 S 中的元組在 R 中沒有匹配的元組,則結果關係的 R 屬性將設為 NULL。
課程 ![]() |
|||
---|---|---|---|
A | B | C | D |
100 | 資料庫 | 100 | Alex |
102 | 電子學 | 102 | Maya |
--- | --- | 104 | Mira |
全外連線:(R
S)
兩個參與關係中的所有元組都包含在結果關係中。如果兩個關係都沒有匹配的元組,則它們各自未匹配的屬性將設為 NULL。
課程 ![]() |
|||
---|---|---|---|
A | B | C | D |
100 | 資料庫 | 100 | Alex |
101 | 力學 | --- | --- |
102 | 電子學 | 102 | Maya |
--- | --- | 104 | Mira |