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ệ
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:
- bai_giang_co_so_du_lieu_chuong_4_dai_so_quan_he_luu_huynh_ch.pptx