BG - Dai So Quan He

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 78

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH


Khoa Viễn thông 2
Môn học:

CƠ SỞ DỮ LIỆU
(Database)

Mã môn: TEL1343
Chương 4
Đại số quan hệ
Nội dung chi tiết
• Giới thiệu
• Đại số quan hệ
• Phép toán tập hợp
• Phép chọn
• Phép chiếu
• Phép tích Cartesian
• Phép kết
• Phép chia
• Các phép toán khác
• Các thao tác cập nhật trên quan hệ

3
Giới thiệu
• Xét một số xử lý trên quan hệ NHANVIEN
o Thêm mới một nhân viên
o Chuyển nhân viên có tên là “Tùng” sang phòng số 1
o Cho biết họ tên và ngày sinh các nhân viên có lương trên 20000

TENNV HONV NGSINH DCHI PHAI LUONG PHONG

Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5


1
Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4
Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4
Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5
Quang Pham 11/10/1937 450 TV HN Nam 55000 1

4
Giới thiệu (tt)
• Có 2 loại xử lý
o Làm thay đổi dữ liệu (cập nhật)
Thêm mới, xóa và sửa
o Không làm thay đổi dữ liệu (rút trích)
Truy vấn (query)

• Thực hiện các xử lý


o Đại số quan hệ (Relational Algebra)
Biểu diễn câu truy vấn dưới dạng biểu thức
o Phép tính quan hệ (Relational Calculus)
Biểu diễn kết quả
o SQL (Structured Query Language)

5
Nhắc lại
• Đại số
o Toán tử (operator)
o Toán hạng (operand)

• Trong số học
o Toán tử: +, -, *, /
o Toán hạng - biến (variables): x, y, z
o Hằng (constant)
o Biểu thức
 (x+7) / (y-3)
 (x+y)*z and/or (x+7) / (y-3)

6
Đại số quan hệ
• Biến là các quan hệ
o Tập hợp (set)

• Toán tử là các phép toán (operations)


o Trên tập hợp
 Hội  (union)
 Giao  (intersec)
 Trừ  (difference)
o Rút trích 1 phần của quan hệ
 Chọn  (selection)
 Chiếu  (projection)
o Kết hợp các quan hệ
 Tích Cartesian  (Cartesian product)
 Kết (join)
o Đổi tên 

7
Đại số quan hệ (tt)
• Hằng số là thể hiện của quan hệ
• Biểu thức
o Được gọi là câu truy vấn
o Là chuỗi các phép toán đại số quan hệ
o Kết quả trả về là một thể hiện của quan hệ

8
Nội dung chi tiết
• Giới thiệu
• Đại số quan hệ
• Phép toán tập hợp
• Phép chọn
• Phép chiếu
• Phép tích Cartesian
• Phép kết
• Phép chia
• Các phép toán khác
• Các thao tác cập nhật trên quan hệ

9
Phép toán tập hợp
• Quan hệ là tập hợp các bộ
o Phép hội R  S

o Phép giao R  S

o Phép trừ R  S

• Tính khả hợp (Union Compatibility)


o 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

 Và có DOM(Ai) = DOM(Bi) , 1 i  n

• Kết quả của , , và  là một quan hệ có cùng tên thuộc tính


với quan hệ đầu tiên (R)

10
Phép toán tập hợp (tt)
• 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
Chau 12/30/1988 Nu

Bậc n=3
DOM(TENNV) = DOM(TENTN)
DOM(NGSINH) = DOM(NG_SINH)
DOM(PHAI) = DOM(PHAITN)

11
Phép hội
• Cho 2 quan hệ R và S khả hợp
• Phép hội của R và S
o Ký hiệu R  S
o 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ụ
R A B S A B RS A B

 1  2  1
 2  3  2
 1  1
 2
 3
12
Phép giao
• Cho 2 quan hệ R và S khả hợp
• Phép giao của R và S
o Ký hiệu R  S
o 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ụ
R A B S A B RS A B
 1  2  2
 2  3
 1

13
Phép trừ
• Cho 2 quan hệ R và S khả hợp
• Phép giao của R và S
o Ký hiệu R  S
o Là một quan hệ gồm các bộ thuộc R và không thuộc S

