Tải bản đầy đủ (.docx) (17 trang)

báo cáo assignment 12 môn cơ sở dữ liệu quản lý thư viện

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (298.88 KB, 17 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG CAO ĐẲNG FPT POLYTECHNIC CƠ SỞ CẦN THƠ

<b><small> </small></b>

<b> BÁO CÁO ASSIGNMENT 1&2 MÔN CƠ SỞ DỮ LIỆU</b>

<b>QUẢN LÝ THƯ VIỆN</b>

<b><small> Người hướng dẫn</small></b>

<b> Người thực hiện</b>

<small> Phạm Hoàng Phương Nam</small>

<small> </small>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b><small> Cần Thơ 2023</small></b>

<b>ASSIGNMENT 1</b>

<b>1. Phân tích các thực thể và thuộc tính của các thực thể</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

CHUYENNGHANH(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)

<i><b>-Tham chiếu:</b></i>

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)

<b>4. Vẽ SD vật lý</b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>MÔ TẢ</b>

<b>MÔ TẢ</b>

<small>TenLoainvarchar(</small>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>MÔ TẢ</b>

<small>SoPhieuMuo</small>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>MÔ TẢ</b>

<small>Xuất BảnTenNXBvarchar(50</small>

<b>MÔ TẢ</b>

<small>NgànhTenCNvatchar(5</small>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>RÀNG BUỘC KHÁC</b>

<b>MƠ TẢ</b>

<b>6. Chuẩn hóa dữ liệu theo dạng chuẩn 3NF</b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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 <sup>25/10/202</sup>3 <sup>namphamclubdc@gma</sup>il.com <sup>0338151434</sup>

<b> Bảng SINHVIEN khơng chứa thuộc tính đa trị nên thỏa 1NF</b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b> Bảng PHIEUMUONCHITIET không chứa thuộc tính đa trị nên thỏa 1NF</b>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<small>--Y5. 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</small>

<small>CREATETABLE CHUYENNGANH(</small>

<small>MA_CN NVARCHAR(50)PRIMARYKEY,</small>

<small>TEN_CN NVARCHAR(100),)</small>

<small>INSERTINTO CHUYENNGANH VALUES</small>

<small>('CN01','MAKETTING'),('CN02',N'KIẾN TRÚC'),('CN03',N'DU LỊCH'),('CN04','CNTT'),('CN05',N'CƠ KHÍ')</small>

<small>--TẠO BẢNG SINH VIÊN </small>

<small>CREATETABLE SINHVIEN(</small>

<small>MA_SINHVIEN NVARCHAR(50) PRIMARYKEY,</small>

<small>INSERTINTO SINHVIEN VALUES</small>

<small>('SV01',N'TRẦN VĂN KHA','07/24/2021','','033793N37334O','CN01'),</small>

<small>('SV02',N'NGUYỄN VĂN PHƯỚC ','0O/25/2021', '','033713N37331O','CN03'),('SV03',N'NGUYỄN HOÀNG QUYẾN','05/2O/2021','','033743N373343','CN04'),('SV04',N'BÙI HOÀNG VIỆT ANH','04/27/2021','','0333223370O','CN05'),</small>

<small>('SV05',N'PHẠM HOÀNG PHƯƠNG NAM','03/2N/2021','','033N93N373310','CN02')</small>

<small>--TẠO BẢNG PHIẾU MƯỢN</small>

<small>CREATETABLE PHIEUMUON</small>

<small>MA_PHIEUMUON NVARCHAR(30)PRIMARYKEY,</small>

<small>--TAO BANG SACH</small>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<small>CREATETABLE SACH(</small>

<small>MA_SACH NVARCHAR(30)PRIMARYKEY,</small>

<small>MA_NXB NVARCHAR(30)FOREIGNKEYREFERENCES NXB,</small>

<small>MA_LOAISACH NVARCHAR(30)FOREIGNKEYREFERENCES LOAISACH</small>

<small>--TẠO BẢNG PHIẾU MƯỢN CHI TIẾT</small>

<small>CREATETABLE PHIEUMUONCHITIET(</small>

<small>ID_PHIEUMUONCHITIET NVARCHAR(30)PRIMARYKEY,</small>

<small>MA_PHIEUMUON NVARCHAR(30)FOREIGNKEYREFERENCES PHIEUMUON,</small>

<small>MA_SACH NVARCHAR(30)FOREIGNKEYREFERENCES SACH,</small>

<small>GHICHU NVARCHAR(400))</small>

<small>INSERTINTO PHIEUMUONCHITIET VALUES</small>

<small>('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')</small>

<small>DELETEFROM PHIEUMUONCHITIET--TẠO BẢNG NHA XUAT BANG</small>

<small>CREATETABLE NXB(</small>

<small>MA_NXB NVARCHAR(30)PRIMARYKEY,</small>

<small>TEN_NXB NVARCHAR(100),)</small>

<small>INSERTINTO NXB VALUES</small>

<small>('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ẻ'),</small>

<small>('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')</small>

<small>--TẠO BẢNG LOẠI SÁCH</small>

<small>CREATETABLE LOAISACH(</small>

<small>MA_LOAISACH NVARCHAR(30)PRIMARYKEY,</small>

<small>TEN_LOAISACH NVARCHAR(100),)</small>

<small>INSERTINTO LOAISACH VALUES</small>

<small>('LS01','MARKETTING'),('LS02',N'CƠ KHÍ'),('LS03',N'DU LỊCH'),('LS04','IT'),</small>

<small>('LS05',N'KIẾN TRÚC')</small>

<small>--TẠO BẢNG VIẾT SÁCH</small>

<small>CREATETABLE VIETSACH(</small>

<small>ID_VIETSACH NVARCHAR(30)PRIMARYKEY,</small>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>MA_SACH NVARCHAR(30) FOREIGNKEYREFERENCES SACH,</small>

<small>MA_TACGIA NVARCHAR(30)FOREIGNKEYREFERENCES TACGIA</small>

<small>INSERTINTO VIETSACH VALUES</small>

<small>--TẠO BẢNG TÁC GIẢ</small>

<small>CREATETABLE TACGIA(</small>

<small>MA_TACGIA NVARCHAR(30)PRIMARYKEY,</small>

<small>TEN_TACGIA NVARCHAR(100))</small>

<small>INSERTINTO TACGIA VALUES</small>

<small>('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Ỹ')</small>

<small>--TẠO BẢNG ĐẶT TẠI</small>

<small>CREATETABLE DATTAI(</small>

<small>ID_DATTAI NVARCHAR(30)PRIMARYKEY,</small>

<small>MA_SACH NVARCHAR(30)FOREIGNKEYREFERENCES SACH,</small>

<small>MA_VITRI NVARCHAR(30)FOREIGNKEYREFERENCES VITRI,)</small>

<small>INSERTINTO DATTAI VALUES</small>

<small>--TẠO BẢNG VỊ TRÍ</small>

<small>CREATETABLE VITRI(</small>

<small>MA_VITRI NVARCHAR(30)PRIMARYKEY,</small>

<small>MOTA NVARCHAR(500))</small>

<small>INSERTINTO VITRI VALUES</small>

<small>('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')</small>

<small>--YO. Viết các câu truy vấn sau:</small>

<small>--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”.</small>

<small>SELECT TIEUDE, A.MA_SACH, GIATIEN, TEN_LOAISACH</small>

<small>FROM SACH A, LOAISACH B</small>

<small>WHERE A.MA_LOAISACH = B.MA_LOAISACH</small>

<small>AND TEN_LOAISACH ='IT'</small>

<small>--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.</small>

<small>SELECT A.MA_PHIEUMUON, MA_SACH, NGAYMUON, MA_SINHVIEN</small>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<small>FROM PHIEUMUON A, PHIEUMUONCHITIET B</small>

<small>WHERE A.MA_PHIEUMUON = B.MA_PHIEUMUON</small>

<small>ANDMONTH(NGAYMUON)= 1</small>

<small>ANDYEAR(NGAYMUON)= 2017</small>

<small>--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.</small>

<small>FROM PHIEUMUON </small>

<small>WHERE TRANGTHAI LIKEN'CHƯA TRẢ'</small>

<small>ORDERBY NGAYMUON </small>

<small>--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).</small>

<small>SELECT B.MA_LOAISACH, TEN_LOAISACH,COUNT(B.MA_LOAISACH)AS TONGSACHMOILOAI</small>

<small>FROM SACH A, LOAISACH B</small>

<small>WHERE A.MA_LOAISACH = B.MA_LOAISACH</small>

<small>GROUPBY B.MA_LOAISACH, TEN_LOAISACH--O.5 Đếm xem có bao nhiêu lượt sinh viên đã mượn sách.</small>

<small>SELECTCOUNT(MA_PHIEUMUON)AS SOLUOT</small>

<small>WHERE TIEUDE LIKEN'SQL'</small>

<small>--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.</small>

<small>SELECT A.MA_SINHVIEN, TEN_SINHVIEN, C.MA_PHIEUMUON, TIEUDE, NGAYMUON, NGAYTRA</small>

<small>FROM SINHVIEN A, SACH B, PHIEUMUON C, PHIEUMUONCHITIET D</small>

<small>WHERE A.MA_SINHVIEN = C.MA_SINHVIEN</small>

<small>AND C.MA_PHIEUMUON = D.MA_PHIEUMUON</small>

<small>AND B.MA_SACH = D.MA_SACH</small>

<small>ORDERBY NGAYMUON</small>

<small>--O.N Liệt kê các đầu sách có lượt mượn lớn hơn 20 lần.</small>

<small>SELECT MA_SACH,COUNT(MA_SACH)AS LUOTMUON</small>

<small>FROM PHIEUMUONCHITIET</small>

<small>GROUPBY MA_SACH</small>

<small>HAVINGCOUNT(MA_SACH)> 20</small>

<small>--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%.</small>

<small>UPDATE SACH</small>

<small>SET GIATIEN = GIATIEN * 0.7</small>

<small>WHERE YEAR(NGAYNHAPKHO)< 2014</small>

<small>--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ụ).</small>

<small>UPDATE PHIEUMUON</small>

<small>SET TRANGTHAI =N'ĐÃ TRẢ SÁCH'</small>

<small>WHERE MA_SINHVIEN LIKE'PD123301'</small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<small>--O.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.</small>

<small>SELECT A.MA_PHIEUMUON, TEN_SINHVIEN, EMAIL_SINHVIEN, D.MA_SACH, TIEUDE,DATEDIFF(DAY,</small>

<small>NGAYMUON,GETDATE())AS SONGAY</small>

<small>FROM PHIEUMUON A, SINHVIEN B, PHIEUMUONCHITIET C, SACH D</small>

<small>WHERE A.MA_SINHVIEN = B.MA_SINHVIEN</small>

<small>AND A.MA_PHIEUMUON = C.MA_PHIEUMUON</small>

<small>AND C.MA_SACH = D.MA_SACH</small>

<small>AND DATEDIFF(DAY, NGAYMUON,GETDATE())> 3O5</small>

<small>--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</small>

<small> HAVINGCOUNT(MA_SACH)> 10 )</small>

<small>--O.13 Viết câu lệnh xố các phiếu mượn có ngày mượn và ngày trả trước "1/1/2010"</small>

<small>DELETEFROM PHIEUMUON</small>

<small>WHERE NGAYMUON <'2010-01-01'AND NGAYTRA <'2010-01-01'</small>

</div>

×