Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Lưu Huỳnh Châu Pha

Nội dung chi tiết

Giới thiệu

Đại số quan hệ

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

Phép chọn

Phép chiếu

Phép tích Cartesian

Phép kết

Phép chia

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

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

 

pptx80 trang | Chuyên mục: Hệ Quản Trị Cơ Sở Dữ Liệu | Chia sẻ: yen2110 | Lượt xem: 448 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Lưu Huỳnh Châu Pha, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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 
Phòng 5 có tập hợp những địa điểm nào? 
Phòng nào có địa điểm nằm trong trong tập hợp đó? 
DIADIEM 
MAPHG 
1 
4 
5 
5 
TP HCM 
VUNGTAU 
NHATRANG 
HA NOI 
5 
TP HCM 
DIADIEM 
MAPHG 
1 
4 
5 
5 
TP HCM 
VUNGTAU 
NHATRANG 
HA NOI 
5 
TP HCM 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
44 
Ví dụ 10 (tt) 
B1: Tìm các địa điểm của phòng 5 
B2: Lấy ra các phòng có cùng địa điểm với DD_P5 
DD_P5(DD) ← π DIADIEM ( σ MAPHG=5 (DIADIEM_PHG)) 
R2 ← σ DIADIEM=DD (R1 × DD_P5) 
KQ ← π MAPHG (R2) 
R1 ← σ MAPHG ≠ 5 (DIADIEM_PHG) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
45 
Nội dung chi tiết 
Giới thiệu 
Đại số quan hệ 
Phép toán tập hợp 
Phép chọn 
Phép chiếu 
Phép tích Cartesian 
Phép kết 
Kết tự nhiên (Natural join) 
Kết có điều kiện tổng quát (Theta join) 
Kết bằng (Equi join) 
Phép chia 
Các phép toán khác 
Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
46 
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 
R(A 1 , A 2 , , A n ) và (B 1 , B 2 , , B m ) 
Kết quả của phép kết là một quan hệ Q 
Có n + m thuộc tính Q(A 1 , A 2 , , A n , B 1 , B 2 , , B m ) 
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 A i θ B j 
A i là thuộc tính của R, B j là thuộc tính của S 
A i và B j có cùng miền giá trị 
θ là phép so sánh ≠ , = , • , • , ≤ , ≥ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
47 
Phép kết (tt) 
Phân loại 
Kết theta (theta join) là phép kết có điều kiện 
Ký hiệu R C S 
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 tự nhiên (natural join) 
Ký hiệu R S hay R ∗ S 
R + ∩ Q + ≠ ∅ 
Kết quả của phép kết tự nhiên bỏ bớt đi 1 cột giống nhau 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
48 
Phép kết (tt) 
Ví dụ phép kết theta 
D 
E 
3 
S 
6 
1 
2 
A 
B 
1 
R 
4 
2 
5 
C 
3 
6 
7 
8 
9 
R B<D S 
1 
2 
3 
3 
1 
1 
2 
3 
6 
2 
4 
5 
6 
6 
2 
A 
B 
C 
D 
E 
R C S = 
σ C (R × S) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
49 
Phép kết (tt) 
Ví dụ phép kết bằng 
D 
E 
3 
S 
6 
1 
2 
A 
B 
1 
R 
4 
2 
5 
C 
3 
6 
7 
8 
9 
R C=D S 
A 
B 
1 
2 
C 
3 
4 
5 
6 
D 
3 
E 
1 
6 
2 
C 
D 
3 
S 
6 
1 
2 
A 
B 
1 
R 
4 
2 
5 
C 
3 
6 
7 
8 
9 
R C=S.C S 
A 
B 
1 
2 
C 
3 
4 
5 
6 
S.C 
3 
D 
1 
6 
2 
S.C 
D 
3 
S 
6 
1 
2 
ρ (S.C,D) S 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
50 
Phép kết (tt) 
Ví dụ phép kết tự nhiên 
R S 
C 
D 
3 
S 
6 
1 
2 
A 
B 
1 
R 
4 
2 
5 
C 
3 
6 
7 
8 
9 
A 
B 
1 
2 
C 
3 
4 
5 
6 
S.C 
3 
D 
1 
6 
2 
A 
B 
1 
2 
C 
3 
4 
5 
6 
D 
1 
2 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
51 
Ví dụ 11 
Cho biết nhân viên có lương hơn lương của nhân viên ‘Tùng’ 
Quan hệ: NHAN_VIEN 
Thuộc tính: LUONG 
NHAN_VIEN(HONV, TENNV, MANV, , LUONG , PHG) 
R1(LG) ← π LUONG ( σ TENNV=‘Tung’ (NHAN_VIEN)) 
KQ ← NHAN_VIEN LUONG>LG R1 
KQ(HONV, TENNV, MANV, , LUONG , LG ) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
52 
Ví dụ 12 
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 
Quan hệ: NHAN_VIEN, PHONG_BAN 
PHONG_BAN(TENPHG, MAPHG , TRPHG, NG_NHANCHUC) 
NHAN_VIEN(HONV, TENNV, MANV, , PHG ) 
KQ ← NHAN_VIEN PHG=MAPHG PHONG_BAN 
KQ(HONV, TENNV, MANV, , PHG , TENPHG, MAPHG , ) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
53 
Ví dụ 13 
Với mỗi phòng ban hãy cho biết các địa điểm của phòng ban đó 
Quan hệ: PHONG_BAN, DDIEM_PHG 
PHONG_BAN(TENPHG, MAPHG , TRPHG, NGAY_NHANCHUC) 
DDIEM_PHG( MAPHG , DIADIEM) 
KQ(TENPHG, MAPHG , TRPHG, NGAY_NHANCHUC, DIADIEM) 
KQ ← PHONG_BAN MAPHG=MAPHG DDIEM_PHG 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
54 
Ví dụ 14 
Với mỗi phòng ban hãy cho biết thông tin của người trưởng phòng 
Quan hệ: PHONG_BAN, NHAN_VIEN 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
55 
Ví dụ 15 
Cho biết lương cao nhất trong công ty 
Quan hệ: NHAN_VIEN 
Thuộc tính: LUONG 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
56 
Ví dụ 16 
Cho biết phòng ban có cùng địa điểm với phòng 5 
Quan hệ: DDIEM_PHG 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
57 
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 
Ví dụ 
R ∩ S = R ∪ S − ((R − S) ∪ (S − R)) 
R C S = σ C (R×S) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
58 
Nội dung chi tiết 
Giới thiệu 
Đại số quan hệ 
Phép toán tập hợp 
Phép chọn 
Phép chiếu 
Phép tích Cartesian 
Phép kết 
Phép chia 
Các phép toán khác 
Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
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) 
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ộ t S ∈S, tồn tại bộ t R ∈R thỏa 2 điều kiện 
t R (Y) = t 
t R (X) = t S (X) 
X 
Y 
T(Y) 
S(X) 
R(Z) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
60 
Phép chia (tt) 
Ví dụ 
A 
B 
α 
β 
a 
a 
γ 
a 
α 
a 
α 
a 
β 
a 
γ 
a 
γ 
a 
C 
D 
α 
γ 
a 
b 
γ 
a 
γ 
a 
γ 
b 
γ 
a 
γ 
b 
β 
b 
E 
1 
3 
1 
1 
1 
1 
1 
1 
R 
D 
E 
a 
S 
b 
1 
1 
R ÷ S 
A 
B 
C 
α 
a 
γ 
γ 
a 
γ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
61 
Ví dụ 17 
Cho biết mã nhân viên tham gia tất cả các đề án 
Quan hệ: PHAN_CONG, DE_AN 
Thuộc tính: MANV 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
62 
Ví dụ 18 
Cho biết mã nhân viên tham gia tất cả các đề án do phòng số 4 phụ trách 
Quan hệ: PHAN_CONG, DE_AN 
Thuộc tính: MANV 
Điều kiện: PHONG=4 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
63 
Phép chia (tt) 
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 (Q2 − R) 
T ← Q1 − Q3 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
64 
Nội dung chi tiết 
Giới thiệu 
Đại số quan hệ 
Phép toán tập hợp 
Phép chọn 
Phép chiếu 
Phép tích Cartesian 
Phép kết 
Phép chia 
Các phép toán khác 
Hàm kết hợp (Aggregation function) 
Phép gom nhóm (Grouping) 
Phép kết ngoài (Outer join) 
Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
65 
Hàm kết hợ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 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
66 
Hàm kết hợp (tt) 
Ví dụ 
A 
B 
1 
R 
3 
2 
4 
1 
1 
2 
2 
SUM(B) = 10 
AVG(A) = 1.5 
MIN(A) = 1 
MAX(B) = 4 
COUNT(A) = 4 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
67 
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 
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 
G1, G2, , Gn ϑ F1(A1), F2(A2), , Fn(An) (E) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
68 
Phép gom nhóm (tt) 
Ví dụ 
ϑ SUM(C) (R) 
SUM_C 
27 
A 
B 
α 
R 
α 
2 
4 
β 
γ 
2 
2 
C 
7 
7 
3 
10 
A ϑ SUM(C) (R) 
SUM_C 
14 
3 
10 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
69 
Ví dụ 19 
Tính số lượng nhân viên và lương trung bình của cả công ty 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
70 
Ví dụ 20 
Tính số lượng nhân viên và lương trung bình của từng phòng ban 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
71 
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 
Mở rộng bên phải 
Mở rộng 2 bên 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
72 
Ví dụ 21 
Cho biết họ tên nhân viên và tên phòng ban mà họ phụ trách nếu có 
Quan hệ: NHAN_VIEN, PHONG_BAN 
Thuộc tinh: TENNV, TENPH 
R1 ← NHAN_VIEN PHG=MAPHG PHONG_BAN 
KQ ← π HONV,TENNV, TENPHG (R1) 
TENNV 
HONV 
TENPHG 
Tung 
Nguyen 
Nghien cuu 
Hang 
Bui 
null 
Nhu 
Le 
null 
Vinh 
Pham 
Quan ly 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
73 
Nội dung chi tiết 
Giới thiệu 
Đại số quan hệ 
Phép toán tập hợp 
Phép chọn 
Phép chiếu 
Phép tích Cartesian 
Phép kết 
Phép chia 
Các phép toán khác 
Các thao tác cập nhật trên quan hệ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
74 
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 
R new ← các phép toán trên R old 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
75 
Thao tác thêm 
Được diễn đạt 
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 
R new ← R old ∪ E 
PHAN_CONG ← PHAN_CONG ∪ (‘123456789’, 20, 10) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
76 
Thao tác xóa 
Được diễn đạt 
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 
R new ← R old − E 
PHAN_CONG ← PHAN_CONG − σ MANV=‘123456789’ (PHAN_CONG) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
77 
Ví dụ 22 
Xóa những phân công đề án có địa điểm ở ‘Ha Noi’ 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
78 
Thao tác sửa 
Được diễn đạt 
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 
R new ← π F1, F2, , Fn (R old ) 
PHAN_CONG ← π MA_NVIEN, SODA, THOIGIAN*1.5 (PHAN_CONG) 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
79 
Ví dụ 23 
Các nhân viên làm việc trên 30 giờ sẽ được tăng thời gian làm việc lên 1.5 lần, còn lại tăng lên 2 lần 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 
80 

File đính kèm:

  • pptxbai_giang_co_so_du_lieu_chuong_4_dai_so_quan_he_luu_huynh_ch.pptx