You are on page 1of 39

Đại số quan hệ

™Giới thiệu
™Đại số quan hệ
™Phép toán tập hợp
™Phép chiếu
p chọn
™Phép ọ
™Phép tích Cartesian
™Phép nối: Theta join,
join Equi join,
join Natural join
™Phép chia
™Các phép toán khác
- 58 -
Nhận xét
™Tập các phép toán σ , π , ×, −, ∪ được gọi là tập
đầy đủ các phép toán đại số quan hệ
- Các
Cá phép
hé toán
t á cóó thể biển
biể diễn
diễ qua chúng

™Chúng ta cùng xem xét các phép nối sau đây,


mặc dù chúng không cung cấp thêm sức mạnh
nào cho đại số quan hệ - nhưng chúng là các
câu lệnh truy vấn đã được đơn giản hóa và hay
được sử dụng.
ọ kỹ
™Đọc ỹ các lưu ý về điều kiện
ệ sử dụng
ụ g các p
phép
p
nối.

- 59 -
Phép nối
™Với θ là phép so sánh ≠, =, <, >, ≤, ≥ , ta có định
nghĩa phép nối.
™Cho r và
™Ch à s là hai
h i quan hệ tương
t ứ
ứng t ê các
trên á
lược đồ rời nhau R và S
™Phép kết nối của các quan hệ r và ss, ký hiệu: r |><|iθ j s
là một quan hệ trên R ∪ S gồm những bộ thuộc tích
Đềcác của r và s sao cho thành phần thứ i của quan
hệ r có liên hệ θ với thành phần thứ j của quan hệ s
™Vậy kết nối θ: r |><|iθ j s là chọn trong r×s các
bộ mà các thành phần thứ i, j của các quan hệ r,
s tương ứng thỏa mãn iθj, tức là
r |><|iθ j s = {t ∈ r × s : t (θ )}
Lưu ý: R ∪ S ở đây ký hiệu là lược đồ quan hệ tạo bởi các thuộc tính của R hợp - 60 -
với các thuộc tính của S.
Phép nối – Một cách định nghĩa khác
ợc dùng để tổ hợp 2 bộ có liên quan
™Được
™Đ q an từ 2 quan
q an
hệ thành 1 bộ
™Ký hiệu R |><| S
R ( A1 , A2 ,..., An ) |><| S ( B1 , B2 ,..., Bm )
™Kết quảả củaủ phép
hé nốiối là một
ột quan hệ Q
- Có n+m thuộc tính Q ( A1 , A2 ,..., An , B1 , B2 ,..., Bm )
- Mỗi bộ của Q là tổ hợp của 2 bộ trong R và S,
thỏa mãn một số điều kiện nối nào đó
• Có dạng Ai θB j hoặc iθj
• Ai là thuộc tính của ủ R, Bj là thuộc tính củaủ S
• Ai và Bj có cùng miền giá trị
• i,i j là số thứ tự của thuộc tính trên các quan
hệ R và S tương ứng
• θ là phép so sánh ≠, =, <, >, ≤, ≥
Phân loại phép nối
™Nối theta (theta join) là phép nối có điều kiện
- Ký hiệu R  C S
- C gọii là điều
điề kiện
kiệ nốiối trên
t ê thuộc
th ộ tính
tí h
(Nối theta == Tích đề các + phép chọn ở mục trước)

™Nối bằng (equi join) khi C là điều kiện so sánh bằng


Lưu ý: Với phép nối theta và nối bằng, yêu cầu R và S không có thuộc tính chung.

™Nối tự nhiên (natural join)


- Ký hiệu R  S là quan hệ trên lược đồ R ∪ S
gồm các phần
g p tử t mà t chiếu lên R là phần
p tử
thuộc r còn chiếu của t lên S là phần tử của s
- Vậy r  s = {t : t.R ∈ r , t.S ∈ s}
Lưu ý: Với phép nối tự nhiên,
nhiên thường yêu cầu R và S phải có ít nhất một thuộc
tính chung. Khi thực hiện nối, ta chỉ lấy các bộ trên R và S có cùng giá trị trên
thuộc tính chung này. Nếu R và S không có thuộc tính chung, kết quả trả về là
- 62 -
tích đề các.
Ví dụ phép nối theta

