Người mượn (Mathe, hoten, ngaysinh, lop):
Sách (Matach, tensach, sotrang, tacgia):
Mượn sách (Mathe, Masach, ngaymuon, ngaytra).
1. Xác định khoi chính và khoá ngoài của mỗi bàng.
2. Xác định kiểu dữ liệu của từng trường trong mỗi bàng,
3. Việt câu lệnh SQL thực hiện các yêu cầu sau:
Quảng cáo
1 câu trả lời 540
1. Xác định khóa chính và khóa ngoài của mỗi bảng:
Bảng Người mượn (Mượn sách):
Khóa chính (Primary Key):Mathe (Mã thẻ) - Vì mỗi người mượn có mã thẻ duy nhất, nên đây là khóa chính của bảng.
Khóa ngoài (Foreign Key):Trong bảng này, không có khóa ngoài vì thông tin chỉ liên quan đến các cá nhân mượn sách, không cần liên kết với các bảng khác.
Bảng Sách:
Khóa chính (Primary Key):Matach (Mã sách) - Mỗi cuốn sách có mã duy nhất, đây là khóa chính của bảng Sách.
Khóa ngoài (Foreign Key):Không có khóa ngoài trong bảng Sách vì bảng này không cần liên kết với bảng khác.
Bảng Mượn sách:
Khóa chính (Primary Key):Chúng ta có thể sử dụng kết hợp Mathe (Mã thẻ) và Masach (Mã sách) làm khóa chính vì mỗi người mượn chỉ có thể mượn một cuốn sách tại một thời điểm nhất định. Tuy nhiên, nếu một người mượn nhiều cuốn sách, thì cần đảm bảo kết hợp của Mathe và Masach là duy nhất cho mỗi giao dịch mượn sách.
Khóa ngoài (Foreign Key):Mathe (Mã thẻ) liên kết với bảng Người mượn (bảng này chứa thông tin về người mượn sách).
Masach (Mã sách) liên kết với bảng Sách (bảng này chứa thông tin về sách).
2. Xác định kiểu dữ liệu của từng trường trong mỗi bảng:
Bảng Người mượn:
Tên trường
Kiểu dữ liệu
Giải thích
Mathe
INT (hoặc VARCHAR)
Mã thẻ người mượn (Duy nhất)
Hoten
VARCHAR(100)
Họ tên người mượn
Ngaysinh
DATE
Ngày sinh của người mượn
Lop
VARCHAR(50)
Lớp của người mượn
Bảng Sách:
Tên trường
Kiểu dữ liệu
Giải thích
Matach
INT (hoặc VARCHAR)
Mã sách (Duy nhất)
Tensach
VARCHAR(255)
Tên sách
Sotrang
INT
Số trang sách
Tacgia
VARCHAR(100)
Tên tác giả
Bảng Mượn sách:
Tên trường
Kiểu dữ liệu
Giải thích
Mathe
INT (hoặc VARCHAR)
Mã thẻ người mượn (Khóa ngoài)
Masach
INT (hoặc VARCHAR)
Mã sách (Khóa ngoài)
Ngaymuon
DATE
Ngày mượn
Ngaytra
DATE
Ngày trả
3. Viết câu lệnh SQL thực hiện các yêu cầu:
a) Tạo bảng Người mượn:
sql
Sao chép mã
CREATE TABLE NguoiMuon (
Mathe INT PRIMARY KEY,
Hoten VARCHAR(100),
Ngaysinh DATE,
Lop VARCHAR(50)
);
b) Tạo bảng Sách:
sql
Sao chép mã
CREATE TABLE Sach (
Matach INT PRIMARY KEY,
Tensach VARCHAR(255),
Sotrang INT,
Tacgia VARCHAR(100)
);
c) Tạo bảng Mượn sách:
sql
Sao chép mã
CREATE TABLE MuonSach (
Mathe INT,
Masach INT,
Ngaymuon DATE,
Ngaytra DATE,
PRIMARY KEY (Mathe, Masach),
FOREIGN KEY (Mathe) REFERENCES NguoiMuon(Mathe),
FOREIGN KEY (Masach) REFERENCES Sach(Masach)
);
d) Truy vấn để lấy danh sách sách mà một người mượn:
Giả sử chúng ta muốn lấy danh sách sách mà một người mượn, bao gồm tên sách và ngày mượn, dựa vào mã thẻ người mượn (Mathe):
sql
Sao chép mã
SELECT S.Tensach, M.Ngaymuon
FROM MuonSach M
JOIN Sach S ON M.Masach = S.Masach
WHERE M.Mathe = 123; -- Thay "123" bằng mã thẻ thực tế
e) Truy vấn để lấy thông tin các người mượn sách chưa trả:
Giả sử bạn muốn biết các người mượn sách mà chưa trả, tức là ngày trả là NULL:
sql
Sao chép mã
SELECT N.Hoten, S.Tensach, M.Ngaymuon
FROM MuonSach M
JOIN NguoiMuon N ON M.Mathe = N.Mathe
JOIN Sach S ON M.Masach = S.Masach
WHERE M.Ngaytra IS NULL;
Trên đây là phần giải thích chi tiết về các yêu cầu và câu lệnh SQL liên quan đến việc quản lý thông tin về việc mượn sách.
Quảng cáo
Bạn cần hỏi gì?
Câu hỏi hot cùng chủ đề
-
Đã trả lời bởi chuyên gia
86027
