You are on page 1of 41

Chủ biên: ThS.

Thái Thị Thanh Vân


Email: TTvanCNTT @gmail.com
DT: 0932320886

Bộ môn Khoa Học Máy tính – Khoa Công nghệ Thông Tin 10 February 2023 | Page 1
Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 10 February 2023 | Page 2
1. Nắm được khái niệm đại số quan hệ và
các phép toán đại số quan hệ: hợp, gia,
trừ, chọn, chiếu, chia, kết nối.
2. Áp dụng các khái niệm được học để
biểu diễn một yêu cầu truy vấn dưới
dạng một biểu thức đại số quan hệ.

Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 10 February 2023 | Page 3
Cho lược đồ CSDL Quản lý đề án công ty
◼NHANVIEN (maNV, hoten, ngaysinh, gioitinh, heSL, diachi, madv,
maNGS)
◼DONVI (maDV, tendv, maTP, ngayBD)
◼DUAN(maDA, tenDA, diadiem, tgBD, maDV)
◼THANNHAN (maNV, ten, ngaysinh, gioitinh, quanhe)
◼NV_DA(maDA, maNV, sogio)
Yêu cầu:
◼Cho danh sách các nhân viên Nam của công ty
◼Thống kê số dự án của từng đơn vị đã thực hiện
◼Thống kê tổng số thời gian đã làm dự án của từng nhân viên
◼Thống kê các dự án mà chỉ có một nhân viên tham gia làm dự án
◼…
◼Biểu diễn các yêu cầu truy vấn?
4 10/2/2023
 ĐSQH là một ngôn ngữ lý thuyết bao gồm các phép toán được thực
hiện trên một hay nhiều quan hệ để tạo ra một quan hệ khác mà không
làm thay đổi các quan hệ ban đầu.
ĐSQH là ngôn ngữ hình thức, thường được sử dụng làm cơ sở cho các
ngôn ngữ taho tác dữ liệu (DML) mức cao trong các CSDL quan hệ.
Các phép toán cơ bản trên ĐSQH:
Phép toán cập nhật: insert, update, delete
Phép toán tập hợp: Hợp, Giao, Trừ, Tích Descacrtes
Phép toán đặc trưng của ĐSQH: chiếu, chọn, chia, kết nối

5 10/2/2023
II. CÁC PHÉP TOÁN ĐSQH
 Phép toán cập nhật:
Phép chèn

Phép loại bỏ

Phép thay đổi

Phép toán đại số quan hệ


Hợp, giao, trừ, tích đề các

Chiếu, chọn, chia, kết nối, vv…

Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 10 February 2023 | Page 6
1. Phép chèn (insert)

Định nghĩa: Phép chèn thêm một bộ t vào quan hệ r{A1, A2, …,
An} có dạng r = rt.
◼INSERT(r;A1 =d1, A2 = d2, …, An= dn)
◼Trong đó: Ai, i=1→n là tên các thuộc tính; di  dom(Ai) là các giá trị thuộc
miền trị tương ứng của Ai.
Ví dụ: KETQUA(MSV, MMH,Diem)
◼Chèn bộ t= (001,CSDL,7)
◼ Hoặc: Insert (Ketqua; MSV=001, MMH=CSDL, Diem=7)
◼ Hoặc: Insert (Ketqua;001,CSDL,7)

7 10/2/2023
2. Phép loại bỏ (Del)
❑ Định nghĩa: Phép loại bỏ là phép xóa một bộ ra khỏi quan hệ
r{A1, A2, …, An} cho trước, nó có dạng r=r-t.
❑ DEL(r;A1 =d1, A2 = d2, …, An= dn) hoặc DEL(r;d1,d2, …,dn)
❑Ví dụ: KETQUA(MSV,MMH,Diem), xóa bộ t= (001,CSDL,7)
❑Phép loại bỏ:
❑ Hoặc: DEL(Ketqua; MSV=001, MMH=CSDL,Diem=7)
❑ Hoặc: DEL(Ketqua; 001, CSDL,7)
❑ Hoặc: DEL (Ketqua; MSV=001, MMH=CSDL)

