Ôn tập cơ sở dữ liệu

Là một mô hình toán học dựa trên lý thuyết tập hợp

 Đối tượng xử lý là các quan hệ trong cơ sở dữ liệu quan hệ

 Cho phép sử dụng các phép toán rút trích dữ liệu từ các quan hệ

 Tối ưu hóa quá trình rút trích dữ liệu

 Gồm có:

 Các phép toán đại số quan hệ

 Biểu thức đại số quan hệ

 

ppt53 trang | Chia sẻ: Mr Hưng | Lượt xem: 1245 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Ôn tập cơ sở dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Cơ sở dữ liệuCÔNG NGHỆ THÔNG TINGiảng viên: ThS. Trần Sơn HảiEmail: transonhai@uit.edu.vnHeavily reference to Database Recap Slides: Nguyen Kim PhungÔN TẬPNội dung Đại số quan hệ Ngôn ngữ truy vấn SQLRàng buộc toàn vẹn Đại số quan hệ1. ĐẠI SỐ QUAN HỆ Là một mô hình toán học dựa trên lý thuyết tập hợp Đối tượng xử lý là các quan hệ trong cơ sở dữ liệu quan hệ Cho phép sử dụng các phép toán rút trích dữ liệu từ các quan hệ Tối ưu hóa quá trình rút trích dữ liệu Gồm có: Các phép toán đại số quan hệ Biểu thức đại số quan hệ1. ĐSQH - Các phép toán ĐSQH, biểu thức ĐSQHCó năm phép toán cơ bản:Chọn ( ) Chọn ra các dòng (bộ) trong quan hệ thỏa điều kiện chọn.Chiếu ( ) Chọn ra một số cột.Tích Descartes ( ) Kết hai quan hệ lại với nhau.Trừ ( ) Chứa các bộ của quan hệ 1 nhưng không nằm trong quan hệ 2.Hội ( ) Chứa các bộ của quan hệ 1 và các bộ của quan hệ 2.Các phép toán khác:Giao (  ), kết ( ), chia ( / hay ), đổi tên ( ): là các phép toán không cơ bản (được suy từ 5 phép toán trên, trừ phép đổi tên).Biểu thức đại số quan hệ:Là một biểu thức gồm các phép toán ĐSQH. Biểu thức ĐSQH được xem như một quan hệ (không có tên)Kết quả thực hiện các phép toán trên cũng là các quan hệ, do đó có thể kết hợp giữa các phép toán này để tạo nên các quan hệ mới! 1. ĐSQH - Phép chọn Biểu diễn cách 1 :(Quan hệ)(Điều kiện 1  điều kiện 2  .)Cú pháp : Ngoài ra, có thể biểu diễn cách 2:(NhanVien)Câu hỏi 1:Cú pháp :(Quan hệ: điều kiện chọn)Câu hỏi 1:Phai=‘Nam’ (NhanVien: Phai=‘Nam’)NHANVIENMANVHOTENNTNSPHAINV001Nguyễn Tấn Đạt10/12/1970NamNV002Trần Đông Anh01/08/1981NữNV003Lý Phước Mẫn02/04/1969NamNHANVIENMANVHOTENNTNSPHAINV001Nguyễn Tấn Đạt10/12/1970NamNV003Lý Phước Mẫn02/04/1969NamKết quả phép chọnCâu hỏi 1: Cho biết các nhân viên nam ?1. ĐSQH - Phép chọn Biểu diễn cách 1 : Biểu diễn cách 2:(NhanVien)(Phai=‘Nam’  Year(NTNS)>1975)(NhanVien: Phai=‘Nam’  Year(NTNS)>1975)NHANVIENMANVHOTENNTNSPHAINV001Nguyễn Tấn Đạt10/12/1970NamNV002Trần Đông Anh01/08/1981NữNV003Lý Phước Mẫn02/04/1969NamNHANVIENMANVHOTENNTNSPHAIKết quả phép chọnCâu hỏi 2: Cho biết các nhân viên nam sinh sau năm 1975 ?(không có bộ nào thỏa)Câu hỏi 2:Câu hỏi 2:1. ĐSQH - Phép chiếu Biểu diễn cách 1 :(Quan hệ)Cột1, cột2, cột 3, .Cú pháp : Ngoài ra, có thể biểu diễn cách 2:Câu hỏi 3 :Cú pháp :Quan hệ [cột1,cột2,cột3,]Câu hỏi 3:NHANVIENMANVHOTENNTNSPHAINV001Nguyễn Tấn Đạt10/12/1970NamNV002Trần Đông Anh01/08/1981NữNV003Lý Phước Mẫn02/04/1969NamKết quả phép chiếuCâu hỏi 3: Cho biết họ tên nhân viên và giới tính ?NHANVIENHOTENPHAINguyễn Tấn ĐạtNamTrần Đông AnhNữLý Phước MẫnNam1. ĐSQH - Phép chiếu Biểu diễn cách 1: Biểu diễn cách 2:Câu hỏi 4:NHANVIENMANVHOTENNTNSPHAINV001Nguyễn Tấn Đạt10/12/1970NamNV002Trần Đông Anh01/08/1981NữNV003Lý Phước Mẫn02/04/1969NamKết quả phép chiếuCâu hỏi 4: Cho biết họ tên và ngày tháng năm sinh của các nhân viên nam?Bước 1:Kết quả phép chọn (còn gọi là biểu thức ĐSQH) được đổi tên thành quan hệ QBước 2:NHANVIENHOTENNTNSNguyễn Tấn Đạt10/12/1970Lý Phước Mẫn02/04/19691. ĐSQH - Phép tích Descartes Quan-hệ-1Cú pháp :Câu hỏi 5: Tính tích Descartes giữa 2 quan hệ nhân viên và phòng banQuan-hệ-2PHONGBANMAPHTENPHTRPHNCNghiên cứuNV001DHĐiều hànhNV002NHANVIENPHONGBANQuan-hệ-kCâu hỏi 5 được viết lại:NamNữNam02/04/196901/08/198110/12/1970NTNSHOTENMANVNguyễn Tấn ÐạtNV001Lý Phước MẫnNV003Trần Ðông AnhNV002NHANVIENPHAIPHONGDHNCNCNHANVIEN X PHONGBANMANVHOTENNTNSPHAIPHONGMAPHTENPHTRPHNV001Nguyễn Tấn Đạt 10/12/1970NamNCNCNghiên cứuNV001NV001Nguyễn Tấn Đạt 10/12/1970NamNCDHĐiều hànhNV002NV002Trần Đông Anh01/08/1981NữDHNCNghiên cứuNV001NV002Trần Đông Anh01/08/1981NữDHDHĐiều hànhNV002NV003Lý Phước Mẫn02/04/1969NamNCNCNghiên cứuNV001NV003Lý Phước Mẫn02/04/1969NamNCDHĐiều hànhNV0021. ĐSQH - Phép kếtCâu hỏi 6: Cho biết mã nhân viên, họ tên và tên phòng mà n/v trực thuộc.((NHANVIEN X PHONGBAN) : NHANVIEN.PHONG=PHONGBAN.MAPH)MANVHOTENNTNSPHAIPHONGMAPHTENPHTRPHNV001Nguyễn Tấn Đạt 10/12/1970NamNCNCNghiên cứuNV001NV001Nguyễn Tấn Đạt 10/12/1970NamNCDHĐiều hànhNV002NV002Trần Đông Anh01/08/1981NữDHNCNghiên cứuNV001NV002Trần Đông Anh01/08/1981NữDHDHĐiều hànhNV002NV003Lý Phước Mẫn02/04/1969NamNCNCNghiên cứuNV001NV003Lý Phước Mẫn02/04/1969NamNCDHĐiều hànhNV002Đặt vấn đề: trở lại ví dụ 5, ta thấy nếu thực hiện phép tích Decartes NHANVIEN X PHONGBAN thì mỗi nhân viên đều thuộc 2 phòng (vì có tổng cộng là 2 phòng ban, nếu có 3, 4,phòng ban thì số dòng cho một nhân viên trong NHANVIEN X PHONGBAN sẽ là 3, 4,..dòng. - Thực tế mỗi nhân viên chỉ thuộc duy nhất 1 phòng ban do ràng buộc khóa ngoại (PHONG), do đó để lấy được giá trị MAPH đúng của mỗi nhân viên  phải có điều kiện chọn: NHANVIEN.PHONG = PHONGBAN.MAPHbiểu diễn phép chọn theo cách 2(Theta-Join)1. ĐSQH - Phép kết Cách 1:(NHANVIENPHONGBAN): (NHANVIEN.PHONG=PHONGBAN.MAPH)(NHANVIEN X PHONGBAN)NHANVIEN.PHONG=PHONGBAN.MAPH Cách 2:Quan-hệ-1* Phép kết được định nghĩa là phép tích Decartes và có điều kiện chọn liên quan đến các thuộc tính giữa 2 quan hệ, cú pháp :Quan-hệ-2(Phép kết với đk tổng quát được gọi là -kết,  có thể là , =, >, =, =300km, chở từ12 người trở lên trong mỗi chuyến?Kết quả:1. ĐSQH - Phép kếtCách 1:Cách 2:1. ĐSQH - Phép kết ngoài (outer join)Mở rộng phép kết để tránh mất thông tinThực hiện phép kết và sau đó thêm vào kết quả của phép kết các bộ của quan hệ mà không phù hợp với các bộ trong quan hệ kia.Có 3 loại: Left outer join R SRight outer join R SFull outer join R SVí dụ: In ra danh sách tất cả tài xế và số chuyến đi, mã xe mà tài xế đó lái (nếu có)1. ĐSQH – left outer joinTAIXE CHUYENDImatxTAIXEMaTXHotenTX01Huynh Trong TaoTX02Nguyen SangTX03Le Phuoc LongTX04Nguyen Anh TuanCHUYENDISoCDMaTXMaXeCD01TX018659CD02TX027715CD03TX018659CD04TX034573MatxHotenSoCDMatxMaxeTX01Huynh Trong TaoCD01TX018659TX01Huynh Trong TaoCD03TX018659TX02Nguyen SangCD02TX027715TX03Le Phuoc LongCD04TX034573TX04Nguyen Anh TuanNullNullNull{Bộ của quan hệ TAIXE được thêm Vào dù không phù hợp với kết quả của quan hệ CHUYENDITương tự right outer join và full outer join (lấy cả 2)(lấy hết tất cả bộ của quan hệ bên trái)1. ĐSQH - Phép trừ, phép hội, phép giao tập hợpTất cả các phép toán này đều cần hai quan hệ đầu vào tương thích khả hợp, nghĩa là chúng phải thoả: 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.RHONVTENNVVuongQuyenNguyenTungSHONVTENNVLeNhanVuongQuyenBuiVuPhép trừ: R SPhép hội: R SPhép giao: R SNHANVIEN (MaNV, HoTen, Phai, Luong,NTNS, Ma_NQL, MaPH)PHANCONG (MaNV, MaDA, ThoiGian)1. ĐSQH - Phép trừ, phép hội, phép giao tập hợpRHONVTENNVVuongQuyenNguyenTungSHONVTENNVLeNhanVuongQuyenBuiVuKết quả phép trừ Q ={Nguyen Tung}Kết quả phép hội Q ={Vuong Quyen, Nguyen Tung, Le Nhan, Bui Vu}Kết quả phép giao Q ={Vuong Quyen}Phép trừ: Q = R S= { t/ tR  tS}Phép hội: Q = R S= { t/ tR  tS}Phép giao: Q = R S= R – (R – S) = { t/tR  tS}RSLưu ý : Phép hội và phép giao có tính chất giao hoánCâu hỏi 9: Cho biết nhân viên không làm việc ? (Phép trừ)1. ĐSQH - Phép trừ, phép hội, phép giao tập hợpCâu hỏi 10: Cho biết nhân viên được phân công tham gia đề án có mã số ‘TH01’ hoặc đề án có mã số ‘TH02’? (Phép hội)((PHANCONG: MADA=‘TH01’)[MANV]) ((PHANCONG : MADA=‘TH02’)[MANV])(NHANVIEN[MANV]) – (PHANCONG[MANV])Cách 2:MANV(NHANVIEN) – MANV(PHANCONG)Cách 1:Câu hỏi 11: Cho biết nhân viên được phân công tham gia cả 2 đề án ‘TH01’ và đề án ‘TH02’? (Phép giao)((PHANCONG : MADA=‘TH01’)[MANV]) ((PHANCONG : MADA=‘TH02’)[MANV])1. ĐSQH - Phép chia tập hợp ( / hay )Phép chia (R  S) cần hai quan hệ đầu vào R, S thoả: Tập thuộc tính của R là tập cha của tập thuộc tính S. Ví dụ: R có m thuộc tính, S có n thuộc tính : n  mĐịnh nghĩa: R và S là hai quan hệ, R+ và S+ lần lượt là tập thuộc tính của R và S. Điều kiện S+ là tập con không bằng của R+. Q là kết quả phép chia giữa R và S, Q+ = R+ - S+1. ĐSQH - Phép chia tập hợp (/ hay  )Q= PHANCONG/DEANR=PHANCONGS=DEANKết quả QCho biết nhân viên làm việc cho tất cả các đề án ? (được phân công tham gia tất cả các đề án)Hoặc viết Q= PHANCONG DEAN1. ĐSQH - Phép chia tập hợp (/ hay  )MahvHV01HV03R=KETQUATHIMahvMamhDiemHV01CSDL7.0HV02CSDL8.5HV01CTRR8.5HV03CTRR9.0HV01THDC7.0HV02THDC5.0HV03THDC7.5HV03CSDL6.0S=MONHOCMamhTenmhCSDLCo so du lieuCTRRCau truc roi racTHDCTin hoc dai cuongKETQUATHI[Mahv,Mamh] /MONHOC[Mamh]Q=KETQUA/MONHOC* Viết cách khác1. ĐSQH – Hàm tính toán trên 1 nhóm và tính toán trên nhiều nhóm (gom nhóm – group by)Các hàm tính toán gồm 5 hàm: avg(giá-trị), min(giá-trị), max(giá-trị), sum(giá-trị), count(giá-trị).Phép toán gom nhóm: (Group by)E là biểu thức đại số quan hệGi là thuộc tính gom nhóm (nếu không có Gi nào=> không chia nhóm (1 nhóm), ngược lại (nhiều nhóm) => hàm F sẽ tính toán trên từng nhóm nhỏ được chia bởi tập thuộc tính này)Fi là hàm tính toánAi là tên thuộc tính1. ĐSQH – Hàm tính toán trên 1 nhóm và tính toán trên nhiều nhóm (gom nhóm – group by)Điểm thi cao nhất, thấp nhất, trung bình của môn CSDL ?Điểm thi cao nhất, thấp nhất, trung bình của từng môn ? Ngôn ngữ truy vấn SQL 2. NGÔN NGỮ TRUY VẤN SQL Là ngôn ngữ chuẩn, có cấu trúc dùng để truy vấn và thao tác trên CSDL quan hệ. Câu truy vấn tổng quát: SELECT [DISTINCT] danh_sách_cột | hàmFROM danh sách các quan hệ (hay bảng, table)[WHERE điều_kiện][GROUP BY danh_sách_cột_gom_nhóm][HAVING điều_kiện_trên_nhóm][ORDER BY cột1 ASC | DESC, cột2 ASC | DESC, ] 2. SQLToán tử so sánh: =,>,=,BETWEEN IS NULL, IS NOT NULL LIKE (%,_) IN, NOT IN EXISTS, NOT EXISTSSOME, ALL, ANYToán tử logic: AND, OR. Các phép toán: +, - ,* , /Các hàm xử lý ngày (DAY( )), tháng (MONTH( )), năm (YEAR( )) 2. SQL5 hàm: COUNT( ), SUM( ), MAX( ), MIN( ), AVG( ) Phân loại câu SELECT: SELECT đơn giản, SELECT có mệnh đề ORDER BY, SELECT lồng (câu SELECT lồng câu SELECT khác), SELECT gom nhóm (GROUP BY), SELECT gom nhóm (GROUP BY)có điều kiện HAVING.NHANVIEN (MaNV, HoTen, Phai, Luong,NTNS, Ma_NQL, MaPH)PHONGBAN (MaPH, TenPH, TRPH)DEAN (MaDA, TenDA, Phong, NamThucHien)PHANCONG (MaNV, MaDA, ThoiGian)Bài tập: Cho lược đồ CSDL “quản lý đề án công ty” như sauMANVHOTENNTNSPHAIMA_NQLMaPHLUONG001Vuong Ngoc Quyen22/10/1957Nu QL3.000.000002Nguyen Thanh Tung09/01/1955Nam001NC2.500.000003Le Thi Nhan18/12/1960Nu001DH2.500.000004Dinh Ba Tien09/01/1968Nam002NC2.200.000005Bui Thuy Vu19/07/1972Nam003DH2.200.000006Nguyen Manh Hung15/09/1973Nam002NC2.000.000007Tran Thanh Tam31/07/1975Nu002NC2.200.000008Tran Hong Minh04/07/1976Nu004NC1.800.000MADATENDAPHONGNamThucHienTH001Tin hoc hoa 1NC2002TH002Tin hoc hoa 2NC2003DT001Dao tao 1DH2004DT002Dao tao 2DH2004MAPHTENPHTRPHQLQuan Ly001DHDieu Hanh003NCNghien Cuu002MANVMADATHOIGIAN001TH00130,0001TH00212,5002TH00110,0002TH00210,0002DT00110,0002DT00210,0003TH00137,5004DT00122,5004DT00210,0006DT00130,5007TH00120,0007TH00210,0008DT00212,5PHANCONGNHANVIENDEANPHONGBAN 2. SQL – BETWEEN, ORDER BY, IS NULL Câu hỏi 13: Sử dụng =,>,>=, Danh sách các nhân viên sinh trong khoảng từ năm 1978 đến 1983? Select MaNV, HoTen From NhanVien where Year(NTNS)>=1978 AND Year(NTNS)= g.NGAYGHThêmXóaSửaDATHANG--+ (ngaydh)GIAOHANG+(ngaygh)-+ (ngaygh)3. RBTV – BỐI CẢNH NHIỀU QUAN HỆ3.6. Ràng buộc toàn vẹn liên bộ, liên quan hệRBTV liên bộ, liên quan hệ là điều kiện giữa các bộ trên nhiều quan hệ khác nhau.Xét các lược đồ quan hệPHONGBAN (MAPH, TENPH, TRPH, NGNC)DIADIEM_PHG (MAPH, DIADIEM) Câu hỏi 45: Mỗi phòng ban phải có ít nhất một địa điểm phòng -3. RBTV – BỐI CẢNH NHIỀU QUAN HỆ3.7. Ràng buộc toàn vẹn do thuộc tính tổng hợpCâu hỏi 46: Tổng trị giá của 1 phiếu xuất phải bằng tổng trị giá các chi tiết xuất.

Các file đính kèm theo tài liệu này:

  • ppton_thi_csdl_no_answer_9639.ppt