Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ
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:
- bai_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ệ
- Chương 4 Đại số quan hệ
- Nội dung chi tiết 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 kết Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 2
- Giới thiệu Xét một số xử lý trên quan hệ KHOA - Thêm Khoa ‘Hóa học’ vào quan hệ - Chuyển Khoa CNTT sang phòng B12 MÃKHOA TÊNKHOA NĂMTL PHÒNG ĐIỆNTHOAI TRƯỞNGKHOA NGÀYNHẬNCHỨC CNTT Công nghệ thông tin 1995 B12B11 0838123456 002 20/02/2005 VL Vật lý 1976 B21 0838223223 005 18/09/2003 SH Sinh học 1980 B31 0838454545 004 11/10/2000 HH Hóa học 1980 B41 NULL 007 15/10/2001 - Cho biết tên các khoa đã được thành lập trên 10 năm Sinh học 11/10/2000 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 3
- Giới thiệu (tt) Có 2 loại xử lý : - Làm thay đổi dữ liệu (cập nhật) : thêm mới, xóa và sửa - Không làm thay đổi dữ liệu (rút trích) : truy vấn Ngôn ngữ truy vấn (Query Language – QL) : - Cho phép người dùng rút trích hay cập nhật dữ liệu được lưu trong một mô hình dữ liệu Ngôn ngữ truy vấn quan hệ : - Đại số quan hệ (Relational Algebra) • Biểu diễn câu truy vấn dưới dạng biểu thức, cho phép người dùng biểu diễn các bước thực hiện câu truy vấn - Phép tính quan hệ (Relational Calculus) • Biểu diễn kết quả phi thủ tục dựa trên ngôn ngữ logic, cho phép người dùng diễn đạt cái họ cần hơn là thao tác xử lý nó - SQL (Structured Query Language) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 4
- Đại số Đại số - Toán tử (operator) - Toán hạng (operand) Trong số học - Toán tử: +, -, *, / - Toán hạng - biến (variables): x, y, z - Hằng (constant) - Biểu thức • (x+7) / (y-3) • (x+y)*z and/or (x+7) / (y-3) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 5
- Đại số quan hệ Biến là các quan hệ - Tập hợp (set) Toán tử là các phép toán (operations) - Trên tập hợp • Hội (union) • Giao (intersec) • Trừ (difference) - Rút trích 1 phần của quan hệ • Chọn (selection) • Chiếu (projection) - Kết hợp các quan hệ • Tích Cartesian (Cartesian product) • Kết (join) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 6
- Đại số quan hệ (tt) Hằng số là thể hiện của quan hệ Biểu thức - Được gọi là câu truy vấn - Là chuỗi các phép toán đại số quan hệ - Kết quả trả về là một thể hiện của quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 7
- Đại số >< Đại số quan hệ Đại số Đại số quan hệ - ĐSQH Hệ thống toán học bao gồm : Tương tự đại số, bao gồm : - Toán hạng (operand) : biến hay - Toán hạng : quan hệ hay biến (t, u, các giá trị hằng số. v) đại diện cho quan hệ. x, y (biến), 150 (hằng), Quan hệ KHOA, - Toán tử (operator) : thao tác giữa - Toán tử : thao tác xử lý giữa các các toán hạng để tạo thành các quan hệ để tạo thành quan hệ mới. giá trị mới. Phép chọn , hội , +, -, *, / Biểu thức đại số : Biểu thức ĐSQH : - Chuỗi các phép toán đại số. - Câu truy vấn (chuỗi các phép toán - Kết quả tạo ra một giá trị mới đại số quan hệ tạo thành). (x+7) / (y-3) - Kết quả tạo ra một quan hệ mới (x+y)*z and/or (x+7) / (y-3) MANV (NHANVIEN) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 8
- Nội dung chi tiết 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 kết Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 9
- 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 Tính khả hợp (Union Compatibility) - 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 , , và là một quan hệ có cùng tên thuộc tính với quan hệ đầu tiên (R) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 10
- Phép toán tập hợp (tt) Ví dụ hai quan hệ khả hợp SINHVIEN TENSV NGSINH PHAI GIAOVIEN TENGV NG_SINH GIOITINH Tung 12/08/1955 Nam Trinh 04/05/1986 Nu Hang 07/19/1968 Nu Khang 10/25/1983 Nam Nhu 06/20/1951 Nu Phuong 05/03/1958 Nu Hung 09/15/1962 Nam Minh 02/28/1942 Nam Chau 12/30/1988 Nu Bậc n=3 DOM(TENSV) = DOM(TENGV) DOM(NGSINH) = DOM(NG_SINH) DOM(PHAI) = DOM(GIOITINH) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 11
- 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à 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ỏ) R S = { t / t R t S } Ví dụ R A B S A B R S A B 1 2 1 2 3 2 1 1 3 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 12
- 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à một quan hệ gồm các bộ thuộc R đồng thời thuộc S 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 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 13
- Phép trừ 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 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 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 14
- Một số ví dụ SinhVien GiaoVien HOTEN DIACHI HOTEN DIACHI Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Nguyễn Thanh Tùng 222 Nguyễn Văn Cừ, Tp HCM Trần Thanh Tâm 553 Mai Thị Lựu, Tp HCM Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM SinhVien GiaoVien SinhVien GiaoVien HOTEN DIACHI HOTEN DIACHI Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Nguyễn Thanh Tùng 222 Nguyễn Văn Cừ, Tp HCM Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM Trần Thanh Tâm 553 Mai Thị Lựu, Tp HCM SinhVien - GiaoVien GiaoVien - SinhVien HOTEN DIACHI HOTEN DIACHI Nguyễn Thanh Tùng 222 Nguyễn Văn Cừ, Tp HCM Trần Thanh Tâm 553 Mai Thị Lựu, Tp HCM Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 15
- 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 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 16
- Nội dung chi tiết 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 kết Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 17
- Phép chọn Đượ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) 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 , , Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 18
- 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) R A B C D A B C D 1 7 1 7 5 7 23 10 12 3 23 10 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 19
- Phép chọn (tt) Phép chọn có tính giao hoán p1 ( p2 (R)) = p2 ( p1 (R)) = p1 p2 (R) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 20
- Nội dung chi tiết 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 kết Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 21
- Phép chiếu Được dùng để lấy ra một vài cột của quan hệ R Ký hiệu (R) A1, A2, , Ak 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 Ví dụ A,C (R) R A B C A,C (R) A C 10 1 1 20 1 1 30 1 2 40 2 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 22
- Phép chiếu (tt) Phép chiếu không có tính giao hoán X,Y (R) = X ( Y (R)) A1, A2, , An( A1, A2, , Am(R)) = A1, A2, , An (R) , với n m Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 23
- Phép chọn vs. Phép chiếu A1, A2, A3 , An A1, A2, A3 , An Phép chọn i j, i>=j A1, A2, A3 , An A1, A2, A3 , Am Phép chiếu n m, n>=m Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 24
- Ví dụ 1 Cho biết họ tên và mức lương của các giáo viên nữ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 25
- Ví dụ 2 Cho biết mã số các giáo viên thuộc bộ môn HTTT hoặc có tham gia đề tài mã 001 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 26
- Ví dụ 3 Cho biết mã số các trưởng khoa có chủ nhiệm đề tài Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 27
- Ví dụ 4 Cho biết tên các công việc bắt đầu trong khoảng từ 01/01/2007 đến 01/08/2007 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 28
- Phép chiếu tổng quát 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 F1, F2, , Fn (E) - 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 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 29
- Phép chiếu tổng quát Ví dụ - Cho biết họ tên của các giáo viên và lương của họ sau khi tăng 10% HOTEN, LUONG*1.1 (GIAOVIEN) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 30
- 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 A1, A2, , Ak (P (R)) P ( A1, A2, , Ak (R)) - Thực hiện từng phép toán một • B1 P (R) • B2 A1, A2, , Ak (Quan hệ kết quả ở B1) Cần đặt tên cho quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 31
- 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 S P (R) - B2 KQ A1, A2, , Ak (S) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 32
- Phép đổi tên Được dùng để đổi tên - Quan hệ Xét quan hệ R(B, C, D) S(R) : Đổi tên quan hệ R thành S - Thuộc tính 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) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 33
- Ví dụ 5 Cho biết mã số và họ tên giáo viên thuộc bộ môn HTTT C1: MAGV, HOTEN (MABM=„HTTT‟ (GIAOVIEN)) C2: GV_HTTT MABM=„HTTT‟ (GIAOVIEN) KQ MAGV, HOTEN (GV_HTTT) KQ(MA, TEN) MAGV, HOTEN (GV_HTTT) KQ(MA, TEN) ( MAGV, HOTEN (GV_HTTT)) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 34
- Nội dung chi tiết 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 kết Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 35
- 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 R S 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+ ) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 36
- Phép tích Cartesian (tt) Ví dụ unambiguous R A B R S A R.B S.BX C D 1 2 1 10 + 1 10 + 1 20 - S XB C D 1 10 - 2 10 + 10 + 2 10 + 10 + 2 20 - 20 - 2 10 - 10 - (X,C,D) (S) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 37
- Phép tích Cartesian (tt) Thông thường theo sau phép tích Cartesian là phép chọn R S A=S.B (R S) A R.B S.B C D A R.B S.B C D 1 10 + 1 10 + 1 10 + 2 10 + 1 20 - 2 20 - 1 10 - 2 10 + 2 10 + 2 20 - 2 10 - Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 38
- Ví dụ 6 Cho biết thông tin của bộ môn cùng thông tin giảng viên làm trưởng bộ môn đó TENBM MABM TRUONGBM NGAYNHANCHUC Hệ thống thông tin HTTT 002 20/09/2004 Công nghệ tri thức CNTT Mạng máy tính MMT 001 15/05/2005 MAGV HOTEN NGSINH MABM PHAI LUONG . 001 Nguyễn Hoài An 15/02/1973 MMT Nam 2000 002 Trần Trà Dương 20/06/1960 HTTT Nu 2500 003 Nguyễn Ngọc Anh 11/05/1975 HTTT Nu 2200 004 Trương Nam Sơn 20/06/1959 VS Nam 2300 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 39
- Ví dụ 6 (tt) TENBM MABM TRUONGBM NGAYNHANCHUC GV HOTEN Hệ thống thông tin HTTT 002 20/09/2004 002 Trần Trà Dương Mạng máy tính MMT 001 15/05/2005 001 Trương Nam Sơn Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 40
- Ví dụ 6 (tt) B1: Tích Cartesian BOMON và GIAOVIEN BM_GV (GIAOVIEN BOMON) B2: Chọn ra những bộ thỏa TRUONGBM = MAGV KQ TRUONGBM=MAGV(BM_GV) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 41
- GIAOVIEN MÃGV HỌTÊN . NGÀYSINH SỐNHÀ . 001 Nguyễn Hoài An . 15/02/1973 25/3 . 002 Trần Trà Hương . 20/06/1960 125 . 003 Nguyễn Ngọc Ánh . 11/05/1975 12/21 . . . . . . . BOMON MÃBM TÊNBM PHÒNG . TRƯỞNGBM . HTTT Hệ thống thông tin B13 . 002 . CNTT Công nghệ tri thức B15 . . MMT Mạng máy tính B16 . 001 . . . . . . . GIÁOVIÊNTRUONGBM=MAGV x(BM_GV) BỘMÔN MÃGV HỌTÊN . NGÀYSINH . MÃBM TÊNBM PHÒNG . TRƯỞNGBM . 001 Nguyễn Hoài An . 15/02/1973 . HTTT Hệ thống thông tin B13 . 002 . 001 Nguyễn Hoài An . 15/02/1973 . CNTT Công nghệ tri thức B15 . . 001 Nguyễn Hoài An . 15/02/1973 . MMT Mạng máy tính B16 . 001 . . . . . . . . . . . . Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 42
- Ví dụ 7 Cho biết mức lương cao nhất của các giảng viên HOTEN LUONG LUONG Nguyễn Hoài An 2000 2000 Trần Trà Hương 2500 2500 Nguyễn Ngọc Anh 2200 2200 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 43
- Ví dụ 7 (tt) B1: Chọn ra những lương không phải là lớn nhất R1 ( LUONG (GIAOVIEN)) R2 GIAOVIEN.LUONG < R1.LUONG(GIAOVIEN R1) R3 R2.LUONG (R2) B2: Lấy tập hợp lương trừ đi lương trong R3 KQ LUONG (GIAOVIEN) R3 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 44
- Ví dụ 8 Cho biết họ tên các giáo viên cùng bộ môn với giáo viên ‘Trần Trà Hương’ - Quan hệ: GIAOVIEN - Thuộc tính: HOTEN, MABM - Điều kiện: HOTEN = ‘Trần Trà Hương’ Giáo viên “Trần Trà Hương” Những giáo viên nào thuộc về bộ ở bộ môn nào? môn đó? MABM HOTEN MABM HOTEN MMT Nguyễn Hoài An MMT Nguyễn Hoài An HTTT Trần Trà Hương HTTT Trần Trà Hương HTTT Nguyễn Ngọc Anh HTTT Nguyễn Ngọc Anh VS Trương Nam Sơn VS Trương Nam Sơn Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 45
- Ví dụ 8 (tt) B1: Tìm bộ môn mà giáo viên ‘Trần Trà Hương’ thuộc về R1 MABM,MAGV (HOTEN=„Trần Trà Hương‟ (GIAOVIEN)) B2: Lấy ra họ tên các giáo viên cùng bộ môn R2 MAGV R1.MAGV (GIAOVIEN) R3 R1.MABM=R2.MABM (R1 R2) KQ MAPHG (R3) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 46
- Nội dung chi tiết 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 kết - Kết tự nhiên (Natural join) - Kết có điều kiện tổng quát (Theta join) - Kết bằng (Equi join) Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 48
- Phép kết Đượ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 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 , , , , , Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 49
- Phép kết (tt) Phân loại - Kết theta (theta join) là phép kết có điều kiện • Ký hiệu R C S • 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 R S hay R S • R+ S+ • Kết quả của phép kết bằng bỏ bớt đi 1 cột giống nhau Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 50
- Phép kết (tt) Ví dụ phép kết theta R B<D S R A B C S D E A B C D E 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 1 2 3 6 2 7 8 9 4 5 6 6 2 R C S = C(R S) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 51
- Phép kết (tt) Ví dụ phép kết bằng R C=D S R A B C S D E A B C D E 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 4 5 6 6 2 7 8 9 R C=S.C S R A B C S S.CC D A B C S.C D 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 4 5 6 6 2 7 8 9 (S.C,D) S Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 52
- Phép kết (tt) Ví dụ phép kết tự nhiên R S R A B C S C D A A B B C C S.CD D 1 2 3 3 1 1 1 2 2 3 3 3 1 1 4 5 6 6 2 4 4 5 5 6 6 6 2 2 7 8 9 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 53
- Ví dụ 10 Cho biết giáo viên có lương lớn hơn lương của giáo viên ‘Nguyễn Hoài An’ - Quan hệ: GIAOVIEN - Thuộc tính: LUONG GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, NGAYSINH, ) R1(LG) LUONG (HOTEN=„Nguyễn Hoài An‟ (GIAOVIEN)) KQ GIAOVIEN LUONG>LG R1 KQ(MAGV, HOTEN, LUONG, PHAI, NGAYSINH, , LG)) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 54
- Ví dụ 11 Với mỗi giáo viên, hãy cho biết thông tin của bộ môn mà họ đang làm việc - Quan hệ: GIAOVIEN, BOMON GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, , MABM, ) BOMON(MABM, TENBM, PHONG, DIENTHOAI, ) KQ GIAOVIEN BOMON KQ(MAGV, HOTEN, , MABM, TENBM, PHONG, )) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 55
- Ví dụ 12 Với mỗi đề tài, cho biết thông tin giáo viên chủ nhiệm đề tài đó - Quan hệ: ĐETAI, GIAOVIEN ĐETAI(MAĐT, TENĐT, KINHPHI, , GVCNĐT) GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, ) KQ ĐETAI GVCNĐT = MAGV GIAOVIEN KQ(MAĐT, TENĐT, KINHPHI, , GVCNĐT, MAGV, HOTEN, ) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 56
- Ví dụ 13 Với mỗi khoa cho biết thông tin trưởng khoa Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 57
- Ví dụ 14 Cho biết lương cao nhất trong bộ môn ‘HTTT’ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 58
- Ví dụ 15 Cho biết giáo viên làm việc cùng bộ môn với giáo viên 002 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 59
- Ví dụ 16 Cho biết các giáo viên của bộ môn ‘Vi sinh’ có tham gia đề tài 006 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 60
- 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) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 61
- Nội dung chi tiết 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 kết Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 62
- 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) • 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 R(Z) S(X) T(Y) • tR(Y) = t X Y • tR(X) = tS(X) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 63
- Phép chia (tt) Ví dụ R S R A B C D E S D E A B C a a 1 a 1 a a a 1 b 1 a a b 1 a a 1 a b 3 a a 1 a b 1 a b 1 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 64
- Ví dụ 17 Cho biết mã giáo viên tham gia tất cả công việc thuộc đề tài 001 - Quan hệ: GIAOVIEN, THAMGIAĐT Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 65
- Ví dụ 18 Cho biết tên đề tài có tất cả giảng viên bộ môn ‘Hệ thống thông tin’ tham gia Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 66
- Phép chia (tt) Biểu diễn phép chia thông qua tập đầy đủ các phép toán ĐSQH Q1 Y (R) Q2 Q1 S Q3 Y(Q2 R) KQ Q1 Q3 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 67
- Nội dung chi tiết 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 kết 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) Các thao tác cập nhật trên quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 68
- Hàm kết hợp Nhận vào tập hợp các giá trị Trả về một giá trị đơn Gồm - AVG - MIN - MAX - SUM - COUNT Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 69
- Hàm kết hợp (tt) Ví dụ SUM(B) = 10 R A B 1 2 AVG(A) = 1.5 3 4 MIN(A) = 1 1 2 1 2 MAX(B) = 4 COUNT(A) = 4 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 70
- 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 G1, G2, , Gn (E) F1(A1), F2(A2), , Fn(An) - 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 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 71
- Phép gom nhóm (tt) Ví dụ SUM(C)(R) SUM_C R A B C 27 2 7 4 7 2 3 2 10 ASUM(C)(R) A SUM_C 14 3 10 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 72
- Ví dụ 19 Cho biết số lượng giáo viên viên và tổng lương của họ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 73
- Ví dụ 20 Cho biết số lượng giáo viên và lương trung bình của từng bộ môn Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 74
- Ví dụ 21 Cho biết tên khoa có đông giáo viên nhất Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 75
- Ví dụ 22 Cho biết họ tên giáo viên chủ nhiệm nhiều đề tài nhất Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 76
- Ví dụ 23 Cho biết tên chủ đề và số lượng đề tài thuộc về chủ đề đó Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 77
- Phép kết ngoài Mở rộng phép kết để tránh mất mát thông tin - Thực hiện phép kết - Lấy thêm các bộ không thỏa điều kiện kết Có 3 hình thức - Mở rộng bên trái - Mở rộng bên phải - Mở rộng 2 bên Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 78
- Ví dụ 24 - a Cho biết họ tên giáo viên và tên bộ môn họ làm trưởng bộ môn nếu có R1 GIAOVIEN MAGV=TRUONGBM BOMON KQ HOTEN, TENBM (R1) HOTEN TENBM Nguyễn Hoài An Mạng máy tính Trần Trà Hương Hệ thống thông tin Nguyễn Ngọc Ánh null Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 79
- Ví dụ 24 - b Cho danh sách tên bộ môn và họ tên trưởng bộ môn đó nếu có. Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 80
- Ví dụ 24 - c Cho danh sách tên giáo viên và các đề tài giáo viên đó chủ nhiệm nếu có Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 81
- Nội dung chi tiết 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 kết Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 82
- Các thao tác cập nhật Nội dung của CSDL có thể được cập nhật bằng các thao tác - Thêm (insertion) - Xóa (deletion) - Sửa (updating) Cá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 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 83
- Thao tác thêm Được diễn đạt Rnew Rold E - R là quan hệ - E là một biểu thức ĐSQH Ví dụ - Phân công giáo viên có mã 001 tham gia công việc 4 của đề tài số 001 với mức phụ cấp 2 THAMGIAĐT THAMGIAĐT („001‟, „001‟, 4, 2) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 84
- Thao tác xóa Được diễn đạt Rnew Rold E - R là quan hệ - E là một biểu thức ĐSQH Ví dụ - Xóa phân công tham gia đề tài cho giáo viên 001 THAMGIAĐT THAMGIAĐT MAGV=„001‟(THAMGIAĐT) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 85
- Ví dụ 25 Xóa các đề tài thuộc chủ đề ‘NCPT’ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 86
- Thao tác sửa Được diễn đạt Rnew F1, F2, , Fn (Rold) - R là quan hệ - Fi là biểu thức tính toán cho ra giá trị mới của thuộc tính Ví dụ - Tăng mức phụ cấp cho các đề tài của tất cả giáo viên lên 1.5 lần THAMGIAĐT MAGV, MAĐT, STT, PHUCAP*1.5(THAMGIAĐT) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 87
- Ví dụ 26 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 88
- Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 89