❑ Chú ý: nếu quan hệ có khóa K = {B1, B2, …, Bm}, thì phép loại bỏ
chỉ cần viết
❑ DEL (r; B1 = e1, B2 = e2, …, Bm=em )
8 10/2/2023
3. Phép thay đổi (Update)
❑ Định nghĩa: Gọi {C1, C2, …, Cp}  {A1, A2, …, An} là tập các
thuộc tính mà tại đó các giá trị của bộ cần thay đổi, khi đó phép
thay đổi có dạng r=r\tt’.
❑ CH(r;A1 =d1, A2 = d2, …, An= dn ; C1=e1, C2=e2, …, Cp=ep)
❑ Nếu K = {B1, B2, …, Bm}, là khóa của quan hệ r thì có thể viết
❑ CH (r;B1 =d1, B2 = d2, …, Bm= dm ; C1=e1, C2=e2, …, Cp=ep)
❑ Ví dụ: KETQUA(MSV,MMH,Diem)
❑ Thay bộ t= (001,CSDL,7) bằng t’ = (001, CSDl, 8)
❑ Hoặc: CH (Ketqua;MSV=001, MMH=CSDL,Diem=7; MSV=001,
MMH=CSDL, Diem=8)
9
❑ Hoặc: CH (Ketqua; MSV=001, 10/2/2023
MMH=CSDL;Diem=8)
4. Phép giao, phép hợp, phép trừ
❑ Do các quan hệ được định nghĩa như là các tập hợp của các bộ nên
phép toán hợp, giao, hiệu được định nghĩa như các phép toán tập
hợp thông thường
❑Chú ý: với ba phép toán này chỉ có các quan hệ cùng lược đồ mới
áp dụng được.

10 10/2/2023
4. Phép giao, phép hợp, phép trừ
❑ Hợp của hai quan hệ r và s được ký hiệu là rs, cho kết quả là
một quan hệ chứa tất cả các bộ có trong r hoặc trong s hoặc trong
cả hai.
❑ Các bộ trùng nhau sẽ bị loại bỏ
❑Giao của hai quan hệ r và s được ký hiệu là rs, cho kết quả là
một quan hệ chứa tất cả các bộ có trong cả hai quan hệ r và s.
❑ Phép trừ quan hệ r và s, được ký hiệu là r-s, cho kết quả là một
quan hệ chứa tất cả các bộ có trong r nhưng không có trong s.

11 10/2/2023
Ví dụ:
❑Cho hai quan hệ DOT1 và DOT2 như sau:

❑Viết biểu thức ĐSQH:


❑a/ Lập danh sách tất cả các Học viên được khen thưởng.
❑b/ Lập danh sách các học viên được khen thưởng đồng thời trong cả hai đợt.
❑c/ Lập danh sách các học viên khen thưởng ở đợt 1 mà không được khen thưởng
ở12 đợt 2. 10/2/2023
Ví dụ:

a/ DOT1  DOT2

BTĐSQH Mahv Hoten


K1103 Le Van Tam
K1114 Tran Ngoc Han
K1203 Le Thanh Hau
K1308 Nguyen Gia
K1101 Le Kieu My

b. ????
c. ?????
13 10/2/2023
5. Tích đề các
❑Cho hai lược đồ quan hệ R1(A1,A2,…,An) và R2(B1,B2,…,Bm). r1 và
r2 lần lượt là hai quan hệ trên R1 và R2.
❑Tích decac của hai quan hệ r1 và r2 sẽ tạo thành một quan hệ r3. Với
r3 được xác định như sau:
R3+ = R1+  R2+ = { A1, A2, …, An, B1, B2 ... Bm }
r3 = r1 x r2 = { (t1,t2) | t1  r1 và t2  r2 }
❑Quan hệ r3 là tập các bộ được ghép lần lượt từ hai quan hệ r1 và
r2. Các thành phần của r1 được đặt trước rồi đến r2.

14 10/2/2023
Ví dụ

r s

rxs

15 10/2/2023
6. Phép chiếu - Projection
❑Cho lược đồ R(A1, A2, …, An), r là quan hệ trên R, X là tập thuộc
tính với X  U

❑Phép chiếu của quan hệ r lên tập thuộc tính X là loại bỏ đi một số
thuộc tính của lược đồ R không có trong X và giữ lại những thuộc
tính được liệt kê trong danh sách thuộc tính X.

❑Ký hiệu: 𝝅𝑿 (𝒓)

