You are on page 1of 98

Bài 04:

ĐẠI SỐ QUAN HỆ
Tài liệu tham khảo

[1] Đỗ Phúc, Nguyễn Đăng Tỵ.


Giáo trình cơ sở dữ liệu.
Đại học Quốc gia Tp.HCM.
[2] Đồng Thị Bích Thủy.
Giáo trình cơ sở dữ liệu.
Đại học Quốc gia Tp.HCM.
[3] Lê Minh Triết.
Slide bài giảng CSDL
Đại học Sư Phạm TP.HCM
[4] Trần Sơn Hải
Slide bài giảng CSDL
Đại học Sư Phạm TP.HCM

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 2


Nội dung

1. Giới thiệu 4.2 Phép giao


4.3 Phép trừ
2. Đại số quan hệ
4.4 Phép tích Cartesian
3. Các phép toán quan hệ 4.5 Phép chia
3.1 Phép chọn 5. Các phép toán khác
3.2 Phép chiếu
5.1 Phép kết
3.3 Phép gán
5.2 Phép kết nội bộ (inner join)
3.4 Phép đổi tên
5.3 Phép kết ngoài
3.5 Kết hợp các phép toán
5.4 Hàm kết hợp và gom nhóm
4. Các phép toán tập hợp 5.5 Các phép toán cập nhật trên quan hệ
4.1 Phép hợp Bài tập
ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 3
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 1
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 GTINH LUONG PHONG
Tung Nguyen 12/8/1989 123 NVC Q5 Nam 15000 1
Lan Tran 23/4/1987 242 NTMK Q3 Nu 17000 4
Hung Pham 12/2/1990 333 PNL Q1 Nam 18000 5
Trang Nguyen 25/7/1991 Dong Nai Nu 16500 5
Ngoc Le 30/5/1988 BRVT Nu 20000 1

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 4


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)
Ngôn ngữ truy vấn (Query Language – QL) :
• Cho phép người dùng rút trích hay cập nhật dữ liệu được lưu trong một mô hình dữ
liệu
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 (ngôn ngữ thủ tục)
• Phép tính quan hệ (Relational Calculus)
• Biểu diễn kết quả (ngôn ngữ phi thủ tục)
• SQL (Structured Query Language)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 5


2. Đại số quan hệ
2. Đại số quan hệ

Khái niệm:
Đại số quan hệ (ĐSQH) có nền tảng toán học (cụ thể là lý thuyết
tập hợp) để mô hình hóa CSDL quan hệ. Đối tượng xử lý là các
quan hệ trong cơ sở dữ liệu quan hệ.
Chức năng:
 Cho phép mô tả các phép toán rút trích dữ liệu từ các quan hệ
trong cơ sở dữ liệu quan hệ.
 Cho phép tối ưu quá trình rút trích bằng các phép toán có sẵn
của lý thuyết tập hợp.
ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 7
2. Đại số quan hệ

 Biến là các quan hệ


• Tập hợp (set)
 Các toán tử thao tác trên 1 / nhiều quan hệ
• Kết quả tạo ra 1 quan hệ mới
• Không làm thay đổi các quan hệ ban đầu
 Kết quả của 1 phép toán là có thể làm đầu vào cho một phép toán khác
 Thao tác với tất cả các bộ trong quan hệ (như các phần tử trong tập hợp)
 Mang tính đóng (closure) : Cho phép các biểu thức lồng nhau như trong
số học

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 8


2. Đại số quan hệ

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 

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 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ệ

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 10


2. Đại số quan hệ

Nhóm phép tính Phép tính Ký hiệu Số quan hệ


Trên tập hợp Phép hợp Union  2
Phép giao Intersec  2
Phép trừ Difference  2
Rút trích 1 phần Phép chọn Selection  1
của quan hệ Phép chiếu Projection  1
Kết hợp các quan Tích Cartesian  2
hệ Cartesian product
Phép kết Join 2
Phép chia Devision ÷ 2

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 11


