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

Đề tài "Thiết Kế và Phát Triển Cơ Sở Dữ Liệu: Hướng Dẫn Chi Tiết" (tên gốc trong chương trình đào tạo: Unit 04: Database Design & Development - Assignment 2) được thực hiện bởi sinh viên Trần Đức Long (Mã sinh viên: GCH210562, Lớp: GCH1106, Giảng viên đánh giá: Đinh Đức Mạnh) trong khuôn khổ chương trình văn bằng BTEC Level 5 HND Diploma in Computing. Báo cáo nộp ngày 04/03/2023 với quy mô 86 trang, được xây dựng nhằm giải quyết các tiêu chí đánh giá học thuật từ mức Đạt (P2, P3, P4, P5), Khá (M2, M3, M4, M5) đến Xuất sắc (D2, D3).

Về bối cảnh thực tiễn, tác giả đặt trọng tâm vào bài toán xây dựng hệ thống cơ sở dữ liệu hoàn chỉnh cho hệ thống bán lẻ trực tuyến (mô hình FPT Shop). Doanh nghiệp cần một hệ thống quản trị dữ liệu tập trung, đảm bảo khả năng lưu trữ, truy xuất, cập nhật và xóa bỏ các thông tin cốt lõi bao gồm: hồ sơ khách hàng, nhân sự, tài khoản đăng nhập, danh mục sản phẩm, chính sách giảm giá và thông tin đơn đặt hàng. Đồng thời, hệ thống phải cung cấp các số liệu thống kê giúp cấp quản lý theo dõi sát sao tình hình vận hành kinh doanh.

Mục tiêu và nhiệm vụ nghiên cứu trong tài liệu được phân chia thành ba nhiệm vụ trọng tâm:

  1. Nhiệm vụ 1 (Task 1 - Develop the database system): Hiện thực hóa bản thiết kế cơ sở dữ liệu quan hệ trên hệ quản trị cơ sở dữ liệu Microsoft SQL Server; xây dựng giao diện mẫu (mock-up) tích hợp các tính năng vận hành; thiết lập phân vùng schema, tạo bảng với đầy đủ ràng buộc khóa; xây dựng cơ chế bảo mật phân quyền người dùng và kế hoạch bảo trì hệ thống.
  2. Nhiệm vụ 2 (Task 2 - Produce queries): Viết và thực thi các câu lệnh thao tác dữ liệu (INSERT, UPDATE, DELETE, SELECT) từ cơ bản đến phức tạp (kỹ thuật Self-Join, Inner Join nhiều bảng, hàm gộp Aggregate Functions); xây dựng các đối tượng lập trình cơ sở dữ liệu nâng cao gồm Stored Procedures, Triggers (DML và DDL), User-Defined Functions và tạo Index để tối ưu hóa hiệu năng truy vấn.
  3. Nhiệm vụ 3 (Task 3 - Test the system): Lập kế hoạch và thực hiện kiểm thử toàn diện hệ thống; mô hình hóa quy trình vận hành qua các lưu đồ luồng dữ liệu (Flowcharts); thiết kế sơ đồ quan hệ thực thể (ER Diagram); biên soạn bộ tài liệu kỹ thuật cùng tài liệu hướng dẫn người dùng; đánh giá hiệu quả và đề xuất giải pháp cải tiến trong tương lai.

Đối tượng nghiên cứu là quy trình thiết kế, cài đặt, vận hành và tối ưu hóa hệ thống cơ sở dữ liệu quan hệ cho cửa hàng bán lẻ trực tuyến. Phạm vi nghiên cứu giới hạn trong dữ liệu quản lý bán hàng của chuỗi cửa hàng FPT Shop, triển khai kỹ thuật trên nền tảng Microsoft SQL Server kết hợp ứng dụng điều khiển viết bằng ngôn ngữ C# trên môi trường Microsoft Visual Studio.

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

