Bài tập đại số quan hệ trong cơ sở dữ liệu
Full PDF PackageDownload Full PDF Package This Paper A short summary of this paper 1 Full PDF related to this paper Download PDF Pack
Lý thuyết và bài tập môn học cơ sở dữ liệu
MỜI BẠN ĐĂNG KÝ KÊNH ĐỂ ỦNG HỘ WEBSITE Questions
Chương 3: Ngôn ngữ đại số quan hệ Nội dung 1. 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 thấp ơn 50000 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 (query) Thực hiện các xử lý Đại số quan hệ (Relational Algebra) Biểu diễn câu truy vấn dưới dạng biểu thức Phép tính quan hệ (Relational Calculus) Biểu diễn kết quả SQL (Structured Query Language) 2. Đại số quan hệ ĐSQH 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ữ iệu quan hệ. Chức năng: Cho phép mô tả các phép toán rút trích dữ liệu ừ các quan hệ trong cơ sở dữ liệu quan hệ. Cho phép tối ưu quá trình rút trích bằng các hép toán có sẵn của lý thuyết tập hợp. Gồm có: Các phép toán đại số quan hệ Biểu thức đạ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) Hằng số là thể hiện của quan hệ Biểu thức Được gọi là câu truy vấn Là chuỗi các phép toán đại số quan hệ Kết quả trả về là một thể hiện của quan hệ Nhắc lại Đại số Toán tử (operator) Toán hạng (operand) Trong số học Toán tử: +, -, *, / Toán hạng - biến (variables): x, y, z Hằng (constant) Biểu thức (x+7) / (y-3) (x+y)*z and/or (x+7) / (y-3) 3. Các phép toán (1) Có năm phép toán cơ bản:
Các phép toán khác:
Là các phép toán không cơ bản nhưng hữu ích 3. Các phép toán (3)
Quan hệ kết quả của phép hội, giao, trừ có cùng ên thuộc tính với quan hệ đầu tiên. Ví dụ:
Bậc n=3DOM(TENNV) = DOM(TENTN)DOM(NS) = DOM(NS_TN) DOM(GT) = DOM(GT_TN) 3.1. Phép chọn (Selection) Trích chọn các bộ (dòng) từ quan hệ R. Các bộ ược trích chọn phải thỏa mãn điều kiện chọn p.
*Kết quả trả về là một quan hệ, có cùng danh sách huộc tính với quan hệ R. Không có kết quả trùng. *Phép chọn có tính giao hoán
Ví dụ phép chọn (1) Câu hỏi 1: Cho biết các nhân viên nam ?
Ví dụ phép chọn (2) Câu hỏi 2: Cho biết các nhân viên nam sinh sau năm 1975 ?
3.2. Phép chiếu (Project) Sử dụng để trích chọn giá trị một vài thuộc tính của quan hệ.
Kết quả: Trả về một quan hệ có k thuộc tính theo thứ tự như liệt kê. Các dòng trùng nhau chỉ lấy một. Phép chiếu không có tính giao hoán 3.3. Phép gán (Assignment) Dùng để diễn tả câu truy vấn phức tạp.
Kết quả bên phải của phép gán được gán cho biến quan hệ nằm bên trái. 3.4. Phép hội (Union)
3.5. Phép trừ (Set Difference)
Trong đó R,S là hai quan hệ khả hợp.
Các tính chất
Kết hợp
3.6. Phép giao (Set-Intersection)
Ví dụ: Sinh viên được khen thưởng cả hai đợt 1 và 2
Tóm tắt:
Ví dụ: Phép trừ, phép hội, phép giao tập hợp(1) Nhắc lại:
Ví dụ: Phép trừ, phép hội, phép giao tập hợp(2) Câu hỏi 10: Cho biết nhân viên được phân công tham gia đề án có ã số ‘TH01’ hoặc đề án có mã số ‘TH02’?
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’?
3.7. Phép tích Descartes
Phép tích thường dùng kết hợp với các phép chọn ể kết hợp các bộ có liên quan từ hai quan hệ. Ví dụ: Phép tích Descartes (1) Từ hai quan hệ SINHVIEN và MONHOC, có tất cả hững trường hợp nào “sinh viên đăng ký học ôn học”, giả sử không có bất kỳ điều kiện nào.
Ví dụ: Phép tích Descartes (2) Câu hỏi 5: Tính tích Descartes giữa 2 quan hệ nhân viên và phòng ban
3.8. Phép kết (Theta-Join)
Các bộ có giá trị NULL tại thuộc tính kết nối hông xuất hiện trong kết quả của phép kết.
Phép kết bằng, kết tự nhiên
Nếu điều kiện của equi-join là các thuộc tính iống nhau thì gọi là phép kết tự nhiên (naturaljoin). Khi đó kết quả của phép kết loại bỏ bớt 1 cột (bỏ 1 trong 2 cột giống nhau)
Phép kết ngoài (outer join) *Mở rộng phép kết để tránh mất thông tin*Thực hiện phép kết và sau đó thêm vào ết quả của phép kết các bộ của quan hệ à không phù hợp với các bộ trong uan hệ kia. *Có 3 loại:
Ví dụ: Câ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 Đặt vấn đề: trở lại câu hỏi 5, ta thấy nếu thực hiện phép tích Decartes NHANVIEN.PHONG = PHONGBAN.MAPH
Ví dụ: kết bằng, kết tự nhiên Kết bằng:
Kết tự nhiên: Nếu PHONG trong NHANVIEN được đổi thành MAPH thì a bỏ đi 1 cột MAPH thay vì phải để MAPH=MAPH, lúc ày gọi là phép kết tự nhiên (natural-join)
Ví dụ: Phép kết Câu hỏi 7: Tìm họ tên các trưởng phòng của từng phòng ?
Câu hỏi 8: Cho lược đồ CSDL như sau: TAIXE (MaTX, HoTen, NgaySinh, GioiTinh, DiaChi) >=300km, chở từ12 người trở lên trong mỗi chuyến?
Phép kết ngoài (outer join) Mở rộng phép kết để tránh mất thông tin Thực hiện phép kết và sau đó thêm vào kết uả của phép kết các bộ của quan hệ mà hông phù hợp với các bộ trong quan hệ kia. Có 3 loại:
Ví dụ: In ra danh sách tất cả tài xế và số huyến đi, mã xe mà tài xế đó lái (nếu có). 3.9. Phép chia (Division) (1)
3.9. Phép chia (Division) (2) Được dùng để lấy ra một số bộ trong quan hệ R sao cho thỏa với tất cả các bộ trong quan hệ S
Ví dụ - Phép chia tập hợp (2) Cho biết mã nhân viên tham gia tất cả các đề án Quan hệ: PHANCONG, DEAN Thuộc tính: MANV
Ví dụ - Phép chia tập hợp (3) Cho biết mã nhân viên tham gia tất cả các đề n do phòng số 4 phụ trách Quan hệ: PHANCONG, DEAN Thuộc tính: MANV Điều kiện: PHONG=4
Tóm tắt
3.10. Hàm tính toán và gom nhóm 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ị).
Ví dụ – Hàm tính toán trên 1 nhóm và tính toán trên hiều nhóm (gom nhóm – group by)
Điểm thi cao nhất, thấp nhất, trung bình của từng môn ?
4. Biểu thức đại số quan hệ (2) Biểu thức ĐSQH là một biểu thức gồm các hé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 quan hệ, do đó có thể kết hợp giữa các hép toán này để tạo nên các quan hệ mới. Có thể đặt tên cho quan hệ được tạo từ một iểu thức ĐSQH. Có thể đổi tên các thuộc tính của quan hệ được ạo từ một biểu thức ĐSQH. |