Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh phát triển của thị trường bán lẻ, việc kinh doanh sách truyền thống đối mặt với nhiều thách thức trong quản trị và vận hành. Sự bùng phát của đại dịch Covid-19 đã làm thay đổi hành vi tiêu dùng, khiến việc mua sắm trực tiếp tại các cửa hàng sách gặp nhiều trở ngại và thúc đẩy nhu cầu ứng dụng công nghệ thông tin vào mô hình mua bán, quản lý. Bên cạnh đó, các cửa hàng sách truyền thống khi vận hành theo phương thức thủ công thường gặp khó khăn trong việc kiểm soát số lượng đầu sách lớn, quản lý doanh thu, tra cứu hóa đơn, theo dõi xuất nhập tồn và cập nhật chương trình ưu đãi, dẫn đến hao phí thời gian, nhân lực và dễ phát sinh sai sót.

Đề tài "Xây dựng hệ thống bán sách - CBook" được nhóm tác giả tại Trường Đại học Thủ Dầu Một thực hiện trong khuôn khổ đồ án môn học Lập trình Windows, nhằm giải quyết bài toán tự động hóa quy trình quản lý và hỗ trợ bán lẻ sách.

Mục tiêu nghiên cứu:

  1. Nghiên cứu cơ sở lý thuyết và phương pháp phân tích thiết kế hệ thống hướng đối tượng thông qua mô hình UML.
  2. Thiết kế cơ sở dữ liệu quan hệ hoàn chỉnh phục vụ cho nghiệp vụ quản lý bán sách và báo cáo doanh thu.
  3. Xây dựng một ứng dụng máy tính (Desktop Application) chạy trên hệ điều hành Windows với kiến trúc phân tầng, tích hợp các chức năng cốt lõi:
    • Quản lý tài khoản và phân quyền người dùng (Quản trị viên và Nhân viên).
    • Quản lý danh mục sách, tác giả, thể loại và thông tin chi tiết từng đầu sách.
    • Quản lý kho hàng và kiểm soát số lượng tồn kho tự động.
    • Hỗ trợ nghiệp vụ bán hàng, tạo hóa đơn, tính tiền, tích lũy điểm và áp dụng mã ưu đãi.
    • Thống kê doanh thu theo thời gian và xuất báo cáo dữ liệu sang định dạng Microsoft Excel.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Hệ thống quản lý và bán sách CBook.
  • Phạm vi nghiên cứu: Ứng dụng Desktop chạy trên hệ điều hành Windows (yêu cầu từ Windows 7 trở lên, nền tảng .NET Framework phiên bản 4.2 trở lên, độ phân giải màn hình tiêu chuẩn 1920x1080); phạm vi nghiệp vụ tập trung vào quy trình vận hành nội bộ của cửa hàng bán sách bao gồm quản trị nhân sự, kho sách, bán lẻ tại quầy và tổng hợp báo cáo.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và công nghệ sử dụng

Nghiên cứu ứng dụng các nguyên lý công nghệ phần mềm và các công cụ lập trình chuyên dụng trong môi trường Windows:

  • Ngôn ngữ lập trình C# và .NET Framework: C# là ngôn ngữ lập trình thuần hướng đối tượng, hoạt động trên nền tảng Common Language Infrastructure (CLI) với môi trường thực thi và thư viện phong phú từ .NET Framework, hỗ trợ xây dựng ứng dụng Windows Forms (WinForms) trực quan.
  • Hệ quản trị cơ sở dữ liệu Microsoft SQL Server: Sử dụng ngôn ngữ truy vấn Transact-SQL (T-SQL), quản lý dữ liệu theo mô hình quan hệ Khách - Chủ (Client/Server), cho phép lưu trữ tập trung, xử lý đồng thời, thiết lập các ràng buộc toàn vẹn, viết Stored Procedures và Trigger để đồng bộ số liệu tự động.
  • Ngôn ngữ mô hình hóa thống nhất (UML - Unified Modeling Language): Cung cấp hệ thống ký hiệu chuẩn để mô hình hóa cấu trúc tĩnh (Biểu đồ lớp - Class Diagram) và hành vi động của hệ thống (Biểu đồ ca sử dụng - Use Case Diagram, Biểu đồ hoạt động - Activity Diagram, Biểu đồ tuần tự - Sequence Diagram).
  • Mô hình kiến trúc 3 lớp (3-Tier Architecture): Tách biệt hệ thống thành Lớp giao diện (GUI), Lớp xử lý nghiệp vụ (BLL) và Lớp truy xuất dữ liệu (DAL).
  • Công cụ hỗ trợ phát triển: Microsoft Visual Studio (môi trường phát triển tích hợp - IDE để viết mã và thiết kế giao diện), Microsoft SQL Server Management Studio (SSMS - quản trị cơ sở dữ liệu), Sparx Enterprise Architect (thiết kế và vẽ các mô hình UML).

