Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Đỗ Thị Mai Hường
Đại số quan hệ
• 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 nối
• Phép chia
• Các phép toán khác
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Đỗ Thị Mai Hường", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Đỗ Thị Mai Hường
phép toán khác Lý thuyết CSDL 25 Phép chọn • Chọn từ bảng quan hệ ra các phần tử thỏa mãn điều kiện nào đó. • Cho quan hệ r trên LĐQH R. P là mệnh đề logic. Phần tử t thuộc r thỏa mãn điều kiện P, kí hiệu t(P). Phép chọn từ quan hệ r theo điều kiện P cho ta một quan hệ kí hiệu r(P) trên đúng lược đồ R và chứa các phần tử r thỏa mãn điều kiện P. Vậy r(P)={t: t r & t(P) } Ví dụ: Giả sử điều kiện P là chọn ra phần tử có giá trị trong thuộc tính B<=30, ta có r(P): A B R 10 20 30 C 1 1 1 40 2 A B R 10 20 30 C 1 1 1 Lý thuyết CSDL 26 Phép chọn (tt) Một cách định nghĩa khác: • Được dùng để lấy ra các bộ của quan hệ R • Các bộ được chọn phải thỏa mãn điều kiện chọn P • Ký hiệu • P là biểu thức gồm các mệnh đề có dạng – – • gồm , , , , , • Các mệnh đề được nối lại nhờ các phép , , P (R) Lý thuyết CSDL 27 Phép chọn (tt) • Kết quả trả về là một quan hệ – Có cùng danh sách thuộc tính với R – Có số bộ luôn ít hơn hoặc bằng số bộ của R • Ví dụ (A=B)(D>5) (R) A B R C 1 5 12 23 D 7 7 3 10 A B R C 1 23 D 7 10 Lý thuyết CSDL 28 Phép chọn (tt) • Phép chọn có tính giao hoán • Kết hợp nhiều phép chọn thành 1 phép chọn p1 ( p2 (R)) = p2 (p1 (R)) p1 ( p2 (R)) = p1^ p2 (R) Lý thuyết CSDL 29 Ví dụ 5 • Cho biết các nhân viên ở phòng số 4 – Quan hệ: NHANVIEN – Thuộc tính: PHG – Điều kiện: PHG=4 PHG=4 (NHANVIEN) Lý thuyết CSDL 30 Ví dụ 6 • Tìm các nhân viên có lương trên 2.5tr ở phòng 4 hoặc các nhân viên có lương trên 3tr ở phòng 5 – Quan hệ: NHANVIEN – Thuộc tính: LUONG, PHG – Điều kiện: • LUONG>2500000 và PHG=4 hoặc • LUONG>3000000 và PHG=5 (PHG=4 AND LUONG>2.5tr)OR (PHG=5 AND LUONG>3tr) (NHANVIEN) Lý thuyết CSDL 31 Chuỗi các phép toán • Kết hợp các phép toán đại số quan hệ – Lồng các biểu thức lại với nhau – Thực hiện từng phép toán một • B1 • B2 A1, A2, , Ak (P (R)) =P ( A1, A2, , Ak (R)) P (R) A1, A2, , Ak (Quan hệ kết quả ở B1) Cần đặt tên cho quan hệ Lý thuyết CSDL 32 Phép gán • Đượ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ý hiệu • Ví dụ – B1 – B2 S P (R) KQ A1, A2, , Ak (S) Lý thuyết CSDL 33 Phép đổi tên • Được dùng để đổi tên – Quan hệ – Thuộc tính S(R): (đọc là rho) Đổi tên quan hệ R thành S Xét quan hệ R(B, C, D) X, C, D (R) : Đổi tên thuộc tính B thành X Đổi tên quan hệ R thành S và thuộc tính B thành X S(X,C,D)(R) Lý thuyết CSDL 34 Ví dụ 7 • Cho biết họ và tên nhân viên làm việc ở phòng số 4 – Quan hệ: NHANVIEN – Thuộc tính: HONV, TENNV – Điều kiện: PHG=4 • C1: • C2: HONV, TENNV (PHG=4 (NHANVIEN)) NV_P4 PHG=4 (NHANVIEN) KQ HONV, TENNV (NV_P4) KQ(HO, TEN) HONV, TENNV (NV_P4) KQ(HO, TEN) ( HONV, TENNV (NV_P4)) Lý thuyết CSDL 35 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 Lý thuyết CSDL 36 Phép tích Đề các • Được dùng để kết hợp các bộ của các quan hệ lại với nhau • Ký hiệu • 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à S có m thuộc tính thì Q sẽ có (n + m) thuộc tính (R+ S+ = ) R S Lý thuyết CSDL 37 Phép tích Đề các (tt) • Ví dụ A B R 1 2 B C S 10 10 D + + 20 - 10 - R S Lý thuyết CSDL 38 Phép tích Đề các (tt) • Ví dụ A B R 1 2 B C S 10 10 D + + 20 - 10 - unambiguous A R.B 1 2 2 1 1 1 2 2 S.B C 10 10 10 10 20 10 20 10 D + + + + - - - - R S Lý thuyết CSDL 39 Phép tích Đề các (tt) • Thông thường theo sau phép tích Đề-các là phép chọn R S A R. B 1 2 2 1 1 1 2 2 S.B C 10 10 10 10 20 10 20 10 D + + + + - - - - A=S.B (R S) A R.B 1 2 2 S.B C 10 10 20 D + + - Lý thuyết CSDL 40 Ví dụ 8 • Với mỗi phòng ban, cho biết thông tin của người trưởng phòng – Quan hệ: PHONGBAN, NHANVIEN – Thuộc tính: TRPHG, MAPHG, TENNV, HONV, TENPHG MAPHG TRPHG NG_NHANCHU C Nghien cuu 5 333445555 05/22/1988 Dieu hanh 4 987987987 01/01/1995 Quan ly 1 888665555 06/19/1981 TENNV HONV NS DCHI GT LUONG PHG Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5 Hang Bui 07/19/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 4 333445555 987987987 987654321 999887777 MANV TENPHG MAPHG TRPHG NG_NHANCHU C 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 NHANVIEN) Lý thuyết CSDL 41 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) Lý thuyết CSDL 42 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 Lý thuyết CSDL 43 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) Lý thuyết CSDL 44 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 Lý thuyết CSDL 45 Phép nối • Với là phép so sánh , , , , , ta có định nghĩa phép nối: • Cho r và s là hai quan hệ tương ứng trên các lược đồ rời nhau R và S. • Phép kết nối của các quan hệ r và s, kí hiệu: r |><|ij s là một quan hệ trên R S gồm những bộ thuộc tính Decac của r và s sao cho thành phần thứ i của quan hệ r có liên hệ với thành phần thứ j của quan hệ s. • Vậy kết nối : r |><|ij s là chọn trong r s các bộ mà các thành phần thứ i, j của các quan hệ r, s tương ứng thỏa mãn ij, tức là: r |><|ij s ={t r s: t()} Ví dụ: 2.13,2.14 Lý thuyết CSDL Trang 46-47 Lý thuyết CSDL 46 Phép nối (tt) Một cách định nghĩa khác: • Đượ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 đó • 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ị • i, j là số thứ tự của thuộc tính trên các quan hệ R và S tương ứng • là phép so sánh , , , , , Lý thuyết CSDL 47 Phép nối(tt) • Phân loại – Nối theta (theta join) là phép nối có điều kiện • Ký hiệu R C S • 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) • Ký hiệu R S là quan hệ trên lược đồ R U S gồm các phần tử t mà t chiếu trên R là phần tử thuộc r còn chiếu của t lên S là phần tử của s. • Vậy r s={t: t.R r, t.S s} Lý thuyết CSDL 48 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 hoặc R 2<1 S Lý thuyết CSDL 49 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 Hoặc R 3=1 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 Lý thuyết CSDL 50 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 Lý thuyết CSDL 51 Phép nối nửa • Cho các quan hệ r và s trên các lược đồ R và S tương ứng. • Nối nửa của các quan hệ r và s, ký hiệu: r|><s là một quan hệ trên lược đồ R gồm các bộ của r |><| s ).R} Ví dụ: Giả sử r và s là các quan hệ: r s fda ecb dcb DCB dac fbd cbd cba CBA Khi đó ta có phép r|><s là dac cbd cba CBA Lý thuyết CSDL 52 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: Lý thuyết CSDL 53 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 Lý thuyết CSDL 54 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 Lý thuyết CSDL 55 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 Lý thuyết CSDL 56 Ví dụ 14 • Cho biết lương cao nhất trong công ty – Quan hệ: NHANVIEN – Thuộc tính: LUONG Lý thuyết CSDL 57 Ví dụ 15 • Cho biết phòng ban có cùng địa điểm với phòng 5 – Quan hệ: DDIEM_PHG Lý thuyết CSDL 58 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ụ • RS = RS ((R S) (S R)) • R CS = C(R S) Lý thuyết CSDL 59 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 Lý thuyết CSDL 60 Phép chia • Cho LĐQH R(A1, A2, , An), S là lược đồ con của R. Giả sử r,s là các quan hệ trên R, S tương ứng. • Phép chia của quan hệ r cho quan hệ s kí hiệu: r s là quan hệ trên lược đồ R-S gồm các phần tử r sao cho mọi phần tử u s và ghép t với u ta được phần tử thuộc r: • Vậy r s = {t: u s & r } X Y T(Y)S(X)R(Z) Lý thuyết CSDL 61 Phép chia Một cách định nghĩa khác: • Đượ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ộ tS S, tồn tại bộ tR R thỏa 2 điều kiện • tR(Y) = t • tR(X) = tS(X) X Y T(Y ) S(X)R(Z) Lý thuyết CSDL 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 Lý thuyết CSDL 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: Lý thuyết CSDL 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: Lý thuyết CSDL 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 Lý thuyết CSDL 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) Lý thuyết CSDL 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 Lý thuyết CSDL 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 Lý thuyết CSDL 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) Lý thuyết CSDL 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) Lý thuyết CSDL 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) Lý thuyết CSDL 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) Lý thuyết CSDL 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 đủ Lý thuyết CSDL 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 MANV=TRPHG PHONGBAN KQ HONV,TENNV, TENPHG (R1) TENNV HONV TENPHG Tung Nguyen Nghien cuu Hang Bui null Nhu Le null Vinh Pham Quan ly Lý thuyết CSDL 75 Bài tập 1 T1 T1.P = T2.AT2 T1 (T1.P = T2.A AND T1.R = T2.C)T2 T1 (T1.Q = T2.B)T2 T1 T1.P = T2.AT2 T1 (T1.Q = T2.B)T2 T1T2T1 Lý thuyết CSDL 76 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) Lý thuyết CSDL 77 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. Lý thuyết CSDL 78 Thảo luận • Nội dung 1: Thảo luận theo nhóm Áp dụng các phép toán đại số quan hệ, thực hiện truy vấn dữ liệu trên đề tài đã chọn của nhóm. • Nội dung 2: Ôn lại các nội dung đã học, làm bài kiểm tra 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 thực thể chuyển đổi được sang lược đồ quan hệ. – Lý thuyết phụ thuộc hàm, bao đóng, khóa, các dạng chuẩn, kiểm tra tách nối không mất thông tin. – 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ệ). Lý thuyết CSDL 79
File đính kèm:
- bai_giang_co_so_du_lieu_chuong_4_dai_so_quan_he_do_thi_mai_h.pdf