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

r1 và r2 lần lượt là hai quan hệ trên cùng tập thuộc tính {A1, A2, , An}. ! Phép trừ của hai quan hệ r1 và r2 sẽ tạo thành một quan hệ r3. Với r3 được xác định như sau: Q3+ = {A1, A2, , An} r 3 = r1 - r2 = { t | t ∈ r1 và t ∉ r2} !Quan hệ r3 là tập hợp các bộ thuộc quan hệ r1 nhưng không thuộc quan hệ r2

pdf8 trang | Chia sẻ: thuychi16 | Lượt xem: 1824 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Cơ sở dữ liệu - Chương 4: Đại số quan hệ, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chủ động – Tích cực Học tập 1"8/4/16 CHƯƠNG 4 -ĐẠI SỐ QUAN HỆ- Chủ động – Tích cực Học tập 4"8/4/16 I. Các phép toán đại số trên tập hợp Chủ động – Tích cực Học tập 5"8/4/16 1. Phép hợp – Union operation ! r1 và r2 lần lượt là hai quan hệ trên cùng tập thuộc tính {A1, A2,, An}. ! Phép hợp của hai quan hệ r1 và r2 sẽ tạo thành một quan hệ r3. Với r3 được xác định như sau: Q3+ = {A1, A2, , An} r3 = r1 ∪ r2 = { t | t ∈ r1 hoặc t ∈ r2} ! Quan hệ r3 là tập hợp các bộ thuộc r1 hoặc thuộc r2 hoặc thuộc cả hai Chủ động – Tích cực Học tập 6"8/4/16 Ví dụ A B r C a2 b1 c3 a1 b1 c1 A B a1 s a2 a3 b1 b2 b3 C c1 c2 c3 A B a1 r ∪ s a2 a3 b1 b2 b3 C c1 c2 c3 a2 b1 c3 Chủ động – Tích cực Học tập 8"8/4/16 ! VD: Lập danh sách tất cả các Học viên đã được khen thưởng DOT1 Mahv Hoten K1103 Le Van Tam K1114 Tran Ngoc Han K1203 Le Thanh Hau K1308 Nguyen Gia DOT2 Mahv Hoten K1101 Le Kieu My K1114 Tran Ngoc Han K1203 Le Thanh Hau K1308 Nguyen Gia DOT1∪DOT2 Chủ động – Tích cực Học tập 9"8/4/16 2. Phép giao - Intersection ! r1 và r2 lần lượt là hai quan hệ trên cùng tập thuộc tính {A1, A2,, An}. ! Phép giao của hai quan hệ r1 và r2 sẽ tạo thành một quan hệ r3. Với r3 được xác định như sau: Q3+ = {A1, A2, , An} r3 = r1 ∩ r2 = { t | t ∈ r1 và t ∈ r2} ! Quan hệ r3 là tập hợp các bộ thuộc trên cả hai quan hệ r1 và r2 Chủ động – Tích cực Học tập 10"8/4/16 ! VD: A B a1 r a2 a3 b1 b2 b3 C c1 c2 c3 A B s C a2 b1 c3 a1 b1 c1 A B r ∩ s C a1 b1 c1 Chủ động – Tích cực Học tập 12"8/4/16 ! VD: Lập danh sách tất cả các Học viên đã được khen thưởng trong cả 2 đợt DOT1 Mahv Hoten K1103 Le Van Tam K1114 Tran Ngoc Han K1203 Le Thanh Hau K1308 Nguyen Gia DOT2 Mahv Hoten K1101 Le Kieu My K1114 Tran Ngoc Han K1203 Le Thanh Hau K1308 Nguyen Gia DOT1 ∩ DOT2 Chủ động – Tích cực Học tập 13"8/4/16 3. Phép trừ - Minus, difference ! r1 và r2 lần lượt là hai quan hệ trên cùng tập thuộc tính {A1, A2,, An}. ! Phép trừ của hai quan hệ r1 và r2 sẽ tạo thành một quan hệ r3. Với r3 được xác định như sau: Q3+ = {A1, A2, , An} r3 = r1 - r2 = { t | t ∈ r1 và t ∉ r2} !Quan hệ r3 là tập hợp các bộ thuộc quan hệ r1 nhưng không thuộc quan hệ r2 Chủ động – Tích cực Học tập 14"8/4/16 Ví dụ A B a1 r a2 a3 b1 b2 b3 C c1 c2 c3 A B s C a2 b1 c3 a1 b1 c1 A B r - s a2 a3 b2 b3 C c2 c3 Chủ động – Tích cực Học tập 16"8/4/16 ! VD: Lập danh sách học viên được khen thưởng đợt 1 nhưng không được khen thưởng đợt 2 DOT1 Mahv Hoten K1103 Le Van Tam K1114 Tran Ngoc Han K1203 Le Thanh Hau K1308 Nguyen Gia DOT1- DOT2 DOT2 Mahv Hoten K1101 Le Kieu My K1114 Tran Ngoc Han K1203 Le Thanh Hau K1308 Nguyen Gia Chủ động – Tích cực Học tập 18"8/4/16 4. Tích decac – Cartesian Product ! r1 là quan hệ trên tập thuộc tính (A1, A2, , An) và r2 là quan hệ trên tập thuộc tính (B1, B2, , Bm) ! Tích decac của hai quan hệ r1 và r2 sẽ tạo thành một quan hệ r3 được xác định: Q3+ = Q1+ ∪ Q2+ = { A1, A2, , An, B1, B2 ... Bm } r3 = r1 x r2 = { (t1, t2) | t1 ∈ r1 và t2 ∈ r2 } "Quan hệ r3 là tập các bộ được ghép lần lượt từ hai quan hệ r1 và r2. Các thành phần của r1 được đặt trước rồi đến r2. Chủ động – Tích cực Học tập 19"8/4/16 ! VD: A B r a2 2 a1 1 C D s d2 3 d1 1 A B a1 r × s a1 a2 1 1 2 C 1 3 1 D d1 d2 d1 a2 2 3 d2 Chủ động – Tích cực Học tập 21"8/4/16 VD: HOCVIEN Mahv Hoten K1103 Le Van Tam K1114 Tran Ngoc Han K1203 Le Thanh Hau MONHOC Mamh TRR THDC CTDL HOCVIEN×MONHOC Chủ động – Tích cực Học tập 22"8/4/16 5. Phép chia - Division ! r1 là quan hệ trên tập thuộc tính (A1, A2, , An) và r2 là quan hệ trên tập thuộc tính (B1, B2, , Bm) ! Phép chia quan hệ r1 và r2 sẽ tạo thành một quan hệ r3 như sau: Q3+ = {A1, ..., An-m} r3 = r1 ÷ r2 = { t | ∀u ∈ r2: (t , u) ∈ r1 } " với mọi u thuộc s thì (t , u) thuộc r Chủ động – Tích cực Học tập 23"8/4/16 * VD: Chủ động – Tích cực Học tập 24"8/4/16 VD: Mahv HV01 HV03 KETQUATHI Mahv Mamh Diem HV01 CSDL 7.0 HV02 CSDL 8.5 HV01 CTRR 8.5 HV03 CTRR 9.0 HV01 THDC 7.0 HV02 THDC 5.0 HV03 THDC 7.5 HV03 CSDL 6.0 MONHOC Mamh Tenmh CSDL Co so du lieu CTRR Cau truc roi rac THDC Tin hoc dai cuong KETQUA MONHOC KETQUATHI÷MONHOC ][ ],[ MamhMONHOCMONHOC MamhMahvKETQUATHIKETQUA ← ← Chủ động – Tích cực Học tập 26"8/4/16 II. Các phép toán đại số quan hệ Chủ động – Tích cực Học tập 27"8/4/16 1. Phép chiếu - Projection ! r là quan hệ trên tập thuộc tính (A1,A2,,An), X là tập thuộc tính với X⊆Q+. ! Phép chiếu của quan hệ r lên tập thuộc tính X là loại bỏ đi một số thuộc tính của lược đồ Q không có trong X và giữ lại những thuộc tính được liệt kê trong danh sách thuộc tính X ! Ký hiệu: π X ( r) Hoặc r.{ X } # Trong đó: # X: danh sách tập con thuộc tính của quan hệ được chọn ra # r: tên quan hệ cần chiếu ra kết quả # Kết quả là một quan hệ chỉ chứa các thuộc tính xác định trong tập X " Phép chiếu chính là phép rút trích dữ liệu theo cột (chiều dọc) Chủ động – Tích cực Học tập 28"8/4/16 Ví dụ π{B,C} (r) A B a1 r a2 a3 1 1 2 C c1 c1 c2 Chủ động – Tích cực Học tập 29"8/4/16 ! VD: Cho quan hệ: SV ( Mã SV, Họ tên, Ngày sinh, điểm) như sau: Mã SV Họ tên Ngày sinh Điểm 001 Trần Anh 23/4/86 8 002 Ngọc Bích 13/4/85 9 003 Xuân Mai 25/3/87 7 004 Hồng Vân 21/6/85 10 Mã SV Điểm 001 8 002 9 003 7 004 10 πMã Sv, Điểm (SV) Cho danh sách gồm mã SV và điểm tương ứng? Chủ động – Tích cực Học tập Cơ"sở"dữ" liệu" 30" ! VD: Cho lược đồ quan hệ: NHANVIEN( MNV, HoNV, TenNV, NS, GT, HSL, DC, MĐV) ! Viết biểu thức ĐSQH: Cho biết danh sách họ tên và lương của các nhân viên (Lương = HSL *1350000) ! Quan hệ: NHANVIEN ! Thuộc tính: HONV, TENNV, LUONG πHONV, TENNV, HSL*1350000(NHANVIEN) Chủ động – Tích cực Học tập ! VD: Cho lược đồ quan hệ: $ DUAN( MDA, Ten, DiaDiem, MNV ) $ THANNHAN( Ten, NS, GT, MNV ) ! Viết ĐSQH: Cho biết mã nhân viên của những nhân viên có tham gia đề án nào đó hoặc có thân nhân 31"Cơ"sở"dữ"liệu" πMANV(DEAN) πMANV(THANNHAN) πMANV(DEAN) ∪ πMANV(THANNHAN) Chủ động – Tích cực Học tập 32"8/4/16 2. Phép chọn – Selection: ! Dùng để trích chọn ra một tập con các bản ghi (bộ) trong một quan hệ, các bộ được trích chọn phải thoả mãn điều kiện chọn " Phép chọn trích ra các hàng trong quan hệ thỏa mãn điều kiện ! Dạng tổng quát: σ ( r ) $ F: là biểu thức điều kiện để lựa chọn các dòng ! Nhiều điều kiện: ¬( phủ định ), ∧ (giao), ∨ (hợp) $ r: là quan hệ thực hiện chọn trên đó ! Kết quả: một quan hệ có danh sách thuộc tính được chỉ ra trong quan hệ và có các dòng thỏa mãn điều kiện. Chủ động – Tích cực Học tập 33"8/4/16 Ví dụ σ (C=1) (r) A B a2 r 1 C 1 D d3 A B a1 r a1 a2 1 1 1 C 2 2 1 D d1 d2 d3 σ (C=1) ∧ (A = a1) (r) = ∅ Chủ động – Tích cực Học tập 34"8/4/16 VD: Liệt kê danh sách các sinh viên có điểm >8. Mã SV Họ tên Ngày sinh Điểm 001 Trần Anh 23/4/86 8 002 Ngọc Bích 13/4/85 9 003 Xuân Mai 25/3/87 7 004 Hồng Vân 21/6/85 10 Mã SV Họ tên Ngày sinh Điểm 002 Ngọc Bích 13/4/85 9 004 Hồng Vân 21/6/85 10 Biểu thức: σ Điểm > 8 (SV) Chủ động – Tích cực Học tập 35"8/4/16 % VD: Liệt kê danh sách học viên Nam có nơi sinh ở TpHCM 35 HOCVIEN Mahv HoTen Gioitinh Noisinh Malop K1103 Ha Duy Lap Nam Nghe An K11 K1102 Tran Ngoc Han Nu Kien Giang K11 K1104 Tran Ngoc Linh Nu Tay Ninh K11 K1105 Tran Minh Long Nam TpHCM K11 K1106 Le Nhat Minh Nam TpHCM K11 HOCVIEN Mahv HoTen Gioitinh Noisinh Malop K1105 Tran Minh Long Nam TpHCM K11 K1106 Le Nhat Minh Nam TpHCM K11 σ(Gioitinh=‘Nam’) ∧ (Noisinh=‘TpHCM’)(HOCVIEN) Chủ động – Tích cực Học tập Cơ"sở"dữ" liệu" 36" ! VD: Cho lược đồ quan hệ: NHANVIEN( MNV, HoNV, TenNV, NS, GT, HSL, DC, Phg) ! ĐSQH: 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 πHONV, TENNV ( σPHG=4 (NHANVIEN) ) Chủ động – Tích cực Học tập 37"8/4/16 3. Phép kết nối - Join ! Dùng để kết hợp hai bộ có liên quan từ hai quan hệ thành một bộ. ! Phép kết nối của quan hệ r trên thuộc tính A với quan hệ s trên thuộc tính B được định nghĩa: • kết nối là một quan hệ q, thỏa mãn • 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 điều kiện nối có dạng Ai θ Bj • Ai là thuộc tính của r, Bj là thuộc tính của s • θ ∈ { ≠, =, , ≤, ≥ } A θ B r s = {(t ∪ u) | t ∈ r và u ∈ s và t[A] θ u[B] } Chủ động – Tích cực Học tập 38"8/4/16 Ví dụ A B r a2 2 a1 1 C D s d2 3 d1 1 r s B ≥ C Chủ động – Tích cực Học tập 42"8/4/16 ! Chú ý: $ Nếu điều kiện kết nối chứa phép so sánh (=) bằng thì phép kết nối được gọi là phép kết nối bằng. $ Kết nối bằng tại thuộc tính cùng tên của hai quan hệ và một trong hai thuộc tính đó bị loại bỏ qua phép chiếu, thì phép kết nối được gọi là kết nối tự nhiên. Kí hiệu là "*" Chủ động – Tích cực Học tập 43"8/4/16 * VD: r1 MASV MAMH DIEM 99001 CSDL 5.0 99002 CTDL 2.0 99003 MANG 8.0 r2 MAMH TENMH CSDL Cơ sở dữ liệu CTDL Cấu trúc dữ liệu MASV MAMH DIEM TENMH 99001 CSDL 5.0 Cơ sở dữ liệu 99002 CTDL 2.0 Cấu trúc dữ liệu r3 = r1 |><| r2 = r1* r2 MMH MMH Chủ động – Tích cực Học tập 44"8/4/16 *BÀI TẬP 1: Cho Cơ sở dữ liệu sau Chủ động – Tích cực Học tập 45"8/4/16 Ví dụ ! Cho lược đồ CSDL Quản lý đề án công ty $ NHÂN VIÊN( Mã nhân viên, Họ đệm, Tên, Ngày sinh, Giới tính, HSL, Địa chỉ, mã đơn vị, $ ĐƠN VỊ ( mã đơn vị, tên, mã trưởng phòng, ngày bắt đầu) $ ĐƠN VI –DIA DIEM (Mã đơn vị, Địa điểm) $ DỰ ÁN ( mã dự án, tên, địa điểm, thời gian bắt đầu, mã đơn vị) $ PHÂN CÔNG (mã dự án, mã nhân viên, số giờ) Sử dụng đại số quan hệ thực hiện các yêu cầu sau: 1. Cho biết thông tin cá nhân các NHANVIEN nữ của cơ quan 2. Cho biết danh sách các đề án mà phòng Hanh chinh thực hiện 3. Với mỗi phòng ban, cho biết tên phòng ban và địa điểm phòng 4. Tìm tên những nữ nhân viên và thân nhân của họ 5. Với mỗi đề án ở Ha Noi, liệt kê các mã số đề án (MADA), mã số phòng ban chủ trì đề án (PHONG), họ tên trưởng phòng (TENNV, HONV), cũng như địa chỉ và ngày sinh của người ấy. 6. Với mỗi nhân viên, cho biết họ tên của nhân viên và tên của dự án mà nhân viên đã tham gia Chủ động – Tích cực Học tập 1. Cho biết thông tin cá nhân các NHANVIEN nữ của cơ quan πMANV,HONV,TENLOT,TENNV,NGSINH,DIACHI (σPHAI=NU(NHANVIEN)) 2. Cho biết danh sách các đề án mà phòng Hanh chinh thực hiện πMADA,TENDA,DDIEM_DA,NGBD_DK,NGKT_DK(σPHONG=HANH CHINH(DEAN)) 3. Với mỗi phòng ban, cho biết tên phòng ban và địa điểm phòng Thực hiện kết nối bảng PHONGBAN và bảng DIADIEM_PHG dựa vào thuộc tính MAPHG bằng nhau trên hai bảng R(TENPHG, DIADIEM) & ∏TENPHG, DIADIEM(PHONGBAN MAPHG, MAPHG DIADIEM_PHG) 4. Tìm tên những người trưởng phòng của từng phòng ban Thưc hiện kết nối bảng PHONGBAN và bảng NHANHVIEN dựa trên mã trưởng phòng và mã nhân viên giống nhau !  R & ∏HONV, TENLOT, TENNV, TENPHG(PHONGBAN TRPHG, MANV NHANVIEN) 46"8/4/16 Chủ động – Tích cực Học tập 5. Tìm TENDA, MADA, DDIEM_DA, PHONG, TENPHG, MAPHG, TRPHG, NG_NHANCHUC Kết nối bảng DEAN và bảng PHONGBAN dựa vào mã phòng trùng nhau R & ∏TENDA, MADA, DDIEM_DA, PHONG, TENPHG, MAPHG, TRPHG, NG_NHANCHUC(DEAN PHONG, MAPHG PHONGBAN) 6. Tìm tên những nữ nhân viên và thân nhân của họ Lấy ra mã phòng của phòng nghiên cứu sau đó dùng phép kết nối tự nhiên trên mã phòng đó với bảng NHANVIEN Cách 1: R1(MAPHG) & ∏MAPHG (σ TENPHG=Nghien cuu (PHONGBAN)) R & ∏HONV,TENLOT,TENNV,DCHI (NHANVIEN *PHG, MAPHG R1) Cách 2: R & ∏HONV,TENLOT,TENNV,DCHI (NHANVIEN *PHG, MAPHG (∏MAPHG (σ TENPHG=Nghien cuu (PHONGBAN))) 47"8/4/16 Chủ động – Tích cực Học tập 7. Với mỗi đề án ở Ha Noi, liệt kê các mã số đề án (MADA), mã số phòng ban chủ trì đề án (PHONG), họ tên trưởng phòng (TENNV, HONV), cũng như địa chỉ và ngày sinh của người ấy. -Chọn ra thông tin của các đề án ở Hà Nội -Lấy ra thông tin của các nhân viên cùng với mã phòng ban tương ứng -Kết nối hai thông tin trên dựa vào mã phòng khớp nhau R1 & ∏MADA, TENDA, DDIEM_DA, PHONG (σ DDIEM_DA=Ha Noi (DEAN)) R2 & ∏TENNV, HONV, DCHI, NGSINH, PHG (PHONGBAN TRPHG, MANV NHANVIEN) R & ∏MADA,PHONG,HONV,TENNV,DCHI,NGSINH(R1 PHONG, PHG R2) 8. Với mỗi nhân viên, cho biết họ tên của nhân viên và họ tên người quản lý trực tiếp của nhân viên đó R1 & NHANVIEN R(TENNV, HONV, TENNQL, HONQL) & ∏TENNV, HONV, TENNV, HONV(R1 MA_NQL, MANV NHANVIEN) 48"8/4/16 Chủ động – Tích cực Học tập 49"8/4/16 III. Các phép toán gom nhóm trên quan hệ ! Vấn đề cần giải quyết: % Tính tổng, đếm % tìm người có lương lớn nhất ,v.v.. % Giải quyết: Nhóm các bộ trong một quan hệ theo một giá trị của một số các thuộc tính của chúng và sau đó áp dụng các hàm trên từng nhóm một cách độc lập Chủ động – Tích cực Học tập 50"8/4/16 ! Định nghĩa phép gộp nhóm ℑ ( thuộc tính ) ( R ) ! Trong đó: $ TT gộp nhóm: là tên thuộc tính tiến hành gộp nhóm lại $ Hàm: tên hàm sử dụng để tính toán sau khi gộp nhóm $ Thuộc tính: tên thuộc tính thực hiện tính toán trên đó $ R: là tên quan hệ thực hiện % Các hàm tính toán nhóm thường dùng % Tính tổng SUM % Tính trung bình cộng AVERAGE % Đếm số bộ thỏa mãn COUNT, COUNTA % Tìm giá trị lớn nhất MAX, nhỏ nhất MIN Chủ động – Tích cực Học tập 51"8/4/16 ! Nếu ds các thuộc tính cơ sở để gộp nhóm là rỗng thì các hàm kết tập được áp dụng cho các giá trị thuộc tất cả các bộ trong quan hệ. Khi đó quan hệ kết quả chỉ có một bộ ! Kết quả của phép gộp nhóm là một quan hệ. Ngoài các thuộc tính cơ sở để gộp nhóm, quan hệ kết quả còn có các thuộc tính tương ứng với các phần tử trong danh sách hàm kết tập Chủ động – Tích cực Học tập 52"8/4/16 a) MA_P ℑ COUNT A( MA_NV) , AVERAGE ( LUONG ) (NHAN_VIEN) Thực hiện: Đếm số nhân viên và tính lương trung bình theo từng phòng Quan hệ kết quả là: MA_P COUNT MA_NV AVERAGE LUONG P1 4 1500000 P2 2 2000000 P3 2 1500000 b) ℑ COUNTA ( MA_NV), AVERAGE ( LUONG) (NHAN_VIEN) Thực hiện: Đếm số nhân viên và tính lương trung bình của tất cả NV Quan hệ kết quả là : COUNT MA_NV AVERAGE LUONG 8 1666666.7 VD: Chủ động – Tích cực Học tập 53"8/4/16 IV. Tối ưu hóa truy vấn Chủ động – Tích cực Học tập 1. Các quy tắc biến đổi ! Quy tắc: Xử lý các toán tử AND trong biểu thức điều kiện σc1 and c2... And cn (R)≡σc1(σc2 (...σcn (R))...) ! Ví dụ: NHANVIEN (manv, honv, tennv, ngaysinh, phai, luong, maphong) 54"8/4/16 Chủ động – Tích cực Học tập ! Quy tắc: Thay đổi thứ tự của các phép chọn σ c1 (σ c 2 (R )) ≡ σ c 2 (σ c1 (R )) ! Ví dụ: NHANVIEN (manv, honv, tennv, ngaysinh, phai, luong, maphong) 55"8/4/16 Chủ động – Tích cực Học tập ! Quy tắc: Thay đổi thứ tự các phép chọn và chiếu π A1, A 2 , . . . ,An (σ c (R )) ≡ σ c (π A1, A 2 , . . . ,An (R )) ! Ví dụ: NHANVIEN (manv, honv, tennv, ngaysinh, phai, luong, maphong) 57"8/4/16 Chủ động – Tích cực Học tập ! Quy tắc: Thay đổi thứ tự giữa phép chọn và phép kết ! Ví dụ: NHANVIEN (manv, honv, tennv, ngaysinh, phai, luong, maphong) PHONGBAN (maphong, tenphong, maql) 59"8/4/16 Chủ động – Tích cực Học tập ! Quy tắc: Thay đổi thứ tự giữa phép chọn và phép kết ! Ví dụ: NHANVIEN (manv, honv, tennv, ngaysinh, phai, luong, maphong) PHONGBAN (maphong, tenphong, maql) 60"8/4/16 Chủ động – Tích cực Học tập ! Quy tắc: Phân phối giữa phép chiếu và phép kết ! Ví dụ: NHANVIEN (manv, honv, tennv, ngaysinh, phai, luong, maphong) PHONGBAN (maphong, tenphong, maql) 61"8/4/16 Chủ động – Tích cực Học tập Giải thuật Heuristics để tối ưu ! Áp dụng lần lượt các quy tắc trên để tối ưu ! Áp dụng quy tắc tách các phép chọn liên kiện thành 1 dãy các phép chọn. ! Áp dụng quy tắc để đẩy phép chọn xuống càng sâu càng tốt ! Phối hợp tích Decartes với các phép chiếu thích hợp theo sau ! Áp dụng quy tắc để đẩy phép chiếu xuống càng sâu càng tốt (có thể phát sinh phép chiếu mới) ! Áp dụng quy tắc để loại những phép chiếu vô ích 66"8/4/16 Chủ động – Tích cực Học tập Ví dụ: Ví dụ áp dụng tối ưu ! Liệt kê họ tên NHANVIEN sinh sau năm 1960 và làm dự án “ABC” 68"8/4/16 Chủ động – Tích cực Học tập 69"8/4/16 Chủ động – Tích cực Học tập 70"8/4/16 Chủ động – Tích cực Học tập 71"8/4/16 Chủ động – Tích cực Học tập Bài tập áp dụng ! NHANVIEN(MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL) ! HANG(MaHang, TenHang, NhaSX, TGianBaoHanh) ! KHACHHANG(MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email) ! HOADONXUAT(MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT) ! CT_HOADON(MaHD, MaHang, SoLuongMua, DonGia) ! Viết câu lệnh đại số quan hệ thực hiện yêu cầu sau: $ Cho danh sách họ tên của nhân viên sinh vào tháng 3 hoặc tháng 10 $ Cho biết tuổi cao nhất hiện nay của các nhân viên $ Cho danh sách khách hàng có địa chỉ không thuộc quận Đống Đa hoặc quận Hoàng Mai $ Tính tổng số tiền đã bán được của từng hóa đơn $ Tính tổng số lượng và tổng số tiền đã bán được của từng mặt hàng $ Tính tổng số lượng và tổng số tiền đã bán được của từng mặt hàng trong năm 2013 $ Tính tổng số tiền đã mua hàng của từng khách hàng, thống kê dựa vào tên khách hàng $ Cho biết tên của mặt hàng đã bán được nhiều nhất $ Cho biết tên các nhân viên đã bán được hơn 10triệu tiền hàng 72 Chủ động – Tích cực Học tập 73"8/4/16 *. Bài tập 2: Chủ động – Tích cực Học tập 74"8/4/16 Yêu cầu: $ NHÂN VIÊN( Mã nhân viên, Họ đệm, Tên, Ngày sinh, Giới tính, HSL, Địa chỉ, mã đơn vị, $ ĐƠN VỊ ( mã đơn vị, tên, mã trưởng phòng, ngày bắt đầu) $ ĐƠN VI –DIA DIEM (Mã đơn vị, Địa điểm) $ DỰ ÁN ( mã dự án, tên, địa điểm, thời gian bắt đầu, mã đơn vị) $ PHÂN CÔNG(mã dự án, mã nhân viên, số giờ) ! Xây dựng biểu thức đại số quan hệ mô tả 1. Cho biết tổng lương của từng phòng ban 2. Cho tên phòng ban có tổng lương trên 10 triệu 3. Cho tên phòng ban có tổng số nhân viên dưới 5 4. Cho biết tên nhân viên và tổng số giờ đã tham gia dự án của nhân viên đó 5. Cho biết tổng số nhân viên đã tham gia làm cho từng dự án 6. Cho biết số dự án đã thực hiện của từng phòng ban, theo tên 7. Cho biết tên dự án và tổng số giờ làm của các nhân viên cho dự án đó 8. Cho biết tên của nhân viên có số giờ làm cho dự án là nhiều nhất 9. Cho biết tên của phòng ban có tổng lương thấp nhất 10. Cho biết tên của nhân viên có lương thấp nhất Chủ động – Tích cực Học tập 75"8/4/16 1. Với những phòng ban có lương trung bình của các nhân viên thuộc phòng ban đó là >300.000, cho biết tên phòng ban và số nhân viên thuộc phòng ban đó ! Thực hiện $ Thực hiện tính toán phân nhóm theo từng phòng, trên mỗi phòng tính lương trung bình và đếm số nhân viên của từng phòng $ sau đó lọc ra các phòng có lương trung bình > 300000 ! R1 & TENPHGℑAVERAGE(MLUONG), COUNT(*) (PHONGBANMAPHG, PHG NHANVIEN) ! R(TENPHG, SONV) & σLUONGTB>300000 (R1) Chủ động – Tích cực Học tập 76"8/4/16 2. Với những phòng ban có lương trung bình của các nhân viên thuộc phòng ban đó là >300.000, cho biết tên phòng ban và số nhân viên nam của phòng ban đó. ! Thực hiện: $ với mỗi phòng thực hiện đếm số nhân viên nam có trong phòng $ với mỗi phòng tính mức lương trung bình của từng phòng và chọn ra các phòng có lương > 300000 $ Liệt kê mã phòng và tên phòng ! R1(PHONG, SONV_NAM) & PHONGℑCOUNT(*) (σPHAI=Nam (NHANVIEN)) ! R2 & MAPHG, TENPHG ℑAVERAGE(MLUONG) (PHONGBAN MAPHG, PHG NHANVIEN) ! R3(MAPHG, TENPHG) & σLUONGTB>300000 (R2) ! R(TENPHG, SONV_NAM) & R1PHONG, MAPHG R3 Chủ động – Tích cực Học tập 3. Với mỗi đề án, liệt kê tên đề án (TENDA) và tổng s