Phương pháp nghiên cứu

  • Phương pháp nghiên cứu tài liệu: Tổng hợp, nghiên cứu các tài liệu chuyên ngành về C#, .NET Framework, giáo trình phân tích thiết kế hệ thống hướng đối tượng bằng UML, cùng các báo cáo, khóa luận và đồ án liên quan.
  • Phương pháp nghiên cứu thực tiễn:
    • Quan sát: Khảo sát quy trình quản lý thực tế tại một số nhà sách trên thị trường.
    • Phỏng vấn: Thu thập yêu cầu nghiệp vụ thực tế từ người mua hàng, chủ cửa hàng và nhân viên thu ngân.
  • Phương pháp tổng hợp và phân tích dữ liệu: Phân loại, chuẩn hóa yêu cầu người dùng để chuyển đổi thành các ca sử dụng, sơ đồ chức năng và mô hình dữ liệu quan hệ.

Nội dung chính theo từng chương

Chương 1. Tổng quan đề tài

Chương 1 giới thiệu lý do lựa chọn đề tài xuất phát từ nhu cầu thực tiễn trong công tác số hóa quy trình quản lý bán lẻ sách. Đề tài xác định rõ mục tiêu xây dựng phần mềm CBook trên môi trường Desktop, làm rõ đối tượng, phạm vi nghiên cứu, các phương pháp tiếp cận và ý nghĩa khoa học - thực tiễn của sản phẩm. Bên cạnh đó, chương tổng kết nền tảng công nghệ gồm ngôn ngữ C#, .NET Framework, hệ quản trị cơ sở dữ liệu Microsoft SQL Server, ngôn ngữ UML cùng các công cụ như Visual Studio, SSMS và Sparx Enterprise Architect.

Chương 2. Khảo sát hiện trạng và xác định yêu cầu

Chương 2 tập trung khảo sát bài toán thực tế và thiết lập các yêu cầu hệ thống:

  • Mô tả chi tiết quy trình nghiệp vụ mua bán sách, sự cần thiết của việc giảm thiểu sai sót so với phương thức ghi chép thủ công.
  • Khảo sát các nhóm đối tượng sử dụng và xác định các yêu cầu chức năng cho từng vai trò:
    • Quản trị viên (Admin): Có toàn quyền can thiệp vào hệ thống (thêm, xóa, sửa, xem thông tin sách, tin tức, sự kiện ưu đãi, danh mục, nhân viên, tài khoản, theo dõi doanh thu).
    • Nhân viên/Người dùng (Staff/User): Thực hiện tìm kiếm sách, thêm sách vào giỏ hàng, thanh toán hóa đơn, xem thông tin cá nhân và đổi mật khẩu.
  • Thiết lập sơ đồ chức năng tổng quát và các ràng buộc phi chức năng: tính bảo mật, toàn vẹn dữ liệu, hiệu năng truy xuất và yêu cầu môi trường vận hành (.NET Framework 4.2+, Windows 7+, độ phân giải 1920x1080).

Chương 3. Phân tích thiết kế hệ thống

