Bối cảnh và vấn đề nghiên cứu
Bán đấu giá là một hình thức kinh doanh và mua bán đã xuất hiện từ lâu đời, đóng vai trò quen thuộc tại các nền kinh tế phát triển trên thế giới. Dưới sự phát triển nhanh chóng của công nghệ thông tin và mạng Internet, hoạt động bán đấu giá đã chuyển dịch mạnh mẽ sang môi trường số, hình thành nên phương thức đấu giá qua mạng với quy mô và tốc độ phát triển ngày càng lớn.
Tại Việt Nam ở thời điểm năm 2013, dù hình thức đấu giá chưa được triển khai phổ biến trong đời sống thường nhật, người tiêu dùng đã bước đầu tiếp cận và hình dung được cấu trúc của một cuộc đấu giá truyền thống thông qua các phương tiện truyền thông. Theo xu hướng phát triển chung của thương mại điện tử, đấu giá trực tuyến được dự báo sẽ trở thành phương thức giao dịch phổ biến và tất yếu.
Về mô hình tổ chức, một website đấu giá trực tuyến đòi hỏi sự tham gia của hai thực thể cốt lõi: người bán đấu giá và người mua. Tác giả phân tích hai hình thức người bán tham gia trên hệ thống:
- Chủ website đồng thời là chủ sở hữu các mặt hàng đấu giá: Mô hình này giúp tiết kiệm chi phí thuê hạ tầng, gia tăng tính chủ động trong hoạt động kinh doanh nhưng chịu áp lực lớn về việc tự thu hút lưu lượng truy cập.
- Chủ hàng thuê mặt bằng kinh doanh trên website: Mô hình sàn giao dịch trung gian, nơi các chủ hàng chấp nhận trả phí dịch vụ để tiếp cận lượng khách hàng sẵn có tại một địa chỉ trực tuyến có uy tín và lưu lượng truy cập cao.
Trên cơ sở đó, đề tài đồ án "Website mua bán, đấu giá sản phẩm" được thực hiện tại Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh bởi sinh viên Trần Tấn Sang (MSSV: 09520628) và Trần Nam Trung (MSSV: 09520697), dưới sự hướng dẫn của ThS. Nguyễn Đình Loan Phương (hoàn thành ngày 27/06/2013).
Hệ thống nhiệm vụ và mục tiêu nghiên cứu của đề tài được xác định cụ thể như sau:
- Mục tiêu chức năng đối với Chủ Website: Xây dựng công cụ quản lý toàn diện danh mục sản phẩm, quản lý lịch sử và trạng thái các phiên giao dịch đấu giá, đồng thời thiết lập cơ chế quản lý và thống kê doanh thu hệ thống.
- Mục tiêu chức năng đối với Thành viên đăng sản phẩm (User bán hàng): Cung cấp tính năng quản lý trang cá nhân (tùy biến banner, hình đại diện), quản lý thông tin sản phẩm đăng bán và theo dõi diễn biến các phiên đấu giá diễn ra trên sản phẩm của mình.
- Mục tiêu chức năng đối với Thành viên tham gia đấu giá (User mua hàng): Cung cấp giao diện quản lý trang cá nhân, công cụ đặt giá đấu hợp lệ theo thời gian thực và theo dõi thông tin chi tiết của các sản phẩm đang tham gia trả giá.
- Mục tiêu phi chức năng: Đảm bảo tính an toàn, độ tin cậy, chất lượng vận hành cao với mức chi phí hợp lý; thúc đẩy hiệu quả hoạt động thương mại điện tử và cắt giảm tối đa thời gian chờ đợi không cần thiết trong quy trình đăng ký thành viên.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình nghiệp vụ, mô hình dữ liệu và giải pháp thiết kế hệ thống thông tin phục vụ hoạt động thương mại điện tử mua bán, đấu giá trực tuyến.
- Phạm vi không gian và học thuật: Đồ án chuyên ngành thuộc Khoa Hệ thống Thông tin, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh.
- Thời gian hoàn thành: Tháng 06 năm 2013.
Cơ sở lý thuyết và phương pháp
Đồ án áp dụng phương pháp luận phân tích và thiết kế hệ thống thông tin hướng đối tượng (OOAD), kết hợp với quy trình mô hình hóa dữ liệu quan hệ truyền thống. Các công cụ và mô hình lý thuyết được tác giả sử dụng bao gồm:
- Khung phân tích nghiệp vụ: Phân rã cấu trúc hệ thống thành 4 thành phần chức năng chính:
- Hàng hóa và sản phẩm: Cung cấp phân loại sản phẩm, thông tin rao vặt, tình trạng giao dịch (chờ giao dịch, đang giao dịch, đã giao dịch).
- Đăng bán sản phẩm: Dành riêng cho thành viên đã xác thực để đăng tải thông tin mô tả, quy định phương thức mua bán và thiết lập phiên đấu giá trong khung thời gian được Ban quản trị phê duyệt.
- Cá nhân sử dụng: Quản lý thông tin hồ sơ (profile), hình ảnh đại diện (logo), biểu ngữ (banner), quản lý số dư tín dụng (
Credit) và danh sách sản phẩm theo dõi.
- Quản trị hệ thống: Phân hệ kiểm soát toàn bộ người dùng, danh mục, cấu hình email, bản tin (
Newsletter) và báo cáo tổng hợp.
- Mô hình hóa ca sử dụng (Use Case Analysis): Xác định ranh giới hệ thống, phân loại tác nhân (
Actor) và thiết lập các sơ đồ Use Case nghiệp vụ, Use Case hệ thống cho người dùng và người quản trị.
- Mô hình hóa hành vi và tiến trình (Dynamic Modeling): Sử dụng hệ thống sơ đồ UML:
- Sơ đồ hoạt động (Activity Diagram): Mô tả luồng xử lý chi tiết của các chức năng Quản lý thành viên, Tìm kiếm, Quản lý sản phẩm, Đăng nhập, Thống kê/Báo cáo và Đấu giá sản phẩm.
- Sơ đồ trình tự (Sequence Diagram): Mô tả sự tương tác giữa các đối tượng trong 8 quy trình nghiệp vụ cốt lõi.
- Sơ đồ trạng thái (State Diagram): Quản lý vòng đời và sự chuyển đổi trạng thái của 3 thực thể then chốt:
Người Dùng, Đấu Giá và Session.
- Mô hình hóa dữ liệu (Data Modeling): Xây dựng Mô hình thực thể kết hợp (ERD), sau đó thực hiện chuyển đổi từ mô hình ERD sang mô hình quan hệ logic và thiết kế cơ sở dữ liệu vật lý.
Nguồn dữ liệu của nghiên cứu được thu thập từ quá trình khảo sát thực tế quy trình giao dịch trên các hệ thống website thương mại điện tử và mô hình sàn đấu giá trực tuyến.
Thiết kế và triển khai
Hệ thống được thiết kế hoàn chỉnh qua việc phân định rõ ràng các tác nhân, xây dựng đặc tả ca sử dụng chi tiết và tối ưu hóa cấu trúc cơ sở dữ liệu vật lý.
1. Phân quyền tác nhân và danh mục ca sử dụng
Qua quá trình khảo sát và phân tích bài toán đấu giá trực tuyến, hệ thống xác định 2 tác nhân chính tương tác trực tiếp với các ca sử dụng:
| Tác nhân (Actor) |
Nhóm ca sử dụng (Use Case) |
Chi tiết chức năng thành phần |
| Nguoi_dung (Người dùng) |
DangKy |
Đăng ký tài khoản mới vào hệ thống |
|
DangNhap |
Đăng nhập hệ thống (kiểm tra tài khoản/mật khẩu) |
|
DauGia |
XemSP (Xem sản phẩm), DauGia (Đấu giá), MuaTT (Mua trực tiếp), LienHe (Liên hệ) |
|
LienHeQT |
Gửi thông tin liên hệ tới Ban quản trị |
|
FAQ |
Xem câu hỏi thường gặp |
|
QlyTrangCaNhan |
ThayDoiMatKhau, Logo, Banner, ThongTinCaNhan, NhaTaiTro, Newsletter |
|
TimKiem |
Tra cứu sản phẩm theo các tiêu chí hỗ trợ |
|
QlySanPhamDauGia |
TTSanPham (Thông tin sản phẩm), SPDauGia (Các sản phẩm đã đấu giá), Credit (Quản lý tín dụng) |
| QuanTri (Người quản trị) |
QlySanPham |
Quản lý, kiểm duyệt, sửa, xóa sản phẩm đấu giá |
|
QlyThanhVien |
Quản lý thông tin thành viên (Thêm, Sửa, Xóa) |
|
QlyLienHe |
Quản lý phản hồi và liên hệ từ người dùng |
|
QlyDanhMuc |
Quản lý danh mục sản phẩm đa cấp |
|
QlyKieuDauGia |
Thiết lập và quản trị các hình thức đấu giá |
|
QlyNewsletter |
Soạn thảo, quản lý và phát hành bản tin |
|
QlyEmail |
Quản lý hệ thống gửi thư: Templates, Queues, Timeframes |
|
ThongKe/BaoCao |
Thống kê doanh thu theo kiểu đấu giá (Action type) hoặc theo danh mục (Category) |
2. Đặc tả chi tiết các quy trình nghiệp vụ cốt lõi
Văn bản đồ án cung cấp đặc tả chi tiết cho các ca sử dụng quan trọng, bao gồm luồng sự kiện chính, luồng sự kiện phụ và các ràng buộc nghiệp vụ:
- Đặc tả Đăng nhập tài khoản:
- Luồng chính: Người dùng nhập tên và mật khẩu; hệ thống xác thực và cấp quyền tương ứng.
- Ràng buộc an toàn: Để bảo đảm tính an toàn cho hệ thống, mỗi tác nhân chỉ được phép nhập sai tên và mật khẩu tối đa 3 lần. Vượt quá giới hạn này, phiên đăng nhập bị hủy bỏ.
- Đặc tả Quản lý thành viên:
- Người quản trị có quyền Thêm, Sửa, Xóa thành viên.
- Cấu trúc thông tin thành viên bao gồm 20 trường dữ liệu:
First_name, Last name, Email, Password, Domain, Credit, Logo, Description, Company name, Phone, Banner, Address, City, State, Postal, Delivery info, Status, Activation key, Update time, Created time.
- Quy tắc xử lý: Hệ thống tự động phát sinh mã định danh (ID) cho thành viên thông qua công thức định sẵn; danh sách thành viên tự động sắp xếp tăng dần theo tên.
- Đặc tả Đấu giá sản phẩm:
- Điều kiện tiên quyết: Người dùng bắt buộc phải đăng nhập thành công vào hệ thống.
- Ràng buộc giá đấu: Hệ thống yêu cầu mức giá đấu nhập vào phải thỏa mãn điều kiện toán học:
$$\text{Giá đấu} > \text{Giá hiện tại} + \text{price step}$$
- Trường hợp giá đấu không thỏa mãn điều kiện, hệ thống thông báo lỗi và yêu cầu nhập lại hoặc hủy bỏ thao tác.
- Đặc tả Quản lý sản phẩm:
- Người quản trị cập nhật hoặc xóa thông tin sản phẩm dựa trên tập thuộc tính:
Auction type, Category, Title, User, Content, Delivery_info, Price min, Price max, Price step, Begin time, End time, Created time, Update time, status.
- Đặc tả Quản lý Danh mục và Newsletter:
- Danh mục quản lý theo cấp bậc (
Parent Name, Name, Status).
- Newsletter lưu trữ thông tin phát hành gồm:
User Name, Subject, Content, Status.
- Đặc tả Thống kê / Báo cáo:
- Cho phép người quản trị lọc dữ liệu theo mốc thời gian và lựa chọn 2 hình thức thống kê:
- Thống kê theo Action type: Liệt kê chi tiết từng loại hình đấu giá, tổng doanh thu của từng dịch vụ và tổng giá trị tích lũy đến thời điểm truy xuất.
- Thống kê theo Category: Hiển thị doanh thu chi tiết từ từng nhóm danh mục sản phẩm và tổng doanh thu toàn sàn.
3. Thiết kế cơ sở dữ liệu vật lý
Một quyết định thiết kế quan trọng được nhóm tác giả nêu rõ: Khi chuyển đổi từ mô hình ERD sang mô hình quan hệ và cài đặt cơ sở dữ liệu vật lý, hệ thống đã chủ động lược bỏ các ràng buộc khóa ngoại (Foreign Keys) ở tầng cơ sở dữ liệu. Quyết định này dựa trên khảo sát thực tế các website thương mại điện tử nhằm giảm chi phí kiểm tra toàn vẹn của hệ quản trị CSDL, từ đó tối ưu hóa tốc độ ghi và truy vấn dữ liệu trong môi trường có tần suất giao dịch cao.
Cấu trúc các bảng dữ liệu vật lý tiêu biểu trong hệ thống được định nghĩa như sau:
Bảng Auction Bid (Lịch sử đặt giá đấu)
| STT |
Tên thuộc tính |
Diễn giải |
Kiểu dữ liệu |
Miền giá trị |
Ghi chú |
| 1 |
Id |
Mã định danh bản ghi |
Int |
11 |
Khóa chính |
| 2 |
Auction_id |
Mã phiên/sản phẩm đấu giá |
Int |
11 |
Khóa ngoại (logic) |
| 3 |
User_id |
Mã người dùng đặt giá |
Int |
11 |
Khóa ngoại (logic) |
| 4 |
Price |
Mức giá đặt đấu |
Decimal |
10,2 |
|
| 5 |
Created_time |
Thời gian tạo giá đấu |
Int |
10 |
|
| 6 |
Update_time |
Thời gian cập nhật |
Int |
10 |
|
| 7 |
Status |
Trạng thái lượt đấu |
Tinyint |
4 |
|
Bảng Credit histories (Lịch sử biến động số dư tín dụng)
| STT |
Tên thuộc tính |
Diễn giải |
Kiểu dữ liệu |
Miền giá trị |
Ghi chú |
| 1 |
Id |
Mã định danh giao dịch |
Int |
11 |
Khóa chính |
| 2 |
Amount |
Số tiền giao dịch |
Int |
11 |
Khóa ngoại (logic) |
| 3 |
User_id |
Mã người dùng giao dịch |
Int |
11 |
Khóa ngoại (logic) |
| 4 |
Price |
Giá đấu/mức quy đổi |
Decimal |
8,2 |
|
| 5 |
Type |
Loại giao dịch |
Tinyint |
1 |
|
| 6 |
Credit_before |
Số dư tín dụng trước giao dịch |
Int |
11 |
|
| 7 |
Credit_after |
Số dư tín dụng sau giao dịch |
Int |
11 |
|
| 8 |
Process_time |
Thời gian xử lý giao dịch |
Datetime |
|
|
| 9 |
Transaction_id |
Mã giao dịch hệ thống |
Varchar |
32 |
|
| 10 |
Card_type |
Kiểu loại thẻ thanh toán |
Varchar |
16 |
|
Ngoài ra, hệ thống còn định nghĩa các cấu trúc bảng liên quan như Auction Photos nhằm lưu trữ hình ảnh chi tiết của các sản phẩm đấu giá.
Nội dung chính theo từng phần của đồ án
Văn bản đồ án được tổ chức thành hai phần chính:
Phần I: Mô tả đề tài
Phần này tập trung phân tích bối cảnh phát triển của thị trường đấu giá trực tuyến, so sánh ưu nhược điểm giữa hai mô hình người bán (tự xây dựng website riêng và thuê gian hàng trên sàn giao dịch trung gian). Tác giả thiết lập hệ thống yêu cầu chức năng cho 3 nhóm đối tượng (Chủ Website, User đăng sản phẩm, User tham gia đấu giá) cùng các yêu cầu phi chức năng về tính an toàn, độ tin cậy và hiệu năng hệ thống. Đồng thời, cấu trúc tổng thể của website được phân tích thành 4 khối chức năng chính làm nền tảng cho việc thiết kế mô hình dữ liệu quan niệm (ERD).
Phần II: Thiết kế
Phần này trình bày toàn bộ giải pháp kỹ thuật và mô hình hóa hệ thống, bao gồm hai nội dung lớn:
- Thiết kế mô hình tổ chức xử lý: Xác định danh sách tác nhân (
Nguoi_dung, QuanTri), thiết lập sơ đồ Use Case tổng quát và sơ đồ Use Case chi tiết; xây dựng 6 sơ đồ hoạt động (Activity Diagram), 8 sơ đồ trình tự (Sequence Diagram), sơ đồ trạng thái (State Diagram) cho các thực thể Người Dùng, Đấu Giá, Session; cùng hệ thống tài liệu đặc tả chi tiết từng Use Case với đầy đủ luồng chính, luồng phụ và luồng ngoại lệ.
- Thiết kế mô hình dữ liệu: Trình bày phương pháp luận chuyển đổi từ ERD sang mô hình quan hệ và mô hình vật lý; đưa ra giải pháp kỹ thuật lược bỏ khóa ngoại vật lý nhằm tăng tốc độ xử lý cơ sở dữ liệu; mô tả chi tiết từ điển dữ liệu của các bảng
Auction Bid, Credit histories, Auction Photos.
Kết quả và đóng góp
- Kết quả chính:
- Xây dựng hoàn chỉnh tài liệu phân tích thiết kế hệ thống cho website thương mại điện tử đấu giá sản phẩm, bao quát đầy đủ cả hai góc độ người dùng thông thường và quản trị viên.
- Thiết lập mô hình dữ liệu vật lý đáp ứng các nghiệp vụ đấu giá theo bước giá (
price step) và quản lý tài khoản tín dụng (Credit) chi tiết đến từng biến động số dư (Credit_before, Credit_after, Card_type, Transaction_id).
- Thiết kế hoàn thiện các quy tắc nghiệp vụ kiểm soát lỗi và bảo mật, tiêu biểu là cơ chế giới hạn 3 lần đăng nhập sai và công thức ràng buộc tính hợp lệ của giá đấu trực tuyến.
- Giải pháp và kiến nghị của tác giả:
- Đề xuất giải pháp kỹ thuật lược bỏ các ràng buộc toàn vẹn khóa ngoại ở mức cơ sở dữ liệu vật lý khi cài đặt website để cải thiện tối đa tốc độ truy xuất và ghi dữ liệu, chuyển việc kiểm soát tính toàn vẹn lên tầng xử lý logic ứng dụng.
- Tích hợp hệ thống quản lý gửi thư điện tử tự động (
Templates, Queues, Timeframes) và quản lý bản tin (Newsletter) nhằm duy trì tương tác thường xuyên với thành viên.
- Đóng góp về mặt giải pháp:
- Đưa ra mô hình sàn giao dịch kết hợp, giải quyết đồng thời bài toán bán hàng độc lập của chủ sàn và bài toán cung cấp hạ tầng cho các chủ hàng nhỏ lẻ thuê mặt bằng kinh doanh trực tuyến.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế dựa trên phạm vi nghiên cứu:
- Quyết định lược bỏ khóa ngoại vật lý ở tầng CSDL giúp tăng tốc độ xử lý nhưng làm tăng sự phụ thuộc vào độ chính xác của tầng mã nguồn ứng dụng; nếu tầng ứng dụng xử lý không chặt chẽ, CSDL có thể đối mặt với nguy cơ rác dữ liệu hoặc mất tính toàn vẹn tham chiếu.
- Đồ án tập trung chuyên sâu vào giai đoạn phân tích và thiết kế hệ thống thông tin (mô hình UML, đặc tả Use Case, thiết kế CSDL), chưa trình bày chi tiết về phần kiểm thử tải thực tế (load testing) và mã nguồn triển khai chi tiết cho các cổng thanh toán ngân hàng.
- Hướng phát triển tiếp theo:
- Mở rộng chi tiết các kịch bản tích hợp cổng thanh toán trực tuyến dựa trên trường dữ liệu
Card_type đã được định nghĩa trong bảng Credit histories.
- Nghiên cứu và thiết kế thêm các thuật toán đấu giá tự động (auto-bidding) và đa dạng hóa các kiểu đấu giá trong phân hệ
QlyKieuDauGia.
Giá trị tham khảo
Tài liệu đồ án mang lại giá trị tham khảo thiết thực cho:
- Sinh viên ngành Hệ thống Thông tin, Công nghệ Phần mềm và Thương mại Điện tử: Nguồn tài liệu mẫu chuẩn mực về phương pháp phân tích thiết kế hệ thống hướng đối tượng bằng UML, cách viết tài liệu đặc tả ca sử dụng (Use Case Specification) với đầy đủ luồng sự kiện chính, luồng phụ và điều kiện ngoại lệ.
- Người phát triển ứng dụng thương mại điện tử: Tham khảo cấu trúc thiết kế cơ sở dữ liệu cho bài toán đấu giá trực tuyến, đặc biệt là cách tổ chức bảng lịch sử đấu giá (
Auction Bid) và bảng quản lý giao dịch tín dụng (Credit histories).
Câu hỏi thường gặp
1. Điều kiện để một lượt đấu giá của người dùng được hệ thống ghi nhận là gì?
Người dùng bắt buộc phải đăng nhập vào hệ thống trước khi tham gia. Mức giá đặt đấu phải thỏa mãn công thức toán học: $\text{Giá đấu} > \text{Giá hiện tại} + \text{price step}$. Nếu không thỏa mãn, hệ thống sẽ từ chối và trả về trạng thái trước đó.
2. Hệ thống áp dụng cơ chế bảo mật nào đối với việc đăng nhập của các tác nhân?
Để bảo đảm an toàn, hệ thống quy định mỗi tác nhân (người dùng hoặc quản trị viên) chỉ được phép nhập sai tên đăng nhập và mật khẩu tối đa 3 lần. Nếu quá số lần này, tiến trình đăng nhập sẽ bị chấm dứt.
3. Vì sao nhóm tác giả quyết định lược bỏ khóa ngoại trong cơ sở dữ liệu khi cài đặt chương trình?
Dựa trên kết quả khảo sát các website thực tế, việc lược bỏ ràng buộc khóa ngoại ở tầng cơ sở dữ liệu vật lý giúp hệ thống loại bỏ các chi phí kiểm tra toàn vẹn tốn kém, từ đó cải thiện đáng kể tốc độ và hiệu năng truy xuất dữ liệu trong các giao dịch trực tuyến.
4. Bảng Credit histories lưu trữ những thông tin nào để kiểm soát biến động tài chính của người dùng?
Bảng lưu trữ chi tiết 10 thuộc tính gồm: mã định danh Id, số tiền Amount, mã người dùng User_id, giá Price, loại giao dịch Type, số dư trước giao dịch Credit_before, số dư sau giao dịch Credit_after, thời gian xử lý Process_time, mã giao dịch Transaction_id và kiểu thẻ thanh toán Card_type.
5. Phân hệ Thống kê / Báo cáo hỗ trợ người quản trị trích xuất dữ liệu doanh thu theo những tiêu chí nào?
Người quản trị có thể trích xuất báo cáo doanh thu theo mốc thời gian cụ thể dựa trên 2 tiêu chí: theo kiểu đấu giá (Action type) để xem doanh thu từng loại dịch vụ, hoặc theo danh mục sản phẩm (Category) để tổng hợp doanh thu từ từng nhóm mặt hàng.
Kết luận
Đồ án "Website mua bán, đấu giá sản phẩm" của sinh viên Trần Tấn Sang và Trần Nam Trung (Khoa Hệ thống Thông tin, Trường Đại học Công nghệ Thông tin – ĐHQG-HCM) đã xây dựng thành công một giải pháp phân tích và thiết kế toàn diện cho sàn đấu giá thương mại điện tử. Công trình hoàn thiện hệ thống mô hình hóa UML từ ca sử dụng, sơ đồ hoạt động, sơ đồ trình tự đến sơ đồ trạng thái, kết hợp cùng các đặc tả nghiệp vụ chi tiết cho từng tác nhân. Bên cạnh đó, thiết kế cơ sở dữ liệu vật lý với giải pháp tối ưu hóa hiệu năng truy vấn và cấu trúc quản lý tín dụng rõ ràng đã tạo nên một tài liệu kỹ thuật có giá trị tham khảo học thuật cao trong lĩnh vực phát triển hệ thống thông tin thương mại điện tử.