1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo cuối kì môn học cơ sở dữ liệu thư viện lưu trữ thông tin về danh mục sách

17 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 287,92 KB

Nội dung

1.Mô tả hệ thống:Thư viện lưu trữ thông tin về danh mục sách, danh mục độc giả và ghi nhận quá trình mượn trả sách của từng độc giả.. Quy trình mượn trả được thực hiện như sau: - Độc giả

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM



BÁO CÁO CUỐI KÌ

MÔN HỌC: CƠ SỞ DỮ LIỆU

MHP: DMSY230184_23_1_02CLC

GVHD: Lê Thị Minh Châu Sinh viên thực hiện:

TP Hồ Chí Minh, tháng 12 năm 2023

Họ và tên MSSV Hoàng Phan Đăng Anh 22126003 Trương Thi Thảo Uyên 22126074 Hoàng Gia Hân 22126022 Nguyễn Thành Phong 22126045

Trang 2

1.Mô tả hệ thống:

Thư viện lưu trữ thông tin về danh mục sách, danh mục độc giả và ghi nhận quá trình mượn trả sách của từng độc giả

Mỗi người dùng muốn sử dụng được hệ thống đều phải thực hiện quá trình đăng nhập Nhân viên thư viện có khả năng quản lý danh mục sách: thêm sách mới, thanh lý sách cũ, cập nhật tình trạng của từng quyển sách trong thư viện

Đồng thời, nhân viên thư viện cũng thực hiện quản lý độc giả, lập thẻ độc giả, gia hạn thẻ, thanh lý thẻ

Độc giả có thể sử dụng hệ thống để tra cứu, tìm kiếm sách hoặc xem chi tiết thông tin mượn trả của mình

Quy trình mượn trả được thực hiện như sau:

- Độc giả tự tra cứu xem thông tin về tình trạng và vị trí của những quyển sách cần mượn

- Độc giả tự đến các kệ để lấy sách, mang ra quầy cho mượn

- Thủ thư kiểm tra tình trạng độc giả, kiểm tra sách, nhập các thông tin cần thiết để lập phiếu mượn Trên phiếu cho mượn có ghi rõ ngày hẹn trả của từng quyển sách

Khi độc giả mang sách đến trả thì thủ thư nhận sách, nhập thông tin trả sách và ghi nhận trả, đồng thời có thể tính và thu tiền phạt, tiền đền nếu có Thủ thư sẽ tự mang sách được trả xếp lên kệ ở những vị trí tương ứng

Trưởng thư viện có thể xem thống kê về tình hình mượn trả sách theo từng tháng, quý

Có thể theo dõi tình hình mượn trả của một độc giả hoặc một quyển sách nào đó Ngoài

ra, cũng có thể thay đổi quy định mượn trả

Quản trị hệ thống có nhiệm vụ quản lý người dùng

Trang 3

2 Sơ đồ ERD

3.Lược đồ quan hệ:

nhanvien (manhanvien, hoten, ngaysinh, gioitinh, sdt, diachi, chucvu) loaisach (maloai, tenloai)

sach (masach, tensach, tacgia, namxuatban, maloai, soluong, giaban) thedocgia (mathe, ngaygiahan, ngayhethan)

docgia (madg, hoten, diachi, ngaysinh, gioitinh, email, dienthoai, mathe) phieumuon (maphieu, ngaymuon, ngaytra, mathe, manhanvien)

lapphieumuon (maphieu, masach, soluong)

phieuphat (maphieu, ngayphat, sotien, lydo, mathe, manhanvien)

Trang 4

4 Tạo CSDL với SQL SERVER

Create database QLTV;

use QLTV;

Tạo bảng nhân viên

CREATE TABLE nhanvien (

manhanvien INT PRIMARY KEY, hoten NVARCHAR(100),

ngaysinh DATE,

gioitinh NVARCHAR(3),

sdt NVARCHAR(15),

diachi NVARCHAR(100),

chucvu NVARCHAR(50)

);