Chương 3 trình bày chi tiết quá trình phân tích và mô hình hóa hướng đối tượng bằng công cụ Sparx Enterprise Architect:

  • Tác nhân hệ thống: Xác định 02 tác nhân chính là Người quản lý (Admin) và Nhân viên (Staff).
  • Thiết kế Use Case: Xây dựng biểu đồ Use Case tổng quát và 14 Use Case thành phần kèm bảng đặc tả chi tiết (tiền điều kiện, hậu điều kiện, luồng sự kiện): Đăng nhập, Đăng xuất, Đổi mật khẩu, Kiểm tra số lượng sản phẩm còn lại, Lập báo cáo, Quản lý danh mục, Quản lý hóa đơn, Quản lý nhân viên, Quản lý sản phẩm, Quản lý tài khoản, Quản lý ưu đãi, Thanh toán, Tìm kiếm, Xem thông tin người dùng.
  • Thiết kế Biểu đồ hoạt động (Activity Diagram): Mô tả chi tiết luồng xử lý nghiệp vụ cho từng chức năng tương ứng.
  • Thiết kế Biểu đồ tuần tự (Sequence Diagram): Biểu diễn sự tương tác thông điệp qua lại giữa các đối tượng User, System, và Database trong quá trình thực thi các nghiệp vụ.
  • Thiết kế Biểu đồ lớp (Class Diagram): Xây dựng cấu trúc các lớp đối tượng thực thể trong hệ thống như HOADON, THANHTOAN, QUANTRIVIEN, SACH, KHACHHANG, NHANVIEN cùng các thuộc tính và phương thức xử lý nghiệp vụ cụ thể.

Chương 4. Thiết kế cơ sở dữ liệu

Chương 4 thực hiện chuẩn hóa dữ liệu và xây dựng mô hình cơ sở dữ liệu quan hệ bao gồm:

  • Mô tả 9 thực thể dữ liệu: Bảng cấu trúc chi tiết với tên trường, kiểu dữ liệu, khóa chính (PK), khóa ngoại (FK) và mô tả thuộc tính.
  • Sơ đồ mối quan hệ thực thể (ERD): Thiết lập các mối liên kết toàn vẹn tham chiếu giữa bảng Sách, Thể loại, Tác giả, Quản lý tồn kho, Hóa đơn, Chi tiết hóa đơn, Khách hàng, Nhân viên và Tài khoản.
  • Lập trình cơ sở dữ liệu: Cài đặt các thủ tục lưu trữ (Stored Procedures) và Trigger để tự động hóa xử lý dữ liệu:
    • Thủ tục SL: Thực hiện phép kết nối bảng SACH và QUANTONKHO để truy xuất số lượng tồn kho của đầu sách.
    • Thủ tục st_Thongke: Tính tổng số lượng bán và tổng doanh thu theo từng tháng và năm dựa trên bảng HOADON và CTHOADON.
    • Trigger CTHOADON: Kích hoạt sau thao tác chèn (AFTER INSERT) trên bảng chi tiết hóa đơn để tự động trừ số lượng sách tương ứng trong bảng QUANTONKHO.

Chương 5. Xây dựng và kiểm thử chương trình

Chương 5 hiện thực hóa các chức năng phần mềm trên nền tảng Visual Studio dựa trên mô hình 3 lớp:

  • Lớp GUI (Graphical User Interface): Xây dựng các form giao tiếp trực quan với người dùng.
  • Lớp BLL (Business Logic Layer): Tiếp nhận yêu cầu từ GUI, kiểm tra quy tắc nghiệp vụ và điều hướng gọi DAL.
  • Lớp DAL (Data Access Layer): Trực tiếp kết nối, truy vấn và cập nhật cơ sở dữ liệu SQL Server.
  • Hiện thực hóa các giao diện chính:
    • Form Đăng nhập: Kiểm tra thông tin tài khoản và điều hướng người dùng theo phân quyền (Admin hoặc Nhân viên).
    • Form Bán hàng: Hỗ trợ chọn sách, tìm kiếm, lọc theo thể loại, tự động tính thành tiền, chọn loại khách hàng (Thành viên/Khách vãng lai), tính điểm tích lũy, tính tiền thối lại và in hóa đơn.
    • Form Quản lý người dùng/Nhân viên/Tài khoản: Phục vụ Admin tra cứu danh sách, cập nhật thông tin cá nhân, sửa đổi trạng thái tài khoản.
    • Form Quản lý sách: Thêm mới, cập nhật giá bán, thể loại, tác giả và số lượng tồn.
    • Form Thống kê: Báo cáo số lượt khách, số đơn hàng, doanh số theo kỳ và xuất dữ liệu sang Microsoft Excel.

