Vũ Chí Huy đề thi thử

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Tên : Vũ Chí Huy

Ngày sinh : 16/11/2004


Lớp : D19CNTT1B

Bài làm :
Dòng Code SQL :
-- Tạo CSDL :
CREATE DATABASE BAIKIEMTRA_NTT

USE BAIKIEMTRA_NTT

-- Tạo bảng SACH


CREATE TABLE SACH (
MS INT PRIMARY KEY,
TENSACH VARCHAR(255) NOT NULL,
SL INT NOT NULL,
NXB VARCHAR(255),
TACGIA VARCHAR(255)
);

-- Tạo bảng BANSACH


CREATE TABLE BANSACH (
MS INT,
MSB INT PRIMARY KEY,
TRANGTHAI INT CHECK (TRANGTHAI IN (0, 1)),
FOREIGN KEY (MS) REFERENCES SACH(MS)
);

-- Tạo bảng DOCGIA


CREATE TABLE DOCGIA (
MDG INT PRIMARY KEY,
HOTEN VARCHAR(255) NOT NULL,
NS DATE,
DC VARCHAR(255)
);

-- Tạo bảng MUONTRA


CREATE TABLE MUONTRA (
MDG INT,
MS INT,
MSB INT,
NGAYMUON DATE,
NGAYTRA DATE,
PRIMARY KEY (MDG, MS, MSB),
FOREIGN KEY (MDG) REFERENCES DOCGIA(MDG),
FOREIGN KEY (MS) REFERENCES SACH(MS),
FOREIGN KEY (MSB) REFERENCES BANSACH(MSB)
);

Sơ đồ quan hệ :

Phần a : Trả lời các câu hỏi sau bằng một biểu thức đại số quan hệ
Câu 1 : Cho biết danh sách tên sách và tên tác giả của cuốn sách đó.

πTENSACH,TACGIA(SACH)

Câu 2 : Cho biết danh sách mã sách, tên sách và số lượng bản sách của các cuốn
sách do nhà xuất bản KHKT xuất bản (NXB = ‘KHKT’).

πMS,TENSACH,SL(σNXB=′KHKT′(SACH))

Câu 3 : Cho biết mã số bản sách và tên các cuốn sách đang có độc giả mượn.

πMSB,TENSACH((σTRANGTHAI=0(BANSACH))⋈SACH)

Câu 4 : Cho biết tên các độc giả đang mượn cuốn sách “Ky thuat lap trinh”

πHOTEN((σTENSACH=′Kythuatlaptrinh′(SACH)⋈BANSACH⋈MUONTRA)⋈DOCGIA)
Câu 5 : Cho biết tên các độc giả dưới 18 tuổi

πHOTEN(σYEAR(NOW())−NS<18(DOCGIA))

Phần b : Trả lời các câu hỏi sau bằng một câu SQL
Câu 1 : Cho biết danh sách tên sách và tên tác giả của cuốn sách đó.

Câu 2 : Cho biết danh sách mã sách, tên sách và số lượng bản sách của các cuốn
sách do nhà xuất bản KHKT xuất bản (NXB = ‘KHKT’).

Câu 3 : Với mỗi mã sách, cho biết mã sách và mã số bản sách, tên các cuốn sách
đang có độc giả mượn.

Câu 4 : Cho biết tên các độc giả đang mượn cuốn sách “Ky thuat lap trinh”

Câu 5 : Với mỗi mã sách cho biết số lượng bản sách còn trong thư viện.
Phần c : Tối ưu hoá câu hỏi sau bằng một biểu thức đại số quan hệ:
- Lọc độc giả dưới 18 tuổi:

σYEAR(NOW())−NS<18(DOCGIA)

- Lọc sách có số lượng là 1 và mã số bản sách là A1:

σSL=1∧MSB=′A1′(SACH⋈BANSACH)

- Kết hợp các bảng để tìm độc giả dưới 18 tuổi đang mượn sách có số lượng là
1 và mã số bản sách là A1:

(σYEAR(NOW())−NS<18(DOCGIA)⋈MUONTRA)⋈(σSL=1∧MSB=′A1′
(SACH⋈σTRANGTHAI=0(BANSACH)))

- Chọn thông tin cần thiết:

πHOTEN,DC,TENSACH,NXB

You might also like