R  S = { t / tR  tS }
• Ví dụ
R A B S A B RS A B
 1  2  1
 2  3  1
 1

14
Các tính chất
• Giao hoán

RS=SR
RS=SR

• Kết hợp

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

15
Nội dung chi tiết
• Giới thiệu
• Đại số quan hệ
• Phép toán tập hợp
• Phép chọn
• Phép chiếu
• Phép tích Cartesian
• Phép kết
• Phép chia
• Các phép toán khác
• Các thao tác cập nhật trên quan hệ

16
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
o ộ ằ ố
o ộ ộ

<phép so sánh> gồm  ,  ,  ,  ,  , 


Các mệnh đề được nối lại nhờ các phép  ,  , 

17
Phép chọn (tt)
• Kết quả trả về là một quan hệ
o Có cùng danh sách thuộc tính với R
o 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 A B C D
  5 7
  1 7
  12 3
  23 10
  23 10

18
Phép chọn (tt)
• Phép chọn có tính giao hoán

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

19
Ví dụ 1

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


o Quan hệ: NHANVIEN
o Thuộc tính: PHG
o Điều kiện: PHG=4

 PHG=4 (NHANVIEN)

20
Ví dụ 2
• Tìm các NHÂN VIÊN có LƯƠNG trên 25000 ở PHÒNG 2
hoặc các NHÂN VIÊN có lương trên 30000 ở PHÒNG 5
o Quan hệ: NHANVIEN

o Thuộc tính: LUONG, PHG

o Điều kiện:
 LUONG>25000 và PHG=2 hoặc

 LUONG>30000 và PHG=5

 (LUONG>25000  PHG=2)  (LUONG>30000  PHG=5) (NHANVIEN)

21
Nội dung chi tiết
• Giới thiệu
• Đại số quan hệ
• Phép toán tập hợp
• Phép chọn
• Phép chiếu
• Phép tích Cartesian
• Phép kết
• Phép chia
• Các phép toán khác
• Các thao tác cập nhật trên quan hệ

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

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


o Có k thuộc tính
o Có số bộ luôn ít hơn hoặc bằng số bộ của R

• Ví dụ
R A B C A C



10
20
1
1  A,C (R)


1
1
 30 1  1
 40 2  2

23
Phép chiếu (tt)
• 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, …, An (R) , với n  m

24
Ví dụ 3

• Cho biết họ tên và lương của các nhân viên


o Quan hệ: NHANVIEN
o Thuộc tính: HONV, TENNV, LUONG

 HONV,TENNV,LUONG (NHANVIEN)

25
Phép chiếu tổng quát
• 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)

o E là biểu thức ĐSQH

o 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

26
Phép chiếu tổng quát (tt)

• Ví dụ
o 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)

27
Chuỗi các phép toán
• Kết hợp các phép toán đại số quan hệ
o Lồng các biểu thức lại với nhau

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

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


 B1  P (R)

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

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

28
Một số ví dụ
• Tìm các nhân viên làm việc trong phòng số 4.
MaPB = 4(NHANVIEN)
• Tìm các nhân viên làm việc trong phòng số 4 và có mức
lương từ 25.000 đến 40.000.
MaPB = 4  Luong  25.000  Luong  40.000(NHANVIEN)
• Cho biết họ, tên, giới tính và mức lương của các nhân
viên.
Ho, Ten, Gtinh, Luong(NHANVIEN)
• Cho biết họ, tên, giới tính và mức lương của các nhân
viên của phòng số 5.
Ho, Ten, Gtinh, Luong(MaPB = 5(NHANVIEN))
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
o Thường là kết quả trung gian trong chuỗi các phép toán

• Ký hiệu 

• Ví dụ
o B1 S  P (R)

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

30
Phép đổi tên
• Được dùng để đổi tên
o Quan hệ
Xét quan hệ R(B, C, D)
S(R) : Đổi tên quan hệ R thành S

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

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

S(X,C,D)(R)

31
Ví dụ 7
• Cho biết họ và tên nhân viên làm việc ở phòng số 4
o Quan hệ: NHANVIEN
o Thuộc tính: HONV, TENNV
o Điều kiện: PHG=4

