Bài giảng môn Cơ sở dữ liệu - Chương 3: Đại số quan hệ

Đại số

– Toán tử (operator)

– Toán hạng (operand)

Trong số học

– Toán tử: +, -, *, /

– Toán hạng - biến (variables): x, y, z

– Hằng (constant)

– Biểu thức

• (x+7) / (y-3)

• (x+y)*z and/or (x+7) / (y-3)

Khoa CNTT – Đại học Sài Gòn 8

2. Đại số quan hệ

Biến là các quan hệ

– Tập hợp (set) các bộ dữ liệu (dòng dữ liệu trong bảng)

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

– Trên tập hợp

• Hợp  (union)

• Giao  (intersec)

• Trừ  (difference)

– Rút trích 1 phần của quan hệ

• Chọn  (selection)

• Chiếu  (projection)

– Kết hợp các quan hệ

• Tích Cartesian  (Cartesian product)

• Kết (join)

– Đổi tên 

pdf 22 trang kimcuc 3640
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn Cơ sở dữ liệu - Chương 3: Đại số quan hệ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng môn Cơ sở dữ liệu - Chương 3: Đại số quan hệ

Bài giảng môn Cơ sở dữ liệu - Chương 3: Đại số quan hệ
1CƠ SỞ DỮ LIỆU
ĐẠI SỐ QUAN HỆ
Chương 3
Khoa CNTT – Đại học Sài Gòn 3
Nội dung chi tiết
1. Giới thiệu
2. Đại số quan hệ
3. Phép toán tập hợp
4. Phép chọn
5. Phép chiếu
6. Phép tích Cartesian (Cartesian Product)
7. Phép kết
8. Phép chia
9. Các phép toán khác
10.Các thao tác cập nhật trên quan hệ
Khoa CNTT – Đại học Sài Gòn 4
1. 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
Quang Pham 11/10/1937 450 TV HN Nam 15000 1
4
TENNV HONV NGSINH DCHI PHAI LUONG PHONG
Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000
Hang Bui 07/19/1968 332 NTH Q1 Nu 25000
Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4
Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5
51
Tung Nguyen 12/08/1955
Hang Bui 07/19/1968
Nhu Le 06/20/1951
2Khoa CNTT – Đại học Sài Gòn 5
1. Giới thiệu
Có 2 loại xử lý
– 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)
• Truy vấn (query)
Thực hiện các xử lý 
– Đại số quan hệ (Relational Algebra)
• Biểu diễn câu truy vấn dưới dạng biểu thức
– Phép tính quan hệ (Relational Calculus)
• Biểu diễn kết quả
– SQL (Structured Query Language)
Khoa CNTT – Đại học Sài Gòn 6
Nội dung chi tiết
1. Giới thiệu
2. Đại số quan hệ
3. Phép toán tập hợp
4. Phép chọn
5. Phép chiếu
6. Phép tích Cartesian (Cartesian Product)
7. Phép kết
8. Phép chia
9. Các phép toán khác
10.Các thao tác cập nhật trên quan hệ
Khoa CNTT – Đại học Sài Gòn 7
2. Đại số quan hệ
Đại số
– Toán tử (operator)
– Toán hạng (operand)
Trong số học
– Toán tử: +, -, *, /
– Toán hạng - biến (variables): x, y, z
– Hằng (constant)
– Biểu thức
• (x+7) / (y-3)
• (x+y)*z and/or (x+7) / (y-3)
Khoa CNTT – Đại học Sài Gòn 8
2. Đại số quan hệ
Biến là các quan hệ
– Tập hợp (set) các bộ dữ liệu (dòng dữ liệu trong bảng)
Toán tử là các phép toán (operations)
– Trên tập hợp
• Hợp  (union)
• Giao  (intersec)
• Trừ (difference)
– Rút trích 1 phần của quan hệ
• Chọn  (selection)
• Chiếu (projection)
– Kết hợp các quan hệ
• Tích Cartesian (Cartesian product)
• Kết (join)
– Đổi tên 
3Khoa CNTT – Đại học Sài Gòn 9
2. Đại số quan hệ
• Hằng số là thể hiện của quan hệ
• Biểu thức 
– Được gọi là câu truy vấn
– Là chuỗi các phép toán đại số quan hệ 
– Kết quả trả về là một thể hiện của quan hệ
Khoa CNTT – Đại học Sài Gòn 10
Nội dung chi tiết
1. Giới thiệu
2. Đại số quan hệ
3. Phép toán tập hợp
3.1. Phép hợp  (Union)
3.2. Phép giao  (Intersection)
3.3. Phép trừ - (Difference)
4. Phép chọn
5. Phép chiếu
6. Phép tích Cartesian (Cartesian Product)
7. Phép kết
8. Phép chia
9. Các phép toán khác
10.Các thao tác cập nhật trên quan hệ
Khoa CNTT – Đại học Sài Gòn 11
3. Phép toán tập hợp
Quan hệ là tập hợp các bộ
– Phép hợp R  S
– Phép giao R  S
– Phép trừ R S
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
• 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)
Khoa CNTT – Đại học Sài Gòn 12
3. Phép toán tập hợp
Ví dụ:
TENNV NGSINH PHAI
Tung 12/08/1955 Nam
Hang 07/19/1968 Nu
Nhu 06/20/1951 Nu
Hung 09/15/1962 Nam
NHAN_VIEN TENTN NG_SINH PHAITN
Trinh 04/05/1986 Nu
Khang 10/25/1983 Nam
Phuong 05/03/1958 Nu
Minh 02/28/1942 Nam
THAN_NHAN
Chau 12/30/1988 Nu
Bậc n=3
DOM(TENNV) = DOM(TENTN)
DOM(NGSINH) = DOM(NG_SINH)
DOM(PHAI) = DOM(PHAITN)
 Quan hệ NHAN_VIEN & THAN_NHAN Khả hợp
