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

Trong bối cảnh nền kinh tế dịch vụ hiện đại, ngành Ẩm thực và Đồ uống (Food & Beverage - F&B) đang ghi nhận tốc độ tăng trưởng mạnh mẽ, trong đó mô hình kinh doanh quán cà phê phát triển đặc biệt nhanh chóng. Sự gia tăng nhanh về quy mô vận hành và lưu lượng khách hàng đặt ra áp lực lớn đối với công tác quản lý. Tại nhiều cơ sở, phương pháp quản trị truyền thống dựa trên sổ sách hoặc ghi chép thủ công bộc lộ nhiều hạn chế nghiêm trọng: tốn kém thời gian, dễ xảy ra sai sót khi tính toán hóa đơn trong các khung giờ cao điểm, nhân viên gặp khó khăn trong việc ghi nhớ danh mục món ăn và các chương trình khuyến mãi, đồng thời việc theo dõi doanh thu thiếu tính tức thời và chính xác.

Nhằm giải quyết những khó khăn thực tiễn trên, đề tài "Xây dựng ứng dụng quản lý quán cà phê" được nhóm sinh viên Khoa Hệ thống Thông tin, Trường Đại học Công nghệ Thông tin – ĐHQG-HCM thực hiện trong khuôn khổ đồ án thực hành môn học Hệ quản trị cơ sở dữ liệu (mã môn IS210).

Mục tiêu nghiên cứu và xây dựng hệ thống bao gồm:

  1. Hệ thống hóa và tự động hóa quy trình vận hành quán cà phê thông qua phần mềm chuyên dụng.
  2. Xây dựng phân hệ chức năng hoàn chỉnh: Order tại quầy, quản lý thông tin sản phẩm/thực đơn, quản lý thông tin và trạng thái nhân viên, quản lý tài khoản và phân quyền truy cập, quản lý thông tin và chính sách tích điểm khách hàng thân thiết, quản lý mã khuyến mãi và thống kê doanh thu.
  3. Thiết kế cơ sở dữ liệu quan hệ chuẩn hóa mức vật lý, thiết lập hệ thống ràng buộc toàn vẹn và bảng tầm ảnh hưởng tương ứng.
  4. Xây dựng giao tác (transaction), cài đặt các hàm thủ tục lưu trữ (stored procedure), bộ kích hoạt (trigger) và triển khai các giải pháp kiểm soát truy xuất đồng thời nhằm đảm bảo tính toàn vẹn, nhất quán của dữ liệu.

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

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ bán hàng, quản lý nhân sự, chăm sóc khách hàng, quản lý hóa đơn và kiểm soát dữ liệu giao dịch trong mô hình quán cà phê.
  • Phạm vi không gian và thời gian: Nghiên cứu thực tế tại hệ thống Quán cà phê PING (TP. Hồ Chí Minh), thu thập số liệu và triển khai phân tích trong năm 2023.

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

Đề tài kết hợp giữa lý thuyết chuyên sâu về hệ quản trị cơ sở dữ liệu quan hệ và quy trình kỹ thuật phần mềm ứng dụng:

  • Cơ sở lý thuyết:

    • Lý thuyết mô hình hóa dữ liệu quan hệ (Relational Data Model) mức quan niệm và mức vật lý.
    • Lý thuyết về ràng buộc toàn vẹn (Integrity Constraints) bao gồm: ràng buộc khóa chính (Primary Key), ràng buộc khóa ngoại (Foreign Key) và các ràng buộc miền giá trị/nghiệp vụ.
    • Lý thuyết về quản lý giao tác (Transaction Management) và các mức cô lập giao tác trong Java/JDBC: Default, Read Uncommitted, Read Committed, Repeatable Read, Serializable.
    • Lý thuyết về tương tranh dữ liệu và các hiện tượng bất thường khi truy xuất đồng thời: Mất cập nhật (Lost Update), Đọc dữ liệu rác (Dirty Read / Uncommitted Data), Đọc không lặp lại (Non-repeatable Read), Đọc bóng ma (Phantom Read) và Khóa chết (Deadlock).
  • Phương pháp nghiên cứu thực tế:

    • Phương pháp khảo sát hiện trạng và phỏng vấn chuyên sâu: Nhóm tác giả xây dựng bảng kế hoạch phỏng vấn chi tiết và tiến hành thu thập thông tin trực tiếp từ 4 nhân sự chủ chốt tại quán cà phê PING gồm: Quản lý hệ thống (Hoàng Gia Lộc), Nhân viên vận hành (Võ Hồng Kim Anh), Trưởng bộ phận chăm sóc khách hàng (Vũ Thanh Doan) và Kế toán (Trần Thị Mỹ Xoan).
    • Phương pháp phân tích - tổng hợp so sánh: Đánh giá ưu điểm và hạn chế của các giải pháp POS hiện hành trên thị trường (eHopper, Lightspeed, SAPO, MISA CUKCUK) để xác định yêu cầu chức năng và phi chức năng cho hệ thống mới.
    • Phương pháp thiết kế và cài đặt hệ thống: Thiết kế lược đồ CSDL quan hệ, lập bảng tầm ảnh hưởng cho 18 ràng buộc toàn vẹn, lập trình giao tác, thủ tục lưu trữ trên MySQL và xây dựng giao diện ứng dụng trên nền tảng Java.

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

