DBMS - Tham gia

Chúng tôi hiểu những lợi ích của việc lấy một tích Descartes của hai quan hệ, cung cấp cho chúng tôi tất cả các bộ giá trị có thể được ghép nối với nhau. Nhưng có thể không khả thi đối với chúng tôi trong một số trường hợp nhất định để lấy một sản phẩm Descartes nơi chúng tôi gặp phải mối quan hệ lớn với hàng nghìn bộ giá trị có một số lượng lớn các thuộc tính.

Joinlà sự kết hợp của tích Descartes sau đó là quá trình lựa chọn. Phép toán Nối ghép hai bộ giá trị từ các quan hệ khác nhau, nếu và chỉ khi một điều kiện nối nhất định được thỏa mãn.

Chúng tôi sẽ mô tả ngắn gọn các kiểu nối khác nhau trong các phần sau.

Theta (θ) Tham gia

Phép nối theta kết hợp các bộ giá trị từ các quan hệ khác nhau miễn là chúng thỏa mãn điều kiện theta. Điều kiện tham gia được biểu thị bằng ký hiệuθ.

Ký hiệu

R1 ⋈θ R2

R1 và R2 là các quan hệ có các thuộc tính (A1, A2, .., An) và (B1, B2, .., Bn) sao cho các thuộc tính không có điểm chung, đó là R1 ∩ R2 = Φ.

Phép nối theta có thể sử dụng tất cả các loại toán tử so sánh.

Sinh viên
SID Tên Std
101 Alex 10
102 Maria 11
Đối tượng
Lớp học Môn học
10 môn Toán
10 Tiếng Anh
11 Âm nhạc
11 Các môn thể thao

Student_Detail -

STUDENT Student.Std = Subject.Class SUBJECT

Student_detail
SID Tên Std Lớp học Môn học
101 Alex 10 10 môn Toán
101 Alex 10 10 Tiếng Anh
102 Maria 11 11 Âm nhạc
102 Maria 11 11 Các môn thể thao

Equijoin

Khi tham gia Theta chỉ sử dụng equalitytoán tử so sánh, nó được cho là tương đương. Ví dụ trên tương ứng với Equijoin.

Tham gia tự nhiên ( )

Phép nối tự nhiên không sử dụng bất kỳ toán tử so sánh nào. Nó không nối theo cách một tích Descartes làm. Chúng ta chỉ có thể thực hiện phép nối tự nhiên nếu có ít nhất một thuộc tính chung tồn tại giữa hai quan hệ. Ngoài ra, các thuộc tính phải có cùng tên và miền.

Phép nối tự nhiên hoạt động trên các thuộc tính khớp đó trong đó giá trị của các thuộc tính trong cả hai quan hệ là như nhau.

Các khóa học
CID Khóa học Dept
CS01 Cơ sở dữ liệu CS
ME01 Cơ học TÔI
EE01 Thiết bị điện tử EE
HoD
Dept Cái đầu
CS Alex
TÔI Maya
EE Mira
Các khóa học ⋈ HoD
Dept CID Khóa học Cái đầu
CS CS01 Cơ sở dữ liệu Alex
TÔI ME01 Cơ học Maya
EE EE01 Thiết bị điện tử Mira

Tham gia bên ngoài

Theta Join, Equijoin và Natural Join được gọi là liên kết bên trong. Một phép nối bên trong chỉ bao gồm những bộ giá trị có các thuộc tính phù hợp và phần còn lại bị loại bỏ trong quan hệ kết quả. Do đó, chúng ta cần sử dụng các phép nối ngoài để bao gồm tất cả các bộ giá trị từ các quan hệ tham gia trong quan hệ kết quả. Có ba loại liên kết ngoài - liên kết ngoài bên trái, liên kết ngoài bên phải và liên kết ngoài đầy đủ.

Tham gia bên ngoài bên trái (R
S)

Tất cả các bộ giá trị từ quan hệ Left, R, được đưa vào quan hệ kết quả. Nếu có các bộ trong R mà không có bất kỳ bộ phù hợp nào trong Quan hệ bên phải S, thì các thuộc tính S của quan hệ kết quả được tạo thành NULL.

Trái
A B
100 Cơ sở dữ liệu
101 Cơ học
102 Thiết bị điện tử
Đúng
A B
100 Alex
102 Maya
104 Mira
Các khóa học
HoD
A B C D
100 Cơ sở dữ liệu 100 Alex
101 Cơ học --- ---
102 Thiết bị điện tử 102 Maya

Tham gia bên ngoài bên phải: (R
S)

Tất cả các bộ giá trị từ quan hệ Right, S, được đưa vào quan hệ kết quả. Nếu có các bộ trong S mà không có bất kỳ bộ phù hợp nào trong R, thì các thuộc tính R của quan hệ kết quả được tạo thành NULL.

Các khóa học
HoD
A B C D
100 Cơ sở dữ liệu 100 Alex
102 Thiết bị điện tử 102 Maya
--- --- 104 Mira

Tham gia đầy đủ bên ngoài: (R
S)

Tất cả các bộ giá trị từ cả hai quan hệ tham gia đều được bao gồm trong quan hệ kết quả. Nếu không có bộ giá trị phù hợp nào cho cả hai quan hệ, các thuộc tính chưa khớp tương ứng của chúng sẽ được đặt thành NULL.

Các khóa học
HoD
A B C D
100 Cơ sở dữ liệu 100 Alex
101 Cơ học --- ---
102 Thiết bị điện tử 102 Maya
--- --- 104 Mira