CHƯƠNG 2. MÔ HÌNH DỮ LIỆU QUAN HỆ
2.3. C ÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ
2.3.1. Các phép toán tập hợp trên quan hệ
Các phép toán này là các phép toán hai ngôi, nghĩa là mỗi phép toán được áp dụng cho hai quan hệ. Khi áp dụng các phép toán này cho CSDL quan hệ, hai quan hệ tham gia vào một trong các phép toán trên phải có kiểu của các bộ như nhau, hay nói cách khác, chúng phải có cùng một cấu trúc. Điều kiện này được gọi là khả hợp. Hai quan hệ R (A1, A2,…, An) và S (B1, B2,.., Bn) được gọi là khả hợp nếu chúng cùng cấp n và DOM (Ai) = DOM (Bi), với 1 ≤ i ≤ n. Điều đó có nghĩa là hai quan hệ có cùng số các thuộc tính và mỗi cặp thuộc tính tương ứng có cùng miền giá trị.
a. Phép hợp (Union)
Định nghĩa 2.9. Hợp của hai quan hệ R và S, được ký hiệu là RS, là một quan hệ Q xác định trên tập thuộc tính U, có cùng thứ tự thuộc tính như trong quan hệ R và S, được định nghĩa như sau:Q = R S = {t / t R hoặc t S }
Hợp của hai quan hệ R và S là một quan hệ có cùng ngôi với R và S với các bộ giá trị bằng gộp các bộ giá trị của cả R và S; những bộ giá trị trùng nhau chỉ được giữ lại một bộ.
Ví dụ 2.13. Cho 2 quan hệ HP1 và HP2 tương ứng với lược đồ quan hệ HOC_PHAN
Quan hệ HP1
MaHP TenHP SoTC HocKy MoTa
173097 Lập trình C nâng cao 02 2
174097 Cơ sở dữ liệu 02 2
174120 Phân tích thiết kế hệ thống 03 06 Quan hệ HP2
50
MaHP TenHP SoTC HocKy MoTa 174065 Lập trình Web 02 6
174097 Cơ sở dữ liệu 02 2 Kết quả phép hợp HP1 và HP2 là: HP1HP2
MaHP TenHP SoTC HocKy MoTa
173097 Lập trình C nâng cao 02 2
174097 Cơ sở dữ liệu 02 2
174120 Phân tích thiết kế hệ thống 03 6
174065 Lập trình Web 02 6
b. Phép giao (Intersection)
Định nghĩa 2.10. Giao của hai quan hệ R và S, được ký hiệu là R ∩ S, là một quan hệ Q xác định trên tập thuộc tính U, có cùng thứ tự thuộc tính như trong R và S, được định nghĩa như sau: Q = R ∩ S = {t/t R và t S}
Giao của hai quan hệ R và S là một quan hệ có cùng ngôi với R và S với các bộ giá trị là các bộ giống nhau của cả hai quan hệ R và S.
Ví dụ 2.14. Kết quả phép giao HP1 và HP2 là: HP1HP2 MaHP TenHP SoTC HocKy MoTa 174097 Cơ sở dữ liệu 02 2
c. Phép trừ quan hệ (Minus).
Định nghĩa 2.11. Hiệu của hai quan hệ R và S, được ký hiệu là R - S, là một quan hệ Q xác định trên tập thuộc tính U, có cùng thứ tự thuộc tính như trong R và S, được định nghĩa như sau:Q = R - S ={t/tR và tS}
Hiệu của hai quan hệ R và S là một quan hệ có cùng ngôi với R và S với các bộ giá trị là các bộ giá trị của R sau khi đã loại bỏ đi các bộ có mặt trong S.
Ví dụ 2.15. Kết quả phép trừ HP1 cho HP2 là: HP1-HP2
MaHP TenHP SoTC HocKy MoTa
173097 Lập trình C nâng cao 02 2 174120 Phân tích thiết kế hệ thống 03 06 Ví dụ 2.16. Kết quả phép trừ HP2 cho HP1 là: HP2-HP1
MaHP TenHP SoTC HocKy MoTa 174065 Lập trình Web 02 6
Các phép toán của các phép toán tập hợp:
+ Phép toán hợp và giao là phép toán giao hoán, nghĩa là:
RS = SR và RS = SR
+ Các phép toán trên cũng có tính chất kết hợp, nghĩa là:
51
R(ST)=(RS)T và R(ST)=(RS)T
+ Các phép toán trừ tập hợp không có tính chất giao hoán, tức là:
R – S ≠ S – R
d. Tích Descartes của hai quan hệ (Cartesian)
Định nghĩa 2.12. Cho R (A1, A2, ..., An) và S (B1, B2, ..., Bm) là hai quan hệ có số bộ giá trị hữu hạn. Tích Descartes của hai quan hệ R và S, được ký hiệu là R x S, là một quan hệ Q xác định trên tập thuộc tính của R và S (với n + m thuộc tính) và được định nghĩa như sau:
Q= RS = {t/t có dạng (a1, a2,..., an, b1, b2 ..., bm) trong đó (a1, a2,..., an)R và (b1, b2,..., bm)S}
Tích Descartes của 2 quan hệ R và S là một quan hệ Q có số ngôi bằng tổng số ngôi của R và S, với các bộ giá trị gồm 2 phần: phần bên trái là một bộ giá trị của R và phần bên phải là một bộ giá trị của S. Như vậy, nếu R có n1 bộ giá trị và S có n2 bộ giá trị, thì Q sẽ có n1 x n2 bộ giá trị.
Phép toán này nếu áp dụng một mình thì không có ý nghĩa. Nó chỉ có lợi khi tiếp theo bằng một phép chọn các giá trị tương thích của các thuộc tính xuất phát từ các quan hệ thành phần. Tích Descartes kết hợp với một phép chọn cho ta một phép kết nối.
Ví dụ 2.17. Cho 2 quan hệ Quan hệ LOP
MaLop TenLop MaKhoa 136103A ĐH CNTT K16 CNTT 146103A ĐH CNTT K17 CNTT 156103A ĐH CNTT K18 CNTT Quan hệ HOC_PHAN
MaHP TenHP SoTC HocKy
173097 Lập trình C nâng cao 02 2 174097 Cơ sở dữ liệu 02 2 Phép tích Đề các của 2 quan hệ LOP x HOC_PHAN là
MaLop TenLop MaKhoa MaHP TenHP SoTC HocKy 136103A ĐH CNTT K16 CNTT 173097 Lập trình C nâng cao 02 2 146103A ĐH CNTT K17 CNTT 174097 Cơ sở dữ liệu 02 2 156103A ĐH CNTT K18 CNTT 173097 Lập trình C nâng cao 02 2 136103A ĐH CNTT K16 CNTT 174097 Cơ sở dữ liệu 02 2 146103A ĐH CNTT K17 CNTT 173097 Lập trình C nâng cao 02 2 156103A ĐH CNTT K18 CNTT 174097 Cơ sở dữ liệu 02 2
52 e. Phép chia (Division)
Định nghĩa 2.13. R là quan hệ n ngụi và S là quan hệ m ngụi (n>m và S ≠ỉ), có m thuộc tính chung (giống nhau về mặt ngữ nghĩa, hoặc các thuộc tính có thể so sánh được) giữa R và S. Phép chia 2 quan hệ R và S, ký hiệu là R÷ S, là một quan hệ Q có n - m ngôi được định nghĩa như sau:Q=R÷ S={t/uS, (t, u)R}
Sử dụng định nghĩa phép tích Descartes, có thể định nghĩa phép chia hình thức hơn như sau:
Định nghĩa 2.14. R÷ S = Q sao cho QS R (với giả thiết thêm là thứ tự thuộc tính của R, S, Q là không quan trọng).
Ví dụ 2.18. Giả sử ta có 2 quan hệ LOP_HOC_PHAN và LOP, trong đó Quan hệ LOP_HOC_PHAN là
MaLop TenLop MaKhoa MaHP TenHP SoTC HocKy 136103A ĐH CNTT K16 CNTT 173097 Lập trình C nâng cao 02 2 146103A ĐH CNTT K17 CNTT 174097 Cơ sở dữ liệu 02 2 156103A ĐH CNTT K18 CNTT 173097 Lập trình C nâng cao 02 2 136103A ĐH CNTT K16 CNTT 174097 Cơ sở dữ liệu 02 2 146103A ĐH CNTT K17 CNTT 173097 Lập trình C nâng cao 02 2 156103A ĐH CNTT K18 CNTT 174097 Cơ sở dữ liệu 02 2
Quan hệ LOP
MaLop TenLop MaKhoa 136103A ĐH CNTT K16 CNTT 146103A ĐH CNTT K17 CNTT 156103A ĐH CNTT K18 CNTT
thì kết quả của phép chia giữa quan hệ LOP_HOC_PHAN và LOP là
MaHP TenHP SoTC HocKy
173097 Lập trình C nâng cao 02 2 174097 Cơ sở dữ liệu 02 2 f. Phép bù của một quan hệ (Complement)
Định nghĩa 2.15. Cho quan hệ R (A1, A2, ..., An) với các miền giá trị của thuộc tính Ai là DOM(Ai). Phép bù của quan hệ R là quan hệ Q xác định trên tập thuộc tính R+, ký hiệu là ˥R, được định nghĩa như sau:
Q=˥R = {t(a1, a2, ..., an) và aiDOM (Ai) i=1.. n/tR}
Nghĩa là, tập tất cả các bộ giá trị có thể có của tích Descartes miền giá trị DOM(Ai) nhưng chưa có mặt trong thể hiện của quan hệ R. Quan hệ bù của một quan hệ có số lượng bộ giá trị là rất lớn, vì vậy, trong thực tế rất ít hệ quản trị CSDL cài đặt phép toán này.