Cấu trúc dữ liệu và giải thuật - Chương 3: Đại số quan hệ - Hồ Trần Nhật Thủy

Tài liệu Cấu trúc dữ liệu và giải thuật - Chương 3: Đại số quan hệ - Hồ Trần Nhật Thủy: Chương 3 Đại số quan hệ GV: ThS. Hồ Trần Nhật Thủy ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN 2Nội dung 1. Giới thiệu 2. Đại số quan hệ 3. Các phép toán cơ bản 4. Các phép toán khác 5. Các thao tác cập nhật 31. Giới thiệu uThế nào là truy vấn CSDL? n Cho một CSDL, đưa ra các câu hỏi, nhận được các câu trả lời n Ví dụ: n Cho biết tất cả sinh viên có điểm trung bình > 8 thuộc các khoa. n Cho biết các khoa có hơn 100 sinh viên. n Trong các khoa, chọn sinh viên đạt điểm trung bình cao nhất trong năm học trước uNgôn ngữ truy vấn: là ngôn ngữ cho phép người dùng cập nhật và rút trích dữ liệu được lưu trong một mô hình dữ liệu. 41. Giới thiệu (tt) uCó 2 loại xử lý n Làm thay đổi dữ liệu (cập nhật) n Thêm mới, xóa và sửa n Không làm thay đổi dữ liệu (rút trích) n Truy vấn (query) uThực hiện các xử lý n Đại số quan hệ (Relational Algebra) n Biểu diễn câu truy vấn dưới dạng biểu thức n Phép tính quan hệ (Relational Calculus) n Biểu diễn kết quả...

