You are on page 1of 10

Bài 2.

Các phép toán đại số quan hệ


- Mục đích, yêu cầu: Cung cấp cho sinh viên kiến thức về khái niệm đại số quan hệ
và các phép toán đại số quan hệ
- Hình thức tổ chức dạy học: Lý thuyết, tự học
- Thời gian: Lý thuyết( trên lớp: 2; online: 2) Tự học, tự nghiên cứu: 8
- Nội dung chính:
1. Khái niệm về đại số quan hệ
Ví dụ cho hệ CSDL với các dữ liệu sau:
S S# SNAME STATUS CITY SP S# P# QTY
S1 Hùng 20 Hà nội S1 P1 300
S2 Lan 10 Hà tây S1 P2 200
S3 Lan 30 Hà tây S1 P3 400
S2 P1 300
S2 P2 400
S3 P2 200

P P# PNAME COLOR WEIGHT CITY


P1 A Đỏ 12 Hà nội
P2 B Xanh 17 Hà tây
P3 C Vàng 17 TBình
P4 C Đỏ 14 Hà nội

Yêu cầu
Tìm địa chỉ của hãng có số hiệu là S1. Câu trả lời là 'Hà nội' chính xác hơn câu trả lời là
một bảng (một quan hệ) có một hàng và một cột. Cột là thuộc tính CITY và hàng là giá trị
duy nhất của cột 'Hà nội'.
Kết quả CITY
Hà nội

-Tìm số hiệu hãng và tình trạng các hãng cung ứng ở 'Hà Tây': Kết quả là một bảng có hai
hàng và hai cột
S S# SNAME STATUS CITY → Kết quả S# STATUS
S2 Lan 10 Hà tây S3 30
S3 Lan 30 Hà tây

-Tìm tên mặt hàng do hãng S1 cung ứng


SP S# P# P P# PNAME → Kết quả PNAME
S1 P1 P1 A A
S1 P2 P2 B B
S1 P3 P3 C C

Kết quả lại là một bảng. Nhưng khi xây dựng bảng này phải duyệt qua hai bảng. Kết quả
là tập con của một bảng.

-Tìm số hiệu mặt hàng của mỗi mặt hàng được cung ứng và địa chỉ của các hãng cung ứng
mặt hàng đó.
SP S# P# S S# CITY → Kết quả P# CITY
S1 P1 S1 Hà nội P1 Hà nội
S1 P2 S2 Hà tây P2 Hà nội
S1 P3 S3 Hà tây P3 Hà nội
S2 P1 P1 Hà tây
S2 P2 P2 Hà tây
S3 P2 P2 Hà tây

Phải duyệt qua hai bảng, các giá trị trong bảng kết quả được thực sự rút ra từ hai bảng.
Hàng thừa, trùng lặp bị bỏ đi (hàng cuối cùng) vì trong quan hệ không có hai bộ trùng nhau.
Nhận xét:
⚫ Để thực hiện được các công việc trên phải thực hiện một tập các phép toán. Ví dụ: để
tìm các bộ trên một bảng có thể thực hiện phép toán chọn, để tìm kiếm trên hai bảng trước
tiên phải dùng phép nối hai bảng thành một sau đó mới có thể thực hiện công việc tìm
kiếm...
⚫ Vì kết quả của các phép toán trên dữ liệu quan hệ đều là các bảng (các quan hệ) nên tập
hợp các phép toán trên một tập các quan hệ (CSDL) hình thành đại số quan hệ. mỗi phép
toán của đại số quan hệ lấy một hoặc hai quan hệ làm toán hạng của nó và sản sinh ra một
quan hệ mới.
Hai quan hệ r và s được gọi là khả hợp nếu chúng được xác định trên cùng một tập các
miền trị (Có nghĩa là chúng được xác định trên cùng một tập các thuộc tính).
1. Phép hợp
Phép hợp của hai quan hệ khả hợp r U s = {t / t thuộc r hoặc t thuộc s}
Ví dụ 1:
r ( A, B , C ) s( A, B , C ) r U s ( A, B , C )
a1 b1 c1 a1 b1 c1 a1 b1 c1
a2 b2 c2 a1 b2 c2 a2 b2 c2
a1 b2 c2
Phép hợp của hai quan hệ là phép gộp các bộ của hai bảng của một quan hệ thành một
bảng và bỏ đi các bộ trùng.
Ví dụ 2: Cho hai bảng NV1 và NV2. Gộp nhân viên từ hai bảng vào thành một bảng
NV1 Mã NV Tên NV Mã Ph
NV001 Hoàng P001
NV002 Thiện P002

