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

Trong mô hình kinh doanh bán lẻ và dịch vụ ẩm thực hiện đại, việc mở rộng quy mô thông qua hình thức nhượng quyền thương mại (franchise) đòi hỏi hệ thống quản trị dữ liệu phải đảm bảo tính đồng bộ, nhất quán và toàn vẹn cao giữa công ty mẹ và các chi nhánh. Báo cáo học phần "Cơ sở dữ liệu nâng cao" của nhóm tác giả Trần Minh Quốc, Lê Tấn Trường Huy và Phan Anh Tiến (Khoa Công nghệ Thông tin, Trường Đại học Ngoại ngữ - Tin học TP. Hồ Chí Minh, 2023) tập trung giải quyết bài toán quản lý chuỗi cửa hàng cà phê và bán đồ ăn nhượng quyền.

Về bối cảnh thực tiễn, doanh nghiệp được khảo sát là một tổ chức kinh doanh trong lĩnh vực cà phê và thực phẩm với cơ cấu tổ chức gồm: Giám đốc lãnh đạo; dưới quyền Giám đốc là các bộ phận Quản lý chi nhánh, Quản lý đối tác nhượng quyền, Quản lý nhân sự, Quản lý chất lượng sản phẩm, Mua hàng, Bán hàng và Kinh doanh. Mỗi bộ phận đảm nhiệm các chức năng nghiệp vụ riêng biệt như giám sát chi nhánh, tiếp nhận phản hồi, đánh giá đối tác, thương thảo nhà cung cấp, bán hàng trực tiếp và theo dõi doanh thu.

Mục tiêu và các nhiệm vụ nghiên cứu chính của đề tài bao gồm:

  1. Khảo sát và tổng hợp quy trình nghiệp vụ, các biểu mẫu chứng từ và yêu cầu lưu trữ dữ liệu của chuỗi nhượng quyền.
  2. Xây dựng mô hình thực thể kết hợp (ERD) biểu diễn cơ sở dữ liệu ở mức quan niệm.
  3. Chuyển đổi mô hình ERD sang lược đồ cơ sở dữ liệu quan hệ và thực hiện đánh giá chuẩn hóa dữ liệu từ dạng chuẩn 1 (1NF) đến dạng chuẩn 3 (3NF).
  4. Thiết kế cơ sở dữ liệu ở mức vật lý, bao gồm việc xác định các chỉ mục (Index), danh mục ràng buộc toàn vẹn (RBTV), Trigger và Stored Procedure.
  5. Triển khai cài đặt cơ sở dữ liệu trên hệ quản trị Microsoft SQL Server, nạp dữ liệu mẫu và kiểm thử các ràng buộc nghiệp vụ thông qua Trigger và Procedure.

Đối tượng nghiên cứu của đề tài là cấu trúc dữ liệu và các quy tắc nghiệp vụ quản lý chuỗi cửa hàng cà phê - đồ ăn nhượng quyền. Phạm vi nghiên cứu tập trung vào phân tích, thiết kế mô hình dữ liệu quan hệ và hiện thực hóa trên hệ quản trị cơ sở dữ liệu MS SQL Server với các chức năng quản lý cốt lõi.


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

Khung lý thuyết và mô hình ứng dụng

Đề tài dựa trên nền tảng lý thuyết cơ sở dữ liệu quan hệ và các kỹ thuật nâng cao:

  • Mô hình thực thể kết hợp (ERD): Sử dụng để mô hình hóa dữ liệu ở mức khái niệm thông qua các thực thể, thuộc tính và mối quan hệ giữa các thực thể.
  • Lý thuyết phụ thuộc hàm và chuẩn hóa dữ liệu: Sử dụng các khái niệm phụ thuộc hàm (FDs) và khóa làm thước đo để đánh giá chất lượng lược đồ quan hệ, áp dụng hệ thống phân cấp chuẩn hóa gồm 1NF, 2NF, 3NF và BCNF nhằm loại bỏ dư thừa dữ liệu và ngăn ngừa bất thường khi cập nhật.
  • Bảo toàn thông tin và an toàn cơ sở dữ liệu: Áp dụng các nguyên lý bảo vệ dữ liệu, phòng chống truy cập trái phép và thực thi giải pháp ngăn ngừa mất mát dữ liệu (Data Loss Prevention - DLP).
  • Ràng buộc toàn vẹn (RBTV): Thiết lập các điều kiện bất biến giữa các thuộc tính và bộ giá trị trong cơ sở dữ liệu.
  • Khảo cứu công nghệ NoSQL và NewSQL: Phân tích đặc tính mở rộng quy mô của NoSQL kết hợp khả năng duy trì tính chất ACID và ngôn ngữ SQL của NewSQL (như Google Spanner, Apache Trafodion).

