Bài giảng Cơ sở dữ liệu - Chương 4 Đại số quan hệ (Relational Algebra)

Phép kết (Join) • 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

pdf61 trang | Chia sẻ: vutrong32 | Lượt xem: 1868 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Bài giảng Cơ sở dữ liệu - Chương 4 Đại số quan hệ (Relational Algebra), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 4 Đại số quan hệ (Relational Algebra) 1 Giới thiệu  Đại số quan hệ (và phép tính quan hệ) được định nghĩa bởi Codd 1971, được xem như là nền tảng của các ngôn ngữ quan hệ khác như SQL .  Là ngôn ngữ thủ tục bậc cao, được dùng để chỉ ra cách xây dựng một quan hệ mới từ một hay nhiều quan hệ trong cơ sở dữ liệu.  Bao gồm tập các phép toán thao tác trên các quan hệ. 2 3 • Xét một số xử lý trên quan hệ NHANVIEN – Thêm mới một nhân viên. – Chuyển nhân viên có tên là “Tùng” sang phòng số 1. – Cho biết họ tên và ngày sinh các nhân viên có lương trên 20000. 5 4 TENNV HONV NGSINH DCHI PHAI LUONG PHONG Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4 Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5 Quang Pham 11/10/1937 450 TV HN Nam 55000 1 1 Giới thiệu Các phép toán đại số quan hệ a. Phép chọn  (Selection) b. Phép chiế u  (Projection) c. Phép gán  d. Phép hợp  (Union) e. Phép giao  (Intersection) f. Phép trừ - (Difference) g. Phép tích Cartesian X (Cartesian Product) h. Phép chia ÷ (Division) i. Phép kết (Join) 4 5 Phép chọn (Selection)  Đượ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 (R) 6 Phép chọn (Selection)  P là biểu thức gồm các mệnh đề có dạng: Ví dụ: MSSV = 01224 Ví dụ: MSNV = MTH  Các phép so sánh được sử dụng: gồm  ,  ,  ,  ,  ,   Các mệnh đề được nối lại nhờ các phép: ∧ (and), ∨ (or),¬ (not) 7  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) (R)  (A=B)(D>5) (R) (R) Phép chọn (Selection)  Biểu diễn cách 1 :  (Quan hệ) (Điều kiện 1  điều kiện 2  .) Cú pháp :  Biểu diễn cách 2: Cú pháp : (Quan hệ: điều kiện chọn) Câu hỏi 1:  (NhanVien) Câu hỏi 1: Phai=‘Nam’ (NhanVien: Phai=‘Nam’) NHANVIEN MANV HOTEN NTNS PHAI NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NV002 Trần Đông Anh 01/08/1981 Nữ NV003 Lý Phước Mẫn 02/04/1969 Nam NHANVIEN MANV HOTEN NTNS PHAI NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NV003 Lý Phước Mẫn 02/04/1969 Nam Kết quả phép chọn Câu hỏi 1: Cho biết các nhân viên nam ? 8 Phép chọn (Selection)  Biểu diễn cách 1 :  Biểu diễn cách 2:  (NhanVien) (Phai=‘Nam’  Year(NTNS)>1975) (NhanVien: Phai=‘Nam’  Year(NTNS)>1975) NHANVIEN MANV HOTEN NTNS PHAI NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NV002 Trần Đông Anh 01/08/1981 Nữ NV003 Lý Phước Mẫn 02/04/1969 Nam NHANVIEN MANV HOTEN NTNS PHAI Kết quả phép chọn Câu hỏi 2: Cho biết các nhân viên nam sinh sau năm 1975 ? (không có bộ nào thỏa) 9 Phép chọn (Selection) 10 Phép chọn (Selection) 11 Phép chọn (Selection) 12 Phép chọn (Selection) 13 Phép chiếu (Projection)  Được dùng để lấy ra một vài cột của quan hệ R  Ký hiệu:  Kết quả trả về là một quan hệ: – Có k thuộc tính. – Có số bộ luôn ít hơn hoặc bằng số bộ của R. – Phép chiếu loại bỏ những bộ trùng nhau.  Ví dụ: A1, A2, , Ak(R) A,C (R) A,C (R)  Biểu diễn cách 1 : Cú pháp :  Biểu diễn cách 2: Câu hỏi 1 : Cú pháp : Quan hệ [cột1,cột2,cột3,] Câu hỏi 1: NHANVIEN MANV HOTEN NTNS PHAI NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NV002 Trần Đông Anh 01/08/1981 Nữ NV003 Lý Phước Mẫn 02/04/1969 Nam Kết quả phép chiếu Câu hỏi 1: Cho biết họ tên nhân viên và giới tính ? NHANVIEN HOTEN PHAI Nguyễn Tấn Đạt Nam Trần Đông Anh Nữ Lý Phước Mẫn Nam 14 Phép chiếu (Projection) (Quan hệ) Cột1, cột2, cột 3, .  (NHANVIEN) HOTEN,PHAI  NHANVIEN [ HOTEN, PHAI ]  Biểu diễn cách 1:  Biểu diễn cách 2: NHANVIEN MANV HOTEN NTNS PHAI NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NV002 Trần Đông Anh 01/08/1981 Nữ NV003 Lý Phước Mẫn 02/04/1969 Nam Kết quả phép chiếu Câu hỏi 2: Cho biết họ tên và ngày tháng năm sinh của các nhân viên nam? Bước 1: Kết quả phép chọn (còn gọi là biểu thức ĐSQH) được đổi tên thành quan hệ Q Bước 2: NHANVIEN HOTEN NTNS Nguyễn Tấn Đạt 10/12/1970 Lý Phước Mẫn 02/04/1969 15 Phép chiếu (Projection)  (NhanVien) (Phai=‘Nam’) Q ( Q ) HOTEN, NTNS  16 Phép chiếu (Projection) 17 • Cho biết họ tên và lương của các nhân viên – Quan hệ: NHANVIEN – Thuộc tính: HONV, TENNV, LUONG Phép chiếu (Projection) 18 Phép chiếu mở rộng • Mở 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. • Ký hiệu – E là biểu thức ĐSQH – F1, F2, , Fn là các biểu thức số học liên quan đến • Hằng số • Thuộc tính trong E 19 Phép chiếu mở rộng  Ví dụ: – 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%. 20 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) 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)) S  P (R) KQ  A1, A2, , Ak (S) 21 22  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) Chuỗi các phép toán 23 Phép toán tập hợp  Quan hệ là tập hợp các bộ: – Phép hội R  S – Phép giao R  S – Phép trừ R  S  Kế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). 24 Hai quan hệ khả hợp  Cho 2 quan hệ R và S khả hợp: + Cùng số thuộc tính. Ví dụ: R và S đều có 2 thuộc tính. + Các thuộc tính “ tương ứng ” có cùng kiểu. 25 Phép hội (Union)  Cho 2 quan hệ R và S khả hợp.  Phép hội của R và S – Ký hiệu R  S – 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ỏ).  Ví dụ: R  S = { t / tR  tS } A B  R   1 2 1 A B  S  2 3 A B  S  2 3    1 2 1 26  Ví dụ: Phép hội (Union) 27 Phép hội (Union) PHAN_CONG MSNV MSDA 001 1A 001 1B 002 1A 003 1A 003 1B 004 1C [ MSNV( (MSDA=“1A”) (PHAN_CONG) ]  [ MSNV( (MSDA=“1B”) (PHAN_CONG) ]  Cho biết nhân viên được phân công tham gia đề án có mã số ‘1A’ hoặc đề án có mã số ‘1B’? PHAN_CONG MSNV 001 002 003 28 Phép giao (Intersection)  Cho 2 quan hệ R và S khả hợp  Phép giao của R và S – Ký hiệu R  S – Là một quan hệ gồm các bộ thuộc R đồng thời thuộc S  Ví dụ: R  S = { t / tR  tS } A B  R   1 2 1 A B  S  2 3 29  Ví dụ: Phép giao (Intersection) 30 PHAN_CONG MSNV MSDA 001 1A 001 1B 002 1A 003 1A 003 1B 004 1C [ MSNV( (MSDA=“1A”) (PHAN_CONG) ]  [ MSNV( (MSDA=“1B”) (PHAN_CONG) ]  Cho biết nhân viên được phân công tham gia cả 2 đề án ‘1A’ và đề án ‘1B’? PHAN_CONG MSNV 001 003 Phép giao (Intersection) 31 Phép trừ (Difference)  Cho 2 quan hệ R và S khả hợp.  Phép giao của R và S. – Ký hiệu: R  S – Là một quan hệ gồm các bộ thuộc R và không thuộc S. • Ví dụ: R  S = { t / tR  tS } A B  R   1 2 1 A B  S  2 3 32 Phép trừ (Difference) 33 PHAN_CONG MSNV MSDA 001 1A 001 1B 002 1A 003 1A 003 1B 004 1C  Cho biết nhân viên không làm việc ? KẾT_QUẢ MSNV 005 006 Phép trừ (Difference) NHAN_VIEN MSNV TEN 001 Hung 002 Huyen 003 Dung 004 Hoa 005 Tien 006 Tam MANV(NHANVIEN) – MANV(PHANCONG) 34 Các tính chất  Giao hoán:  Kết hợp: 35 Phép tích Cartesian R  S 36 Phép tích Cartesian  Đượ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+  Q+   ). R  S Phép tích Cartesian • Ví dụ A B  R  1 2 B C  S  10 10 D + +  20 -  10 - 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 + + + + - - - - R  S 37 38  Ví dụ R x S MASV MAMH DIEM 99001 CSDL 5.0 99002 FOX 2.0 99003 MANG 8.0 MAMH TENMH CSDL COSO DULIEU FOX FOXPRO MASV MAMH DIEM MAMH TENMH 99001 CSDL 5.0 CSDL COSO DULIEU 99001 CSDL 5.0 FOX FOXPRO 99002 FOX 2.0 CSDL COSO DULIEU 99002 FOX 2.0 FOX FOXPRO 99003 MANG 8.0 CSDL COSO DULIEU 99003 MANG 8.0 FOX FOXPRO Phép tích Cartesian Quan-hệ-1 Cú pháp : Câu hỏi 1: Tính tích Descartes giữa 2 quan hệ nhân viên và phòng ban Quan-hệ-2  PHONGBAN MAPH TENPH TRPH NC Nghiên cứu NV001 DH Điều hành NV002 NHANVIEN PHONGBAN  Quan-hệ-k Câu hỏi 5 được viết lại: Nam Nữ Nam 02/04/1969 01/08/1981 10/12/1970 NTNS HOTEN MANV Nguyễn Tấn Ðạt NV001 Lý Phước Mẫn NV003 Trần Ðông Anh NV002 NHANVIEN PHAI PHONG DH NC NC NHANVIEN X PHONGBAN MANV HOTEN NTNS PHAI PHONG MAPH TENPH TRPH NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NC NC Nghiên cứu NV001 NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NC DH Điều hành NV002 NV002 Trần Đông Anh 01/08/1981 Nữ DH NC Nghiên cứu NV001 NV002 Trần Đông Anh 01/08/1981 Nữ DH DH Điều hành NV002 NV003 Lý Phước Mẫn 02/04/1969 Nam NC NC Nghiên cứu NV001 NV003 Lý Phước Mẫn 02/04/1969 Nam NC DH Điều hành NV002 39 Phép tích Cartesian 40 Phép tích Cartesian  Thông thường theo sau phép tích Cartesian 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 + + -  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_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 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 Phép tích Cartesian 41  B1: Tích Cartesian PHONGBAN và NHANVIEN  B2: Chọn ra những bộ thỏa TRPHG=MANV PB_NV  (NHANVIEN  PHONGBAN) KQ  TRPHG=MANV(PB_NV) Phép tích Cartesian 42 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 đó? 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 Phép tích Cartesian 43 44 • 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) Phép tích Cartesian 45  Cho biết lương cao nhất trong công ty – Quan hệ: NHANVIEN – Thuộc tính: LUONG TENNV HONV LUONG Tung Nguyen 40000 Hang Bui 25000 Nhu Le 43000 Hung Nguyen 38000 LUONG 40000 25000 43000 38000 Phép tích Cartesian  B1: Chọn ra những lương không phải là lớn nhất  B2: Lấy tập hợp lương trừ đi lương trong R3 R1  (LUONG (NHANVIEN)) R2  NHAN_VIEN.LUONG < R1.LUONG(NHANVIEN  R1) R3  NHAN_VIEN.LUONG (R2) KQ  LUONG (NHANVIEN)  R3 Phép tích Cartesian 46 Phép kết (Join) Đượ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  Với R(A1, A2, , An) và S(B1, B2, , Bm), chúng ta có kết quả của phép kết 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 kết nào đó: • Có dạng Ai  Bj • 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ị •  là phép so sánh , , , , ,   Phân loại – Kết theta (Theta join) là phép kết có điều kiện • Ký hiệu: • 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: Phép kết (Join) 49 Phép kết Theta (Theta join)  Kết theta (Theta join) là phép kết có điều kiện + Ký hiệu: + C gọi là điều kiện kết trên thuộc tính 50 Phép kết Theta (Theta join) : “C” 51 Phép kết Theta (Theta join) D E 3 S 6 1 2 A B 1 R 4 2 5 C 3 6 7 8 9 52 Phép kết bằng (Equi join) 53 Phép kết bằng (Equi join) A B 1 R 4 2 5 C 3 6 7 8 9 C D 3 S 6 1 2 54 Phép kết tự nhiên (Natural join) 55 Phép kết tự nhiên (Natural join) 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 • 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 Phép kết (Join) Phép kết (Join) • 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 Phép kết (Join) Phép kết (Join) • 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 Phép kết (Join) Phép kết (Join)

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

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