2. Đại số quan hệ
Phép toán đại số Phép toán đại số quan hệ
- Biến : x, y, z, … - Quan hệ : NhanVien, …
Toán hạng
- Hằng số : 150, … - Thể hiện của quan hệ : t, v,
- Thao tác xử lý giữa các toán - Thao tác xử lý giữa các
hạng quan hệ
Toán tử
để tạo thành giá trị mới : +, -, *, /, để tạo thành quan hệ mới :
… phép chọn , hội , …
- Chuỗi các phép toán đại số
- Chuỗi các phép toán đại số
quan
- Kết quả cho ra một giá trị mới hệ (câu truy vấn)
Biểu thức
(x+7) / (y-3) - Kết quả cho ra một quan
(x+y)*z and/or (x+7) / (y-3) hệ mới
MANV (NHANVIEN)
ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 12
3. Các phép toán
quan hệ
3.1 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 (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 mệnh đề được nối lại nhờ các phép:  ,  , )

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 14


3.1 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
• Không có kết quả trùng
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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 15


3.1 Phép chọn (Selection)

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


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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 16


3.1 Phép chọn (Selection)

VD: Tìm các nhân viên có lương trên 25000 ở phòng 4 hoặc nhân viên có lương
trên 30000 ở phòng 5
• Quan hệ: NHANVIEN
• Thuộc tính: LUONG, PHG
• Điều kiện:
• LUONG>25000 và PHG=4 hoặc
• LUONG>30000 và PHG=5
 (LUONG>25000  PHG=4)  (LUONG>30000  PHG=5) (NHANVIEN)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 17


3.1 Phép chọn (Selection)

VD1: Tìm các nhân viên có lương trên 25000 ở phòng 4 hoặc nhân viên có
lương trên 30000 ở phòng 5
• Quan hệ: NHANVIEN
• Thuộc tính: LUONG, PHG
• Điều kiện:
• LUONG>25000 và PHG=4 hoặc
• LUONG>30000 và PHG=5
 (LUONG>25000  PHG=4)  (LUONG>30000  PHG=5) (NHANVIEN)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 18


3.1 Phép chọn (Selection)

VD2: Tìm học viên nam có nơi sinh ở TPHCM


• Quan hệ: HOCVIEN
• Thuộc tính: MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 19


3.1 Phép chọn (Selection)

VD2: Tìm học viên nam có nơi sinh ở TPHCM


• Quan hệ: HOCVIEN
• Thuộc tính: MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP
• Điều kiện:
• GIOITINH=Nam và
• NOISINH=TPHCM
 (GIOITINH=‘Nam’  NOISINH=‘TPHCM)(HOCVIEN)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 20


3.2 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
A1, A2, …, Ak(R)
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ụ: R A B C  (R)
A,C A C
 10 1  1
 20 1  1
 30 1  2
 40 2

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 21


3.2 Phép chiếu (Projection)
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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 22


3.2 Phép chiếu (Projection)
 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, LUONG

HONV,TENNV,LUONG(NHANVIEN)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 23


3.2 Phép chiếu (Projection)
 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, LUONG

HONV,TENNV,LUONG(NHANVIEN)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 24


3.2 Phép chiếu (Projection)
 Phép chọn với phép chiếu
A1, A2, A3 …, An A1, A2, A3 …, An
 j, j<=i
Phép chọn i

A1, A2, A3 …, An A1, A2, A3 …, Am


Phép chiếu

n m, m<=n
ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 25
3.2 Phép chiếu (Projection)
 VD 1: Tìm mã số, họ tên những học viên ‘Nam’ có nơi sinh ở ‘TpHCM’

πMahv,Hotenσ(Gioitinh=‘Nam’)∧(Noisinh=‘TPHCM’)(HOCVIEN)

MaHV HoTen GioiTinh NoiSinh MaLop


K4703 Le Van Tam Nam An Giang K47
K4714 Tran Ngoc Linh Nu Tay Ninh K47
K4703 Le Thanh Hau Nu Binh Duong K47
K4707 Tran Minh Long Nam TPHCM K47
K4716 Tran Minh Thang Nam TPHCM K47

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 26


3.2 Phép chiếu (Projection)
 VD 2: Cho biết họ tên và mức lương của các giáo viên nữ
•Quan hệ: GIAOVIEN
•Thuộc tính: MAGV, HOTEN, NGAYSINH, GIOITINH, LUONG

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 27


3.2 Phép chiếu (Projection)
 VD 2: Cho biết họ tên và mức lương của các giáo viên nữ
