You are on page 1of 59

ĐẠI SỐ QUAN HỆ

Cơ sở dữ liệu

HK1, 2022 - 2023

Đại số quan hệ HK1, 2022 - 2023 1 / 59


Giới thiệu
Xét một số xử lý trên quan hệ SINHVIEN
Thêm mới một sinh viên
Chuyển sinh viên có tên “Luong An Chi” sang khoa
QLCN
Cho biết họ tên và ngày sinh các sinh viên có ngày
sinh 20/10/2000 về sau
MASV HOTEN NGAYSINH LOP QUEQUAN KHOA
01121 Nguyen An 10/02/2000 CNTT2021 Can Tho CNTT
01122 Luong An Chi 05/12/2000 KTXD2020 Dong Thap KHXD
01123 Tran Dong Phong 01/03/2001 CODT2022 Vinh Long CODT
01124 Nguyen Minh Son 10/02/2002 CNTT2022 Soc Trang CNTT

Đại số quan hệ HK1, 2022 - 2023 2 / 59


Giới thiệu
Có 02 loại xử lý
Làm thay đổi dữ liệu (cập nhật): thêm mới,
xóa, 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)
Đại số quan hệ HK1, 2022 - 2023 3 / 59
Đại số quan hệ
Đại số quan hệ là một bộ α =< M, P >,
trong đó:
M: tập các quan hệ cho trước trong CSDL
quan hệ
P: tập hợp các phép toán áp dụng trên M

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


Trên tập hợp
Hợp: ∪ (union)
Giao: ∩ (intersection)
Trừ: − (difference)
Đại số quan hệ HK1, 2022 - 2023 4 / 59
Đại số quan hệ
Toán tử là các phép toán (operations)
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 Descartes: × (Cartesian product)
Kết: ▷◁ (join)

Đổi tên: ρ

Đại số quan hệ HK1, 2022 - 2023 5 / 59


Ví dụ về CSDL quan hệ
Cho lược đồ CSDL quan hệ gồm các quan hệ:
1. SINHVIEN (MASV, HOTEN_SV, NAMS_SV,
DCHI_SV, TENLOP)
2. MON (MAMH, TENMON, SO_TC, LOAI_MON)
3. GIANGVIEN (MAGV, HOTEN_GV, NAMS_GV,
HOCVI,LUONG)
4. HOC (MASV, MAMH, STT_HK, NKHOA,
KETQUA)
5. DAY (MAGV, MAMH, STT_HK,NKHOA)
Xác định khóa chính, khóa ngoại.
Vẽ sơ đồ thể hiện sự kết nối các quan hệ.
Đại số quan hệ HK1, 2022 - 2023 6 / 59
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

Kết quả của phép toán tập hợp là một quan


hệ có thuộc tính cùng tên với quan hệ bên
trái R

Đại số quan hệ HK1, 2022 - 2023 7 / 59


Phép toán tập hợp
Yêu cầu đối với 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
DOM(Ai ) = DOM(Bi ) với 1 ≤ i ≥ n

Đại số quan hệ HK1, 2022 - 2023 8 / 59


Phép toán tập hợp: Ví dụ
Quan hệ SINHVIEN Quan hệ GIANGVIEN
TENSV NGAYSINH GIOITINH TENGV NSINH GTINH
An 10/02/2000 Nam Nguyen 10/02/2000 Nu
Chi 05/12/2000 Nu Ly 05/12/2000 Nu
Phong 01/03/2001 Nam Tran 01/03/2001 Nu
Son 10/02/2002 Nam Minh 10/02/2002 Nam
02 quan hệ có bậc n = 3
DOM(TENSV) = DOM(TENGV)
DOM(NGAYSINH) = DOM(NSINH)
DOM(GIOITINH) = DOM(GTINH)

Đại số quan hệ HK1, 2022 - 2023 9 / 59


