Bài giảng Nhập môn Cơ Sở Dữ Liệu: Chương 3.2: Đại số quan hệ
Nộidung chi tiết
Giớithiệu
Các thao tác cậpnhậttrênquanhệ
Đạisốquan hệ
Phép toán tậphợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép nối
Phép chia
Các phép toán khác
9/1968 332 NTH Q1 Nu 25000 4 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4 Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5 333445555 987987987 987654321 999887777 MANV TENPHG MAPHG TRPHG NG_NHANCHUC Nghien cuu 5 333445555 05/22/1988 Dieu hanh 4 987987987 01/01/1995 Quan ly 1 888665555 06/19/1981 TENNV HONV Tung Nguyen Hung Nguyen 333445555 987987987 888665555 MANV Vinh Pham σTRPHG=MANV (PHONGBAN × NHA VIEN) Nhập môn Cơ sở dữ liệu - Khoa CNTT 44 Ví dụ 8 (tt) B1: Tích Đề-các PHONGBAN và NHANVIEN B2: Chọn ra những bộ thỏa TRPHG=MANV PB_NV ← (NHANVIEN × PHONGBAN) KQ ←σTRPHG=MANV (PB_NV) Nhập môn Cơ sở dữ liệu - Khoa CNTT 45 Ví dụ 9 Cho biết các phòng 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 đó? DIADIEMMAPHG 1 4 5 5 TP HCM VUNGTAU NHATRANG HA NOI 5 TP HCM DIADIEMMAPHG 1 4 5 5 TP HCM VUNGTAU NHATRANG HA NOI 5 TP HCM Nhập môn Cơ sở dữ liệu - Khoa CNTT 46 Ví dụ 9 (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) Nhập môn Cơ sở dữ liệu - Khoa CNTT 47 Nội dung chi tiết Giới thiệu Các thao tác cập nhật trên quan hệ Đạ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 nối - 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) Phép chia Các phép toán khác Nhập môn Cơ sở dữ liệu - Khoa CNTT 48 Phép nối Đượ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 nối 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 nối nào đó y Có dạng Ai θ Bj y Ai là thuộc tính của R, Bj là thuộc tính của S y Ai và Bj có cùng miền giá trị y θ là phép so sánh ≠, =, , ≤, ≥ Nhập môn Cơ sở dữ liệu - Khoa CNTT 49 Phép nối(tt) Phân loại - Nối theta (theta join) là phép nối có điều kiện y Ký hiệu R C S y C gọi là điều kiện nối trên thuộc tính - Nối bằng (equi join) khi C là điều kiện so sánh bằng - Nối tự nhiên (natural join) y Ký hiệu R S hay R ∗ S y R+ ∩ S+ ≠ ∅ y Kết quả của phép nối bằng bỏ bớt đi 1 cột giống nhau Nhập môn Cơ sở dữ liệu - Khoa CNTT 50 Phép nối(tt) Ví dụ phép nối 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 51 Phép nối(tt) Ví dụ phép nối 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 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 52 Phép nối(tt) Ví dụ phép nối 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 53 Ví dụ 10 Cho biết nhân viên có lương hơn lương của nhân viên ‘Tùng’ - Quan hệ: NHANVIEN - Thuộc tính: LUONG R(L_TUNG) ← πLUONG (σTENNV=‘Tung’ (NHANVIEN)) KQ ← NHANVIEN LUONG>L_TUNG R B1: B2: Nhập môn Cơ sở dữ liệu - Khoa CNTT 54 Ví dụ 11 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ệ: NHANVIEN, PHONGBAN Nhập môn Cơ sở dữ liệu - Khoa CNTT 55 Ví dụ 12 Với mỗi phòng ban hãy cho biết các địa điểm của phòng ban đó - Quan hệ: PHONGBAN, DDIEM_PHG Nhập môn Cơ sở dữ liệu - Khoa CNTT 56 Ví dụ 13 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ệ: PHONGBAN, NHANVIEN Nhập môn Cơ sở dữ liệu - Khoa CNTT 57 Ví dụ 14 Cho biết lương cao nhất trong công ty - Quan hệ: NHANVIEN - Thuộc tính: LUONG Nhập môn Cơ sở dữ liệu - Khoa CNTT 58 Ví dụ 15 Cho biết phòng ban có cùng địa điểm với phòng 5 - Quan hệ: DDIEM_PHG Nhập môn Cơ sở dữ liệu - Khoa CNTT 59 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ụ y R∩S = R∪S − ((R−S) ∪ (S−R)) y R CS = σC(R×S) Nhập môn Cơ sở dữ liệu - Khoa CNTT 60 Nội dung chi tiết Giới thiệu Các thao tác cập nhật trên quan hệ Đạ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 nối Phép chia Các phép toán khác Nhập môn Cơ sở dữ liệu - Khoa CNTT 61 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) y Z là tập thuộc tính của R, X là tập thuộc tính của S y 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ộ tS ∈S, tồn tại bộ tR ∈R thỏa 2 điều kiện y tR(Y) = t y tR(X) = tS(X) X Y T(Y)S(X)R(Z) Nhập môn Cơ sở dữ liệu - Khoa CNTT 62 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 63 Ví dụ 16 Cho biết mã nhân viên tham gia tất cả các đề án - Quan hệ: PHANCONG, DEAN - Thuộc tính: MANV DA ← πMADA (DEAN) NV_DEAN ← πMANV, MADA (PHANCONG) MA_NV ← πMANV (NV_DEAN÷DA) B1: B2: B3: Nhập môn Cơ sở dữ liệu - Khoa CNTT 64 Ví dụ 17 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ệ: NHANVIEN, PHANCONG, DEAN - Thuộc tính: MANV - Điều kiện: PHONG=4 P4_DA ←πMADA ( σPHG=4 (DEAN)) NV_DA ← πMANV, MADA (PHANCONG) MA_NV ← πMANV (NV_DA÷P4_DA) B1: B2: B3: Nhập môn Cơ sở dữ liệu - Khoa CNTT 65 Phép chia (tt) Biểu diễn phép chia thông qua tập đầy đủ các phép toán ĐSQH T1 ← πY (R) T2 ← T1 × S T3 ←πY (T2 − R) T ← T1 − T2 Nhập môn Cơ sở dữ liệu - Khoa CNTT 66 Nội dung chi tiết Giới thiệu Các thao tác cập nhật trên quan hệ Đạ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 nối 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) Nhập môn Cơ sở dữ liệu - Khoa CNTT 67 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 68 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 Nhập môn Cơ sở dữ liệu - Khoa CNTT 69 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) Nhập môn Cơ sở dữ liệu - Khoa CNTT 70 Phép gom nhóm (tt) Ví dụ ℑSUM(C) (R) A B α R α 2 4 β γ 2 2 C 7 7 3 10 A ℑSUM(C) (R) Nhập môn Cơ sở dữ liệu - Khoa CNTT 71 Ví dụ 18 Tính số lượng nhân viên và lương trung bình của cả công ty ℑCOUNT(), AVERAGE(LUONG) (NHANVIEN) Nhập môn Cơ sở dữ liệu - Khoa CNTT 72 Ví dụ 19 Tính số lượng nhân viên và lương trung bình của từng phòng ban MAPGH ℑCOUNT(), AVERAGE(LUONG) (NHANVIEN) Nhập môn Cơ sở dữ liệu - Khoa CNTT 73 Phép nối ngoài Mở rộng phép nối để tránh mất mát thông tin - Thực hiện phép nối - Lấy thêm các bộ không thỏa điều kiện nối Có 3 hình thức - Nối ngoài trái - Nối ngoài phải - Nối ngoài đầy đủ Nhập môn Cơ sở dữ liệu - Khoa CNTT 74 Ví dụ 20 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ệ: NHANVIEN, PHONGBAN - Thuộc tinh: TENNV, TENPH R1 ← NHANVIEN PHG=MAPHG PHONGBAN KQ ←πHONV,TENNV, TENPHG (R1) TENNV HONV TENPHG Tung Nguyen Nghien cuu Hang Bui null Nhu Le null Vinh Pham Quan ly Nhập môn Cơ sở dữ liệu - Khoa CNTT 75 Tài liệu tham khảo Giáo trình CSDL - Chương 3.III Database management system - Chapter 4 Fundamentals of Database Systems - Chapter 7 An introduction to Database System - Chapter 6, 7 Nhập môn Cơ sở dữ liệu - Khoa CNTT 76 Bài tập 1 T1 T1.P = T2.A T2 T1 (T1.Q = T2.A AND T1.R = T2.C) T2 T1 (T1.Q = T2.B) T2 T1 T1.P = T2.A T2 T1 (T1.Q = T2.B) T2 Nhập môn Cơ sở dữ liệu - Khoa CNTT 77 Bài tập 2 Cho cơ sở dữ liệu CÔNGTY gồm các lược đồ: - NHANVIEN(MANV, HONV, TENNV, NS, GT, DCHI, LUONG, MANGS, MAĐV) - ĐONVI(MADV, TENDV, MANQL, NGAY_BD) - DEAN(MADA, TENDA, DD_DA, MADV) - THANNHAN(MANV, TEN_TN, NS, GT, QUANHE) - NV_DEAN(MANV, MADA, SOGIO) - DONVI_DD(MADV, DD) Nhập môn Cơ sở dữ liệu - Khoa CNTT 78 Bài tập 2(tt) Đưa ra tên và địa chỉ của tất cả các nhân viên làm việc cho đơn vị. Với mỗi dự án có địa điểm tại Hà nội, hãy liệt kê mã số dự án, mã số của đơn vị kiểm soát, Tên, địa chỉ và ngày sinh của người quản lý đơn vị 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. Tạo ra một danh sách các mã số dự án đối với các dự án có một nhân viên hoặc một người quản lý đơn vị kiểm soát dự án có tên là ‘Nam’. Đưa ra tên của tất cả các nhân viên có nhiều hơn hoặc bằng 2 người phụ thuộc. Đưa ra các nhân viên không có người phụ thuộc. Đư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. Nhập môn Cơ sở dữ liệu - Khoa CNTT 79 Thi giữa kỳ Nắm được các khái niệm cơ bản về CSDL, mô hình CSDL Vẽ được lược đồ liên kết, hiểu lược đồ liên kết mở rộngÆ chuyển đổi được sang lược đồ quan hệ Thực hiện được các thao tác CSDL (sử dụng các phép toán trên đại số quan hệ) Nhập môn Cơ sở dữ liệu - Khoa CNTT 80
File đính kèm:
- chap03.2.pdf