•Quan hệ: GIAOVIEN
•Thuộc tính: MAGV, HOTEN, NGAYSINH, GIOITINH, LUONG
πHOTEN, LUONGσ(Gioitinh=‘Nu’) (GIAOVIEN)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 28


3.2 Phép chiếu (Projection)
 VD 3: Cho biết mã số các giáo viên thuộc bộ môn HTTT hoặc có tham
gia đề tài mã 001
•Quan hệ:
•GIAOVIEN (MAGV,MABM, HOTEN, NGAYSINH, GIOITINH, LUONG)
•THAMGIADT(MADT,TENDT,THGIAN)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 29


3.2 Phép chiếu (Projection)
 VD 3: Cho biết mã số các giáo viên thuộc bộ môn HTTT hoặc có tham
gia đề tài mã 001
•Quan hệ:
•GIAOVIEN (MAGV,MABM, HOTEN, NGAYSINH, GIOITINH, LUONG)
•THAMGIADT(MADT,TENDT,THGIAN,MAGV)

πMAGVσ(MABM=‘HTTT’) (GIAOVIEN)  πMAGVσ(MADT=‘001’) (THAMGIADT)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 30


3.2 Phép chiếu (Projection)
 VD 4: Cho biết tên các công việc bắt đầu trong khoảng từ 01/01/2021
đến 01/08/2021
•Quan hệ: CONGVIEC
•Thuộc tính: NGAYBD

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 31


3.2 Phép chiếu (Projection)
 VD 4: Cho biết tên các công việc bắt đầu trong khoảng từ 01/01/2021
đến 01/08/2021
•Quan hệ: CONGVIEC
•Thuộc tính: NGAYBD
πTENCV σ(NGAYBD>=‘1/1/2021’)  (NGAYBD<=‘1/8/2021’) (CONGVIEC)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 32


3.2 Phép chiếu
 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
 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)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 33


3.3 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ết quả bên phải của phép gán được gán cho biến quan hệ nằm bên trái.
Ký hiệu 
Ví dụ
• B1 S  P(R)
• B2 KQ  A1, A2, …, Ak(S)
Ví dụ:
• R(HO,TEN,LUONG)← πHONV,TENNV,LUONG(NHANVIEN)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 34


3.4 Phép đổi tên (Rename)

Đượ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
• Đổi tên quan hệ R thành S và thuộc tính B thành X
S(X,C,D)(R)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 35


3.4 Phép đổi tên (Rename)

Ví dụ: Cho biết mã số và họ tên giáo viên thuộc bộ môn HTTT
C1:  MAGV, HOTEN (σ MABM=‘HTTT’ (GIAOVIEN))

C2: GV_HTTT  σ MABM=‘HTTT’ (GIAOVIEN)


KQ   MAGV, HOTEN (GV_HTTT)
KQ(MA,TEN)   MAGV, HOTEN (GV_HTTT)
KQ(MA, TEN) (MAGV, HOTEN (GV_HTTT))

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 36


3.5 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
A1, A2, …, Ak(P(R))  P(A1, A2, …, Ak(R))
• 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)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 37


4. Các phép toán
tập hợp
Phép toán tập hợp

Phép hợp R  S Phép giao R  S Phép trừ RS

R
R R

S S
S

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 39


Phép toán tập hợp

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)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 40


Phép toán tập hợp
Ví dụ:
NHANVIEN THANNHAN

TENNV NGSINH GTINH TENTN NG_SINH PHAI


Tung 12/8/1989 Nam Trinh 4/5/1986 Nu
Lan 23/4/1987 Nu Khang 23/4/1997 Nam
Hung 12/2/1990 Nam Minh 28/2/1990 Nam
Trang 25/7/1991 Nu Chau 12/7/1986 Nu
Ngoc 30/5/1988 Nu Mai 17/8/1987 Nu

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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 41


4.1 Phép hợp
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ỏ)
R  S = { t / tR  tS }
Ví dụ: học viên được khen thưởng đợt 1 và đợt 2
DOT1 DOT2 MaHV HoTen
MaHV HoTen MaHV HoTen K1103 Le Van Tam
K1103 Le Van Tam K1101 Le Kieu My K1114 Tran Ngoc Han
K1114 Tran Ngoc Han K1114 Tran Ngoc Han K1203 Le Thanh Hau
K1203 Le Thanh Hau K1308 Nguyen Gia
K1308 Nguyen Gia DOT1  DOT2 K1101 Le Kieu My
ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 42
4.2 Phép giao
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 đồng thời thuộc S
R  S = { t / tR  tS }
Ví dụ: Học viên được khen thưởng cả hai đợt 1 và 2

