CHUONGI: THIET KE VA CAI DAT CO SO DU LIEU 1 Gidi thiéu so luge vé co sé dir ligu quan ly cira hang sach Quan ly ctra hang sach bao gom sach,thé loại sách, nhân viên, chức vụ, chỉ tiết
Trang 1
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM KHOA CÔNG NGHỆ THÔNG TIN
BAO CAO DO AN CUOI KY HOC PHAN: CAC HE CO SO DU LIEU (DATABASE MANAGEMENT SYSTEMS)
Ung dung quan ly nha sach
SINH VIEN THUC HIEN
1 4501104259-Lé Van Trung
2 4501104215-Tran Viét Thanh
3 4501104067- Nguyén Minh Hai
4 4401104131-Lê Thanh Luân GVHD: Nguyễn Văn Thịnh
TP HO CHI MINH, thang 07 nam 2023
Trang 2
Contents
CHƯƠNGI: _ THIẾT KÉ VÀ CÀI ĐẶT CƠ SỞ DỮ LIỆU - :sc5ccc55cc: 5
L_ Giới thiệu sơ lược về cơ sở dữ liệu quản lý cửa hàng sách - 722-255: 5
2 Các thực thể ở mức khái niệm -5552t 2t Hee 6
3 Bang tầm ảnh hưởng của các ràng buộc toản vẹn - 5s St Exsrưyi II
4 _ Xây dựng mô hình thực thể liên kết của quản lý cửa hàng bán sách 12
3 Mô hình dữ liệu quan hệ quản lý cửa hàng bán sách 2 co 2c 2c s2 sss2 13
6 Lệnh tạo bảng trong SdÏ - 2c 2 1222212111111 151151151111 511 52128111 ca 14 Am: 9 aa 14 6.2 Bảng NHAXUATBAN Q2 TS SH TH HH HH HH HH 14 6.3 Bảng THELOAISACH Q.2 SH HH HH HH HH Hà 15
“a0 15
6.6 Bảng HOADONBANHANG St St SH HH HH He 15 6.7 Bảng CHITIETHOADƠN S.S S HH HH HH HH 15 6.8 Bảng HOADONNHAPHANG S S1 HH HH Hà Hà HH re 16 6.9 Bảng CHITIETHOADONNHAPHANG S2 nhe 16 6.10 Bảng GIOHANG S21 HH HH HH HH 16
7 Lệnh tạo khóa ngoại trong SqQÌ - -.- 222112112121 21 111 1115115115 1111 kh 16
8 Lệnh thêm dữ liệu trong sqÏ - 2c 2c 222112111111 1221 15 115 2111551111511 1H 17
si dcÝẢỶŸ 19 9.1 GetAllBookCategortes oo 19 9.1 GetldByNamePublisher - 1S 1 2122112111551 15E11511 111115125111 11 1211 xe 19 9.2 GetAllBooksAndCafegorIe§ - Q0 010v S112 12 115111 1111811 19
9.4 UpdateBook 2.0 21121112 11 HH5 T5 n5 2k khu 21 9.5 92 e 21
Trang 39.7 GetCategoryHyÏd c1 2.12111221121112 1115111511511 1 111g k1 krrớ 22 9.8 GetPublisherByld 122 1221112112211 111 115111211101 11 8111551112811 Hye 22 9.9 LoginEmployeeByPhone L1 12201122122 H151 115111118111 23 9.10 LogmEmployeeByName 1 2212211211121 152115 1 11 key 23 9.11 GetChriTietHoaDonNhapHiang 2 2 2222222212111 1122511182 x1 teeerre 23
II Backup dữ liệu 5 2 12211121112 215 211 111115 cac H khe 28 CHUONG I CÀI ĐẶT ỨNG DỤNG MINH HỌA ccccccccccrcrrrrrree 29
1 Chức năng danh mục -L 22c 1221122111211 121 1112151211111 1181118112011 1 1118111 k re 29 1.1 Danh mục sách - c2 01T TS g T15 11 kg ng 11111 kg 29 1.2 Danh mục đơn hàng được nhập TT 30
2 Chức năng thống kê - s9 E111 211E1111111 11711101 1 1E EH re 31 2.1 Thống kê các đơn hàng đã bán 5 5c SE HE HE tre rat 31
3 Chức năng tìm kiếm + SE EE1111E11E1121111 117111 1012111 12111 rêu 32
Trang 4CHƯƠNGIV: TÀI LIỆU THAM KHẢO
Trang 5Mở đầu Hiện nay, việc mỗi nhà sách nhập về số lượng lớn sách để đáp ứng kịp nhu câu đọc sách của khách hàng ngày cảng tăng và điều đó dẫn đến công việc quan lý sách thủ công ngày càng phức tạp và khó khăn cho nên để đáp ứng nhu cầu đấy chúng em quyết định sẽ tự mình xây đựng một ứng dụng quản lý nhà sách Và để xây dựng được một ứng dụng như vậy thì chúng em không thể không cám ơn thầy Nguyễn Văn Thịnh cũng đồng thời là giáo viên hướng dẫn của chúng em Thây đã giúp đỡ nhóm chúng em rất nhiễu trong quá trình xây dựng ứng dụng.Chúng em chân thành cám ơn thây rất nhiều
Trang 6GIỚI THIỆU Như đã đề cập đến ở trên , nhu cầu đọc sách của mọi người ngày càng tăng và để giải quyết vấn đề đó chúng em quyết định xây dựng ứng dụng quản lý sách Với ứng dụng
này chúng em đặt ra các tiêu chị sau:
> Giải quyết được khó khăn trong việc tính toán đầu ra/ đầu vào của sách
> Giải quyết được vấn đề kiểm kê số sách còn lại trong kho
> Giao diện thân thiện với người dùng
> Dễ dàng quan sát được doanh thu
Với những tiêu chí trên thì ta cần phải làm những điều sau:
> Đối với kho sách, ta sẽ theo dõi số lượng nhập/ xuất sách, kiểm kê sách tồn kho,
tình trạng của sách,
> Đối với đơn hàng, ta sẽ theo dõi các đơn đặt hàng
> Đối với khách hàng, ta sẽ theo dõi thị hiếu của khách hàng đề từ đó đưa ra hướng giải quyết hợp lý
> Đối với doanh thu, ta sẽ thông kế đê đưa ra tông doanh thu dựa trên những đơn hàng đã bản
Trang 7CHUONGI: THIET KE VA CAI DAT CO SO DU LIEU
1 Gidi thiéu so luge vé co sé dir ligu quan ly cira hang sach
Quan ly ctra hang sach bao gom sach,thé loại sách, nhân viên, chức vụ, chỉ tiết hóa đơn nhập hàng,chỉ tiết hóa đơn, hóa đơn nhập hàng, hóa đơn bán hàng, nhà xuất bản, giỏ hàng
SACH(Id,TenSach, TacGia,Gia, Nam XuatBan, AnhSach,SoLuong,idTheLoaiSach,idNhaX uatBan): sách được nhập từ nhà sản xuất ,khi cửa hàng nhận sách từ nhà sản xuất thì sẽ lập hóa đơn nhận hàng, còn sách khi được bán đi sẽ được thêm vào giỏ hàng, đồng thời được nhân viên lập hóa đơn bán hàng, mỗi sách sẽ thuộc một thể loại chính
NHAN VIEN(d,HoTen,Luong,SoDien Thoai,DiaChi,IdRole):Mỗi nhân viên sẽ có một mã
nhân viên nhất định ,mỗi nhân viên sẽ được đảm nhận một chức vụ trong hệ thống Với
mỗi chức vụ họ sẽ được phân công cũng như nằm giữ những quyền hạn nhất định trong
hệ thống
ROLES(Id,TenRole): Mỗi một nhân viên sẽ có một mã chức vu riêng biệt và tên chức vụ
không được trùng lắp, một chức vụ sẽ được gán cho nhiều nhân viên khác nhau, nhưng một nhân viên thì chỉ có thể giữ một chức vụ
CHITIETHOADONNHAPHANG(id,idHoaDonNhanHang,IdSach, TongHoaDon,SoLuon ø): là thực thể hóa đơn chứa tổng hợp các danh sách hóa đơn của các loại hàng khác
nhau, vì vậy | hoa don chỉ tiết có chứa nhiều hóa đơn nhận hàng, một chỉ tiết hóa đơn sẽ
có nhiều id sách
CHITIETHOADON(Id,IdSach,IdHoaDon,SoLuong, TongHoaDon): la thực thê hóa đơn
tong hop cac loai sach khach hang da dat mua kém theo số lượng khách đã mua
HOADONNHAPHANG(d,NgayXuat,IdNhan Vien,IdNXB):Là thực thê hóa đơn của
từng loại sách mỗi nhân viên sẽ chịu trách nhiệm cho nhiều hóa đơn nhập hành khác nhau,mỗi sách sẽ thuộc một hoặc nhiều NXB khác nhau
HOADONBANHANG(id,NgayXuat,IdNhanVien):Mỗi một hóa đơn khác nhau sẽ được chịu trách nhiệm bởi nhân viên trực lúc đấy
NHAXUATBAN(Id,TenNXB): Một nhà xuất bản sẽ xuất bạn nhiều loại sách khác nhau
của nhiều tác gia khác nhau, các nhà xuất bản khác nhau sẽ có một id riêng biệt với nhau.
Trang 8GIOHANG(d,idSach,SoLuong): Mỗi giỏ hàng sẽ có nhiều loại sách khác nhau , mỗi sách sẽ có số lượng sách tương ứng
THELOAISACH(id, TenTheLoai): Mỗi thể loại sách sẽ có 1d riêng biệt, một sách sẽ có
Trang 10HOADONBANHA
Thực thể CHITIETHOADON(Id,IdSach,IdHoaDon,SoLuong, TongHoaDon):
Trang 11CHITIETHOADO
Trang 134_ Xây dựng mô hình thực thể liên kết của quản lý cửa hàng bán sách
- Bảng CHITIETHOADONNHAPHANG quan hệ một nhiều với Bảng SACH với mối
quan hệ Chứa
- Bảng NHAXUATBAN quan hệ một nhiều với bảng SACH với mối quan hệ Phát hành
Trang 14- Bảng NHAXUATBAN quan hệ một nhiều với bảng HOADONNHAPHANG với mỗi
quan hệ từ
- Bảng HOADONNHAPHANG quan hệ nhiều một với bảng
CHITIETHOADONNHAPHANG với mối quan hệ gồm
- Bảng NHANVIEN quan hệ một nhiều với bảng HOADONNHAPHANG với mỗi quan
hệ quản lý
- Bảng ROLES quan hệ một một với báng NHANVIEN với mỗi quan hệ giữ
- Bảng NHANVIEN quan hệ một nhiều với bảng HOADONBANHANG với mối quan hệ
xuất
- Bảng HOADONBANHANG quan hệ nhiều một với bảng CHITIETHOADON với mỗi
quan hệ chứa
- Bang SACH quan hệ một nhiều với bảng CHITIETHOADON với mối quan hệ có
- Bảng SACH quan hệ một một với THELOAISACH với mối quan hệ thuộc
-Bảng SACH quan hệ nhiều một với GIOHANG với mỗi quan hệ gồm
5 Mô hình dữ liệu quan hệ quản lý cửa hàng bán sách
CHITIETHOADONNHAPHANG(id,idHoaDonNhanHang,IdSach, TongHoaDon,SoLuon
g)
Trang 15216 TenTheLoa
Trang 166 Lénh tao bang trong sql
6.1 Bang SACH
create table SACH
Id int identity(1,1), TenSach nvarchar(3@), TacGia nvarchar (30), Gia int,
NamXuatBan datetime, AnhSach image,
SoLuong int,
IdTheLoaiSach int, TdNhaXuatBan int, primary key (Id)
6.2 Bang NHAXUATBAN
create table NHAXUATBAN
Id int identity(1,1), TenNXB nvarchar (39),
primary key (Id)
6.3 Bang THELOAISACH
create table THELOAISACH
Id int identity(1,1), TenTheLoai nvarchar (30) primary key (Id)
6.4 Bang NHANVIEN
create table NHANVIEN
(
Id int identity(1,1), HoTen nvarchar(3@) not null, Luong int,
SoDienThoai char(10) , DiaChi nvarchar(5@), IdRole int,
Trang 187 Lệnh tạo khóa ngoại trong sql
ALTER TABLE GIOHANG
ADD CONSTRAINT FK_GIOHANG_SACH FOREIGN KEY (IdSach) REFERENCES SACH(id)
ALTER TABLE NHANVIEN
ADD CONSTRAINT FK_NV_ROLE FOREIGN KEY (IdRole) REFERENCES Roles(id)
ALTER TABLE SACH
ADD CONSTRAINT FK_SACH_THELOAI FOREIGN KEY (IdTheLoaiSach) REFERENCES THELOAISACH(Id) ALTER TABLE SACH
ADD CONSTRAINT FK_SACH_NHAXUATBAN FOREIGN KEY (IdNhaXuatBan) REFERENCES NHAXUATBAN(Id) ALTER TABLE HOADONBANHANG
ADD CONSTRAINT FK_HOADON_NHANVIEN FOREIGN KEY (IdNhanVien) REFERENCES NHANVIEN( Id) ALTER TABLE HOADONNNHAPHANG
ADD CONSTRAINT FK_HOADON_NHAPHANG FOREIGN KEY (IdNhanVien) REFERENCES NHANVIEN( Id) ALTER TABLE HOADONNNHAPHANG
ADD CONSTRAINT FK_HOADON_NHAPHANG_NXB FOREIGN KEY (IdNXB) REFERENCES NHAXUATBAN (Id) ALTER TABLE CHITIETHOADONNHAPHANG
ADD CONSTRAINT FK_CHITIETNHAPHANG_HOADON FOREIGN KEY (IdHoaDonNhapHang) REFERENCES
ALTER TABLE CHITIETHOADONNHAPHANG
ADD CONSTRAINT FK_CHITIETNHAPHANG_SACH FOREIGN KEY (IdSach) REFERENCES SACH(Id) ALTER TABLE CHITIETHOADON
ADD CONSTRAINT FK_CHITIET_SACH FOREIGN KEY (IdSach) REFERENCES SACH(Id)
ALTER TABLE CHITIETHOADON
8 Lệnh thêm dữ liệu trong sql
insert into NHAXUATBAN(TenNXB) values(N'Nhà Xuất Bản Kim Đồng');
insert into NHAXUATBAN(TenNXB) values(N'Nhà Xuất Bản Lao Động');
insert into NHAXUATBAN(TenNXB) values(N'Nhà Xuất Bản Dinh Ti Books');
insert into NHAXUATBAN(TenNXB) values(N'Nhà Xuất Bản Trẻ');
insert into NHAXUATBAN(TenNXB) values(N'Nhà Xuất Bản Đông A');
Trang 19insert into THELOAISACH(TenTheLoai) values (N'Tiéu Thuyết");
insert into THELOAISACH(TenTheLoai) values (N'Phaét Trién Ban Than‘);
insert into SACH(TenSach, TacGia, Gia, NamXuatBan, SoLuong, IdTheLoaiSach, IdNhaXuatBan, AnhSach)
values (N'Đại Quản Gia Là Ma Hoàng', N'Đang Cập Nhật', 109999, '12/06/2092',19, 1, 1, (select * from openrowset(Bulk 'D: \DatabaseManagementSystem\Đồ án cuối
insert into SACH(TenSach, TacGia, Gia, NamXuatBan, SoLuong, IdTheLoaiSach, IdNhaXuatBan, AnhSach)
values (N'One Punch Man', N'ONE - Murata Yuusuke', 90000, '92/01/1998',12, 1, 1, (select
STNGLE_BLOB)as AnhSach));
insert into SACH(TenSach, TacGia, Gia, NamXuatBan, SoLuong, IdTheLoaiSach, IdNhaXuatBan, AnhSach)
values (N'Võ Luyện Đỉnh Phong', N'Đang Cập Nhật', 99999, '12/01/1998',12, 1, 2, (select *
from openrowset(Bulk 'D: \DatabaseManagementSystem\Đồ án cuối ki\Anh\vo-luyen-dinh- phong.png', SINGLE_BLOB)as AnhSach));
insert into SACH(TenSach, TacGia, Gia, NamXuatBan, SoLuong, IdTheLoaiSach, IdNhaXuatBan, AnhSach)
values (N'Tu Duy MO', N'Nguyễn Anh Dũng', 199999, '11/26/2023',12, 2, 3, (select * from
STNGLE_BLOB)as AnhSach));
insert into SACH(TenSach, TacGia, Gia, NamXuatBan, SoLuong, IdTheLoaiSach, IdNhaXuatBan, AnhSach)
values (N'Muôn Kiếp Nhân Sinh', N'Đang Cập Nhật', 120000, '12/12/1995',12, 3, 4, (select
* from openrowset (Bulk 'D:\DatabaseManagementSystem\Đổ án cuối
insert into SACH(TenSach, TacGia, Gia, NamXuatBan, SoLuong, IdTheLoaiSach, IdNhaXuatBan, AnhSach)
values (N'Kì Án Săn Ma', N'Gerald Brittle', 159000, '92/92/2013',12, 4, 5, (select * from
STNGLE_BLOB)as AnhSach));
insert into SACH(TenSach, TacGia, Gia, NamXuatBan, SoLuong, IdTheLoaiSach, IdNhaXuatBan, AnhSach)
values (N'Điểm Tĩnh Và Nóng Giận', N'Tạ Quốc KẾ', 89099, '12/04/2922',12, 4, 5, (select
* from openrowset (Bulk 'D:\DatabaseManagementSystem\Đổ án cuối
insert into Roles(TenRole) values ('ADMIN');
insert into Roles(TenRole) values ('NHANVIEN');
insert into NHANVIEN(HoTen, Luong, SoDienThoai, DiaChi, IdRole) values (N'Nguyén Minh
Hải', 1999999, 0938718496, N'Nha Trang', 1);
insert into NHANVIEN(HoTen, Luong, SoDienThoai, DiaChi, TdRole) values (N'Việt Thành",
990999, 9938715246, N'Quận 1', 2);
insert into NHANVIEN(HoTen, Luong, SoDienThoai, DiaChi, IdRole) values (N'Văn Trung’,
99099999, 9938562482, N'Gò Vấp', 2);
Trang 20990090, 0938412634, N'Quận 19', 2);
insert into HOADONBANHANG (NgayXuat, IdNhanVien) values ('@7/31/2023', 2);
insert into HOADONBANHANG (NgayXuat, IdNhanVien) values ('12/02/2023', 3);
insert into HOADONBANHANG (NgayXuat, IdNhanVien) values ('10/14/2023', 4);
insert into HOADONBANHANG (NgayXuat, IdNhanVien) values ('@5/16/2023', 2);
insert into CHITIETHOADON(IdSach, IdHoaDon, SoLuong, TongHoaDon) values (2, 1, 1, 90000); insert into CHITIETHOADON(IdSach, IdHoaDon, SoLuong, TongHoaDon) values (3, 2, 2,
100909) ;
insert into CHITIETHOADON(IdSach, IdHoaDon, SoLuong, TongHoaDon) values (4, 3, 1, 90000); insert into CHITIETHOADON(IdSach, IdHoaDon, SoLuong, TongHoaDon) values (6, 5, 1, 90000); insert into HOADONNNHAPHANG(IdNXB, NgayXuat, IdNhanVien) values (1, '@8/01/2023', 1);
insert into CHITIETHOADONNHAPHANG( IdHoaDonNhapHang, IdSach, TongHoaDon, SoLuong) values
Lệnh tạo procedure va goi procedure GetAllBookCategories:
Lay ra tat ca thé loai sach
create procedure GetAllBookCategories
create proc getallNhaxXuatBan
create procedure GetAl1NhaXuatBan
as
begin
1.1 GetId ByNamePublisher
Lénh tao procedure va goi procedure GetldByNamePublishe:
Lay ra tén nha xuat ban
Trang 21create proc getallbook
CREATE PROCEDURE GetAllBooksAndCategories
Trang 22UPDATE SACH
SET SoLuong = SoLuong + @SoLuong
WHERE TenSach = @TenSach
call proc addbook
DECLARE @ImageData VARBINARY (MAX) ;
SELECT @ImageData = (SELECT * FROM OPENROWSET (BULK 'D: \DatabaseManagementSystem\Đổ án
EXEC AddBook
@TenSach = N'Đại Quản Gia Là Ma Hoàng",
@TacGia = N'Eiichiro Oda’,