You are on page 1of 84

TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM

KHOA TOÁN – TIN


280, An Dương Vương, Q5, Tp HCM ĐT: (08).8352020 - 8352021

CƠ SỞ DỮ LIỆU
Lê Đức Long
Email: longld@math.hcmup.edu.vn
Website: http://www.2learner.edu.vn
NỘI DUNG TRÌNH BÀY

Edited by Duc-Long, Le - 2009 2


Một số quy ƣớc trên slide

 Tắt màn hình máy tính

 Được dùng máy tính

 Làm việc theo nhóm

 Ghi chép bằng văn bản

Edited by Duc-Long, Le - 2009 3


TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM
KHOA TOÁN – TIN
280, An Dương Vương, Q5, Tp HCM ĐT: (08).8352020 - 8352021

ĐẠI SỐ QUAN HỆ
(Relational Algebra)

 Giới thiệu về Đại số Quan hệ


Lê Đức Long  Các phép toán tập hợp
Email: longld@math.hcmup.edu.vn  Các phép toán Quan hệ
Website: http://www.2learner.edu.vn
 Các phép toán khác
NỘI DUNG TRÌNH BÀY
 Giới thiệu
 Đại số quan hệ
 Các phép toán tập hợp
 Hội  (Union)
 Giao  (Intersection)
 Trừ  (Difference)
 Tích Descartes x (Cartesian Product)
 Chia ÷ (Division)
 Các phép toán quan hệ
 Chiếu  (Projection)
 Chọn  (Selection)
 Kết  (Join)
 Các phép toán khác
 Gán  (Assignment)
 Đổi tên  (Rename)
 Các thao tác cập nhật trên quan hệ
Giới thiệu
Xét một số xử lý trên quan hệ
NHANVIEN
 Thêm mới một nhân viên
 Chuyển nhân viên có tên là “Tùng” sang phòng số 1
 Cho biết họ tên và ngày sinh các nhân viên có lương
trên 20000

TENNV
Tung HONV
Nguyen NGSINH
12/08/1955 DCHI PHAI LUONG PHONG

Hang
Tung Bui
Nguyen 07/19/1968
12/08/1955 638 NVC Q5 Nam 40000 15
Nhu
Hang Le Bui 06/20/1951
07/19/1968 332 NTH Q1 Nu 25000 4
Hung
Nhu Nguyen
Le 09/15/1962
06/20/1951 291 HVH QPN Nu 43000 4
Quang
Hung Pham
Nguyen 11/10/1937
09/15/1962 Ba Ria VT Nam 38000 5
Quang Pham 11/10/1937 450 TV HN Nam 55000 1
Vấn đề là … http://en.wikipedia.org/wiki/Relational_algebra#Introduction

 Có hai loại xử lý trên CSDL


 Làm thay đổi dữ liệu (cập nhật)
• Thêm mới, xóa và sửa
 Không làm thay đổi dữ liệu (rút trích/liệt kê)
• Truy vấn/mẫu hỏi (Query)
 Sử dụng ngôn ngữ truy vấn (Query Language)
Cho phép người dùng thực hiện và rút trích dữ liệu từ CSDL.
Bao gồm:
 Đại số quan hệ (Relational Algebra)
 Phép tính quan hệ (Relational Calculus)
Cơ sở của ngôn ngữ CSDL ví dụ như SQL
Relational algebras received little attention until the publication of E.F. Codd's relational model of data in
1970. Codd proposed such an algebra as a basis for database query languages 7
Đại số quan hệ
http://en.wikipedia.org/wiki/Relational_algebra#Introduction

 Là loại ngôn ngữ thủ tục (procedural language)


 Bao gồm tập hợp các phép toán được áp dụng trên
các thể hiện của quan hệ. Kết quả trả về của một
câu truy vấn là một thể hiện của quan hệ
 Chuỗi các phép toán đại số quan hệ hình thành nên
biểu thức đại số quan hệ (câu truy vấn) mà kết quả
của nó cũng trả về một thể hiện của quan hệ
 Có 3 nhóm phép toán
• Phép toán tập hợp (, , , x, ÷)
• Phép toán quan hệ (, , )
• Phép toán khác (, )

Relational Algebra (RA) can be viewed as a data manipulation language for relational model. It consists of several basic
operations which is enable user to specify retrieval requests. RA is called a procedural language in which user need to
specify how to retrieve the expected data. http://www.vocw.edu.vn/content/m10536/latest/

8
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM
KHOA TOÁN – TIN
280, An Dương Vương, Q5, Tp HCM ĐT: (08).8352020 - 8352021

CÁC PHÉP TOÁN TẬP HỢP


 Trên các lược đồ quan hệ cũng có các phép toán , , , ÷, và x như