Về cơ sở lý thuyết, tác giả áp dụng mô hình cơ sở dữ liệu quan hệ (Relational Database Model), lý thuyết chuẩn hóa dữ liệu, hệ thống ràng buộc toàn vẹn dữ liệu (Primary Key, Foreign Key, Unique Constraint, Cascade Rules) và các nguyên lý bảo mật kiểm soát truy cập dựa trên vai trò (Role-Based Access Control - RBAC). Cơ chế ghi vết thay đổi (Auditing) và tối ưu hóa chỉ mục (Indexing) cũng được tích hợp làm nền tảng kỹ thuật.

Phương pháp nghiên cứu và phát triển hệ thống được thực hiện qua các bước thực nghiệm cụ thể:

  • Phương pháp phân tích và mô hình hóa: Xây dựng hệ thống giao diện mẫu (Mock-up) đa cấp từ màn hình đăng nhập, đăng ký đến các phân hệ Xem, Thêm, Cập nhật và Thống kê; phân rã thực thể kinh doanh thành hai schema logic độc lập (sales và production).
  • Phương pháp thực nghiệm lập trình cơ sở dữ liệu: Sử dụng ngôn ngữ T-SQL để khởi tạo cấu trúc dữ liệu DDL, thao tác DML, lập trình thủ tục lưu trữ (Stored Procedures), hàm người dùng định nghĩa (Functions) và bộ kích hoạt tự động (Triggers).
  • Phương pháp kiểm thử và phân tích luồng: Thiết lập bảng kiểm thử chi tiết (Test Plan & Test Results), xây dựng lưu đồ thuật toán (Flowchart) cho các tiến trình Thêm, Sửa, Xóa và sơ đồ thực thể liên kết (ER Diagram).
  • Phương pháp giám sát và tối ưu: Ứng dụng công cụ giám sát sự kiện SQL Server Profiler, sao lưu dữ liệu (Database Backup) và thiết lập tường lửa (Firewall) bảo vệ hệ thống.
  • Nguồn dữ liệu: Dữ liệu thử nghiệm được tác giả tự sinh (synthetic test data) phản ánh đầy đủ các nghiệp vụ thực tế của chuỗi bán lẻ hàng công nghệ bao gồm thương hiệu, loại hàng, sản phẩm, mã giảm giá, nhân viên, khách hàng và chi tiết đơn đặt hàng.

Thiết kế và triển khai

Hệ thống cơ sở dữ liệu được thiết kế gồm hai phân vùng schema chính nhằm phân tách rõ ràng trách nhiệm nghiệp vụ giữa khâu sản xuất/quản lý hàng hóa và khâu kinh doanh/bán hàng:

Tên Schema Bảng dữ liệu trực thuộc Vai trò và chức năng quản lý
production Brands Quản lý danh mục các thương hiệu sản phẩm cung cấp cho chuỗi cửa hàng.
production Categories Phân loại các nhóm sản phẩm kinh doanh.
production Products Lưu trữ thông tin chi tiết về sản phẩm, giá bán, thương hiệu và danh mục.
sales Discounts Quản lý các chương trình ưu đãi, mã giảm giá áp dụng cho đơn hàng.
sales Customers Lưu trữ hồ sơ thông tin cá nhân, liên lạc của khách hàng.
sales Staffs Quản lý hồ sơ nhân sự, phân cấp nhân viên và mối quan hệ quản lý trực tiếp.
sales Orders Lưu trữ thông tin đơn hàng, ngày tạo, khách hàng mua và nhân viên phụ trách.
sales OrderItems Chi tiết từng mặt hàng trong đơn hàng, số lượng và áp dụng chiết khấu.
Phân hệ Audit CustomerAudits, ChangeLogs Lưu trữ nhật ký thay đổi dữ liệu bảng khách hàng và biến động cấu trúc hệ thống.

Về ràng buộc dữ liệu, hệ thống thiết lập các khóa chính (PK) và khóa ngoại (FK) chuẩn hóa. Đặc biệt, tác giả áp dụng quy tắc cập nhật và xóa theo tầng (ON UPDATE CASCADE, ON DELETE CASCADE) giữa các bảng quan hệ cha - con, cho phép tự động đồng bộ hoặc thu hồi các bản ghi phụ thuộc khi bản ghi cha bị thay đổi hoặc loại bỏ.