❑Kết quả là một quan hệ chỉ chứa các thuộc tính xác định trong X
(phép chiều chính là phép trích rút dữ liệu theo cột)
16 10/2/2023
Ví dụ 1
 Cho lược đồ quan hệ: SV(maSV, hoten, ngaysinh, gioitinh,diem)
 In danh sách sinh viên gồm mã sinh viên và điểm tương ứng.
 BT ĐSQH:
Mã SV Họ tên Ngày sinh Điểm
001 Trần Anh 23/4/86 8
002 Ngọc Bích 13/4/85 9
003 Xuân Mai 25/3/87 7
004 Hồng Vân 21/6/85 10

Mã SV Điểm

001 8
002 9
003 7
17 004 10 10/2/2023
Ví dụ 2
❑Cho lược đồ quan hệ: NhanVien( maNV, hoten, ngaysinh, gioitinh, heSL)
❑ViếtBT ĐSQH lấy ra danh sách mã nhân viên, họ tên và lương của các
nhân viên (Lương = hệ số lương * 1.450.000).
❑BT ĐSQH:

18 10/2/2023
Bài tập
 Cho lược đồ quan hệ:
 DUAN( MDA, Ten, DiaDiem, MNV )
 THANNHAN( Ten, NS, GT, MNV )
 Viết biểu thức ĐSQH để thực hiện các yêu cầu sau:
 a/Cho biết mã nhân viên của những nhân viên có tham gia đề án nào đó
hoặc có thân nhân
 b/Cho biết mã nhân viên của những nhân viên có tham gia đề án và có thân
nhân.

19 10/2/2023
7. Phép chọn - Selection
❑Phép chọn trích ra các hàng trong quan hệ thỏa mãn điều kiện

❑Dạng tổng quát: 𝝈𝑭 (𝒓)


❑Trong đó:
❑F là biểu thức điều kiện, dùng để lựa chọn các bộ
❑r là quan hệ thực hiện chọn.
❑Kết quả: phép chọn sẽ trả về một quan hệ có danh sách thuộc tính
được chỉ ra trong quan hệ r và có các dòng thỏa mãn điều kiện F.

20 10/2/2023
Ví dụ
❑Cho lược đồ: SV (maSV, hoten, ngaysinh, gioitinh, diem)
❑ Viết BT ĐSQH: In danh sách các sinh viên có điểm >7

21 10/2/2023
Bài tập
 Cho lược đồ: SV (maSV, hoten, ngaysinh, gioitinh, diem)
 In danh sách sinh viên nữ sinh vào tháng 4. Thông tin gồm mã SV,
họ tên và điểm. Biết hàm lấy tháng sinh là month().

22 10/2/2023
8. Phép chia
❑Cho hai lược đồ quan hệ R(A1,A2,…,Am, B1,B2,…,Bn) và S(B1, B2,
…, Bn); r  R, s S
❑ Các thuộc tính của S là tập thuộc tính con của R
❑Phép chia quan hệ r và s sẽ tạo thành một quan hệ r3 như sau:
R3+ = {A1, ..., Am}
r ÷ s = { t | us : (t,u)  r }
 với mọi u thuộc s thì (t,u) thuộc r

23 10/2/2023
Ví dụ 1

T= R ÷ S

24 10/2/2023
Ví dụ 2
❑Cho lược đồ gồm hai quan hệ sau
❑ MONHOC(monhoc, sotiet)
❑ GIAOVIEN(tenGV,monhoc)

❑ Yêu cầu: Lấy danh sách tên giáo viên có thể giảng dạy được tất cả các môn
trong bảng môn học

25 10/2/2023
Ví dụ 3
❑ Cho lược đồ gồm hai quan hệ sau
❑ MONHOC(maMH,TenMH)
❑ KETQUATHI(maHV,maMH, Diem)
❑ Yêu cầu:
❑ Lấy danh sách các mã học viên có đủ điểm các môn trong danh sách môn học.
❑ Lấy danh sách các mã học viên có đủ điểm các môn trong bảng kết quả thi.