những tập hợp thông thường.
 Kết quả của các phép toán , , , ÷, và x là một quan hệ có cùng
tên thuộc tính với quan hệ đầu tiên (R).

Lê Đức Long
Email: longld@math.hcmup.edu.vn
Website: http://www.2learner.edu.vn
Tính khả hợp
Quan hệ là tập hợp các bộ
Tính khả hợp (Union Compatibility)
Hai lƣợc đồ quan hệ R(A1, A2, …, An) và
S(B1, B2, …, Bn) là khả hợp nếu:
• Cùng bậc n (cùng số thuộc tính)
• Và có DOM(Ai)=DOM(Bi) , 1 i  n
 Ví dụ
NHANVIEN TENNV NGSINH PHAI THANNHAN TENTN NG_SINH PHAITN

Tung 12/08/1955 Nam Trinh 04/05/1986 Nu


Hang 07/19/1968 Nu Khang 10/25/1983 Nam
Nhu 06/20/1951 Nu Phuong 05/03/1958 Nu
Hung 09/15/1962 Nam Minh 02/28/1942 Nam
Bậc n=3 Chau 12/30/1988 Nu
DOM(TENNV) = DOM(TENTN)
HAI QUAN HỆ NHANVIEN VÀ
DOM(NGSINH) = DOM(NG_SINH)
THANNHAN LÀ KHẢ HỢP
DOM(PHAI) = DOM(PHAITN)
10
Phép hội ()

Cho 2 quan hệ R và S khả hợp


Phép hội của R và S
 Ký hiệu R  S
 Là một quan hệ gồm các bộ thuộc R hoặc thuộc S,
hoặc cả hai (các bộ trùng lắp sẽ bị bỏ)
R  S = { t / tR  tS }
Ví dụ Q=RS
R A B S A B
Q A B
 1  2
 1
 2  3
 2
 1
 1
 3

11
Ví dụ
Xét hai quan hệ của hai lược đồ quan hệ NV1 (Q1) và NV2 (Q2) như sau :

Q1 MA_NV TEN_NV MA_PHG Q2 MA_NV TEN_NV MA_PHG


001 A 1 004 C 1
002 B 1 001 A 1
003 C 2

Kết quả nhận được khi (Q1  Q2): Q = Q1  Q2


Q MA_NV TEN_NV MA_PHG
001 A 1
002 B 1
003 C 2
004 C 1
12
Phép giao ()

Cho 2 quan hệ R và S khả hợp


Phép giao của R và S
 Ký hiệu R  S
 Là một quan hệ gồm các bộ thuộc R đồng thời thuộc
S
R  S = { t / tR  tS }
Ví dụ
Q=RS
R A B S A B

 1  2 Q A B

 2  3  2
 1

13
Ví dụ

Xét hai quan hệ của hai lược đồ quan hệ NV1 (Q1) và NV2 (Q2) như sau :

Q1 MA_NV TEN_NV MA_PHG Q2 MA_NV TEN_NV MA_PHG


001 A 1 004 C 1
002 B 1 001 A 1
003 C 2

Kết quả nhận được khi (Q1  Q2): Q = Q1  Q2

Q MA_NV TEN_NV MA_PHG


001 A 1

14
Phép trừ ()

Cho 2 quan hệ R và S khả hợp


Phép trừ của R và S
 Ký hiệu R  S
 Là một quan hệ gồm các bộ thuộc R và không thuộc S

Ví dụ R  S = { t / tR  tS }

Q=R-S
R A B S A B
Q A B
 1  2
 2  3  1
 1  1

15
Ví dụ

Xét hai quan hệ của hai lược đồ quan hệ NV1 (Q1) và NV2 (Q2) như sau :

Q1 MA_NV TEN_NV MA_PHG Q2 MA_NV TEN_NV MA_PHG


001 A 1 004 C 1
002 B 1 001 A 1
003 C 2

Kết quả nhận được khi (Q1 - Q2): Q = Q1 - Q2

Q MA_NV TEN_NV MA_PHG


002 B 1
003 C 2

16
Lƣu ý …

Giao hoán

RS=SR
Các phép toán ,
RS=SR
 có tính chất

Kết hợp

R  (S  T) = (R  S)  T
R  (S  T) = (R  S)  T

17
Phép tích Descartes (x)

Đƣợc dùng để kết hợp các bộ của các


quan hệ lại với nhau
Ký hiệu RS
R x S = { t1, t2 / t1 R  t2  S }

HAY R x S = { t/ t có dạng (a1, a2, ..., an, b1,b2, ...,bm)


trong đó (a1, a2, ..., an)  R và (b1,b2, ...,bm)  S}