Lưu ý: Với phép nối theta và nối bằng, yêu cầu R và S không có thuộc tính chung.
- 63 -
Ví dụ phép nối theta (wikipedia)
™Giả sử có 2 quan hệ xe(car) và thuyền(boat), giả
sử 1 khách hàng muốn mua cả xe và thuyền
nhưng
h khô
không muốn
ố tiêu
tiê nhiền
hiề tiền
tiề vào
à thuyền
th ề
hơn xe.

Lưu ý: Với phép nối theta và nối bằng, yêu cầu R và S không có thuộc tính chung.
- 64 -
Ví dụ phép nối bằng

Lưu ý: Với phép nối theta và nối bằng, yêu cầu R và S không có thuộc tính chung.
- 65 -
Ví dụ phép nối tự nhiên

Lưu ý: Với phép nối tự nhiên,


nhiên thường yêu cầu R và S phải có ít nhất một thuộc
tính chung. Khi thực hiện nối, ta chỉ khớp các bộ trên R và S có cùng giá trị trên
thuộc tính chung này. Nếu R và S không có thuộc tính chung, kết quả trả về là
- 66 -
tích đề các.
Phép nối nửa
™Cho các quan hệ r và s trên các lược đồ ồ R và S
tương ứng
™Nối nửa của các quan hệ r và ss, ký hiệu r |>< s
là một quan hệ trên lược đồ R gồm các bộ của r |><| s
chiếu lên R. Tức là
r |>< s = {t : t ∈ (r |><| s ).R}
™Ví dụ:
r s r |>< s
A B C B C D A B C
a b c b c d a b c
d b c b c e d b c
d b f a d f c a d
c a d
Lưu ý: Do nối nửa dựa trên phép nối tự nhiên, yêu cầu R và S phải có ít nhất một
thuộc tính chung. Khi thực hiện nối, ta chỉ khớp các bộ trên R và S có cùng giá trị - 67 -

trên thuộc tính chung này.


Ví dụ 10
™Cho biết nhân viên có lương hơn lương của nhân
viên “Tùng”
- Quan
Q hệ NHANVIEN
hệ:
- Thuộc tính: LUONG

R(L_TUNG) ← π LUONG (σ TENNV='TUNG' (NHANVIEN))


KQ ← NHANVIEN|><|LUONG>L_TUNG R

[Nối theta]

- 68 -
Ví dụ 11
™Với mỗi nhân viên, hãy cho biết thông tin của
phòng ban mà họ đang làm việc
- Quan
Q hệ NHANVIEN,
hệ: NHANVIEN PHONGBAN

[(1) Sử dụng nối tự nhiên; (2) sử dụng nối bằng


Lưu ý điều kiện sử dụng 2 phép nối này]

- 69 -
Ví dụ 12
™Với mỗi phòng ban, hãy cho biết các địa điểm
của phòng ban đó
- Quan
Q hệ PHONGBAN,
hệ: PHONGBAN DDIEM_PHG
DDIEM PHG

- 70 -
Ví dụ 13
™Với mỗi phòng ban, hãy cho biết thông tin của
người trưởng phòng
- Quan
Q hệ PHONGBAN,
hệ: PHONGBAN NHANVIEN

- 71 -
Ví dụ 14
™Cho biết lương cao nhất trong công ty
- Quan hệ: NHANVIEN
- Thuộc
Th ộ tính:
tí h LUONG

- 72 -
Ví dụ 15
™Cho biết phòng ban có cùng địa điểm với phòng 5
- Quan hệ: DDIEM_PHG

- 73 -
Tập đầy đủ các phép toán ĐSQH
™Tập các phép toán σ , π , ×, −, ∪ được gọi là tập
đầy đủ các phép toán đại số quan hệ
- Các
Cá phép
hé toán
t á cóó thể biển
biể diễn
diễ qua chúng

- Ví dụ:

R ∩ S = R ∪ S − (( R − S ) ∪ ( S − R))
R |><|C S = σ C ( R × S )

- 74 -
Đại số quan hệ