Tạo bảng loại sách

CREATE TABLE loaisach (

maloai INT PRIMARY KEY, tenloai NVARCHAR(50)

);

Tạo bảng sách

CREATE TABLE sach (

masach INT PRIMARY KEY, tensach NVARCHAR(100),

tacgia NVARCHAR(100),

namxuatban INT,

maloai INT,

Trang 5

soluong INT,

giaban DECIMAL(18, 2),

FOREIGN KEY (maloai) REFERENCES loaisach(maloai) );

Tạo bảng thẻ độc giả

CREATE TABLE thedocgia (

mathe INT PRIMARY KEY,

ngaygiahan DATE,

ngayhethan DATE

);

Tạo bảng độc giả

CREATE TABLE docgia (

madg INT PRIMARY KEY,

hoten NVARCHAR(100),

diachi NVARCHAR(100),

ngaysinh DATE,

gioitinh NVARCHAR(3),

email NVARCHAR(100),

dienthoai NVARCHAR(15),

mathe INT,

FOREIGN KEY (mathe) REFERENCES thedocgia(mathe) );

Tạo bảng phiếu mượn

CREATE TABLE phieumuon (

Trang 6

maphieu INT PRIMARY KEY,

ngaymuon DATE,

ngaytra DATE,

mathe INT,

manhanvien INT,

FOREIGN KEY (mathe) REFERENCES thedocgia(mathe),

FOREIGN KEY (manhanvien) REFERENCES nhanvien(manhanvien) );

Tạo bảng chi tiết phiếu mượn

CREATE TABLE chitietphieumuon (

maphieu INT,

masach INT,

soluong INT,

PRIMARY KEY (maphieu, masach),

FOREIGN KEY (maphieu) REFERENCES phieumuon(maphieu), FOREIGN KEY (masach) REFERENCES sach(masach)

);

Tạo bảng phiếu phạt

CREATE TABLE phieuphat (

maphieu INT PRIMARY KEY,

ngayphat DATE,

sotien DECIMAL(18, 2),

lydo NVARCHAR(255),

mathe INT,

manhanvien INT,

Trang 7

FOREIGN KEY (mathe) REFERENCES thedocgia(mathe),

FOREIGN KEY (manhanvien) REFERENCES nhanvien(manhanvien)

);

5 Chèn dữ liệu

INSERT INTO nhanvien (manhanvien, hoten, ngaysinh, gioitinh, sdt, diachi, chucvu) VALUES

(1, N'Nguyễn Văn An', '1990-01-05', N'Nam', '0987654321', N'Hà Nội', N'Trưởng thư viện'),

(2, N'Trần Thị Binh', '1995-03-10', N'Nữ', '0901234567', N'Hồ Chí Minh', N'Nhân viên'), (3, N'Lê Văn Chương', '1985-12-20', N'Nam', '0978123456', N'Đà Nẵng', N'Nhân viên'), (4, N'Phạm Thị Doanh', '1992-07-15', N'Nữ', '0912345678', N'Hải Phòng', N'Nhân viên'), (5, N'Hoàng Văn Bình', '1988-09-25', N'Nam', '0965432198', N'Cần Thơ', N'Nhân viên'), (6, N'Vũ Thị Nụ', '1993-04-30', N'Nữ', '0932165498', N'Hà Nội', N'Nhân viên'),

(7, N'Đinh Văn Hoàng', '1987-06-18', N'Nam', '0943219876', N'Hồ Chí Minh', N'Nhân viên'),