Kết quả trả về là một quan hệ Q


 Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và 1 bộ trong S
 Nếu R có u bộ và S có v bộ thì Q sẽ có u  v bộ
 Nếu R có n thuộc tính và S có m thuộc tính thì Q sẽ có n +
m thuộc tính
18
Minh hoạ Q=RxS

unambiguous

R A B RS A R.B S.B C D

 1  1  10 +
2 bộ  2  1  10 +
 1  20 -

S B C D  1  10 -
8 bộ
 2  10 +
 10 +
 2  10 +
 10 +
4 bộ  2  20 -
 20 -
 2  10 -
 10 -

5 cột

19
Ví dụ
Xét hai quan hệ của hai lược đồ quan hệ NV1 (Q1) và KHOA(Q2) như sau :

Q1 MA_NV TEN_NV MA_PHG Q2 MA_KH TEN_KH


001 A 1 KH01 X
002 B 1 KH02 Y
003 C 2

Kết quả nhận được khi (Q1 x Q2): Q = Q1 x Q2


Q MA_NV TEN_NV MA_PHG MA_KH TEN_KH
001 A 1 KH01 X
002 B 1 KH01 X
003 C 2 KH01 X
001 A 1 KH02 Y
002 B 1 KH02 Y
003 C 2 KH02 Y

20
Phép chia ()
Đƣợc dùng để lấy ra một số bộ trong quan
hệ R sao cho thỏa 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-X
 Có t là một bộ của T nếu với mọi bộ tSS, tồn tại bộ tRR
thỏa 2 điều kiện
R(Z) S(X) T(Y)
» t = tR(Y)
X Y
» tR(X) = tS(X)
21
Minh hoạ T=RS

R+= Z = {A,B,C,D,E} S+= X = {D,E}


R A B C D E S D E

 a  a 1 a 1
 a  a 1 b 1
 a  b 1
 a  a 1 Bộ trong R thoả tất cả T=RS
 a  b 3 các bộ trong S
T A B C
 a  a 1
 a 
 a  b 1
Kết quả lấy ở các cột Y=Z - X  a 
 a  b 1
T+= {A,B,C}

R ÷ S = { t / t2  S , t1  R : t = t1[T]  t2=t1[S]}

HAY VIẾT LÀ R ÷ S = { t / sc: u  S , (t,u)  R }

22
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM
KHOA TOÁN – TIN
280, An Dương Vương, Q5, Tp HCM ĐT: (08).8352020 - 8352021

CÁC PHÉP TOÁN QUAN HỆ


 Chiếu  (Projection)
 Chọn  (Selection)
 Kết  (Join)

Lê Đức Long
Email: longld@math.hcmup.edu.vn
Website: http://www.2learner.edu.vn
Phép chọn ()
 Đƣợc dùng để lấy ra các bộ của quan hệ R
 Các bộ đƣợc chọn phải thỏa mãn điều kiện
chọn P
 Ký hiệu  p (R)

 P là biểu thức gồm các mệnh đề có dạng


 <tên thuộc tính> <phép so sánh> <hằng số>
 <tên thuộc tính> <phép so sánh> <tên thuộc tính>
• <phép so sánh> gồm có:  ,  ,  ,  ,  , 
• Các mệnh đề có thể được nối lại nhờ các phép
toán luận lý:  (and) ,  (or) ,  (not)

24
Phép chọn (tt)

Kết quả trả về là một quan hệ


 Có cùng danh sách thuộc tính với R
 Có số bộ luôn ít hơn hoặc bằng số bộ của R
Ví dụ

R A B C D
 (A=B)  (D>5) (R)
  1 7 R A B C D
  5 7
  1 7
  12 3
  23 10   23 10

25
Lƣu ý …

Phép chọn có tính giao hoán

 (
p1 p2 (R)) =  p2 (  p1 (R))

Ví dụ:
Chọn nhân viên ở phòng 4 và có lương lớn hơn 2500
 (PHONG=4)(( Luong>2500) (NHANVIEN))

Chọn nhân viên có lương lớn hơn 2500 và ở phòng 4


( Luong>2500) ( (PHONG=4)(NHANVIEN))
26
Ví dụ 1 CSDL - QUẢN LÝ ĐỀ ÁN CÔNG TY

Lưu trữ D/s các nhân viên của công ty

 Cho biết các Mỗi nhân viên có tt về phòng


nhân viên ở
phòng số 4

Quan hệ: NHANVIEN


Thuộc tính: PHONG
Điều kiện: PHONG=4