4Khoa CNTT – Đại học Sài Gòn 13
3. Phép toán tập hợp
Các tính chất: 
– Giao hoán
– Kết hợp
R  S = S  R
R  S = S  R
R  (S  T) = (R  S)  T
R  (S  T) = (R  S)  T
Khoa CNTT – Đại học Sài Gòn 14
3.1. Phép hợp  (Union)
Cho 2 quan hệ R và S khả hợp
Phép hợp 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ỏ)
Ví dụ
R  S = { t / t R  t S }
A B
R

1
2
1
A B
S

2
3
A B
R  S

1
2
1
 3
 2
Khoa CNTT – Đại học Sài Gòn 15
3.1. Phép hợp  (Union)
Ví dụ: Xét 2 quan hệ của 2 lược đồ quan hệ NV1(Q1) và
NV2(Q2):
Q = Q1  Q2 ?
Khoa CNTT – Đại học Sài Gòn 16
3.2. Phép giao  (Intersection)
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
Ví dụ
R  S = { t / t R  t S }
A B
R

1
2
1
A B
S

2
3
A B
R  S
2
5Khoa CNTT – Đại học Sài Gòn 17
3.2. Phép giao  (Intersection)
Ví dụ: Xét 2 quan hệ của 2 lược đồ quan hệ NV1(Q1) và
NV2(Q2):
Q = Q1  Q2 ?
Khoa CNTT – Đại học Sài Gòn 18
3.3. Phép trừ - (Diference)
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 và không thuộc S
Ví dụ
R S = { t / t R  t S }
A B
R

1
2
1
A B
S

2
3
A B
R S

