Trường đại học
Trường Đại Học Công Nghệ Thông TinChuyên ngành
Công Nghệ Thông TinNgười đăng
Ẩn danhThể loại
Đồ Án Tốt Nghiệp2023
Phí lưu trữ
30.000 VNĐMục lục chi tiết
Tóm tắt
Việc xây dựng một hệ thống cơ sở dữ liệu (CSDL) hiệu quả là nền tảng cho sự phát triển bền vững của bất kỳ doanh nghiệp nào, đặc biệt là các tiệm bánh với lượng giao dịch hàng ngày lớn. Một hệ thống quản lý chuyên nghiệp không chỉ giải quyết các bài toán về lưu trữ mà còn tối ưu hóa toàn bộ quy trình vận hành. Mục tiêu chính của việc xây dựng hệ thống CSDL quản lý đơn hàng tiệm bánh bằng Oracle là tạo ra một nền tảng tập trung, an toàn và có khả năng mở rộng. Hệ thống này giúp lưu trữ và quản lý hiệu quả thông tin về sản phẩm, khách hàng, đơn hàng và nhà cung cấp. Thay vì các phương pháp thủ công, CSDL Oracle cung cấp một cơ sở dữ liệu quan hệ mạnh mẽ, đảm bảo tính toàn vẹn và nhất quán của dữ liệu. Báo cáo nghiên cứu của nhóm sinh viên HUFLIT nhấn mạnh rằng, việc triển khai CSDL Oracle giúp "nâng cao hiệu quả quản lý", "tăng cường khả năng truy xuất dữ liệu" và đưa ra các quyết định kinh doanh chính xác hơn. Hệ thống này hướng đến các đối tượng sử dụng chính là chủ doanh nghiệp và nhà quản lý bán hàng, những người cần có cái nhìn tổng quan và chi tiết về hoạt động kinh doanh để đưa ra chiến lược phù hợp. Phạm vi của dự án tập trung vào các nghiệp vụ cốt lõi như quản lý sản phẩm, quản lý bán hàng và quản lý khách hàng, đồng thời tạo ra các báo cáo thống kê doanh thu tự động, giảm thiểu sai sót do con người và tiết kiệm thời gian vận hành.
Việc ứng dụng hệ quản trị CSDL Oracle vào quản lý tiệm bánh mang lại ý nghĩa thực tiễn to lớn. Mục tiêu cốt lõi là chuyển đổi số quy trình quản lý, từ bỏ các phương pháp thủ công như sử dụng Excel vốn tồn tại nhiều rủi ro về mất mát và thiếu nhất quán dữ liệu. CSDL Oracle cho phép lưu trữ một khối lượng dữ liệu khổng lồ, hỗ trợ cấu trúc phân cấp, giúp việc quản lý và tìm kiếm thông tin trở nên dễ dàng. Hơn nữa, hệ thống này đảm bảo tính an toàn và bảo mật cao thông qua cơ chế phân quyền người dùng trong Oracle, giúp kiểm soát chặt chẽ quyền truy cập và thao tác trên dữ liệu. Ý nghĩa của đề tài không chỉ dừng lại ở việc cải thiện hiệu suất nội bộ mà còn nâng cao sức cạnh tranh của doanh nghiệp trên thị trường.
Hệ thống CSDL được thiết kế để phục vụ hai đối tượng chính: nhà quản lý và nhân viên kinh doanh. Nhà quản lý sử dụng hệ thống để theo dõi hiệu quả hoạt động, xem báo cáo doanh thu, quản lý sản phẩm và nhân sự. Nhân viên kinh doanh sử dụng hệ thống để thực hiện các nghiệp vụ hàng ngày như tiếp nhận, xử lý đơn hàng và chăm sóc khách hàng. Phạm vi của hệ thống sẽ giải quyết các vấn đề chính bao gồm: quản lý sản phẩm (thêm, xóa, sửa), quản lý bán hàng (lập đơn hàng, in hóa đơn), và lưu trữ thông tin khách hàng. Ngoài ra, hệ thống còn tập trung giải quyết các vấn đề liên quan đến hiệu năng xử lý, an toàn dữ liệu và xử lý truy xuất đồng thời, đảm bảo hệ thống hoạt động ổn định ngay cả khi có nhiều người dùng cùng lúc.
Trước khi triển khai một hệ thống mới, việc phân tích và đánh giá những hạn chế của hệ thống cũ là cực kỳ quan trọng. Tài liệu nghiên cứu cho thấy tiệm bánh QKN ban đầu sử dụng Excel để lưu trữ dữ liệu. Phương pháp này chỉ phù hợp khi quy mô còn nhỏ. Khi doanh nghiệp mở rộng với nhiều chi nhánh, lượng dữ liệu tăng lên gấp ba, dẫn đến việc Excel không còn đáp ứng được. Các thách thức chính bao gồm giới hạn về dung lượng lưu trữ, khó khăn trong việc quản lý dữ liệu theo cấu trúc phân cấp, và sự phức tạp khi truy xuất và tích hợp dữ liệu từ nhiều nguồn. Việc truy xuất dữ liệu để phân tích kinh doanh đòi hỏi nhiều thao tác thủ công, tốn thời gian và dễ gây sai sót. Hơn nữa, hệ thống cũ không đảm bảo được tính an toàn, bảo mật và toàn vẹn dữ liệu, đặc biệt là khi có nhiều nhân viên cùng truy cập. Những vấn đề này đòi hỏi một giải pháp toàn diện, và đó là lý do hệ quản trị CSDL Oracle được lựa chọn. Hệ thống mới cần giải quyết triệt để các vấn đề về khả năng lưu trữ dữ liệu lớn, truy xuất dễ dàng, tích hợp đa nguồn và đặc biệt là cơ chế xử lý truy cập đồng thời để tránh xung đột dữ liệu.
Excel, dù phổ biến, nhưng có những hạn chế cố hữu khi được dùng làm cơ sở dữ liệu. Theo báo cáo, dung lượng của một bảng tính Excel bị giới hạn, có thể quá tải và hoạt động chậm chạp khi dữ liệu khách hàng và đơn hàng tăng lên. Excel không hỗ trợ cấu trúc phân cấp, khiến việc tổ chức và tìm kiếm thông tin nhân viên theo phòng ban hay sản phẩm theo danh mục trở nên khó khăn. Việc thiếu các ràng buộc toàn vẹn mạnh mẽ dẫn đến dữ liệu không nhất quán. Ví dụ, một sản phẩm có thể bị nhập sai tên hoặc giá ở nhiều trang tính khác nhau. Đây là những rủi ro lớn ảnh hưởng trực tiếp đến hiệu quả kinh doanh.
Hệ thống cũ không có cơ chế xử lý truy xuất đồng thời hiệu quả. Khi nhiều nhân viên cùng lúc cập nhật thông tin đơn hàng hoặc số lượng tồn kho, hiện tượng xung đột dữ liệu (data conflict) và "lost update" rất dễ xảy ra. Điều này làm giảm hiệu năng hệ thống và quan trọng hơn là gây ra sai lệch dữ liệu, ảnh hưởng đến tính toàn vẹn. Vấn đề an toàn dữ liệu cũng là một mối lo ngại lớn, vì Excel không cung cấp các cơ chế phân quyền người dùng trong Oracle một cách chi tiết, dẫn đến nguy cơ truy cập trái phép và rò rỉ thông tin nhạy cảm của khách hàng và doanh nghiệp.
Để xây dựng một hệ thống CSDL vững chắc, giai đoạn phân tích và thiết kế đóng vai trò quyết định. Quá trình này bắt đầu bằng việc phân tích các chức năng nghiệp vụ của tiệm bánh, từ quản lý đơn hàng, thông tin khách hàng, nhà cung cấp cho đến việc tạo báo cáo. Dựa trên phân tích này, một mô hình phân cấp chức năng (BFD) được xây dựng để thể hiện tổng quan các hoạt động của hệ thống. Bước tiếp theo và quan trọng nhất là thiết kế mô hình thực thể kết hợp (ERD). Đây là bản thiết kế chi tiết, mô tả các thực thể (như Sản phẩm, Khách hàng, Đơn hàng), các thuộc tính của chúng và mối quan hệ giữa chúng. Ví dụ, một khách hàng có thể có nhiều đơn hàng, và một đơn hàng có thể chứa nhiều sản phẩm. Từ sơ đồ quan hệ thực thể này, một lược đồ quan hệ logic được tạo ra, định nghĩa cấu trúc của các bảng, các thuộc tính, khóa chính, khóa ngoại. Việc thiết lập các ràng buộc toàn vẹn dữ liệu như tên bánh không được trùng nhau, giá trị hóa đơn không được âm, là bước cuối cùng trong giai đoạn thiết kế để đảm bảo dữ liệu luôn chính xác và nhất quán khi đưa vào vận hành.
Mô hình ERD là công cụ trực quan hóa cấu trúc của cơ sở dữ liệu. Trong dự án này, mô hình ERD tiệm bánh bao gồm các thực thể chính như NHACUNGCAP, KHACHHANG, NHANVIEN, BANH, DONHANG, và HOADON. Các mối quan hệ được xác định rõ: một-nhiều (một khách hàng - nhiều đơn hàng), nhiều-nhiều (một đơn hàng - nhiều bánh, được giải quyết qua bảng trung gian CTDONHANG). Việc xác định đúng các thực thể và mối quan hệ là nền tảng để có một cơ sở dữ liệu quan hệ được chuẩn hóa, tránh dư thừa và đảm bảo tính nhất quán.
Sau khi hoàn thiện ERD, bước tiếp theo là chuyển đổi nó thành một lược đồ quan hệ cụ thể. Mỗi thực thể trong ERD sẽ trở thành một bảng (table) trong CSDL. Các thuộc tính của thực thể trở thành các cột (column) của bảng. Các mối quan hệ được thể hiện thông qua các khóa chính, khóa ngoại. Ví dụ, bảng DONHANG sẽ có khóa ngoại MaKH
tham chiếu đến khóa chính của bảng KHACHHANG. Lược đồ này là bản thiết kế cuối cùng trước khi tiến hành cài đặt vật lý trên hệ quản trị CSDL Oracle.
Giai đoạn cài đặt là quá trình hiện thực hóa bản thiết kế CSDL thành một hệ thống hoạt động. Quá trình này được thực hiện trên môi trường Oracle, sử dụng các công cụ như SQL Developer. Đầu tiên, các script được tạo ra để định nghĩa và tạo các bảng dữ liệu (BANH, KHACHHANG, DONHANG,...) dựa trên lược đồ quan hệ đã thiết kế. Các ràng buộc toàn vẹn, khóa chính, khóa ngoại cũng được định nghĩa trong giai đoạn này để đảm bảo tính đúng đắn của dữ liệu. Sau khi cấu trúc CSDL được tạo, bước tiếp theo là phát triển các logic nghiệp vụ bằng PL/SQL cho quản lý bán hàng. Các Stored Procedure được viết để thực hiện các tác vụ phức tạp như tính tổng tiền một đơn hàng, cập nhật thành tiền cho các sản phẩm, hay thống kê số đơn hàng trong ngày. Bên cạnh đó, các Trigger trong Oracle được cài đặt để tự động hóa các quy trình quan trọng. Ví dụ, một trigger có thể được thiết lập để tự động giảm số lượng tồn kho khi một đơn hàng được xác nhận, hoặc một trigger khác để ngăn chặn việc cập nhật dữ liệu ngoài giờ hành chính, tăng cường an ninh và kiểm soát hệ thống.
Việc cài đặt bắt đầu bằng lệnh CREATE TABLE
trong SQL để tạo các bảng như BANH
, DONHANG
, CTDONHANG
. Mỗi bảng được định nghĩa với các cột có kiểu dữ liệu phù hợp (CHAR, VARCHAR2, NUMBER, DATE) và các ràng buộc như NOT NULL
. Khóa chính được định nghĩa bằng PRIMARY KEY
và các mối quan hệ được thiết lập bằng FOREIGN KEY
. Dữ liệu mẫu (demo) sau đó được chèn vào các bảng bằng lệnh INSERT INTO
để kiểm tra cấu trúc và chuẩn bị cho việc phát triển các logic nghiệp vụ.
Các stored procedure đóng vai trò quan trọng trong việc xử lý nghiệp vụ. Báo cáo đã minh họa việc xây dựng các procedure CRUD (Create, Read, Update, Delete) cho bảng BANH, cũng như các procedure phức tạp hơn như update_tongtien_ddh
để tự động tính tổng giá trị đơn hàng, hay TongDonHang_TrongNgay
sử dụng CURSOR để đếm số lượng đơn hàng. Việc sử dụng procedure giúp gom nhóm các lệnh SQL, tăng tính tái sử dụng và cải thiện hiệu năng cho phần mềm quản lý tiệm bánh.
Trigger trong Oracle là các khối lệnh PL/SQL được thực thi tự động khi có một sự kiện DML (INSERT, UPDATE, DELETE) xảy ra trên một bảng. Trong dự án, các trigger được sử dụng để: ngăn chặn cập nhật ngoài giờ hành chính, đảm bảo mã bánh và tên bánh không bị trùng (raise_application_error
), và tự động ghi lại lịch sử thay đổi dữ liệu vào một bảng LOG. Các trigger này giúp tăng cường tính toàn vẹn và bảo mật cho CSDL một cách tự động.
Một hệ thống CSDL chuyên nghiệp không chỉ dừng lại ở việc lưu trữ và truy xuất dữ liệu mà còn phải giải quyết các bài toán phức tạp trong vận hành thực tế. Một trong những vấn đề lớn nhất là xử lý truy cập đồng thời, khi nhiều người dùng cùng thao tác trên cùng một dữ liệu. Tài liệu nghiên cứu đã minh họa tình huống "Lost Update", một rủi ro kinh điển về tính nhất quán dữ liệu. Để giải quyết, Oracle cung cấp các cơ chế khóa (locking) và mức độ cô lập giao dịch (isolation levels). Bằng cách sử dụng LOCK TABLE
hoặc các kỹ thuật khóa mức dòng, hệ thống đảm bảo rằng các cập nhật không ghi đè lên nhau, duy trì tính toàn vẹn của dữ liệu về số lượng tồn kho. Một khía cạnh nâng cao khác là bảo mật thông qua phân quyền. Việc thiết kế và cài đặt mô hình phân quyền của hệ thống là cực kỳ cần thiết. Bằng cách tạo ra các vai trò (roles) và người dùng (users) khác nhau như KH_PQ
(khách hàng), NV_QLDH
(nhân viên quản lý đơn hàng), và cấp các quyền hạn (SELECT, INSERT, UPDATE, DELETE) tương ứng trên từng bảng, hệ thống đảm bảo mỗi người dùng chỉ có thể truy cập và thao tác trên những dữ liệu được phép.
Tình huống "Lost Update" được minh họa khi hai nhân viên cùng lúc bán một sản phẩm và cập nhật số lượng tồn kho. Nếu không được xử lý, cập nhật của người đầu tiên sẽ bị ghi đè bởi người thứ hai, dẫn đến sai lệch dữ liệu. Giải pháp được đề xuất trong báo cáo là sử dụng transaction với các cơ chế khóa. Khi một nhân viên bắt đầu giao dịch cập nhật số lượng, một khóa độc quyền (EXCLUSIVE MODE
) sẽ được áp dụng lên bảng hoặc dòng dữ liệu đó. Giao dịch của nhân viên thứ hai sẽ phải chờ cho đến khi giao dịch đầu tiên hoàn tất (COMMIT), đảm bảo các cập nhật diễn ra tuần tự và chính xác.
Mô hình phân quyền người dùng trong Oracle được cài đặt bằng các lệnh CREATE USER
và GRANT
. Báo cáo đã thiết kế các user với vai trò cụ thể: khách hàng chỉ có quyền SELECT
trên đơn hàng của mình; nhân viên quản lý đơn hàng có toàn quyền trên các bảng DONHANG
, CTDONHANG
, HOADON
; nhân viên quản lý nhà cung cấp chỉ có quyền trên bảng NHACUNGCAP
. Cách tiếp cận này tuân thủ nguyên tắc đặc quyền tối thiểu (Principle of Least Privilege), giúp giảm thiểu rủi ro an ninh và sai sót do người dùng gây ra.
Bạn đang xem trước tài liệu:
Báo cáo môn các hệ quản trị cơ sở dữ liệu đề tài xây dựng hệ thống csdl quản lý đơn hàng tiệm bánh bằng oracle