(8, N'Lý Thị Hương', '1991-11-12', N'Nữ', '0987654321', N'Đà Nẵng', N'Nhân viên'), (9, N'Ngô Văn Lộc', '1986-08-22', N'Nam', '0909876543', N'Hải Phòng', N'Nhân viên'), (10, N'Mai Thị Khai', '1994-05-01', N'Nữ', '0912345678', N'Cần Thơ', N'Nhân viên'), (11, N'Bùi Văn Long', '1989-02-14', N'Nam', '0978123456', N'Hà Nội', N'Nhân viên'), (12, N'Chu Thị Mai', '1990-10-08', N'Nữ', '0965432198', N'Hồ Chí Minh', N'Nhân viên'), (13, N'Phan Văn Na', '1984-07-03', N'Nam', '0932165498', N'Đà Nẵng', N'Nhân viên'), (14, N'Dương Thị Son', '1995-06-29', N'Nữ', '0943219876', N'Hải Phòng', N'Nhân viên'), (15, N'Hoàng Văn Phú', '1983-09-17', N'Nam', '0909876543', N'Cần Thơ', N'Nhân viên'), (16, N'Nguyễn Thị Quỳnh', '1991-04-23', N'Nữ', '0987654321', N'Hà Nội', N'Nhân viên'), (17, N'Trần Văn Dũng', '1982-12-19', N'Nam', '0901234567', N'Hồ Chí Minh', N'Nhân viên'),

(18, N'Lê Thị An', '1993-11-25', N'Nữ', '0978123456', N'Đà Nẵng', N'Nhân viên'),

(19, N'Phạm Văn Thế', '1981-08-13', N'Nam', '0912345678', N'Hải Phòng', N'Nhân viên'),

Trang 8

(20, N'Vũ Thị Yến', '1994-02-28', N'Nữ', '0965432198', N'Cần Thơ', N'Nhân viên');

INSERT INTO loaisach (maloai, tenloai)

VALUES

(1, N'Tiểu thuyết'),

(2, N'Khoa học'),

(3, N'Văn học'),

(4, N'Kinh tế'),

(5, N'Lịch sử'),

(6, N'Tôn giáo'),

(7, N'Địa lý'),

(8, N'Kỹ năng sống'),

(9, N'Trinh thám'),

(10, N'Tâm lý học'),

(11, N'Y học'),

(12, N'Tự nhiên'),

(13, N'Xã hội học'),

(14, N'Ngôn ngữ học'),

(15, N'Văn hóa học'),

(16, N'Khoa học xã hội'),

(17, N'Âm nhạc'),

(18, N'Thể thao'),

(19, N'Nghệ thuật'),

(20, N'Kỹ thuật');

INSERT INTO sach (masach, tensach, tacgia, namxuatban, maloai, soluong, giaban) VALUES

Trang 9

(1, N'Cuộc phiêu lưu của Alice', N'Lewis Carroll', 1865, 1, 100, 50000),

(2, N'Chiến tranh và hòa bình', N'Lê Quý Đôn', 2005, 1, 150, 60000),

(3, N'Vũ trụ trong vỏ hạt dẻ', N'Stephen Hawking', 2010, 2, 120, 55000),

(4, N'Thuyết vạn vật', N'Albert Einstein', 1920, 2, 130, 58000),

(5, N'Những ngôi sao lạc lõng', N'Nguyễn Nhật Ánh', 2003, 3, 200, 45000),

(6, N'Tiếng gọi của nơi hoang dã', N'Jack London', 2007, 3, 180, 48000),

(7, N'Kinh tế học hài hước', N'Nassim Nicholas Taleb', 2012, 4, 90, 65000),

(8, N'Thế giới phẳng', N'Thomas Friedman', 2011, 4, 110, 70000),

(9, N'Biên niên sử Narnia', N'C.S Lewis', 2009, 5, 160, 52000),

(10, N'Đại thần thoại Hy Lạp', N'Nathaniel Hawthorne', 2004, 5, 140, 54000),

(11, N'Đạo Phật và đời sống', N'Thích Nhất Hạnh', 2011, 6, 80, 73000),

(12, N'Kinh điển Phật giáo', N'Thích Minh Châu', 2006, 6, 100, 75000),

(13, N'Trải nghiệm Nam Mỹ', N'Che Guevara', 2013, 7, 120, 62000),