Cơ chế an ninh và phân quyền được cấu hình chặt chẽ trên Microsoft SQL Server thông qua việc tạo các Login và phân quyền theo Role:

  • Vai trò Quản lý (Manager): Được cấp quyền toàn năng trên toàn bộ hệ thống, bao gồm xem số liệu thống kê và thực hiện đầy đủ các thao tác INSERT, UPDATE, SELECT, DELETE trên tất cả các bảng.
  • Vai trò Nhân viên (Staff / Member): Bị giới hạn phạm vi truy cập; chỉ được phép thực thi thao tác SELECT và INSERT trên hai bảng Customers và Orders để tiếp nhận đơn hàng, tuyệt đối không được cấp quyền DELETE nhằm bảo vệ an toàn dữ liệu lịch sử.

Về lập trình đối tượng nâng cao, đồ án đã triển khai:

  • Stored Procedures: Xây dựng các thủ tục truy vấn phân tích chuyên sâu gồm: trích xuất Top 5 nhân viên xuất sắc nhất năm trước, Top 5 khách hàng có giá trị mua hàng cao nhất năm trước, và Top 5 sản phẩm bán chạy nhất trong năm 2022 (sử dụng hàm gộp SUM, mệnh đề GROUP BY, INNER JOIN và câu lệnh gọi EXEC).
  • Triggers: Thiết lập DML Trigger gắn liền với bảng Customers để tự động ghi lại toàn bộ hành vi thêm, sửa, xóa vào bảng CustomerAudits. Đồng thời, thiết lập DDL Trigger hiển thị và lưu vết các thay đổi cấu trúc bảng vào bảng ChangeLogs.
  • Functions: Xây dựng hàm do người dùng định nghĩa mang tên fn_FindManageInfo nhằm tính toán và hiển thị số lượng nhân viên dưới quyền mà mỗi quản lý đang phụ trách.
  • Tối ưu hóa chỉ mục (Index): Khởi tạo Index trên các trường dữ liệu thường xuyên tra cứu và chạy thử nghiệm đối soát hiệu năng.
  • Tích hợp ứng dụng bên ngoài: Thực hiện kết nối thành công cơ sở dữ liệu SQL Server với môi trường phát triển Microsoft Visual Studio thông qua ứng dụng C# Console Application, truy xuất và hiển thị dữ liệu bảng sản phẩm (Products) trực tiếp trên màn hình console.

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

Task 1: Phát triển hệ thống cơ sở dữ liệu (Develop the database system)

Nội dung phần này trình bày tiến trình hiện thực hóa hệ thống từ bản vẽ thiết kế đến cơ sở dữ liệu hoạt động thực tế. Tác giả xây dựng hoàn chỉnh 16 giao diện Mock-up bao gồm: màn hình đăng nhập (Figure 1), đăng ký (Figure 2), bố cục chính (Figure 3), các trình đơn và giao diện hiển thị danh sách (Khách hàng, Nhân viên, Đơn hàng, Sản phẩm từ Figure 4 đến Figure 8), các màn hình thêm mới dữ liệu (Figure 9 đến Figure 13), màn hình cập nhật thông tin (Figure 14, 15) và màn hình thống kê (Figure 16).

Sau giai đoạn thiết kế giao diện, tác giả trình bày hệ thống câu lệnh DDL khởi tạo cơ sở dữ liệu, hai schema sales và production cùng 8 bảng dữ liệu quan hệ (từ Figure 17 đến Figure 26). Cấu trúc các bảng sau khi tạo thành công được tổng hợp trong các hình ảnh từ Figure 27 đến Figure 35, đi kèm sơ đồ quan hệ hoàn chỉnh (Final Diagram tại Figure 36). Phần cuối của nhiệm vụ 1 tập trung vào tính năng bảo trì hệ thống và an ninh bảo mật: thiết lập DBMS Microsoft SQL Server, tạo tài khoản người dùng, phân định vai trò Manager và Staff (Figure 37 đến Figure 40).

Task 2: Xây dựng và thực thi các câu lệnh truy vấn (Produce queries)