26 10/2/2023
9. Phép gán
❑Phép gán:
❑ Dùng để lưu lại kết quả của một phép toán
❑ Để đơn giản hóa một chuỗi phép toán phức tạp
❑Cú pháp:
❑ R’  E, trong đó E là một biểu thức đại số quan hệ
❑Ví dụ:
❑ BTĐS QH: 𝜋𝑚𝑎𝐻𝑉,𝑚𝑎𝑀𝐻 𝐾𝐸𝑇𝑄𝑈𝐴𝑇𝐻𝐼 ÷ 𝜋𝑚𝑎𝑀𝐻 𝑀𝑂𝑁𝐻𝑂𝐶
❑ Có thể tách thành như sau:
❑ R1  𝜋𝑚𝑎𝐻𝑉,𝑚𝑎𝑀𝐻 𝐾𝐸𝑇𝑄𝑈𝐴𝑇𝐻𝐼
❑ R2  𝜋𝑚𝑎𝑀𝐻 𝑀𝑂𝑁𝐻𝑂𝐶
❑ KQ  R1 ÷ R2
27 10/2/2023
10. Phép đổi tên
❑Để đổi tên quan hệ và các thuộc tính.
❑Cú pháp: cho quan hệ R(A1, ..., An)
❑ Đổi tên quan hệ R thành S: S(R).
❑ Đổi tên quan hệ R thành S và các thuộc tính Ai thành Bi
❑ S(B1, B2, ..., Bn)(R).
❑ Đổi tên các thuộc tính Ai thành Bi
❑ (B1, B2, ..., Bn)(R).
❑ Đổi tên quan hệ R thành S và thuộc tính A1 thành B1
❑ S(B1, A2, A3, ..., An)(R).
❑ Đổi tên thuộc tính A1 thành B1
❑ (B1, A2, A3, ..., An)(R).
28 10/2/2023
11. Phép kết nối 
❑ Phép nối được ký hiệu là  và được dùng để kết hợp các bộ có liên hệ
với nhau từ hai quan hệ thành một bộ.
❑Dạng tổng quát của phép nối trên hai quan hệ r R{A1,A2,...,An} và s 
S{B1,B2,...,Bm} là:

❑ Kết quả của phép kết nối là một quan hệ q, thỏa mãn
❑ 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 điều kiện nối 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ị
❑  { , =, , , ,  }
29 10/2/2023
Ví dụ

30 10/2/2023
Phép kết nối bằng

❑Nếu điều kiện kết nối chứa phép so sánh bằng (=) thì phép kết nối
được gọi là phép kết nối bằng
❑Ví dụ: C =D
r  s
Ac B C D E A B C D E
a1 b1 1 1 e1 a1 b1 1 1 e1
a2 b2 2 2 e2
a2 b2 2 2 e2
a3 b3 1 3 e3
a3 b3 1 1 e1
a4 b4 3
a4 b4 3 3 e3

31 10/2/2023
Phép kết nối tự nhiên
 Kết nối bằng tại thuộc tính cùng tên của hai quan hệ và một trong hai
thuộc tính đó bị loại bỏ qua phép kết nối, thì phép kết nối được gọi là kết
nối tự nhiên. Kí hiệu là "*“
 Ví dụ
Sinhvien Ketqua Sinhvien*ketqua

MSV HT NS MSV MMH Diem MSV HT NS MMH Diem

M1 A 12/12/1990 M1 H1 4 M1 A 1/12/1990 H1 4
M2 B 3/4/1991
M2 H2 3 M2 B 3/4/1991 H2 3
M3 C 12/1/1990
M3 H3 5 M3 C 12/1/1990 H3 5
M4 D 4/5/1990

32 10/2/2023
Ví dụ
❑Cho lược đồ quan hệ:
❑ NHANVIEN(MaNV, HoTen, NgaySinh, GioiTinh, MaP)
❑ PHONG(MaP, TenP, MaNQL, NgayQL)
❑Yêu cầu: viết biểu thức đại số quan hệ
❑ In ra danh sách các phòng. Thông tin gồm: Mã phòng, tên phòng, mã người
quản lý, tên người quản lý.
❑ In ra danh sách các nhân viên. Thông tin bao gồm: mã nhân viên, tên nhân
viên, ngày sinh, tên phòng.

33 10/2/2023
12. Các phép toán khác