(14, N'Cuộc đời của một nhà địa lý', N'Jared Diamond', 2017, 7, 90, 68000),

(15, N'7 thói quen của người thành công', N'Stephen R Covey', 2002, 8, 150, 50000), (16, N'Thức tỉnh', N'Robin Sharma', 2016, 8, 110, 55000),

(17, N'Trinh thám Sherlock Holmes', N'Arthur Conan Doyle', 2001, 9, 170, 47000), (18, N'Người mẹ tội lỗi', N'Paulo Coelho', 2011, 9, 130, 52000),

(19, N'Tâm lý học hạnh phúc', N'Martin Seligman', 2011, 10, 100, 60000),

(20, N'Tâm lý học ứng dụng', N'Daniel Kahneman', 2000, 10, 120, 58000);

INSERT INTO thedocgia (mathe, ngaygiahan, ngayhethan)

VALUES

(1, '2021-01-01', '2022-01-01'),

(2, '2021-01-02', '2022-01-02'),

(3, '2021-01-03', '2022-01-03'),

(4, '2021-01-04', '2022-01-04'),

Trang 10

(5, '2021-01-05', '2022-01-05'),

(6, '2021-01-06', '2022-01-06'),

(7, '2021-01-07', '2022-01-07'),

(8, '2021-01-08', '2022-01-08'),

(9, '2021-01-09', '2022-01-09'),

(10, '2021-01-10', '2022-01-10'),

(11, '2021-01-11', '2022-01-11'),

(12, '2021-01-12', '2022-01-12'),

(13, '2021-01-13', '2022-01-13'),

(14, '2021-01-14', '2022-01-14'),

(15, '2021-01-15', '2022-01-15'),

(16, '2021-01-16', '2022-01-16'),

(17, '2021-01-17', '2022-01-17'),

(18, '2021-01-18', '2022-01-18'),

(19, '2021-01-19', '2022-01-19'),

(20, '2021-01-20', '2022-01-20');

INSERT INTO docgia (MaDG, HoTen, DiaChi, NgaySinh, GioiTinh, Email, DienThoai, MaThe)

VALUES

(1, N'Nguyễn Văn Anh', N'Hà Nội', '1990-01-01', N'Nam',

'nguyenvana@example.com', '123456789', 1),

(2, N'Trần Thị Ba', N'Hồ Chí Minh', '1991-01-02', N'Nữ', 'tranthib@example.com', '987654321', 2),

Trang 11

(3, N'Lê Văn Chinh', N'Hải Phòng', '1992-01-03', N'Nam', 'levanc@example.com', '456123789', 3),

(4, N'Phạm Thị Dương', N'Đà Nẵng', '1993-01-04', N'Nữ', 'phamthid@example.com', '789456123', 4),

(5, N'Hoàng Văn Én', N'Cần Thơ', '1994-01-05', N'Nam', 'hoangvane@example.com', '321654987', 5),

(6, N'Vũ Thị Phương', N'Huế', '1995-01-06', N'Nữ', 'vuthif@example.com',

'654987321', 6),

(7, N'Đặng Văn Giang', N'Nghệ An', '1996-01-07', N'Nam', 'dangvang@example.com', '987321654', 7),

(8, N'Bùi Thị Hương', N'Bắc Ninh', '1997-01-08', N'Nữ', 'buithih@example.com', '147258369', 8),

(9, N'Nguyễn Văn Linh', N'Hà Tĩnh', '1998-01-09', N'Nam',

'nguyenvani@example.com', '369258147', 9),

(10, N'Trần Thị Ka', N'Quảng Bình', '1999-01-10', N'Nữ', 'tranthik@example.com', '258369147', 10),

(11, N'Lê Văn L'ong, N'Quảng Trị', '2000-01-11', N'Nam', 'levanl@example.com', '369147258', 11),

(12, N'Phạm Thị Mạnh', N'Quảng Ngãi', '2001-01-12', N'Nữ',

'phamthim@example.com', '147258369', 12),