NV2 Mã NV Tên NV Mã Ph
NV003 Huy P001
NV002 Thiện P002
NV004 Thiện P003
Quan hệ kết quả:

NV1 U NV2 =NV3 Mã NV Tên NV Mã Ph

NV001 Hoàng P001

NV002 Thiện P002

NV003 Huy P001

Phép hợp thường dùng để bổ sung các bộ vào quan hệ


2. Phép giao
Phép giao của hai quan hệ khả hợp r ∩ s ={t / t thuộc r và t thuộc s}
Ví dụ 1: r ∩ s ( A, B , C )
a1 b1 c1
Phép giao của hai quan hệ là lấy ra các bộ cùng có mặt ở cả hai bảng quan hệ.
Ví dụ 2:
NV1 ∩ NV2 = NV4 Mã NV Tên NV Mã Ph
NV002 Thiện P002

3. Phép trừ
Phép trừ của hai quan hệ khả hợp r - s = {t / t thuộc r và t không thuộc s}
Ví dụ1: r - s ( A, B , C )
a2 b2 c2
Phép trừ của hai quan hệ A và B là lấy các bộ có trong bảng A mà không có trong bảng
B. Phép trừ thường dùng để loại bỏ các bộ ra khỏi quan hệ. Phép trừ không có tính giao
hoán.
Ví dụ 2:
NV1 - NV2 Mã NV Tên NV Mã Ph
NV001 Hoàng P001

NV2 - NV1 Mã NV Tên NV Mã Ph


NV003 Huy P001
NV004 Thiện P003

4. Phép tích đề các


Cho quan hệ r(R), R={A1,A2,...,An} và quan hệ s(U), U={B1,B2,...,Bm}

Tích đề các r x s ={t=(a1,a2,...,an, b1,b2,...,bm) / a1,a2,...,an Єr và b1,b2,...,bm Єs}

Ví dụ:
r (A , B ); s(C , D) ; r x s = k (A, B, C, D)
a1 1 1 d1 a1 1 1 d1
a2 2 2 d2 a1 1 2 d2
a3 3 a2 2 1 d1
a2 2 2 d2
a3 3 1 d1
a3 3 2 d2
Chú ý: Bậc k = bậc r + bậc s , lực lượng k = lực lượng r x lực lượng s
Phép tích đề các là phép toán đắt nhất trong các phép toán của đại số quan hệ.
5. Phép chọn (phép cắt ngang quan hệ)
Phép chọn là phép toán lọc ra một tập con các bộ của quan hệ đã cho theo biểu thức chọn
F.
⚫ Biểu thức chọn F là một tổ hợp logic các toán hạng, mỗi toán hạng là một phép so sánh
đơn giản giữa hai thuộc tính hoặc giữa một thuộc tính và một giá trị hằng.
⚫ Phép toán logic: ^(và), V(hoặc), ơ (phủ định).
⚫ Phép toán so sánh: <, >, =, >=, <=, <>
Phép chọn trên quan hệ r với biểu thức chọn F (Phép chọn tác động trên một quan hệ nên
là phép toán một ngôi)
σF(r) = { t thuộc r / F(t) đúng}
Ví dụ1: r (A ,B) ; F1 = (A=a1) V (B=3) → σF1(r) = r' (A ,B)
a1 1 a1 1
a2 2 a3 3
a3 3
F2 =(A=a1) ^ (B=2) → σF2(r) = r''(A,B) = Ø.
Bậc r = bậc r' ; lực lượng của r >= lực lượng của r'
Phép chọn trên quan hệ là lấy ra các dòng của bảng quan hệ thoả mãn một điều kiện nào
đó trên tập các cột thuộc tính.
Ví dụ 2: Chọn trên quan hệ NV3 các nhân viên thuộc phòng có Mã ph =P001
σFMã Ph = ‘P001’(NV3) Mã NV Tên NV Mã Ph
NV001 Hoàng P001
NV003 Huy P001

6. Phép chiếu (phép cắt dọc quan hệ)


Phép chiếu là phép toán loại bỏ đi một số thuộc tính và chỉ giữ lại một số thuộc tính được
chỉ ra của một quan hệ
Cho quan hệ r(R), X là tập con của tập thuộc tính R. Phép chiếu của quan hệ r trên X: ΠX(r)
= { t[X]/ thuộc r}; t[X] là bộ t lấy trên tập thuộc tính X.
Ví dụ 1: Cho r(A,B) như ví dụ 1 mục 3.1 chương này , X={A};
ΠX(r) = k(A)

a1
a2
a3
Bậc của r > bậc của k; lực lượng của r > lực lượng của k
Phép chiếu trên quan hệ là lấy một số cột thuộc tính nào đó của bảng quan hệ.
Ví dụ 2: Lấy danh sách mã NV của quan hệ NV3
ΠMa NV(NV3) Mã NV