Phương pháp nghiên cứu và thiết kế

Đề tài áp dụng phương pháp thiết kế hệ thống thông tin theo quy trình kỹ thuật chuẩn:

  • Phương pháp phân tích - tổng hợp nghiệp vụ: Lập bảng phân tích chức năng hệ thống gắn với từng bộ phận và chứng từ liên quan; xác định các thuộc tính dữ liệu cần lưu trữ và truy xuất.
  • Phương pháp thiết kế mô hình qua các mức trừu tượng: Chuyển đổi từ mô hình khái niệm (ERD) sang mô hình logic (lược đồ quan hệ), tiến hành tối ưu hóa thông qua chuẩn hóa 3NF, và chuyển tiếp sang thiết kế mức vật lý.
  • Phương pháp lập trình cơ sở dữ liệu (T-SQL): Cài đặt bảng, tạo chỉ mục, viết mã nguồn cho 5 Trigger và 5 Stored Procedure để thực thi các ràng buộc nghiệp vụ và dịch vụ truy xuất.

Nguồn dữ liệu

Dữ liệu sử dụng trong đề tài bao gồm các biểu mẫu chứng từ nghiệp vụ mô phỏng (Hóa đơn bán hàng, Phiếu báo cáo doanh thu, Hóa đơn mua nguyên vật liệu), tập quy tắc nghiệp vụ chuỗi nhượng quyền và bộ dữ liệu mẫu nạp thử nghiệm trên hệ quản trị MS SQL Server.


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

CHƯƠNG 1: MÔ TẢ ĐỀ TÀI

Chương 1 trình bày tổng quan về tổ chức doanh nghiệp, phân rã chức năng nghiệp vụ và quy định ràng buộc dữ liệu:

  • Cơ cấu tổ chức: Phân định rõ chức năng của Giám đốc, Quản lý chi nhánh, Quản lý đối tác nhượng quyền, Bộ phận Mua hàng, Bán hàng, Nhân sự và Kinh doanh.
  • Danh mục chức năng hệ thống: Hệ thống phân tích 11 chức năng chính gắn liền với các bộ phận và chứng từ tương ứng:
STT Tên chức năng Bộ phận liên quan Chứng từ / Báo cáo liên quan Dữ liệu cần lưu trữ Dữ liệu cần truy xuất
1 Kiểm kê tiêu chuẩn nguyên vật liệu Mua hàng, Bán hàng Phiếu kiểm kê Thông tin vật liệu, sản phẩm, số lượng Phiếu kiểm kê, trạng thái phiếu
2 Tra cứu thông tin cửa hàng Nhân sự Hồ sơ cửa hàng Thông tin cửa hàng, địa chỉ, số điện thoại, tên Trạng thái cửa hàng, thông tin cửa hàng
3 Tìm kiếm nhà cung cấp Mua hàng Hồ sơ nhà cung cấp Thông tin nhà cung cấp, số điện thoại, địa chỉ, tên Thông tin nhà cung cấp, lịch trình giao hàng, kiểm soát chất lượng
4 Mua nguyên liệu Mua hàng Phiếu mua hàng Thông tin phiếu, số lượng, tên, giá, ngày mua Thông tin phiếu, số lượng, tên, giá, ngày mua, trạng thái
5 Thanh toán nhà cung cấp Mua hàng Hóa đơn nhà cung cấp Tên, giá, địa chỉ, số lượng Tên, giá, địa chỉ, số lượng
6 Xem thông tin khách hàng Bán hàng Hồ sơ khách hàng Tên, số điện thoại Tên, số điện thoại
7 Tiếp nhận phản hồi của khách hàng Bán hàng Phiếu phản hồi khách hàng Thông tin khách hàng Ý kiến phản hồi khách hàng
8 Bán sản phẩm Bán hàng Phiếu sản phẩm Tên sản phẩm, nhà cung cấp, giá, số lượng Tên sản phẩm, nhà cung cấp, giá, số lượng
9 Theo dõi báo cáo doanh số Kinh doanh Báo cáo doanh số Tên sản phẩm, giá, số lượng Tên sản phẩm, giá, số lượng
10 Xem thông tin nhân viên Nhân sự Hồ sơ nhân viên Tên, số điện thoại, địa chỉ, chức vụ, giới tính Tên, số điện thoại, địa chỉ, chức vụ, giới tính
11 Tra cứu lịch làm việc Nhân sự Lịch làm việc Tên nhân viên, giờ làm Tên nhân viên, giờ làm
  • Quy định nghiệp vụ và dữ liệu: Mỗi nhân viên có thông tin định danh, địa chỉ chi tiết, chức vụ (role) và lịch làm việc. Các cửa hàng nhượng quyền có thông tin hợp đồng, quản lý kho, chi phí và doanh thu gửi về công ty mẹ. Giá sản phẩm được áp dụng thống nhất toàn chuỗi và công thức pha chế/chế biến đồng nhất.

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