1
1
Khoa CNTT – Đại học Sài Gòn 19
3.3. Phép trừ - (Diference)
Ví dụ: Xét 2 quan hệ của 2 lược đồ quan hệ NV1(Q1) và
NV2(Q2):
Q = Q1 - Q2 ?
Khoa CNTT – Đại học Sài Gòn 20
Nội dung chi tiết
1. Giới thiệu
2. Đại số quan hệ
3. Phép toán tập hợp
4. Phép chọn
5. Phép chiếu
6. Phép tích Cartesian (Cartesian Product)
7. Phép kết
8. Phép chia
9. Các phép toán khác
10.Các thao tác cập nhật trên quan hệ
6Khoa CNTT – Đại học Sài Gòn 21
4. Phép chọn  (Selection)
Đượ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 là biểu thức gồm các mệnh đề có dạng
– 
– 
• gồm , , , , , 
• Các mệnh đề được nối lại nhờ các phép  ,  , 
 P (R)
Khoa CNTT – Đại học Sài Gòn 22
4. Phép chọn  (Selection)
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ụ
 (A=B)(D>5) (R) A B
R

C
1
5
12
 23
D
7
7
3
10



A B
C
1
 23
D
7
10

Khoa CNTT – Đại học Sài Gòn 23
4. Phép chọn  (Selection)
Phép chọn có tính giao hoán
Ví dụ 1: Cho biết các nhân viên ở phòng số 4
– Quan hệ: NHAN_VIEN 
– Thuộc tính: PHONG
– Điều kiện: PHONG=4
 p1 ( p2 (R)) =  p2 ( p1 (R)) =  p1  p2 (R)
 PHONG=4 (NHAN_VIEN)
Khoa CNTT – Đại học Sài Gòn 24
4. Phép chọn  (Selection) (4)
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ệ: NHAN_VIEN
– Thuộc tính: LUONG, PHONG
– Điều kiện:
• LUONG>25000 và PHONG=4 hoặc
• LUONG>30000 và PHONG=5
 (LUONG>25000  PHONG=4)  (LUONG>30000  PHONG=5) (NHAN_VIEN)
7Khoa CNTT – Đại học Sài Gòn 25
Nội dung chi tiết
1. Giới thiệu
2. Đại số quan hệ
3. Phép toán tập hợp
4. Phép chọn
5. Phép chiếu
6. Phép tích Cartesian (Cartesian Product)
7. Phép kết
8. Phép chia
9. Các phép toán khác
10.Các thao tác cập nhật trên quan hệ
Khoa CNTT – Đại học Sài Gòn 26
5. Phép chiếu (Projection)
Được dùng để lấy ra một vài cột của quan hệ R
Ký hiệu
Kết quả trả về là một quan hệ
– Có k thuộc tính
– Có số bộ luôn ít hơn hoặc bằng số bộ của R
Ví dụ
 A1, A2, , Ak(R)
A C
 1
A B
R

10
20
30
C
1
1
1
 40 2
 A,C (R)
 1
 2
 1
Khoa CNTT – Đại học Sài Gòn 27
5. Phép chiếu (Projection)
Phép chiếu không có tính giao hoán
 A1, A2, , An( A1, A2, , Am(R)) = A1, A2, , An (R) , với n m
 X,Y (R) = X ( Y (R)) 
Khoa CNTT – Đại học Sài Gòn 28
5. Phép chiếu (Projection)
Ví dụ: Cho biết họ tên và lương của các nhân viên
– Quan hệ: NHAN_VIEN
– Thuộc tính: HONV, TENNV, LUONG
 HONV,TENNV,LUONG (NHAN_VIEN)
8Khoa CNTT – Đại học Sài Gòn 29 Khoa CNTT – Đại học Sài Gòn 30
Bài tập 1:
Cho biết mã nhân viên có tham gia đề án hoặc có thân
nhân
 Gợi ý: Sử dụng phép hợp
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
Khoa CNTT – Đại học Sài Gòn 31
Bài tập 2:
Cho biết mã nhân viên có người thân và có tham
gia đề án
 Gợi ý: Sử dụng phép giao