Báo cáo đồ án được cấu trúc thành 08 chương nội dung cụ thể như sau:

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

Trình bày tính cấp thiết của đề tài trong ngành dịch vụ F&B, nêu rõ phát biểu bài toán quản trị quán cà phê với 2 nhóm nhân sự (part-time và full-time) cùng các phân quyền tương ứng. Xác định các mục tiêu cốt lõi và giới thiệu tổng quát bố cục 8 chương của báo cáo.

Chương 2. Xác định và phân tích yêu cầu

  • Khảo sát hiện trạng: Lập kế hoạch phỏng vấn chi tiết (thời lượng 180 phút vào ngày 25/03/2023) bao gồm 6 chủ đề: quản lý nhân viên, khách hàng, sản phẩm, khuyến mãi, hóa đơn và tài chính.
  • Kết quả khảo sát nghiệp vụ:
    • Nhân sự: Chia thành 5 vị trí (phục vụ, pha chế, thu ngân, kế toán, quản lý). Lương part-time tính theo giờ làm việc thực tế; lương full-time tính theo hệ số cố định kèm mức thưởng chuyên cần (500.000 VNĐ).
    • Khách hàng: Phân hạng thành 3 cấp bậc gồm Member (mới đăng ký), Silver (tích lũy đủ 150 điểm, chiết khấu 5%), Gold (tích lũy đủ 300 điểm, chiết khấu 8%). Quy đổi 1 điểm tương ứng 10.000 VNĐ; điểm số được làm mới định kỳ vào ngày 01/01 hằng năm.
    • Khảo sát hệ thống POS thị trường: Phân tích chi tiết tính năng và hạn chế về chi phí, khả năng tùy biến của eHopper, Lightspeed, SAPO và MISA CUKCUK.
  • Yêu cầu phần mềm: Xác định cụ thể các yêu cầu chức năng (lưu trữ, tìm kiếm, order, thanh toán, tích điểm, quản lý nhân viên, sản phẩm, khuyến mãi, báo cáo) và các yêu cầu phi chức năng (vận hành trên máy tính bàn, tốc độ truy cập cao, tính toán chính xác, giao diện thân thiện, bảo mật phân quyền).

Chương 3. Thiết kế dữ liệu

Thiết lập mô hình dữ liệu quan hệ mức vật lý gồm 7 thực thể chính và ánh xạ cơ sở dữ liệu chi tiết:

  • EMPLOYEES: Lưu trữ thông tin nhân viên, mã số thuế, số hợp đồng, phân loại part-time/full-time và trạng thái làm việc.
  • CUSTOMERS / CUSTOMER: Lưu trữ thông tin cá nhân, ngày đăng ký, điểm tích lũy và hạng thành viên.
  • CATEGORY & FOOD_ITEM: Quản lý danh mục và danh sách sản phẩm, đơn giá.
  • DISCOUNT: Quản lý thông tin khuyến mãi, số lượng, phần trăm giảm giá và thời hạn áp dụng.
  • BILL & BILL_DETAIL: Quản lý thông tin hóa đơn tổng và chi tiết từng món hàng trong đơn.
  • SYSTEM_ACCESS: Quản lý tài khoản đăng nhập, mật khẩu, phân quyền và liên kết với mã nhân viên.

Xây dựng và đánh giá bảng tầm ảnh hưởng chi tiết cho 18 ràng buộc toàn vẹn (R1 đến R18), phân loại thành: ràng buộc khóa chính (R1–R8), ràng buộc khóa ngoại (R9–R14) và ràng buộc ngữ nghĩa nghiệp vụ (R15–R18).

Chương 4. Công nghệ sử dụng

Trình bày đặc điểm, kiến trúc và vai trò của các công nghệ được sử dụng để phát triển hệ thống:

  • Hệ quản trị cơ sở dữ liệu quan hệ MySQL (sử dụng phiên bản mã nguồn mở MySQL Community Edition).
  • Môi trường phát triển tích hợp (IDE) NetBeans.
  • Giao diện kết nối cơ sở dữ liệu Java Database Connectivity (JDBC) cho phép ứng dụng Java thực thi các câu lệnh SQL và quản lý giao tác.