Chương này tổng kết các nguyên lý khoa học máy tính được sử dụng làm nền tảng cho đề tài:

  • Mô hình ERD và Phụ thuộc hàm (FDs): Khái niệm hóa thực thể, thuộc tính và mối liên kết; sử dụng phụ thuộc hàm làm công cụ đo lường quan hệ.
  • Tiêu chuẩn chuẩn hóa: Hệ thống hóa các quy tắc chuẩn hóa từ 1NF (thuộc tính đơn trị), 2NF (loại bỏ phụ thuộc một phần vào khóa chính), 3NF (loại bỏ phụ thuộc bắc cầu) đến BCNF.
  • Bảo mật và an toàn CSDL: Trình bày các giải pháp ngăn chặn tấn công an ninh mạng, mã độc và thất thoát dữ liệu.
  • Khảo cứu NoSQL và NewSQL: Làm rõ ưu thế của NewSQL trong việc kết hợp khả năng mở rộng ngang của NoSQL với việc duy trì tính toàn vẹn giao dịch ACID và truy vấn SQL truyền thống.

CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ DỮ LIỆU

Chương 3 là phần trọng tâm về kỹ thuật dữ liệu, trình bày chi tiết từ mức quan niệm đến thiết kế vật lý:

  • Đặc tả 10 thực thể dữ liệu:
    1. Nhân sự: ID nhân viên (VARCHAR(5), PK), Tên nhân viên (NVARCHAR(50)), Địa chỉ (NVARCHAR(50)), Giới tính (NVARCHAR(50)), Ngày sinh (DATE).
    2. Cửa hàng: ID cửa hàng (VARCHAR(5), PK), Tên cửa hàng (NVARCHAR(50)), Địa chỉ (NVARCHAR(50)).
    3. Khách hàng: ID khách hàng (VARCHAR(5), PK), Tên khách hàng (NVARCHAR(50)), Địa chỉ (NVARCHAR(50)), SDT (NVARCHAR(50)).
    4. Chức vụ: ID chức vụ (VARCHAR(5), PK), Tên chức vụ (NVARCHAR(50)).
    5. Sản phẩm: ID sản phẩm (VARCHAR(5), PK), Tên sản phẩm (NVARCHAR(50)), Số lượng (INT), Ngày nhập (DATE), Giá nhập (INT), Giá bán (INT), DVT (INT, FK).
    6. DVT: ID DVT (VARCHAR(5), PK), Tên (NVARCHAR(50)).
    7. Nhà cung cấp: ID nhà cung cấp (VARCHAR(5), PK), Tên nhà cung cấp (NVARCHAR(50)), Địa chỉ (NVARCHAR(50)), Số điện thoại (INT).
    8. Kinh doanh: ID báo cáo (VARCHAR(5), PK), Số lượng sản phẩm bán được (INT), Tổng tiền (INT), Ngày báo cáo (DATE).
    9. Hóa đơn: ID hóa đơn (VARCHAR(5), PK), Ngày tạo (DATE), Tổng tiền (INT).
    10. Chi tiết hóa đơn: ID Sản phẩm (VARCHAR(5), PK), ID hóa đơn (VARCHAR(5), PK), Đơn giá (INT), Số lượng (INT), Thành tiền (INT).
  • Lược đồ quan hệ dạng văn bản:
    • Kinh doanh (ID báo cáo, Tổng sản phẩm bán được, Tổng tiền, Ngày báo cáo, ID Cửa hàng)
    • Cửa hàng (ID cửa hàng, Tên cửa hàng, địa chỉ)
    • Nhân sự (ID nhân viên, Tên nhân viên, Địa chỉ, giới tính, ngày sinh, ID cửa hàng, ID Chức vụ)
    • Chức vụ (ID Chức vụ, Tên chức vụ)
    • Hóa đơn (ID hóa đơn, ngày tạo, tổng tiền, ID cửa hàng, ID khách hàng)
    • Khách hàng (ID khách hàng, tên, địa chỉ, SDT)
    • Sản phẩm (ID sản phẩm, Tên sản phẩm, Ngày nhập, Số lượng, Giá nhập, Giá bán, ID nhà cung cấp, ID DVT)
    • Nhà cung cấp (ID nhà cung cấp, Tên, Địa chỉ, SDT)
    • DVT (ID DVT, Tên)
    • Chi tiết hóa đơn (Đơn giá, Số lượng, Thành tiền, ID hóa đơn, ID Sản phẩm)
  • Đánh giá và xử lý chuẩn hóa: Các bảng Nhân sự, Sản phẩm, Hóa đơn, Khách hàng, Cửa hàng, DVT, Nhà cung cấp đều đạt chuẩn 1NF, 2NF và 3NF. Riêng bảng Chi tiết hóa đơn ban đầu không đạt 2NF và 3NF do thuộc tính Thành tiền là giá trị suy diễn từ Đơn giá * Số lượng, gây ra phụ thuộc hàm bắc cầu. Nhóm tác giả đã tiến hành chuẩn hóa bằng cách loại bỏ thuộc tính Thành tiền ra khỏi bảng Chi tiết hóa đơn.