Khoa CNTT – Đại học Sài Gòn 32
Bài tập 3:
Cho biết mã nhân viên không có thân nhân nào
 Sử dụng phép trừ
Quan hệ: NHANVIEN
Thuộc tính: MANV
Quan hệ: THANNHAN
Thuộc tính: MANV
9Khoa CNTT – Đại học Sài Gòn 33
5. Phép chiếu (Projection)
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)
– 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
Khoa CNTT – Đại học Sài Gòn 34
5. Phép chiếu (Projection)
Ví dụ:
– Cho biết họ, tên của nhân viên và lương của họ sau khi
tăng 10%
CHÚ Ý: Câu truy vấn này không làm thay đổi dữ liệu trong
CSDL
 HONV, TENNV, LUONG*1,1 (NHANVIEN)
Khoa CNTT – Đại học Sài Gòn 35
Kết hợp 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
– Thực hiện từng phép toán một
• B1
• B2
 A1, A2, , Ak (P (R)) P ( A1, A2, , Ak (R))
P (R) 
 A1, A2, , Ak (Quan hệ kết quả ở B1)
Cần đặt tên cho quan hệ
Khoa CNTT – Đại học Sài Gòn 36
Nội dung chi tiết
1. Giới thiệu
2. Đại số quan hệ
3. Phép toán tập hợp
4. Phép chọn
5. Phép chiếu
6. Phép tích Cartesian (Cartesian Product)
7. Phép kết
8. Phép chia
9. Các phép toán khác
10.Các thao tác cập nhật trên quan hệ
10
Khoa CNTT – Đại học Sài Gòn 37
5. Phép tích Cartesian X (Cartersian Product)
Dùng để kết hợp các bộ của các quan hệ lại với nhau
Ký hiệu:
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 (R+  Q+  )
R S
Khoa CNTT – Đại học Sài Gòn 38
Ví dụ
5. Phép tích Cartesian X (Cartersian Product)
Khoa CNTT – Đại học Sài Gòn 39
Ví dụ: Xét 2 quan hệ của 2 lược đồ quan hệ NV1(Q1) và 
KHOA(Q2)
Q = Q1 x Q2 ?
5. Phép tích Cartesian X (Cartersian Product)
Khoa CNTT – Đại học Sài Gòn 40
Thông thường theo sau phép tích Cartesian là phép chọn 
 để lọc thông tin
R S
A R.B

1
2
 2
 1
 1
 1
 2
 2
S.B C
10
10
 10
 10
 20
 10
 20
 10
D
+
+
+
+
-
-
-
-
A=S.B (R S)
A R.B
 1
 2
 2
S.B C
 10
 10
 20