Thiết kế và triển khai

Kiến trúc phần mềm và cơ sở dữ liệu

Hệ thống CBook được tổ chức theo mô hình phân lớp 3-Tier chuẩn mực:

Thành phần tầng Tên lớp Nhiệm vụ chính trong hệ thống CBook
Tầng giao diện GUI Tiếp nhận tương tác, hiển thị dữ liệu lên các Windows Form, kiểm tra tính hợp lệ sơ bộ của dữ liệu đầu vào trước khi chuyển xuống tầng dưới.
Tầng nghiệp vụ BLL Xử lý logic tính toán tiền bán sách, áp dụng điểm tích lũy, kiểm tra điều kiện đăng nhập, xác thực quyền hạn người dùng.
Tầng dữ liệu DAL Thực thi các câu lệnh SQL, gọi Stored Procedures và Trigger để đọc/ghi dữ liệu từ SQL Server về cho tầng BLL.

Hệ thống cơ sở dữ liệu quan hệ được thiết kế với 9 bảng dữ liệu được chuẩn hóa:

Tên bảng Các thuộc tính chính Khóa chính / Khóa ngoại Mô tả nghiệp vụ
TAIKHOAN Account, Password, MaNV, Roles, TinhTrang, LichSuDN FK: MaNV Lưu trữ tài khoản đăng nhập, quyền hạn, trạng thái sử dụng và lịch sử truy cập.
SACH MaSach, TenSach, MaTheloai, MaTacgia, DonGiaBan PK: MaSach, FK: MaTheloai, MaTacgia Lưu trữ thông tin chi tiết về từng đầu sách.
THELOAI MaTheLoai, TenTheLoai PK: MaTheLoai Danh mục các thể loại sách trong hệ thống.
TACGIA MaTacGia, TenTacGia PK: MaTacGia Thông tin về các tác giả.
QUANTONKHO MaSach, SoLuong FK: MaSach Quản lý số lượng tồn kho của từng đầu sách.
KHACHHANG MaKH, TenKH, DienThoai, Email, DiemTichLuy PK: MaKH Lưu thông tin khách hàng và điểm thưởng tích lũy.
NHANVIEN MaNV, TenNV, Gioitinh, NgaySinh, Dienthoai, Diachi PK: MaNV Thông tin hồ sơ lý lịch nhân viên cửa hàng.
HOADON MaHD, MaKH, MaNV, NgayLapHD PK: MaHD, FK: MaKH, MaNV Lưu thông tin chung của các giao dịch mua sách.
CTHOADON MaHD, MaSach, SoLuong, DonGia FK: MaHD, MaSach Lưu chi tiết từng mặt hàng sách trong một hóa đơn.

Lập trình Stored Procedure và Trigger

Hệ thống cài đặt trực tiếp các đoạn mã xử lý dữ liệu trên SQL Server nhằm đảm bảo tính toàn vẹn và tối ưu tốc độ xử lý:

-- Thủ tục thống kê doanh thu theo tháng và năm
CREATE PROCEDURE [dbo].[st_Thongke]
AS
BEGIN
    SET NOCOUNT ON;
    SELECT 
        MONTH(HOADON.NgayBan) AS Month, 
        YEAR(HOADON.NgayBan) AS Year, 
        SUM(CTHOADON.SoLuong) AS Tong, 
        SUM(CTHOADON.Giaban) AS Tien 
    FROM CTHOADON 
    INNER JOIN HOADON ON CTHOADON.MaHD = HOADON.MaHD
    GROUP BY MONTH(HOADON.NgayBan), YEAR(HOADON.NgayBan);