Nhiệm vụ 2 trình bày chi tiết các kịch bản thao tác dữ liệu trên hệ thống bán hàng:

  • Thao tác chèn dữ liệu (INSERT): Thực hiện đưa các tập dữ liệu mẫu vào 8 bảng dữ liệu và minh họa kết quả sau khi nạp (Figure 41 đến Figure 48).
  • Thao tác cập nhật dữ liệu (UPDATE): Mô tả kịch bản quản trị viên cập nhật thông tin khách hàng có số điện thoại 0974123452 với các giá trị mới về tên, email; so sánh trực tiếp trạng thái dữ liệu trước và sau khi chạy câu lệnh (Figure 49 đến Figure 51).
  • Thao tác xóa dữ liệu (DELETE): Mô tả nghiệp vụ khi quản lý cần xóa một sản phẩm ra khỏi thực đơn với mã ProductId = 2; đối chiếu dữ liệu trước và sau khi xóa (Figure 52 đến Figure 54).
  • Thao tác truy vấn dữ liệu (SELECT): Triển khai kỹ thuật Self-Join trên bảng Staffs để tra cứu thông tin nhân sự và cấp trên trực tiếp (Figure 55); truy vấn danh sách khách hàng (Figure 56); sử dụng Inner Join kết hợp 3 bảng Orders, Customers, Staffs sắp xếp giảm dần theo ngày tạo bằng ORDER BY (Figure 57); truy vấn mã giảm giá (Figure 58); kết hợp 3 bảng Products, Brands, Categories để hiển thị thông tin sản phẩm (Figure 59); liên kết 3 bảng OrderItems, Products, Discounts kết hợp hàm SUM, mệnh đề GROUP BY và ORDER BY để tính tổng giá trị thanh toán của từng đơn hàng (Figure 60).
  • Truy vấn nâng cao (Advanced Queries): Xây dựng và thực thi Stored Procedures thống kê Top 5 nhân viên xuất sắc, Top 5 khách hàng mua nhiều nhất và Top 5 sản phẩm bán chạy nhất năm 2022 (Figure 61 đến Figure 63). Thiết lập bảng CustomerAudits cùng DML Trigger giám sát thao tác trên bảng khách hàng (Figure 64 đến Figure 66); khởi tạo DDL Trigger và bảng ChangeLogs (Figure 67 đến Figure 69); lập trình hàm fn_FindManageInfo đếm số nhân viên trực thuộc từng quản lý (Figure 70, 71); tạo và kiểm thử hiệu năng chỉ mục Index (Figure 72, 73).

Task 3: Kiểm thử hệ thống và hoàn thiện tài liệu (Test the system)

Nội dung nhiệm vụ 3 tập trung vào khâu đánh giá chất lượng, trực quan hóa luồng dữ liệu và chuyển giao tài liệu kỹ thuật:

  • Kế hoạch và kết quả kiểm thử (Test plan and test result): Thiết lập kịch bản kiểm thử cho các chức năng của hệ thống, ghi nhận kết quả và đưa ra đánh giá tổng quan về quá trình khắc phục lỗi phát sinh.
  • Xây dựng lưu đồ luồng hoạt động (Flowcharts): Mô hình hóa quy trình vận hành chung của toàn hệ thống (Figure 74), lưu đồ thêm mới dữ liệu vào các bảng (Figure 75), lưu đồ cập nhật dữ liệu (Figure 76) và lưu đồ xóa dữ liệu (Figure 77).
  • Mô hình thực thể quan hệ (ER Diagram): Trình bày sơ đồ thực thể chi tiết tại Figure 78 làm cơ sở tham chiếu kỹ thuật.
  • Tài liệu kỹ thuật và hướng dẫn người dùng: Biên soạn bộ tài liệu người dùng hoàn chỉnh gồm 8 phần chi tiết (User doc 01 đến User doc 08 từ Figure 79 đến Figure 87).
  • Bảo trì và an toàn hệ thống: Hướng dẫn sử dụng tường lửa (Firewall - Figure 88), ứng dụng công cụ SQL Server Profiler kết nối và thiết lập vết sự kiện (Event Trace từ Figure 89 đến Figure 92), quy trình sao lưu dữ liệu cơ sở dữ liệu (Database Backup tại Figure 93, 94).
  • Kết nối ứng dụng và định hướng tương lai: Minh họa quy trình kết nối CSDL với Visual Studio và truy vấn dữ liệu sản phẩm bằng mã nguồn C# (Figure 95 đến Figure 98); phân tích các định hướng nâng cấp về giao diện người dùng, tính khả dụng và khả năng tích hợp với các hệ thống khác.

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

