You are on page 1of 31

Đại số quan hệ

Môn học: Cơ sở dữ liệu


GV: Nguyễn Mai Huy
Tổng quan về đại số quan hệ

Các phép toán trên đại số quan hệ

Các phép toán khác

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

Faculty of Information Technology


Đại số quan hệ
❖ Biến là các quan hệ: Tập hợp ❖ Toán tử là các phép toán
❑ Dựa trên lý thuyết tập hợp
❖ Hằng số là một thể hiện cụ thể
• Hội  (union)
của quan hệ
• Giao  (intersec)
❖ Biểu thức • Trừ - (difference)
✓ Được gọi là câu truy vấn ❑ Rút trích một phần của quan hệ
✓ Chuỗi các phép toán trong đại • Chọn  (selection)
số quan hệ • Chiếu  (projection)
❑ Kết hợp giữa các quan hệ
✓ Kết quả là một thể hiện của
• Tích đề-các x (cartesian product)
quan hệ
• Phép kết (join)
• Phép chia  (division)
❑ Đổi tên 
Nguyễn Mai Huy – Master of Information technology
Phép nối - join
❖ Đượ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
❑ 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 đó
✓ Có dạng Ai  Bj hoặc i  j
✓ 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ị
Ghi chú:  là phép so sánh , =, , , , 
Nguyễn Mai Huy – Master of Information technology
Phép nối – join

❖ Phép nối có điều kiện tổng quát (Theta join)


❖ Nối bằng (Equi-join)
❖ Nối tự nhiên (Natural join)

Nguyễn Mai Huy – Master of Information technology


Phép nối theta – Theta join
❖ Kết theta (theta join) là phép kết có điều kiện
o Ký hiệu R CS

o C gọi là điều kiện kết trên thuộc tính

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

Nguyễn Mai Huy – Master of Information technology


Phép nối bằng – Equi-join
❖ Phép nối bằng (Equi-join)
o Ký hiệu R CS

o C là điều kiện so sánh bằng

R
R S S
r.ID=s.ID

Nguyễn Mai Huy – Master of Information technology


Phép nối tự nhiên – Natural join
❖ Phép nối tự nhiên (Natural join)
o Ký hiệu R S R
o R+  S+  
o Kết quả bỏ bớt cột giống nhau
S

R S

Lưu ý: Phép nối tự nhiên là phép nối bằng mà các cặp


thuộc tính dùng trong điều kiện có cùng tên và
cùng miền giá trị
Nguyễn Mai Huy – Master of Information technology
Phân biệt
❖ Theta join:
Cho phép thực hiện các phép so sánh tùy ý (<,>,=…)
❖ Equi-join:
Giống như theta join, nhưng chỉ so sánh bằng
❖ Natural join:
Giống như phép nối bằng, trên các thuộc tính cùng tên trong
các quan hệ. Ngoài ra, nối tự nhiên còn loại bỏ các cột trùng
lặp trong phép so sánh (chỉ giữ lại 1 cột)

Nguyễn Mai Huy – Master of Information technology


Phép chia

▪ Giả thiết: R(A1, A2, …, An) và S(B1, B2,…, Bm), {n>m, S  },
có m thuộc tính chung.
▪ Phép chia trên 2 quan hệ R và S, ký hiệu R  S, cho kết quả là
quan hệ Q có (n – m) ngôi được định nghĩa như sau:

Q = R  S = {t :  s  S & (t,s)  R}

Nguyễn Mai Huy – Master of Information technology


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(n) và S(m)
o n: là tập thuộc tính của R, m: là tập thuộc tính của S
o mn
• Kết quả của phép chia là một quan hệ Q(y)
o Với y = n – m
o Có t là một bộ của Q, nếu với mọi bộ tSS,
tồn tại bộ tRR thỏa
✓ tR = t
✓ tR(m) = tS(m)

Nguyễn Mai Huy – Master of Information technology


VD1: Minh họa phép chia
▪ Mã nhân viên tham gia tất cả các dự án của công ty
NHANVIEN PHANCONG
MANV TENNV HONV NGAYSINH DIACHI PHAI LUONG MAPB MANV MADA GIOCONG
1 Quang Nguyễn 17/09/1960 472 CMT8, Q.3 Nam 14000000 2 1 102 30
2 Loan Phạm 17/01/1978 332 PVT, Q.5 Nữ 7500000 3 1 101 45
3 Như Lê 12/06/1980 113 HVB, Q.PN Nữ 6300000 4 1 103 50
4 Hưng Nguyễn 28/10/1972 13 Tên Lửa, Q.BT Nam 38000000 3 3 101 85
4 101 95
DUAN
2 102 121
MADA TENDA DIADIEM
4 102 56
101 Số hóa dữ liệu cho tập đoàn XYZ 112 Nguyễn Trãi, Q1, HCM
3 103 125
102 Hệ thống chăm sóc khách hàng công ty AAC 41 Lý Thường Kiệt, Cà Mau
4 103 182
103 Quan trắc số liệu nguồn nước sông Đồng Nai 201 Võ Tánh, Biên Hòa
2 103 68

