H-íng dÉn «n tËp CSDL quan hÖ
Tµi liÖu tham kh¶o Trang 4
DẠNG 1: THỰC HIỆN BIỂU THỨC ĐẠI SỐ QUAN HỆ
Đề bài: Cho một số lược đồ quan hệ và một số biểu thức đại số quan hệ. Hãy thực
hiện các biểu thức đại số quan hệ đó.
Kiến thức liên quan:
Trong đại số quan hệ có 8 phép toán chia làm hai nhóm:
- Các phép toán tập hợp: Phép hợp (∪), phép giao (∩), phép trừ (-), phép tích đề
các (x).
- Các phép toán quan hệ: Phép chiếu (∏), phép chọn (δ), phép kết nối ( , * ),
phép chia (÷).
[1]. Phép hợp:
- Chỉ thực hiện trên các quan hệ khả hợp (có cùng tập thuộc tính).
- Phép hợp hai quan hệ khả hợp R và S thực chất là việc gộp các bản ghi trong hai
quan hệ thành 1 quan hệ nhưng các bản ghi trùng nhau thì chỉ giữ lại một bản ghi.
Ví dụ:
R A B C S A B C
a1 b1 1 a1 b1 1
a2 b1 2 a2 b2 3
a1 b2 3 a1 b1 2
a1 b1 2 a3 b3 1
Tính Q = R ∪ S
Các bản ghi trùng nhau được bôi đen. Do đó, khi hợp chúng lại ta phải loại đi các
bản ghi trùng.
Q A B C
a1 b1 1
a2 b1 2
a1 b2 3
các bản ghi của R
a1 b1 2
a2 b2 3
Các bản ghi của S
sau khi đã loại bỏ
các bản ghi trùng
a3 b3 1
[2]. Phép giao:
- Chỉ thực hiện trên hai quan hệ khả hợp.
- Phép giao giữa R và S thực chất là việc chọn ra trong hai quan hệ R và S những
bản ghi trùng nhau.
Ví dụ:
R A B C S A B C
a1 b1 1 a1 b1 1
a2 b1 2 a2 b2 3
a1 b2 3 a1 b1 2
a1 b1 2 a3 b3 1
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
H-íng dÉn «n tËp CSDL quan hÖ
Tµi liÖu tham kh¶o Trang 5
Tính Q = R ∩ S
Q A B C
a1 b1 1
a1 b1 2
[3]. Phép trừ:
- Chỉ thực hiện trên các quan hệ khả hợp.
- Phép trừ R - S thực chất là việc chọn ra các bản ghi chỉ có ở R mà không có ở S.
Ví dụ:
Với hai quan hệ R và S trên, Q = R-S sẽ có dạng:
Q A B C
a2 b1 2
a1 b2 3
[4]. Phép tích đề các:Thực hiện trên 2 quan hệ bất kỳ.
- Phép tích đề các của hai quan hệ R và S thực chất là việc lấy mọi bản ghi của R
"gắn" với mọi bản ghi của S.
- Tập các thuộc tính của bảng quan hệ kết quả là tất cả các thuộc tính của quan hệ
R và các thuộc tính của quan hệ S, xếp theo thứ tự: các thuộc tính của R trước, các thuộc
tính của S sau. Số bản ghi của quan hệ kết quả bằng tích số bản ghi của hai quan hệ (R
và S).
Ví dụ:
R A B C S A D
a1 b1 1 a1 d1
a2 b1 2 a2 d2
3 bản
ghi
a1 b2 3
3 bản
ghi
a1 d3
Tính Q = R x S:
Q A B C A D
a1 b1 1 a1 d1
a1 b1 1 a2 d2
a1 b1 1 a1 d3
a2 b1 2 a1 d1
a2 b1 2 a2 d2
a2 b1 2 a1 d3
a1 b2 3 a1 d1
a1 b2 3 a2 d2
9 bản
ghi
a1 b2 3 a1 d3
[5]. Phép chiếu:
- Là phép cắt dọc quan hệ để lấy ra dữ liệu trên một số thuộc tính của quan hệ. Các
thuộc tính đó tạm gọi là các thuộc tính “cần chiếu”.
- Quan hệ R có tập thuộc tính U, ta cần chiếu ra các thuộc tính X thì X phải là tập
con của U (tức không thể chiếu trên R các thuộc tính mà R không có)
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
H-íng dÉn «n tËp CSDL quan hÖ
Tµi liÖu tham kh¶o Trang 6
- Bảng kết quả có thể xuất hiện các bản ghi trùng nhau. Khi đó, phải loại bỏ các
bản ghi trùng.
Ví dụ:
R A B C
a1 b1 1
a2 b2 2
a1 b1 3
∏
AB
(R) thu được:
[6]. Phép chọn:
- Chọn ra các bản ghi thoả mãn điều kiện chọn.
- Nếu không có bản ghi nào thoả mãn điều kiện chọn thì bảng kết quả thu được là
rỗng ( ∅ ).
- Điều kiện chọn là một biểu thức Logic.
Ví dụ:
R A B C
A1 b1 1
A2 b2 2
A1 b1 3
δ
A=a2 v C =1
(R) thu được:
Q A B C
a1 b1 1
a2 b2 2
[7]. Phép kết nối:
- Phép kết nối giữa hai quan hệ R và S thực chất là việc lấy một bản ghi của R
"gắn" với một bản ghi của S sao cho bản ghi kết quả thoả mãn điều kiện kết nối.
- Điều kiện kết nối có dạng: A θ B trong đó A, B là hai thuộc tính của R hoặc S. θ
là một phép so sánh.
- Phép kết nối như vậy, nói chung gọi là kết nối thường ( ).
Ví dụ:
R A B C S B C D
a1 b1 1 b1 1 d1
a2 b1 2 b2 2 d3
a1 b2 3 b1 3 d2
a1 b1 2 b1 2 d1
Q = R S là việc lấy một bản ghi trong R "gắn" với một bản ghi trong S với
điều kiện bản ghi kết quả phải đảm bảo giá trị trên thuộc tính C của quan hệ R phải nhỏ
Q A B Q A B
a1 b1 a1 b1
a2 b2
→
a2 b2
a1 b1
R.C < S.C
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
H-íng dÉn «n tËp CSDL quan hÖ
Tµi liÖu tham kh¶o Trang 7
hơn giá trị thuộc tính C của S. Thu được:
Q A B C B C D
a1 b1 1 b2 2 d3
a1 b1 1 b1 3 d2
a1 b1 1 b1 2 d1
a2 b1 2 b1 3 d2
a1 b1 2 b1 3 d2
- Kết nối tự nhiên (*) là kết nối bằng (=) trên các thuộc tính cùng tên. Tức phép so
sánh θ là phép so sánh “=”, và 2 quan hệ chỉ kết nối tự nhiên được nếu nó có các thuộc
tính chung.
- Có thể bỏ đi các thuộc tính (cột) trùng nhau sau khi kết nối tự nhiên.
Ví dụ:
Với hai quan hệ R và S ở trên, thì R S = R * S
R A B C S B C D
A1 b1 1 b1 1 d1
A2 b1 2 b2 2 d3
A1 b2 3 b1 3 d2
A1 b1 2 b1 2 d1
Thu được:
R*S A B C D
a1 b1 1 d1
a2 b1 2 d1
a1 b1 2 d1
[8]. Phép chia:
- Quan hệ R có tập thuộc tính U và quan hệ S có tập thuộc tính V. Phép chia R ÷ S
chỉ có thể thực hiện được nếu: V là tập con thực sự của U.
- Quan hệ kết quả thu được có tập thuộc tính là U - V.
- Bản ghi t nằm trong quan hệ kết quả nếu và chỉ nếu: với mọi bản ghi t' thuộc S thì
t^t' là một bản ghi thuộc R. (t^t' là phép lấy t xếp cạnh t')
Ví dụ:
R A B C S B C
a1 b1 1 b1 1
a1 b1 2 b1 2
a1 b2 3 b2 3
a2 b1 1
a2 b1 2 Kết quả thu được
a2 b2 3
Q=R÷S
A
a2 b4 1 a1
a3 b1 1 a2
a3 b1 2
Trong đó, U = {A, B, C}; V= {B, C}. Dễ thấy V là tập con của U và U-V = {A}.
R.BC = S.BC
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
H-íng dÉn «n tËp CSDL quan hÖ
Tµi liÖu tham kh¶o Trang 8
Quan hệ kết quả có hai bản ghi có giá trị a1 và a2 là do: nếu lấy a1 hoặc a2 xếp
trước mọi bản ghi trong S ta đều thu được các bản ghi có trong R.
Ví dụ tổng hợp:
Cho các quan hệ R và S sau:
R A B C S B C D
A1 b1 1 b1 1 d1
A2 b1 2 b2 2 d3
A1 b2 3 b1 3 d2
A1 b1 2 b1 2 d1
Hãy tính: P = ∏
AB
(δ
A=a1V B=b1
(R*S))
B1: Tính R1 = R*S
R1 A B C D
a1 b1 1 d1
a2 b1 2 d1
a1 b1 2 d1
B2: Tính R2 = δ
A=a1V B=b1
(R1)
R2 A B C D
a1 b1 1 d1
a2 b1 2 d1
a1 b1 2 d1
B3: Tính P = ∏
AB
(R2)
P A B
a1 b1
a2 b1
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.