Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh thương mại điện tử phát triển mạnh mẽ, việc kinh doanh các mặt hàng giá trị cao như đồ trang sức trên nền tảng trực tuyến đòi hỏi hệ thống quản trị dữ liệu phải đảm bảo tính toàn vẹn, bảo mật và hiệu năng truy xuất. Đề tài báo cáo học phần "Cơ sở dữ liệu nâng cao: Quản lý website bán đồ trang sức" được nhóm tác giả thực hiện nhằm giải quyết bài toán thiết kế và cài đặt cơ sở dữ liệu quan hệ hoàn chỉnh phục vụ hoạt động vận hành của một website bán lẻ trang sức.
Mục tiêu và nhiệm vụ nghiên cứu được xác định cụ thể như sau:
- Thiết kế và triển khai một hệ thống cơ sở dữ liệu hiệu quả, đáp ứng các yêu cầu lưu trữ, quản lý và truy xuất dữ liệu cho website thương mại điện tử bán đồ trang sức.
- Ứng dụng các kỹ thuật và mô hình dữ liệu quan hệ, phân tích phụ thuộc hàm và chuẩn hóa dữ liệu để đảm bảo tính toàn vẹn, nhất quán và hiệu suất cao cho hệ thống.
- Vận dụng kiến thức cơ sở dữ liệu nâng cao vào bài toán thực tế, rèn luyện kỹ năng thiết kế lược đồ, lập trình thủ tục lưu trữ (Stored Procedure), con trỏ (Cursor) và bộ kích hoạt (Trigger) trên hệ quản trị cơ sở dữ liệu.
Đối tượng và phạm vi nghiên cứu của đề tài bao gồm:
- Đối tượng nghiên cứu: Cấu trúc dữ liệu, các quan hệ thực thể, quy trình nghiệp vụ bán hàng, quản lý kho, quản lý danh mục, khuyến mãi và đánh giá sản phẩm của website kinh doanh đồ trang sức.
- Đối tượng phục vụ: Sinh viên ngành Công nghệ thông tin học tập chuyên đề cơ sở dữ liệu; các nhà phát triển phần mềm thương mại điện tử; các doanh nghiệp kinh doanh trang sức trực tuyến cần mô hình tổ chức dữ liệu.
- Phạm vi không gian: Đề tài thực hiện trong khuôn khổ học phần Cơ sở dữ liệu nâng cao tại Khoa Công nghệ thông tin – Trường Đại học Ngoại ngữ - Tin học Thành phố Hồ Chí Minh (HUFLIT); tiến hành khảo sát thực tế trên 3 nền tảng kinh doanh trang sức trực tuyến tại Việt Nam gồm PNJ, LiLi và VNJ.
- Phạm vi thời gian: Đồ án được hoàn thành vào tháng 07/2024 (Học kỳ 3, năm học 2023 - 2024).
Cơ sở lý thuyết và phương pháp
Đề tài kết hợp giữa nghiên cứu lý thuyết nền tảng về cơ sở dữ liệu quan hệ và phân tích khảo sát thực nghiệm các hệ thống thương mại điện tử thực tế.
Khung lý thuyết và mô hình ứng dụng
- Mô hình thực thể kết hợp (ERD - Entity-Relationship Diagram): Sử dụng các khái niệm thực thể, thuộc tính và 3 loại mối quan hệ: Một - Một (1-1), Một - Nhiều (1-N) và Nhiều - Nhiều (N-N) để trừu tượng hóa các thực thể nghiệp vụ thành mô hình quan hệ logic.
- Lý thuyết phụ thuộc hàm (Functional Dependency - FD): Áp dụng hệ tiên đề Armstrong với 5 luật dẫn:
- LD1 (Luật phản xạ): Nếu $Y \subseteq X$ thì $X \rightarrow Y$.
- LD2 (Luật thêm vào): Nếu $X \rightarrow Y$ và $Z \subseteq W$ thì $X, W \rightarrow Y, Z$.
- LD3 (Luật bắc cầu): Nếu $X \rightarrow Y$ và $Y \rightarrow Z$ thì $X \rightarrow Z$.
- LD4 (Luật phân rã): Nếu $X \rightarrow Y, Z$ thì $X \rightarrow Y$ và $X \rightarrow Z$.
- LD5 (Luật hội): Nếu $X \rightarrow Y$ và $X \rightarrow Z$ thì $X \rightarrow Y, Z$.
- Bao đóng và thuật toán tìm khóa: Sử dụng thuật toán tính bao đóng tập thuộc tính $X^+$ dựa trên tập phụ thuộc hàm $F$, phân loại thuộc tính thành Tập nguồn (TN), Tập đích (TD), Tập trung gian (TG) để xác định khóa chính của các quan hệ.
- Lý thuyết chuẩn hóa dữ liệu: Áp dụng các tiêu chí từ Dạng chuẩn 1 (1NF - miền giá trị nguyên tử), Dạng chuẩn 2 (2NF - không tồn tại phụ thuộc hàm bộ phận vào khóa chính), Dạng chuẩn 3 (3NF - không tồn tại phụ thuộc bắc cầu vào khóa chính) đến Dạng chuẩn Boyce-Codd (BCNF).
- Lý thuyết bảo toàn thông tin: Duy trì ba thuộc tính cốt lõi: tính bảo mật (phân quyền truy cập, xác thực 2 lớp), tính toàn vẹn (bảo vệ sự hoàn chỉnh của dữ liệu) và tính chính xác (không sai lệch dữ liệu).
- Công nghệ lưu trữ và lập trình CSDL: Hệ quản trị cơ sở dữ liệu SQL Server (mô hình Client/Server, hỗ trợ tối đa 2 tỷ bảng, mỗi bảng 1024 cột, kích thước hàng tối đa 8060 bytes), cấu trúc bảng (Table), khung nhìn (View), ràng buộc toàn vẹn (Primary Key, Foreign Key, NOT NULL).
- Khảo cứu NoSQL và NewSQL: Tổng quan 4 dạng NoSQL cơ bản (Key-value, Column-based, Document-based, Graph-based) qua các công nghệ MongoDB, Cassandra, Redis; tổng quan công nghệ NewSQL (hỗ trợ ACID, xử lý giao dịch phân tán OLTP) qua Google Spanner, CockroachDB, VoltDB.
Phương pháp nghiên cứu
- Phương pháp phân tích - tổng hợp: Nghiên cứu tài liệu lý thuyết về giải thuật chuẩn hóa và tối ưu hóa truy vấn CSDL.
- Phương pháp khảo sát hiện trạng: Khảo sát cấu trúc giao diện, chức năng, danh mục và luồng mua hàng tại 3 website: Cửa hàng PNJ (Công ty Vàng bạc Đá quý Phú Nhuận), Cửa hàng trang sức LiLi, Cửa hàng VNJ - Trang sức Việt.
- Phương pháp mô hình hóa và thực nghiệm: Xây dựng sơ đồ ERD, thiết lập quan hệ (Relationship), phân tích phụ thuộc hàm, chuẩn hóa 3NF và lập trình script T-SQL (Data Definition Language, Trigger, Cursor) trên SQL Server Management Studio 20.
Nội dung chính theo từng chương
Chương 1: Giới thiệu đề tài
Chương 1 làm rõ bức tranh tổng quan về nghiệp vụ thương mại điện tử ngành kim hoàn, phân tích hiện trạng khảo sát và xác định các yêu cầu chức năng, phi chức năng của hệ thống.
- Nghiệp vụ và quy trình hoạt động: Xác định các khâu cốt lõi gồm xây dựng thương hiệu, nghiên cứu thị trường, thiết kế và sản xuất (chất liệu vàng, bạc, kim cương, ngọc trai, đá quý), phát triển website, quản lý kho hàng, dịch vụ khách hàng (CRM), tiếp thị kỹ thuật số và phân tích dữ liệu hiệu suất.
- Kết quả khảo sát thực tế:
- Cửa hàng PNJ: Khảo sát cấu trúc phân loại sản phẩm (Đính kim cương, Đính ECZ, Đính đá quý, Công nghệ Ý, Đính ngọc trai, Bạc trẻ em), tính năng tìm kiếm - bộ lọc, xem chi tiết, giỏ hàng, chương trình ưu đãi và dịch vụ giao hàng siêu tốc PNJFast trong 3 giờ.
- Cửa hàng LiLi: Khảo sát giao diện danh mục (Vòng - lắc, Nhẫn, Dây chuyền, Bông tai, Khuyên xỏ, Phong thủy), trang chi tiết hiển thị thông số sản phẩm (đá Moissanite, bạc S925), hệ thống đánh giá sao (1 đến 5 sao), bình luận và phản hồi từ quản trị viên.
- Cửa hàng VNJ: Khảo sát các dòng sản phẩm đá quý thiên nhiên (Ruby, Sapphire, Emerald, Topaz, Garnet, Peridot, Thạch anh, Tourmaline), luồng đặt hàng - xác nhận thanh toán (COD, chuyển khoản ngân hàng) và chuyên mục Blog/Tin tức cung cấp kiến thức phong thủy.
- Xác định thông tin cần lưu trữ: Xác định 11 nhóm thực thể dữ liệu ban đầu gồm Nhân viên, Sản phẩm, Hóa đơn nhập hàng, Khách hàng, Hóa đơn bán hàng, Chi nhánh, Nhà cung cấp, Danh mục, Đánh giá, Khuyến mãi, Thống kê.
- Yêu cầu chức năng tìm kiếm: Tìm kiếm sản phẩm theo tên, giá, mã; tìm kiếm đơn hàng theo mã đơn, tên khách hàng, trạng thái; tìm kiếm khách hàng theo tên, mã khách hàng.
- Công thức tính toán xử lý:
- Tổng giá trị đơn hàng: $\text{Tổng giá trị đơn hàng} = \sum (\text{Giá sản phẩm} \times \text{Số lượng})$
- Tổng doanh thu tháng: $\text{Tổng doanh thu tháng} = \sum (\text{Tổng giá trị đơn hàng trong tháng})$
- Số lượng tồn kho: $\text{Số lượng tồn kho} = \text{Số lượng nhập vào} - \text{Số lượng đã bán}$
- Yêu cầu báo cáo, biểu đồ: Báo cáo doanh thu theo tháng/quý/năm; báo cáo số lượng tồn kho; biểu đồ biến động doanh thu; biểu đồ sản phẩm bán chạy.
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày có hệ thống các kiến thức lý thuyết nền tảng làm căn cứ cho việc thiết kế CSDL:
- Định nghĩa mô hình ERD, quy ước ký hiệu thực thể, thuộc tính và mối quan hệ (1-1, 1-N, N-N).
- Lý thuyết về phụ thuộc hàm, phát biểu 5 luật của hệ tiên đề Armstrong; khái niệm bao đóng $F^+$, bao đóng tập thuộc tính $X^+$, thuật toán xác định khóa chính dựa trên tập nguồn, tập đích và tập trung gian.
- Tiêu chuẩn của các dạng chuẩn 1NF, 2NF, 3NF, BCNF kèm ví dụ minh họa chứng minh việc phân rã lược đồ để loại bỏ dư thừa dữ liệu.
- Nguyên lý bảo toàn thông tin (Bảo mật, Toàn vẹn, Chính xác) và các biện pháp bảo mật hiện đại.
- Kiến trúc hệ quản trị SQL Server, đặc tả giới hạn kỹ thuật của Table, View và vai trò của ràng buộc toàn vẹn (Primary Key, Foreign Key).
- Tổng quan công nghệ NoSQL (phân loại Key-value, Document, Column, Graph) và NewSQL (Google Spanner, CockroachDB, VoltDB) trong việc đáp ứng bài toán mở rộng và xử lý giao dịch quy mô lớn.
Chương 3: Áp dụng thực nghiệm
Chương 3 triển khai toàn bộ quá trình thiết kế, chuẩn hóa và cài đặt cơ sở dữ liệu trên hệ thống:
- Phân tích yêu cầu bài toán: Mô tả chi tiết yêu cầu quản lý nhân viên, thông tin khách hàng thân thiết, đặc tính đồ trang sức, quản lý đơn đặt hàng và hóa đơn bán/nhập hàng.
- Mô hình hóa dữ liệu: Thiết kế sơ đồ ERD và sơ đồ mối quan hệ (Relationship Diagram) liên kết giữa các thực thể: Khách hàng, Đơn hàng, Chi tiết đơn hàng, Sản phẩm, Danh mục, Nhà cung cấp, Nhân viên, Chi nhánh, Hóa đơn, Đánh giá, Khuyến mãi, Thống kê.
- Phân tích phụ thuộc hàm và dạng chuẩn: Xác định tập phụ thuộc hàm $F$ cho từng bảng, chứng minh toàn bộ 11 bảng đạt Dạng chuẩn 1 (1NF) do các thuộc tính đều có giá trị nguyên tử, và đạt Dạng chuẩn 3 (3NF) do không tồn tại phụ thuộc bắc cầu vào khóa chính. Riêng bảng Danh mục được đề xuất tách thuộc tính
IDSanPham ra bảng liên kết để triệt tiêu phụ thuộc bắc cầu.
- Cài đặt T-SQL: Viết các câu lệnh DDL
CREATE TABLE với đầy đủ kiểu dữ liệu (INT, NVARCHAR, FLOAT, DATE, CHAR), khóa chính (PRIMARY KEY), khóa ngoại (FOREIGN KEY) và ràng buộc NOT NULL.
- Lập trình nâng cao:
- Trigger
update_product_quantity: Tự động trừ số lượng sản phẩm trong kho khi có đơn hàng mới (AFTER INSERT), kiểm tra điều kiện tồn kho và phát thông báo lỗi 'Not enough products in stock.' nếu không đủ hàng.
- Cursor và Stored Procedure
CapNhatGiaSanPham: Duyệt qua từng bản ghi sản phẩm bằng con trỏ (CURSOR) để tự động cập nhật tăng giá bán thêm 10% (Gia = @Gia * 1.10).
Chương 4: Kết luận
Chương 4 tổng kết kết quả thực hiện đề tài, chỉ ra các mặt đã đạt được, các hạn chế kỹ thuật chưa hoàn thiện và đề xuất lộ trình phát triển trong tương lai.
Thiết kế và triển khai
Cơ sở dữ liệu của hệ thống được thiết kế gồm 11 bảng quan hệ logic, phản ánh toàn bộ quy trình nghiệp vụ của website bán đồ trang sức.
Cấu trúc từ điển dữ liệu (Data Dictionary)
| Tên bảng |
Thuộc tính khóa chính |
Các thuộc tính dữ liệu và khóa ngoại |
Ràng buộc chính |
| Khach_hang |
IDKhachHang (INT) |
TenKhachHang, DiaChi, Email, SDT, NgaySinh |
PK, NOT NULL, SDT/Email duy nhất |
| San_pham |
IDSanPham (INT) |
TenSanPham, GiaSP, MoTaSP, SoLuong, IDDanhMuc (FK), IDNhaCC (FK) |
PK, NOT NULL, FK liên kết Danh mục & NCC |
| Don_hang |
IDDonHang (INT) |
NgayDatHang, TongSoLuong, IDKhachHang (FK), IDChiTiet (FK), IDNhanVien (FK) |
PK, NOT NULL, FK liên kết Khách, Chi tiết, NV |
| Chi_tiet_don_hang |
IDChiTiet (INT) |
SoLuong, GiaSP, IDDonHang (FK), IDSanPham (FK) |
PK, NOT NULL, FK liên kết Đơn hàng & Sản phẩm |
| Nhan_Vien |
IDNhanVien (INT) |
TenNhanVien, DiaChi, Email, Sdt, NgaySinh, IDChiNhanh (FK) |
PK, NOT NULL, FK liên kết Chi nhánh |
| Chi_Nhanh |
IDChiNhanh (INT) |
TenChiNhanh, DiaChi, Sdt |
PK, NOT NULL, SĐT/Tên không trùng |
| Nha_cung_cap |
IDNhaCC (INT) |
TenNhaCC, DiaChi, Email, Sdt, IDNhanVien (FK) |
PK, NOT NULL, FK liên kết Nhân viên |
| Danh_Muc |
IDDanhMuc (INT) |
TenDanhMuc, MoTa, IDNhanVien (FK) |
PK, NOT NULL, FK liên kết Nhân viên |
| Danh_gia_ |
IDBaiDanhGia (INT) |
TenBaiDanhGia, NoiDung, IDKhachHang (FK), IDNhanVien (FK) |
PK, NOT NULL, FK liên kết Khách & Nhân viên |
| Khuyen_Mai |
IDKhuyenMai (INT) |
TenKhuyenMai, NgayBatDau, NgayKetThuc, IDKhachHang (FK), IDNhanVien (FK) |
PK, NOT NULL, FK liên kết Khách & Nhân viên |
| Thong_ke |
IDThongKe (INT) |
TongSoTien, NgayTao, IDNhanVien (FK) |
PK, NOT NULL, FK liên kết Nhân viên |
| Hoa_don |
IDHoaDon (INT) |
TenHoaDon, TongTien, NgayGiao, NgayLapHD, IDNhanVien (FK) |
PK, NOT NULL, FK liên kết Nhân viên |
Phân tích phụ thuộc hàm và dạng chuẩn 3NF
Các tập phụ thuộc hàm $F$ tiêu biểu của hệ thống:
- Khách hàng: $F = {\text{IDKhachHang} \rightarrow \text{TenKhachHang, DiaChi, Email, SDT, NgaySinh}}$
- Sản phẩm: $F = {\text{IDSanPham} \rightarrow \text{TenSanPham, GiaSP, MoTaSP, SoLuong, IDDanhMuc, IDNhaCC}}$
- Đơn hàng: $F = {\text{IDDonHang} \rightarrow \text{NgayDatHang, TongSoLuong, IDKhachHang, IDChiTiet, IDNhanVien}}$
- Chi tiết đơn hàng: $F = {\text{IDChiTiet} \rightarrow \text{SoLuong, GiaSP, IDDonHang, IDSanPham}}$
- Chi nhánh: $F = {\text{IDChiNhanh} \rightarrow \text{TenChiNhanh, DiaChi, SDT}}$
- Nhà cung cấp: $F = {\text{IDNhaCC} \rightarrow \text{TenNhaCC, DiaChi, Email, SDT}}$
Toàn bộ các bảng đều thỏa mãn dạng chuẩn 1NF (mỗi thuộc tính chứa một giá trị nguyên tử đơn) và dạng chuẩn 3NF do các thuộc tính không khóa đều phụ thuộc trực tiếp vào khóa chính, không có thuộc tính nào phụ thuộc bắc cầu qua thuộc tính không khóa.
Cài đặt mã nguồn T-SQL trên SQL Server
1. Đoạn mã tạo bảng mẫu (DDL)
CREATE TABLE Khach_hang (
IDKhachHang INT PRIMARY KEY NOT NULL,
TenKhachHang NVARCHAR(50) NOT NULL,
DiaChi NVARCHAR(100) NOT NULL,
Email NVARCHAR(50) NOT NULL,
SDT CHAR(10) NOT NULL,
NgaySinh DATE NOT NULL
);
CREATE TABLE Chi_tiét_don_hang (
IDChiTiet INT PRIMARY KEY NOT NULL,
SoLuong FLOAT NOT NULL,
GiaSP INT NOT NULL,
IDDonHang INT NOT NULL,
IDSanPham INT NOT NULL,
FOREIGN KEY (IDDonHang) REFERENCES Don_hang(IDDonHang),
FOREIGN KEY (IDSanPham) REFERENCES San_pham(IDSanPham)
);
2. Kịch bản Trigger cập nhật tồn kho tự động
CREATE TRIGGER update_product_quantity
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
DECLARE product_count INT;
DECLARE ordered_quantity INT;
SELECT quantity INTO product_count FROM products WHERE product_id = NEW.product_id;
SET ordered_quantity = NEW.quantity;
IF product_count >= ordered_quantity THEN
UPDATE products SET quantity = product_count - ordered_quantity WHERE product_id = NEW.product_id;
ELSE
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Not enough products in stock.';
END IF;
END;
3. Kịch bản Stored Procedure và Cursor điều chỉnh giá bán
CREATE PROC PROC_1 CapNhatGiaSanPham
AS
BEGIN
DECLARE @ID_SP INT, @Gia FLOAT;
DECLARE CR_SP CURSOR FOR
SELECT ID_SP FROM SANPHAM;
OPEN CR_SP;
FETCH NEXT FROM CR_SP INTO @ID_SP;
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE SANPHAM
SET Gia = @Gia * 1.10
WHERE ID_SP = @ID_SP;
FETCH NEXT FROM CR_SP INTO @ID_SP, @Gia;
END;
CLOSE CR_SP;
DEALLOCATE CR_SP;
END;
- Môi trường triển khai: SQL Server Management Studio 20; Ngôn ngữ: T-SQL.
Kết quả và đóng góp
Kết quả chính
- Xác định đầy đủ các quy trình nghiệp vụ và chức năng cốt lõi cho một website thương mại điện tử chuyên ngành trang sức: xem chi tiết sản phẩm, quản lý giỏ hàng, đặt hàng, xử lý thanh toán, lưu vết thông tin khách hàng, đánh giá và báo cáo.
- Xây dựng thành công mô hình cơ sở dữ liệu quan hệ gồm 11 bảng thực thể chuẩn hóa đạt mức 3NF, thiết lập đầy đủ hệ thống khóa chính và khóa ngoại để bảo toàn tính toàn vẹn tham chiếu.
- Cài đặt hoàn chỉnh bộ mã nguồn T-SQL DDL khởi tạo cấu trúc bảng, xây dựng thành công Trigger kiểm tra và cập nhật tồn kho tự động, cùng Stored Procedure tích hợp Cursor duyệt bản ghi để cập nhật giá sản phẩm hàng loạt.
- Hoàn thành báo cáo phân tích đối sánh thực tế từ 3 nền tảng thương mại điện tử trang sức lớn (PNJ, LiLi, VNJ), làm cơ sở cho việc thiết lập các trường dữ liệu thực tế (thông số đá quý, bạc S925, hình thức giao hàng, đánh giá sao).
Đóng góp của đề tài
- Hệ thống hóa phương pháp phân tích nghiệp vụ và chuyển giao từ bài toán thực tế sang lược đồ quan hệ chuẩn hóa 3NF trong lĩnh vực bán lẻ kim hoàn.
- Cung cấp kịch bản cơ sở dữ liệu mẫu bằng T-SQL có tính ứng dụng cao, giúp giải quyết bài toán đồng bộ tồn kho tức thời (qua Trigger) và xử lý dữ liệu hàng loạt (qua Cursor).
Hạn chế và hướng nghiên cứu tiếp
Hạn chế
- Hệ thống mới dừng lại ở mức độ thiết kế, chuẩn hóa và cài đặt cơ sở dữ liệu trên môi trường hệ quản trị SQL Server Management Studio 20; chưa xây dựng và tích hợp giao diện người dùng web/mobile demo hoàn chỉnh để kết nối với cơ sở dữ liệu.
- Chưa hoàn thiện và thử nghiệm toàn bộ các chức năng mở rộng như phân quyền đa cấp, tích hợp cổng thanh toán trực tuyến thực tế, hoặc cơ chế xử lý đồng thời khi có lượng truy cập lớn.
Hướng nghiên cứu tiếp
- Xây dựng hoàn chỉnh ứng dụng website và ứng dụng di động kết nối trực tiếp với hệ cơ sở dữ liệu đã thiết kế để phục vụ người dùng cuối.
- Cải tiến và tối ưu hóa cấu trúc cơ sở dữ liệu, bổ sung các chỉ mục (Index) và kỹ thuật phân vùng bảng (Partitioning) để đảm bảo hiệu năng khi lượng dữ liệu và giao dịch tăng trưởng quy mô lớn.
- Nghiên cứu tích hợp các giải pháp NoSQL/NewSQL (như MongoDB, Redis, CockroachDB) theo định hướng khảo cứu lý thuyết nhằm phục vụ lưu trữ phiên làm việc (Session) và xử lý dữ liệu phân tán.
Giá trị tham khảo
Báo cáo học phần là tài liệu học thuật hữu ích cho:
- Sinh viên ngành Công nghệ thông tin và Hệ thống thông tin: Tham khảo phương pháp chuyển đổi yêu cầu nghiệp vụ thực tế thành mô hình ERD, kỹ thuật tính bao đóng $X^+$, quy trình chứng minh dạng chuẩn 3NF và kỹ năng viết Trigger/Cursor trên SQL Server.
- Nhà phát triển website thương mại điện tử: Tham khảo cấu trúc lược đồ dữ liệu chuyên ngành trang sức (các bảng danh mục, sản phẩm, khuyến mãi, đánh giá, chi nhánh, chi tiết đơn hàng).
- Nội dung đáng giá nhất để trích xuất: Lược đồ quan hệ 11 bảng, các kịch bản T-SQL DDL có thiết lập đầy đủ ràng buộc toàn vẹn và các công thức tính toán doanh thu/tồn kho.
Câu hỏi thường gặp
1. Đề tài đã tiến hành khảo sát các nền tảng thực tế nào để xây dựng yêu cầu cho hệ thống?
Nhóm tác giả đã tiến hành khảo sát hiện trạng giao diện, tính năng và quy trình nghiệp vụ của 3 website kinh doanh trang sức tại Việt Nam: Cửa hàng PNJ (Công ty Vàng bạc Đá quý Phú Nhuận), Cửa hàng trang sức cao cấp LiLi và Cửa hàng VNJ - Trang sức Việt.
2. Cơ sở dữ liệu của đề tài bao gồm bao nhiêu bảng và đạt dạng chuẩn nào?
Cơ sở dữ liệu gồm 11 bảng dữ liệu chính (Khach_hang, San_pham, Don_hang, Chi_tiet_don_hang, Nhan_Vien, Chi_Nhanh, Nha_cung_cap, Danh_Muc, Danh_gia_, Khuyen_Mai, Thong_ke, Hoa_don), toàn bộ đều đạt Dạng chuẩn 1 (1NF) và Dạng chuẩn 3 (3NF).
3. Cơ chế tự động cập nhật số lượng tồn kho được xử lý như thế nào?
Cơ chế này được cài đặt thông qua Trigger update_product_quantity bắt sự kiện AFTER INSERT trên bảng đơn hàng. Khi có đơn mới, Trigger kiểm tra số lượng tồn kho hiện tại; nếu đủ hàng sẽ tự động thực hiện phép trừ quantity = product_count - ordered_quantity, nếu không đủ sẽ ngắt giao dịch và phát thông báo lỗi trạng thái '45000'.
4. Các công thức tính toán doanh thu và tồn kho được định nghĩa như thế nào trong báo cáo?
Báo cáo xác định 3 công thức:
- Tổng giá trị đơn hàng: $\sum (\text{Giá sản phẩm} \times \text{Số lượng})$
- Tổng doanh thu tháng: $\sum (\text{Tổng giá trị đơn hàng trong tháng})$
- Số lượng tồn kho: $\text{Số lượng nhập vào} - \text{Số lượng đã bán}$
5. Thủ tục lưu trữ sử dụng con trỏ (Cursor) trong đề tài thực hiện nhiệm vụ gì?
Thủ tục CapNhatGiaSanPham sử dụng con trỏ CR_SP để duyệt qua từng mã sản phẩm trong bảng SANPHAM và thực hiện câu lệnh UPDATE tăng giá bán đồng loạt 10% (Gia = @Gia * 1.10).
Kết luận
Báo cáo "Quản lý website bán đồ trang sức" của nhóm sinh viên Trường Đại học Ngoại ngữ - Tin học TP.HCM đã hoàn thành xuất sắc mục tiêu thiết kế và cài đặt một hệ thống cơ sở dữ liệu quan hệ hoàn chỉnh gồm 11 bảng đạt chuẩn 3NF. Đề tài vận dụng chặt chẽ các nguyên lý toán học của hệ tiên đề Armstrong, thuật toán tìm khóa và lý thuyết chuẩn hóa để bảo toàn tính toàn vẹn dữ liệu cho nghiệp vụ bán lẻ trang sức. Kết quả triển khai trên SQL Server với các kịch bản T-SQL, Trigger và Cursor cung cấp một tài liệu kỹ thuật chuẩn mực, tạo nền tảng vững chắc để tiếp tục xây dựng các ứng dụng web và di động hoàn chỉnh trong tương lai.