DOT1 DOT2 MaHV HoTen


MaHV HoTen MaHV HoTen K1114 Tran Ngoc Han
K1103 Le Van Tam K1101 Le Kieu My
K1114 Tran Ngoc Han K1114 Tran Ngoc Han
K1203 Le Thanh Hau
K1308 Nguyen Gia DOT1  DOT2
ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 43
4.3 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
R  S = { t / tR  tS }
Ví dụ: Học viên được khen thưởng đợt 1 nhưng không được khen thường đợt 2

DOT1 DOT2 MaHV HoTen


MaHV HoTen MaHV HoTen K1103 Le Van Tam
K1103 Le Van Tam K1101 Le Kieu My K1203 Le Thanh Hau
K1114 Tran Ngoc Han K1114 Tran Ngoc Han K1308 Nguyen Gia
K1203 Le Thanh Hau
K1308 Nguyen Gia DOT1  DOT2
ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 44
4.4 Phép tích Cartesian
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
• 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à Q có m thuộc tính thì Q sẽ có n + m thuộc tính (R+  Q+ 
)
(R+: Tập thuộc tính của R, Q+: Tập thuộc tính của Q)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 45


4.4 Phép tích Cartesian
Ví dụ: Từ hai quan hệ HOCVIEN và MONHOC, có tất cả những trường hợp nào “học viên
đăng ký học môn học”, giả sử không có bất kỳ điều kiện nào
HOCVIEN MONHOC MaHV HoTen MaMH
MaHV HoTen MaMH K1103 Le Van Tam CSDL
K1103 Le Van Tam CSDL K1114 Tran Ngoc Han CSDL
K1114 Tran Ngoc Han THDC K1203 Le Thanh Hau CSDL
K1203 Le Thanh Hau CTDL K1103 Le Van Tam THDC
K1114 Tran Ngoc Han THDC
K1203 Le Thanh Hau THDC
K1103 Le Van Tam CTDL
K1114 Tran Ngoc Han CTDL
K1203 Le Thanh Hau CTDL

HOCVIEN X MONHOC
ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 46
4.4 Phép tích Cartesian
Ví dụ: RxS

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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 47


4.4 Phép tích Cartesian
Ví dụ 01: RxS

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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 48


4.4 Phép tích Cartesian
Thường sau phép tích 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 + R A B
 2  20 -  1
 2  10 -  2

S B C D
ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 10 + 49

4.4 Phép tích Cartesian
Ví dụ 02: Với mỗi PB, Cho biết thông tin của trưởng phòng
• Quan hệ: PHONGBAN, NHANVIEN
• Thuộc tính: TRPHG, MAPHG, TENNV, HONV, …
MAPHG TENPHG TRPHG NG_NHANCHUC
NC Nghien cuu 123456 22/5/2020
DH Dieu hanh 132458 01/01/2018
QL Quan ly 234567 19/6/2019

MANV HONV TENNV NGSINH DCHI GTINH LUONG PHG


132458 Nguyen Tung 12/8/1989 123 NVC Q5 Nam 15000 DH
123678 Tran Lan 23/4/1987 242 NTMK Q3 Nu 17000 QL
345653 Pham Hung 12/2/1990 333 PNL Q1 Nam 18000 DH
435635 Nguyen Trang 25/7/1991 Dong Nai Nu 16500 NC
223524 Le Ngoc 30/5/1988 BRVT Nu 20000 NC

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 50


4.4 Phép tích Cartesian
Ví dụ 02: Với mỗi PB, Cho biết thông tin của trưởng phòng
• Quan hệ: PHONGBAN, NHANVIEN
• Thuộc tính: TRPHG, MAPHG, TENNV, HONV, …

TENPHG MAPHG TRPHG NG_NHANCHUC HONV TENNV


Nghien cuu NC 123456 22/5/2020 Nguyen Tung
Dieu hanh DH 132458 01/01/2018 Ho Bich
Quan ly QL 234567 19/6/2019 Pham Trang

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 51