Đồ án đã hoàn thành toàn diện các yêu cầu kỹ thuật đặt ra trong chương trình học với những kết quả cụ thể:

Hạng mục triển khai Kết quả chi tiết ghi nhận trong văn bản
Quy mô tài liệu 86 trang báo cáo hoàn chỉnh với 98 hình ảnh minh họa chi tiết từng bước.
Cấu trúc CSDL Khởi tạo 2 schema (sales, production), 8 bảng dữ liệu quan hệ và 2 bảng lưu vết nhật ký (CustomerAudits, ChangeLogs).
Giao diện Mock-up Thiết kế 16 màn hình giao diện mẫu bao quát toàn bộ nghiệp vụ của cửa hàng bán lẻ FPT Shop.
Xử lý dữ liệu Thực thi đầy đủ các câu lệnh DDL, DML (Insert, Update, Delete, Select liên kết bảng nhiều tầng, Self-join).
Lập trình nâng cao Xây dựng 3 Stored Procedures thống kê kinh doanh năm 2022, 1 DML Trigger, 1 DDL Trigger, 1 Function (fn_FindManageInfo), và hệ thống Index.
An toàn & Bảo mật Phân quyền 2 nhóm tài khoản (Manager, Staff), thiết lập Firewall, Event Trace qua SQL Server Profiler và tạo bản sao lưu Backup.
Tích hợp & Tài liệu Kết nối CSDL với C# Console Application trên Visual Studio; biên soạn 8 bộ tài liệu hướng dẫn người dùng (User doc 01 - 08) và 4 lưu đồ thuật toán.

Đóng góp chính của đồ án là cung cấp một bản thiết kế mẫu chuẩn hóa về cơ sở dữ liệu bán lẻ, minh chứng rõ ràng việc áp dụng phân vùng schema để quản lý dữ liệu khoa học, đồng thời hiện thực hóa cơ chế giám sát tự động bằng trigger và bảo vệ dữ liệu theo nguyên tắc phân quyền vai trò.

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