Chương 5. Xây dựng và quản lý giao tác

  • Phân tích cơ chế quản lý giao tác trong Java/JDBC và các mức cô lập (Transaction Isolation Levels).
  • Thiết kế danh sách các Trigger bảo đảm toàn vẹn dữ liệu:
    • tg_check_duplicate_category: Kiểm tra chống trùng lặp tên danh mục.
    • tg_check_duplicate_customerPhone: Kiểm tra chống trùng lặp số điện thoại khách hàng.
    • tg_check_start_date: Kiểm tra ràng buộc ngày bắt đầu thành viên phải sau ngày sinh.
    • tg_increment_customerID: Tự động tăng mã định danh khách hàng khi đăng ký mới.
  • Xây dựng danh sách các Stored Procedure phục vụ nghiệp vụ và thống kê:
    • Thủ tục xóa danh mục sản phẩm (xóa liên đới các sản phẩm liên quan).
    • Thủ tục thống kê các món bán chạy nhất trong một khoảng thời gian.
    • Thủ tục hiển thị doanh thu theo từng tháng trong năm và theo từng ngày trong tháng.
    • Thủ tục tra cứu số lượng và danh sách nhân viên theo trạng thái làm việc.

Chương 6. Xử lý truy xuất đồng thời

Nghiên cứu và mô phỏng 5 bài toán tranh chấp dữ liệu kinh điển trong môi trường đa người dùng: Lost Update, Dirty Read, Non-repeatable Read, Phantom Read và Deadlock. Nhóm tác giả thiết lập các kịch bản thực nghiệm trên các Stored Procedure, phân tích nguyên nhân gốc rễ và đưa ra giải pháp xử lý thông qua việc áp dụng mức cô lập thích hợp (như Repeatable Read, Serializable) cùng kỹ thuật khóa dữ liệu.

Chương 7. Thiết kế giao diện

Mô tả cấu hình môi trường cài đặt, môi trường phát triển và triển khai hệ thống. Trình bày chi tiết cấu trúc và chức năng của các màn hình giao diện người dùng:

  • Màn hình Đăng nhập và Trang chủ điều hướng.
  • Màn hình Quản lý nhân viên (Thêm, Cập nhật thông tin nhân viên).
  • Màn hình Quản lý khách hàng (Thêm mới, Cập nhật thông tin khách hàng).
  • Màn hình Quản lý sản phẩm, Quản lý danh mục và Quản lý khuyến mãi (Thêm mã giảm giá).
  • Màn hình Quản lý hóa đơn và Quản lý tài khoản hệ thống.
  • Màn hình Order bán hàng tại quầy.
  • Phân hệ Báo cáo doanh thu: Thống kê doanh thu theo tháng, doanh thu theo năm, thống kê món bán chạy và chi tiết sản phẩm bán theo ngày.

Chương 8. Đánh giá kết quả và hướng phát triển

Tổng kết mức độ hoàn thành các mục tiêu ban đầu của đồ án, chỉ ra các điểm còn tồn tại và đề xuất phương hướng hoàn thiện ứng dụng về cả hai khía cạnh: tối ưu hóa kỹ thuật hệ thống và nâng cao kỹ năng vận hành của con người.


Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình ứng dụng máy tính (Desktop Application) kết nối cơ sở dữ liệu quan hệ, tập trung vào tính toàn vẹn dữ liệu và kiểm soát tương tranh.

1. Cấu trúc lược đồ cơ sở dữ liệu

Lược đồ dữ liệu vật lý bao gồm 7 bảng với các trường thông tin và ràng buộc cốt lõi:

Tên bảng Khóa chính Khóa ngoại Mô tả trường dữ liệu chính
EMPLOYEES employeeID Không employeeName, employeePhone, employeeCID, employeeType (fulltime/parttime), employeePosition, employeeTaxID, employeeContractID, status (Đang làm việc/Đã nghỉ)
CUSTOMERS customerID Không customerName, customerDOB, customerPhone, customerStartDate, customerRate (Member/Silver/Gold), customerPoint
CATEGORY categoryID Không categoryName
FOOD_ITEM itemID categoryID $\rightarrow$ CATEGORY itemName, itemPrice, categoryName
DISCOUNT discountID Không discountName, discountQuantity, discountValue, discountStartDay, discountEndDay
BILL billID employeeID $\rightarrow$ EMPLOYEES
customerID $\rightarrow$ CUSTOMERS
billDate, customerName, billPrice, customerPhone
BILL_DETAIL billID, itemID billID $\rightarrow$ BILL
itemID $\rightarrow$ FOOD_ITEM
itemName, quantity, totalPrice
SYSTEM_ACCESS sysUsername employeeID $\rightarrow$ EMPLOYEES sysPassword, type