27
Lời giải

 Cho biết các nhân viên ở phòng số 4

 Quan hệ: NHANVIEN


 Thuộc tính: PHONG
 Điều kiện: PHONG=4

 PHONG=4 (NHANVIEN)

Thể hiện tất cả các bộ thoả điều kiện với đầy đủ


thuộc tính của quan hệ NHANVIEN
28
Ví dụ 2
Tìm các nhân viên có lƣơng trên 25000
ở phòng 4 hoặc các nhân viên có lƣơng
trên 30000 ở phòng 5

Quan hệ: NHANVIEN


Thuộc tính: LUONG, PHONG
Điều kiện:
oLUONG>25000 và PHONG=4 hoặc
oLUONG>30000 và PHONG=5

 (LUONG>25000  PHONG=4)  (LUONG >30000  PHONG=5) (NHANVIEN)

29
LƢU Ý …

Thông thƣờng theo sau phép tích


Descartes là phép chọn  để lọc
thông tin

RS  A=S.B (R  S)
A R.B S.B C D A R.B S.B C D

 1  10 +  1  10 +
 1  10 +  2  10 +
 1  20 -  2  20 -
 1  10 -
 2  10 +
 2  10 +
 2  20 -
 2  10 -

30
Phép chiếu ()
Đƣợc dùng để lấy ra một vài cột của
quan hệ R
Ký hiệu  (R)
A1, A2, …, Ak

Kết quả trả về là một quan hệ


 Có k thuộc tính
 Có số cột luôn ít hơn hoặc bằng số cột của R
Ví dụ R A B C R A C
 10 1  1


20
30
1
1
 A,C (R)


1
1
 40 2  2

31
Lƣu ý …

 Phép chiếu không có tính giao hoán

 X,Y (R) =  ( X Y (R))

 
A1, A2, …, An( A1, A2, …, Am(R))   (
A1, A2, …, Am  A1, A2, …, An(R ))

32
Ví dụ 1 CSDL - QUẢN LÝ ĐỀ ÁN CÔNG TY

Lưu trữ D/s các nhân viên của công ty


Cho biết họ tên
và lƣơng của các Thông tin Họ, Tên, MLương

nhân viên

Quan hệ: NHANVIEN


Thuộc tính: HONV, TENNV, MLUONG
Điều kiện: Không có

33
Lời giải

Cho biết họ tên và lƣơng của các nhân


viên

 Quan hệ: NHANVIEN


 Thuộc tính: HONV, TENNV, MLUONG
 Điều kiện: Không có

HONV, TENNV,MLUONG(NHANVIEN)

34
Ví dụ 2
Lưu trữ D/s các nhân viên tham gia đề án
Cho biết mã nhân Lưu trữ D/s các thân nhân
viên có tham gia của nhân viên

đề án hoặc có thân
nhân

Quan hệ: PHANCONG, THANNHAN


Thuộc tính: MANV
Điều kiện: Không có

35
Lời giải
Cho biết mã nhân viên có tham gia đề
án hoặc có thân nhân
Nhân viên có tham gia đề án
•Quan hệ: PHANCONG
•Thuộc tính: MANV
 Nhân viên có thân nhân
•Quan hệ: THANNHAN
•Thuộc tính: MANV

MANV(PHANCONG) U MANV(THANNHAN)
36
Ví dụ 3
Lưu trữ D/s các nhân viên của công ty
Cho biết mã nhân Lưu trữ D/s các nhân viên
viên không có thân có thân nhân

nhân nào

Quan hệ: NHANVIEN, THANNHAN


Thuộc tính: MANV
Điều kiện: Không có

37
Lời giải

Cho biết mã nhân viên không có thân


nhân nào

Quan hệ: NHANVIEN


Thuộc tính: MANV

Quan hệ: THANNHAN


Thuộc tính: MANV

MANV(NHANVIEN) - MANV(THANNHAN)
38
Phép chiếu mở rộng

Mở rộng phép chiếu bằng cách cho


phép sử dụng các phép toán số học
trong danh sách thuộc tính
Ký hiệu
F1, F2, …, Fn (E)
 E là biểu thức ĐSQH
 F1, F2, …, Fn là các biểu thức số học liên quan
đến:
• Hằng số
• Thuộc tính trong E

39
Ví dụ
 Cho biết họ tên của các nhân viên và lương
của họ sau khi tăng 10%

 HONV, TENNV, LUONG*1.1 (NHANVIEN)

Chú ý câu truy vấn này kô làm thay đổi dữ liệu trong CSDL

40
Biểu diễn phép chiếu theo phép tính quan hệ

Phép chiếu : Dùng để trích chọn các thuộc