Về mặt hạn chế, văn bản cho thấy hệ thống hiện tại chủ yếu được triển khai và thử nghiệm trên môi trường máy chủ cục bộ; phần giao diện tương tác người dùng mới dừng lại ở các bản vẽ Mock-up và ứng dụng kết nối thử nghiệm dạng Console Application (C#) nhằm kiểm tra việc đọc bảng Products, chưa xây dựng thành một phần mềm giao diện đồ họa (GUI) hoàn chỉnh. Phân quyền bảo mật hiện mới phân định trên hai nhóm tài khoản cố định là Manager và Staff.

Về hướng nghiên cứu và phát triển tiếp theo, tác giả đề xuất hai trọng tâm cải tiến trong tương lai:

  1. Nâng cấp giao diện người dùng và tính khả dụng (User interface and usability): Xây dựng giao diện đồ họa tương tác trực quan, thân thiện, đồng bộ trực tiếp với các luồng chức năng của cơ sở dữ liệu.
  2. Tích hợp hệ thống mở rộng (Integration with other systems): Mở rộng khả năng kết nối và đồng bộ cơ sở dữ liệu với các hệ thống bên ngoài khác như các nền tảng thương mại điện tử, hệ thống quản trị kho hàng hoặc cổng thanh toán.

Giá trị tham khảo

Đồ án là tài liệu tham khảo thực hành cho sinh viên chuyên ngành Công nghệ thông tin, Hệ thống thông tin và Khoa học máy tính, đặc biệt là người học đang thực hiện bài tập lớn hoặc đồ án môn học môn Thiết kế & Phát triển Cơ sở dữ liệu (Unit 04: Database Design & Development trong chương trình BTEC HND).

Các phần có giá trị tham khảo ứng dụng cao bao gồm:

  • Mẫu thiết kế phân tách schema kinh doanh (sales) và hàng hóa (production) kèm sơ đồ ER Diagram chuẩn.
  • Cú pháp và cách xây dựng các đối tượng T-SQL nâng cao: Stored Procedures thống kê, DML/DDL Trigger theo dõi nhật ký dữ liệu và Function quản lý nhân sự.
  • Phương pháp xây dựng kịch bản kiểm thử, lưu đồ luồng nghiệp vụ và quy trình cấu hình an toàn dữ liệu bằng SQL Server Profiler và công cụ sao lưu.

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

1. Cơ sở dữ liệu FPT Shop trong đồ án được phân chia thành những Schema nào và mục đích là gì?
Hệ thống được chia thành 2 schema riêng biệt: sales (chứa các bảng Discounts, Customers, Staffs, Orders, OrderItems) và production (chứa các bảng Brands, Categories, Products). Việc phân chia này giúp tổ chức các bảng khoa học theo từng khía cạnh nghiệp vụ, làm rõ mối quan hệ dữ liệu và giúp việc bảo trì, khắc phục sự cố hệ thống diễn ra thuận tiện.

2. Quyền hạn thao tác dữ liệu giữa hai vai trò Manager và Staff được phân định như thế nào?
Tài khoản có vai trò Manager được cấp toàn quyền thao tác (INSERT, UPDATE, SELECT, DELETE) trên tất cả các bảng và có quyền xem số liệu thống kê. Ngược lại, tài khoản thuộc vai trò Staff (hoặc Member) chỉ có quyền SELECT và INSERT trên hai bảng Customers và Orders để phục vụ bán hàng, hoàn toàn không có quyền xóa (DELETE) dữ liệu trên các bảng này.

3. Tác giả đã xây dựng các Stored Procedure nâng cao nào để hỗ trợ quản trị kinh doanh?
Tác giả đã lập trình các Stored Procedure sử dụng hàm gộp SUM, mệnh đề GROUP BY và INNER JOIN để trích xuất: Top 5 nhân viên xuất sắc nhất năm trước, Top 5 khách hàng có lượng mua sắm nhiều nhất năm trước, và Top 5 sản phẩm bán chạy nhất trong năm 2022.

4. Cơ chế ghi nhật ký thay đổi (Audit log) trên bảng Khách hàng được hiện thực bằng kỹ thuật gì?
Tác giả tạo một bảng trung gian mang tên CustomerAudits, sau đó viết một DML Trigger trên bảng Customers. Khi có bất kỳ hành động thêm (INSERT), sửa (UPDATE) hoặc xóa (DELETE) dữ liệu khách hàng, Trigger sẽ tự động ghi vết lịch sử hoạt động vào bảng CustomerAudits. Ngoài ra, DDL Trigger cũng được tạo để ghi nhận thay đổi cấu trúc vào bảng ChangeLogs.

5. Tác giả đã sử dụng những công cụ nào để đảm bảo an toàn, giám sát và bảo trì cơ sở dữ liệu?
Hệ thống được bảo vệ và bảo trì thông qua việc cấu hình phân quyền trên Microsoft SQL Server, thiết lập tường lửa (Firewall), sử dụng công cụ SQL Server Profiler để thiết lập vết sự kiện (Event Trace) giám sát hoạt động hệ thống, và thực hiện quy trình tạo bản sao lưu dữ liệu (Database Backup) định kỳ.

Kết luận

Báo cáo đồ án của sinh viên Trần Đức Long cung cấp giải pháp toàn diện về thiết kế, triển khai và tối ưu hóa hệ thống cơ sở dữ liệu cho mô hình bán lẻ trực tuyến FPT Shop trên nền tảng Microsoft SQL Server. Công trình thể hiện quy trình phát triển chuẩn mực thông qua việc tích hợp các giao diện mẫu Mock-up, phân vùng schema dữ liệu khoa học, lập trình các đối tượng T-SQL nâng cao và phân quyền người dùng chặt chẽ. Hệ thống đã được kiểm thử, mô hình hóa luồng xử lý bằng lưu đồ, tài liệu hóa chi tiết và bước đầu kết nối thành công với ứng dụng C#, tạo tiền đề vững chắc cho việc phát triển phần mềm thương mại hoàn chỉnh trong tương lai.