Phép toán tập hợp: 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}
Quan hệ R Quan hệ S
A B A B
α 1 α 2
α 2 β 3
β 1
Đại số quan hệ HK1, 2022 - 2023 10 / 59
Phép toán tập hợp: 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}
Quan hệ R Quan hệ S
A B A B
α 1 α 2
α 2 β 3
β 1
Đại số quan hệ HK1, 2022 - 2023 11 / 59
Phép toán tập hợp: 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 nhưng
không thuộc S
R − S = {t|t ∈ R ∧ t ∈
/ S}
Quan hệ R Quan hệ S
A B A B
α 1 α 2
α 2 β 3
β 1
Đại số quan hệ HK1, 2022 - 2023 12 / 59
Phép toán tập hợp: 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

Đại số quan hệ HK1, 2022 - 2023 13 / 59


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>
trong đó
<phép so sánh> gồm <, >, ≤, ≥, ̸=, =
Các mệnh đề được nối lại nhờ các phép ∧, ∨, ¬

Đại số quan hệ HK1, 2022 - 2023 14 / 59


Phép chọn
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
A B C D
α α 1 7
α β 5 7
β β 12 3
β β 23 10

Kết quả: σ (A=B)∧(D>5)(R)


Đại số quan hệ HK1, 2022 - 2023 15 / 59
Phép chọn: Tính chất
Tính giao hoán:

σ p1(σ p2(R)) = σ p2(σ p1(R)) = σ p1 ∧ p2(R)

Đại số quan hệ HK1, 2022 - 2023 16 / 59


Phép chọn
Cho biết sinh viên khoa CNTT (Mã khoa: CNTT)
Quan hệ: SINHVIEN
Thuộc tính: MAKHOA
Điều kiện: MAKHOA = ‘CNTT’

σ MAKHOA=‘CNTT’(SINHVIEN)

Đại số quan hệ HK1, 2022 - 2023 17 / 59


Phép chọn: Ví dụ
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ệ:
Thuộc tính:
Điều kiện:

Đại số quan hệ HK1, 2022 - 2023 18 / 59


Phép chiếu
Được dùng để lấy ra một số 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

Đại số quan hệ HK1, 2022 - 2023 19 / 59


Phép chiếu: Ví dụ
Quan hệ R
A B C
α 10 1
α 20 1
β 30 1
β 40 2

π A,C (R)

Đại số quan hệ HK1, 2022 - 2023 20 / 59


Phép chiếu: Tính chất
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

Đại số quan hệ HK1, 2022 - 2023 21 / 59


Phép chiếu: Ví dụ
Cho biết họ tên, ngày sinh, lớp của các sinh viên
Quan hệ: SINHVIEN
Thuộc tính: HOTEN, NGAYSINH, LOP

π HOTEN, NGAYSINH, LOP(SINHVIEN)

Đại số quan hệ HK1, 2022 - 2023 22 / 59


Phép chiếu: Ví dụ
Cho biết mã giảng viên có hướng dẫn đề án

Đại số quan hệ HK1, 2022 - 2023 23 / 59


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ố và/hoặc thuộc tính trong E

Đại số quan hệ HK1, 2022 - 2023 24 / 59


Phép chiếu tổng quát
Cho biết tên đề tài, ngày bắt đầu và kinh phí của đề tài
sau khi đã tăng kinh phí 10%

Đại số quan hệ HK1, 2022 - 2023 25 / 59


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: σ p(R)
B2: π A1,A2,...,Ak (Quan hệ kết quả ở B1)

Đại số quan hệ HK1, 2022 - 2023 26 / 59


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 là kết quả trung gian trong chuỗi các phép
toán
Ký hiệu: ←
Ví dụ:
B1: S ← σ p (R)
B2: π A1,A2,...,Ak (S)

Đại số quan hệ HK1, 2022 - 2023 27 / 59


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
Đổi tên quan hệ R thành S và thuộc
tính B thành X
ρS(X ,C ,D)(R)
Đại số quan hệ HK1, 2022 - 2023 28 / 59
Ví dụ:
Cho biết họ và tên sinh viên của khoa CNTT (Mã khoa
là CNTT)
Cách 1: π HOSV,TENSV (σ MAKHOA=‘CNTT’ (SINHVIEN))
Cách 2: SV_CNTT ← σ MAKHOA=‘CNTT’ (SINHVIEN)
KQ ← π HOSV, TENSV (SV_CNTT)