tính được chỉ ra trong danh sách thuộc
tính của một quan hệ. Ký hiệu phép chiếu
lên thuộc tính A của quan hệ R là R[A].
Ví dụ : cho quan hệ NhanVien với tập
thuộc tính NhanVien+={MaNV, HoTen,
Phai, Luong, PHG}, chứa 2 bộ giá trị

NhanVien
MaNV HoTen Phai Luong PHG
 nv1 = 123 NTA Nữ 2000 NC
 nv2 = 124 LVM Nam 2100 NC

41
 Phép chiếu lên 1 thuộc tính HoTen của quan
hệ NhanVien:
 NhanVien[HoTen] = {N T A, L V M}

NhanVien
MaNV HoTen Phai Luong PHG
123 NTA Nữ 2000 NC
124 LVM Nam 2100 NC

 Phép chiếu lên 1 tập thuộc tính K={HoTen,


Phai} của quan hệ NhanVien:
 NhanVien[HoTen, Phai] = {{N T A, Nữ}, {L V M, Nam}}

42
Phép kết ()
Đƣợc dùng để tổ hợp 2 bộ có liên quan
từ 2 quan hệ thành 1 bộ (thoả điều kiện)
Ký hiệu R S
 R(A1, A2, …, An) và S(B1, B2, …, Bm)
Kết quả của phép kết là mộ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 kết nào đó
• Có dạng Ai  Bj
• 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ị
•  là phép so sánh: , , , , , 

Có thể xem phép kết là phép tích Descarte + phép chọn

43
Phân loại
 Kết theta (Theta join) là phép kết có điều kiện
• Ký hiệu R C S
• C gọi là điều kiện kết trên thuộc tính

 Kết bằng (Equi join) khi C là điều kiện so sánh bằng

 Kết tự nhiên (Natural join)


• Ký hiệu R S hay R  S
• R+  S+   (phải có cột giống nhau)
• Kết quả của phép kết bằng bỏ bớt đi 1 cột giống nhau
(trong 2 cột giống nhau)

44
Minh hoạ

Kết theta (Theta join) là phép kết có điều kiện


Ký hiệu R C S
C gọi là điều kiện kết trên thuộc tính
R S
Ví dụ phép kết Theta B< D

R A B C S D E

1 2 3 3 1
B1: Q  R x S
4 5 6 6 2
7 8 9
B2: KQ   B < D (Q)
A B C D E
1 2 3 3 1
1 2 3 6 2
4 5 6 6 2

45
Minh hoạ
Kết bằng (Equi join) khi C là điều kiện so
sánh bằng
Ví dụ phép kết bằng
R A B C S D E A B C D E
1 2 3 3 1
1 2 3 3 1 R C=D S
4 5 6 6 2 4 5 6 6 2

7 8 9

R A B C
S C D
1 2 3
3 1 A B C S. E
4 5 6 R C=S.C S C
7 8 9 6 2
1 2 3 3 1
4 5 6 6 2

46
Minh hoạ

Kết tự nhiên (Natural join)


Ký hiệu R S hay R  S
R+  S+   (phải có cột giống nhau)
Kết quả của phép kết bằng bỏ bớt đi 1 cột giống nhau
(trong 2 cột giống nhau)

R S
Ví dụ phép kết tự nhiên
A B C S.C D

1 2 3 3 1
4 5 6 6 2
R A B C S C D

1 2 3 3 1 Bỏ đi cột
4 5 6 6 2 giống nhau
7 8 9 A B C D

1 2 3 1
Thường dùng phép kết này trong câu truy vấn 4 5 6 2

47
Ví dụ tổng hợp 1
 Liệt kê danh sách mã nhân viên, tên
nhân viên, tên phòng ban mà họ làm việc

48
Ví dụ tổng hợp 1

 Liệt kê danh sách mã nhân viên, tên


nhân viên, tên phòng ban mà họ làm
việc

 Quan hệ: NHANVIEN, PHONGBAN


 Thuộc tính: MANV, TENNV, TENPHG
 Điều kiện: PHONG = MAPHG

MANV,TENNV, TENPHG(NHANVIEN PHONGBAN)

49
Ví dụ tổng hợp 2
 Liệt kê danh sách mã phòng, tên phòng
và địa điểm của phòng ban đó

50
Ví dụ tổng hợp 2

 Liệt kê danh sách mã phòng, tên


phòng và địa điểm của phòng ban đó

 Quan hệ: PHONGBAN, DIADIEM_PHG


 Thuộc tính: MAPHG, TENPHG, DIADIEM
 Điều kiện: MAPHG = DIADIEM_PHG.MAPHG

MAPHG,TENPHG, DIADIEM(PHONGBAN DIADIEM_PHG)

