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ệ 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 B12 B11 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 từ năm 1980 TÊNKHOA Sinh học Hóa học 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) 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) 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) 6 Đại số quan hệ (tt) Khi dùng đại số quan hệ, một nhu cầu truy vấn được thể hiện qua một biểu thức đại số quan hệ: Kết quả trả về là một thể hiện của quan hệ Có thể là một chuỗi các phép toán đại số quan hệ Theo thứ tự thực hiện của các toán tử, kết quả của toán tử thực hiện trước là đầu vào cho toán tử thực hiện kế tiếp. 7 Đại số quan hệ (tt) Phép toán đại số Phép toán đại số quan hệ Toán hạng - Biến : x, y, z, … - Quan hệ : NhanVien, … - Hằng số : 150, … - Thể hiện của quan hệ : t, v, … Toán tử - Thao tác xử lý giữa các toán hạng - Thao tác xử lý giữa các quan hệ để tạo thành giá trị mới : +, -, *, /, để tạo thành quan hệ mới : phép … chọn , hội , … Biểu thức - Chuỗi các phép toán đại số - Chuỗi các phép toán đại số quan - Kết quả cho ra một giá trị mới hệ (câu truy vấn) - Kết quả cho ra một quan hệ mới (x+7) / (y-3) (x+y)*z and/or (x+7) / (y-3) MANV (NHANVIEN) 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ệ 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) Cho hai lược đồ quan hệ R(A1, A2, …, An) và S(B1, B2, …, Bn), r(R), s(S). Hai quan hệ r và s là khả hợp nếu R và S có cùng bậc n Và có DOM(Ai)=DOM(Bi) , 1 i n Kết quả phép toán , , hoặc của r và s là một quan hệ có các thuộc tính cùng tên với các thuộc tính của quan hệ r. 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) 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ị loại bỏ) rs={t/trts} Ví dụ r A B s A B rs A B 1 2 1 2 3 2 1 1 2 3 12 Phép hội (tt) 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 HOTEN DIACHI Đ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 13 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 Ví dụ rs={t/trts} r A B s A B rs A B 1 2 2 2 3 1 14 Phép giao (tt) 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 HOTEN DIACHI Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM 15 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 Ví dụ rs={t/trts} r A B s A B rs A B 1 2 1 2 3 1 1 16 Phép trừ (tt) 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 HOTEN DIACHI Nguyễn Thanh Tùng 222 Nguyễn Văn Cừ, Tp HCM Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM 17 Các tính chất Giao hoán rs=sr rs=sr Kết hợp r (s t) = (r s) t r (s t) = (r s) t 18 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ệ 19 Phép chọn Được dùng để lấy ra các bộ của quan hệ r thỏa mãn điều kiện chọn P Ký hiệu (r) P P là biểu thức gồm các mệnh đề có dạng <tên thuộc tính> <phép so sánh> <hằng số> <tên thuộc tính> <phép so sánh> <tên thuộc tính> <phép so sánh> gồm , , , , , Các mệnh đề được nối lại nhờ các phép , , 20 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 21 Phép chọn (tt) Phép chọn có tính giao hoán ( p1 p2 (r)) = ( p2 p1 (r)) = p1 p2 (r) 22 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ệ 23 Phép chiếu Được dùng để lấy ra một vài cột của quan hệ r Ký hiệu A1, A2, …, Ak(r) 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 24 Phép chiếu (tt) Phép chiếu không có tính giao hoán (r) = ( (r)) X,Y X Y A1, A2, …, An( A1, A2, …, Am(r)) = A1, A2, …, An (r) , với n m 25 Phép chọn vs.
Phép chiếu A1, A2, A3 …, An A1, A2, A3 …, An Phép chọn i. Phép chiếu n m, n>=m 26 Ví dụ 1 Cho biết họ tên và mức lương của các giáo viên nữ HOTEN, LUONG ( PHAI=‘Nữ’ (GIAOVIEN)) 27 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 MAGV ( MABM=‘HTTT’ (GIAOVIEN)) MAGV ( MAĐT=‘001’ (TG_ĐETAI)) 28 Ví dụ 3 Cho biết mã số các trưởng khoa có chủ nhiệm đề tài TRUONGKHOA(KHOA) GVCNĐT (ĐETAI) 29 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 (NGAYBĐ>=‘1/1/2007’ NGAYBĐ<=‘1/8/2007’) (CONGVIEC) 30 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 31 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.