[BÀI TẬP]
Xem lại lý thuyết thì vào đây nhé:
http://www.tutorialspoint.com/dbms/relational_algebra.htm
Đề 1 : Customer & Cake [tạo bởi: sonnt5@fpt.edu.vn]
Cho các relations (~ bảng, sao ko gọi là bảng Table cho rồi! vì trong sách người ta gọi thế ) như bên dưới.
Cust(CustID, CustName,Age,Sex)
Cake(CakeID,CakeName,Price)
Consume(CustID,CakeID)
Đáp án: Chữa Đề 1 - Đại số quan Hệ
Câu hỏi 1>
Hãy tìm tất cả những khách hàng là người lớn ( từ 18 tuổi)
tập kết quả nên bao gồm : CustID, CustName, Age, Sex
Gợi ý: sử dụng phép Selection để chọn ra các tuples từ bảng khách hàng có tuổi > 17
Câu hỏi 2>
Truy vấn tên của những khách hàng nữ trưởng thành
Gợi ý: sử dụng phép Selection để chọn ra các tuples từ bảng khách hàng có tuổi > 17, có giới tính là nữ. sau đó sử dụng phép Projection để trích ra tên khách hàng.
Câu hỏi 3>
Truy vấn ra tên các loại bánh và tên khách hàng tương ứng đã ăn loại bánh đó.
kết quả nên có dạng như sau
Gợi ý: sử dụng phép Natural/Theta Join
Câu hỏi 4>
Truy vấn ra tên loại bánh chưa được ăn bởi bất kỳ khách hàng nào.
Gợi ý: sử dụng Set Difference hoặc Outer Join. ưu tiên dùng - hơn là Join vài Join rất tốn performance
Câu hỏi 5>
Tìm tên của loại bánh rẻ tiền nhất
Gợi ý: sử dụng Theta Join
Câu hỏi 6>
Tìm khách hàng già nhất
Gơi ý: tương tự câu trên
Câu hỏi 7>
Tìm khách hàng đã ăn tất cả các loại bánh trong cửa hàng.
Gợi ý: Sử dụng Cartesian Product để tìm ra tập của sự khả thi P, lấy sự khả thi P - R (với R là tập reality những điều đã xảy ra) ta thu được tập I (tập hợp của sự vô lý )
khách hàng xuất hiện trong tập I là khách hàng không nằm trong phạm vi tìm kiếm
Đề 2: Consider the Sailors-Boats-Reserves DB described in the text.
S (sid, sname, rating, age)
B (bid, bname, color)
R (sid, bid, date)
Give a Relational Algebra expression for each of the following operations:
1. Find the colors of boats reserved by Albert.
2. Find the names of sailors who have not reserved a red boat.
3. Find the sailor id’s of sailors with age over 20 who have not reserved a red boat.
4. Find the names of sailors who have reserved at least two boats.
5. Find the names of sailors who have reserved all boats called BigBoat.
6. Find the sailor id’s of sailors with the highest rating.