pdf64 trang | Chia sẻ: putihuynh11 | Lượt xem: 783 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Cấu trúc dữ liệu và giải thuật - Chương 3: Đại số quan hệ - Hồ Trần Nhật Thủy, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Chương 3 Đại số quan hệ GV: ThS. Hồ Trần Nhật Thủy ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN 2Nội dung 1. Giới thiệu 2. Đại số quan hệ 3. Các phép toán cơ bản 4. Các phép toán khác 5. Các thao tác cập nhật 31. Giới thiệu uThế nào là truy vấn CSDL? n Cho một CSDL, đưa ra các câu hỏi, nhận được các câu trả lời n Ví dụ: n Cho biết tất cả sinh viên có điểm trung bình > 8 thuộc các khoa. n Cho biết các khoa có hơn 100 sinh viên. n Trong các khoa, chọn sinh viên đạt điểm trung bình cao nhất trong năm học trước uNgôn ngữ truy vấn: là ngôn ngữ cho phép người dùng cập nhật và rút trích dữ liệu được lưu trong một mô hình dữ liệu. 41. Giới thiệu (tt) uCó 2 loại xử lý n Làm thay đổi dữ liệu (cập nhật) n Thêm mới, xóa và sửa n Không làm thay đổi dữ liệu (rút trích) n Truy vấn (query) uThực hiện các xử lý n Đại số quan hệ (Relational Algebra) n Biểu diễn câu truy vấn dưới dạng biểu thức n Phép tính quan hệ (Relational Calculus) n Biểu diễn kết quả n SQL (Structured Query Language) 5Nội dung 1. Giới thiệu 2. Đại số quan hệ 3. Các phép toán cơ bản 4. Các phép toán khác 5. Các thao tác cập nhật 62. Đại số quan hệ uĐại số quan hệ (ĐSQH) n Có nền tảng toán học (cụ thể là lý thuyết tập hợp). n Là một tập hợp các phép toán quan hệ để rút trích dữ liệu. uChức năng: n Cho phép mô tả các phép toán rút trích dữ liệu từ các quan hệ trong cơ sở dữ liệu quan hệ. n Cho phép tối ưu quá trình rút trích bằng các phép toán có sẵn của lý thuyết tập hợp. 72. Đại số quan hệ uBiến là các quan hệ n Tập hợp (set) uToán tử là các phép toán (operations) n Trên tập hợp n Hội È (union) n Giao Ç (intersec) n Trừ - (difference) n Rút trích 1 phần của quan hệ n Chọn s (selection) n Chiếu p (projection) n Kết hợp các quan hệ n Tích Cartesian ´ (Cartesian product) n Kết (join) n Đổi tên r 82. Đại số quan hệ (tt) uBiểu thức ĐSQH n Là chuỗi các phép toán đại số quan hệ n Kết quả trả về là thể hiện của quan hệ 9Nội dung 1. Giới thiệu 2. Đại số quan hệ 3. Các phép toán cơ bản 4. Các phép toán khác 5. Các thao tác cập nhật 10 Phép chọn uĐược dùng để lấy ra các bộ của quan hệ R uCác bộ được chọn phải thỏa mãn điều kiện chọn P uKý hiệu: uĐịnh nghĩa: uTrong đó: n R là một quan hệ n P là biểu thức điều kiện gồm các mệnh đề có dạng: n n n gồm , £ , ³ , ¹ , = n Các mệnh đề được nối lại nhờ các phép Ù (AND), Ú(OR), Ø(NOT) ( )P Rs ( ) { | ( )}P R t t R P ts = Î Ù 11 Ví dụ phép chọn uCho biết danh sách các học viên nam n Quan hệ: HOCVIEN n Thuộc tính: Gioitinh n Điều kiện: Gioitinh=‘Nam’ sGioitinh=‘Nam’(HOCVIEN) Mahv HoTen Gioitinh Noisinh Malop K1103 Ha Duy Lap Nam Nghe An K11 K1102 Tran Ngoc Han Nu Kien Giang K11 K1104 Tran Ngoc Linh Nu Tay Ninh K11 K1105 Tran Minh Long Nam TpHCM K11 K1106 Le Nhat Minh Nam TpHCM K11 12 Phép chọn (tt) uKết quả trả về là một quan hệ n Có cùng danh sách thuộc tính với R n Có số bộ luôn ít hơn hoặc bằng số bộ của R n Không có kết quả trùng uPhép chọn có tính chất giao hoán 1 2 2 1 ( 1 2)( ( )) ( ( )) ( )P P P P P PR R Rs s s s s Ù= = 13 Ví dụ phép chọn (tt) uTìm những học viên ‘Nam’ có nơi sinh ở ‘TpHCM’ n Quan hệ: HOCVIEN n Thuộc tính: Gioitinh, Noisinh n Điều kiện: Gioitinh=‘Nam’ và Noisinh=‘TpHCM’ s(Gioitinh=‘Nam’)Ù(Noisinh=‘TpHCM’)(HOCVIEN) Mahv HoTen Gioitinh Noisinh Malop K1103 Ha Duy Lap Nam Nghe An K11 K1102 Tran Ngoc Han Nu Kien Giang K11 K1104 Tran Ngoc Linh Nu Tay Ninh K11 K1105 Tran Minh Long Nam TpHCM K11 K1106 Le Nhat Minh Nam TpHCM K11 14 Ví dụ phép chọn (tt) uLiệt kê danh sách các nhân viên làm việc ở phòng số 4 uCho biết các nhân viên có lương > 45000 hoặc sinh sau ngày ‘1/1/1970’ uTìm các nhân viên có lương trên 25000 ở phòng 4 hoặc các nhân viên có lương trên 30000 ở phòng 5 15 Phép chiếu uĐược dùng để lấy ra một vài cột (thuộc tính) của quan hệ R uKý hiệu: n Trong đó, Ai là tên các thuộc tính được chiếu uĐịnh nghĩa: uKết quả trả về là một quan hệ n Có k thuộc tính n Có số bộ luôn ít hơn hoặc bằng số bộ của R n Các dòng trùng nhau chỉ lấy một uPhép chiếu không có tính giao hoán 1 2 kA A A, ,..., ( )Rp 1 2 kA A A 1 2 k A A A, ,..., ( ) { [ , ,..., ] | }R t t Rp = Î 16 Ví dụ phép chiếu uCho biết mã học viên và họ tên của các học viên n Quan hệ: HOCVIEN n Thuộc tính: Mahv, HoTen pMahv,HoTen (HOCVIEN) 17 Ví dụ phép chiếu (tt) 1. Chỉ trả về các thuộc tính nvu và tgian 2. Chỉ trả về thuộc tính ms_nv 3. Chỉ trả về thuộc tính ms_da Cho biết kết quả trong mỗi trường hợp. 18 Phép chiếu tổng quát uMở rộng phép chiếu bằng cách cho phép sử dụng các phép toán số học trong danh sách thuộc tính uKý hiệu pF1, F2, , Fn (E) n E là biểu thức ĐSQH n F1, F2, , Fn là các biểu thức số học liên quan đến n Hằng số n Thuộc tính trong E uVí dụ: n Cho biết họ tên của các nhân viên và lương của họ sau khi tăng 10% pHONV, TENNV, LUONG*1.1 (NHANVIEN) 19 Chuỗi các phép toán uKết hợp các phép toán đại số quan hệ n Lồng các biểu thức lại với nhau n Thực hiện từng phép toán một n B1: n B2: pA1, A2, , Ak (sP (R)) sP (pA1, A2, , Ak (R)) sP (R) pA1, A2, , Ak (Quan hệ kết quả ở B1) Cần đặt tên cho quan hệ 20 Ví dụ kết hợp phép chiếu và phép chọn uTìm mã số, họ tên những học viên ‘Nam’ có nơi sinh ở ‘TpHCM’ p Mahv,Hotens(Gioitinh=‘Nam’)Ù(Noisinh=‘TpHCM’)(HOCVIEN) Mahv HoTen Gioitinh Noisinh Malop K1103 Ha Duy Lap Nam Nghe An K11 K1102 Tran Ngoc Han Nu Kien Giang K11 K1104 Tran Ngoc Linh Nu Tay Ninh K11 K1105 Tran Minh Long Nam TpHCM K11 K1106 Le Nhat Minh Nam TpHCM K11 21 Ví dụ kết hợp phép chiếu và phép chọn uCho biết họ, tên, giới tính và mức lương của các nhân viên của phòng số 5. uCho biết các dự án (MaDA, TenDA) có địa điểm ở Hà Nội và có ngân sách lớn hơn 10.000.000. 22 Phép gán uĐược sử dụng để nhận lấy kết quả trả về của một phép toán n Thường là kết quả trung gian trong chuỗi các phép toán uKý hiệu: ¬ uVí dụ: n B1: n B2: S ¬ sP (R) KQ ¬ pA1, A2, , Ak (S) R(HO,TEN,LUONG)¬ pHONV,TENNV,LUONG(NHANVIEN) 23 Phép đổi tên uĐược dùng để đổi tên quan hệ và các thuộc tính uCú pháp: Cho quan hệ R(A1, ..., An) n Đổi tên quan hệ R thành S rS(R) n Đổi tên thuộc tính A1 thành B1 r(B1, A2, A3, ..., An)(R) n Đổi tên quan hệ R thành S và các thuộc tính Ai thành Bi rS(B1, B2, ..., Bn)(R) n Đổi tên quan hệ R thành S và thuộc tính A1 thành B1 rS(B1, A2, A3, ..., An)(R) 24 Ví dụ uCho biết họ và tên nhân viên làm việc ở phòng số 4 n Quan hệ: NHANVIEN n Thuộc tính: HONV, TENNV n Điều kiện: PHG=4 uC1: uC2: pHONV, TENNV (sPHG=4 (NHANVIEN)) NV_P4 ¬ sPHG=4 (NHANVIEN) KQ ¬ pHONV, TENNV (NV_P4) KQ(HO, TEN) ¬ pHONV, TENNV (NV_P4) rKQ(HO, TEN) (pHONV, TENNV (NV_P4)) 25 Các phép toán tập hợp uCác phép toán thực hiện trên 2 quan hệ xuất phát từ lý thuyết tập hợp của toán học: n Phép hội R È S n Phép giao R Ç S n Phép trừ R - S uCác quan hệ R(A1,A2,An) và S(B1,B2,Bn) phải có tính khả hợp n Có cùng bậc (cùng số lượng thuộc tính) n Với mọi i, Dom(Ai) = Dom(Bi) uKết quả của È, Ç, và - là một quan hệ có cùng tên thuộc tính với quan hệ đầu tiên (R) 26 Các phép toán tập hợp (tt) uVí dụ: TENNV NGSINH PHAI Tung 12/08/1955 Nam Hang 07/19/1968 Nu Nhu 06/20/1951 Nu Hung 09/15/1962 Nam NHANVIEN TENTN NG_SINH PHAITN Trinh 04/05/1986 Nu Khang 10/25/1983 Nam Phuong 05/03/1958 Nu Minh 02/28/1942 Nam THANNHAN Chau 12/30/1988 Nu Bậc n=3 DOM(TENNV) = DOM(TENTN) DOM(NGSINH) = DOM(NG_SINH) DOM(PHAI) = DOM(PHAITN) 27 Phép hội (Union) uCho 2 quan hệ R và S khả hợp uPhép hội của R và S n Ký hiệu R È S n Là một quan hệ gồm các bộ thuộc R hoặc thuộc S, hoặc cả hai (các bộ trùng lắp sẽ bị bỏ) uVí dụ: Cho biết học viên được khen thưởng đợt 1 hoặc đợt 2 R È S = { t / tÎR Ú tÎS } DOT1 Mahv Hoten K1103 Le Van Tam K1114 Tran Ngoc Han K1203 Le Thanh Hau K1308 Nguyen Gia DOT2 Mahv Hoten K1101 Le Kieu My K1114 Tran Ngoc Han Mahv Hoten K1101 Le Kieu My K1103 Le Van Tam K1114 Tran Ngoc Han K1203 Le Thanh Hau K1308 Nguyen Gia DOT1 È DOT2 28 Phép giao (intersection) uCho 2 quan hệ R và S khả hợp uPhép giao của R và S n Ký hiệu R Ç S n Là một quan hệ gồm các bộ thuộc R đồng thời thuộc S uVí dụ: Học viên được khen thưởng cả hai đợt 1 và 2 R Ç S = { t / tÎR Ù tÎS } KT_D1 Mahv Hoten K1103 Le Van Tam K1114 Tran Ngoc Han K1203 Le Thanh Hau K1308 Nguyen Gia KT_D2 Mahv Hoten K1101 Le Kieu My K1114 Tran Ngoc Han Mahv Hoten K1114 Tran Ngoc Han DOT1 Ç DOT2 29 Phép trừ uCho 2 quan hệ R và S khả hợp uPhép giao của R và S n Ký hiệu R - S n Là một quan hệ gồm các bộ thuộc R và không thuộc S uVí dụ: Học viên được khen thưởng đợt 1 nhưng không được khen thưởng đợt 2 R - S = { t / tÎR Ù tÏS } DOT1 Mahv Hoten K1103 Le Van Tam K1114 Tran Ngoc Han K1203 Le Thanh Hau K1308 Nguyen Gia DOT2 Mahv Hoten K1101 Le Kieu My K1114 Tran Ngoc Han Mahv Hoten K1103 Le Van Tam K1203 Le Thanh Hau K1308 Nguyen Gia DOT1 - DOT2 30 Phép tích uĐược dùng để kết hợp các bộ của các quan hệ lại với nhau uKý hiệu: R ´ S uKết quả trả về là một quan hệ Q n Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và 1 bộ trong S. n Số bộ của Q = Số bộ của R x số bộ của S . n Số thuộc tính của Q = Số thuộc tính của R + Số thuộc tính của S. 31 Phép tích (tt) uVí dụ: HOCVIEN Mahv Hoten K1103 Le Van Tam K1114 Tran Ngoc Han K1203 Le Thanh Hau MONHOC Mamh CTRR THDC CTDL Mahv Hoten Mamh K1103 Le Van Tam CTRR K1103 Le Van Tam THDC K1103 Le Van Tam CTDL K1114 Tran Ngoc Han CTRR K1114 Tran Ngoc Han THDC K1114 Tran Ngoc Han CTDL K1203 Le Thanh Hau CTRR K1203 Le Thanh Hau THDC K1203 Le Thanh Hau CTDL HOCVIEN´MONHOC 32 Phép tích (tt) 33 Phép tích (tt) Pban ´ Dan 34 Phép kết uĐược dùng để tổ hợp 2 bộ có liên quan từ 2 quan hệ thành 1 bộ uKý hiệu R S n R(A1, A2, , An) và (B1, B2, , Bm) uKết quả của phép kết là một quan hệ Q n Có n + m thuộc tính Q(A1, A2, , An, B1, B2, , Bm) n 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 đó n Có dạng Ai q Bj n Ai là thuộc tính của R, Bj là thuộc tính của S n Ai và Bj có cùng miền giá trị n q là phép so sánh ¹, =, , £, ³ 35 Phép kết (tt) uPhân loại n Kết theta (theta join) là phép kết có điều kiện n Ký hiệu R C S n C gọi là điều kiện kết trên thuộc tính n Kết bằng (equi join) khi C là điều kiện so sánh bằng n Kết tự nhiên (natural join) n Ký hiệu R * S n R+ Ç Q+ ¹ Æ n Kết trên tập thuộc tính cùng tên n Kết quả của phép kết bằng bỏ bớt đi 1 cột giống nhau 36 Phép kết (tt) uVí 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 = sC(R ´ S) 37 Phép kết (tt) uVí 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 6 1 2 r(S.C,D) S 38 Phép kết (tt) uVí 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 39 Ví dụ phép kết uVới mỗi phòng ban, cho biết thông tin của người trưởng phòng 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 NGSINH DCHI PHAI 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_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 PHONGBAN TRPHG=MANV NHANVIEN 40 Ví dụ phép kết (tt) uVớ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 n Quan hệ: NHANVIEN, PHONGBAN PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC) NHANVIEN(HONV, TENNV, MANV, , PHG) KQ ¬ NHANVIEN PHG=MAPHG PHONGBAN KQ(HONV, TENNV, MANV, , PHG, TENPHG, MAPHG, ) 41 Ví dụ phép kết (tt) uVới mỗi phòng ban hãy cho biết các địa điểm của phòng ban đó n Quan hệ: PHONGBAN, DDIEM_PHG PHONGBAN(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC) DDIEM_PHG(MAPHG, DIADIEM) PHONGBAN * DDIEMPHG 42 Ví dụ phép kết (tt) uCho biết nhân viên có lương hơn lương của nhân viên ‘Tùng’ n Quan hệ: NHANVIEN n Thuộc tính: LUONG NHAN_VIEN(HONV, TENNV, MANV, , LUONG, PHG) R1(LG) ¬ pLUONG (sTENNV=‘Tung’ (NHANVIEN)) KQ ¬ NHAN_VIEN LUONG>LG R1 KQ(HONV, TENNV, MANV, , LUONG, LG) 43 Ví dụ phép kết (tt) uCho biết họ, tên của các nhân viên nữ và tên các thân nhân của họ. A ¬ sPHAI = ‘Nu’(NHANVIEN) B ¬ A MANV=MA_NVIEN THANNHAN KQ ¬ pHONV, TENNV, TENTN B 44 Bài tập Cho biết: 1. Tìm tên và địa chỉ của các nhân viên thuộc phòng ‘Nghien cuu'. 2. Tên nhân viên và tên phòng mà nhân viên đó làm việc. 3. Tên trưởng phòng và tên phòng mà người đó làm trưởng phòng. 4. Tên những trưởng phòng có ít nhất một thân nhân. 5. Cho biết tên những đề án có nhân viên Nguyen Van A và Nguyen Van B cùng tham gia. 6. Tên nhân viên không có thân nhân nào. 7. Tên những nhân viên phòng số 5 có tham gia vào đề án ‘San pham X’ và nhân viên này do ‘Nguyen Thanh Tung’ quản lý trực tiếp. 45 Phép chia uĐượ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 uKý hiệu R ¸ S n R(Z) và S(X) n Z là tập thuộc tính của R, X là tập thuộc tính của S n X Í Z uKết quả của phép chia là một quan hệ T(Y) n Với Y=Z-X n 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 n tR(Y) = t n tR(X) = tS(X) X Y T(Y)S(X)R(Z) 46 Phép chia (tt) uVí dụ: A B c d a a e a c a c a d a e a e a C D c e a b e a e a e b e a e b d b E 1 3 1 1 1 1 1 1 R D E a S b 1 1 R ¸ S A B C c a e e a e 47 Ví dụ uCho biết mã nhân viên tham gia tất cả các đề án pMA_NVIEN, MADA(PHANCONG) ÷ pMADA(DEAN) uCho biết các nhân viên (Ho, ten) tham gia tất cả các đề án do phòng số 4 phụ trách A ¬ pMADA(sPHONG = 4(DUAN)) B ¬ pMA_NVIEN, MADA(PHANCONG) C ¬ B ÷ A KQ ¬ pHONV,TENNV (C MA_NVEN=MANV NHANVIEN) 48 Nội dung 1. Giới thiệu 2. Đại số quan hệ 3. Các phép toán cơ bản 4. Các phép toán khác 5. Các thao tác cập nhật 49 Hàm kết hợp uNhận vào tập hợp các giá trị và trả về một giá trị đơn n AVG n MIN n MAX n SUM n COUNT uVí 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 50 Phép gom nhóm uĐượ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 đó uKý hiệu: n E là biểu thức ĐSQH n G1, G2, , Gn là các thuộc tính gom nhóm n F1, F2, , Fn là các hàm n A1, A2, , An là các thuộc tính tính toán trong hàm F G1, G2, , GnIF1(A1), F2(A2), , Fn(An)(E) 51 Phép gom nhóm (tt) uVí dụ: ISUM(C)(R) SUM_C 27 A B a R a 2 4 b g 2 2 C 7 7 3 10 AISUM(C)(R) SUM_C 14 3 10 52 Phép gom nhóm (tt) uVí dụ: Xét quan hệ Nhanvien(honv, tenlot, tennv, manv, luong, ma_nql, phg). Cho biết: n Số lượng nhân viên trong công ty và lương trung bình n Số lượng nhân viên và lương trung bình của từng phòng ICOUNT(MANV),AVG(luong)(Nhanvien) phgICOUNT(MANV),AVG(luong)(Nhanvien) 53 Phép kết ngoài (mở rộng) uMở rộng phép kết để tránh mất mát thông tin n Thực hiện phép kết n Lấy thêm các bộ không thỏa điều kiện kết u Có 3 dạng n Left outer join (Mở rộng bên trái) R p S n Right outer join (Mở rộng bên phải) R p S n Full outer join (Mở rộng 2 bên) R p S 54 Phép kết ngoài (tt) uPhép kết mở rộng trái: n Giữ lại tất cả các bộ của quan hệ ở bên trái phép toán kết mà không liên kết được với bộ nào của quan hệ bên phải. 15bb 5ba 1aa CBAR 312 72 71 EDS 3125ba 3121aa null 2 D null15bb 71aa ECBA R C<D S 55 Phép kết ngoài (tt) uPhép kết mở rộng phải: n Giữ lại tất cả các bộ của quan hệ ở bên phải phép toán kết mà không liên kết được với bộ nào của quan hệ bên trái. R C>D S A B C D E a b 5 1 7 a b 5 2 7 b b 15 1 7 b b 15 2 7 null null null 20 3 15bb 5ba 1aa CBAR 320 72 71 EDS 56 Phép kết ngoài (tt) uPhép kết mở rộng 2 phía: n Giữ lại tất cả các bộ của từng quan hệ ở hai bên phép toán kết mà không liên kết được với bộ nào của quan hệ còn lại. A B C D E a a 1 1 7 a b 2 2 7 b b 15 null null null null null 20 3 15bb 2ba 1aa CBAR 320 72 71 EDS R C=D S 57 Ví dụ uCho biết họ tên nhân viên và tên phòng ban mà họ phụ trách nếu có n Quan hệ: NHANVIEN, PHONGBAN n Thuộc tinh: HONV, TENNV, TENPH pHONV,TENNV, TENPHG (NHANVIEN MANV=TRPHG PHONGBAN) TENNV HONV TENPHG Tung Nguyen Nghien cuu Hang Bui null Nhu Le null Vinh Pham Quan ly 58 Nội dung 1. Giới thiệu 2. Đại số quan hệ 3. Các phép toán cơ bản 4. Các phép toán khác 5. Các thao tác cập nhật 59 Các thao tác cập nhật uNội dung của CSDL có thể được cập nhật bằng các thao tác n Thêm (insertion) n Xóa (deletion) n Sửa (updating) uCá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 60 Thao tác thêm uThao tác thêm được diễn đạt như sau: n R là quan hệ n E là một biểu thức ĐSQH uVí 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 Rnew ¬ Rold È E PHANCONG ¬ PHANCONG È (‘123456789’, 20, 10) 61 Thao tác xóa uThao tác xóa được diễn đạt như sau: n R là quan hệ n E là một biểu thức ĐSQH uVí dụ: n Xóa các phân công đề án của nhân viên 123456789 n Xóa những phân công đề án có địa điểm ở ‘HA NOI’ Rnew ¬ Rold - E PHANCONG ¬ PHANCONG - sMANV=‘123456789’(PHANCONG) 62 Thao tác sửa uThao tác sửa được diễn đạt như sau: n R là quan hệ n Fi là biểu thức tính toán cho ra giá trị mới của thuộc tính, thuộc tính thứ i có thể giữ nguyên nếu không muốn cập nhật uVí dụ: n Tăng thời gian làm việc cho tất cả nhân viên lên 1.5 lần Rnew ¬ pF1, F2, , Fn (Rold) PHANCONG ¬pMA_NVIEN, SODA, THOIGIAN*1.5(PHANCONG) 63 Tổng kết uĐại số quan hệ là một tập hợp các phép toán để ánh xạ quan hệ thành quan hệ. uCác phép toán cơ sở gồm: s, p, ´, È, - uCác phép toán khác định nghĩa trên các phép toán cơ sở: Ç, , ¸ 64 Lược đồ CSDL Quản lý dự án công ty: u PHONGBAN(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC) Mỗi phòng ban có một mã phòng ban duy nhất để phân biệt với phòng ban khác, có tên phòng ban, do một nhân viên làm trưởng phòng và có ngày nhận chức của người trưởng phòng đó. u NHANVIEN(HONV,TENLOT,TENNV,MANV,NGSINH,DCHI,PHAI,CVU,LUONG,MA_NQL,PHG) Mỗi nhân viên của công ty có một họ, tên lót, tên, lương, địa chỉ, điện thoại, phái và có một mã nhân viên duy nhất để phân biệt với các nhân viên khác. Một nhân viên có một người quản lý trực tiếp và làm việc cho một phòng ban nào đó. u DIADIEM_PHG(MAPHG, DIADIEM) Một phòng ban có thể ở nhiều địa điểm và một địa điểm có thể có nhiều phòng ban tọa lạc. u THANNHAN(MA_NVIEN, TENTN, PHAI, NGSINH, QUANHE) Mỗi thân nhân là một người thân của một nhân viên nào đó. Một nhân viên có thể có nhiều thân nhân. Thân nhân có tên, phái, ngày sinh và mô tả mối quan hệ với nhân viên. u DEAN(TENDA, MADA, DDIEM_DA, PHONG, NSACH) Một đề án có tên và một mã đề án duy nhất để phân biệt với đề án khác. Đề án do một phòng ban chịu trách nhiệm chủ trì và diễn ra ở một địa điểm nào đó. u PHANCONG(MA_NVIEN, MADA, THOIGIAN) Một nhân viên được phân công làm nhiều đề án và một đề án có thể có nhiều nhân viên tham gia. Nhân viên tham gia đề án với 1 khoảng thời gian nào đó trong tuần.

Các file đính kèm theo tài liệu này:

  • pdfchuong_3_dai_so_quan_he_2017_0384_1995119.pdf
Tài liệu liên quan