(13, N'Hoàng Văn Năm', N'Quảng Nam', '2002-01-13', N'Nam',

'hoangvann@example.com', '258369147', 13),

(14, N'Vũ Thị Phương', N'Quảng Ninh', '2003-01-14', N'Nữ', 'vuthip@example.com', '369147258', 14),

(15, N'Đặng Văn Quỳnh', N'Quảng Trị', '2004-01-15', N'Nam',

'dangvanq@example.com', '147258369', 15),

(16, N'Bùi Thị Huế', N'Quảng Ngãi', '2005-01-16', N'Nữ', 'buithir@example.com', '258369147', 16),

(17, N'Nguyễn Văn Sinh', N'Quảng Nam', '2006-01-17', N'Nam',

'nguyenvans@example.com', '369147258', 17),

(18, N'Trần Thị Thu', N'Quảng Ninh', '2007-01-18', N'Nữ', 'tranthit@example.com', '147258369', 18),

Trang 12

(19, N'Lê Văn Sơn', N'Quảng Trị', '2008-01-19', N'Nam', 'levanu@example.com', '258369147', 19),

(20, N'Phạm Thị Vân', N'Quảng Ngãi', '2009-01-20', N'Nữ', 'phamthiv@example.com', '369147258', 20);

INSERT INTO phieumuon (maphieu, ngaymuon, ngaytra, mathe, manhanvien)

VALUES

(1, '2021-01-01', '2021-01-10', 1, 3),

(2, '2021-01-02', '2021-01-11', 2, 2),

(3, '2021-01-03', '2021-01-12', 3, 3),

(4, '2021-01-04', '2021-01-13', 4, 5),

(5, '2021-01-05', '2021-01-14', 5, 5),

(6, '2021-01-06', '2021-01-15', 6, 6),

(7, '2021-01-07', '2021-01-16', 7, 7),

(8, '2021-01-08', '2021-01-17', 8, 4),

(9, '2021-01-09', '2021-01-18', 9, 5),

(10, '2021-01-10', '2021-01-19', 10, 5),

(11, '2021-01-11', '2021-01-20', 11, 5),

(12, '2021-01-12', '2021-01-21', 12, 9),

(13, '2021-01-13', '2021-01-22', 13, 9),

(14, '2021-01-14', '2021-01-23', 14, 5),

(15, '2021-01-15', '2021-01-24', 15, 2),

(16, '2021-01-16', '2021-01-25', 16, 2),

(17, '2021-01-17', '2021-01-26', 17, 3),

(18, '2021-01-18', '2021-01-27', 18, 3),

Trang 13

(19, '2021-01-19', '2021-01-28', 19, 3),

(20, '2021-01-20', '2021-01-29', 20, 3);

INSERT INTO chitietphieumuon (maphieu, masach, soluong) VALUES

(1, 1, 2),

(1, 2, 1),

(2, 3, 3),

(2, 4, 1),

(3, 5, 2),

(3, 6, 2),

(4, 7, 1),

(4, 8, 3),

(5, 9, 1),

(5, 10, 2),

(6, 11, 1),

(6, 12, 2),

(7, 13, 2),

(7, 14, 1),

(8, 15, 3),

(8, 16, 2),

Trang 14

(9, 17, 2),

(9, 18, 3),

(10, 19, 1),

(10, 20, 1);

INSERT INTO phieuphat (maphieu, ngayphat, sotien, lydo, mathe, manhanvien) VALUES

(1, '2023-01-01', 100000, 'Trả sách quá hạn', 1, 2),

(2, '2023-01-02', 150000, 'Trả sách quá hạn', 1, 2),

(3, '2023-01-03', 200000, 'Trả sách quá hạn', 1, 3),

(4, '2023-01-04', 120000, 'Trả sách quá hạn', 1, 4),

(5, '2023-01-05', 80000, 'Trả sách quá hạn', 12, 5),