™Giới thiệu
™Đại số quan hệ
™Phép toán tập hợp
™Phép chiếu
p chọn
™Phép ọ
™Phép tích Cartesian
™Phép nối: Theta join,
join Equi join,
join Natural join
™Phép chia
™Các phép toán khác
- 75 -
Phép chia
™Cho lược đồ quan hệ R(A1,A2,…,An), S là lược đồ
con của R. Giả sử r,s là các quan hệ trên R, S
t
tương ứ
ứng.

™Phép chia của quan hệ r cho quan hệ s, ký hiệu


là r ÷ s là quan hệ trên lược đồồ R-S gồm
ồ các
phần tử r sao cho mọi phần tử u ∈ s và ghép t
với u ta được phần tử thuộc r.
r
r ÷ s = {t : ∀u ∈ s & < t , u >∈ r}

™Một cách vắn tắt: Kết quả trả về là [các bộ với


các thuộc tính chỉ có trong R] sao cho sự kết hợp
của nó với [các bộ trong S] có mặt trong R
- 76 -
Phép chia – Một cách định nghĩa khác
™Được dùng để lấy ra một số bộ trong quan hệ R
sao cho thỏa mãn với tất cả các bộ trong quan hệ S

™Ký hiệu R ÷ S
- R(Z)
( ) và S(X)
( )
• Z là tập thuộc tính của R, X là tập thuộc tính của
S
• X ⊆Z
™Kết quả của phép chia là một quan hệ T(Y)
- Với Y = Z Z-X
X
- Có t là một của T nếu với mọi bộ tS ∈ S , tồn
tại bộ t R ∈ R thỏa 2 điều kiện
t R (Y ) = t
t R ( X ) = tS ( X ) - 77 -
Ví dụ

- 78 -
Ví dụ
R S R÷S
A B C D E D E
α a α a 1 a 1
α a γ a 1 b 1
α a γ b 1
β a γ a 1
β a γ b 3
γ a γ a 1
γ a γ b 1
γ a β b 1

- 79 -
Ví dụ 16
™Cho biết mã nhân viên tham gia tất cả các đề án
- Quan hệ: PHANCONG, DEAN
- Thuộc
Th ộ tính:
tí h MANV

DA ← π MADA (DEAN)
NV_DEAN ← π MANV,MADA (PHANCONG)
MA_NV ← π MANV (NV_DEAN÷DA)

- 80 -
Ví dụ 17
™Cho biết mã nhân viên tham gia tất cả các đề án
do phòng số 4 phụ trách
- Quan
Q hệ NHANVIEN,
hệ: NHANVIEN PHANCONG,
PHANCONG DEAN
- Thuộc tính: MANV
- Điều kiện: PHONG
PHONG=4 4

P4_DA
_ ← π MADA (σ PHG = 4 ((DEAN))
))
NV_DEAN ← π MANV,MADA (PHANCONG)
MA NV ← π MANV (NV
MA_NV (NV_DEAN÷P4_DA)
DEAN÷P4 DA)

- 81 -
Phép chia
™Biểu diễn phép chia thông qua tập đầy đủ của
các phép toán ĐSQH

T1 ← π γ (R )
T2 ← T1 × S
T3 ← π γ (T2 − R)
T ← T1 − T2

- 82 -
Đại số quan hệ
™Giới thiệu
™Đại số quan hệ
™Phé toán
™Phép t á tập
tậ hợp
h
™Phép chiếu
™Phép chọn
™Phép tích Cartesian
™Phép nối: Theta join, Equi join, Natural join
™Phé chia
™Phép hi
™Các phép toán khác
- Hàm kết hợp (Aggregation function)
- Phép gom nhóm (Grouping)
- Phép kết ngoài (Outer join)
- 83 -
Hàm kết hợp
™Nhận vào tập hợp các giá trị và trả về một giá trị
đơn
- AVG
- MIN
- MAX
- SUM
- COUNT

- 84 -
Ví dụ

A B
SUM(B)=10
1 2 AVG(A)=1.5
3 4 MIN(A)=1
MAX(B)=4
1 2 COUNT(A)=4
1 2

- 85 -
Phép gom nhóm
™Được dùng để phân chia quan hệ thành nhiều
nhóm dựa trên điều kiện gom nhóm nào đó

™Ký hiệu
G1 , G2 ,..., Gn ℑF1 ( A1 ),) F2 ( A2 )),..., Fn ( An ) ( E )
- E là biểu thức đại số quan hệ
- G1 , G2 ,..., Gn các thuộc tính gom nhóm
- F1 , F2 ,..., Fn các hàm
- A1 , A2 ,..., An các thuộc
ộ tính tính toán trong
g hàm F