D
+
+
-
5. Phép tích Cartesian X (Cartersian Product)
11
Khoa CNTT – Đại học Sài Gòn 41
Ví dụ 1: Với mỗi phòng ban, cho biết thông tin của người 
trưởng phòng
– Quan hệ: PHONG_BAN, NHAN_VIEN 
– Thuộc tính: TRPHG, MAPHG, TENNV, HONV, 
TENPHG MAPHG TRPHG NG_NHANCHUC
Nghien cuu 5 333445555 05/22/1988
Dieu hanh 4 987987987 01/01/1995
Quan ly 1 888665555 06/19/1981
TENNV HONV NGSINH DCHI PHAI LUONG PHG
Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5
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
333445555
987987987
987654321
999887777
MANV
TENPHG MAPHG TRPHG NG_NHANCHU
C
Nghien cuu 5 333445555 05/22/1988
Dieu hanh 4 987987987 01/01/1995
Quan ly 1 888665555 06/19/1981
TENNV HONV
Tung Nguyen
Hung Nguyen
333445555
987987987
888665555
MANV
Vinh Pham
5. Phép tích Cartesian X (Cartersian Product)
Khoa CNTT – Đại học Sài Gòn 42
B1: Tích Cartesian PHONG_BAN và NHAN_VIEN
B2: Chọn ra những bộ thỏa TRPHG=MANV
PB_NV  (NHAN_VIEN PHONG_BAN)
KQ TRPHG=MANV(PB_NV)
5. Phép tích Cartesian X (Cartersian Product)
Khoa CNTT – Đại học Sài Gòn 43
Ví dụ 2: 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 địa điểm nào?
Phòng nào có địa điểm nằm 
trong trong tập hợp đó?
DIADIEMMAPHG
1
4
5
5
TP HCM
VUNGTAU
NHATRANG
HA NOI
5 TP HCM
DIADIEMMAPHG
1
4
5
5
TP HCM
VUNGTAU
NHATRANG
HA NOI
5 TP HCM
5. Phép tích Cartesian X (Cartersian Product)
Khoa CNTT – Đại học Sài Gòn 44
B1: Tìm các địa điểm của phòng 5
B2: Lấy ra các phòng có cùng địa điểm với DD_P5
DD_P5(DD)  DIADIEM (MAPHG=5 (DIADIEM_PHG))
R2 DIADIEM=DD (R1 DD_P5)
KQ  MAPHG (R2)
R1 MAPHG 5 (DIADIEM_PHG)
5. PHÉP TÍCH CARTESIAN X (CARTERSIAN PRODUCT)
12
Khoa CNTT – Đại học Sài Gòn 45
Nội dung chi tiết
1. Giới thiệu
2. Đại số quan hệ
3. Phép toán tập hợp
4. Phép chọn
5. Phép chiếu
6. Phép tích Cartesian (Cartesian Product)
7. Phép kết
7.1. Kết có điều kiện tổng quát (Theta join)
7.2. Kết bằng (Equi join)
7.3. Kết tự nhiên (Natural join)
8. Phép chia
9. Các phép toán khác
10.Các thao tác cập nhật trên quan hệ
Khoa CNTT – Đại học Sài Gòn 46
7. Phép kết  (Join)
Được dùng để tổ hợp 2 bộ có liên quan từ 2 quan hệ
thành 1 bộ (thỏa điều kiện)
Ký hiệu R S
– R(A1, A2, , An) và (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 đó (điều kiện:  )
• 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 = Phép tích Descarte + Chọn
Khoa CNTT – Đại học Sài Gòn 47
7. Phép kết  (Join)
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+  Q+  (phải có cột giống nhau)
• Kết quả của phép kết tự nhiên bỏ bớt đi 1 cột giống nhau
Khoa CNTT – Đại học Sài Gòn 48
7.1. Phép kết theta
Ví dụ:
D E
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R B<D S
1 2 3 3 1
1 2 3 6 2
4 5 6 6 2
A B C D E
R C S = C(R S)
13
Khoa CNTT – Đại học Sài Gòn 49
7.2. Phép kết bằng
Ví dụ:
D E
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R C=D S
A B
1 2
C
3
4 5 6
D
3
E
1
6 2
C D
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R C=S.C S
A B
1 2
C
3
4 5 6
S.
C
3
D
1
6 2
S.
C
 (S.C,D) S
Khoa CNTT – Đại học Sài Gòn 50
7.3. Phép kết tự nhiên
Ví dụ:
LƯU Ý: Thường dùng phép kết này trong câu truy vấn
R S
C D
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
A B
1 2
C
3
4 5 6
S.
C
3
D
1
6 2
A B
1 2
C
3
4 5 6
D
1
2
Khoa CNTT – Đại học Sài Gòn 51
Ví dụ 1:
Cho biết nhân viên có lương hơn lương của nhân viên 
‘Tùng’
– Quan hệ: NHAN_VIEN
– Thuộc tính: LUONG
NHAN_VIEN(HONV, TENNV, MANV, , LUONG, PHG)
R1(LG)  LUONG (TENNV=‘Tung’ (NHAN_VIEN))
KQ  NHAN_VIEN LUONG>LG R1
KQ(HONV, TENNV, MANV, , LUONG, LG)
Khoa CNTT – Đại học Sài Gòn 52
Ví dụ 2:
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 hệ: NHAN_VIEN, PHONG_BAN
PHONG_BAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC)
NHAN_VIEN(HONV, TENNV, MANV, , PHG)
KQ  NHAN_VIEN PHG=MAPHG PHONG_BAN
KQ(HONV, TENNV, MANV, , PHG, TENPHG, MAPHG, )
14
Khoa CNTT – Đại học Sài Gòn 53
Ví dụ 3:
Với mỗi phòng ban hãy cho biết các địa điểm của phòng 
ban đó
– Quan hệ: PHONG_BAN, DDIEM_PHG
PHONG_BAN(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC)
DDIEM_PHG(MAPHG, DIADIEM)
KQ(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC, DIADIEM)
KQ  PHONG_BAN MAPHG=MAPHG DDIEM_PHG
Khoa CNTT – Đại học Sài Gòn 54
Bài tập:
1. Với mỗi phòng ban hãy cho biết thông tin của người
trưởng phòng
– Quan hệ: PHONG_BAN, NHAN_VIEN
2. Cho biết lương cao nhất trong công ty
– Quan hệ: NHAN_VIEN
– Thuộc tính: LUONG
3. Cho biết phòng ban có cùng địa điểm với phòng 5
– Quan hệ: DDIEM_PHG
Khoa CNTT – Đại học Sài Gòn 55
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
– Nghĩa là các phép toán có thể được biểu diễn qua chúng
– Ví dụ
• RS = RS ((R S)  (S R))
• R CS = C(R S)
Khoa CNTT – Đại học Sài Gòn 56
Ôn bài
Hợp: R  S : R / S / R&S
Giao: R  S: R &S Số thuộc tính
Trừ: R – S: R & không S không đổi
Chọn: P (R) Chọn vài bộ thỏa đk P
Chiếu: A1,A2,..Ak (R) Chọn vài cột
Tích: R x S: u x v bộ & n+m thuộc tính
Join: R C S = X +  n+ m thuộc tính
15
Khoa CNTT – Đại học Sài Gòn 57
Bài tập
Liệt kê danh sách mã NV, tên NV, tên phòng mà 
họ làm việc
Khoa CNTT – Đại học Sài Gòn 58
Bài tập
Liệt kê danh sách mã phòng, tên phòng, địa điểm của 
phòng ban đó
Khoa CNTT – Đại học Sài Gòn 59
Nội dung chi tiết
1. Giới thiệu
2. Đại số quan hệ
3. Phép toán tập hợp
4. Phép chọn
5. Phép chiếu
6. Phép tích Cartesian (Cartesian Product)
7. Phép kết
8. Phép chia
9. Các phép toán khác
10.Các thao tác cập nhật trên quan hệ
Khoa CNTT – Đại học Sài Gòn 60
8. 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
• tR(Y) = t
• tR(X) = tS(X)
X Y
T(Y
)
S(X)R(Z)
16
Khoa CNTT – Đại học Sài Gòn 61
8. Phép chia
Ví dụ
A B