(6, '2023-01-06', 90000, 'Trả sách quá hạn', 1, 6),

(7, '2023-01-07', 110000, 'Trả sách quá hạn', 1, 7),

(8, '2023-01-08', 130000, 'Trả sách quá hạn', 10, 8),

(9, '2023-01-09', 140000, 'Trả sách quá hạn', 19, 9),

(10, '2023-01-10', 160000, 'Trả sách quá hạn', 11, 11),

(11, '2023-01-11', 170000, 'Trả sách quá hạn', 12, 11),

(12, '2023-01-12', 180000, 'Trả sách quá hạn', 12, 2),

(13, '2023-01-13', 190000, 'Trả sách quá hạn', 1, 3),

(14, '2023-01-14', 200000, 'Trả sách quá hạn', 14, 4),

Trang 15

(15, '2023-01-15', 210000, 'Trả sách quá hạn', 15, 11),

(16, '2023-01-16', 220000, 'Trả sách quá hạn', 11, 16),

(17, '2023-01-17', 230000, 'Trả sách quá hạn', 11, 17),

(18, '2023-01-18', 240000, 'Trả sách quá hạn', 8, 18),

(19, '2023-01-19', 250000, 'Trả sách quá hạn', 19, 19),

(20, '2023-01-20', 260000, 'Trả sách quá hạn', 1, 12);

6 Truy vấn

1 Liệt kê tất cả các sách có số lượng tồn kho lớn hơn 100 và được sắp xếp theo tên sách SELECT masach, tensach, soluong

FROM sach

WHERE soluong > 100

ORDER BY tensach;

2 Tính tổng số sách mỗi loại sách và sắp xếp theo tổng số sách giảm dần:

SELECT maloai, COUNT(masach) AS tong_so_sach

FROM sach

GROUP BY maloai

ORDER BY tong_so_sach DESC;

3 Liệt kê thông tin của những độc giả đã mượn sách và có hạn trả sách trong tháng 1 năm 2021 này:

SELECT dg.hoten, pm.maphieu, pm.ngaymuon, pm.ngaytra

FROM docgia dg

JOIN phieumuon pm ON dg.mathe = pm.mathe

WHERE MONTH(pm.ngaytra) = 1 and YEAR(pm.ngaytra) = 2021

4 Tính tổng số sách mỗi tác giả đã viết và sắp xếp theo tổng số sách giảm dần

Trang 16

SELECT tacgia, COUNT(masach) AS tong_so_sach

FROM sach

GROUP BY tacgia

ORDER BY tong_so_sach DESC;

5 Liệt kê thông tin của những độc đã bị phạt trong tháng 1 năm 2023

SELECT *

FROM docgia dg

JOIN phieuphat pp ON dg.madg = pp.madg

WHERE MONTH(pp.ngayphat) = 1 and YEAR(pp.ngayphat) = 2023

6 Tính tổng số sách mỗi độc giả đã mượn và sắp xếp theo tổng số sách giảm dần: SELECT dg.hoten, COUNT(ctpm.masach) AS tong_so_sach_muon

FROM docgia dg

JOIN phieumuon pm ON dg.mathe = pm.mathe

JOIN chitietphieumuon ctpm ON pm.maphieu = ctpm.maphieu

GROUP BY dg.hoten

ORDER BY tong_so_sach_muon DESC;

7 Liệt kê thông tin của những sách có giá bán cao nhất trong từng loại sách

SELECT ls.tenloai, s.tensach, s.giaban

FROM loaisach ls

JOIN sach s ON ls.maloai = s.maloai

WHERE s.giaban = (SELECT MAX(giaban) FROM sach WHERE maloai = ls.maloai);

8 Tính tổng số tiền phạt mỗi độc giả đã bị phạt và sắp xếp theo tổng số tiền phạt giảm dần:

SELECT dg.hoten, SUM(pp.sotien) AS tong_so_tien_phat

Ngày đăng: 24/11/2024, 20:55

w