4.4 Phép tích Cartesian
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)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 52


4.4 Phép tích Cartesian
Ví dụ 03: Cho biết lương cao nhất trong công ty
• Quan hệ: NHANVIEN
• Thuộc tính: LUONG

HONV TENNV … LUONG LUONG


Nguyen Tung 15000 15000
Tran Lan 17000 17000
… 16000
Nguyen Trang 16500 16500

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 53


4.4 Phép tích Cartesian
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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 54


4.4 Phép tích Cartesian
Ví dụ 04: Cho biết các phòng ban có cùng địa điểm với phòng Nghiên cứu
• Quan hệ: DIADIEM_PHG
• Thuộc tính: DIADIEM, MAPHG
• Điều kiện: MAPHG=NC

Phòng 5 có tập hợp những địa điểm Phòng nào có địa điểm nằm
nào? trong trong tập hợp đó?

MAPHG DIADIEM MAPHG DIADIEM


TC TPHCM TC TPHCM
QL KHANH HOA QL KHANH HOA
NC LONG AN NC LONG AN
NC BINH DUONG NC BINH DUONG
NC TPHCM NC TPHCM

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 55


4.4 Phép tích Cartesian
B1: Tìm các địa điểm của phòng NC

R1 DIADIEM (  MAPHG=‘NC’ (DIADIEM_PHG))

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

R2   MAPHGNC (DIADIEM_PHG)
TC
QL
TPHCM
KHANH HOA
R2

R3  
NC LONG AN
R1.DIADIEM=R2.DIADIEM (R2  R1)
NC BINH DUONG R1

KQ  
MAPHG DIADIEM NC R2.PHG TPHCM R2.DIADIEM
MAPHG (R3)
NC LA TC TPHCM
NC BD
NC TPHCM

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 56


4.4 Phép tích Cartesian
Ví dụ 05: Cho biết họ tên các giáo viên cùng bộ môn với giáo viên ‘Trần Trà Hương’
• Quan hệ: GIAOVIEN
• Thuộc tính: HOTEN, MABM
• Điều kiện: HOTEN = ‘Trần Trà Hương

Giáo viên “Trần Trà Hương” Những giáo viên nào thuộc về
ở bộ môn nào? bộ môn đó?

MABM HOTEN MABM HOTEN


MMT Nguyễn Hoài An MMT Nguyễn Hoài An
HTTT Trần Trà Hương HTTT Trần Trà Hương
HTTT Nguyễn Ngọc Anh HTTT Nguyễn Ngọc Anh
KHMT Trương Nam Sơn KHMT Trương Nam Sơn

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 57


4.4 Phép tích Cartesian
B1: Tìm bộ môn mà giáo viên ‘Trần Trà Hương’ thuộc về

R1  MaBM,MaGV (  HoTen=‘Trần Trà Hương’ (GIAOVIEN))


B2: Lấy ra họ tên các giáo viên cùng bộ môn

R2   MAGVR1.MaGV (GIAOVIEN)

R3   R1.MaBM=R2.MaBM(R1  R2)

KQ   HoTen (R3)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 58


4.5 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(X) = tS(X)
• tR(Y) = t
R(Z) S(X) T(Y)

X Y

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 59


4.5 Phép chia
Ví dụ

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
 a  b 3 RS
 a  a 1 A B C
 a  b 1  a 
 a  b 1  a 

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 60


4.5 Phép chia
Hình thành trên tập thuộc tính A chứa các bộ của R có thể tổ hợp với mọi bộ của S
Biểu diễn bằng các phép toán căn bản:
Q1  A (R)
Q2  Q1  S
Q3  A(Q2  R)
KQ  Q1  Q3

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 61


4.5 Phép chia
Lấy ra tập thuộc tính Y trong R : Q1   A, B, C (R)

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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 62


4.5 Phép chia
Tổ hợp Q1 và S: Q2  Q1 x S

Q1 A B C X S D E Q2 A B C D E
 a  a 1  a  a 1
 a  b 1  a  a 1
 a   a  a 1
 a   a  a 1
 a   a  a 1
 a  b 1
 a  b 1
 a  b 1
 a  b 1
 a  b 1

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 63


4.5 Phép chia X