a
a
 a
 a
 a
 a
 a
 a
C D

a
b
 a
 a
 b
 a
 b
 b
E
1
3
1
1
1
1
1
1
R D E
a
S
b
1
1
R  S
A B C
 a 
 a 
Khoa CNTT – Đại học Sài Gòn 62
Khoa CNTT – Đại học Sài Gòn 63
Bài tập 1
Cho biết mã nhân viên tham gia tất cả các đề án
Quan hệ: PHAN_CONG, DE_AN
Thuộc tính: MANV
πMANV(PHANCONG ÷DEAN)
Khoa CNTT – Đại học Sài Gòn 64
Bài tập 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ệ: PHAN_CONG, DE_AN
– Thuộc tính: MANV
– Điều kiện: PHONG=4
πMANV(σPHONG=4(PHANCONG ÷DEAN))
17
Khoa CNTT – Đại học Sài Gòn 65
8. Phép chia
Biểu diễn phép chia thông qua tập đầy đủ các phép toán ĐSQH
Các bước:
Q1  Y(R) Chọn Y trên R
Q2  Q1 S Tích RY x S
Q3  Y(Q2 R) ((RY x S)-R)Y
(Q3: Đến đây ta tìm ra những Y
không tham gia đầy đủ vào S)
T  Q1 Q3 RY - ((RY x S)-R)Y
X Y
T(Y)S(X)R(Z)
X:DA
Y:NV
Z:PCông
Khoa CNTT – Đại học Sài Gòn 66
8. Phép chia
R
MADA MANV
DA01 NV01
DA01 NV02
DA02 NV01
DA03 NV01
T
MANV
NV01
S
MADA
DA01
DA02
DA03
Q2=Q1xS
MADA MANV
DA01 NV01 *
DA01 NV02 *
DA02 NV01 *
DA02 NV02
DA03 NV01 *
DA03 NV02
Q1=RY
MANV
NV01
NV02
Q3= Y(Q2 R)
MANV
NV02
Khoa CNTT – Đại học Sài Gòn 67
Nội dung chi tiết
1. Giới thiệu
2. Đại số quan hệ
3. Phép toán tập hợp
4. Phép chọn
5. Phép chiếu
6. Phép tích Cartesian (Cartesian Product)
7. Phép kết
8. Phép chia
9. Các phép toán khác
9.1. Phép gán
9.2. Phép đổi tên
9.3. Hàm kết hợp (Aggregation function)
9.4. Phép gom nhóm (Grouping)
9.5. Phép kết ngoài (Outer join)
10.Các thao tác cập nhật trên quan hệ
Khoa CNTT – Đại học Sài Gòn 68
9.1. Phép gán (Assignment)
Được sử dụng để nhận lấy kết quả trả về của một phép 
toán
– Thường là kết quả trung gian trong chuỗi các phép toán 
Ký hiệu 
Ví dụ
– B1
– B2
S P (R) 
KQ  A1, A2, , Ak (S)
18
Khoa CNTT – Đại học Sài Gòn 69
9.2. Phép đổi tên (Rename)
Được dùng để đổi tên 
– Quan hệ
– Thuộc tính
 S(R) : Đổi tên quan hệ R thành S
