Professional Documents
Culture Documents
Bài 2. de Cuong Bai Giang
Bài 2. de Cuong Bai Giang
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
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ả:
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
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
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
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.
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ị
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:
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
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