25/05/2018, 08:17

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
0