Trong đó KQ có thể đổi tên


KQ (HO, TEN) ← π HOSV, TENSV (SV_CNTT)
ρKQ(HO, TEN)(π HOSV, TENSV(SV_CNTT))

Đại số quan hệ HK1, 2022 - 2023 29 / 59


Phép tích Descartes
Đượ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
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+ ̸= ∅)

Đại số quan hệ HK1, 2022 - 2023 30 / 59


Phép tích Descartes
Quan hệ R Quan hệ S

A B A C D

α 1 α 10 +
β 10 +
β 2
β 20 -

ρ(X ,C ,D)(S)
R×S

Đại số quan hệ HK1, 2022 - 2023 31 / 59


Phép tích Descartes: Ví dụ
Cho biết thông tin của trưởng phòng
Quan hệ: PHONGBAN, NHANVIEN

Đại số quan hệ HK1, 2022 - 2023 32 / 59


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

Đại số quan hệ HK1, 2022 - 2023 33 / 59


Phép tích Descartes: Ví dụ
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

Đại số quan hệ HK1, 2022 - 2023 34 / 59


Phép tích Descartes: Ví dụ
Cho biết Tên đề tài và tên giảng viên hướng dẫn
Quan hệ DETAI
MaDT TenDT NgayBD NgayKT KinhPhi MaHD
DT01 elearning 10/02/2021 10/02/2022 2000 GV01
DT02 quan ly doan vien 11/06/2020 11/06/2021 1000 GV01
DT03 IoT trong rau 01/03/2019 01/03/2020 3000 GV03

Quan hệ GIANGVIEN
MaGV HoTen NgaySinh MaKhoa
GV01 Nguyen Tung 14/05/1986 CNTT
GV02 Truong Giao 21/07/1989 CNTP
GV03 Hoang Thao 02/02/1992 KTCK
Đại số quan hệ HK1, 2022 - 2023 35 / 59
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
với 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 , . . . , An , B1 , . . . , Bm )
Mỗi bộ 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 ̸=, =, <, >, ≤, ≥
Đại số quan hệ HK1, 2022 - 2023 36 / 59
Phép kết: Phân loại
Kết theta (theta join) là phép kết có điều
kiện
Ký hiệu: R ▷◁p S
p gọi là điều kiện kết trên thuộc tính

Kết bằng (equi join) khi p 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 + ̸= ∅
Kết quả của phép kết bằng bỏ bớt đi 1 cột
giống nhau Đại số quan hệ HK1, 2022 - 2023 37 / 59
Phép kết
Ví dụ phép kết theta
Quan hệ R Quan hệ S R ▷◁B<D S
A B C D E A B C D E
1 2 3 3 1
4 5 6 6 2

7 8 9

R ▷◁p S = σ p (R × S)

Đại số quan hệ HK1, 2022 - 2023 38 / 59


Phép kết
Ví dụ phép kết bằng
Quan hệ R Quan hệ S R ▷◁C=D S
A B C D E A B C D E
1 2 3 3 1
4 5 6 6 2

7 8 9

Đại số quan hệ HK1, 2022 - 2023 39 / 59


Phép kết
Ví dụ phép kết bằng
Quan hệ R Quan hệ S R ▷◁C=S.C S
A B C C D A B C S.C D
1 2 3 3 1
4 5 6 6 2

7 8 9

Đại số quan hệ HK1, 2022 - 2023 40 / 59


Phép kết
Ví dụ phép kết tự nhiên
Quan hệ R Quan hệ S R ▷◁ S
A B C C D A B C S.C D
1 2 3 3 1
4 5 6 6 2

7 8 9

Đại số quan hệ HK1, 2022 - 2023 41 / 59


Phép kết: Ví dụ
Cho biết tên đề tài có kinh phí lớn hơn đề tài có mã
số DT05
Quan hệ: DETAI
Thuộc tính: KinhPhi

DETAI (MaDT, TenDT, . . . , KinhPhi, MaHD)

Đại số quan hệ HK1, 2022 - 2023 42 / 59


