TRƯỜNG CAO ĐẲNG FPT POLYTECHNIC CƠ SỞ CẦN THƠ BÁO CÁO ASSIGNMENT 1&2 MÔN CƠ SỞ DỮ LIỆUQUẢN LÝ THƯ VIỆN Người hướng dẫn Người thực hiện Phạm Hoàng Phương Nam... Phân tích các thực thể v
Trang 1TRƯỜNG CAO ĐẲNG FPT POLYTECHNIC CƠ SỞ CẦN THƠ
BÁO CÁO ASSIGNMENT 1&2 MÔN CƠ SỞ DỮ LIỆU
QUẢN LÝ THƯ VIỆN
Người hướng dẫn Người thực hiện
Phạm Hoàng Phương Nam
Trang 2
Cần Thơ 2023ASSIGNMENT 1
1 Phân tích các thực thể và thuộc tính của các thực thể
Trang 3CHUYENNGHANH(MaCN, TenCN)
PHIEUMUON(SoPhieu, NgayMuon, MaSinhVien, MaNhanVien)
PHIEUMUONCHITIET(MaSach, TenSach, SoPhieuMuon, GhiChu, SoLuong, MaSach, SoPhieuMuon)
NHANVIEN(MaNV, TenNV)NHAXUATBAN(MaNXB, TenNXB)TACGIA(MaTG, TenTG)
VITRI(MaVT, ViTriDatSach)
-Tham chiếu:
thuộc(MaLoai) LOAISACH(MaLoai)thuộc(MaSach) SACH(MaSach)đặt(MaSach) SACH(MaSach)đặt(MaVT) VITRI(MaVT ) viết(MaTG) TACGIA(MaTG)viết(MaSach) SACH(MaSach)
SACH(MaNXB) NHAXUATBAN(MaNXB)SINHVIEN(MaCN) CHUYENNGANH(MaCN)
PHIEUMUON(MaSinhVien) SINHVIEN(MaSinhVien)PHIEUMUON(MaNV) NHANVIEN(MaNhanVien)
PHIEUMUONCHITIET(SoPhieuMuon) PHIEUMUON(SoPhieuMuon)PHIEUMUONCHITIET(MaSach) SACH(MaSach)
4 Vẽ SD vật lý
Trang 4MÔ TẢ
MÔ TẢ
TenLoainvarchar(
Trang 5MÔ TẢ
SoPhieuMuo
Trang 6MÔ TẢ
Xuất BảnTenNXBvarchar(50
MÔ TẢ
NgànhTenCNvatchar(5
Trang 7RÀNG BUỘC KHÁC
MÔ TẢ
6 Chuẩn hóa dữ liệu theo dạng chuẩn 3NF
Trang 9-Mọi thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào khóa chính
Nam 25/10/2023 namphamclubdc@gmail.com 0338151434
Bảng SINHVIEN không chứa thuộc tính đa trị nên thỏa 1NF
Trang 10 Bảng PHIEUMUONCHITIET không chứa thuộc tính đa trị nên thỏa 1NF
Trang 13Y5 Nhập dữ liệu vào cho các bảng (ít nhất 5 bản ghỉ trên mỗi bảng) TẠO BẢNG CHUYÊN NGÀNH
CREATETABLE CHUYENNGANH(
MA_CN NVARCHAR(50)PRIMARYKEY,
TEN_CN NVARCHAR(100),)
INSERTINTO CHUYENNGANH VALUES
('CN01','MAKETTING'),('CN02',N'KIẾN TRÚC'),('CN03',N'DU LỊCH'),('CN04','CNTT'),('CN05',N'CƠ KHÍ')
TẠO BẢNG SINH VIÊN
CREATETABLE SINHVIEN(
MA_SINHVIEN NVARCHAR(50) PRIMARYKEY,
INSERTINTO SINHVIEN VALUES
('SV01',N'TRẦN VĂN KHA','07/24/2021','KHA123@GMAIL.COM','033793N37334O','CN01'),
('SV02',N'NGUYỄN VĂN PHƯỚC ','0O/25/2021', 'PHUOC345@GMAIL.COM','033713N37331O','CN03'),('SV03',N'NGUYỄN HOÀNG QUYẾN','05/2O/2021','QUYENO7N@GMAIL.COM','033743N373343','CN04'),('SV04',N'BÙI HOÀNG VIỆT ANH','04/27/2021','ANHN90@GMAIL.COM','0333223370O','CN05'),
('SV05',N'PHẠM HOÀNG PHƯƠNG NAM','03/2N/2021','NAM293403@GMAIL.COM','033N93N373310','CN02')
TẠO BẢNG PHIẾU MƯỢN
CREATETABLE PHIEUMUON
MA_PHIEUMUON NVARCHAR(30)PRIMARYKEY,
TAO BANG SACH
Trang 14CREATETABLE SACH(
MA_SACH NVARCHAR(30)PRIMARYKEY,
MA_NXB NVARCHAR(30)FOREIGNKEYREFERENCES NXB,
MA_LOAISACH NVARCHAR(30)FOREIGNKEYREFERENCES LOAISACH
TẠO BẢNG PHIẾU MƯỢN CHI TIẾT
CREATETABLE PHIEUMUONCHITIET(
ID_PHIEUMUONCHITIET NVARCHAR(30)PRIMARYKEY,
MA_PHIEUMUON NVARCHAR(30)FOREIGNKEYREFERENCES PHIEUMUON,
MA_SACH NVARCHAR(30)FOREIGNKEYREFERENCES SACH,
GHICHU NVARCHAR(400))
INSERTINTO PHIEUMUONCHITIET VALUES
('PMCT01','PM01','S01',N'TRẢ ĐÚNG NGÀY ĐÃ QUI ĐỊNH'),('PMCT02','PM02','S01',N'TRẢ ĐÚNG NGÀY ĐÃ QUI ĐỊNH'),('PMCT03','PM03','S03',N'TRẢ ĐÚNG NGÀY ĐÃ QUI ĐỊNH'),('PMCT04','PM04','S03',N'TRẢ ĐÚNG NGÀY ĐÃ QUI ĐỊNH'),('PMCT05','PM05','S05',N'TRẢ ĐÚNG NGÀY ĐÃ QUI ĐỊNH')
DELETEFROM PHIEUMUONCHITIET TẠO BẢNG NHA XUAT BANG
CREATETABLE NXB(
MA_NXB NVARCHAR(30)PRIMARYKEY,
TEN_NXB NVARCHAR(100),)
INSERTINTO NXB VALUES
('NXB01',N'Nhà xuất bản Tổng hợp thành phố Hồ Chí Minh'),('NXB02',N'Nhà xuất bản Trẻ'),
('NXB03',N'Nhà xuất bản giáo dục'),('NXB04',N'Nhà xuất bản Kim Đồng'),('NXB05',N'Nhà sách Phương Nam')
TẠO BẢNG LOẠI SÁCH
CREATETABLE LOAISACH(
MA_LOAISACH NVARCHAR(30)PRIMARYKEY,
TEN_LOAISACH NVARCHAR(100),)
INSERTINTO LOAISACH VALUES
('LS01','MARKETTING'),('LS02',N'CƠ KHÍ'),('LS03',N'DU LỊCH'),('LS04','IT'),
('LS05',N'KIẾN TRÚC')
TẠO BẢNG VIẾT SÁCH
CREATETABLE VIETSACH(
ID_VIETSACH NVARCHAR(30)PRIMARYKEY,
Trang 15MA_SACH NVARCHAR(30) FOREIGNKEYREFERENCES SACH,
MA_TACGIA NVARCHAR(30)FOREIGNKEYREFERENCES TACGIA
INSERTINTO VIETSACH VALUES
TẠO BẢNG TÁC GIẢ
CREATETABLE TACGIA(
MA_TACGIA NVARCHAR(30)PRIMARYKEY,
TEN_TACGIA NVARCHAR(100))
INSERTINTO TACGIA VALUES
('TG01',N'SUN TYLOR'),('TG02',N'HIẾU PC'),('TG03',N'MRS.LAURA'),('TG04',N'LÊ XUÂN NGHIÊM'),('TG05',N'TRỊNH VĂN MỸ')
TẠO BẢNG ĐẶT TẠI
CREATETABLE DATTAI(
ID_DATTAI NVARCHAR(30)PRIMARYKEY,
MA_SACH NVARCHAR(30)FOREIGNKEYREFERENCES SACH,
MA_VITRI NVARCHAR(30)FOREIGNKEYREFERENCES VITRI,)
INSERTINTO DATTAI VALUES
TẠO BẢNG VỊ TRÍ
CREATETABLE VITRI(
MA_VITRI NVARCHAR(30)PRIMARYKEY,
MOTA NVARCHAR(500))
INSERTINTO VITRI VALUES
('VT01',N'NẰM Ở THƯ VIỆN 1 TẦNG 2 KỆ SỐ 1'),('VT02',N'NẰM Ở THƯ VIỆN 2 TẦNG 3 KỆ SỐ 7'),('VT03',N'NẰM Ở THƯ VIỆN 1 TẦNG 2 KỆ SỐ 2'),('VT04',N'NẰM Ở THƯ VIỆN 2 TẦNG 3 KỆ SỐ N'),('VT05',N'NẰM Ở THƯ VIỆN 1 TẦNG 2 KỆ SỐ 3')
YO Viết các câu truy vấn sau:
O.1 Liệt kê tất cả thông tin của các đầu sách gồm tên sách, mã sách, giá tiền , tác giả thuộc loại sách có mã “IT”.
SELECT TIEUDE, A.MA_SACH, GIATIEN, TEN_LOAISACH
FROM SACH A, LOAISACH B
WHERE A.MA_LOAISACH = B.MA_LOAISACH
AND TEN_LOAISACH ='IT'
O.2 Liệt kê các phiếu mượn gồm các thông tin mã phiếu mượn, mã sách , ngày mượn, mã sinh viên có ngày mượn trong tháng 01/2017.
SELECT A.MA_PHIEUMUON, MA_SACH, NGAYMUON, MA_SINHVIEN
Trang 16FROM PHIEUMUON A, PHIEUMUONCHITIET B
WHERE A.MA_PHIEUMUON = B.MA_PHIEUMUON
ANDMONTH(NGAYMUON)= 1
ANDYEAR(NGAYMUON)= 2017
O.3 Liệt kê các phiếu mượn chưa trả sách cho thư viên theo thứ tự tăng dần của ngày mượn sách.
FROM PHIEUMUON
WHERE TRANGTHAI LIKEN'CHƯA TRẢ'
ORDERBY NGAYMUON
O.4 Liệt kê tổng số đầu sách của mỗi loại sách ( gồm mã loại sách, tên loại sách, tổng số lượng sách mỗi loại).
SELECT B.MA_LOAISACH, TEN_LOAISACH,COUNT(B.MA_LOAISACH)AS TONGSACHMOILOAI
FROM SACH A, LOAISACH B
WHERE A.MA_LOAISACH = B.MA_LOAISACH
GROUPBY B.MA_LOAISACH, TEN_LOAISACH O.5 Đếm xem có bao nhiêu lượt sinh viên đã mượn sách.
SELECTCOUNT(MA_PHIEUMUON)AS SOLUOT
WHERE TIEUDE LIKEN'SQL'
O.7 Hiển thị thông tin mượn sách gồm các thông tin: mã sinh viên, tên sinh viên, mã phiếu mượn, tiêu đề sách, ngày mượn, ngày trả Sắp xếp thứ tự theo ngày mượn sách.
SELECT A.MA_SINHVIEN, TEN_SINHVIEN, C.MA_PHIEUMUON, TIEUDE, NGAYMUON, NGAYTRA
FROM SINHVIEN A, SACH B, PHIEUMUON C, PHIEUMUONCHITIET D
WHERE A.MA_SINHVIEN = C.MA_SINHVIEN
AND C.MA_PHIEUMUON = D.MA_PHIEUMUON
AND B.MA_SACH = D.MA_SACH
ORDERBY NGAYMUON
O.N Liệt kê các đầu sách có lượt mượn lớn hơn 20 lần.
SELECT MA_SACH,COUNT(MA_SACH)AS LUOTMUON
FROM PHIEUMUONCHITIET
GROUPBY MA_SACH
HAVINGCOUNT(MA_SACH)> 20
O.9 Viết câu lệnh cập nhật lại giá tiền của các quyển sách có ngày nhập kho trước năm 2014 giảm 30%.
UPDATE SACH
SET GIATIEN = GIATIEN * 0.7
WHERE YEAR(NGAYNHAPKHO)< 2014
O.10 Viết câu lệnh cập nhật lại trạng thái đã trả sách cho phiếu mượn của sinh viên có mã sinh viên PD123301 (ví dụ).
UPDATE PHIEUMUON
SET TRANGTHAI =N'ĐÃ TRẢ SÁCH'
WHERE MA_SINHVIEN LIKE'PD123301'
Trang 17O.11 Lập danh sách các phiếu mượn quá hạn chưa trả gồm các thông tin: mã phiếu mượn, tên sinh viên, email, danh sách các sách đã mượn, ngày mượn.
SELECT A.MA_PHIEUMUON, TEN_SINHVIEN, EMAIL_SINHVIEN, D.MA_SACH, TIEUDE,DATEDIFF(DAY,
NGAYMUON,GETDATE())AS SONGAY
FROM PHIEUMUON A, SINHVIEN B, PHIEUMUONCHITIET C, SACH D
WHERE A.MA_SINHVIEN = B.MA_SINHVIEN
AND A.MA_PHIEUMUON = C.MA_PHIEUMUON
AND C.MA_SACH = D.MA_SACH
AND DATEDIFF(DAY, NGAYMUON,GETDATE())> 3O5
O.12 Viết câu lệnh cập nhật lại số lượng bản sao tăng lên 5 đơn vị đối với các đầu sách có lượt mượn lớn hơn 10
HAVINGCOUNT(MA_SACH)> 10 )
O.13 Viết câu lệnh xoá các phiếu mượn có ngày mượn và ngày trả trước "1/1/2010"
DELETEFROM PHIEUMUON
WHERE NGAYMUON <'2010-01-01'AND NGAYTRA <'2010-01-01'