Quản lý thư viện trang16 : Một thư viện tổ chức việc cho mượn sách như sau: Mỗi quyển sách được đánh một mã sách Masach dùng để phân biệt với các quyển sách khác giả sử nếu một tác phẩ
Trang 1TRƯỜNG ĐẠI HỌC DUY TÂN
ĐỒ ÁN CÁ NHÂN
Học phần: Cơ sở dữ liệu
Mã học phần: IS 301 I
ĐỀ TÀI
Quản lý thư viện
GVHD: Trần Huệ Chi
Họ và tên: Nguyễn Đặng Yến Nhi
Trang 2MSSV: 28201152319
Lớp: IS 301 I
Đà Nẵng, ngày 13/10/2023
Trang 3MỤC LỤC PHẦN I: PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ MÔ HÌNH CƠ SỞ DỮ
LIỆU……….…4
1 Mô tả bài toán……… 5
2 Vẽ mô hình thực thể liên kết……… 9
3 Vẽ mô hình quan hệ………
4 Cho dữ liệu mỗi bảng………
PHẦN II : BIỂU THỨC ĐẠI SỐ QUAN HỆ 1 Liệt kê những độc giả có nghề nghiệp là sinh viên 2 Liệt kê những quyển sách của tác giả “Nam Cao”………
3 Liệt kê những phiếu mượn trong tháng 8 Sopm, Madg, Ngaymuon………
4 Liệt kê những độc giả có mượn sách “số đỏ” Mash, Tensach, Madg……….
5 Liệt kê những quyển sách xuất bản năm 2000 Mash, tensach,
Trang 46 Lập danh sách những quyển sách chưa trả Masach, Tensach, Ngaymuon, Ngaytra (dieu kien Ngaytra is null)……….
7 Lập danh sách những quyển sách chưa ai mượn………
8 Lập danh sách những độc giả mượn sách “số đỏ” và “ không gia đình”……….
PHẦN III: NGÔN NGỮ SQL………
1 Viết câu lệnh về bảng cho đề tài mình đã chọn………
2 Viết câu lệnh chỉnh sửa cấu trúc bảng (ít nhất 1 câu)………….
2.1 Câu lệnh thêm cột………
2.2 Câu lệnh xóa cột………
2.3 Câu lệnh đổi kiểu dữ liệu……….
3 Câu lệnh về dữ liệu (ít nhất 1 câu)………
3.1 Câu lệnh nhập dữ liệu vào bảng………
3.2 Câu lệnh cập nhật dữ liệu ………
Trang 53.3 Câu lệnh xóa dữ liệu………
4 Câu lệnh thao tác dữ liệu………
4.1 Truy vấn từ 1 bảng (8 câu)………
4.2 Truy vấn từ nhiều bảng………
4.3 Truy vấn có dùng hàm………
4.4 Truy vấn có gộp nhóm……….
PHẦN I: Phân tích yêu cầu và thiết kế mô hình cơ sở dữ liệu I/ Mô tả bài toán
Trang 6Quản lý thư viện ( trang16) :
Một thư viện tổ chức việc cho mượn sách như sau:
Mỗi quyển sách được đánh một mã sách (Masach) dùng để phân biệt với các quyển sách khác (giả sử nếu một tác phẩm có nhiều bản giống nhau hoặc có nhiều tập thì cũng xem là có mã sách khác nhau), mỗi mã sách xác định các thông tin khác như : tên sách (Tensach), tên tác giả (Tacgia), nhà xuất bản (Nhaxb), năm xuất bản (Namxb)
Mỗi đọc giả được thư viện cấp cho một thẻ thư viện, trong đó có ghi rõ mã độc giả (Madg), cùng với các thông tin khác như: họ tên (Hoten), ngày sinh (Ngaysinh), địa chỉ (Diachi), nghề nghiệp (Nghenghiep)
Cứ mỗi lượt mượn sách, đọc giả phải ghi các quyển sách cần mượn vào một phiếu mượn, mỗi phiếu mượn có một số phiếu mượn (Sopm) duy nhất, mỗi phiếu mượn xác định các thông tin như: độc giả mượn (Madg), các quyển sách mượn (Masach), ngày mượn (Ngaymuon) và ngày trả (Ngaytra) Các các quyển sách trong cùng một phiếu mượn không nhất thiết phải trả trong trong cùng một ngày
II/ Vẽ mô hình thực thể liên kết
Nghenghiep
Trang 7Discover more
from:
IS 301
Document continues below
Cơ sở dữ liệu
Trường Đại Học…
41 documents
Go to course
IS 301 BGCN Chith 30122020
Cơ sở dữ
liệu 100% (2)
70
CƠ SỞ DỮ LIỆU - tài liệu môn cơ sở dữ…
Cơ sở dữ
liệu 100% (1)
15
KTGK - sresw
Cơ sở dữ
liệu 100% (1)
2
Dapan bai1 - Đáp án bài kiểm tra
Cơ sở dữ liệu None
7
CSDL - strt3
Cơ sở dữ liệu None
3
Trang 8III/ Vẽ mô hình quan hệ
Diachi Hoten
n
Thethuvien Sach
Nhaxb
Madg Masach
Namxb
Ngaytra
Ngaymuon
38 Huỳnh-Thị-Minh-Thi 282002 33754…
Cơ sở dữ liệu None
20
Trang 9IV Cho dữ liệu mỗi bảng
Bảng Sach:
Bảng Thethuvien :
Bảng Phieumuon :
PHẦN II : Biểu thức đại số quan hệ
vien (Madg, Hoten, Ngaysinh, Diachi, Nghenghiep) Phieumuon (Sopm, Madg, Masach, Ngaymuon, Ngaytra)
Trang 101.Liệt kê nhữngSach (Masach, Tensach, Tacgia, Nhaxb, Namxb)
Thethu độc giả có nghề nghiệp là sinh viên
2 Liệt kê những quyển sách của tác giả “Nam Cao”
3 Liệt kê những phiếu mượn trong tháng 8 Sopm, Madg, Ngaymuon
4 Liệt kê những độc giả có mượn sách “số đỏ” Masach, Tensach, Madg
5 Liệt kê những quyển sách xuất bản năm 2020 Masach, Tensach, Namxb
6 Lập danh sách những quyển sách chưa trả Masach, Tensach, Ngaymuon, Ngaytra (dieu kien Ngaytra is null)
7 Lập danh sách những quyển sách chưa ai mượn
(Sach)- (Phieumuon)
Trang 118 Lập danh sách những độc giả mượn sách “số đỏ” và “ không gia đình”
PHẦN III: Ngôn ngữ SQL
I/ Viết câu lệnh về bảng cho đề tài mình đã chọn
- Create Sach (Masach text primary key, Tensach text, Tacgia text, Nhaxb text, Namxb int)
- Create Thethuvien (Madg text primary key, Hoten text, Ngaysinh date, Diachi text, Nghenghiep text)
- Create Phieumuon (Sopm text primary text, foreign (Madg) references Thethuvien(Madg), foreign (Masach) references Sach(Masach), Ngaymuon date, Ngaytra date)
II/ Viết câu lệnh chỉnh sửa cấu trúc bảng (ít nhất 1 câu)
Trang 121 Câu lệnh thêm cột
- ALTER TABLE Phieumuon ADD COLUMN Soluong smallint;
2 Câu lệnh xóa cột
- ALTER TABLE Thethuvien DROP COLUMN Diachi;
3 Câu lệnh đổi kiểu dữ liệu
- ALTER TABLE Phieumuon ALTER COLUMN Soluong int;
III/ Câu lệnh về dữ liệu (ít nhất 1 câu)
1 Câu lệnh nhập dữ liệu vào bảng
- INSERT INTO Sach (Masach, Tensach, Tacgia, Nhaxb, Namxb) VALUES (S06, Thiên tài bên trái kẻ điên bên phải, Cao Minh, Thế giới, 2021)
2 Câu lệnh cập nhật dữ liệu
- UPDATE Thethuvien SET Hoten= “Cao Bảo Lâm” WHERE Madg=
“DG04”;
3 Câu lệnh xóa dữ liệu
- DELETE FROM Sach WHERE Masach= “S04”;
Trang 13IV/ Câu lệnh thao tác dữ liệu
1 Truy vấn từ 1 bảng (8 câu)
a Câu không có điều kiện
- SELECT Masach, Tensach, Tacgia FROM Sach;
b Câu có 1 điều kiện
- SELECT Masach, Tensach, Tacgia FROM Sach WHERE Namxb=2020;
c Câu có 2 điều kiện
- SELECT Masach, Tensach,Tacgia FROM Sach WHERE Tacgia=
“Nam Cao” and Namxb=2018;
d Câu có sử dụng biểu thức
- SELECT Madg, Hoten, Ngaysinh, Gioitinh FROM Thethuvien WHERE Madg= “DG03”;
Trang 14e Câu có dùng tùy chọn top N
- SELECT TOP 1 Masach, Madg, Soluong FROM Phieumuon ORDER
BY soluong;
f Câu có dùng tùy chọn *
- SELECT Masach, Madg, (Ngaytra – Ngaymuon)*5000 AS Tientratre FROM Phieumuon WHERE Ngaytra - Ngaymuon>30;
g Câu có dùng tùy chọn order by
- SELECT Masach, Madg, Soluong FROM Phieumuon ORDER BY soluong DESC;
h Câu có sử dụng kết hợp 2 hoặc 3 tùy chọn trên
- SELECT TOP 3 Masach, Madg, Soluong FROM Phieumuon ORDER
BY soluong DESC;
2 Truy vấn từ nhiều bảng
a 2 Câu truy vấn từ 2 bảng không cần điều kiện lọc
Trang 15- SELECT Sopm, Masach, Madg, Tendg FROM Phieumuon, Thethuvien;
- SELECT Sopm, Masach, Tensach, Madg FROM Phieumuon, Sach;
b 2 Câu truy vấn từ 2 bảng có thêm điều kiện lọc
- SELECT Sopm, Masach, Tensach, Madg FROM Phieumuon, Sach WHERE Sopm= “PM01”;
- SELECT Sopm, Masach, Madg, Tendg FROM Phieumuon, Thethuvien WHERE Masach= “S02”;
c 2 câu truy vấn từ 3 bảng trở lên
- SELECT Sopm, Masach, Tensach, Madg, Tendg FROM Phieumuon, Thethuvien, Sach;
Trang 16- SELECT Sopm, Masach,Tensach, Madg, Tendg, Ngaymuon FROM Phieumuon, Thethuvien, Sach;
3 Truy vấn có dùng hàm
a Dùng hàm COUNT
SELECT COUNT(Masach) AS soquyensach FROM Sach;
b Dùng hàm SUM có điều kiện
SELECT SUM(Namxb) FROM Sach WHERE namxb > 2018;
c Dùng hàm AVG có điều kiện
SELECT AVG(Namxb) FROM Sach WHERE tacgia = “Vũ Trọng Phụng”;
d Dùng hàm MAX
Trang 17SELECT MAX(Namxb) FROM Sach;
e Dùng hàm MIX
SELECT MIN(Namxb) FROM Sach;
4 Truy vấn có gộp nhóm
a Câu truy vấn gộp nhóm sự dụng hàm SUM:
SELECT Nhaxb, SUM (SELECT count (Masach) FROM Sach;)
FROM Sach GROUP BY Nhaxb;
b Câu truy vấn gộp nhóm sử dụng hàm COUNT:
SELECT Nhaxb, COUNT(Masach) FROM Sach WHERE Tacgia
= “Hector Malot” GROUP BY Nhaxb;
Trang 18c Câu có dùng hàm MAX lấy thông tin từ 2 bảng
SELECT Sopm, Sach.Masach, Sach.Tensach,
MAX (Sach.Namxb) ,Thethuvien.Mađg, Thethuvien.Hoten FROM Sach,
Phieumuon, Thethuvien WHERE Sach.Masach = Phieumuon.Masach
AND Phieumuon.Mađg = Thethuvien.Mađg;
d Câu có dùng hàm avg có điều kiện nhóm
SELECT Tacgia, AVG(Namxb) FROM Sach WHERE Namxb >
2018 GROUP BY Tacgia;