51
Ví dụ tổng hợp 3
Với mỗi phòng ban, cho biết thông
tin của người trưởng phòng

52
Ví dụ tổng hợp 3

Với mỗi phòng ban, cho biết thông tin


của ngƣời trƣởng phòng

 Quan hệ: PHONGBAN, NHANVIEN


 Thuộc tính: TRPHG, MAPHG, TENNV, HONV, …

TRPHG,MAPHG, HONV,TENNV(NHANVIEN PHONGBAN)

53
Lời giải
CÁCH 1:
TRPHG,MAPHG, HONV,TENNV(NHANVIEN PHONGBAN)
CÁCH 2:
B1: Tích Descartes PHONGBAN và NHANVIEN
PB_NV  (NHANVIEN  PHONGBAN)
B2: Chọn ra những bộ thỏa TRPHG=MANV
KQ  TRPHG=MANV(PB_NV)
B3: Liệt kê mã NV, mã PB, họ và tên của
trưởng phòng
KQ  TRPHG,MAPHG, HONV,TENNV(KQ)
54
Hoạt động thảo luận

 Rút ra những tóm tắt cần thiết về các


phép toán quan hệ: chọn, chiếu, kết
 Trao đổi và thảo luận tại lớp (10p)
 Rút ra các bƣớc thực hiện một câu
truy vấn bằng ngôn ngữ ĐSQH
 Dựa trên sơ đồ mô tả lược đồ CSDL
 Quan hệ ? Thuộc tính ? Điều kiện ?
 Thảo luận thực hiện các câu 2.1, 2.2,
2.3, 2.4, 2.5 của bài tập lý thuyết 01
 Trao đổi và thảo luận tại lớp (20p)
 Giải đáp thắc mắc

55
Biểu diễn phép chia thông qua tập
đầy đủ các phép toán ĐSQH
R A B C D E

 a  a 1
S D E
 a  a 1
 a  b 1 a 1

 a  a 1 b 1 Lấy thành phần Y cột của R


 a  b 3
 a  a 1
 a  b 1
Q1  Y (R) Tổ hợp Q1 với S
 a  b 1
Q2  Q1  S Lấy thành phần Y
cột kô có trong S
T=RS Q3  Y(Q2  R)
T  Q1  Q3
R(Z) S(X) T(Y)
X Y
Lấy thành phần Y
có trong S
Y là tập thuộc tính của T với Y = Z – X

56
A B C D E
 a  a 1 D E
 a  a 1 S a 1
 a  b 1 b 1
R  a  a 1
 a  b 3


 a  a 1

Q1  Y (R)


a
a


b
b
1
1

 Y(Q2  R)
A B C
 
Q3
a
 a 
 a 
Q1  a  A B C
 a   a 
 a  Q3  a 
 a   a 
 a   a 

Q2  Q1  S
A B C D E

 Q1  Q3
 a  a 1


a
a


a
a
1
1
T
 a  a 1
 a  a 1 A B C
 a  a 1  a 
 a  a 1  a 
Q2  a  a 1
 a  b 1
 a  b 1
 a  b 1

T=RS
 a  b 1
 a  b 1
 a  b 1
 a  b 1
 a  b 1 57
Ví dụ 1 CSDL - QUẢN LÝ ĐỀ ÁN CÔNG TY

Lưu trữ D/s các đề án của công ty


 Cho biết mã Lưu trữ D/s các nhân viên
nhân viên tham + đề án được phân công

gia tất cả các


đề án
Quan hệ liên quan

Thuộc tính cần truy xuất

o Quan hệ: PHANCONG, DEAN


o Thuộc tính: MANV 58
Lời giải

 Cho biết mã nhân viên tham gia tất


cả các đề án
 Quan hệ: PHANCONG, DEAN
 Thuộc tính: MANV
Phép chiếu Phép chiếu
(trên thuộc tính MANV, MADA) (trên thuộc tính MADA)

MANV,MADA(PHANCONG)   MADA (DEAN)

Phép toán chia

Lưu trữ D/s các nhân viên + đề án


được phân công Lưu trữ D/s các đề án của công ty
59
Ví dụ 2
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 hệ: PHANCONG, DEAN
 Thuộc tính: MANV
 Điều kiện: PHONG=4

MANV,MADA(PHANCONG)   MADA ( PHONG=4 (DEAN))

Lọc D/s thoả điều kiện PHONG = 4, sử dụng phép chọn

60
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM
KHOA TOÁN – TIN
280, An Dương Vương, Q5, Tp HCM ĐT: (08).8352020 - 8352021

CÁC PHÉP TOÁN KHÁC

