Professional Documents
Culture Documents
BG - Dai So Quan He
BG - Dai So Quan He
BG - Dai So Quan He
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
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)
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)
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
Và có DOM(Ai) = DOM(Bi) , 1 i n
10
Phép toán tập hợp (tt)
• Ví dụ
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 / tR tS }
• Ví dụ
R A B S A B RS 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 / tR tS }
• Ví dụ
R A B S A B RS 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 / tR tS }
• Ví dụ
R A B S A B RS A B
1 2 1
2 3 1
1
14
Các tính chất
• Giao hoán
RS=SR
RS=SR
• 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 ộ ộ
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
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 Điều kiện:
LUONG>25000 và PHG=2 hoặc
LUONG>30000 và PHG=5
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)
• 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
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
Hằng số
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%
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))
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)
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
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)
33
Phép tích Cartesian
• Ký hiệu
RS
o Nếu R có u bộ và S có v bộ thì Q sẽ có u v bộ
34
Phép tích Cartesian (tt)
• Ví dụ
RS
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
RS 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
RS A=S.B (R S)
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 …
38
Ví dụ 8 (tt)
• B1: Tích Cartesian PHONGBAN và NHANVIEN
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
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)
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
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
R1 MAPHG5 (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)
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
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
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
KQ PHONGBAN DDIEM_PHG
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
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ụ
RS = RS ((RS) (SR)) S-R
R CS = (RS)
C R RS 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
XZ
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
RS 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
RS 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ụ
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))
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
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
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
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
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
78