Lấy ra dòng không đầy đủ : Q3   A,B,C(Q2 -R)

Q2 A B C D E R A B C D E Q3 A B C D E
 a  a 1  a  a 1  a  a 1
 a  a 1  a  a 1  a  b 1
 a  a 1  a  b 1  a  b 1
 a  a 1  a  a 1
 a  a 1  a  b 3
 a  b 1  a  a 1
Q3 A B C
 a  b 1  a  b 1
 a 
 a  b 1  a  b 1
 a 
 a  b 1
 a 
 a  b 1

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 64


4.5 Phép chia X

Loại bỏ tập không đầy đủ từ tập ban đầu: KQ  Q1 - Q3

Q1 A B C Q3 A B C KQ A B C
 a   a   a 
 a   a   a 
 a   a 
 a 
 a 

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 65


4.5 Phép chia
Ví dụ: Cho biết nhân viên tham gia tất cả các đề án
• Quan hệ: PHANCONG, DEAN
• Thuộc tính: MANV
 MANV(PHANCONG ÷DEAN)
B1: DA<-  MaDA(DEAN)
B2: NV_DEAN <- MaNV,MaDA(PHANCONG)
B3:MA_NV<- MANV(NV_DEAN:DA)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 66


4.5 Phép chia
Ví dụ: Cho biết nhân viên tham gia tất cả các đề án do phòng NC phụ
trách
• Quan hệ: PHANCONG, DEAN
• Thuộc tính: MANV
• Điều kiện: MAPHG=NC
 MANV(σMAPHG=‘NC’(PHANCONG ÷DEAN)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 67


5. Các phép toán
khác
5.1 Phép kết (Join)
Dùng để tổ hợp 2 bộ có liên quan từ 2 quan hệ thành 1 bộ
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
đó: (đ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 , , , , , 

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 69


5.1 Phép kết (Join)
Kết theta (theta join) là phép kết có điều kiện
• Ký hiệu R CS

• 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 quả của phép kết bằng trên thuộc tính chung của 2 quan hệ và bỏ bớt đi 1 cột
giống nhau)

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


• Ký hiệu R S hay R  S
• R+  Q+  

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 70


5.1 Phép kết
Ví dụ: R B<D S

R A B C S D E R 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 CS=

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 71


Phép kết
Ví dụ 1: Cho biết NV có lương hơn lương của NV ‘Tùng’
• Quan hệ: NHANVIEN
• Thuộc tính: LUONG
NHANVIEN(HONV, TENNV, MANV, …, LUONG, PHG)

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

KQ  NHANVIEN LUONG>LGR1

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 72


Phép kết
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
NHANVIEN(HONV, TENNV, MANV, …, PHG)
PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 73


Phép kết
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
NHANVIEN(HONV, TENNV, MANV, …, PHG)
PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC)

KQ  NHANVIEN PHG=MAPHGPHONGBAN

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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 74


5.2 Phép kết bằng/kết nội bộ
Kết bằng (equi join) khi C là điều kiện so sánh bằng
(Kết quả của phép kết bằng trên thuộc tính chung của 2 quan hệ và bỏ bớt đi 1 cột
giống nhau)
R C=D S
Ví dụ:
R A B C S D E R 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 C D R A B C S.C E
1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 4 5 6 6 2
75
7 8 9 (S.C,D) S
ThS Ma Ngân Giang - giangmn@hcmup.edu.vn
5.3 Phép kết tự nhiên
Ví dụ: R S

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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 76


5.3 Phép kết tự nhiên
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 đó
PHONGBAN(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC)
DDIEM_PHG(MAPHG, DIADIEM)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 77


5.3 Phép kết tự nhiên
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 đó
PHONGBAN(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC)
DDIEM_PHG(MAPHG, DIADIEM)

KQ  DDIEM_PHG PHONGBAN
KQ(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC,DIADIEM)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 78


5.4 Phép kết ngoài
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) : R ⟕S,
• Mở rộng bên phải (Right outer join): R ⟖ S,
• Mở rộng 2 bên (Full Outer Join): R ⟗ S

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 79


5.4 Phép kết ngoài

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 80


5.5 Hàm kết hợp và gom nhóm

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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 81


5.5 Hàm kết hợp và gom nhóm

