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

pdf 36 trang hapham 3070
Bạn đang xem 20 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ệ", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_co_so_du_lieu_chuong_4_dai_so_quan_he.pdf

Nội dung text: Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ

  1. TRUNG TÂM DÀO TẠO CÁC VẤN ĐỀ KINH TẾ HIỆN ĐẠI TRƯỜNG ĐẠI HỌC CHU VĂN AN DATABASE CƠ SỞ DỮ LIỆU GV: Đỗ Thị Kim Thành Email: kimthanh.do@gmail.com Web:
  2. Chương IV ĐẠI SỐ QUAN HỆ GV: ĐỖ THỊ KIM THÀNH 2
  3. I. SƠ LƢỢC VỀ ĐẠI SỐ QUAN HỆ . Là một mô hình toán học dựa trên lý thuyết tập hợp . Đối tượng xử lý là các quan hệ trong CSDL quan hệ . Cho phép sử dụng các phép toán rút trích dữ liệu từ các quan hệ . Tối ưu hóa quá trình rút trích dữ liệu . Gồm có:  Các phép toán đại số quan hệ  Biểu thức đại số quan hệ GV: ĐỖ THỊ KIM THÀNH 3
  4. II. Sơ lƣợc các phép toán ĐSQH  Có năm phép toán cơ bản: . Chọn (  ) : chọn ra các dòng (bộ) trong QH thỏa điều kiện chọn. . Chiếu ( ) : chọn ra một số cột. . Tích Descartes (  ) : kết hai QH lại với nhau. . Trừ ( ) : chứa các bộ của QH1 nhưng không nằm trong QH2. . Hội (  ) : chứa các bộ của QH1 và các bộ của QH2.  Các phép toán khác: . Giao (  ), kết ( ), chia ( / hay ), đổi tên ( ): là các phép toán không cơ bản (được suy từ 5 phép toán trên, trừ phép đổi tên). GV: ĐỖ THỊ KIM THÀNH 4
  5. III. Biểu thức ĐSQH . Khái niệm: là một biểu thức gồm các phép toán ĐSQH. . Biểu thức ĐSQH được xem như một quan hệ (không có tên) . Kết quả thực hiện các phép toán trên cũng là các quan hệ, do đó có thể kết hợp giữa các phép toán này để tạo nên các quan hệ mới GV: ĐỖ THỊ KIM THÀNH 5
  6. IV. Các phép toán ĐSQH  Cho lược đồ quan hệ: NHANVIEN (MANV, HOTEN, NS, PHAI)  Có các thể hiện NHANVIEN MANV HOTEN NS 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 GV: ĐỖ THỊ KIM THÀNH 6
  7. 1. Phép chọn -  Mục đích: chọn ra các dòng (bộ) trong QH thỏa ĐK chọn Cú pháp :  (Quan hệ) (Điều kiện 1  điều kiện 2  .) Câu hỏi 1: Cho biết các nhân viên nam ? (NHANVIEN) Phai=‘Nam’ NHANVIEN Kết quả phép chọn MANV HOTEN NS PHAI NHANVIEN NV001 Nguyễn Tấn Đạt 10/12/1970 Nam MANV HOTEN NS PHAI NV002 Trần Đông Anh 01/08/1981 Nữ NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NV003 Lý Phước Mẫn 02/04/1969 Nam NV003 Lý Phước Mẫn 02/04/1969 Nam GV: ĐỖ THỊ KIM THÀNH 7
  8. 1. Phép chọn -  Câu hỏi 2: Cho biết các nhân viên nam sinh sau năm 1975 ?  (NHANVIEN) (Phai=‘Nam’  Year(NS) > 1975) NHANVIEN Kết quả phép chọn MANV HOTEN NS PHAI NHANVIEN NV001 Nguyễn Tấn Đạt 10/12/1970 Nam MANV HOTEN NS PHAI NV002 Trần Đông Anh 01/08/1981 Nữ NV003 Lý Phước Mẫn 02/04/1969 Nam (không có bộ nào thỏa) GV: ĐỖ THỊ KIM THÀNH 8
  9. 2. Phép chiếu - Mục đích: chọn ra một số cột trong một quan hệ Cú pháp: (Quan hệ) Cột1, cột2, cột 3, . Câu hỏi 3: Cho biết họ tên nhân viên và giới tính ? (NHANVIEN) HOTEN, PHAI NHANVIEN NHANVIEN MANV HOTEN NS PHAI HOTEN PHAI Kết quả NV001 Nguyễn Tấn Đạt 10/12/1970 Nam Nguyễn Tấn Đạt Nam NV002 Trần Đông Anh 01/08/1981 Nữ phép chiếu Trần Đông Anh Nữ NV003 Lý Phước Mẫn 02/04/1969 Nam Lý Phước Mẫn Nam GV: ĐỖ THỊ KIM THÀNH 9
  10. 2. Phép chiếu - Câu hỏi 4: Cho biết họ tên và ngày tháng năm sinh của các nhân viên nam? Kết quả phép chọn Bước 1: Q  (NhanVien) (biểu thức ĐSQH) (Phai=‘Nam’) được đổi tên thành QH Q Bước 2: (Q) HOTEN, NS NHANVIEN NHANVIEN MANV HOTEN NS PHAI Kết quả HOTEN NS NV001 Nguyễn Tấn Đạt 10/12/1970 Nam Nguyễn Tấn Đạt 10/12/1970 NV002 Trần Đông Anh 01/08/1981 Nữ phép chiếu Lý Phước Mẫn 02/04/1969 NV003 Lý Phước Mẫn 02/04/1969 Nam GV: ĐỖ THỊ KIM THÀNH 10
  11. 3. Phép tích Descartes - X Mục đích: kết hai quan hệ lại với nhau Cú pháp : Quan-hệ-1 Quan-hệ-2 Quan-hệ-k Câu hỏi 5: Tính tích Descartes giữa 2 quan hệ nhân viên và phòng ban NHANVIEN PHONGBAN GV: ĐỖ THỊ KIM THÀNH 11
  12. 3. Phép tích Descartes - X NHANVIEN PHONGBAN NHANVIEN PHONGBAN MANV HOTEN NS PHAI PHONG MAPH TENPH TRPH NV001 Nguyễn Tấn Ðạt 10/12/1970 Nam NC 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 NHANVIEN X PHONGBAN MANV HOTEN NS 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 GV: ĐỖ THỊ KIM THÀNH 12
  13. 4. Phép kết - - Theta-join Câu hỏi 6: Cho biết mã nhân viên (MANV), họ tên (HOTEN) và tên phòng (TENPH) mà nhân viên trực thuộc Điều kiện chọn: NHANVIEN.PHONG = PHONGBAN.MAPH  (NHANVIEN X PHONGBAN) NHANVIEN.PHONG=PHONGBAN.MAPH MANV HOTEN NS 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 GV: ĐỖ THỊ KIM THÀNH 13
  14. 4. Phép kết - - Theta join  (NHANVIEN X PHONGBAN) NHANVIEN.PHONG=PHONGBAN.MAPH Phép kết được định nghĩa là phép tích Decartes và có điều kiện chọn liên quan đến các thuộc tính giữa 2 quan hệ Cú pháp : Quan-hệ-1 Quan-hệ-2 Điều kiện kết • Phép kết với đk tổng quát được gọi là -kết,  có thể là , =, >, =, <= • Nếu đk kết là phép so sánh = thì gọi là kết bằng Câu hỏi 6 viết lại: MANV,HOTEN,TENPH (NHANVIEN PHONG=MAPH PHONGBAN) GV: ĐỖ THỊ KIM THÀNH 14
  15. * Kết bằng và Kết tự nhiên Kết bằng: ( Kết bằng ) equi-join NHANVIEN PHONG=MAPH PHONGBAN Kết tự nhiên: Nếu PHONG trong NHANVIEN được đổi thành MAPH thì ta bỏ đi 1 cột MAPH thay vì phải để MAPH=MAPH, lúc này gọi là phép kết tự nhiên (natural-join) ( Kết tự nhiên ) NHANVIEN MAPH PHONGBAN natural-join Hoặc viết cách khác: NHANVIEN * PHONGBAN GV: ĐỖ THỊ KIM THÀNH 15
  16. 4. Phép kết - - Theta join Câu hỏi 7: Tìm họ tên các trưởng phòng của từng phòng ? HOTEN, TENPH (PHONGBAN TRPH=MANV NHANVIEN) Câu hỏi 8: Cho lược đồ CSDL như sau: TAIXE (MaTX, HoTen, NgaySinh, GioiTinh, DiaChi) CHUYENDI (SoCD, MaXe, MaTX, NgayDi, NgayVe, ChieuDai, SoNguoi) Cho biết họ tên tài xế, ngày đi, ngày về của những chuyến đi có chiều dài >=300km, chở từ 12 người trở lên trong mỗi chuyến? Q  (CHUYENDI) (ChieuDai>=300  SoNguoi>=12) Kết quả: HoTen, NgayDi, NgayVe (Q MATX TAIXE) GV: ĐỖ THỊ KIM THÀNH 16
  17. * Phép kết ngoài (outer join)  Mở rộng phép kết để tránh mất thông tin  Thực hiện phép kết và sau đó thêm vào kết quả của phép kết các bộ của quan hệ mà không phù hợp với các bộ trong quan hệ kia.  Có 3 loại: . Left outer join R S . Right outer join R S . Full outer join R S  Ví dụ: In ra danh sách tất cả tài xế và số chuyến đi, mã xe mà tài xế đó lái (nếu có) GV: ĐỖ THỊ KIM THÀNH 17
  18. * Phép kết ngoài (lấy hết tất cả bộ của quan hệ bên trái) MaTX  TAIXE CHUYENDI TAIXE MaTX Hoten Matx Hoten SoCD Matx Maxe TX01 Huynh Trong Tao TX01 Huynh Trong Tao CD01 TX01 8659 TX02 Nguyen Sang TX01 Huynh Trong Tao CD03 TX01 8659 TX03 Le Phuoc Long TX02 Nguyen Sang CD02 TX02 7715 TX04 Nguyen Anh Tuan TX03 Le Phuoc Long CD04 TX03 4573 TX04 Nguyen Anh Tuan Null Null Null { CHUYENDI SoCD MaTX MaXe Bộ của quan hệ TAIXE được thêm CD01 TX01 8659 vào dù không phù hợp với kết quả CD02 TX02 7715 của quan hệ CHUYENDI CD03 TX01 8659 CD04 TX03 4573 Tương tự right outer join và full outer join (lấy cả 2) GV: ĐỖ THỊ KIM THÀNH 18
  19. 5. Phép đổi tên - ρ  Được dùng để đổi tên . Quan hệ Xét quan hệ R(B, C, D) ρ (R): đổi tên quan hệ R thành S S . Thuộc tính ρ (R): đổi tên thuộc tính B thành X X, C, D Đổi tên quan hệ R thành S và thuộc tính B thành X ρ (R) S (X, C, D) GV: ĐỖ THỊ KIM THÀNH 19
  20. V. Phép toán tập hợp  Các phép toán: . Phép hội: R  S . Phép giao: R  S . Phép trừ: R − S  Tính khả hợp: hai lược đồ quan hệ R(A1, A2 , , An) và S(B1, B2 , ,Bn) là khả hợp nếu: . Cùng bậc n . Và có DOM(Ai) = DOM(Bi), 1 ≤ i ≤ n  Kết quả của , , − là một quan hệ có cùng tên thuộc tính với quan hệ đầu tiên (R) GV: ĐỖ THỊ KIM THÀNH 20
  21. Phép trừ, phép hội, phép giao tập hợp  Tất cả các phép toán này đều cần hai quan hệ đầu vào tương thích khả hợp, nghĩa là chúng phải thoả: . Cùng số thuộc tính (cùng bậc) . Các thuộc tính “tương ứng” có cùng kiểu. R S HO TEN HONV TENNV Vuong Quyen Le Nhan Nguyen Tung Vuong Quyen Bui Vu - Bậc 2 - DOM (HO) = DOM (HONNV) - DOM (TEN) = DOM (TENNV) GV: ĐỖ THỊ KIM THÀNH 21
  22. 1. Phép trừ - −  Cho 2 quan hệ R và S khả hợp  Phép trừ của R và S . Ký hiệu: R − S . Là 1 quan hệ gồm các bộ thuộc R và không thuộc S Q = R − S = { t/ t R  t S}  Ví dụ: R A B S A B R − S A B α 1 α 2 α 1 α 2 β 3 β 1 β 1 GV: ĐỖ THỊ KIM THÀNH 22
  23. 2. Phép hội -   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à 1 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ỏ) Q = R  S = { t/ t R  t S}  Ví dụ R  S A B α 1 S A B R A B α 2 α 2 α 1 β 1 β 3 α 2 α 2 β 1 β 3 GV: ĐỖ THỊ KIM THÀNH 23
  24. 3. Phép giao -   Cho 2 quan hệ R và S khả hợp  Phép giao của R và S . Ký hiệu: R  S . Là 1 quan hệ gồm các bộ thuộc R đồng thời thuộc S Q = R  S = R – (R – S) = { t/t R  t S}  Ví dụ: R A B S A B R  S A B α 1 α 2 α 2 α 2 β 3 β 1 GV: ĐỖ THỊ KIM THÀNH 24
  25. Phép trừ, phép hội, phép giao tập hợp Phép trừ: Q = R − S = { t/ t R  t S} Phép hội: Q = R  S = { t/ t R  t S} Phép giao: Q = R  S = R – (R – S) = { t/t R  t S} R S HO TEN HONV TENNV Vuong Quyen Le Nhan Nguyen Tung Vuong Quyen Bui Vu KQ phép trừ Q = {Nguyen Tung} KQ phép hội Q = {Vuong Quyen, Nguyen Tung, Le Nhan, Bui Vu} KQ phép giao Q = {Vuong Quyen} GV: ĐỖ THỊ KIM THÀNH 25
  26. 4. Các tính chất  Giao hoán . R  S = S  R . R  S = S  R  Kết hợp . R  (S  T) = (R  S)  T . R  (S  T) = (R  S)  T GV: ĐỖ THỊ KIM THÀNH 26
  27. CHO LƢỢC ĐỒ CSDL NHANVIEN (MANV, HOTEN, PHAI, LUONG, NS, MA_NQL, MAPH) PHANCONG (MANV, MADA, THOIGIAN) GV: ĐỖ THỊ KIM THÀNH 27
  28. Phép trừ, phép hội, phép giao tập hợp Câu hỏi 9: Cho biết nhân viên không làm việc ? (Phép trừ) MANV (NHANVIEN) – MANV (PHANCONG) Câu hỏi 10: Cho biết nhân viên được phân công tham gia đề án có mã số ‘TH01’ hoặc đề án có mã số ‘TH02’? (Phép hội) (  (PHANCONG) ) ( (PHANCONG) )  (MADA=‘TH02’) MANV (MADA=‘TH01’) MANV GV: ĐỖ THỊ KIM THÀNH 28
  29. Phép trừ, phép hội, phép giao tập hợp Câu hỏi 11: Cho biết nhân viên được phân công tham gia cả 2 đề án ‘TH01’ và đề án ‘TH02’? (Phép giao) (  (PHANCONG) )  ( (PHANCONG) ) (MADA=‘TH02’) MANV (MADA=‘TH01’) MANV GV: ĐỖ THỊ KIM THÀNH 29
  30. 5. Phép chia tập hợp ( / hay )  Phép chia (R  S) cần hai quan hệ đầu vào R, S thoả: . Tập thuộc tính của R là tập cha của tập thuộc tính S. Ví dụ: R có m thuộc tính, S có n thuộc tính : n  m  Định nghĩa: R và S là hai quan hệ, R+ và S+ lần lượt là tập thuộc tính của R và S. Điều kiện S+  là tập con không bằng của R+. Q là kết quả phép chia giữa R và S, Q+ = R+ - S+ T  (R) 1 R S Q R  S {t /s S, (t,s) R} T2  R S ((S T1) R) T  T1 T2 GV: ĐỖ THỊ KIM THÀNH 30
  31. 5. Phép chia tập hợp ( / hay ) R=PHANCONG S=DEAN MANV MADA MADA Kết quả Q TH001 001 TH001 Q= PHANCONG / DEAN 001 TH002 TH002 MANV 002 TH001 DT001 002 002 TH002 002 DT001 Cho biết nhân viên làm việc cho 003 TH001 tất cả các đề án ? (được phân công tham gia tất cả các đề án) Hoặc viết Q= PHANCONG  DEAN GV: ĐỖ THỊ KIM THÀNH 31
  32. 5. Phép chia tập hợp ( / hay ) R=KETQUATHI S=MONHOC Mahv Mahv Mamh Diem Mamh Tenmh HV01 HV01 CSDL 7.0 CSDL Co so du lieu HV03 HV02 CSDL 8.5 CTRR Cau truc roi rac Q=KETQUA / MONHOC HV01 CTRR 8.5 THDC Tin hoc dai cuong HV03 CTRR 9.0 HV01 THDC 7.0 HV02 THDC 5.0 KETQUA  (KETQUATHI) HV03 THDC 7.5 Mahv,Mamh HV03 CSDL 6.0 MONHOC  Mamh (MONHOC) Mahv, Mamh (KETQUATHI) / Mamh (MONHOC) GV: ĐỖ THỊ KIM THÀNH 32
  33. VI. Các hàm tính toán  Nhận vào tập hợp các giá trị và trả về 1 giá trị đơn . AVG . MIN . MAX . SUM . COUNT R A B SUM(B) = 10 1 2 AVG(A) = 1.5 3 4 MIN (A) = 1 1 2 MAX(B) = 4 1 2 COUNT(A) = 4 GV: ĐỖ THỊ KIM THÀNH 33
  34. VII. Phép gom nhóm – group by  Đượ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) G1,G2 , ,Gn F1 ( A1 ), F2 ( A2 ), ,Fn ( An ) . E là biểu thức đại số quan hệ . Gi là thuộc tính gom nhóm (nếu không có Gi nào=> không chia nhóm (1 nhóm), ngược lại (nhiều nhóm) => hàm F sẽ tính toán trên từng nhóm nhỏ được chia bởi tập thuộc tính này) . Fi là hàm tính toán . Ai là tên thuộc tính tính toán trong hàm F GV: ĐỖ THỊ KIM THÀNH 34
  35. VII. Phép gom nhóm – group by  Ví dụ: ℑ SUM(C)(R) R A B C SUM_C α 2 7 27 α 4 7 β 2 3 A ℑ SUM(C)(R) γ 2 10 SUM_C 14 3 10 GV: ĐỖ THỊ KIM THÀNH 35
  36. VII. Phép gom nhóm – group by  Điểm thi cao nhất, thấp nhất, trung bình của môn CSDL? max(Diem),min(Diem), agv(Diem) Mamh 'CSDL' (KETQUATHI)  Điểm thi cao nhất, thấp nhất, trung bình của từng môn ? Mamh max(Diem), min(Diem), avg(Diem) (KETQUATHI) GV: ĐỖ THỊ KIM THÀNH 36