Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh kỷ nguyên số, sự phát triển mạnh mẽ của công nghệ thông tin và mạng máy tính toàn cầu đã tạo động lực căn bản thúc đẩy thương mại điện tử và chính phủ điện tử. Đối với các đơn vị sản xuất, phân phối và kinh doanh bán lẻ, website thương mại điện tử trở thành một giải pháp thiết yếu giúp kết nối khách hàng, giới thiệu sản phẩm và xúc tiến mở rộng thị trường với chi phí tối ưu. Hệ thống bán lẻ Điện máy Nguyễn Kim là một chuỗi siêu thị kinh doanh điện máy quy mô lớn với nhiều phòng ban, hệ thống chi nhánh cửa hàng, mạng lưới kho bãi và đội ngũ nhân sự phức tạp. Việc số hóa toàn diện quy trình vận hành đòi hỏi một hệ thống quản trị dữ liệu tập trung, đảm bảo tính an toàn, toàn vẹn và năng lực kiểm soát giao tác đa tầng. Xuất phát từ nhu cầu thực tiễn đó, nhóm tác giả đã thực hiện đề tài "Tìm hiểu Oracle và lập kế hoạch quản trị cho Điện máy Nguyễn Kim" (hay đồ án "Xây dựng hệ thống quản lý cửa hàng điện máy Nguyễn Kim").
Mục tiêu nghiên cứu của đề tài được tác giả xác định cụ thể qua 4 nhiệm vụ cốt lõi sau:
- Phân tích các yêu cầu nghiệp vụ của doanh nghiệp (Cửa hàng điện máy Nguyễn Kim).
- Thiết kế mô hình dữ liệu phù hợp với các yêu cầu vận hành của doanh nghiệp.
- Thiết kế các quy trình xử lý giao tác phù hợp với mô hình hoạt động của doanh nghiệp.
- Xây dựng cơ sở dữ liệu trên hệ quản trị Oracle và phát triển trang web quản trị dựa trên các bản thiết kế.
Đối tượng nghiên cứu của đồ án là quy trình vận hành và hệ thống quản trị thông tin của chuỗi cửa hàng Điện máy Nguyễn Kim, bao gồm các phân hệ quản lý sản phẩm, tồn kho, chuỗi chi nhánh, nhân sự, khách hàng, chính sách khuyến mãi - voucher, giỏ hàng, đơn hàng, bảo hành và phản hồi khách hàng. Phạm vi nghiên cứu về mặt không gian tập trung vào cấu trúc hoạt động phân tán của các chi nhánh và kho bãi thuộc hệ thống Điện máy Nguyễn Kim (thực nghiệm tại khu vực TP. Hồ Chí Minh). Phạm vi thời gian nghiên cứu và thu thập dữ liệu giao dịch mẫu được xác lập trong giai đoạn từ tháng 12/2021 đến tháng 01/2022.
Cơ sở lý thuyết và phương pháp
Khóa luận xây dựng giải pháp dựa trên nền tảng lý thuyết về hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), tập trung khai thác hệ quản trị Oracle Database. Theo báo cáo thống kê của Gartner năm 2016 được tác giả dẫn dụng, Oracle chiếm 40,4% doanh thu phần mềm cơ sở dữ liệu trên toàn cầu, giữ vị trí đứng đầu thị trường với quy mô thị phần gấp đôi đối thủ xếp thứ hai là Microsoft.
Để làm rõ lý do lựa chọn công nghệ, tác giả đã tiến hành đối sánh kỹ thuật giữa hai hệ quản trị cơ sở dữ liệu phổ biến là Oracle Database và Microsoft SQL Server:
| Cơ sở so sánh |
Oracle Database |
Microsoft SQL Server |
| Ngôn ngữ thủ tục |
Sử dụng PL/SQL (Procedural Language/SQL). |
Sử dụng T-SQL (Transact-SQL). |
| Cơ chế giao dịch |
Không có giao dịch nào được xác nhận (commit) cho đến khi người dùng/DBA thực thi lệnh COMMIT tường minh. |
Nếu không chỉ định BEGIN TRANSACTION và COMMIT, hệ thống tự động thực thi và commit từng lệnh riêng lẻ. |
| Cơ chế không gian lưu trữ |
Cơ sở dữ liệu được chia sẻ giữa tất cả các lược đồ (schema) và người dùng. |
Cơ sở dữ liệu độc lập, không chia sẻ giữa các người dùng. |
| Cấu trúc Gói (Package) |
Cho phép nhóm các thủ tục, hàm, biến và con trỏ lại thành từng Package hoàn chỉnh. |
Không hỗ trợ khái niệm Package trong SQL. |
| Hệ điều hành hỗ trợ |
Windows, Linux, Solaris, HP-UX, OS X, z/OS, AIX. |
Chủ yếu hỗ trợ Windows và Linux. |
| Đặc tính kỹ thuật |
Cấu trúc phức tạp nhưng năng lực quản trị mạnh mẽ. |
Đơn giản hơn và dễ tiếp cận hơn. |
Bên cạnh lý thuyết RDBMS cốt lõi, khóa luận nghiên cứu sâu các gói giải pháp chuyên sâu của Oracle Enterprise Edition:
- Oracle Virtual Private Database (VPD): Giải pháp bảo mật dữ liệu mức dòng (Row-Level Security) thông qua cơ chế Fine-Grained Access Control, sử dụng gói quản trị
DBMS_RLS và biến môi trường SYS_CONTEXT để kiểm soát quyền xem dữ liệu theo ngữ cảnh phiên làm việc.
- Oracle Data Masking and Subsetting Pack: Kỹ thuật che giấu dữ liệu nhạy cảm sử dụng gói
DBMS_REDACT nhằm bảo mật thông tin thẻ khách hàng khi hiển thị.
- Oracle Scheduler (
DBMS_SCHEDULER): Cơ chế lập lịch tác vụ tự động trên máy chủ cơ sở dữ liệu.
- Quản lý cô lập giao dịch: Sử dụng mức độ cô lập
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE nhằm triệt tiêu các hiện tượng tranh chấp, bảo đảm tính nhất quán tuyệt đối khi xử lý kho và đơn hàng đồng thời.
Phương pháp nghiên cứu thực tế được triển khai bao gồm:
- Phương pháp khảo sát hiện trạng và mô hình hóa nghiệp vụ thông qua hệ thống biểu đồ ca sử dụng (Use Case Diagram) cho 8 phân hệ chính.
- Phương pháp phân tích, thiết kế mô hình dữ liệu quan hệ (ERD), áp dụng lý thuyết phụ thuộc hàm để chuẩn hóa toàn bộ 26 bảng dữ liệu đạt dạng chuẩn 3NF (Third Normal Form) và BCNF (Boyce-Codd Normal Form).
- Phương pháp lập trình cơ sở dữ liệu nâng cao phía Server: xây dựng Trigger tự động, Trigger toàn vẹn dữ liệu, Cursor duyệt dữ liệu đa bảng, Stored Procedure giao tác và kịch bản phân quyền Role-Based Access Control (RBAC).
- Nguồn dữ liệu sử dụng là dữ liệu mô phỏng quy trình kinh doanh và cơ cấu danh mục hàng hóa điện tử, gia dụng thực tế của chuỗi Điện máy Nguyễn Kim (tủ lạnh, tivi, máy giặt, máy lạnh, thiết bị âm thanh).
Thiết kế và triển khai
Hệ thống được thiết kế theo kiến trúc Client/Server hoàn chỉnh, trong đó máy chủ cơ sở dữ liệu Oracle giữ vai trò trung tâm trong việc lưu trữ dữ liệu, kiểm soát tính toàn vẹn, bảo vệ an toàn thông tin và thực thi nghiệp vụ tự động; tầng Client đảm nhận hiển thị và giao tiếp người dùng qua nền tảng web ASP.NET Core MVC.
[ NGƯỜI DÙNG / TRÌNH DUYỆT WEB ]
[ TẦNG CLIENT / WEB APPLICATION ]
(Giao diện Khách hàng & Giao diện Nhân viên)
Kết nối qua ADO.NET / PL/SQL API
[ TẦNG SERVER / ORACLE DATABASE ]
Về mặt công nghệ và công cụ triển khai, dự án kết hợp các nền tảng:
- Máy chủ cơ sở dữ liệu: Oracle Database phiên bản hỗ trợ tính năng PL/SQL nâng cao, Data Redaction và Fine-Grained Auditing/RLS.
- Nền tảng ứng dụng máy khách (Client): Microsoft ASP.NET Core 5.0 (C#) theo mô hình MVC, sử dụng Entity Framework để kết nối và điều phối dữ liệu với máy chủ.
Chi tiết cấu hình phân quyền và bảo mật trên máy chủ Oracle được thiết lập thông qua 9 nhóm vai trò (Roles):
QUANTRIVIEN: Quản trị toàn quyền hệ thống cơ sở dữ liệu (GRANT ALL PRIVILEGES WITH ADMIN OPTION).
QUANLYCUAHANG: Quản lý danh mục, nhân viên, khách hàng, đơn hàng tại cửa hàng trực thuộc.
KETOAN: Quản lý báo cáo doanh thu, theo dõi hóa đơn và các phiếu xuất/nhập.
THUNGAN: Thực hiện xác nhận thanh toán đơn hàng và in hóa đơn tại quầy.
NHANVIEN: Phụ trách xử lý đơn hàng, điều phối giao hàng.
TRUONGKHO: Toàn quyền quản lý kho, duyệt phiếu nhập, phiếu xuất và chi tiết kho hàng phụ trách.
NHANSU: Quản lý hồ sơ nhân viên, cấp phát và cập nhật thông tin tài khoản nhân sự.
CSKH: Tiếp nhận, xử lý phản hồi và chăm sóc thông tin khách hàng.
QUANLYSANPHAM: Quản lý cấu mục sản phẩm, tính năng, thông số kỹ thuật và danh mục loại hàng.
Hệ thống thiết lập cơ chế đồng bộ tài khoản giữa bảng dữ liệu và hệ thống người dùng máy chủ: khi thực thi thủ tục Proc_Insert_Nhan_Vien, hệ thống tự động sinh câu lệnh động tạo User trên Oracle (CREATE USER ... IDENTIFIED BY '123456'), gán quyền phiên làm việc và gán Role tương ứng theo mã chức vụ (CV001 đến CV009). Nếu nhân viên bị khóa tài khoản hoặc xóa bỏ qua thủ tục Proc_Delete_Nhan_Vien, hệ thống sẽ kích hoạt lệnh DROP USER ... CASCADE tương ứng trên Oracle Server.
Chính sách bảo mật dòng Oracle VPD được cài đặt thông qua Context LUU_SESSION và Package SECURITY_PACKAGE, áp dụng trên 6 bảng: KHO, CHITIETKHO, PHIEUNHAP, CHITIETPHIEUNHAP, PHIEUXUAT, CHITIETPHIEUXUAT. Đối với người dùng có vai trò TRUONGKHO, hàm chính sách sẽ tự động bổ sung điều kiện truy vấn TRUONGKHO = SYS_CONTEXT('LUU_SESSION', 'USER_ID'), đảm bảo trưởng kho chỉ xem được dữ liệu thuộc phạm vi kho mình quản lý. Cơ chế Data Masking qua gói DBMS_REDACT được áp dụng cho cột MATHE thuộc bảng THETICHDIEM (định dạng VVVVVVVVVV,VVVVVVVVVV,*,3,8), che giấu các chữ số ở giữa để bảo vệ định danh thẻ của khách hàng (dạng 10******02). Tác vụ nền định kỳ được thiết lập thông qua Job Update_PhieuBaoHanh của gói DBMS_SCHEDULER, tự động quét và cập nhật trạng thái phiếu bảo hành hết hạn vào lúc 07:00 PM với tần suất 2 ngày một lần (FREQ=DAILY;INTERVAL=2).
Nội dung chính theo từng chương
Chương 1: Giới thiệu tổng quát về cơ sở dữ liệu Oracle
Chương 1 cung cấp tổng quan về vị thế, lịch sử hình thành và cấu trúc của hệ quản trị cơ sở dữ liệu Oracle Database từ phiên bản RDBMS thương mại đầu tiên năm 1979. Tác giả phân tích thị phần của Oracle theo Gartner năm 2016 (chiếm 40,4% doanh thu toàn cầu) và trình bày bảng so sánh kỹ thuật với SQL Server trên 6 tiêu chí vận hành: ngôn ngữ thủ tục, cơ chế commit giao dịch, chia sẻ cơ sở dữ liệu, quản lý gói Package, hệ điều hành hỗ trợ và mức độ phức tạp. Chương này cũng phân loại các tính năng chuyên biệt của Oracle Enterprise Edition bao gồm: Oracle Multitenant, Real Application Clusters (RAC), In-Memory, phân vùng dữ liệu, nén dữ liệu, Oracle Advanced Analytics (hỗ trợ SQL in-database và thuật toán mã nguồn mở R), các tính năng sẵn sàng cao High Availability (Data Guard, Active Data Guard) và các công cụ bảo mật chuyên sâu (Oracle Data Masking and Subsetting Pack, Oracle Label Security, Oracle Database Vault, Oracle Audit Vault & Database Firewall).
Chương 2: Khảo sát hiện trạng và xác định yêu cầu
Chương 2 mô tả bài toán thực tế của chuỗi siêu thị Điện máy Nguyễn Kim, tập trung vào hoạt động điều hành chi nhánh, tồn kho, quản lý nhân viên và xúc tiến thương mại trực tuyến. Tác giả khảo sát 5 khối chức năng chính trên giao diện mẫu: Trang chủ, Đăng ký/Đăng nhập, Xem thông tin chi tiết sản phẩm, Tìm kiếm thông minh và Giỏ hàng. Yêu cầu hệ thống được chia thành hai nhóm:
- Yêu cầu chức năng: Phân định các nhóm tác vụ dành cho lãnh đạo, bộ phận quản lý (quản lý nhân viên, quản lý khách hàng, quản lý sản phẩm, quản lý đơn hàng, tạo đơn và in hóa đơn) và khách hàng.
- Yêu cầu phi chức năng: Đảm bảo tính bảo mật (giới hạn quyền truy cập thông tin và giao tác theo vai trò), hiệu suất (tối ưu hóa thời gian phản hồi và xử lý kết quả), tiện dụng (giao diện dễ thao tác, ngăn ngừa sai sót nhập liệu) và an toàn (vận hành ổn định, có khả năng phục hồi dữ liệu sau sự cố).
Chương 3: Phân tích - Thiết kế dữ liệu
Chương 3 xây dựng hệ thống biểu đồ Use Case mô hình hóa các luồng nghiệp vụ: Đặt hàng offline, Đặt hàng online, Khách hàng cá nhân, Quản lý loại hàng, Quản lý nhân viên, Quản lý khách hàng, Quản lý kho và Quản lý nhà cung cấp. Trên cơ sở đó, tác giả thiết lập lược đồ quan hệ ERD gồm 26 bảng dữ liệu chuyên biệt:
| STT |
Tên bảng |
Số lượng cột chính |
Mô tả chức năng dữ liệu |
| 1 |
NHACUNGCAP |
4 cột |
Quản lý đối tác cung ứng hàng hóa, mã số thuế |
| 2 |
DANHMUC |
2 cột |
Quản lý nhóm sản phẩm lớn |
| 3 |
BANGLOAI (LOAI) |
3 cột |
Phân loại chi tiết thiết bị theo danh mục |
| 4 |
CUAHANG |
4 cột |
Quản lý chi nhánh cửa hàng và trưởng cửa hàng |
| 5 |
KHO |
3 cột |
Quản lý hệ thống kho bãi trực thuộc cửa hàng |
| 6 |
KHUYENMAI |
5 cột |
Quản lý các chương trình giảm giá theo thời gian |
| 7 |
SANPHAM |
5 cột |
Thông tin đơn giá, hình ảnh, khuyến mãi sản phẩm |
| 8 |
CHITIETLOAI |
2 cột |
Bảng quan hệ nhiều-nhiều giữa sản phẩm và phân loại |
| 9 |
CHITIETKHO |
3 cột |
Theo dõi số lượng tồn của từng sản phẩm tại mỗi kho |
| 10 |
THONGSOKITHUAT |
3 cột |
Quản lý các thông số kỹ thuật chi tiết của thiết bị |
| 11 |
TINHNANG |
4 cột |
Quản lý danh sách tính năng và hình ảnh minh họa |
| 12 |
DACDIEMNOIBAT |
2 cột |
Ghi nhận các đặc tính nổi bật của mặt hàng |
| 13 |
VOUCHER |
6 cột |
Quản lý mã giảm giá, phần trăm chiết khấu, hạn dùng |
| 14 |
KHACHHANG |
8 cột |
Hồ sơ khách hàng, tài khoản, số điện thoại, email |
| 15 |
THETICHDIEM |
6 cột |
Quản lý mã thẻ, điểm tích lũy và trạng thái thẻ |
| 16 |
HANGTICHDIEM |
2 cột |
Cấu hình các hạng thẻ thành viên (Đồng, Bạc, Vàng...) |
| 17 |
NHANVIEN |
13 cột |
Hồ sơ nhân sự, chức vụ, cửa hàng công tác, tài khoản |
| 18 |
CHUCVU |
2 cột |
Danh mục chức vụ công tác trong chuỗi cửa hàng |
| 19 |
PHIEUNHAP |
6 cột |
Quản lý chứng từ nhập kho từ nhà cung cấp |
| 20 |
CHITIETPHIEUNHAP |
4 cột |
Số lượng và đơn giá nhập của từng sản phẩm |
| 21 |
PHIEUBAOHANH |
6 cột |
Quản lý thời hạn bảo hành sản phẩm theo đơn hàng |
| 22 |
PHIEUXUAT |
7 cột |
Quản lý chứng từ xuất kho phục vụ đơn hàng |
| 23 |
CHITIETPHIEUXUAT |
3 cột |
Chi tiết số lượng hàng hóa thực xuất từ mỗi kho |
| 24 |
BANGDONHANG |
10 cột |
Theo dõi trạng thái duyệt, thanh toán, giao hàng |
| 25 |
CHITIETDONHANG |
5 cột |
Danh sách mặt hàng, số lượng, đơn giá và thành tiền |
| 26 |
PHANHOI |
5 cột |
Tiếp nhận và xử lý ý kiến đóng góp của người mua |
(Lưu ý: Trong quá trình cài đặt DDL thực tế ở Chương 5, tác giả bổ sung thêm bảng ThanhPho làm danh mục địa giới liên kết khóa ngoại với CuaHang và KhachHang).
Chương này cũng chứng minh sự chặt chẽ của lược đồ quan hệ thông qua lý thuyết phụ thuộc hàm. Toàn bộ các bảng nghiệp vụ được chứng minh đạt chuẩn 3NF (các thuộc tính không khóa phụ thuộc hoàn toàn vào khóa chính và không phụ thuộc bắc cầu), riêng các bảng THONGSOKITHUAT, TINHNANG, DACDIEMNOIBAT đạt chuẩn BCNF. Đồng thời, tác giả thiết lập bảng tầm ảnh hưởng ràng buộc toàn vẹn: ràng buộc không trùng lặp (duy nhất đối với Tài khoản, Số điện thoại, Email nhân viên/khách hàng; Mã số thuế nhà cung cấp); ràng buộc không để trống trên 19 bảng; và 24 quy tắc kiểm tra ràng buộc trường dữ liệu (Check Constraints: tỷ lệ khuyến mãi trong khoảng (0, 1], đơn giá, số lượng, điểm tích lũy, tổng tiền >= 0, ngày bắt đầu < ngày kết thúc, trạng thái thuộc tập {0, 1}).
Chương 4: Thiết kế xử lý trong Client/Server
Chương 4 tập trung đặc tả 20 quy trình xử lý giao tác hệ thống theo luồng Client - Server:
- Thêm sản phẩm
- Cập nhật sản phẩm
- Xóa sản phẩm
- Thêm nhân viên
- Cập nhật nhân viên
- Xóa nhân viên
- Đăng ký khách hàng
- Đăng nhập hệ thống
- Cập nhật thông tin khách hàng
- Nhập kho hàng hóa
- Đặt hàng trực tuyến
- Gửi phản hồi khách hàng
- Đổi mật khẩu tài khoản
- Xác nhận đơn hàng
- Xác nhận thanh toán đơn hàng
- Xác nhận giao hàng
- Xuất kho và khởi tạo phiếu bảo hành
- Xuất hóa đơn/phiếu giao dịch
- Thống kê doanh thu bán lẻ
- Tạo thẻ tích điểm cho người mua
Mỗi giao tác được xác định rõ các bước gửi tham số từ máy khách, cơ chế kiểm tra ràng buộc trên server, thực thi giao tác trong thủ tục và trả mã kết quả tương ứng về client. Chương này cũng hoàn thiện ma trận phân quyền ma trận giữa 9 nhóm vai trò đối với từng bảng dữ liệu (Select, Insert, Update, Delete) và quyền thực thi trên từng giao tác nghiệp vụ.
Chương 5: Triển khai thực nghiệm
Chương 5 hiện thực hóa toàn bộ các giải pháp đã thiết kế lên hệ thống thực tế:
- Cơ sở dữ liệu Oracle: Viết mã DDL thiết lập 27 bảng dữ liệu hoàn chỉnh kèm hệ thống khóa chính, khóa ngoại và ràng buộc CHECK.
- Lập trình Trigger: Cài đặt Trigger
TAO_ID_NHAN_VIEN tự động tính toán bù số 0 để sinh mã khóa chính theo cấu trúc NV00000001; Trigger Nhap_Kho tự động cập nhật cộng dồn số lượng vào bảng CHITIETKHO khi có phiếu nhập mới; Trigger HOAN_KHO sử dụng Cursor để hoàn trả tồn kho nếu đơn hàng giao thất bại và phiếu xuất chuyển trạng thái hủy.
- Hệ thống Stored Procedure: Xây dựng hàng loạt thủ tục nghiệp vụ với mức cô lập
SERIALIZABLE, tiêu biểu là Proc_Insert_Nhan_Vien, Proc_Update_Nhan_Vien, Proc_Delete_Nhan_Vien, Proc_Xac_Nhan_Don_Hang, Proc_Thanh_Toan_Don_Hang, Proc_Tinh_Trang_Giao_Hang (tự động tích lũy điểm = 1/1000 giá trị hóa đơn và nâng hạng thẻ H0002, H0003, H0004). Đặc biệt, thủ tục phức hợp Proc_Xuat_Phieu_Xuat_Va_Bao_Hanh sử dụng 2 con trỏ (Cursor) duyệt kiểm tra tồn kho trên từng chi nhánh trực thuộc cửa hàng, tự động cắt giảm tồn kho, tách lập các phiếu xuất theo kho và tự động kích hoạt tạo phiếu bảo hành có thời hạn 12 tháng (ADD_MONTHS(CURRENT_DATE, 12)).
- Triển khai bảo mật: Thực thi tạo 9 Roles, cấp quyền đối tượng; áp dụng cơ chế Data Masking che mã thẻ thành viên; cấu hình gói bảo mật VPD kiểm soát quyền xem dữ liệu kho hàng cho trưởng kho; thiết lập lịch biểu
DBMS_SCHEDULER quét hạn bảo hành tự động.
- Phía ứng dụng Web Client: Xây dựng 32 giao diện phân hệ Khách hàng (trang chủ hiển thị danh mục, tìm kiếm, giỏ hàng, đặt hàng giao tận nơi, tra cứu thẻ thành viên, gửi phản hồi) và phân hệ Nhân viên (quản lý sản phẩm, kho hàng, phiếu xuất nhập, quản lý nhân sự, khóa tài khoản khách hàng, thống kê doanh thu theo năm/tháng và trực quan hóa xu hướng mua hàng). Tác giả tiến hành thử nghiệm các kịch bản truy xuất đồng thời và xác minh tính an toàn bảo mật của hệ thống.
Chương 6: Kết luận
Chương 6 tổng kết toàn bộ các kết quả đạt được phía Server và Client, kiểm điểm các hạn chế kỹ thuật chưa hoàn thiện trong khuôn khổ môn học/đồ án, đồng thời đề xuất 3 định hướng phát triển hệ thống trong tương lai.
Kết quả và đóng góp
Khóa luận đã hoàn thành các mục tiêu đề ra và ghi nhận các kết quả cụ thể có trong văn bản:
- Xây dựng thành công cơ sở dữ liệu quan hệ gồm 26 bảng chuẩn hóa đạt chuẩn 3NF và BCNF, giải quyết triệt để hiện tượng dư thừa dữ liệu và bất thường khi thao tác dữ liệu.
- Thiết lập hệ thống kiểm soát toàn vẹn dữ liệu chặt chẽ ngay tại tầng máy chủ, bao gồm bảng ma trận ràng buộc dữ liệu đầu vào không trùng lặp (trên các thực thể
NHANVIEN, KHACHHANG, NHACUNGCAP), ràng buộc không trống trên 19 bảng và 24 quy tắc ràng buộc miền giá trị logic nghiệp vụ.
- Cài đặt 20 Stored Procedure và Trigger tự động hóa quy trình nghiệp vụ bán lẻ đa kho: tự động sinh định danh mã bản ghi, tự động điều chuyển số lượng kho khi nhập/xuất/hoàn trả hàng, tự động tách phiếu xuất kho, tự động cấp thẻ và tính hạng tích điểm, tự động kích hoạt và cập nhật hạn bảo hành 12 tháng. Toàn bộ các giao tác đều được bảo vệ dưới mức độ cô lập
SERIALIZABLE để chống xung đột truy xuất đồng thời.
- Hiện thực hóa thành công các cơ chế quản trị bảo mật chuyên sâu của Oracle Database Enterprise Edition: mô hình phân quyền 9 nhóm Role; chính sách bảo mật Virtual Private Database (VPD) giới hạn phạm vi truy cập dữ liệu kho bãi theo tài khoản Trưởng kho đăng nhập; giải pháp Data Masking bảo vệ mã thẻ thành viên khách hàng; và tác vụ nền
DBMS_SCHEDULER quét hạn bảo hành tự động với chu kỳ 2 ngày một lần.
- Triển khai phân hệ giao diện người dùng hoàn chỉnh với 32 màn hình chức năng đáp ứng đầy đủ quy trình mua sắm của khách hàng và các tác vụ vận hành, thống kê doanh thu nhiều chiều của cán bộ nhân viên.
Về mặt đóng góp, đề tài đã đưa ra giải pháp đưa toàn bộ các quy tắc ràng buộc logic nghiệp vụ phức tạp xuống quản trị trực tiếp tại tầng cơ sở dữ liệu Oracle thay vì chỉ phụ thuộc vào tầng ứng dụng, giúp đảm bảo tính an toàn dữ liệu tuyệt đối cho chuỗi kinh doanh điện máy. Đồng thời, công trình tự nêu đóng góp trong việc kết hợp thành công mô hình phân quyền tĩnh (RBAC) với phân quyền động theo ngữ cảnh dữ liệu (Oracle VPD), tạo ra một giải pháp mẫu về quản trị cơ sở dữ liệu doanh nghiệp phân tán.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên phần tự đánh giá của tác giả tại Chương 6, đồ án còn tồn tại một số điểm hạn chế kỹ thuật:
- Hệ thống chức năng quản lý nghiệp vụ bán lẻ và vận hành doanh nghiệp chưa đạt đến độ hoàn chỉnh toàn diện.
- Chưa thiết lập được cơ chế tự động hóa việc lập lịch sao lưu dữ liệu (backup dữ liệu) định kỳ cho cơ sở dữ liệu.
- Phân hệ giao diện quản trị trên trang web còn cần được tiếp tục hoàn thiện, tối ưu hóa trải nghiệm người dùng.
- Các phương thức thanh toán trực tuyến trên trang web còn hạn chế, cần mở rộng kết nối thêm các cổng thanh toán điện tử để tạo sự thuận tiện cho khách hàng.
Hướng phát triển tiếp theo được tác giả đề xuất bao gồm:
- Nghiên cứu và áp dụng thêm các phương thức, gói giải pháp bảo mật nâng cao khác của Oracle nhằm củng cố an toàn thông tin hệ thống.
- Tiếp tục tối ưu hóa cấu trúc các thủ tục (Stored Procedures) nhằm nâng cao tốc độ xử lý giao tác và cải thiện năng lực đáp ứng của cơ sở dữ liệu.
- Chuẩn hóa và tinh gọn quy trình nghiệp vụ nhằm đưa hệ thống vào áp dụng thực tế tại các doanh nghiệp thương mại điện tử quy mô lớn.
Giá trị tham khảo
Tài liệu khóa luận có giá trị tham khảo chuyên môn cao đối với sinh viên chuyên ngành Công nghệ thông tin, Hệ thống thông tin, Kỹ thuật phần mềm và Khoa học máy tính đang thực hiện đồ án tốt nghiệp hoặc các học phần chuyên sâu về Cơ sở dữ liệu nâng cao, Quản trị cơ sở dữ liệu Oracle.
Những nội dung nổi bật mang lại giá trị thực hành thực tế gồm:
- Toàn bộ phương pháp phân tích phụ thuộc hàm và các bước chuẩn hóa mô hình dữ liệu quan hệ đạt chuẩn 3NF và BCNF cho một hệ thống bán lẻ đa chi nhánh phức tạp (Chương 3).
- Cấu trúc kịch bản mã nguồn PL/SQL mẫu cho các thủ tục giao tác thương mại: kỹ thuật quản lý đa con trỏ (Cursor) duyệt kho phân tán, điều chuyển tồn kho kết hợp cô lập giao dịch
SERIALIZABLE trong Proc_Xuat_Phieu_Xuat_Va_Bao_Hanh (Chương 5).
- Quy trình từng bước triển khai kiến trúc bảo mật Virtual Private Database (VPD) thực tế qua
CREATE CONTEXT, SECURITY_PACKAGE và hàm chính sách DBMS_RLS.ADD_POLICY (Chương 5).
- Kỹ thuật che giấu dữ liệu với
DBMS_REDACT và thiết lập tiến trình nền tự động với DBMS_SCHEDULER trên Oracle Database (Chương 5).
Câu hỏi thường gặp
1. Lược đồ cơ sở dữ liệu của hệ thống quản lý Điện máy Nguyễn Kim gồm bao nhiêu bảng và đạt mức chuẩn hóa nào?
Hệ thống được thiết kế gồm 26 bảng dữ liệu nghiệp vụ chính (và 1 bảng danh mục địa giới hành chính ThanhPho). Toàn bộ 26 bảng được chứng minh đạt chuẩn 3NF dựa trên phân tích tập phụ thuộc hàm; riêng các bảng thuộc tính mô tả bổ sung như THONGSOKITHUAT, TINHNANG và DACDIEMNOIBAT đạt chuẩn BCNF.
2. Hệ thống phân quyền cơ sở dữ liệu trên máy chủ Oracle được tổ chức như thế nào?
Hệ thống thiết lập 9 nhóm vai trò (Roles): QUANTRIVIEN, QUANLYCUAHANG, KETOAN, THUNGAN, NHANVIEN, TRUONGKHO, NHANSU, CSKH và QUANLYSANPHAM. Khi thêm mới nhân viên qua thủ tục Proc_Insert_Nhan_Vien, hệ thống sẽ tự động dùng Dynamic SQL tạo một tài khoản người dùng tương ứng trên Oracle Server (CREATE USER ... IDENTIFIED BY '123456') và tự động gán Role phù hợp theo mã chức vụ (CV001 đến CV009).
3. Cơ chế bảo mật Virtual Private Database (VPD) được áp dụng trên những bảng nào và có tác dụng gì?
Chính sách VPD được áp dụng trên 6 bảng dữ liệu liên quan đến quản lý kho: KHO, CHITIETKHO, PHIEUNHAP, CHITIETPHIEUNHAP, PHIEUXUAT và CHITIETPHIEUXUAT. Cơ chế này hoạt động bằng cách chèn tự động điều kiện lọc TRUONGKHO = SYS_CONTEXT('LUU_SESSION', 'USER_ID') vào mọi câu truy vấn của người dùng, đảm bảo mỗi Trưởng kho chỉ có quyền xem và thao tác dữ liệu thuộc kho hàng do chính mình phụ trách.
4. Thủ tục Proc_Xuat_Phieu_Xuat_Va_Bao_Hanh giải quyết bài toán nghiệp vụ xuất kho đa chi nhánh ra sao?
Thủ tục sử dụng con trỏ duyệt qua từng mặt hàng trong đơn hàng và lặp qua các kho trực thuộc cửa hàng đó. Nếu kho có hàng, hệ thống tự động trừ tồn kho và tạo bản ghi phiếu xuất tương ứng với kho đó (một đơn hàng có thể tách thành nhiều phiếu xuất từ nhiều kho khác nhau nếu một kho không đủ hàng). Sau khi toàn bộ mặt hàng được xuất kho thành công, thủ tục tự động tạo các phiếu bảo hành cho từng sản phẩm với ngày hết hạn được cộng thêm 12 tháng (ADD_MONTHS(CURRENT_DATE, 12)).
5. Cơ chế che giấu dữ liệu (Data Masking) và tự động hóa tác vụ được cài đặt cho những đối tượng nào?
Data Masking được cấu hình bằng gói DBMS_REDACT.ADD_POLICY áp dụng trên cột MATHE của bảng THETICHDIEM, tự động che các chữ số ở giữa (chỉ hiển thị 2 số đầu và 2 số cuối dưới dạng 10******02). Tác vụ nền được thiết lập qua gói DBMS_SCHEDULER.CREATE_JOB mang tên Update_PhieuBaoHanh, thực thi định kỳ 2 ngày một lần để chuyển trạng thái các phiếu bảo hành đã quá hạn so với ngày hiện tại (CURRENT_DATE).
Kết luận
Báo cáo kết thúc môn học "Tìm hiểu Oracle và lập kế hoạch quản trị cho Điện máy Nguyễn Kim" là một công trình thiết kế và triển khai hệ thống thông tin quản lý bán lẻ đa chi nhánh hoàn chỉnh trên nền tảng Oracle Database. Nghiên cứu đã giải quyết trọn vẹn bài toán từ mô hình hóa nghiệp vụ, chuẩn hóa 26 bảng dữ liệu đạt chuẩn 3NF/BCNF đến xây dựng 20 quy trình giao tác phức hợp dưới mức độ cô lập Serializable. Điểm nổi bật nhất của đề tài là việc ứng dụng thành công các công nghệ bảo mật nâng cao của Oracle Enterprise Edition như Virtual Private Database, Data Masking và lập lịch tự động DBMS_SCHEDULER vào bài toán doanh nghiệp thực tế. Đây là tài liệu học thuật có tính ứng dụng cao, cung cấp hướng dẫn chi tiết về kỹ thuật lập trình cơ sở dữ liệu và quản trị máy chủ nâng cao.