Nguyễn Mai Huy – Master of Information technology


VD1: Minh họa phép chia
Mã nhân viên tham gia tất cả các dự án của công ty
❖ Quan hệ: PHANCONG, DUAN
❖ Thuộc tính: MANV

1. DA   MADA(DUAN)

2. NV_THAMGIA   MANV, MADA(PHANCONG)

3. NV_TGTC   MANV(NV_THAMGIA  DA)

Nguyễn Mai Huy – Master of Information technology


VD1: Minh họa phép chia
1. DA  
MADA(DUAN) 2. NV_THAMGIA   MANV, MADA (PHANCONG)

S MADA
R MANV MADA
101 1 102
102 1 101
103 1 103
3 101

3. NV_TGTC  
MANV(NV_THAMGIA  DA)
4
2
101
102
4 102
Q MANV
3 103
1
4 103
4
2 103

Nguyễn Mai Huy – Master of Information technology


VD2: Minh họa phép chia
▪ Danh sách sinh viên đã học tất cả các môn học trong học kỳ
SINHVIEN DIEMTHI
MASV HOTEN NGAYSINH GIOITINH DIACHI MASV MAMH DIEM
199001 Nguyễn Minh Quang 12/06/2000 Nam 95 … TP.HCM 199001 73483 8.5
199002 Nguyễn Mỹ Linh 21/10/1999 Nữ 172 … Quy Nhơn 199002 70418 9.0
199003 73483 7.0
199003 Trần Thanh Tùng 01/07/2001 Nam 11 … Biên Hòa
199001 70418 9.2
199004 Phạm Minh Hạnh 23/02/2001 Nữ 207 … Bến Tre 199003 70418 7.5
199004 73483 6.5
MONHOC 199002 73483 7.0
MAMH TENMH SOTIET
73483 Cơ sở lập trình 30
70418 Cơ sở dữ liệu 45

Nguyễn Mai Huy – Master of Information technology


VD2: Minh họa phép chia
Danh sách sinh viên đã học tất cả các môn học trong học kỳ, với
các thông tin bao gồm: MaSV, Họ tên, Ngày sinh, Giới tính
❖ Quan hệ: DIEMTHI, MONHOC , SINHVIEN
❖ Thuộc tính: MASV , HOTEN, NGAYSINH, GIOITINH

1. MH   MAMH(MONHOC)

2. DIEM_SV   MASV, MAMH(DIEMTHI)

3. SV_HTC   MASV(DIEM_SV  MH)

4. DS   MASV, HOTEN, NGAYSINH, GIOITINH(SV_HTC SINHVEIN)


Nguyễn Mai Huy – Master of Information technology
VD2: Minh họa phép chia
11. MH  MAMH(MONHOC) 22. DIEM_SV  MASV, MAMH(DIEMTHI)
S MAMH R MASV MAMH
73483 33. SV_HTC  MASV(DIEM_SV  MH) 199001 73483
70418
Q MASV 199002 70418
199001 199003 73483
199002 199001 70418
199003 199003 70418

44. DS  MASV, HOTEN, NGAYSINH, GIOITINH(SV_HTC SINHVIEN)


199004
199002
73483
73483
MASV HOTEN NGAYSINH GIOITINH
199001 Nguyễn Minh Quang 12/06/2000 Nam

199002 Nguyễn Mỹ Linh 21/10/1999 Nữ

199003 Trần Thanh Tùng 01/07/2001 Nam

Nguyễn Mai Huy – Master of Information technology


Những phép toán khác

Faculty of Information Technology


❖ Hàm kết hợp (Aggregation function)
❖ Phép gom nhóm (Grouping)
❖ Phép kết ngoài (Outer join)

Nguyễn Mai Huy – Master of Information technology


Aggregation function :: Hàm kết hợp
▪ Nhận vào một tập các giá trị và trả về kết quả là giá trị duy nhất
▪ Các hàm tiêu biểu:
✓ AVG
R A B
✓ MIN SUM(B) = 21
 1
 3 AVG(B) = 3.5