- 86 -
Ví dụ

R
A B C ℑSUM (C ) ( R)
α 2 7

α 4 7

β 2 3 A ℑSUM (C ) ( R)
β 2 10

- 87 -
Ví dụ 18
™Tính số lượng nhân viên và lương trung bình của
cả công ty

ℑCOUNT(),AVERAGE(LUONG) (NHANVIEN)

- 88 -
Ví dụ 19
™Tính số lượng nhân viên và lương trung bình của
từng phòng ban

MAPHG ℑCOUNT(),AVERAGE(LUONG) (NHANVIEN)

- 89 -
Phép nối ngoài
™Mở rộng phép nối ngoài để tránh mất mát thông tin
- Thực hiện phép nối
- Lấy
Lấ thêm
thê các
á bộ không
khô thỏa
thỏ điều
điề kiện
kiệ nối
ối

™Có 3 hình thức nối



- Nối ngoài trái (chỉ các bộ bên trái được điền null)
- Nối ngoài phải (chỉ các bộ bên phải được điền null)
- Nối ngoài đầy đủ (cả 2 phía được điền null)

Đôi khi còn được ký hiệu

- 90 -
Phép nối ngoài
™Ví dụ:

- 91 -
VD Phép nối ngoài vs nối tự nhiên
™Cho 2 quan hệ instructor1 và teaches1

ố tự nhiên
™Nối

™Nối ngoài trái

™Nối ngoài đầy đủ


Ví dụ 20
™Cho biết tên nhân viên và tên phòng ban mà họ
phụ trách (nếu có) – tức là nếu không có thì ta để
t ố mục phòng
trống hò ban
b họ h phụh trách!
t á h!
- Quan hệ: NHANVIEN, PHONGBAN
- Thuộc tính: TENNV, TENPH
R1 Å NHANVIEN MANV=TRPHGPHONGBAN

KQ ← π HONV,TENNV,TENPHG (R1 )

- 93 -
Bài tập 1 – Thực hiện các phép toán

T1 T2
P Q R P Q R
10 a 5 10 b 6
15 b 8 25 c 3
25 a 6 10 b 5

T1|><| T1 .P =T2 . AT2


T1|><| T1 .Q =T2 .BT2
T1|><| (T1 .P =T2 . A AND T1 .R =T2 .C )T2
T1 T1 . P =T2 . AT2

T1 T
T1 .Q =T2 . B 2
- 94 -
Bài tập 2
™Cho CSDL COONGTY gồm các lược đồ
- NHANVIEN(MANV, HONV, TENNV, NS, GT, DCHI,
LUONG MANGS,
LUONG, MANGS MADV)
- DONVI(MADV, TENDV, MANQL, NGAY_BD)
- DEAN(MADA, TENDA, DD
DD_DA,
DA, MADV)
- THANNHAN(MANV, TEN_TN, NS, GT, QUANHE)
- NV_DEAN(MANV, MADA, SOGIO) [revised on 09/20]
- DONVI_DD(MADV,
DONVI DD(MADV DD)

- 95 -
Bài tập 2 – Yêu cầu
™Đưa ra tên và địa chỉ của tất cả các nhân viên làm
việc cho đơn vị.
™Với mỗi dự án có địa điểm hà Nôi,Nôi liệt kê mã số dự
án, mã số của đơn vị kiểm soát, tên, địa chỉ và ngày
sinh của người quản lý đơn vị.
™Tìm tên của nhân viên làm việc trên tấtấ cả các dự án
do đơn vị có mã số 5 kiểm soát.
ạ ra một
™Tạo ộ danh sách các mã số dự ự án đối vwois các
dự án có 1 nhân viên hoặc một người quản lý đơn vị
kiểm soát dự án có tên là ‘Long’
™Đưa ra tên của tất cả các nhân viên có nhiều hơn
hoặc bằng 2 người phụ thuộc.
™Đưa ra các nhân viên không có người phụ thuộc.
™Đưa ra tên của
ủ những người quản ả lý dự án có ít nhất

một người phụ thuộc. - 96 -

You might also like