2. Hệ thống ràng buộc toàn vẹn (RBTV) tiêu biểu

Hệ thống thiết lập 18 ràng buộc toàn vẹn có đánh giá bảng tầm ảnh hưởng cụ thể:

  • Ràng buộc khóa chính (R1–R8): Đảm bảo tính duy nhất của các khóa chính trên tất cả các quan hệ (customerID, employeeID, categoryID, itemID, discountID, billID, bộ đôi (billID, itemID), sysUsername).
  • Ràng buộc khóa ngoại (R9–R14): Duy trì tính tham chiếu giữa sản phẩm - danh mục, hóa đơn - nhân viên, hóa đơn - khách hàng, chi tiết hóa đơn - hóa đơn, chi tiết hóa đơn - sản phẩm, tài khoản - nhân viên.
  • Ràng buộc miền giá trị và nghiệp vụ (R15–R18):
    • R15: employeeType $\in$ {'fulltime', 'parttime'}.
    • R16: status $\in$ {'Đang làm việc', 'Đã nghỉ'}.
    • R17, R18: Kiểm tra tính hợp lệ logic của thời gian: $\text{Ngày sinh (customerDOB)} < \text{Ngày đăng ký thành viên (customerStartDate)}$.

3. Kiểm soát tương tranh và mức cô lập giao tác

Nhóm tác giả tiến hành cài đặt kiểm soát giao tác thông qua Java JDBC, thử nghiệm với 4 mức cô lập chuẩn của SQL/JDBC:

  • Read Uncommitted: Cho phép đọc dữ liệu chưa commit, dễ phát sinh hiện tượng Dirty Read.
  • Read Committed: Ngăn chặn Dirty Read, dữ liệu chỉ được đọc khi giao tác khác đã commit.
  • Repeatable Read: Đảm bảo một giao tác đọc lại một bản ghi nhiều lần luôn nhận cùng một giá trị, ngăn chặn hiện tượng Non-repeatable Read.
  • Serializable: Mức cô lập cao nhất, thực thi giao tác tuần tự hóa, ngăn chặn hoàn toàn hiện tượng Phantom Read và xung đột tương tranh nhưng giảm thông lượng xử lý.

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

1. Kết quả chính đạt được

  • Xây dựng thành công ứng dụng quản lý quán cà phê hoàn chỉnh trên máy tính bàn, đáp ứng đầy đủ chu trình nghiệp vụ từ order, tính tiền, áp mã khuyến mãi, phân hạng khách hàng đến xuất báo cáo tài chính.
  • Thiết kế hệ thống cơ sở dữ liệu quan hệ chặt chẽ gồm 7 bảng dữ liệu, 18 ràng buộc toàn vẹn đã được chứng minh và kiểm soát qua bảng tầm ảnh hưởng.
  • Cài đặt thành công 4 Trigger kiểm tra dữ liệu đầu vào tự động và hệ thống Stored Procedure phục vụ các chức năng báo cáo động (doanh thu theo ngày/tháng/năm, món bán chạy).
  • Mô phỏng và đề xuất giải pháp xử lý thành công 5 vấn đề xung đột truy xuất đồng thời trong CSDL.

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

  • Đóng góp một giải pháp phần mềm quản lý quán cà phê mang tính thực tiễn cao, dựa trên quá trình khảo sát nghiệp vụ thực tế tại cơ sở kinh doanh F&B (quán PING).
  • Cung cấp một tài liệu kỹ thuật hoàn chỉnh về quy trình thiết kế và triển khai CSDL quan hệ theo chuẩn học thuật của Khoa Hệ thống Thông tin (Đại học Công nghệ Thông tin – ĐHQG-HCM).

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

Dựa trên nội dung tổng kết tại đồ án, nhóm tác giả chỉ ra các hạn chế và định hướng phát triển:

  • Về hệ thống:
    • Phần mềm hiện tại mới triển khai trên môi trường máy tính cục bộ, chưa hỗ trợ đa nền tảng (nền tảng web hoặc ứng dụng di động).
    • Cần nâng cấp tính năng tự động đồng bộ và kết nối dữ liệu đám mây để hỗ trợ quản lý chuỗi nhiều chi nhánh quán cà phê.
    • Tích hợp thêm các cổng thanh toán điện tử trực tuyến và hỗ trợ xuất hóa đơn điện tử tự động.
  • Về con người:
    • Cần hoàn thiện tài liệu hướng dẫn sử dụng chi tiết và quy trình đào tạo nhân viên để giảm thiểu sai sót trong thao tác nhập liệu thực tế.