• C1: thực hiện phép chiếu & chọn  HONV, TENNV (  PHG=4 (NHANVIEN))

 PHG=4 (NHANVIEN)
• C2:
NV_P4
KQ  HONV, TENNV (NV_P4)

KQ(HO, TEN)   HONV, TENNV (NV_P4)


KQ(HO, TEN) (HONV, TENNV (NV_P4))
32
Nội dung chi tiết
• Giới thiệu
• Đại số quan hệ
• Phép toán tập hợp
• Phép chọn
• Phép chiếu
• Phép tích Cartesian
• Phép kết
• Phép chia
• Các phép toán khác
• Các thao tác cập nhật trên quan hệ

33
Phép tích Cartesian

• Đượ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

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


o Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và 1 bộ trong S

o Nếu R có u bộ và S có v bộ thì Q sẽ có u  v bộ

o Nếu R có n thuộc tính và Q có m thuộc tính thì Q sẽ có n + m thuộc


tính (R+  Q+   )

34
Phép tích Cartesian (tt)
• Ví dụ
RS
R A B

 1 A B X C D

 2  1  10 +
 1  10 +
 1  20 -
S B
X C D  1  10 -

 10 +  2  10 +

 10 +  2  10 +

 20 -  2  20 -

 10 -  2  10 -

(X,C,D) (S)

35
Phép tích Cartesian (tt)
• Ví dụ unambiguous

R A B
RS A R.B S.B C D
 1
 2  1  10 +
 1  10 +
 1  20 -

S B C D  1  10 -
 2  10 +
 10 +
 2  10 +
 10 +
 2  20 -
 20 -
 2  10 -
 10 -

36
Phép tích Cartesian (tt)
• Thông thường theo sau phép tích Cartesian là phép chọn
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 -

37
Ví dụ 8
• Với mỗi phòng ban, cho biết thông tin của người trưởng
phòng
o Quan hệ: PHONGBAN, NHANVIEN
o Thuộc tính:
TENPHG MAPHGTRPHG, MAPHG,
TRPHG TENNV, HONV,
NG_NHANCHUC …

Nghien cuu 5 333445555 05/22/1988


Dieu hanh
TENPHG 4
MAPHG 987987987
TRPHG 01/01/1995
NG_NHANCHUC MANV TENNV HONV …
Quan ly 1 888665555 06/19/1981
Nghien cuu 5 333445555 05/22/1988 333445555 Tung Nguyen …
Dieu hanh 4 987987987 01/01/1995 987987987 Hung Nguyen …
MANV TENNV HONV NGSINH DCHI PHAI LUONG PHG
Quan ly 1 888665555 06/19/1981 888665555 Vinh Pham …
333445555 Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5
999887777 Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4
987654321 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4
987987987 Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5

38
Ví dụ 8 (tt)
• B1: Tích Cartesian PHONGBAN và NHANVIEN

PB_NV  (NHANVIEN  PHONGBAN)

• B2: Chọn ra những bộ thỏa TRPHG=MANV

KQ  TRPHG=MANV(PB_NV)

39
Ví dụ 9
• Cho biết lương cao nhất trong công ty
o Quan hệ: NHANVIEN
o Thuộc tính: LUONG

TENNV HONV … LUONG … … LUONG …

Tung Nguyen … 40000 … … 40000 …


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

40
Ví dụ 9 (tt)
• B1: Chọn ra những lương không phải là lớn nhất

R1  (LUONG (NHANVIEN))
R2  NHAN_VIEN.LUONG < R1.LUONG(NHANVIEN  R1)
R3   NHAN_VIEN.LUONG (R2)

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

KQ   LUONG (NHANVIEN)  R3

41
Ví dụ 10
• Cho biết các PHÒNG BAN có cùng ĐỊA ĐIỂM với
PHÒNG SỐ 5
o Quan hệ: DIADIEM_PHG
o Thuộc tính: DIADIEM, MAPHG
o Đ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_PHG MAPHG DIADIEM_PHG

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

42
Ví dụ 10 (tt)
• 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_PHG=DD (R1  DD_P5)
KQ  MAPHG (R2)