CHƯƠNG 4: TRIỂN KHAI CSDL TRÊN MS SQL SERVER

Chương 4 mô tả quá trình cài đặt thực tế:

  • Tạo bảng và nhập dữ liệu mẫu: Khởi tạo cấu trúc bảng và nạp dữ liệu cho 10 bảng gồm: Cửa_hàng, Khách_hàng, Chức_vụ, Kinh_doanh, Nhà_cung_cấp, DVT, Hóa_đơn, Nhân_sự, Sản_phẩm, Chi_tiết_hóa_đơn.
  • Cài đặt Trigger và Procedure: Triển khai hoàn chỉnh 5 Trigger kiểm soát nghiệp vụ và 5 Stored Procedure phục vụ báo cáo.

CHƯƠNG 5: KẾT LUẬN

Tổng kết các kết quả đạt được qua 5 giai đoạn thiết kế, khẳng định cơ sở dữ liệu đã đáp ứng đầy đủ yêu cầu quản lý chuỗi nhượng quyền và đề xuất phương hướng phát triển hệ thống.


Thiết kế và triển khai

Hệ thống được thiết kế và triển khai hoàn chỉnh trên hệ quản trị cơ sở dữ liệu Microsoft SQL Server, sử dụng ngôn ngữ Transact-SQL (T-SQL).

1. Thiết kế chỉ mục (Index)

Nhằm tăng tốc độ truy xuất dữ liệu cho các truy vấn và phép kết nối thường xuyên, 4 chỉ mục không khóa chính đã được thiết lập:

STT Tên Index Bảng Cột được Index Mục đích tối ưu
1 Idx_nv_ten Nhân sự Tên nhân viên Tăng tốc độ tìm kiếm nhân viên theo tên
2 Idx_nv_ch Nhân sự Mã cửa hàng Tăng tốc độ lọc và tìm kiếm nhân viên theo từng chi nhánh cửa hàng
3 idx_sp_ten Sản phẩm Tên sản phẩm Tăng tốc độ tìm kiếm sản phẩm theo tên món ăn/thức uống
4 idx_hd_ngay Hóa đơn Ngày tạo Tăng tốc độ thống kê, lọc hóa đơn theo ngày tạo

2. Cài đặt các ràng buộc toàn vẹn bằng Trigger