✓ MAX  4 MIN(B) = 1
✓ SUM  6
MAX(B) = 6
 5
✓ COUNT  2 COUNT(B) = 6

Nguyễn Mai Huy – Master of Information technology


Grouping :: Lập nhóm
▪ Dùng để phân chia quan hệ thành nhiều nhóm dựa trên điều kiện
▪ Ký hiệu:

G1 ,G2 ,..., Gn  F1 ( A1 ), F2 ( A2 ),..., Fn ( An ) ( E )


• E là biểu thức đại số quan hệ
• Gi là thuộc tính gom nhóm (nếu không có Gi nào=> không chia nhóm (1 nhóm),
ngược lại (nhiều nhóm) => hàm F sẽ tính toán trên từng nhóm nhỏ được chia bởi
tập thuộc tính này)
• Fi là hàm tính toán
• Ai là tên thuộc tính

Nguyễn Mai Huy – Master of Information technology


Grouping :: Lập nhóm
✓ Điểm thi cao nhất, thấp nhất, trung bình của môn CSDL ?
 max( Diem ),min( Diem ),agv ( Diem ) Mamh = 'CSDL' ( KETQUATHI )

✓ Điểm thi cao nhất, thấp nhất, trung bình của từng môn ?

Mamh  max( Diem ),min( Diem ),avg ( Diem ) ( KETQUATHI )

Nguyễn Mai Huy – Master of Information technology


Nối ngoài :: Outer join
❑ Ý nghĩa: Mở rộng phép kết để tránh mất thông tin
❑ Thực hiện: tiến hành phép kết, sau đó thêm vào kết quả của phép kết là các bộ
của quan hệ này mà không phù hợp với các bộ trong quan hệ kia.
❑ Có 3 loại:
✓ Left outer join R S
✓ Right outer join R S
✓ Full outer join R S

Nguyễn Mai Huy – Master of Information technology


Example :: Left outer join
SinhVien DiemDanh
MaSV HoTen GioiTinh MaSV DiHoc
In ra danh sách sinh viên 19001 Nguyen Tuan Canh Nam 19001 Co
và kết quả điểm danh 19002 Pham Hoai Thu Nu 19002 Co
19003 Tranh Quoc Hung Nam 19003 Co
19004 Vo Minh Loan Nu

MaSV
SinhVien DiemDanh

MaSV HoTen GioiTinh DiHoc


19001 Nguyen Tuan Canh Nam Co
19002 Pham Hoai Thu Nu Co
19003 Tranh Quoc Hung Nam Co
19004 Vo Minh Loan Nu Null

Nguyễn Mai Huy – Master of Information technology


Example :: Right outer join
SinhVien DiemDanh
MaSV HoTen GioiTinh MaSV DiHoc
In ra danh sách sinh viên 19001 Nguyen Tuan Canh Nam 19001 Co
có đi học 19002 Pham Hoai Thu Nu 19002 Co
19003 Tran Quoc Hung Nam 19003 Co
19004 Vo Minh Loan Nu

MaSV
SinhVien DiemDanh

MaSV DiHoc HoTen GioiTinh


19001 Co Nguyen Tuan Canh Nam
19002 Co Pham Hoai Thu Nu
19003 Co Tran Quoc Hung Nam

Nguyễn Mai Huy – Master of Information technology


Thao tác trên cơ sở dữ liệu

Faculty of Information Technology


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

Nguyễn Mai Huy – Master of Information technology


Thêm – Add
▪ Đượ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ã 107 tham gia dự án
mã số 101 với số giờ công là 60

PHANCONG  PHANCONG  (107, 101, 60)


Nguyễn Mai Huy – Master of Information technology
Xóa – Remove
▪ Đượ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 dự án đã giao cho nhân viên 121

PHANCONG  PHANCONG − MANV=121(PHANCONG)

Nguyễn Mai Huy – Master of Information technology


Sửa – Update
▪ Đượ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 MANV, MADADA, GIOCONG*1.5(PHANCONG)

Nguyễn Mai Huy – Master of Information technology


Tóm tắt
▪ Join : Phép nối, kết dữ liệu (Theta join, Equi-join, Natural join)
▪ Set Division: Phép chia trên tập hợp
▪ Aggregation function và Grouping
▪ Outer join :: Left outer join – Right outer join – Full outer join
▪ Add – Remove – Update operator

Nguyễn Mai Huy – Master of Information technology

You might also like