43
Ví dụ
• Tìm mã số các nhân viên của phòng số 5 hoặc giám sát
trực tiếp các nhân viên phòng số 5.
Q1  MaPB = 5(NHANVIEN)
Q2  MaNV(Q1)
Q3  MaGS(Q1)
Q  Q2  Q3
• Cho biết họ, tên của các nhân viên nữ và tên các thân
nhân của họ.
Q1  GTinh = ‘Nu’(NHANVIEN)
Q2  (HoNV, TenNV, MaNV1)(Ho, Ten, MaNV(Q1))
Q3  Q2  THANNHAN
Q4  MaNV1 = MaNV(Q3)
Q  HoNV, TenNV, Ten(Q4)
Nội dung chi tiết
• Giới thiệu
• Đại số quan hệ
• Phép toán tập hợp
• Phép chọn
• Phép chiếu
• Phép tích Cartesian
• Phép kết
o Kết tự nhiên (Natural join)
o Kết có điều kiện tổng quát (Theta join)
o Kết bằng (Equi join)
• Phép chia
• Các phép toán khác
• Các thao tác cập nhật trên quan hệ
45
Phép kết
• Được dùng để tổ hợp 2 bộ có liên quan từ 2 quan hệ
thành 1 bộ
• Ký hiệu R S
o R(A1, A2, …, An) và (B1, B2, …, Bm)

• Kết quả của phép kết là một quan hệ Q


o Có n + m thuộc tính Q(A1, A2, …, An, B1, B2, …, Bm)
o 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 , , , , , 

46
Phép kết (tt)

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

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

o Kết tự nhiên (natural join)


oKý hiệu R S hay R  S
oR+  Q+  
oKết quả của phép kết bằng bỏ bớt đi 1 cột giống nhau

47
Phép kết (tt)
• Ví dụ phép kết theta

R B<D S
R A B C S D E A B C D E

1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 1 2 3 6 2
7 8 9 4 5 6 6 2

R C S = C(R  S)

48
Phép kết (tt)
• Ví dụ phép kết bằng
R C=D S
R A B C S D E A B C D E

1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 4 5 6 6 2
7 8 9

R C=S.C S
R A B C S S.C
C D A B C S.C D

1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 4 5 6 6 2
7 8 9
(S.C,D) S
49
Phép kết (tt)
• Ví dụ phép kết tự nhiên

R S
R A B C S C D AA BB C C S.CD D

1 2 3 3 1 11 22 33 31 1
4 5 6 6 2 44 55 66 62 2
7 8 9

50
Ví dụ
• Cho biết nhân viên có lương hơn lương của nhân
viên ‘Tùng’
o Quan hệ: NHANVIEN
o Thuộc tính: LUONG

NHAN_VIEN(HONV, TENNV, MANV, …, LUONG, PHG)

R1(LG)  LUONG (TENNV=‘Tung’ (NHANVIEN))


KQ  NHAN_VIEN LUONG>LG R1

KQ(HONV, TENNV, MANV, …, LUONG, LG)


51
Ví dụ
• 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
o Quan hệ: NHANVIEN, PHONGBAN

NHANVIEN(HONV, TENNV, MANV, …, PHG)


PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC)

KQ  NHANVIEN PHG=MAPHG PHONGBAN

KQ(HONV, TENNV, MANV, …, PHG, TENPHG, MAPHG, …)

52
Ví dụ
• Với mỗi phòng ban hãy cho biết các địa điểm
của phòng ban đó
o Quan hệ: PHONGBAN, DDIEM_PHG

PHONGBAN(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC)


DDIEM_PHG(MAPHG, DIADIEM)

KQ  PHONGBAN DDIEM_PHG

KQ(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC, DIADIEM)

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

• Cho biết lương cao nhất trong công ty


o Quan hệ: NHANVIEN
o Thuộc tính: LUONG

• Cho biết phòng ban có cùng địa điểm với phòng 5


o Quan hệ: DDIEM_PHG

54
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 ĐSQH
o Nghĩa là các phép toán có thể được biểu diễn qua chúng
o Ví dụ
 RS = RS  ((RS)  (SR)) S-R

R CS =  (RS)
C R RS S

R-S