Để đảm bảo các quy tắc nghiệp vụ khắt khe mà các ràng buộc khai báo thông thường không đáp ứng được, nhóm tác giả cài đặt 5 Trigger chuyên dụng:

  • TR_GiaSanPham (Bảng Sản_phẩm - FOR INSERT, UPDATE): Kiểm tra giá nhập và giá bán phải lớn hơn 0; nếu vi phạm sẽ thực hiện ROLLBACK TRANSACTION và thông báo lỗi.
  • TR_SanPhamK (Bảng Sản_phẩm - INSTEAD OF DELETE): Ngăn chặn hành vi xóa sản phẩm nếu mã sản phẩm đó đã tồn tại trong bảng Chi_tiết_hóa_đơn.
  • TR_KHHoaDon (Bảng Khách_hàng - INSTEAD OF DELETE): Ngăn chặn hành vi xóa thông tin khách hàng nếu khách hàng đã có dữ liệu giao dịch trong bảng Hóa_đơn.
  • TR_TenSanPham (Bảng Sản_phẩm - AFTER INSERT, UPDATE): Kiểm tra tính duy nhất của tên sản phẩm trong toàn hệ thống thông qua mệnh đề GROUP BY Tên_sản_phẩm HAVING COUNT(*) > 1.
  • TR_TienHoaDon (Bảng Hóa_đơn - AFTER INSERT, UPDATE): Đảm bảo tổng tiền của mỗi hóa đơn khi thêm mới hoặc sửa đổi phải luôn lớn hơn 0.

3. Cài đặt các thủ tục lưu trữ (Stored Procedures)

Năm thủ tục lưu trữ được xây dựng để đóng gói các tác vụ truy xuất và thống kê doanh thu:

-- Thủ tục 1: Trả về tên, giá nhập và giá bán theo mã sản phẩm
CREATE PROCEDURE PRO1 @MaSP Varchar(5)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @TenSP Nvarchar(50), @GiaNhap INT, @GiaBan INT;
    SELECT @TenSP = Tên_sản_phẩm, @GiaNhap = Giá_nhập, @GiaBan = Giá_bán 
    FROM Sản_phẩm WHERE ID_Sản_phẩm_ = @MaSP;
    IF (@TenSP IS NOT NULL)
        SELECT @TenSP AS [Tên SP], @GiaNhap AS [Giá nhập], @GiaBan AS [Giá bán];
    ELSE
        PRINT 'Không tìm thấy sản phẩm có mã "' + @MaSP + '".';
END;

-- Thủ tục 2: Trả về số lượng sản phẩm bán được theo ngày và mã báo cáo
CREATE PROCEDURE PRO2 @NgayBaoCao Date, @IDBaoCao Varchar(5)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @SoLuongBanDuoc INT;
    SELECT @SoLuongBanDuoc = Số_lương_sản_phẩm_bán_được 
    FROM Kinh_doanh WHERE Ngày_báo_cáo = @NgayBaoCao AND ID_báo_cáo = @IDBaoCao;
    IF (@SoLuongBanDuoc IS NOT NULL)
        SELECT @SoLuongBanDuoc AS [Số lượng sản phẩm bán được];
    ELSE
        PRINT 'Không tìm thấy thông tin báo cáo cho ngày "' + CONVERT(VARCHAR, @NgayBaoCao, 103) + '" và ID báo cáo "' + @IDBaoCao + '".';
END;

-- Thủ tục 3: Tính tổng doanh thu theo ngày
CREATE PROCEDURE PRO3 @Ngay Date
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @TongTien INT;
    SELECT @TongTien = SUM(Tổng_tiền) 
    FROM Kinh_doanh WHERE Ngày_báo_cáo = @Ngay;
    IF (@TongTien IS NOT NULL)
        SELECT @TongTien AS [Tổng số tiền];
    ELSE
        PRINT 'Không tìm thấy thông tin báo cáo cho ngày "' + CONVERT(VARCHAR, @Ngay, 103) + '".';
END;

-- Thủ tục 4: Lấy thông tin họ tên và địa chỉ của nhân viên theo mã
CREATE PROCEDURE PRO4 @IdNV Varchar(5)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @TenNhanVien Nvarchar(50), @DiaChi Nvarchar(50);
    SELECT @TenNhanVien = Tên_Nhân_viên, @DiaChi = Địa_chỉ 
    FROM Nhân_sự WHERE ID_Nhân_viên = @IdNV;
    IF (@TenNhanVien IS NOT NULL)
        SELECT @TenNhanVien AS [Tên nhân viên], @DiaChi AS [Địa chỉ];
    ELSE
        PRINT 'Không tìm thấy thông tin nhân viên có ID "' + @IdNV + '".';
