MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
2.3.3. Phép kết nối hai quan hệ (Join)
Giả sử có 2 quan hệ R(U), U= (A1 ...An) và S(V), V= (B1... Bm). t = (a1, a2, ..., an) là một bộ giá trị của R và u = (b1, b2, ..., bm) là một bộ giá trị của S. Gọi v là bộ ghép nối u vào t (hay bộ giá trị t và u được "xếp cạnh nhau" để tạo thành bộ giá trị mới v) được định nghĩa như sau: v = (t, u) = (a1, a2, ..., an, b1, b2, ..., bm).
A U và B V là hai thuộc tính có thể so sánh được.
Gọi là một trong các phép toán so sánh { <, <=, >, >=, =, }.
Phép kết nối hai quan hệ (có thể nói tắt là phép kết) R với S trên các thuộc tính A và B với phép so sánh , với giả thiết là giá trị cột R[A] có thể so sánh được (qua phép so sánh ) với mỗi giá trị của cột R[B], được định nghĩa qua:
R S = { v = (t, u) | t R , u S và t.A u.B} Hoặc: R S = (R x S) : (A B).
Phép kết nối 2 quan hệ R và S có thể xem như được thực hiện qua 2 bước: Bước 1: Thực hiện tích Đề-các hai quan hệ R và S.
Bước 2: Chọn các bộ giá trị thỏa mãn điều kiện A B. AθB
Ngữ nghĩa: Định nghĩa trên cho ta kết quả của phép kết nối hai quan hệ R và S
với phép so sánh trên 2 thuộc tính A và B là một quan hệ mới, Đó là kết quả cuối cùng của phép toán quan hệ (phép Chọn) trên quan hệ kết quả của phép toán tập hợp (tích Đề-các).
Nếu là phép toán so sánh bằng nhau (=) thì ta gọi đó là phép kết nối bằng (Equi Join). Nếu các thuộc tính so sánh là giống tên nhau thì trong kết quả của phép
kết nối sẽ loại bỏ đi một trong 2 thuộc tính đó, khi đó phép kết nối được gọi là phép
kết nối tự nhiên (Natural Join) và sử dụng ký hiệu cho phép toán là " * ".
Ví dụ 2.21: Cho quan hệ R và S R A B C S C D E R S = Q A B C C D E 1 2 3 2 3 1 1 2 3 2 3 1 4 5 6 6 4 3 4 5 6 2 3 1 7 8 9 9 3 5 4 5 6 6 4 3 7 8 9 2 3 1 7 8 9 6 4 3 7 8 9 9 3 5 Kết quả phép kết nối tự nhiên của 2 quan hệ R và S là quan hệ Q‟ với các bộ giá trị như sau:
R * S = Q‟ A B C D E
4 5 6 4 3
7 8 9 3 5