Xét quan hệ R(B, C, D)
 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)
Khoa CNTT – Đại học Sài Gòn 70
9.3. 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
Khoa CNTT – Đại học Sài Gòn 71
9.3. Hàm kết hợp
Ví dụ
A B
1
R
3
2
4
1
1
2
2
SUM(B) = 10
AVG(A) = 1.5
MIN(A) = 1
MAX(B) = 4
COUNT(A) = 4
Khoa CNTT – Đại học Sài Gòn 72
9.4. 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
– 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
G1, G2, , GnIF1(A1), F2(A2), , Fn(An)(E)
19
Khoa CNTT – Đại học Sài Gòn 73
9.4. Phép gom nhóm
Ví dụ
SUM(C)(R)
SUM_C
27
A B
R
2
4


2
2
C
7
7
3
10 ASUM(C)(R)
Khoa CNTT – Đại học Sài Gòn 74
Bài tập:
1. Tính số lượng nhân viên và lương trung bình của cả công
ty
2. Tính số lượng nhân viên và lương trung bình của từng
phòng ban
Khoa CNTT – Đại học Sài Gòn 75
Bài tập:
1. Tính số lượng nhân viên và lương trung bình của cả
công ty
2. Tính số lượng nhân viên và lương trung bình của từng
phòng ban
Khoa CNTT – Đại học Sài Gòn 76
9.5. Phép kết ngoài (OUTER JOIN)
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
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):
20
Khoa CNTT – Đại học Sài Gòn 77
9.5. Phép kết ngoài (OUTER JOIN)
INNER JOIN trả về kết quả là các bản ghi mà trường
được join ở hai bảng khớp nhau, các bản ghi chỉ xuất
hiện ở một trong hai bảng sẽ bị loại.
Khoa CNTT – Đại học Sài Gòn 78
9.5. Phép kết ngoài (OUTER JOIN)
HALF OUTER JOIN (LEFT hoặc
RIGHT): nếu bảng A LEFT
OUTER JOIN với bảng B thì kết
quả gồm các bản ghi có trong
bảng A, với các bản ghi không có
mặt trong bảng B thì các cột từ B
được điền NULL. Các bản ghi chỉ
có trong B mà không có trong A sẽ
không được trả về.
 FULL OUTER JOIN: kết quả
