Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Trần Đắc Phi Hùng
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ệ - Trần Đắc Phi Hùng", để 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_tran_dac_phi.pdf
Nội dung text: Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ - Trần Đắc Phi Hùng
- 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
- Giới thiệu • 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. TENNV HONV NGSINH DCHI PHAI LUONG PHONG Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 51 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 Quang Pham 11/10/1937 450 TV HN Nam 55000 1 3
- 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
- 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) 5
- 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) 6
- Phép chọn (Selection) 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ụ: (R) (A=B) (R) (A=B)(D>5) (R) 7
- Phép chọn (Selection) Câu hỏi 1: Cho biết các nhân viên nam ? (Quan hệ) Cú pháp : . Biểu diễn cách 1 : (Điều kiện 1 điều kiện 2 .) Câu hỏi 1: (NhanVien) Phai=‘Nam’ . Biểu diễn cách 2: Cú pháp : (Quan hệ: điều kiện chọn) Câu hỏi 1: (NhanVien: Phai=‘Nam’) NHANVIEN Kết quả phép chọn MANV HOTEN NTNS PHAI NHANVIEN NV001 Nguyễn Tấn Đạt 10/12/1970 Nam MANV HOTEN NTNS 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 8
- Phép chọn (Selection) Câu hỏi 2: Cho biết các nhân viên nam sinh sau năm 1975 ? . Biểu diễn cách 1 : (NhanVien) (Phai=‘Nam’ Year(NTNS)>1975) . Biểu diễn cách 2: (NhanVien: Phai=‘Nam’ Year(NTNS)>1975) NHANVIEN Kết quả phép chọn MANV HOTEN NTNS PHAI NHANVIEN NV001 Nguyễn Tấn Đạt 10/12/1970 Nam MANV HOTEN NTNS 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) 9
- Phép chọn (Selection) 10
- Phép chọn (Selection) 11
- Phép chọn (Selection) 12
- 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: 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. – Phép chiếu loại bỏ những bộ trùng nhau. Ví dụ: A,C (R) A,C (R) 13
- Phép chiếu (Projection) Câu hỏi 1: Cho biết họ tên nhân viên và giới tính ? (Quan hệ) . Biểu diễn cách 1 : Cú pháp : Cột1, cột2, cột 3, . Câu hỏi 1 : (NHANVIEN) HOTEN,PHAI . Biểu diễn cách 2: Cú pháp : Quan hệ [cột1,cột2,cột3, ] Câu hỏi 1: NHANVIEN [ HOTEN, PHAI ] NHANVIEN NHANVIEN MANV HOTEN NTNS 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 14
- Phép chiếu (Projection) 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? . Biểu diễn cách 1: Kết quả phép chọn Bước 1: (NhanVien) Q (còn gọi là biểu thức (Phai=‘Nam’) ĐSQH) được đổi tên thành quan hệ Q ( Q ) Bước 2: HOTEN, NTNS . Biểu diễn cách 2: NHANVIEN NHANVIEN MANV HOTEN NTNS PHAI Kết quả HOTEN NTNS NV001 Nguyễn Tấn Đạt 10/12/1970 Nam phép chiếu Nguyễn Tấn Đạt 10/12/1970 NV002 Trần Đông Anh 01/08/1981 Nữ Lý Phước Mẫn 02/04/1969 NV003 Lý Phước Mẫn 02/04/1969 Nam 15
- Phép chiếu (Projection) 16
- Phép chiếu (Projection) • 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 17
- 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 18
- 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%. 19
- 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) 20
- 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 ( (R)) ( (R)) A1, A2, , Ak P P A1, A2, , Ak – Thực hiện từng phép toán một • B1 S P (R) • B2 KQ A1, A2, , Ak (S) 21
- Chuỗi các phép toán 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: HONV, TENNV (PHG=4 (NHANVIEN)) C2: NV_P4 PHG=4 (NHANVIEN) KQ HONV, TENNV (NV_P4) 22
- 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). 23
- 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. 24
- 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ỏ). R S = { t / t R t S } Ví dụ: S A B R A B S A B 1 1 2 2 2 3 1 1 2 3 25
- Phép hội (Union) Ví dụ: 26
- Phép hội (Union) 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 PHAN_CONG MSNV MSDA MSNV 001 1A 001 001 1B 002 002 1A 003 003 1A 003 1B 004 1C [ MSNV( (MSDA=“1A”) (PHAN_CONG) ] [ MSNV( (MSDA=“1B”) (PHAN_CONG) ] 27
- 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 R S = { t / t R t S } Ví dụ: R A B S A B 1 2 2 3 1 28
- Phép giao (Intersection) Ví dụ: 29
- Phép giao (Intersection) Cho biết nhân viên được phân công tham gia cả 2 đề án ‘1A’ và đề án ‘1B’? PHAN_CONG PHAN_CONG MSNV MSDA MSNV 001 1A 001 001 1B 003 002 1A 003 1A 003 1B 004 1C [ MSNV( (MSDA=“1A”) (PHAN_CONG) ] [ MSNV( (MSDA=“1B”) (PHAN_CONG) ] 30
- 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. R S = { t / t R t S } • Ví dụ: R A B S A B 1 2 2 3 1 31
- Phép trừ (Difference) 32
- Phép trừ (Difference) Cho biết nhân viên không làm việc ? PHAN_CONG NHAN_VIEN MSNV MSDA MSNV TEN 001 1A 001 Hung KẾT_QUẢ 001 1B 002 Huyen MSNV 002 1A 003 Dung 005 003 1A 004 Hoa 006 003 1B 005 Tien 004 1C 006 Tam MANV(NHANVIEN) – MANV(PHANCONG) 33
- Các tính chất Giao hoán: Kết hợp: 34
- Phép tích Cartesian R S 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+ Q+ ). 36
- Phép tích Cartesian • Ví dụ R S R A B R S A R.B S.B C D 1 1 10 + 2 1 10 + 1 20 - 1 10 - S B C D 2 10 + 10 + 2 10 + 10 + 2 20 - 20 - 2 10 - 10 - 37
- Phép tích Cartesian Ví dụ R x S MASV MAMH DIEM MAMH TENMH 99001 CSDL 5.0 CSDL COSO DULIEU 99002 FOX 2.0 FOX FOXPRO 99003 MANG 8.0 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 38
- Phép tích Cartesian Câu hỏi 1: Tính tích Descartes giữa 2 quan hệ nhân viên và phòng ban Cú pháp : Quan-hệ-1 Quan-hệ-2 Quan-hệ-k Câu hỏi 5 được viết lại: NHANVIEN PHONGBAN NHANVIEN 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 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 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 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 - 40
- Phép tích Cartesian TENPHG MAPHG TRPHG NG_NHANCHUC MANV TENNV HONV Nghien cuu 5 333445555 05/22/1988 333445555 Tung Nguyen Với mỗi phòng ban, cho biết thông tin của người trưởng phòng Dieu hanh 4 987987987 01/01/1995 987987987 Hung Nguyen –QuanQuan hệ: PHONGBAN, NHANVIEN ly 1 888665555 06/19/1981 888665555 Vinh Pham – 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 MANV TENNV HONV NGSINH DCHI PHAI LUONG PHG 333445555 Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5 999887777 Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4 987654321 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4 987987987 Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5 41
- Phép tích Cartesian B1: Tích Cartesian PHONGBAN và NHANVIEN PB_NV (NHANVIEN PHONGBAN) B2: Chọn ra những bộ thỏa TRPHG=MANV KQ TRPHG=MANV(PB_NV) 42
- Phép tích Cartesian 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 Phòng nào có địa điểm nằm trong điểm nào? trong tập hợp đó? MAPHG DIADIEM MAPHG DIADIEM 1 TP HCM 1 TP HCM 4 HA NOI 4 HA NOI 5 VUNGTAU 5 VUNGTAU 5 NHATRANG 5 NHATRANG 5 TP HCM 5 TP HCM 43
- Phép tích Cartesian • B1: Tìm các địa điểm của phòng 5 DD_P5(DD) DIADIEM (MAPHG=5 (DIADIEM_PHG)) • B2: Lấy ra các phòng có cùng địa điểm với DD_P5 R1 MAPHG 5 (DIADIEM_PHG) R2 DIADIEM=DD (R1 DD_P5) KQ MAPHG (R2) 44
- Phép tích Cartesian Cho biết lương cao nhất trong công ty – Quan hệ: NHANVIEN – Thuộc tính: LUONG TENNV HONV LUONG LUONG Tung Nguyen 40000 40000 Hang Bui 25000 25000 Nhu Le 43000 43000 Hung Nguyen 38000 38000 45
- Phép tích Cartesian B1: Chọn ra những lương không phải là lớn nhất R1 ( LUONG (NHANVIEN)) R2 NHAN_VIEN.LUONG < R1.LUONG(NHANVIEN R1) R3 NHAN_VIEN.LUONG (R2) B2: Lấy tập hợp lương trừ đi lương trong R3 KQ LUONG (NHANVIEN) R3 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ép kết (Join) 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 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 49
- Phép kết Theta (Theta join) : “C” 50
- Phép kết Theta (Theta join) R A B C S D E 1 2 3 3 1 4 5 6 6 2 7 8 9 51
- Phép kết bằng (Equi join) 52
- Phép kết bằng (Equi join) R A B C S C D 1 2 3 3 1 4 5 6 6 2 7 8 9 53
- Phép kết tự nhiên (Natural join) 54
- Phép kết tự nhiên (Natural join) 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 55
- Phép kết (Join) • 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)