55
Nội dung chi tiết
• Giới thiệu
• Đại số quan hệ
• Phép toán tập hợp
• Phép chọn
• Phép chiếu
• Phép tích Cartesian
• Phép kết
• Phép chia
• Các phép toán khác
• Các thao tác cập nhật trên quan hệ
56
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
o 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)


o Với Y=Z-X
o 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)
 tR(Y) = t X Y
 tR(X) = tS(X)
57
Phép chia (tt)
• Ví dụ
RS

R A B C D E S D E A B C

 a  a 1 a 1  a 
 a  a 1 b 1  a 
 a  b 1
 a  a 1
 a  b 3
 a  a 1
 a  b 1
 a  b 1

58
Ví dụ
• Cho biết mã nhân viên tham gia tất cả các đề án
o Quan hệ: THAMGIA, DEAN
o Thuộc tính: MANV, MaDEAN
Q1  MaDEAN(DEAN)
Q2  MaNV, MaDEAN(THAMGIA)
KQ  Q2  Q1
• Cho biết họ tên nhân viên tham gia tất cả các đề án do phòng số 5
phụ trách
o Quan hệ: NHANVIEN, THAMGIA, DEAN
o Thuộc tính: MANV, MaDEAN, Ho, Ten
o Điều kiện: PHG=5
Q1  MaDEAN(PhongPT = 5(DEAN))
Q2  MaNV, MaDEAN(THAMGIA)
Q3  Q2  Q1
KQ  Ho, Ten(Q3 * NHANVIEN)

59
Phép chia (tt)
• 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
 Y (R)
A B C S D E
Q1   1 7 2   1 7 2
 
Q2  Q1  S  
1 2 5 12 2 5
  12 7 2   23
Q3 Y(Q2  R)   23 7 2   3
  3 1 10  
T  Q1  Q3
23
  23 2 5   12
  23 10 10 A,B,C(R)
  12 1 2

RS A B C
  1
  23
60
Phép chia (tt) Q1   Y (R) Q2  Q1  S
R A B C D E S D E A B C Q2 A B C D E
  1 7 2 7 2   1   1 7 2
  1 2 5 2 5   12   1 2 5
  12 7 2   23   12 7 2
  23 7 2   3   12 2 5
  3 1 10   23   23 7 2
  23 2 5   12   23 2 5
  23 10 10
A,B,C(R)   3 7 2
  12 1 2
Loại bỏ
  3 2 5
các bộ   23 7 2
T  Q1  Q3 không thỏa
  23 2 5
 
 Y(Q2  R)
12 7 2
RS A B C
Q3   12 2 5
  1
  23 Tìm ra bộ
không thỏa
61
Nội dung chi tiết
• Giới thiệu
• Đại số quan hệ
• Phép toán tập hợp
• Phép chọn
• Phép chiếu
• Phép tích Cartesian
• Phép kết
• Phép chia
• Các phép toán khác
o Hàm kết hợp (Aggregation function)
o Phép gom nhóm (Grouping)
o Phép kết ngoài (Outer join)
• Các thao tác cập nhật trên quan hệ

62
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
o AVG
o MIN
o MAX
o SUM
o COUNT

63
Hàm kết hợp (tt)
• Ví dụ

R A B • SUM(B) = 10

1 2 • AVG(A) = 1.5
3 4
1 2 • MIN(A) = 1
1 2
• MAX(B) = 4

• COUNT(A) = 4

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

65
Phép gom nhóm (tt)
• Ví dụ

R A B C ISUM(C)(R) Tổng theo


thuộc tính C
 2 7 SUM_C
 4 7 27
 2 3
 2 10
AISUM(C)(R)
SUM_C

Tổng theo thuộc tính C 14


và gom nhóm theo 3
thuộc tính A 10

66
Phép gom nhóm (tt)
S A B E F
• Ví dụ S(A, B, E, F)(A, BℱSUM(C), AVG(C)(R))
  1 1
  5 5
  32 16
R A B C D
  1 7
  5 8 AℱMAX(C), MIN(C)(R) A MAX_C MIN_C
  12 3  5 1
  20 10  20 12

ℱCOUNT(C), AVG(D)(R)
COUNT_C AVG_D
4 7

67
Ví dụ
• Tính số lượng nhân viên và lương trung bình của cả công
ty
(SoNV, LuongTB)(ℱCOUNT(MaNV), AVG(Luong) (NHANVIEN))

