Professional Documents
Culture Documents
C4 - Đại số quan hệ
C4 - Đại số quan hệ
ĐẠI SỐ QUAN HỆ
Tài liệu tham khảo
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ể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ệ
P (R)
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)
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)
X,Y(R) = X(Y(R))
HONV,TENNV,LUONG(NHANVIEN)
HONV,TENNV,LUONG(NHANVIEN)
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)
Đượ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)
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))
R
R R
S S
S
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)
Bậc n=3
DOM(TENNV) = DOM(TENTN)
DOM(NGSINH) = DOM(NG_SINH)
DOM(PHAI) = DOM(PHAI)
RS
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)
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 -
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 -
RS 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
R1 ( LUONG (NHANVIEN))
R3 NHAN_VIEN.LUONG (R2)
KQ LUONG (NHANVIEN) R3
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 đó?
B2: Lấy ra các phòng có cùng địa điểm với DD_PNC MAPHG DIADIEM
R2 MAPHGNC (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
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 đó?
R2 MAGVR1.MaGV (GIAOVIEN)
R3 R1.MaBM=R2.MaBM(R1 R2)
KQ HoTen (R3)
X Y
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 RS
a a 1 A B C
a b 1 a
a b 1 a
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
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
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
Q1 A B C Q3 A B C KQ A B C
a a a
a a a
a a
a
a
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=
KQ NHANVIEN LUONG>LGR1
KQ NHANVIEN PHG=MAPHGPHONGBAN
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
KQ DDIEM_PHG PHONGBAN
KQ(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC,DIADIEM)
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
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
Đượ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
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
Ví dụ 2:Điểm thi cao nhất, thấp nhất, trung bình của từng môn ?
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)
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
PHANCONG PHANCONGMANV=‘123456789’(PHANCONG)
MAKH
MAKH,HOTENσ(NGHD=#1/1/2007#)(HOADON KHACHHANG)
KQ←A∪B
KQ←A∩B
c← MASP,TENSPσ(NUOCSX=‘TrungQuoc’)∧(YEAR(NGHD)=2006)(B)
KQ←A - C
KQ←B÷A