Giá trị tham khảo

Đồ án là nguồn tài liệu tham khảo có giá trị chuyên môn cao đối với:

  • Sinh viên ngành Hệ thống Thông tin, Kỹ thuật Phần mềm, Khoa học Máy tính: Học tập phương pháp lập bảng kế hoạch phỏng vấn thu thập yêu cầu thực tế, phương pháp chuẩn hóa mô hình dữ liệu quan hệ và cách thức trình bày bảng tầm ảnh hưởng của các ràng buộc toàn vẹn.
  • Người học môn Hệ quản trị cơ sở dữ liệu (IS210): Tham khảo cấu trúc viết Trigger, Stored Procedure và cách thức thực nghiệm, xử lý các tình huống tranh chấp đồng thời (Concurrency Control) qua các mức cô lập trong Java/JDBC.
  • Các nhà phát triển ứng dụng POS: Tham khảo mô hình phân hạng khách hàng thân thiết và cấu trúc quản lý khuyến mãi/hóa đơn trong ngành F&B.

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

1. Hệ thống phân loại nhân viên và tính lương được thiết kế dựa trên quy tắc nào?
Theo kết quả khảo sát tại quán PING, nhân viên được chia thành 2 loại: Part-time (phục vụ, pha chế, kho; tính lương theo số giờ làm việc thực tế theo ca) và Full-time (thu ngân, kế toán, quản lý; có thêm thông tin mã số thuế, mã hợp đồng và hưởng lương cố định theo vị trí kèm thưởng chuyên cần 500.000 VNĐ nếu đi làm đầy đủ).

2. Chính sách phân hạng khách hàng thân thiết được quy định ra sao trong cơ sở dữ liệu?
Khách hàng được chia thành 3 hạng: Member (đăng ký mới, 0 điểm, không chiết khấu), Silver (tích lũy từ 150 điểm, chiết khấu 5% hóa đơn), và Gold (tích lũy từ 300 điểm, chiết khấu 8% hóa đơn). Điểm tích lũy tính theo tỷ lệ 1 điểm = 10.000 VNĐ và hệ thống sẽ làm mới cấp độ vào ngày 01/01 hằng năm.

3. Đồ án xây dựng những Trigger nào để đảm bảo tính toàn vẹn dữ liệu?
Nhóm tác giả đã xây dựng 4 Trigger chính gồm: tg_check_duplicate_category (chống trùng danh mục), tg_check_duplicate_customerPhone (chống trùng số điện thoại khách hàng), tg_check_start_date (bảo đảm ngày đăng ký thành viên lớn hơn ngày sinh) và tg_increment_customerID (tự động phát sinh mã định danh khách hàng).

4. Những hiện tượng truy xuất đồng thời nào đã được nhóm nghiên cứu và giải quyết?
Đồ án đã phân tích và giải quyết 5 hiện tượng xung đột dữ liệu: Mất cập nhật (Lost Update), Đọc dữ liệu chưa commit (Dirty Read / Uncommitted Data), Đọc không lặp lại (Non-repeatable Read), Đọc bóng ma (Phantom Read) và Khóa chết (Deadlock).

5. Ứng dụng được xây dựng bằng những công nghệ và môi trường nào?
Ứng dụng sử dụng Hệ quản trị cơ sở dữ liệu MySQL (phiên bản Community), môi trường lập trình NetBeans, ngôn ngữ lập trình Java và giao diện kết nối cơ sở dữ liệu JDBC.


Kết luận

Đồ án thực hành môn học Hệ quản trị cơ sở dữ liệu "Xây dựng ứng dụng quản lý quán cà phê" của nhóm sinh viên Trường Đại học Công nghệ Thông tin – ĐHQG-HCM đã giải quyết trọn vẹn bài toán tự động hóa vận hành quán cà phê từ khảo sát thực tế đến cài đặt phần mềm. Hệ thống CSDL quan hệ được thiết kế chuẩn mực với 7 thực thể, 18 ràng buộc toàn vẹn và các cơ chế xử lý giao tác, kiểm soát truy xuất đồng thời chặt chẽ trên nền tảng Java và MySQL. Đây là tài liệu học thuật và kỹ thuật mẫu mực, có giá trị ứng dụng và tham khảo cao cho sinh viên khối ngành Công nghệ thông tin và các nhà phát triển hệ thống quản lý bán hàng.