END
-- Trigger cập nhật số lượng tồn kho sau khi thêm chi tiết hóa đơn
ALTER TRIGGER [dbo].[CTHOADON] 
AFTER INSERT 
AS 
BEGIN
    SET NOCOUNT ON;
    IF EXISTS (SELECT * FROM CTHOADON, inserted WHERE CTHOADON.MaSach = inserted.MaSach)
        UPDATE QUANTONKHO 
        SET QUANTONKHO.SoLuong = QUANTONKHO.SoLuong - inserted.SoLuong
        FROM QUANTONKHO, inserted 
        WHERE QUANTONKHO.MaSach = inserted.MaSach;
END

Kết quả và đóng góp

Kết quả chính

  • Triển khai thành công ứng dụng máy tính CBook đáp ứng đầy đủ các nghiệp vụ quản lý bán lẻ sách trên môi trường Windows.
  • Tự động hóa việc xử lý giỏ hàng: khi thêm sách vào đơn hàng, số lượng sách hiển thị tự động giảm 1 và số lượng trong đơn hàng tăng 1; hệ thống tự động tính thành tiền, tổng tiền và tiền thừa trả lại khách hàng.
  • Tích hợp hệ thống khách hàng thân thiết: cho phép phân loại đối tượng ("Thành viên" hoặc "Khách"), tự động cộng dồn điểm tích lũy (DiemTichLuy) vào tài khoản khách hàng thành viên sau mỗi giao dịch thành công.
  • Hiện thực hóa quy trình phân quyền: Quản trị viên quản lý toàn diện (nhân viên, tài khoản, đầu sách, danh mục, ưu đãi), trong khi Nhân viên chỉ thao tác trong phạm vi bán hàng và tra cứu.
  • Hỗ trợ xuất dữ liệu báo cáo thống kê doanh thu trực tiếp ra tệp tin Excel phục vụ lưu trữ và phân tích.

Đóng góp của đề tài

  • Đưa ra giải pháp tổ chức phần mềm quản lý bán sách hoàn chỉnh từ khâu khảo sát, mô hình hóa UML đến xây dựng giao diện và lập trình cơ sở dữ liệu.
  • Chuẩn hóa mô hình lưu trữ dữ liệu bán lẻ theo cấu trúc 3 lớp, tạo tiền đề thuận lợi cho việc bảo trì, nâng cấp mã nguồn hoặc mở rộng thành phiên bản Web Application trong tương lai.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Giao diện người dùng trên Windows Forms vẫn còn đơn giản, chưa thực sự tối ưu trải nghiệm tương tác.
  • Cơ chế phân quyền trong hệ thống mới dừng ở mức cơ bản (Admin và Staff), chưa được tối ưu hóa sâu theo từng nhóm quyền chi tiết.
  • Các công cụ và môi trường phát triển còn mới mẻ đối với nhóm tác giả nên một số tính năng nâng cao chưa được khai thác triệt để.
  • Một số tính năng phụ trợ (như cơ chế tự động khôi phục mật khẩu trực tuyến khi người dùng quên mật khẩu) chưa được tích hợp trên phần mềm mà vẫn phải liên hệ trực tiếp Quản trị viên để đặt lại.

Hướng nghiên cứu tiếp

  • Nâng cấp và chuyển đổi kiến trúc hệ thống từ ứng dụng Desktop chạy trên Windows sang nền tảng ứng dụng Web (Web Application) để có thể vận hành đa nền tảng trên mọi thiết bị và hệ điều hành.
  • Khảo sát và bổ sung thêm các tính năng nghiệp vụ nâng cao đáp ứng các mô hình bán lẻ sách quy mô lớn.

Giá trị tham khảo

Báo cáo đồ án là tài liệu tham khảo thiết thực cho sinh viên các ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin:

  • Phân tích thiết kế hệ thống: Cung cấp mẫu tài liệu hoàn chỉnh về thiết kế mô hình hướng đối tượng với 14 bộ biểu đồ Use Case, Use Case Description, Activity Diagram và Sequence Diagram xây dựng bằng Sparx Enterprise Architect.
  • Lập trình cơ sở dữ liệu: Cung cấp cấu trúc thiết kế 9 bảng quan hệ chuẩn hóa cùng cú pháp cài đặt Stored Procedure và Trigger thực tế trên Microsoft SQL Server.
  • Lập trình ứng dụng Windows: Cung cấp mô hình triển khai ứng dụng WinForms theo kiến trúc 3 lớp (GUI - BLL - DAL) bằng ngôn ngữ C# và .NET Framework.

