Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Phạm Nguyễn Cương
* 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ệ
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ệ - Phạm Nguyễn Cương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- bai_giang_co_so_du_lieu_chuong_04_dai_so_quan_he_pham_nguyen.pdf
Nội dung text: Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Phạm Nguyễn Cương
- 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ệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 2
- 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 4
- Đạ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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 6
- Đạ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ằngsố : 150, ‐ Thể hiện của quan hệ : t, v, Toán tử ‐ Thao tác xử lý giữa các toán ‐ Thao tác xử lý giữa các quan hệ hạng để 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 8
- 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. © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 10
- 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ỏ) r s = { t / t r t s } . Ví dụ r AB s AB r s AB 1 2 1 2 3 2 1 1 2 3 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 AB s AB r s AB 1 2 2 2 3 1 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 14
- 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 AB s AB r s AB 1 2 1 2 3 1 1 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 16
- 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 18
- 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 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 , , © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 20
- Phép chọn (tt) . Phép chọn có tính giao hoán p1 ( p2 (r)) = p2 ( p1 (r)) = p1 p2 (r) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 22
- 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 ABC A,C (r) A C 10 1 1 20 1 1 30 1 2 40 2 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 24
- 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 26
- 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)) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 28
- 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) © Bộ môn HTTT ‐ Khoa CNTT ‐ Trường ĐH KHTN 30
- 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 32
- 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 34
- 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)) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 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+ ) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 38
- 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) AR.BS.B C D AR.BS.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 - © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 40
- 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 42
- GIÁOVIÊN 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 . . . . . . . BỘ MÔ N 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 . . . . . . . GITRUONGBM=MAGVÁ OVIÊ N x B(BM_GV)Ộ 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 . 44 . . . . . . . . . . . © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN
- 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 46
- 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ầnTràHương’ (GIAOVIEN)) . B2: Lấy ra họ tên các giáo viên cùng bộ môn r2 HOTEN <>’TrầnTràHương’ (GIAOVIEN) r3 R1.MABM=R2.MABM (r1 r2) KQ HOTEN (r3) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 48
- 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ệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 50
- 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): khi hai thuộc tính trong điều kiện kết bằng C có tên giống nhau. Ký hiệu r s hay r s R+ S+ Quan hệ kết quả của phép kết bằng có tập thuộc tính là hội tập thuộc tính của r và s bỏ bớt đi 1 thuộc tính giống nhau © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 52
- Phép kết (tt) . Ví dụ phép kết bằng r C=D s r ABC s DE ABC D E 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 45662 789 r C=s.C s r ABC S S.CCD D ABC s.C D 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 45662 789 (S.C,D) s © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 54
- 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)) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 56
- 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, ) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 58
- Ví dụ 14 . Cho biết lương cao nhất trong bộ môn ‘HTTT’ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 60
- 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 62
- 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ệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 64
- Phép chia (tt) . Ví dụ r s r ABCDE s DE ABC 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 66
- 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 68
- 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ệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 70
- Hàm kết hợp (tt) . Ví dụ SUM(B) = 10 r AB AVG(A) = 1.5 1 2 MIN(A) = 1 3 4 MAX(B) = 4 1 2 COUNT(A) = 4 1 2 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 72
- Phép gom nhóm (tt) . Ví dụ SUM(C)(r) SUM_C r ABC 27 2 7 4 7 2 3 2 10 ASUM(C)(r) A SUM_C 14 3 10 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 74
- 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 76
- Ví dụ 22 . Cho biết họ tên giáo viên chủ nhiệm nhiều đề tài nhất © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 78
- 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 80
- 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ó. © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 82
- 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ệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 84
- 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 86
- Ví dụ 25 . Xóa các đề tài thuộc chủ đề ‘NCPT’ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 88