❑Để biểu diễn các truy vấn mà không thể thực hiện với các phép toán
đại số quan hệ cơ sở
❑ Truy vấn mang tính chất thống kê đơn giản trên một tập hợp các giá trị hoặc
các nhóm tập hợp giá trị dữ liệu.
❑ Các truy vấn dùng để tạo báo cáo
❑ Gồm:
❑ Hàm tập hợp
❑ Phép gom nhóm các bộ dữ liệu

34 10/2/2023
Hàm tập hợp và gom nhóm

❑Sử dụng các hàm sau để thực hiện các truy vấn thống kê đơn giản trên tập
hợp các giá trị số
❑ SUM – Tính tổng của các giá trị trong tập hợp
❑ AVG – Tính giá trị trung bình của các giá trị trong tập hợp
❑ MAX, MIN – Tìm giá trị lớn nhất, nhỏ nhất
❑ Để đếm số bộ của một quan hệ hoặc số các giá trị của một thuộc tính.
❑ COUNT
❑ Chú ý: có thể sử dụng kết hợp hàm tập hợp và gom nhóm.

35 10/2/2023
Cú pháp

❑Cú pháp:
❑Trong đó:
❑ R là một quan hệ
❑ Gi là tên thuộc tính gom nhóm (có thể không có)
❑ Ai là tên thuộc tính tính toán trong hàm gom nhóm Fi
❑ Kết quả: ta thu được một quan hệ chứa thuộc tính gom nhóm và kết
quả của các hàm kết hợp thực hiện trên nhóm đó.

36 10/2/2023
Ví dụ 1

❑Cho lược đồ NHANVIEN(MaNV, Hoten, Ngaysinh, Luong,


GT, MaP)
❑VD1: Tính tổng số nhân viên của công ty và lương trung
bình của cả công ty
❑ FCount(maNV), Avg(luong)(NHANVIEN)

37 10/2/2023
Ví dụ 2
❑Cho biết số lượng nhân viên và lương trung bình của nhân viên theo
từng phòng.
❑ maP F count(maNV), Avg(luong) (NHANVIEN)

38 10/2/2023
Bài tập tại lớp
❑ Cho lược đồ CSDL Quản lý công ty
NV( MNV, HT, NS, GT, HSL, ĐC, MDV)
ĐV (MDV, TênDV, MTP, ngày bắt đầu)
ĐV–DD (MDV, Địa điểm)
DA ( MDA, TenDA, DD, TGBD, MDV)
THÂN NHÂN ( MNV, TenTN ,NS, GT, QH)
NV_DA (MDA, MNV, SG)
Sử dụng đại số quan hệ thực hiện các yêu cầu sau:
1.Cho biết thông tin cá nhân các NHANVIEN nữ của cơ quan
2.Cho biết danh sách các đề án mà đơn vị “Hanh chinh” thực hiện
3.Với mỗi đơn vị, cho biết tên đơn vị và địa điểm đơn vị
4.Tìm tên những nữ nhân viên và thân nhân của họ
5.Với mỗi nhân viên, cho biết họ tên của nhân viên và tên của dự án mà nhân viên đã tham gia
39 10/2/2023
Bài tập tại lớp

6. Với mỗi đề án ở Ha Noi, liệt kê các mã số đề án, mã số đơn vị chủ trì đề án, họ tên
trưởng phòng, cũng như địa chỉ và ngày sinh của người ấy.
7. Tìm tên của các nhân viên làm việc trên tất cả các dự án do đơn vị có mã số 5 kiểm
soát.
8. Tạo ra một danh sách các mã số dự án đối với các dự án có nhân viên hoặc có người
quản lý đơn vị kiểm soát dự án có tên là ‘Nam’.
9. Đưa ra các nhân viên không có người phụ thuộc.
10. Đưa ra tên của những người quản lý có ít nhất là một người phụ thuộc.

40 10/2/2023
Tóm tắt nội dung bài học

❑ Định nghĩa Đại số quan hệ


❑Các phép toán trên đại số quan hệ:
❑Chèn, sửa, xóa
❑ Hợp, Giao, Trừ, Tích Đề các
❑Chiếu, chọn, chia, kết nối,vv…
❑Làm đầy đủ các bài tập trong hệ thống bài tập

Bộ môn Khoa Học Máy Tính – Khoa Công nghệ Thông Tin 10 February 2023 | Page 41

You might also like