Câu hỏi thường gặp

1. Hệ thống CBook phân chia quyền hạn của người dùng như thế nào?
Hệ thống phân chia thành hai nhóm tác nhân chính:

  • Quản trị viên (Admin): Có toàn quyền quản lý hệ thống, bao gồm thêm, xóa, sửa, xem thông tin sách, nhân viên, tài khoản, danh mục, ưu đãi và thống kê doanh thu.
  • Nhân viên (Staff): Chỉ được phép truy cập vào các chức năng liên quan trực tiếp đến bán hàng, xem và tìm kiếm sản phẩm, tạo hóa đơn thanh toán, xem thông tin cá nhân và đổi mật khẩu.

2. Cơ sở dữ liệu của CBook bao gồm những bảng nào và mối quan hệ chính giữa chúng ra sao?
Cơ sở dữ liệu gồm 9 bảng chính: TAIKHOAN, SACH, THELOAI, TACGIA, QUANTONKHO, KHACHHANG, NHANVIEN, HOADON, và CTHOADON. Bảng SACH liên kết khóa ngoại với THELOAI, TACGIA và QUANTONKHO. Bảng HOADON liên kết với KHACHHANG và NHANVIEN, đồng thời kết nối 1-nhiều với CTHOADON để lưu trữ chi tiết các mặt hàng trong đơn hàng.

3. Cơ chế tự động trừ số lượng tồn kho khi bán sách được cài đặt như thế nào?
Cơ chế này được xử lý trực tiếp trên SQL Server thông qua một Trigger mang tên CTHOADON với sự kiện AFTER INSERT. Mỗi khi một dòng chi tiết hóa đơn mới được chèn vào bảng CTHOADON, trigger sẽ tự động cập nhật và trừ đi số lượng tương ứng trong bảng QUANTONKHO theo MaSach.

4. Ứng dụng CBook xử lý chính sách khách hàng thành viên và tích lũy điểm ra sao?
Tại giao diện bán hàng, nhân viên có thể lựa chọn đối tượng khách hàng là "Thành viên" hoặc "Khách". Khi chọn "Thành viên" và nhập mã khách hàng (MaKH), sau khi giao dịch thanh toán thành công, hệ thống sẽ tự động tích lũy điểm thưởng (DiemTichLuy) vào hồ sơ khách hàng để sử dụng cho các ưu đãi ở những lần mua hàng tiếp theo.

5. Yêu cầu môi trường hệ thống để cài đặt và chạy ứng dụng CBook là gì?
Ứng dụng yêu cầu máy tính cài đặt hệ điều hành Windows 7 trở lên, môi trường .NET Framework phiên bản tối thiểu từ 4.2 trở lên, và màn hình hiển thị được thiết kế tối ưu cho độ phân giải 1920x1080.


Kết luận

Đồ án "Xây dựng hệ thống bán sách - CBook" của nhóm sinh viên Trường Đại học Thủ Dầu Một đã hoàn thành việc nghiên cứu, phân tích và hiện thực hóa một phần mềm quản lý bán lẻ sách hoàn chỉnh trên nền tảng Windows Forms. Hệ thống được tổ chức chặt chẽ theo kiến trúc 3 lớp, sử dụng cơ sở dữ liệu quan hệ SQL Server với các Stored Procedure và Trigger tự động hóa nghiệp vụ. Mặc dù giao diện và cơ chế phân quyền vẫn còn một số điểm cần tiếp tục hoàn thiện, đề tài đã đáp ứng tốt các yêu cầu nghiệp vụ thực tế của một cửa hàng sách và mở ra định hướng phát triển ứng dụng trên nền tảng web trong tương lai.