Lê Đức Long
Email: longld@math.hcmup.edu.vn
Website: http://www.2learner.edu.vn
Chuỗi các phép toán
Kết hợp các phép toán đại số quan hệ
 Lồng các biểu thức lại với nhau

 A1, A2, …, Ak 
( P (R))  (
P A1, A2, …, Ak (R))

 Thực hiện từng phép toán một


• B1  (R) P

• B2  A1, A2, …, Ak (Quan hệ kết quả ở B1)

Cần đặt tên cho quan hệ

ĐÂY LÀ CÁCH SẼ BIỂU DIỄN CÂU TRUY VẤN TRONG BÀI TẬP, BÀI THI

62
Phép gán

Đƣợc sử dụng để nhận lấy kết quả trả


về của một phép toán
 Thường dùng để lưu kết quả trung gian trong chuỗi
các phép toán
Ký hiệu 
Đặt quan hệ S lưu kết quả của phép chọn với đk p

Ví dụ
 B1 S  P (R) Kết quả cuối cùng đặt là quan hệ KQ

 B2 KQ  A1, A2, …, Ak (S)

63
Phép đổi tên
Đƣợc dùng để đổi tên
 Quan hệ Xét quan hệ R(B, C, D)

S(R) : Đổi tên quan hệ R thành S

 Thuộc tính

X, C, D (R) : Đổi tên thuộc tính B thành X

o Đổi tên quan hệ R thành S và thuộc tính B


thành X
S(X,C,D)(R)
64
Ví dụ 1
 Cho biết họ và tên nhân viên làm việc ở
phòng số 4

65
 Lời giải
Cho biết họ và tên nhân viên làm việc
ở phòng số 4
 Quan hệ: NHANVIEN
 Thuộc tính: HONV, TENNV
 Điều kiện: PHONG=4

C1:  HONV, TENNV 


( PHONG=4 (NHANVIEN))

C2: NV_P4  PHONG=4 (NHANVIEN)


KQ   HONV, TENNV (NV_P4)

Vừa gán vừa đổi tên


KQ(HO, TEN)   HONV, TENNV (NV_P4)
KQ(HO, TEN) (HONV, TENNV (NV_P4))
66
Ví dụ 2
 Cho biết lương cao nhất trong công ty

67
Ý tƣởng

Cho biết lƣơng cao nhất trong công ty


 Quan hệ: NHANVIEN
 Thuộc tính: LUONG
 LUONG (NHANVIEN)

TENNV HONV … LUONG … … LUONG …

Tung Nguyen … 40000 … … 40000 …


Hang Bui … 25000 … … 25000 …
Nhu Le … 43000 … … 43000 …
Hung Nguyen … 38000 … … 38000 …

R3   NHANVIEN.LUONG < R1.LUONG(NHANVIEN  R1)

B1: Chọn ra những lương không phải là lớn nhất (R3)


B2: Lấy tập hợp lương trừ đi lương trong R3
68
Lời giải

B1: Chọn ra những lƣơng không phải


là lớn nhất
R1  (LUONG (NHANVIEN))
R2  NHANVIEN.LUONG < R1.LUONG(NHANVIEN  R1)
R3   NHANVIEN.LUONG (R2)

B2: Lấy tập hợp lƣơng trừ đi lƣơng


trong R3
KQ   LUONG (NHANVIEN)  R3

69
Ví dụ 3
 Cho biết các phòng ban có cùng địa điểm
với phòng số 5

70
Ý tƣởng
Cho biết các phòng ban có cùng địa
điểm với phòng số 5
 Quan hệ: DIADIEM_PHG
 Thuộc tính: DIADIEM, MAPHG
 Điều kiện: MAPHG=5
Phòng 5 có tập hợp những Phòng nào có địa điểm nằm
địa điểm nào? trong trong tập hợp đó?

MAPHG DIADIEM MAPHG DIADIEM

1 TP HCM 1 TP HCM
4 HA NOI 4 HA NOI
5 VUNGTAU 5 VUNGTAU
5 NHATRANG 5 NHATRANG
5 TP HCM 5 TP HCM

71
Lời giải

B1: Tìm các địa điểm của phòng 5

DD_P5(DD)  DIADIEM (MAPHG=5 (DIADIEM_PHG))

B2: Lấy ra các phòng có cùng địa điểm với


DD_P5
R1  MAPHG  5 (DIADIEM_PHG)
R2  DIADIEM= DD (R1  DD_P5)
KQ  MAPHG (R2)
72
Hàm kết hợp và gom nhóm

 Aggregate Functions (hàm kết hợp) and Grouping (gom nhóm)


o A type of request that cannot be expressed in the basic
relational algebra is to specify mathematical aggregate
functions on collections of values from the database.