Phép kết: Ví dụ
Cho biết họ tên và tên khoa quản lý họ
Quan hệ: GIANGVIEN, KHOA

GIANGVIEN (MaGV, HoTen, . . . , MaKhoa)


KHOA (MaKhoa, TenKhoa, NamTL, TrgKhoa)

Đại số quan hệ HK1, 2022 - 2023 43 / 59


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
R ∩ S = (R ∪ S) − ((R − S) ∪(S − R))
R ▷◁p S = σ p (R × S)

Đại số quan hệ HK1, 2022 - 2023 44 / 59


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) với
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ó một bộ t ∈ 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)
Đại số quan hệ HK1, 2022 - 2023 45 / 59
Phép chia

Đại số quan hệ HK1, 2022 - 2023 46 / 59


Phép chia: Ví dụ
Cho biết mã sinh viên tham gia tất cả các đề tài nghiên
cứu
Quan hệ: DETAI, CTDT
Thuộc tính: MaSV

Đại số quan hệ HK1, 2022 - 2023 47 / 59


Phép chia: Ví dụ
Cho biết mã sinh viên tham gia tất cả các đề tài do
giảng viên GV01 hướng dẫn
Quan hệ: DETAI, CTDT
Thuộc tính: MaSV
Điều kiện: MaHD = ‘GV01’

Đại số quan hệ HK1, 2022 - 2023 48 / 59


Phép chia
Biểu diễn phép chia thông qua tập đầy đủ các phép toán
ĐSQH
Q1 ← π Y (R)
Q2 ← Q1 × S
Q3 ← π Y (Q − R)
T ← Q1 − Q3

Đại số quan hệ HK1, 2022 - 2023 49 / 59


Hàm kết tậ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

Đại số quan hệ HK1, 2022 - 2023 50 / 59


Hàm kết tập
Quan hệ R
SUM(B) = 10
A B
AVG(A) = 1.5
1 2 MIN(A) = 1
3 4 MAX(B) 4
1 2 COUNT(A) = 4
1 2

Đại số quan hệ HK1, 2022 - 2023 51 / 59


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 J F 1(A1),F 2(A2),...,F n(An) (E)
E là biểu thức ĐSQH
G1, G2, . . . , Gn là các thuộc tính gom nhóm
F 1, F 2, . . . , F n là các hàm
A1, A2, . . . , An là các thuộc tính tính toán
trong hàm F

Đại số quan hệ HK1, 2022 - 2023 52 / 59


Phép gom nhóm: Ví dụ

Đại số quan hệ HK1, 2022 - 2023 53 / 59


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 d|><|
Mở rộng bên phải |><|d
Mở rộng 2 bên d|><|d

Đại số quan hệ HK1, 2022 - 2023 54 / 59


Phép kết ngoài: Ví dụ
Cho biết tên khoa và họ tên trưởng khoa (nếu có)
Quan hệ: KHOA, GIANGVIEN
Thuộc tính: TenKhoa, HoTen

Đại số quan hệ HK1, 2022 - 2023 55 / 59


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

Đại số quan hệ HK1, 2022 - 2023 56 / 59


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ụ: một sinh viên có mã 2100183 tham gia


vào đề tài có mã DT05 với vai trò Chủ nhiệm
CTDT ← CTDT ∪
(‘DT05’, ‘2100183’, ‘Chu nhiem’)

Đại số quan hệ HK1, 2022 - 2023 57 / 59


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 chi tiết tham gia vào đề tài của sinh viên
có mã 2100183
CTDT ← CTDT − σ MaSV = ‘2100183’(CTDT)

Đại số quan hệ HK1, 2022 - 2023 58 / 59


Thao tác sửa
Được diễn đạt
Rnew ← π F 1,F 2,...,F n (Rold )
R là quan hệ
F i là một biểu thức tính toán cho ra giá trị
mới của thuộc tính
Ví dụ: Tăng kinh phí của tất cả đề tài lên 1.2 lần
DETAI ← π MaDT, TenDT,. . . ,KinhPhi*1.2,. . . (DETAI)

Đại số quan hệ HK1, 2022 - 2023 59 / 59

You might also like