END;

-- Thủ tục 5: Lấy tên và địa chỉ của cửa hàng theo mã chi nhánh
CREATE PROCEDURE PRO5 @IdCuaHang Varchar(5)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @TenCuaHang Nvarchar(50), @DiaChi Nvarchar(50);
    SELECT @TenCuaHang = Tên_cửa_hàng, @DiaChi = Địa_chỉ 
    FROM Cửa_hàng WHERE ID_Cửa_hàng = @IdCuaHang;
    IF (@TenCuaHang IS NOT NULL)
        SELECT @TenCuaHang AS [Tên cửa hàng], @DiaChi AS [Địa chỉ];
    ELSE
        PRINT 'Không tìm thấy thông tin cửa hàng có ID "' + @IdCuaHang + '".';
END;

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

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

Dự án đã hoàn thành đầy đủ các chỉ tiêu kỹ thuật đề ra trong học phần:

  • Xây dựng thành công mô hình ERD phản ánh toàn diện hoạt động của chuỗi kinh doanh nhượng quyền.
  • Chuẩn hóa lược đồ quan hệ đạt mức chuẩn 3NF, xử lý triệt để sự phụ thuộc hàm bắc cầu tại bảng chi tiết giao dịch.
  • Tạo lập 10 bảng dữ liệu vật lý trên MS SQL Server (gồm 8 bảng chuyển đổi từ thiết kế logic và 2 bảng phục vụ lưu trữ dữ liệu kết xuất).
  • Xây dựng và kiểm thử thành công 4 chỉ mục Index, 5 Trigger kiểm soát toàn vẹn dữ liệu và 5 Stored Procedure thực thi truy vấn nghiệp vụ.

Giải pháp và kỹ thuật nổi bật

  • Đưa ra giải pháp tách bỏ thuộc tính tính toán (Thành tiền) khỏi lược đồ quan hệ vật lý để đảm bảo dữ liệu đạt chuẩn 3NF, tránh dư thừa và sai lệch số liệu khi cập nhật.
  • Ứng dụng kỹ thuật INSTEAD OF DELETE trigger để bảo vệ tính toàn vẹn tham chiếu đa tầng giữa sản phẩm - hóa đơn và khách hàng - hóa đơn, ngăn chặn lỗi xóa dữ liệu lịch sử kế toán.

Đóng góp về mặt đào tạo và học thuật

Đề tài cung cấp tài liệu thực hành hoàn chỉnh về quy trình thiết kế cơ sở dữ liệu quan hệ theo chuẩn kỹ thuật từ khảo sát bài toán thực tế, mô hình hóa quan niệm, chuẩn hóa logic đến hiện thực hóa mã nguồn T-SQL trên hệ quản trị MS SQL Server.


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

  • Hạn chế: Tập dữ liệu kiểm thử hiện tại mới dừng lại ở mức độ dữ liệu mẫu quy mô nhỏ (2-3 bản ghi cho mỗi bảng); chưa tích hợp giao diện người dùng (Front-end) hoặc API trung gian để kết nối ứng dụng đầu cuối; hệ thống cơ sở dữ liệu hiện được thiết kế tập trung trên một máy chủ đơn lẻ.
  • Hướng phát triển: Bổ sung các phân hệ chức năng nâng cao (quản lý chi tiết công thức định lượng pha chế, đánh giá định kỳ đối tác nhượng quyền); nghiên cứu khả năng mở rộng hoặc chuyển đổi mô hình lưu trữ sang các hệ quản trị NoSQL / NewSQL (như Google Spanner, Apache Trafodion) nhằm đáp ứng nhu cầu phân tán dữ liệu khi chuỗi cửa hàng mở rộng quy mô lớn trên toàn quốc.

Giá trị tham khảo

Báo cáo là tài liệu tham khảo thiết thực dành cho:

  • Sinh viên chuyên ngành Công nghệ thông tin, Hệ thống thông tin quản lý, Kỹ thuật phần mềm đang thực hiện đồ án học phần về Cơ sở dữ liệu, Cơ sở dữ liệu nâng cao hoặc Phân tích thiết kế hệ thống thông tin.
  • Lập trình viên và chuyên viên phân tích nghiệp vụ cần mẫu tham khảo về cấu trúc dữ liệu cho bài toán chuỗi bán lẻ, nhà hàng - cà phê nhượng quyền.
  • Phần đáng tham khảo nhất là quy trình phân tích và chứng minh chuẩn hóa 1NF-3NF cho các thực thể quan hệ, cùng với cú pháp triển khai các Trigger kiểm soát nghiệp vụ và Stored Procedure trong môi trường MS SQL Server.

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