gồm tất cả các bản ghi của cả
hai bảng. Với các bản ghi chỉ
xuất hiện trong một bảng thì
các cột dữ liệu từ bảng kia
được điền giá trị NULL.
Khoa CNTT – Đại học Sài Gòn 79
9.5. Phép kết ngoài
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ó
– Quan hệ: NHAN_VIEN, PHONG_BAN
– Thuộc tinh: TENNV, TENPH
R1  NHAN_VIEN PHG=MAPHG PHONG_BAN
KQ  HONV,TENNV, TENPHG (R1)
TENNV HONV TENPHG
Tung Nguyen Nghien cuu
Hang Bui null
Nhu Le null
Vinh Pham Quan ly
Khoa CNTT – Đại học Sài Gòn 80
Nội dung chi tiết
1. Giới thiệu
2. Đại số quan hệ
3. Phép toán tập hợp
4. Phép chọn
5. Phép chiếu
6. Phép tích Cartesian (Cartesian Product)
7. Phép kết
8. Phép chia
9. Các phép toán khác
10.Các thao tác cập nhật trên quan hệ
10.1. Thêm
10.2. Xóa
10.3. Sửa
21
Khoa CNTT – Đại học Sài Gòn 81
10. 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
– Thêm (insertion)
– Xóa (deletion)
– 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
Khoa CNTT – Đại học Sài Gòn 82
10.1. Thao tác thêm
Được diễn đạt 
– R là quan hệ
– E là một biểu thức ĐSQH
Ví dụ
– 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
Rnew  Rold  E
PHAN_CONG  PHAN_CONG  (‘123456789’, 20, 10)
Khoa CNTT – Đại học Sài Gòn 83
10.2. Thao tác xóa
Được diễn đạt 
– R là quan hệ
– E là một biểu thức ĐSQH
Ví dụ
– Xóa các phân công đề án của nhân viên 123456789
Xóa những phân công đề án có địa điểm ở ‘Ha Noi’ 
Rnew  Rold E
PHAN_CONG  PHAN_CONG MANV=‘123456789’(PHAN_CONG)
Khoa CNTT – Đại học Sài Gòn 84
10.3. Thao tác sửa
Được diễn đạt 
– R là quan hệ
– Fi là biểu thức tính toán cho ra giá trị mới của thuộc tính
Ví dụ
– Tăng thời gian làm việc cho tất cả nhân viên lên 1.5 lần
– 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
Rnew  F1, F2, , Fn (Rold)
PHAN_CONG  MA_NVIEN, SODA, THOIGIAN*1.5(PHAN_CONG)
22
Khoa CNTT – Đại học Sài Gòn 85
Bài tập
1. Xóa những phân công đề án có địa điểm ở ‘Ha Noi’
2. Các nhân viên làm việc trên 30h sẽ được tăng thời
gian làm việc lên 1.5 còn lại tăng lên 2 lần
Thank you!

File đính kèm:

  • pdfbai_giang_mon_co_so_du_lieu_chuong_3_dai_so_quan_he.pdf