Ngôn ngữ đại số quan hệ
là ngôn ngữ biểu diễn câu hỏi về các quan hệ. Do các cách biểu diễn khác nhau nên trong tài liệu này, ngôn ngữ đại số quan hệ được chia làm 3 nhóm: Các phép toán tập hợp - các phép toán này được biểu diễn như các phép toán trên ...
là ngôn ngữ biểu diễn câu hỏi về các quan hệ.
Do các cách biểu diễn khác nhau nên trong tài liệu này, ngôn ngữ đại số quan hệ được chia làm 3 nhóm: Các phép toán tập hợp - các phép toán này được biểu diễn như các phép toán trên tập hợp, các phép toán quan hệ và các phép toán khác liên quan chủ yếu đến phép kết nối.
Sáu phép toán cơ bản trên tập hợp được áp dụng trên tập các bộ giá trị của các quan hệ, đó là: Hợp (Union), Hiệu (Minus), Giao (Intersection), Tích Đề-các (Cartesian), phép chia (Division) và phép bù (Complement).
Giả thiết: U = { A1, A2, A3, ... An } là tập các thuộc tính.
R và S là 2 quan hệ được định nghĩa trên U có cùng thứ tự của các thuộc tính. Và ở đây chúng ta luôn luôn giả thiết là R và S có số lượng hữu hạn các bộ giá trị.
Phép hợp 2 quan hệ (Union).
Hợp 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 quan hệ R và S, được định nghĩa như sau:
Q = R S = { t / t Ỵ R hoặc t Ỵ S }
Nói một cách nôm na, hợp của 2 quan hệ R và S là một quan hệ có cùng ngôi với quan hệ 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 1 bộ.
Ví dụ 5.2.1:
Quan hệ ĐơnvịA có các bộ giá trị sau:
MãSố | Họ-tên | Phái | Chức-danh | Lương | MãĐV |
100 | Nguyễn Văn Nam | Nam | Giám đốc | 2.500.000 | 10 |
101 | Hoàng Thị Xuân | Nữ | Kế toán trưởng | 1.700.000 | 10 |
103 | Đặng Ngọc Chiến | Nữ | Thư ký | 1.000.000 | 10 |
105 | Phan Kỳ Nhân | Nam | Lái xe | 700.000 | 10 |
Quan hệ ĐơnvịB có các bộ giá trị sau:
MãSố | Họ-tên | Phái | Chức-danh | Lương | MãĐV |
210 | Nguyễn Thị Cao | Nữ | Trưởng phòng | 1.200.000 | 30 |
101 | Hoàng Thị Xuân | Nữ | Kế toán trưởng | 1.700.000 | 10 |
221 | Đỗ Hữu Ngọc | Nam | Phó phòng | 1.000.000 | 30 |
233 | Hoàng Thao | Nam | Chuyên viên | 1.000.000 | 30 |
Hợp của hai quan hệ trên cho kết quả là quan hệ NV-CTy có 7 bộ giá trị sau:
MãSố | Họ-tên | Phái | Chức-danh | Lương | MãĐV |
100 | Nguyễn Văn Nam | Nam | Giám đốc | 2.500.000 | 10 |
101 | Hoàng Thị Xuân | Nữ | Kế toán trưởng | 1.700.000 | 10 |
103 | Đặng Ngọc Chiến | Nữ | Thư ký | 1.000.000 | 10 |
105 | Phan Kỳ Nhân | Nam | Lái xe | 700.000 | 10 |
210 | Nguyễn Thị Cao | Nữ | Trưởng phòng | 1.200.000 | 30 |
221 | Đỗ Hữu Ngọc | Nam | Phó phòng | 1.000.000 | 30 |
233 | Hoàng Thao | Nam | Chuyên viên | 1.000.000 | 30 |
Bộ giá trị có mã số nhân viên là 101 xuất hiện 2 lần trong 2 quan hệ ĐơnvịA và ĐơnvịB, nhưng trong quan hệ NV-Cty bộ này chỉ được giữ lại 1 lần, do đó chỉ còn 7 bộ giá trị.
Phép trừ hai quan hệ (Minus).
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 quan hệ R và S, được định nghĩa như sau:
Q = R - S = { t / t Ỵ R và t S }
Nói một cách nôm na, hiệu của 2 quan hệ R và S là một quan hệ có cùng ngôi với quan hệ 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 quan hệ S.
Ví dụ 5.2.2:
Với hai quan hệ như trên, hiệu của ĐơnvịA và ĐơnvịB là quan hệ NV-CtyA với các bộ sau:
MãSố | Họ-tên | Phái | Chức-danh | Lương | MãĐV |
100 | Nguyễn Văn Nam | Nam | Giám đốc | 2.500.000 | 10 |
103 | Đặng Ngọc Chiến | Nữ | Thư ký | 1.000.000 | 10 |
105 | Phan Kỳ Nhân | Nam | Lái xe | 700.000 | 10 |
Giao của 2 quan hệ (Intersection).
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 quan hệ R và S, được định nghĩa như sau:
Q = R Ç S = { t / t Ỵ R và t Ỵ S }
Nói một cách nôm na, giao của 2 quan hệ R và S là một quan hệ có cùng ngôi với quan hệ 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ụ 5.2.3:
Với hai quan hệ như trên, hiệu của ĐơnvịA và ĐơnvịB là quan hệ NV-CtyA với các bộ sau:
MãSố | Họ-tên | Phái | Chức-danh | Lương | MãĐV |
101 | Hoàng Thị Xuân | Nữ | Kế toán trưởng | 1700.000 | 10 |
Tích Đề-các của 2 quan hệ (Cartesian).
R (A1, A2, ..., An) và S (B1, B2, ..., Bm) là hai quan hệ có số bộ giá trị hữu hạn. Tích Đề-các 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 = R x S = { t / t có dạng (a1, a2, ..., an, b1, b2, ..., bm) trong đó (a1, a2, ..., an) Ỵ R và (b1, b2, ..., bm) Ỵ S }
Nói một cách nôm na, tích Đề-các 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ị.
Ví dụ 5.2.4:
R (A, B, C) R x S = Q (A, B, C, D, E, F)
a1, b1 c1 a1 b1 c1 d1 e1 f1
a2, b2 c2 a1 b1 c1 d2 e2 f2
a3, b3 c3 a2 b2 c2 d1 e1 f1
và S (D, E, F) a2 b2 c2 d2 e2 f2
d1 e1 f1 a3 b3 c3 d1 e1 f1
d2 e2 f2 a3 b3 c3 d2 e2 f2
Phép chia hai quan hệ (Division).
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 / sc: " uỴ S, (t,u) Ỵ R }
Sử dụng định nghĩa phép tích Đề-các, có thể định nghĩa phép chia hình thức hơn như sau:
R¸ S = Q sao cho Q x S Í 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ụ 5.2.5:
R (A, B, C, D) S (C, D) R¸ S= (A, B)
a b c d c d a b
a b e f e f c d
b c e f
c d c d
c d e f
a b d e
Ví dụ 5.2.6: (TS. Đồng Thị Bích Thủy)
Cho quan hệ về khả năng lái các loại máy bay của các phi công:
KHẢ-NĂNG (Số-hiệu-phi-công, Số-hiệu-máy-bay)
Số-hiệu-phi-công | Số-hiệu-máy-bay |
32 | 102 |
30 | 101 |
30 | 103 |
32 | 103 |
33 | 100 |
30 | 102 |
31 | 102 |
30 | 100 |
31 | 100 |
Câu hỏi: Cho biết các phi công có khả năng lái được cả 3 loại máy bay 100, 101, và 103 ?
Trả lời: Đó là thương của phép chia quan hệ KHẢ-NĂNG cho quan hệ MÁY-BAY (Số-hiệu-máy-bay):
100 |
101 |
103 |
Và kết quả là quan hệ PHI-CÔNG (Số-hiệu-phi-công) có 1 bộ giá trị (30).
Phép bù của một quan hệ (Complement).
Cho quan hệ R (A1, A2, ..., An) với các miền giá trị của thuộc tính Ai là MGT(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à ai Ỵ MGT(Ai) " i=1.. n / t R }
Nghĩa là tập tất cả các bộ giá trị có thể có của tích Đề-các miền giá trị MGT(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.
Ví dụ 5.2.7:
Quan hệ CUNG-CẤP (Mã-NCC, Hàng-hóa) với Mã-NCC = { S1, S2, S3 } và các Hàng-hóa cung cấp là { Đinh, Ốc, Vít }
Mã-NCC | Hàng-hóa |
S1 | Đinh |
S1 | Vít |
S2 | Ốc |
S2 | Đinh |
S3 | Vít |
Quan hệ bù của quan hệ CUNG-CẤP có các bộ giá trị sau:
Mã-NCC | Hàng-hóa |
S1 | Ốc |
S2 | Vít |
S3 | Ốc |
S3 | Đinh |