o Examples of such functions include retrieving the average or


total salary of all employees or the total number of employee
tuples. These functions are used in simple statistical queries
that summarize information from the database tuples.

o Common functions applied to collections of numeric values


include SUM, AVERAGE, MAXIMUM, and MINIMUM. The
COUNT function is used for counting tuples or values.

73
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 SUM(B) = 10
R A B
» MIN 1 2
AVG(A) = 1.5

» MAX 3 4 MIN(A) = 1
1 2
1 2 MAX(B) = 4
» SUM
COUNT(A) = 4
» COUNT

74
Ví dụ
Cho biết số lượng phòng ban trong công ty

COUNT(MAPHG(PHONGBAN))

Cho biết lương cao nhất của các nhân viên công ty

MAX(MLuong(NHANVIEN))
Xem lại câu truy vấn ở Slide 69,70)

75
Phép gom nhóm (T)

 Đƣợ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 TF1(A1), F2(A2), …, Fn(An)(E)
 E là biểu thức ĐSQH
 G1, G2, …, Gn là các thuộc tính gom nhóm
 F1, F2, …, Fn là các hàm
 A1, A2, …, An là các thuộc tính tính toán trong hàm F

76
Ví dụ SUM(C(R))
ISUM(C)(R) Tính tổng trên
R A B C
thuộc tính C
 2 7
27
 4 7
 2 3
 2 10

A ISUM(C)(R)
Gom nhóm theo  14
thuộc tính A  3
 10

77
Ví dụ 1

Cho biết lương cao nhất của các nhân viên công ty

 C1: Xem lại câu truy vấn đã học ở Slide 77

MAX(MLUONG(NHANVIEN))
 C2: Cách thường sử dụng trong câu truy vấn

IMAX(MLUONG)(NHANVIEN)

78
Ví dụ 2

Tính số lƣợng nhân viên và lƣơng trung


bình của cả công ty

TCOUNT(MANV),AVG(MLUONG)(NHANVIEN)

79
Ví dụ 3
Tính số lƣợng nhân viên và lƣơng trung
bình của từng phòng ban

PHONGTCOUNT(MANV),AVG(MLUONG)(NHANVIEN)

MAPHONG, SONV, LUONGTB(PHONGTCOUNT(MANV),AVG(MLUONG)(NHANVIEN))

Gom nhóm theo thuộc tính PHONG

80
Phép kết ngoài - OUTER JOIN Operation

Mở rộng phép kết để tránh mất mát


thông tin
 Thực hiện phép kết
 Lấy thêm các bộ không thỏa điều kiện kết (thêm vào
các bộ của một quan hệ mà không phù hợp với các
bộ trong quan hệ kia)
Có 3 hình thức
 Mở rộng bên trái (Left Outer Join)
 Mở rộng bên phải (Right Outer Join)
 Mở rộng 2 bên (Full Outer Join)

81
Phép kết ngoài - OUTER JOIN Operation
 The OUTER JOIN Operation
o In NATURAL JOIN tuples without a matching (or related) tuple are
eliminated from the join result. Tuples with null in the join attributes
are also eliminated. This amounts to loss of information.
o A set of operations, called outer joins, can be used when we want to
keep all the tuples in R, or all those in S, or all those in both
relations in the result of the join, regardless of whether or not they
have matching tuples in the other relation.
o The left outer join operation keeps every tuple in the first or left
relation R in R S; if no matching tuple is found in S, then the
attributes of S in the join result are filled or “padded” with null
values.
o A similar operation, right outer join, keeps every tuple in the second
or right relation S in the result of R S.
o A third operation, full outer join, denoted by keeps all tuples
in both the left and the right relations when no matching tuples are
found, padding them with null values as needed.

82
Ví dụ
Cho biết họ tên nhân viên và mã
phòng ban mà họ làm trƣởng
phòng nếu có
 Quan hệ: NHANVIEN, PHONGBAN
 Thuộc tinh: TENNV, TENPH
R1  NHANVIEN MANV=TRPHG PHONGBAN

KQ  TENNV, HONV, MAPHG (R1)


TENNV HONV MAPHG

Quyen Vuong QL
Tung Nguyen NC
Các bộ thêm vào của
Nhan Le DH
quan hệ bên trái (kô
Tien Dinh null thỏa điều kiện kết)
…. …. ….

83
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM
KHOA TOÁN – TIN
280, An Dương Vương, Q5, Tp HCM ĐT: (08).8352020 - 8352021

Cám ơn đã theo dõi …

Lê Đức Long
Email: longld@math.hcmup.edu.vn
Website: http://www.2learner.edu.vn
84

You might also like