NV001
NV002
NV003

7. Phép kết nối


7.1 Phép kết nối thường
Cho hai quan hệ r(R), R={A1,A2,...,An} và quan hệ s(U), U={B1,B2,...,Bm}.

Phép xếp cạnh nhau: cho hai bộ d = (d1,d2,...,dn) và e = (e1,e2,...,em) phép xếp cạnh nhau
của d và e là: (d ^ e) = (d1, d2, ..., dn, e1, e2, ..., em)

Phép kết nối giữa quan hệ r với thuộc tính A và quan hệ s với thuộc tính B với một phép
so sánh θ là: r  s = {a^b / a  r, b  s vµ a(A) θ b(B)}
(AθB)
Ví dụ: Xét quan hệ r và s trong Ví dụ mục 2.4 chương này

r  s = k' (A, B, C, D)
(B>=C) a1 1 1 d1
a1 2 1 d1
a2 2 2 d2
a3 3 1 d1
a3 3 2 d2
Lực lượng của phép kết nối k' <= lực lượng của phép tích đề các k.

k' = σB>=C(k) → r  s = σF(r x s)


Chú ý:
⚫ Để phép kết nối có nghĩa, miền trị dom(A) phải so sánh được qua phép so sánh θ với
miền trị dom(B)
⚫ Nếu phép so sánh θ là "=" thì phép kết nối gọi là kết nối bằng.
Ví dụ:

r  s = k' ( A, B, C, D)
(B=C) a1 1 1 d1
a2 2 2 d2
7.2. Phép kết nối tự nhiên
Phép toán kết nối bằng trên những thuộc tính cùng tên của hai quan hệ và sau khi kết nối
thì cắt bỏ đi một thuộc tính cùng tên bằng phép chiếu của đại số quan hệ được gọi là phép
kết nối tự nhiên ký hiệu *.
Ví dụ: r(A, B, C) s(C, D, E) r*s = (A, B, C, D, E)
a1 1 1 1 d1 e1 a1 1 1 d1 e1
a2 2 1 2 d2 e2 a2 2 1 d1 e1
a1 2 2 3 d3 e3 a1 2 2 d2 e2
r*s = ΠABCDE( r  s)
C=C
Ví dụ: Cho hai quan hệ NHANVIEN và PHONG tương ứng như sau:
Mã NV Tên NV Mã Ph Mã Ph Tên Ph
NV001 Hoàng P001 P001 Tổ chức
NV002 Thiện P002 P002 Kinh doanh
NV003 Huy P001 P003 Nhân sự
NV004 Thiện P003 P004 Tiếp thị

Kết nối tự nhiên của hai quan hệ là quan hệ sau:


Mã NV Tên NV Mã Ph Tên Ph
NV001 Hoàng P001 Tổ chức
NV002 Thiện P002 Kinh doanh
NV003 Huy P001 Tổ chức
NV004 Thiện P003 Nhân sự

8. Phép chia
Cho r là một quan hệ n- ngôi, s là quan hệ m- ngôi (n>m, s khác rỗng). Phép chia quan
hệ r cho quan hệ s là tập tất cả các n-m bộ tsao cho với mọi bộ u thuộc s thì bộ (t^u)
thuộc r:

r÷s = {t / với mọi u thuộc s thì (t^u) thuộc r}

Ví dụ:
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 e d
b c e f
e d c d
e d e f
a b d e
Chú ý: Cho R(U), S(V) ; U - V = X thì R ÷ S = ΠX(R) - ΠX (( ΠX(R) x S) -R)

Ví dụ với hai quan hệ Mặt hàng và Cung cấp tìm các hãng cung cấp tất cả các mặt hàng

Mặt hàng Mã MH Tên MH Cung cấp Mã NCC Mã MH Tên MH

h1 Đài n1 h1 Đài

h2 TV n1 h2 TV

h3 tủ lạnh n1 h3 Tủ lạnh

n2 h3 Tủ lạnh
Cung cấp ÷ Mặt hàng = n2 h1 Đài

n3 h1 Đài
Mã NCC
n3 h2 TV
n1
n3 h3 Tủ lạnh
n3
n4 h1 Đài

Yêu cầu sinh viên chuẩn bị:


Đọc trước đề cương bài giảng chi tiết và slides bài giảng, xem video bài giảng, làm bài trắc
nghiệm bài 2. Đọc tài liệu tham khảo số [2] chương 3
Tài liệu tham khảo:
[1] Nguyễn Thị Thanh Huyền, Giáo trình cơ sở dữ liệu, NXB Giáo Dục, 2011

You might also like