1. Lược đồ cơ sở dữ liệu của đề tài đạt dạng chuẩn mấy và nhóm tác giả đã xử lý bảng nào chưa đạt chuẩn?

Lược đồ cơ sở dữ liệu đạt dạng chuẩn 3 (3NF). Trong quá trình phân tích, 8 bảng dữ liệu đạt ngay chuẩn 3NF, riêng bảng Chi tiết hóa đơn ban đầu không đạt 2NF và 3NF do chứa thuộc tính Thành tiền (phụ thuộc vào Đơn giá và Số lượng, tạo ra phụ thuộc bắc cầu). Nhóm tác giả đã xử lý bằng cách tách thuộc tính Thành tiền ra khỏi bảng Chi tiết hóa đơn.

2. Hệ thống đã cài đặt bao nhiêu chỉ mục (Index) và nhằm mục đích gì?

Hệ thống đã cài đặt 4 Index trên MS SQL Server gồm: Idx_nv_ten (trên cột Tên nhân viên), Idx_nv_ch (trên cột Mã cửa hàng của bảng Nhân sự), idx_sp_ten (trên cột Tên sản phẩm) và idx_hd_ngay (trên cột Ngày tạo của bảng Hóa đơn). Mục đích là tăng tốc độ tìm kiếm nhân viên, sản phẩm và lọc hóa đơn theo ngày.

3. Các ràng buộc toàn vẹn nào được nhóm tác giả kiểm soát thông qua Trigger?

Hệ thống cài đặt 5 Trigger để kiểm soát: giá nhập và giá bán sản phẩm phải lớn hơn 0 (TR_GiaSanPham); không cho phép xóa sản phẩm đã có trong chi tiết hóa đơn (TR_SanPhamK); không cho phép xóa khách hàng đã có trong hóa đơn (TR_KHHoaDon); không cho phép thêm hoặc sửa tên sản phẩm bị trùng lặp (TR_TenSanPham); và tổng tiền hóa đơn phải lớn hơn 0 (TR_TienHoaDon).

4. Hệ thống đã xây dựng những Stored Procedure nào phục vụ nghiệp vụ?

Có 5 Stored Procedure được cài đặt: PRO1 (truy xuất tên sản phẩm, giá nhập, giá bán theo mã sản phẩm); PRO2 (truy xuất số lượng sản phẩm bán được theo ngày và mã báo cáo); PRO3 (tính tổng doanh thu theo ngày); PRO4 (truy xuất tên và địa chỉ nhân viên theo mã nhân viên); PRO5 (truy xuất tên và địa chỉ cửa hàng theo mã cửa hàng).

5. Hướng mở rộng công nghệ được nhóm tác giả đề xuất trong báo cáo là gì?

Nhóm tác giả đề xuất mở rộng bổ sung thêm các nhiệm vụ nghiệp vụ cho hệ thống và nghiên cứu khả năng chuyển đổi hoặc tích hợp với các hệ quản trị cơ sở dữ liệu NoSQL / NewSQL để tăng cường khả năng mở rộng quy mô lưu trữ phân tán.


Kết luận

Báo cáo kết thúc học phần "Cơ sở dữ liệu nâng cao" của nhóm sinh viên Trường Đại học Ngoại ngữ - Tin học TP. Hồ Chí Minh đã thực hiện một cách bài bản quy trình phân tích, thiết kế và cài đặt cơ sở dữ liệu cho mô hình chuỗi cửa hàng cà phê và bán đồ ăn nhượng quyền. Hệ thống đạt chuẩn hóa 3NF, bao gồm 10 bảng dữ liệu vật lý, 4 chỉ mục, 5 Trigger kiểm soát toàn vẹn và 5 Stored Procedure hỗ trợ truy vấn báo cáo trên môi trường MS SQL Server. Đề tài thể hiện rõ tính chuẩn xác về mặt kỹ thuật cơ sở dữ liệu và mang lại giá trị tham khảo học thuật thực tế cho sinh viên ngành Công nghệ thông tin.