• Cho biết mã số, tính số lượng nhân viên và lương trung


bình của từng phòng ban
(MaPB, SoNV, LuongTB)(MaPBℱCOUNT(MaNV), AVG(Luong) (NHANVIEN))

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

• Có 3 hình thức
o Mở rộng bên trái
o Mở rộng bên phải
o Mở rộng 2 bên

69
Ví dụ Phép kết mở rộng trái
• Giữ lại tất cả các bộ của quan hệ ở bên trái phép toán kết
mà không liên kết được với bộ nào của quan hệ bên phải.

R A B C S D E
  1 1 7 A B C D E
  5 2 7   1 2 7
  12 12 3   1 12 3
  23 23 10   1 23 10
  5 12 3
R C<D S   5 23 10
  12 23 10
  23 null null

70
Ví dụ
• Cho biết họ tên nhân viên và tên phòng ban mà họ phụ
trách nếu có
o Quan hệ: NHANVIEN, PHONGBAN
o Thuộc tinh: TENNV, TENPH

R1  NHANVIEN MANV=TRPHG PHONGBAN

KQ  HONV,TENNV, TENPHG (R1)

TENNV HONV TENPHG

Tung Nguyen Nghien cuu


Hang Bui null
Nhu Le null
Vinh Pham Quan ly

71
Ví dụ Phép kết mở rộng phải
• Giữ lại tất cả các bộ của quan hệ ở bên phải phép toán kết
mà không liên kết được với bộ nào của quan hệ bên trái.

R A B C S D E A B C D E
  1 1 7   5 1 7
  5 2 7   5 2 7
  12 12 3   12 1 7
  23 23 10   12 2 7
  23 1 7
R C>D S
  23 2 7
  23 12 3
null null null 23 10
Ví dụ Phép kết mở rộng hai phía
• Giữ lại tất cả các bộ của từng quan hệ ở hai bên phép
toán kết mà không liên kết được với bộ nào của quan hệ
còn lại.
R A B C S D E
  1 1 7
  5 2 7 A B C D E
  12 12 3   1 1 7
  23 23 10   12 12 3
  23 23 10
R C=D S   5 null null
null null null 2 7
Nội dung chi tiết
• Giới thiệu
• Đại số quan hệ
• Phép toán tập hợp
• Phép chọn
• Phép chiếu
• Phép tích Cartesian
• Phép kết
• Phép chia
• Các phép toán khác
• Các thao tác cập nhật trên quan hệ
74
Các thao tác cập nhật
• Nội dung của CSDL có thể được cập nhật bằng các thao
tác
o Thêm (Insertion)
o Xóa (Deletion)
o Sửa (Updating)

• Các thao tác cập nhật được diễn đạt thông qua phép
toán gán

Rnew  các phép toán trên Rold

75
Thao tác thêm
• Được diễn đạt

Rnew  Rold  E

o R là quan hệ
o E là một biểu thức ĐSQH

• Ví dụ
o Phân công nhân viên có mã 123456789 làm thêm đề án mã số 20 với số
giờ là 10

PHANCONG  PHANCONG  (‘123456789’, 20, 10)

76
Thao tác xóa
• Được diễn đạt
Rnew  Rold  E

o R là quan hệ
o E là một biểu thức ĐSQH

• Ví dụ
o Xóa các phân công đề án của nhân viên 123456789

PHANCONG  PHANCONG   MANV=‘123456789’(PHANCONG)

o Xóa những phân công đề án có địa điểm ở ‘Vũng Tàu’ ?

77
Thao tác sửa
• Được diễn đạt
Rnew  F1, F2, …, Fn (Rold)

o R là quan hệ
o Fi là biểu thức tính toán cho ra giá trị mới của thuộc tính

• Ví dụ
o Tăng thời gian làm việc cho tất cả nhân viên lên 1.5 lần

PHANCONG MA_NVIEN, SODA, THOIGIAN*1.5(PHANCONG)


o Các nhân viên làm việc trên 30 giờ sẽ được tăng thời gian làm việc
lên 1.5 lần, còn lại tăng lên 2 lần?

78

You might also like