Ví dụ:
R A B SUM(B) = 10
1 2 AVG(A) = 1.5
3 4 MIN(A) = 1
1 2
MAX(B) = 4
1 2
COUNT(A) = 4

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 82


5.5 Hàm kết hợp và 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, …, GnIF1(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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 83


5.5 Hàm kết hợp và gom nhóm

Ví dụ: I SUM(C)(R)

R A B C SUM_C
2 7 27
4 7
2 3
2 10
A I SUM(C)(R)

SUM_C
14
3
10

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 84


5.5 Hàm kết hợp và 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, …, GnIF1(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
KETQUATHI(MAHV,MAMH,DIEM)
MONHOC(MAMH,TENMH)
Ví dụ 1:Điểm thi cao nhất, thấp nhất, trung bình của môn CSDL ?

Ví dụ 2:Điểm thi cao nhất, thấp nhất, trung bình của từng môn ?

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 85


5.5 Hàm kết hợp và gom nhóm

KETQUATHI(MAHV,MAMH,DIEMTHI)
MONHOC(MAMH,TENMH)
Ví dụ 1:Điểm thi cao nhất, thấp nhất, trung bình của môn CSDL ?
IMAX(DIEMTHI),MIN(DIEMTHI)AVG(DIEMTHI)( MAMH=‘CSDL’(KETQUATHI)

Ví dụ 2:Điểm thi cao nhất, thấp nhất, trung bình của từng môn ?
MAMHIMAX(DIEMTHI),MIN(DIEMTHI)AVG(DIEMTHI)(KETQUATHI)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 86


5.6 Các thao tác cập nhật trên quan hệ

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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 87


5.6.1 Thao tác thêm

Được diễn đạt


Rnew  Rold  E
• 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
PHANCONG  PHANCONG  (‘123456789’, 20, 10)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 88


5.6.2 Thao tác xóa

Được diễn đạt


Rnew  Rold - E
• 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

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

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 89


5.6.3 Thao tác sửa

Được diễn đạt


Rnew  F1, F2, …, Fn(Rold)
• 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
PHANCONG MA_NVIEN, SODA, THOIGIAN*1.5(PHANCONG)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 90


Hết
Bài tập
Lược đồ CSDL quản lý bán hàng gồm có các quan hệ sau:

KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)


NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
Mô tả các câu truy vấn sau bằng ĐSQH
1. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quốc” sản xuất có giá từ 30.000 đến 40.000
2. In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007.
3. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất hoặc các sản phẩm được bán ra trong ngày 1/1/2007.
4. Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01” và “BB02”.
5. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất không bán được trong năm 2006.
6. Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản xuất

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 92


1. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc”
sản xuất có giá từ 30.000 đến 40.000
 MASP,TENSPσ(NUOCSX=‘TrungQuoc’)∧(30000 ≤ GIA≤40000)(SANPHAM)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 93


2. In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng
trong ngày 1/1/2007.

MAKH
 MAKH,HOTENσ(NGHD=#1/1/2007#)(HOADON KHACHHANG)

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 94


3. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc”
sản xuất hoặc các sản phẩm được bán ra trong ngày 1/1/2007.
A← MASP,TENSPσNUOCSX=‘TrungQuoc’ (SANPHAM)
SOHD MASP
B← MASP,TENSP(σNGHD=#1/1/2007#(HOADON CTHD) SANPHAM)

KQ←A∪B

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 95


4. Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01”
và “BB02”.
A← SOHDσMASP=‘BB01’ (CTHD)

B← SOHDσMASP=‘BB02’ (CTHD)

KQ←A∩B

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 96


5. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc”
sản xuất không bán được trong năm 2006.
A← MASP,TENSPσNUOCSX=‘TrungQuoc’ (SANPHAM)
MASP SOHD
B←((SANPHAM CTHD) HOADON)

c←  MASP,TENSPσ(NUOCSX=‘TrungQuoc’)∧(YEAR(NGHD)=2006)(B)

KQ←A - C

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 97


6. Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản
xuất
A← MASP σNUOCSX=‘Singapore’ (SANPHAM)
MASP
B←  MASP,SOHDσNUOCSX=‘Singapore’ (SANPHAM CTHD)

KQ←B÷A

ThS Ma Ngân Giang - giangmn@hcmup.edu.vn 98

You might also like