Bai Tap CSDL
Bai Tap CSDL
Bài 1:
Cho CSDL gồm các quan hệ:
Kháchhàng(MãKH, Họtên, Sốđiệnthoại, Cơquan)
Nhàchothuê(MãN, Địachỉ, Giáthuê, Tênchủnhà)
Hợpđồng(MãN, MãKH, Ngàybắtđầu, Ngàykếtthúc)
Thực hiện các yêu cầu sau:
a) Dùng các câu lệnh SQL tạo các bảng trên.
CREATE TABLE Khachhang (
MaKH VARCHAR (10) NOT NULL,
Hoten VARCHAR (30) NOT NULL,
Sodienthoai VARCHAR (10) NOT NULL,
Coquan VARCHAR (50) NOT NULL);
b) Biểu diễn các yêu cầu sau bằng SQL và đại số quan hệ (nếu có thể)
Đưa ra danh sách (Địachỉ, Tênchủnhà) của những ngôi nhà có giá thuê ít hơn
10 triệu.
SELECT Diachi, Tenchunha
FROM Khachhang
WHERE Giathue < ’10.000.000’;
Đưa ra danh sách (MãKH, Họtên, Cơquan) của những người đã từng thuê nhà
của chủ nhà có tên là "Nông Văn Dền"
SELECT MaKH, Hoten, Coquan
FROM Khachhang KH, Nhachothue NCT, Hopdong HD
WHERE KH.MaKH = HD.MaKH AND NCT.MaN = HD.MaN AND NCT.Tenchunha
= ‘Nông Văn Dền’;
1
Đưa ra danh sách các ngôi nhà chưa từng được ai thuê
SELECT * FROM Nhachothue NCT
WHERE NOT EXISTS (
SELECT MaN FROM Hopdong HD
WHERE NCT.MaN = HD.MaN);
Đưa ra giá thuê cao nhất trong số các giá thuê của các ngôi nhà đã từng ít
nhất một lần được thuê.
SELECT MAX(Giathue) “Giá thuê cao nhất”
FROM Nhachothue NCT
WHERE EXISTS (
SELECT MaN FROM Hopdong HD
WHERE NCT.MaN = HD.MaN);
Bài 2:
Cho lược đồ quan hệ sau:
KháchSạn(MãKS, TênKS, ĐịaChỉ)
Phòng(SốP, MãKS, LoạiP, Giá)
ĐặtPhòng(MãKS, MãKhách, NgàyNhận, NgàyTrả, SốP)
Khách(MãKhách, HọTên, ĐịaChỉ)
Thực hiện các yêu cầu sau:
1. Dùng ngôn ngữ định nghĩa dữ liệu SQL để tạo các bảng trên với đầy đủ khóa chính và
khóa ngoài.
CREATE TABLE Khachsan (
MaKS VARCHAR(10) NOT NULL,
TenKS VARCHAR(50) NOT NULL,
Diachi VARCHAR (100) NOT NULL,
PRIMARY KEY(MaKS));
2
NgayNhan DATETIME NOT NULL,
NgayTra DATETIME NOT NULL,
SoP VARCHAR(10) NOT NULL
PRIMARY KEY (MaKS, MaKhach, NgayNhan));
2. Biểu diễn các yêu cầu sau bằng SQL và đại số quan hệ (nếu có thể):
a. Đưa ra danh sách Giá và LoạiP của tất cả các phòng của khách sạn Melia.
SELECT Gia, LoaiP FROM Khachsan WHERE TenKS = ‘Melia’;
c. Liệt kê tất cả các phòng tại khách sạn Melia và (tên khách đang ở phòng đó
nếu phòng đó có người ở).
SELECT SoP, Hoten FROM Datphong DP, Khachsan KS, Khach K
WHERE DP.MaKS = KS.MaKS AND K.MaKhach = DP.MaKhach AND KS.TenKS =
‘Melia’;
d. Liệt kê các phòng chưa có người ở tại khách sạn Melia từ trước đến nay.
SELECT SoP FROM Phong P
WHERE NOT EXISTS (
SELECT SoP FROM Datphong DP, Khachsan KS
WHERE KS.TenKS = ‘Melia’ AND P.MaKS = KS.MaKS = DP.MaKS AND
P.SoP = DP.SoP);
e. Hãy cho biết tổng số phòng của mỗi khách sạn tại London.
SELECT COUNT(*) ‘Số phòng’
FROM Phong P, Khachsan KS
WHERE P.MaKS = KS.MaKS AND KS.Diachi = ‘London’
GROUP BY P.MaKS;
f. Tăng đơn giá của tất cả các phòng đơn lên thêm 5%.
UPDATE Phong
3
SET Gia = 1.05*Gia
WHERE LoaiP = ‘Phòng đơn’;
Bài 3:
Cho tập phụ thuộc hàm F = {abc, bd, dce, cegh, ga}
Hãy chứng minh: abe, abg
Bài 4:
Cho lược đồ quan hệ r và tập phụ thuộc hàm F = {AD, ABDE, CEG, EH} xác định trên
r. Tính ABF+
Bài 5:
Cho lược đồ quan hệ r và tập các phụ thuộc hàm F = {ABC, BD, CDE, CEGH, GA} xác định
trên r. Tính ABF+. Phụ thuộc hàm f: BGC xác định trên r có thuộc F+ hay không?
Bài 6:
Cho lược đồ quan hệ r=ABCDE và hai tập phụ thuộc hàm F={ABC, AD, CDE} và
G={ABCE, AABD, CDE}
Chứng minh F G
Bài 7:
Cho lược đồ quan hệ r=ABCDEF và tập các phụ thuộc hàm F = {ABC, CB, ABDE, FA}
Hỏi phép tách r thành {r1, r2, r3, r4} có bảo toàn thông tin không với r1=BC, r2=AC,
r3=ABDE, r4=ABDF
Bài 8:
Cho lược đồ quan hệ r=ABCDE và tập các phụ thuộc hàm F = {ABC, CE, CD, ABE}. Xét
phép tách ra thành các lược đồ con sau r1=ABC, r2=AD, r3=DE. Phép tách này có bảo toàn
thông tin hay không?
Bài 9:
Cho lược đồ quan hệ r(ABCDEGH) và tập phụ thuộc hàm trên r: F = {ABCD, ABE, BCDC,
CED, CEH, DCG, CHG, ADH}
Tìm một phủ tối thiểu của F
Tìm một khóa của r dựa vào phủ tối thiểu
Tìm một phân rã của r có dạng chuẩn 3, bảo toàn thông tin và phụ thuộc hàm.
Bài 10:
4
Cho lược đồ quan hệ r(student, name, birthday, age, advisor, department, semester, course,
grade) và tập các phụ thuộc hàm
F = { student→name, birthday, age, advisor, department; birthday → age; advisor →
department }
Tìm một khóa của r dựa vào F
Tìm một phân rã của r bảo toàn thông tin đối với F
Bài 11:
Tìm phủ tối thiểu của tập phụ thuộc hàm F = {A→B, ABCD→E, EF→G, ACDF→EG}
Bài 12:
Cho sơ đồ S(U), U = {A, B, C, D, E, F, G, H}, tập phụ thuộc hàm F={AB ®CDE, CD®E, ABC®FG}
Hãy chuẩn hóa S về dạng chuẩn 3 với phép tách bảo toàn thông tin và phụ thuộc hàm.