Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ cung cấp cho người học các kiến thức: Các phép toán đại số trên tập hợp, các phép toán đại số quan hệ, tối ưu hóa truy vấn, các phép toán gom nhóm trên quan hệ. Mời các bạn cùng tham khảo.
CHƯƠNG -ĐẠI SỐ QUAN HỆ- Chủ động – Tích cực Học tập 5/6/18 I Các phép toán đại số tập hợp Chủ động – Tích cực Học tập 5/6/18 Phép hợp – Union operation pr1 r2 hai quan hệ tập thuộc tính {A1, A2,…, An} pPhép hợp hai quan hệ r1 r2 tạo thành quan hệ r3 Với r3 xác định sau: Q3+ = {A1, A2, …, An} r3 = r1 È r2 = { t | t Ỵ r1 t Ỵ r2} ó Quan hệ r3 tập hợp từ r1 r2 Chủ động – Tích cực Học tập 5/6/18 Ví dụ r A B C a1 b1 a2 b1 r È s A B C c1 a1 b1 c1 b2 c2 a2 b1 c3 b3 c3 a2 b2 c2 a3 b3 c3 A B C c1 a1 b1 c3 a2 a3 Chủ động – Tích cực Học tập s 5/6/18 Phép giao - Intersection pr1 r2 hai quan hệ tập thuộc tính {A1, A2,…, An} pPhép giao hai quan hệ r1 r2 tạo thành quan hệ r3 Với r3 xác định sau: Q3+ = {A1, A2, …, An} r3 = r1 Ç r2 = { t | t Ỵ r1 t Î r2} ó Quan hệ r3 tập hợp thuộc hai quan hệ r1 r2 Chủ động – Tích cực Học tập 5/6/18 pVD: r A B C a1 b1 a2 a3 A B C c1 a1 b1 c1 b2 c2 a2 b1 c3 b3 c3 Chủ động – Tích cực Học tập s r Çs A B C a1 b1 c1 5/6/18 10 Phép trừ - Minus, difference pr1 r2 hai quan hệ tập thuộc tính {A1, A2,…, An} pPhép trừ hai quan hệ r1 r2 tạo thành quan hệ r3 Với r3 xác định sau: Q3+ = {A1, A2, …, An} r3 = r1 - r2 = { t | t Ỵ r1 t Ï r2} óQuan hệ r3 tập hợp thuộc quan hệ r1 khơng thuộc quan hệ r2 Chủ động – Tích cực Học tập 5/6/18 13 Ví dụ r A B C a1 b1 a2 a3 A B C c1 a1 b1 b2 c2 a2 b1 b3 c3 Chủ động – Tích cực Học tập s r-s A B C c1 a2 b2 c2 c3 a3 b3 c3 5/6/18 14 Tích decac – Cartesian Product pr1 quan hệ tập thuộc tính (A1, A2, …, An) r2 quan hệ tập thuộc tính (B1, B2, …, Bm) pTích decac hai quan hệ r1 r2 tạo thành quan hệ r3 xác định: Q3+ = Q1+ È Q2+ = { A1, A2, …, An, B1, B2 Bm } r3 = r1 x r2 = { (t1, t2) | t1 Ỵ r1 t2 Î r2 } óQuan hệ r3 tập ghép từ hai quan hệ r1 r2 Các thành phần r1 đặt trước đến r2 Chủ động – Tích cực Học tập 5/6/18 18 pVD: r A B a1 a2 C D 1 Chủ động – Tích cực Học tập s r´s A B C D d1 a1 1 d1 d2 a1 d2 a2 d1 a2 d2 5/6/18 19 Chủ động – Tích cực Học tập 5/6/18 72 Chủ động – Tích cực Học tập 5/6/18 73 Bài tập áp dụng pNHANVIEN(MaNV, Hoten, DiaChi, SDT, NgaySinh, GT, HSL) pHANG(MaHang, TenHang, NhaSX, TGianBaoHanh) pKHACHHANG(MaKH, TenKH, CMT, DiaChi, SoDienThoai, Email) pHOADONXUAT(MaHD, MaKH, NgayLapHD, MaNV, PhuongThucTT) pCT_HOADON(MaHD, MaHang, SoLuongMua, DonGia) pViết câu lệnh đại số quan hệ thực yêu cầu sau: nCho danh sách họ tên nhân viên sinh vào tháng tháng 10 nCho biết danh sách tên khách hang mua hàng năm 2017 nCho biết danh sách mặt hang bán năm 2017 nCho danh sách khách hàng có địa khơng thuộc quận Đống Đa quận Hồng Mai nTính tổng số tiền bán hóa đơn nTính tổng số lượng tổng số tiền bán mặt hàng nTính tổng số lượng tổng số tiền bán mặt hàng năm 2017 nTính tổng số tiền mua hàng khách hàng, thống kê dựa vào tên khách hàng nCho biết tên mặt hàng bán nhiều nCho biết tên nhân viên bán 20 triệu tiền hang nCho biết tên nhân viên bán 20 triệu tiền hang năm 2017 Chủ động – Tích cực Học tập 74 * Bài tập 2: Chủ động – Tích cực Học tập 5/6/18 75 Yêu cầu: nNHÂ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ĐƠN VỊ ( mã đơn vị, tên, mã trưởng phòng, ngày bắt đầu) nĐƠN VI –DIA DIEM (Mã đơn vị, Địa điểm) nDỰ ÁN ( mã dự án, tên, địa điểm, thời gian bắt đầu, mã đơn vị) nPHÂN CÔNG(mã dự án, mã nhân viên, số giờ) pXây dựng biểu thức đại số quan hệ mô tả 1.Cho biết tổng lương phòng ban, thống kê theo tên phòng 2.Cho tên phịng ban có tổng lương 10 triệu 3.Cho biết tên nhân viên tổng số tham gia dự án nhân viên 4.Cho biết tên dự án tổng số nhân viên tham gia làm cho dự án 5.Cho biết tên phòng ban thực dự án 6.Cho biết tên dự án, địa điểm dự án dự án có số nhân viên tham gia 10 7.Cho biết tên nhân viên có số làm cho dự án nhiều 8.Cho biết tên phòng ban có tổng lương thấp 9.Cho tên phịng ban có số nhân viên Chủ động – Tích cực Học tập 5/6/18 76 Chủ động – Tích cực Học tập 5/6/18 77 Với phịng ban có lương trung bình nhân viên thuộc phịng ban >300.000, cho biết tên phịng ban số nhân viên thuộc phịng ban pThực nThực tính tốn phân nhóm theo phịng, phịng tính lương trung bình đếm số nhân viên phịng nsau lọc phịng có lương trung bỡnh > 300000 ỗ TENPHGAVERAGE(MLUONG), COUNT(*) (PHONGBANMAPHG, PHG NHANVIEN) pR(TENPHG, SONV) ỗ sLUONGTB>300000 (R1) pR1 Ch ng Tớch cực Học tập 5/6/18 78 Với phòng ban có lương trung bình nhân viên thuộc phịng ban >300.000, cho biết tên phịng ban số nhân viên nam phịng ban pThực hiện: nvới phòng thực đếm số nhân viên nam có phịng nvới phịng tính mức lương trung bình phịng chọn phịng có lương > 300000 nLiệt kê mã phòng tên phòng SONV_NAM) ỗ PHONGCOUNT(*) (sPHAI= Nam (NHANVIEN)) pR2 ỗ MAPHG, TENPHG AVERAGE(MLUONG) (PHONGBAN MAPHG, PHG NHANVIEN) pR3(MAPHG, TENPHG) ỗ sLUONGTB>300000 (R2) pR(TENPHG, SONV_NAM) ỗ R1PHONG, MAPHG R3 pR1(PHONG, Ch ng Tích cực Học tập 5/6/18 79 Với đề án, liệt kê tên đề án (TENDA) tổng số làm việc cuả tất nhân viên tham gia dự án pThực hiện: nVới dự án tính tổng thời gian ó tính tốn phân nhóm mã dự án pR(TENDA,TONGSOGIO) Chủ động – Tích cực Học ỗ SODASUM(THOIGIAN)(DEANMADA,MADA PHANCONG) 5/6/18 80 Vi mi phũng ban, liệt kê tên phòng ban (TENPHG) lương trung bình nhân viên phịng pThực hiện: ntạo danh sách nhân viên kèm phịng ban nthực tính trung bỡnh lng da vo tng phũng pR(TENPHG,LUONGTB) ỗ PHONGAVERAGE MLUONG(PHONGBANMAPHG,PHONG NHANVIEN) Chủ động – Tích cực Học tập 5/6/18 81 Lương trung bình cuả tất nữ nhân viên ÁAVERAGE MLUONG(sPHAI=Nu(NHANVIEN)) Với phịng ban có mức lương trung bình 30000 Liệt kê tên phịng ban số lượng nhân viên phịng pThực hiện: nTạo danh sách nhân viên kèm phịng ban => tính lương trung bỡnh v pR1ỗ PHGAVERAGE MLUONG(PHONGBANMAPHG,PHONG NHANVIEN) pR(TENPHG,SONV) ỗMAPHGCOUNT MANV(sLUONGTB>30000(R1MAPHG,PHONG NHANVIEN)) Chủ động – Tích cực Học tập 5/6/18 82 Bài tập nhà pCho lược đồ CSDL gồm quan hệ: pNHANVIEN(MaNV, Ten,Gt,NS,Đ/c,Luong,MaP) pPHONG(MaP,TenP,MaNVTP, Ngaynhanchuc) pDUAN(MaDA, TenDA, Diadiem, MaP) pNPT(MaNV, Ten, Gt, Quanhe) pNV-DA(MaNV,MADA,Sogio) pPHONG_DD(MaP,Diadiem) Chủ động – Tích cực Học tập 5/6/18 83 Yêu cầu Sử dụng phép toán đại số quan hệ thực yêu cầu: 1.Đưa danh sách nhân viên công ty 2.Danh sách nhân viên nữ có địa Hà nội 3.Danh sách nhân viên thuộc diện nghỉ hưu (nam tuổi >60; nữ >55) 4.Danh sách nhân viên có lương khoảng 200 đến 2000 5.Đưa thông tin trưởng phịng phịng tổ chức cán 6.Tính tổng số mà nhân viên tham gia vào dự án 7.Cho biết thơng tin phịng làm nhiều dự án p Chủ động – Tích cực Học tập 5/6/18 84 Bài tập nhà pĐọc trước phần ràng buộc toàn vẹn nKhái niệm nCác đặc trưng ràng buộc toàn vẹn nPhân loại ràng buộc toàn vẹn Chủ động – Tích cực Học tập 5/6/18 85 Vấn đề tập lớn pBuổi sau: n kiểm tra tiết nKiểm tra sơ BTL pPhát biểu tập lớn pXác định mơ hình ER tốn (tóm tắt) pXác định mơ hình CSDL quan hệ tốn (tóm tắt) nBTL – in ghi rõ họ tên nhóm Chủ động – Tích cực Học tập 5/6/18 86 ... Điểm 001 Trần Anh 23 /4/ 86 002 Ngọc Bích 13 /4/ 85 003 Xuân Mai 25/3/87 0 04 Hồng Vân 21/6/85 10 Biểu thức: s Điểm > (SV) Mã SV Họ tên Ngày sinh Điểm 002 Ngọc Bích 13 /4/ 85 0 04 Hồng Vân 21/6/85 10... PHG =4 pHONV, TENNV ( sPHG =4 (NHANVIEN) ) Chủ động – Tích cực Học tập 36 Cơ sở liệu pCho danh sách họ tên sinh viên có điểm Mã SV Họ tên Ngày sinh Điểm 001 Trần Anh 23 /4/ 86 002 Ngọc Bích 13 /4/ 85... 23 /4/ 86 002 Ngọc Bích 13 /4/ 85 003 Xuân Mai 25/3/87 0 04 Hồng Vân 21/6/85 10 Cho danh sách gồm mã SV điểm tương ứng? p Mã Sv, Điểm (SV) Chủ động – Tích cực Học tập Mã SV Điểm 001 002 003 0 04 10