Bối cảnh và vấn đề nghiên cứu
Lý do chọn đề tài và bối cảnh thực tiễn
Trong hoạt động thương mại và phân phối nguyên vật liệu dệt may, việc quản lý chuỗi cung ứng, kho bãi và quan hệ khách hàng đòi hỏi sự chính xác cao về mặt dữ liệu. Đề tài "Fabric Agency Database" (Hệ thống cơ sở dữ liệu quản lý đại lý phân phối vải) được xây dựng dựa trên bối cảnh vận hành thực tế của Công ty Y – một doanh nghiệp chuyên cung cấp vải sỉ theo đơn vị cuộn (bolt) cho các đối tác kinh doanh.
Mỗi cuộn vải được phân loại theo các danh mục vật liệu cụ thể gồm: lụa (silk), khaki, crewel, jacquard, lụa giả (imitation silk) và damask. Trong hệ thống phân phối, các quy tắc nghiệp vụ phức tạp phát sinh ở nhiều khâu:
- Quản lý danh mục và kho hàng: Mỗi cuộn vải sở hữu mã duy nhất trong từng danh mục và có chiều dài xác định. Mỗi danh mục vải có mã định danh, tên gọi, màu sắc, giá bán hiện hành (kèm ngày áp dụng) và số lượng tồn kho (tính theo tổng số cuộn hiện có).
- Quản lý nhà cung ứng và nhập kho: Doanh nghiệp tiếp nhận vải từ nhiều nhà cung cấp; mỗi nhà cung cấp có thể cung cấp nhiều loại vải nhưng mỗi loại vải chỉ được nhập từ một nhà cung cấp duy nhất. Hồ sơ nhà cung cấp lưu trữ mã số, tên, địa chỉ, số tài khoản ngân hàng, mã số thuế và số điện thoại. Khi nhập kho, hệ thống ghi nhận số lượng, ngày nhập và đơn giá mua vào.
- Quản lý khách hàng và công nợ: Mỗi khách hàng được định danh bằng mã số, họ tên, địa chỉ, số điện thoại, số tiền nợ chưa thanh toán và lịch sử các đợt thanh toán (ngày nộp và số tiền chi trả theo từng đợt). Hệ thống thiết lập quy tắc giám sát công nợ: nếu khách hàng có dư nợ vượt quá $2.000, hệ thống chuyển sang trạng thái "cảnh báo"; nếu tình trạng này kéo dài trên 6 tháng mà không được giải tỏa, khoản nợ sẽ bị đánh dấu thành "nợ xấu".
- Quản lý đơn hàng và vòng đời giao dịch: Đơn hàng bao gồm một hoặc nhiều cuộn vải, được nhân viên xử lý tại thời điểm cụ thể, có mã định danh và tổng giá trị. Trạng thái đơn hàng được theo dõi liên tục theo các mốc: "mới", "đã đặt hàng", "đã thanh toán một phần", "đã thanh toán đầy đủ" hoặc "đã hủy" (bắt buộc ghi rõ lý do hủy).
- Phân công và chuyên biệt hóa nhân sự: Nhân sự được chia thành 4 nhóm nghiệp vụ riêng biệt: Quản lý (Manager), Nhân viên đối tác (Partner staff – phụ trách một hoặc nhiều nhà cung cấp; mỗi nhà cung cấp do một nhân viên đối tác quản lý), Nhân viên văn phòng (Office staff – phụ trách chăm sóc khách hàng; mỗi khách hàng do một nhân viên văn phòng phụ trách) và Nhân viên vận hành (Operational staff – trực tiếp xử lý các đơn đặt hàng).
Mục tiêu và nhiệm vụ nghiên cứu
Đồ án xác định các mục tiêu và nhiệm vụ kỹ thuật cụ thể gồm:
- Thiết kế mô hình thực thể mối kết hợp mở rộng (EERD) phản ánh toàn diện các quy tắc nghiệp vụ của doanh nghiệp, xác định rõ ràng thực thể, thuộc tính khóa, mối quan hệ, tỷ lệ bản số (cardinality) và các ràng buộc toàn vẹn tham gia.
- Ánh xạ mô hình EERD sang lược đồ cơ sở dữ liệu quan hệ, bổ sung các ràng buộc toàn vẹn không thể biểu diễn trực tiếp trên biểu đồ EERD.
- Xây dựng ứng dụng phần mềm đáp ứng 4 nhóm chức năng cốt lõi:
- Tìm kiếm thông tin mua vật liệu (tên nhà cung cấp, số điện thoại và thông tin nguồn cung).
- Thêm mới thông tin nhà cung cấp vào hệ thống.
- Liệt kê chi tiết toàn bộ các mặt hàng do một nhà cung cấp phân phối.
- Kết xuất báo cáo chi tiết thông tin đơn hàng theo từng loại hàng của khách hàng.
- Triển khai và chứng minh trường hợp sử dụng chỉ mục (Index) nhằm tối ưu hóa hiệu suất truy vấn.
- Thiết lập giải pháp an toàn và bảo mật cơ sở dữ liệu cho hệ thống.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Cơ sở dữ liệu quan hệ và hệ thống phần mềm quản lý hoạt động phân phối vải sỉ.
- Phạm vi nghiên cứu: Quy trình nghiệp vụ nội bộ của Công ty Y; công nghệ cơ sở dữ liệu MySQL/MariaDB kết hợp ngôn ngữ lập trình Java (AWT/Swing, JDBC); dữ liệu kiểm thử giả lập tại môi trường thực nghiệm.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và mô hình quan niệm
Đồ án ứng dụng hệ thống lý thuyết chuẩn tắc về cơ sở dữ liệu quan hệ và mô hình hóa dữ liệu:
- Mô hình thực thể kết hợp mở rộng (EERD): Kế thừa nền tảng mô hình ER của Peter Chen (1976), mở rộng với các khái niệm thực thể mạnh, thực thể yếu, thuộc tính đơn trị, thuộc tính phức hợp, thuộc tính đa trị, thuộc tính dẫn xuất, thuộc tính phức tạp; các cơ chế chuyên biệt hóa (Specialization), tổng quát hóa (Generalization), phân lớp cha/lớp con (Superclass/Subclass) và kiểu hợp (Union Types/Categories).
- Lý thuyết mô hình quan hệ: Cấu trúc bảng (Table), cột (Column), dòng (Row), khóa chính (Primary Key), khóa ngoại (Foreign Key) và các ràng buộc toàn vẹn (Unique Constraint, Foreign Key Constraint, Check Constraint, Primary Key Constraint).
- Lý thuyết chuẩn hóa dữ liệu: Đánh giá và chuẩn hóa lược đồ qua các dạng chuẩn 1NF (miền giá trị nguyên tử), 2NF (phụ thuộc hàm đầy đủ vào khóa chính), 3NF (không phụ thuộc bắc cầu vào khóa chính) và BCNF (Boyce-Codd Normal Form).
- Quy trình 9 bước chuyển đổi từ EERD sang lược đồ quan hệ:
- Bước 1: Ánh xạ các tập thực thể mạnh thành quan hệ độc lập.
- Bước 2: Ánh xạ các tập thực thể yếu với khóa chính kết hợp từ thực thể chủ sở hữu.
- Bước 3 đến Bước 7: Chuyển đổi các mối kết hợp nhị phân theo các tỷ lệ bản số $(0,1)$, $(1,1)$, $(0,n)$, $(1,n)$ và $(n,m)$ bằng cách bổ sung khóa ngoại hoặc tạo bảng liên kết trung gian.
- Bước 8: Chuyển đổi cấu trúc chuyên biệt hóa/tổng quát hóa theo 4 phương án thiết kế (8A: Đa quan hệ cho lớp cha và các lớp con; 8B: Đa quan hệ chỉ cho các lớp con; 8C: Đơn quan hệ với một thuộc tính phân loại; 8D: Đơn quan hệ với nhiều thuộc tính phân loại).
- Bước 9: Ánh xạ các kiểu hợp (Union Types/Categories) bằng việc thiết lập khóa thay thế (Surrogate Key).
Khung công nghệ và nền tảng triển khai
Hệ thống được phát triển dựa trên ngăn xếp công nghệ (Tech Stack) mã nguồn mở:
- Hệ quản trị cơ sở dữ liệu (DBMS): Phân tích kiến trúc tổng thể của DBMS gồm 7 thành phần cốt lõi: Storage Engine, Database Access Language, Optimization Engine, Query Processor, Lock Manager, Log Manager và Data Utility. Đồ án lựa chọn MariaDB/MySQL với động cơ lưu trữ InnoDB hỗ trợ giao dịch ACID, khóa ngoại và cơ chế Buffer Pool tối ưu bộ nhớ đệm RAM.
- Công nghệ phía Back-end: Nền tảng Java SE với thư viện
java.sql (JDBC API), khai thác các giao diện và lớp điều khiển cốt lõi: DriverManager, Driver, Connection, Statement, PreparedStatement (tối ưu hóa thực thi câu lệnh lặp), CallableStatement (gọi thủ tục lưu trữ) và ResultSet (xử lý tập kết quả). Môi trường phát triển tích hợp XAMPP bao gồm Apache, MariaDB, PHP, Perl, phpMyAdmin, OpenSSL, Tomcat và FileZilla.
- Công nghệ phía Front-end: Xây dựng ứng dụng Desktop bằng Java AWT (Abstract Window Toolkit) kết hợp Java Swing thuộc bộ thư viện Java Foundation Classes (JFC), sử dụng các thành phần giao diện không phụ thuộc nền tảng như
JFrame, JPanel, JButton, JTextField, JTextArea, JRadioButton, JCheckBox, JMenu và cơ chế phân cấp của lớp Component.
Phương pháp nghiên cứu thực tế
Tác giả áp dụng phương pháp phân tích thiết kế hệ thống có cấu trúc: khảo sát mô tả bài toán kinh doanh, trừu tượng hóa mô hình dữ liệu quan niệm, chuyển đổi mô hình vật lý, cài đặt cơ sở dữ liệu thông qua ngôn ngữ SQL, lập trình mô-đun kết nối và giao diện đồ họa, cuối cùng là kiểm thử hộp đen (Black-box testing) các chức năng nghiệp vụ và thực nghiệm đánh giá hiệu năng truy vấn với chỉ mục.
Thiết kế và triển khai
Mô hình thực thể mối kết hợp mở rộng (EERD)
Lược đồ dữ liệu của hệ thống Fabric Agency được mô hình hóa với các thực thể, thuộc tính và mối kết hợp chi tiết:
| Thực thể / Lớp |
Thuộc tính khóa |
Các thuộc tính khác |
Bản chất thuộc tính |
| Bolt (Cuộn vải) |
code |
length |
Thuộc tính đơn |
| Category (Loại vải) |
code |
name, color, inventory_receipt (purchase_price, date, quantity), current_price (price, date), quantity |
Phức hợp & dẫn xuất (quantity tính từ kho) |
| Supplier (Nhà cung cấp) |
code |
name, address, tax_code, bank_account, phone_number |
Đa trị (phone_number) |
| Order (Đơn hàng) |
code |
total_price, partial_payment (date, amount_of_money) |
Thuộc tính phức hợp |
| Employee (Nhân viên) |
code |
gender, phone, address, name (first_name, last_name) |
Thuộc tính phức hợp (name) |
| Manager, Partner Staff, Operational Staff, Office Staff |
Kế thừa code |
Thuộc tính theo vai trò chuyên biệt |
Chuyên biệt hóa từ Employee |
| Customer (Khách hàng) |
code |
name (first_name, last_name), address, phone, unpaid_debt, partial_payment |
Quản lý hạn mức nợ và cảnh báo |
Hệ thống thiết lập các mối liên kết nghiệp vụ:
provides (Cung cấp): Mối quan hệ giữa Category và Supplier (một nhà cung cấp cung cấp nhiều loại hàng; mỗi loại hàng chỉ do một nhà cung cấp cung cấp).
belongs_to (Thuộc về): Mối quan hệ giữa Bolt và Category (mỗi cuộn vải thuộc về một danh mục xác định).
take_care_of: Quan hệ $1-N$ giữa Partner staff và Supplier.
processes: Ghi nhận quan hệ giữa Partner staff và Supplier có thuộc tính thời gian date_time (date, time).
charge_of (Phụ trách khách hàng): Quan hệ $1-N$ giữa Office staff và Customer.
charge_of (Phụ trách đơn hàng): Quan hệ $1-N$ giữa Operational staff và Order.
makes (Đặt hàng): Quan hệ giữa Customer và Order, mang thuộc tính trạng thái giao dịch status và lý do hủy cancel_reason.
Cài đặt cơ sở dữ liệu quan hệ
Lược đồ quan hệ được chuyển đổi từ mô hình EERD và cài đặt thông qua ngôn ngữ DDL trên hệ quản trị MariaDB/MySQL. Ví dụ về câu lệnh khởi tạo bảng nhân viên:
CREATE TABLE Employees (
Employee_id INT PRIMARY KEY,
Fname VARCHAR(255),
Lname VARCHAR(255),
Gender VARCHAR(10),
Address VARCHAR(255),
PhoneNumber VARCHAR(15)
);
Hệ thống thực hiện định nghĩa các bảng quan hệ tương ứng cho Suppliers, Categories, Bolts, Orders, Customers, các bảng vai trò nhân viên và các bảng quan hệ trung gian đảm bảo toàn vẹn khóa chính và khóa ngoại.
Tối ưu hóa hiệu suất và bảo mật
- Tối ưu hóa chỉ mục (Index): Triển khai cấu trúc chỉ mục trên các cột thường xuyên xuất hiện trong mệnh đề tìm kiếm và liên kết bảng (như mã nhà cung cấp, mã loại vải, mã khách hàng), giúp giảm thiểu số lượng khối dữ liệu cần quét (Full Table Scan) và tăng tốc độ xử lý truy vấn.
- Bảo mật cơ sở dữ liệu: Thiết lập phân quyền tài khoản truy cập theo vai trò nhân viên, ngăn chặn các truy vấn trái phép vào các vùng dữ liệu nhạy cảm như lịch sử tài chính và công nợ khách hàng.
Nội dung chính theo từng chương
Chương 1: Giới thiệu về nội dung đề tài
Chương này trình bày tổng quan về mô hình phân phối vải cuộn của Công ty Y, phân tích các yêu cầu quản lý thông tin từ danh mục vải, kho hàng, nhà cung cấp, khách hàng, đơn đặt hàng cho đến cơ chế phân loại nhân viên. Tác giả đặt ra 5 nhiệm vụ trọng tâm của đồ án gồm: xây dựng biểu đồ EERD, chuyển đổi sang lược đồ quan hệ, lập trình ứng dụng tương tác dữ liệu (tìm kiếm nguồn cung, thêm nhà cung cấp, liệt kê sản phẩm theo nhà cung cấp, kết xuất báo cáo đơn hàng), thực nghiệm tối ưu hóa chỉ mục và giải quyết bài toán bảo mật cơ sở dữ liệu.
Chương 2: Kiến thức nền tảng
Chương 2 cung cấp hệ thống lý thuyết toàn diện phục vụ việc xây dựng đề tài:
- Trình bày chi tiết lý thuyết mô hình EERD của Peter Chen (1976), định nghĩa các loại thực thể, quan hệ, 5 loại thuộc tính và các cơ chế kế thừa chuyên biệt hóa.
- Hệ thống hóa lý thuyết mô hình quan hệ, các loại ràng buộc (khóa chính, khóa ngoại, unique, check) và các dạng chuẩn 1NF, 2NF, 3NF, BCNF.
- Trình bày chi tiết quy trình 9 bước ánh xạ chuẩn từ mô hình thực thể sang mô hình quan hệ vật lý.
- Giới thiệu tổng quan về DBMS, phân tích 7 thành phần của kiến trúc DBMS, điểm danh 10 hệ quản trị cơ sở dữ liệu phổ biến và đi sâu vào lịch sử, kiến trúc, ưu nhược điểm của MariaDB và MySQL.
- Khái quát về ngôn ngữ SQL, lịch sử chuẩn hóa ANSI và kỹ thuật kết nối cơ sở dữ liệu qua Java JDBC API.
- So sánh công nghệ giao diện Java AWT và Java Swing/JFC, phân tích cấu trúc phân cấp lớp
Component, Container, Frame, Panel cùng các ví dụ mẫu.
Chương 3: Phân tích và thiết kế hệ thống
Chương 3 là phần trọng tâm kỹ thuật của báo cáo:
- Xây dựng biểu đồ thực thể mối kết hợp mở rộng (EERD) của bài toán Fabric Agency với đầy đủ các thực thể
Bolt, Category, Supplier, Order, Employee, Customer cùng các chuyên biệt hóa nhân viên và mối kết hợp liên quan.
- Chuyển đổi mô hình EERD thành lược đồ cơ sở dữ liệu quan hệ chi tiết.
- Cung cấp danh sách các bảng, phân tích thuộc tính và viết các tập lệnh SQL (DDL) khởi tạo bảng và các ràng buộc dữ liệu.
- Thiết lập trường hợp thực nghiệm chứng minh hiệu quả tăng tốc độ truy vấn khi sử dụng chỉ mục (Index Performance).
Chương 4: Kiểm thử hệ thống
Chương 4 ghi nhận kết quả kiểm thử chức năng của ứng dụng Java:
- Kiểm thử đăng nhập: Đảm bảo xác thực người dùng đúng với vai trò và quyền hạn tương ứng trong hệ thống.
- Kiểm thử chức năng Material Search: Kiểm tra khả năng tra cứu nguồn cung cấp vật liệu, trả về chính xác tên nhà cung cấp, số điện thoại và thông tin nguồn cung.
- Kiểm thử chức năng thêm mới nhà cung cấp: Xác thực việc ghi nhận và lưu trữ thành công các trường dữ liệu của đối tác mới vào cơ sở dữ liệu.
- Kiểm thử chức năng tìm danh mục theo nhà cung cấp: Đánh giá độ chính xác của việc truy xuất danh sách toàn bộ các loại vải do một nhà cung cấp chỉ định phân phối.
- Tổng kết các kết quả đạt được, chỉ ra các điểm còn hạn chế và vạch ra hướng phát triển mở rộng cho hệ thống.
Kết quả và đóng góp
Kết quả đạt được
Dựa trên các yêu cầu đề ra, nhóm tác giả đã hoàn thành các nội dung kỹ thuật:
- Chuẩn hóa toàn bộ quy trình nghiệp vụ phân phối vải phức tạp của doanh nghiệp thành mô hình dữ liệu quan niệm EERD chuẩn xác.
- Chuyển đổi thành công mô hình EERD sang lược đồ cơ sở dữ liệu quan hệ hoàn chỉnh trên hệ quản trị MariaDB/MySQL thông qua quy trình 9 bước.
- Xây dựng thành công ứng dụng giao diện Desktop bằng Java Swing/AWT kết nối cơ sở dữ liệu qua JDBC, đáp ứng đầy đủ các chức năng: tìm kiếm vật liệu, thêm nhà cung cấp, hiển thị danh mục hàng hóa theo nhà cung cấp và kết xuất báo cáo đơn hàng.
- Thực nghiệm thành công việc áp dụng chỉ mục (Index) giúp tăng hiệu năng xử lý các truy vấn phức tạp trên cơ sở dữ liệu.
Đóng góp về mặt kỹ thuật
- Cung cấp tài liệu thiết kế chi tiết về mô hình dữ liệu chuyên ngành phân phối dệt may, xử lý tốt bài toán thuộc tính dẫn xuất (tính tồn kho từ các cuộn vải) và bài toán quản trị công nợ khách hàng nhiều cấp độ (cảnh báo nợ quá $2.000, phân loại nợ xấu sau 6 tháng).
- Minh họa rõ nét phương pháp tích hợp đa công nghệ mã nguồn mở (Java Swing, JDBC, XAMPP, MariaDB) trong việc giải quyết bài toán quản lý dữ liệu doanh nghiệp.
Hạn chế và hướng nghiên cứu tiếp
Những điểm hạn chế
- Hệ thống mới dừng lại ở phiên bản ứng dụng Desktop chạy trên môi trường cục bộ thông qua XAMPP, chưa được đóng gói và triển khai trên môi trường máy chủ phân tán hoặc nền tảng web/cloud.
- Các kịch bản kiểm thử chủ yếu tập trung vào kiểm thử chức năng giao diện và truy vấn cơ bản, chưa bao phủ đầy đủ các kiểm thử tải (Load Testing) với tập dữ liệu lớn hoặc kiểm thử tự động (Automated Testing).
Hướng phát triển của hệ thống
- Nâng cấp hệ thống từ kiến trúc Desktop (Java Swing) lên nền tảng ứng dụng Web hoặc mô hình Client-Server hiện đại sử dụng các framework chuyên sâu.
- Bổ sung các tính năng nâng cao như phân tích dự báo lượng tồn kho, tự động hóa quy trình gửi thông báo công nợ cho khách hàng và tích hợp cổng thanh toán trực tuyến.
- Mở rộng kiến trúc bảo mật với các giao thức mã hóa dữ liệu đầu cuối và cơ chế phân quyền nâng cao trên hệ quản trị cơ sở dữ liệu.
Giá trị tham khảo
Tài liệu báo cáo này mang lại giá trị tham khảo thực tiễn cao cho:
- Sinh viên ngành Công nghệ thông tin và Hệ thống thông tin: Làm tài liệu mẫu về quy trình phân tích thiết kế cơ sở dữ liệu nâng cao, từ bước khảo sát nghiệp vụ thực tế, vẽ biểu đồ EERD, chuyển đổi mô hình quan hệ theo 9 bước chuẩn, viết lệnh SQL DDL/DML đến lập trình ứng dụng Java Swing kết nối qua JDBC.
- Người phát triển ứng dụng quản lý kho vận - chuỗi cung ứng: Tham khảo cấu trúc thiết kế cơ sở dữ liệu cho các mô hình phân phối hàng hóa theo đơn vị cuộn/lô, quản lý nhà cung cấp độc quyền theo danh mục và cơ chế giám sát công nợ khách hàng theo thời gian.
Câu hỏi thường gặp
1. Hệ thống Fabric Agency xử lý quy tắc quản lý công nợ và cảnh báo nợ xấu của khách hàng như thế nào?
Trong hệ thống, mỗi khách hàng được theo dõi số tiền nợ chưa thanh toán và các đợt thanh toán từng phần. Nếu số nợ của khách hàng vượt quá ngưỡng $2.000, hệ thống sẽ tự động đưa khách hàng vào chế độ "cảnh báo" và gửi thông báo cho công ty. Nếu tình trạng nợ cảnh báo này kéo dài liên tục trên 6 tháng mà không được thanh toán, khoản dư nợ sẽ được hệ thống đánh dấu chuyển thành "nợ xấu".
2. Mô hình phân công nhân sự trong hệ thống được chuyên biệt hóa thành những vai trò nào và nhiệm vụ của từng vai trò là gì?
Thực thể Employee được chuyên biệt hóa thành 4 nhóm nhân viên riêng biệt:
- Quản lý (Manager): Điều hành chung các hoạt động.
- Nhân viên đối tác (Partner staff): Phụ trách chăm sóc một hoặc nhiều nhà cung cấp; mỗi nhà cung cấp chỉ do một nhân viên đối tác quản lý.
- Nhân viên văn phòng (Office staff): Phụ trách quản lý và chăm sóc một hoặc nhiều khách hàng; mỗi khách hàng chỉ do một nhân viên văn phòng quản lý.
- Nhân viên vận hành (Operational staff): Trực tiếp chịu trách nhiệm xử lý các đơn đặt hàng của khách hàng.
3. Thuộc tính số lượng tồn kho của loại vải (Category) được mô hình hóa và xác định như thế nào trong biểu đồ EERD?
Trong thực thể Category, số lượng tồn kho (quantity) được thiết kế dưới dạng thuộc tính dẫn xuất (derived attribute). Thuộc tính này không lưu trữ trực tiếp một giá trị cố định mà được tính toán động dựa trên tổng số lượng các cuộn vải (Bolt) hiện có trong kho thuộc về danh mục loại vải đó.
4. Tại sao đồ án sử dụng PreparedStatement thay vì Statement thông thường trong thư viện java.sql?
Trong kiến trúc JDBC của Java, PreparedStatement là đối tượng câu lệnh SQL đã được biên dịch trước và tối ưu hóa trong bộ nhớ đệm. Việc sử dụng PreparedStatement giúp hệ thống tăng tốc độ thực thi đáng kể khi thực hiện các câu lệnh SQL lặp lại nhiều lần với các tham số khác nhau, đồng thời hỗ trợ kiểm soát dữ liệu đầu vào an toàn hơn.
5. Có bao nhiêu danh mục vải chính được quản lý trong hệ thống của Công ty Y?
Hệ thống quản lý 6 danh mục vải chính bao gồm: lụa (silk), khaki, crewel, jacquard, lụa giả (imitation silk) và damask. Mỗi cuộn vải nhập về kho bắt buộc phải thuộc về một trong các danh mục cụ thể này.
Kết luận
Báo cáo kết thúc học phần "Cơ sở dữ liệu nâng cao" với đề tài Fabric Agency Database của nhóm sinh viên Trường Đại học Sài Gòn đã giải quyết thành công bài toán quản lý chuỗi phân phối vải sỉ phức tạp. Đồ án thể hiện sự hoàn chỉnh từ khâu phân tích lý thuyết, mô hình hóa EERD, chuẩn hóa quan hệ đến cài đặt vật lý trên MariaDB và xây dựng ứng dụng giao diện Java Swing tương tác qua JDBC. Kết quả thực nghiệm và kiểm thử chức năng đã chứng minh tính đúng đắn của mô hình dữ liệu cũng như hiệu quả tối ưu hóa truy vấn thông qua chỉ mục, tạo tiền đề vững chắc cho việc mở rộng hệ thống lên các nền tảng phân tán trong tương lai.