1. Trang chủ
  2. » Công Nghệ Thông Tin

Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng

160 971 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Tác giả Nguyễn Thị Mỹ Định
Người hướng dẫn ThS. Nguyễn Bảo Ân
Trường học Trường đại học Trà Vinh
Chuyên ngành Kỹ thuật và công nghệ
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2012
Thành phố Trà Vinh
Định dạng
Số trang 160
Dung lượng 18,06 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Việc kinh doanh, mua bán thông qua Internet hiện nay ngày càng phổ biến. Đồng thời, các website không ngừng đưa ra nhiều cách thức để giữ được mối quan hệ với khách hàng cũng như ngày càng hoàn thiện chất lượng website của mình. Có nhiều phương án để thực hiện như thăm dò ý kiến khách hàng, cho khách hàng để lại ý kiến hay xây dựng một hệ thống tìm kiếm thật hoàn hảo giúp khách hàng dễ dàng tìm được những món hàng thật vừa ý. Thời gian gần đây, một cách thức khá mới mẻ vừa mới xuất hiện đó là hệ thống khuyến nghị cho người dùng. Khi khách hàng chọn một sản phẩm bất kỳ, hệ thống sẽ tự động tìm ra những sản phẩm khác phù hợp để khuyến nghị cho khách hàng có thể mua cùng lúc với sản phẩm vừa chọn. Lúc đó, hệ thống này đóng vai trò như một nhân viên tư vấn cho khách hàng, để khách hàng dễ dàng hơn trong quá trình chọn hàng. Chính những điều này sẽ làm khách hàng hài lòng hơn khi mua hàng ở website của mình.Thấy được lợi ích của mô hình hệ thống như trên. Tôi quyết định tìm hiểu và xây dựng hệ thống khuyến nghị áp dụng vào khóa luận tốt nghiệp của mình với đề tài là: “Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng” dựa trên nền tảng sử dụng công nghệ ASP.NET MVC.

Trang 1

TRƯỜNG ĐẠI HỌC TRÀ VINH KHOA KỸ THUẬT VÀ CÔNG NGHỆ

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG WEBSITE BÁN HÀNG KẾT HỢP HỆ THỐNG KHUYẾN NGHỊ

CHO NGƯỜI DÙNG

Giảng viên hướng dẫn: ThS NGUYỄN BẢO ÂN

Sinh viên thực hiện: NGUYỄN THỊ MỸ ĐỊNH

Mã số sinh viên: 110108176

Lớp: DA08TTD

Khoá: 2008 - 2012

Trang 2

TRƯỜNG ĐẠI HỌC TRÀ VINH KHOA KỸ THUẬT VÀ CÔNG NGHỆ

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG WEBSITE BÁN HÀNG KẾT HỢP HỆ THỐNG KHUYẾN NGHỊ

CHO NGƯỜI DÙNG

Giảng viên hướng dẫn: ThS NGUYỄN BẢO ÂN

Sinh viên thực hiện: NGUYỄN THỊ MỸ ĐỊNH

Mã số sinh viên: 110108176

Lớp: DA08TTD

Khoá: 2008 - 2012

Trà Vinh, tháng 8 năm 2012

Trang 4

LỜI MỞ ĐẦU

Việc kinh doanh, mua bán thông qua Internet hiện nay ngày càng phổ biến Đồngthời, các website không ngừng đưa ra nhiều cách thức để giữ được mối quan hệ vớikhách hàng cũng như ngày càng hoàn thiện chất lượng website của mình Có nhiềuphương án để thực hiện như thăm dò ý kiến khách hàng, cho khách hàng để lại ý kiếnhay xây dựng một hệ thống tìm kiếm thật hoàn hảo giúp khách hàng dễ dàng tìm đượcnhững món hàng thật vừa ý Thời gian gần đây, một cách thức khá mới mẻ vừa mớixuất hiện đó là hệ thống khuyến nghị cho người dùng Khi khách hàng chọn một sảnphẩm bất kỳ, hệ thống sẽ tự động tìm ra những sản phẩm khác phù hợp để khuyến nghịcho khách hàng có thể mua cùng lúc với sản phẩm vừa chọn Lúc đó, hệ thống nàyđóng vai trò như một nhân viên tư vấn cho khách hàng, để khách hàng dễ dàng hơntrong quá trình chọn hàng Chính những điều này sẽ làm khách hàng hài lòng hơn khimua hàng ở website của mình

Thấy được lợi ích của mô hình hệ thống như trên Tôi quyết định tìm hiểu và xâydựng hệ thống khuyến nghị áp dụng vào khóa luận tốt nghiệp của mình với đề tài là:

“Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng” dựa trênnền tảng sử dụng công nghệ ASP.NET MVC

Có nhiều cách thức để xây dựng hệ thống này Ở đây chúng tôi sử dụng lịch sửmua hàng của khách hàng để làm tài nguyên đầu vào cho quá trình khai thác Bằngcách khai thác các luật kết hợp tiềm ẩn trong các hóa đơn mua hàng của khách, chúngtôi thực hiện trích lọc những sản phẩm có độ tin cậy phù hợp và sao lưu những sảnphẩm này vào cơ sở dữ liệu làm tài nguyên cho quá trình khuyến nghị sau này

Sau quá trình nghiên cứu và phát triển, tôi đã xây dựng thành công một hệ thốngwebsite giới thiệu, quảng bá sản phẩm và cho phép khách hàng đặt hàng online Hơnnữa, tôi cũng đã xây dựng thành công hệ thống khuyến nghị cho người dùng, đảm bảoyêu cầu đặt ra với kết quả chấp nhận được

Trang 5

LỜI CẢM ƠN

Trước tiên, em muốn gửi lời cảm ơn sâu sắc nhất đến thầy ThS Nguyễn Bảo Ân đãtận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm khóa luậntốt nghiệp Trong thời gian làm việc với thầy, em không ngừng tiếp thu thêm nhiềukiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa họcnghiêm túc, hiệu quả Đây là những điều rất cần thiết cho em trong quá trình học tập

và công tác sau này

Em xin chân thành cảm ơn các thầy, cô giáo trong và ngoài trường đã truyền đạtcho em kiến thức để em tích lũy kiến thức thực hiện khóa luận tốt nghiệp và làm vốnkiến thức, hành trang cho em xây dựng sự nghiệp sau này

Tôi xin gửi lời cảm ơn đến những người bạn thân thương đã luôn nhiệt tình giúp đỡtôi trong suốt quá trình thực hiện khóa luận

Đặc biệt, em xin chân thành cảm ơn những người thân trong gia đình, con cảm ơn

Mẹ, người đã luôn quan tâm động viên con trong những lúc khó khăn nhất và luôn tạođiều kiện tốt nhất cho con trong suốt thời gian qua để con có điều kiện thuận lợi nhấthoàn thành tốt khóa luận tốt nghiệp

Trong quá trình thực hiện khóa luận tốt nghiệp em đã vận dụng những kiến thứcmình học, tìm hiểu, nghiên cứu để tìm ra những phương pháp hiệu quả nhằm hoànthành tốt đồ án Tuy nhiên, do thời gian thực hiện khóa luận có giới hạn nên còn nhiềumặt còn hạn chế, mong quý thầy cô góp ý để khóa luận ngày càng hoàn thiện hơn

Em xin chân thành cảm ơn!

Sinh viên

Nguyễn Thị Mỹ Định

Trang 6

NHẬN XÉT

(Của giảng viên hướng dẫn trong đồ án, khoá luận của sinh viên)

Giảng viên hướng dẫn

(ký và ghi rõ họ tên)

Nguyễn Bảo Ân

Trang 7

NHẬN XÉT (Của giảng viên phản biện trong đồ án, khoá luận của sinh viên)

Giảng viên phản biện

(ký và ghi rõ họ tên)

Trang 8

MỤC LỤC

Chương 1 ĐẶT VẤN ĐỀ 1

1.1 Phân tích tình hình phát triển các hệ thống website hiện nay 1

1.2 Bài toán đặt ra 2

1.3 Mục tiêu của đề tài 2

1.4 Các bước thực hiện 3

Chương 2 CƠ SỞ LÝ THUYẾT 4

2.1 Mô hình MVC 4

2.1.1 Tổng quan về mô hình MVC 4

2.1.2 Các thành phần trong mô hình MVC và nhiệm vụ, chức năng của từng thành phần 4

2.1.3 Tìm hiểu sơ lược về mô hình ba lớp và cách làm việc của mô hình ba lớp 5

2.1.4 Những điểm giống nhau và khác nhau giữa mô hình ba lớp và mô hình MVC 6

2.1.5 Ưu điểm, nhược điểm của mô hình MVC 7

2.1.5.1 Ưu điểm 7

2.1.5.2 Nhược điểm 8

2.2 Hiện thực hóa mô hình MVC trên ASP.NET 9

2.2.1 Tổng quan về ASP.NET 9

2.2.1.1 Một vài điểm về ASP.NET 9

2.2.1.2 Nhược điểm của ASP.NET truyền thống 9

2.2.2 Sơ lược về ASP.NET MVC 10

2.2.3 Một vài đặc tính trong ASP.NET MVC 11

2.2.3.1 Khả năng ánh xạ các URL vào trong class Controllers của ASP.NET MVC 11

2.2.3.2 Cơ chế ánh xạ theo bảng định tuyến URL (URL Routing) 11

2.2.3.3 Khả năng test không hạn chế – Test Driven Developer 12

2.2.3.4 Dễ nâng cấp, mở rộng và phát triển ứng dụng 13

2.2.3.5 Kế thừa những tính năng của ASP.NET WebForm 13

2.2.4 Sự khác biệt giữa ASP.MVC và ASP.NET WebForm 13

2.2.5 Những kết luận về mô hình ASP.NET và ASP.NET MVC 15

2.3 Khai thác dữ liệu và hệ thống khuyến nghị 16

Trang 9

2.3.1 Nghiên cứu tổng quan về khai thác dữ liệu 16

2.3.1.1 Sơ lược về khai thác dữ liệu 16

2.3.1.2 Các kỹ thuật chủ yếu của KTDL 17

2.3.1.3 Các khái niệm cơ bản trong KTDL 17

2.3.1.4 Bài toán khai thác tập phổ biến bằng thuật giải Apriori 19

2.3.1.5 Bài toán khai thác luật kết hợp (Asociation Rules) 22

2.3.2 Hệ thống khuyến nghị 24

2.3.2.1 Tổng quan về các hệ thống khuyến nghị hiện nay 24

2.3.2.2 Hệ thống khuyến nghị dựa trên luật kết hợp 24

Chương 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG WEBSITE BÁN HÀNG 26 3.1 Đặc tả yêu cầu 26

3.2 Phân tích use case 26

3.2.1 Xác định actor 26

3.2.1.1 Khách hàng 26

3.2.1.2 Người quản lý 27

3.2.2 Xác định use case 27

3.3 Phân tích lĩnh vực 33

3.4 Hiện thực hóa các use case 42

3.4.1 Hiện thực hóa use case đăng nhập 43

3.4.2 Hiện thực hóa use case đăng xuất 47

3.4.3 Hiện thực hóa use case khách hàng đăng ký thành viên 49

3.4.4 Hiện thực hóa use case kích hoạt tài khoản 53

3.4.5 Hiện thực hóa use case người dùng cập nhật thông tin tài khoản 55

3.4.6 Hiện thực hóa use case khách hàng lựa chọn hình thức xem hàng 61

3.4.7 Hiện thực hóa use case khách hàng quản lý giỏ hàng 64

3.4.8 Hiện thực hóa use case tìm kiếm 68

3.4.9 Hiện thực hóa use case khách hàng xem tin tức 71

3.4.10 Hiện thực hóa use case quản lý nhóm sản phẩm 73

3.4.11 Hiện thực hóa use case quản lý thuộc tính sản phẩm 77

3.4.12 Hiện thực hóa use case quản lý loại sản phẩm 80

3.4.13 Hiện thực hóa use case quản lý sản phẩm 85

Trang 10

3.4.15 Hiện thực hóa use case quản lý đơn đặt hàng 99

3.4.16 Hiện thực hóa use case quản lý tin tức 103

Chương 4 NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG KHUYẾN NGHỊ CHO NGƯỜI DÙNG 109

4.1 Kiến trúc tổng thể 109

4.2 Tiền xử lý 110

4.3 Khai thác 112

4.4 Hậu xử lý để tạo tri thức khuyến nghị 113

Chương 5 CÀI ĐẶT THỬ NGHIỆM 115

5.1 Cài đặt 115

5.2 Thử nghiệm 115

5.2.1 Kết quả thử nghiệm trong phần quản trị hệ thống 115

5.2.1.1 Giao diện trang chủ 115

5.2.1.2 Giao diện hiển thị sản phẩm theo nhóm sản phẩm 118

5.2.1.3 Giao diện hiển thị sản phẩm theo loại sản phẩm 119

5.2.1.4 Giao diện hiển thị chi tiết sản phẩm 120

5.2.1.5 Giao diện giỏ hàng 120

5.2.1.6 Giao diện đăng ký thành viên 122

5.2.1.7 Giao diện quản lý hệ thống 123

5.2.1.8 Giao diện quản lý nhóm hàng 125

5.2.1.9 Giao diện quản lý loại sản phẩm 126

5.2.1.10 Giao diện quản lý thuộc tính sản phẩm 126

5.2.1.11 Giao diện quản lý sản phẩm 127

5.2.1.12 Giao diện quản lý người dùng 129

5.2.2 Kết quả thử nghiệm hệ thống khuyến nghị 130

5.2.2.1 Kết quả thử nghiệm hệ thống khuyến nghị dựa trên từng lần mua hàng của khách hàng 131

5.2.2.2 Kết quả thử nghiệm hệ thống khuyến nghị dựa trên toàn bộ lịch sử mua hàng của khách hàng 132

Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 136

6.1 Kết luận 136

6.2 Hướng phát triển 136

Trang 11

DANH MỤC BẢNG Bảng 2.1 So sánh sự khác nhau giữa ASP.NET WebForm và ASP.NET MVC [6]

15

Bảng 2.2 Dữ liệu cho mẫu cho thuật toán Apriori 20

Bảng 2.3 Dữ liệu L 1 20

Bảng 2.4 Dữ liệu C 1 20

Bảng 2.5 Bảng dữ liệu C 2 21

Bảng 2.6 Bảng dữ liệu L 2 21

Bảng 2.7 Bảng dữ liệu C 3 22

Bảng 2.8 Bảng dữ liệu thường xuyên 22

Bảng 2.9 Kết quả khai thác luật kết hợp 23

Bảng 3.1 Thực thể nhóm sản phẩm - TypeOfProduct 35

Bảng 3.2 Thực thể loại sản phẩm – Category 36

Bảng 3.3 Thực thể thuộc tính của loại sản phẩm – DescriptionOfCategory 36

Bảng 3.4 Thực thể thuộc tính sản phẩm – Property 36

Bảng 3.5 Thực thể Khuyến mãi - Promotion 37

Bảng 3.6 Thực thể Sản phẩm – Product 37

Bảng 3.7 Thực thể thông tin chi tiết thuộc tính của sản phẩm – Description 38

Bảng 3.8 Thực thể thông tin nhập hàng - AddQuantity 38

Bảng 3.9 Thực thể quyền đăng nhập - Role 38

Bảng 3.10 Thực thể Khách hàng/ User - Customer 39

Bảng 3.11 Thực thể hóa đơn - Bill 40

Bảng 3.12 Thực thể chi tiết hóa đơn - BillDetail 40

Bảng 3.13 Thực thể tin tức - News 40

Bảng 4.1 Bảng dữ liệu mẫu cho quá trình khai thác 111

Bảng 4.2 Thực hiện gom nhóm các đơn đặt hàng của một khách hàng lại gần nhau 112

Bảng 4.3 Dữ liệu sau bước tiền xử lý 112

Bảng 4.4 Dữ liệu sau khi khai thác 114

Trang 12

DANH MỤC HÌNH

Hình 2.1 Các thành phần trong mô hình MVC 4

Hình 2.2 Sơ đồ làm việc của mô hình MVC 5

Hình 2.3: Sơ đồ làm việc của mô hình ba lớp 6

Hình 2.4 Cơ chế ánh xạ địa chỉ tự phát sinh trong file Global.ascx 12

Hình 2.5 Các quá trình KTDL 17

Hình 2.6 Mô hình tổng quát của hệ thống khuyến nghị 24

Hình 3.1 Mô hình use case tổng quát 28

Hình 3.2 Use case đăng nhập 28

Hình 3.3 Use case quản lý giỏ hàng 29

Hình 3.4 Use case quản lý nhóm hàng 30

Hình 3.5 Use case quản lý thuộc tính 30

Hình 3.6 Use case quản lý loại hàng 31

Hình 3.7 Use case quản lý sản phẩm 31

Hình 3.8 Use case quản lý khách hàng /User 32

Hình 3.9 Use case quản lý hóa đơn 32

Hình 3.10 Use case quản lý tin tức 33

Hình 3.11 Sơ đồ lớp tổng quát 35

Hình 3.12 Lược đồ CSDL 41

Hình 3.13 Mô hình hoạt động của hệ thống 42

Hình 3.14 Sơ đồ lớp đăng nhập 43

Hình 3.15 Sơ đồ hoạt động của use case đăng nhập 44

Hình 3.16 Sơ đồ tuần tự của use case đăng nhập 45

Hình 3.17 Giao diện đăng nhập 46

Hình 3.18 Giao diện hỗ trợ người dùng lấy mật khẩu mới 46

Hình 3.19 Mật khẩu mới được gởi đến email của người dùng 46

Hình 3.20 Sơ đồ lớp của use case đăng xuất 47

Hình 3.21 Sơ đồ hoạt động của use case đăng xuất 48

Hình 3.22 Sơ đồ tuần tự của use case đăng xuất 49

Hình 3.23 Đường dẫn chỉ đến địa chỉ đăng xuất 49

Hình 3.24 Sơ đồ lớp của use case khách hàng đăng ký thành viên 50

Hình 3.25 Sơ đồ hoạt động của use case khách hàng đăng ký thành viên 50

Trang 13

Hình 3.26 Sơ đồ tuần tự của use case khách hàng đăng ký thành viên 51

Hình 3.27 Giao diện đăng ký thành viên 52

Hình 3.28 Mã kích hoạt tài khoản được gởi đến email của người dùng 53

Hình 3.29 Sơ đồ lớp của use case kích hoạt tài khoản 53

Hình 3.30 Sơ đồ hoạt động của use case kích hoạt tài khoản 54

Hình 3.31 Sơ đồ tuần tự của use case kích hoạt tài khoản 54

Hình 3.32 Link liên kết đến địa chỉ kích hoạt tài khoản 55

Hình 3.33 Giao diện kích hoạt tài khoản 55

Hình 3.34 Sơ đồ lớp của use case người dùng cập nhật thông tin tài khoản 56

Hình 3.35 Sơ đồ hoạt động của use case người dùng cập nhật thông tin tài khoản 57

Hình 3.36 Sơ đồ tuần tự của use case người dùng cập nhật thông tin tài khoản 58 Hình 3.37 Địa chỉ liên kết xem thông tin tài khoản 58

Hình 3.38 Thông tin khách hàng 59

Hình 3.39 Người dùng đổi thông tin mật khẩu 59

Hình 3.40 Thông tin chi tiết của thành viên quản trị 60

Hình 3.41 Thành viên quản trị cập nhật thông tin cá nhân 60

Hình 3.42 Sơ đồ lớp của use case khách hàng lựa chọn hình thức xem hàng 61

Hình 3.43 Sơ đồ hoạt động của use case khách hàng lựa chọn hình thức xem hàng 61

Hình 3.44 Sơ đồ tuần tự của use case khách hàng lựa chọn hình thức xem hàng62 Hình 3.45 Giao diện hiển thị sản phẩm (theo nhóm sản phẩm) 62

Hình 3.46 Giao diện hiển thị sản phẩm (theo loại sản phẩm) 63

Hình 3.47 Giao diện hiển thị sản phẩm (theo nhóm khuyến mãi) 63

Hình 3.48 Sơ đồ lớp của use case quản lý giỏ hàng 64

Hình 3.49 Sơ đồ hoạt động của use case quản lý giỏ hàng 65

Hình 3.50 Sơ đồ tuần tự của use case quản lý giỏ hàng 66

Hình 3.51 Thiết kế giao diện giỏ hàng 67

Hình 3.52 Khách hàng chọn mua thêm 3 sản phẩm có mã số “147” 67

Hình 3.53 Thông tin giỏ hàng được cập nhật lại 68

Hình 3.54 Sơ đồ lớp của use case tìm kiếm 68

Trang 14

Hình 3.56 Sơ đồ tuần tự của use case tìm kiếm 69

Hình 3.57 Tìm kiếm theo tên sản phẩm 70

Hình 3.58 Kết quả tìm kiếm theo tên sản phẩm 70

Hình 3.59 Giao diện tìm kiếm nâng cao và kết quả tìm kiếm 70

Hình 3.60 Sơ đồ lớp của use case khách hàng xem tin tức 71

Hình 3.61 Sơ đồ hoạt động của use case khách hàng xem tin tức 71

Hình 3.62 Sơ đồ tuần tự của use case khách hàng xem tin tức 72

Hình 3.63 Giao diện chi tiết tin tức 72

Hình 3.64 Sơ đồ lớp của use case quản lý nhóm sản phẩm 73

Hình 3.65 Sơ đồ hoạt động của use case quản lý nhóm sản phẩm 74

Hình 3.66 Sơ đồ tuần tự của use case quản lý nhóm sản phẩm 75

Hình 3.67 Giao diện thêm mới nhóm sản phẩm 76

Hình 3.68 Giao diện cập nhật thông tin nhóm sản phẩm 76

Hình 3.69 Giao diện xóa nhóm sản phẩm 77

Hình 3.70 Sơ đồ lớp của use case quản lý thuộc tính sản phẩm 77

Hình 3.71 Sơ đồ hoạt động của use case quản lý thuộc tính sản phẩm 78

Hình 3.72 Sơ đồ tuần tự của use case quản lý thuộc tính sản phẩm 79

Hình 3.73 Giao diện thêm mới thuộc tính 80

Hình 3.74 Giao diện cập nhật thông tin thuộc tính 80

Hình 3.75 Giao diện xóa thông tin thuộc tính 80

Hình 3.76 Sơ đồ lớp quản lý loại sản phẩm 81

Hình 3.77 Sơ đồ hoạt động của use case quản lý loại sản phẩm 81

Hình 3.78 Sơ đồ tuần tự của use case quản lý loại sản phẩm 82

Hình 3.79 Thiết kế giao diện thêm mới loại sản phẩm 83

Hình 3.80 Thiết kế giao diện cập nhật loại sản phẩm 84

Hình 3.81 Giao diện xóa một loại sản phẩm 84

Hình 3.82 Sơ đồ lớp của use case quản lý sản phẩm 85

Hình 3.83 Sơ đồ hoạt động của use case quản lý sản phẩm 86

Hình 3.84 Sơ đồ tuần tự của use case quản lý sản phẩm 87

Hình 3.85 Chọn một loại sản phẩm cho sản phẩm cần tạo 88

Hình 3.86 Giao diện thêm mới sản phẩm 89

Hình 3.87 Giao diện cập nhật thông tin sản phẩm 90

Trang 15

Hình 3.88 Giao diện xem chi tiết sản phẩm (quản lý) 91

Hình 3.89 Giao diện xóa sản phẩm 92

Hình 3.90 Sơ đồ lớp của use case quản lý khách hàng/User 93

Hình 3.91 Sơ đồ hoạt động của use case quản lý khách hàng/User 94

Hình 3.92 Sơ đồ tuần tự của use case quản lý khách hàng/User 95

Hình 3.93 Giao diện thêm mới người dùng quản trị 96

Hình 3.94 Một số thông tin của thành viên sẽ được gán giá trị mặc định tương ứng 96

Hình 3.95 Giao diện cập nhật thông tin tài khoản 97

Hình 3.96 Giao diện thông tin chi tiết thành viên 98

Hình 3.97 Giao diện xóa thành viên ra khỏi hệ thống 98

Hình 3.98 Sơ đồ lớp của use case quản lý đơn đặt hàng 99

Hình 3.99 Sơ đồ hoạt động của use case quản lý đơn đặt hàng 100

Hình 3.100 Sơ đồ tuần tự của use case quản lý đơn đặt hàng 101

Hình 3.101 Giao diện thông tin đơn đặt hàng 102

Hình 3.102 Giao diện cập nhật tình trạng đơn đặt hàng 102

Hình 3.103 Giao diện xóa đơn đặt hàng 103

Hình 3.104 Sơ đồ lớp của use case quản lý tin tức 103

Hình 3.105 Sơ đồ hoạt động của use case quản lý tin tức 104

Hình 3.106 Sơ đồ tuần tự use case quản lý tin tức 105

Hình 3.107 Giao diện trang thêm mới tin tức 106

Hình 3.108 Giao diện trang cập nhật tin tức 107

Hình 3.109 Giao diện xóa tin tức 108

Hình 4.1 Kiến trúc tổng thể xây dựng hệ thống khuyến nghị 109

Hình 4.2 Dữ liệu sau khi tiền xử lý - Dữ liệu đầu vào để tiến hành khai thác 113

Hình 5.1 Giao diện trang chủ 117

Hình 5.2 Giao diện hiển thị sản phẩm theo nhóm hàng 118

Hình 5.3 Giao diện hiển thị sản phẩm theo loại sản phẩm 119

Hình 5.4 Giao diện hiển thị chi tiết sản phẩm 120

Hình 5.5 Thông tin giỏ hàng 120

Hình 5.6 Biểu tượng liên kết đến giỏ hàng 121

Trang 16

Hình 5.8 Kết quả thử nghiệm giao diện đăng nhập 122

Hình 5.9 Giao diện đăng ký thành viên 122

Hình 5.10 Giao diện kích hoạt tài khoản 123

Hình 5.11 Giao diện quản lý hệ thống 124

Hình 5.12 Giao diện quản lý nhóm hàng 125

Hình 5.13 Giao diện quản lý loại sản phẩm 126

Hình 5.14 Giao diện quản lý thuộc tính sản phẩm 126

Hình 5.15 Giao diện quản lý sản phẩm 127

Hình 5.16 Chọn xem sản phẩm theo loại sản phẩm 128

Hình 5.17 Giao diện danh sách sản phẩm theo loại sản phẩm 128

Hình 5.18 Giao diện quản lý người dùng 129

Hình 5.19 Giao diện quản lý người dùng (thành viên quản trị website) 129

Hình 5.20 Giao diện quản lý khai thác dữ liệu 130

Hình 5.21 Kết quả khai thác được theo từng lần mua hàng 131

Hình 5.22 Kết quả thử nghiệm hệ thống khuyến nghị theo từng đơn hàng 132

Hình 5.23 Kết quả khai thác theo toàn bộ lịch sử mua hàng 132

Hình 5.24 Kết quả khuyến nghị dựa trên toàn bộ lịch sử mua hàng của khách hàng 133

Hình 5.25 Giỏ hàng có sản phẩm nằm trong danh sách khuyến nghị 134

Trang 17

KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT

Trang 18

Chương 1 ĐẶT VẤN ĐỀ

1.1 Phân tích tình hình phát triển các hệ thống website hiện nay

Ngày nay, cùng với sự tiến bộ của khoa học kỹ thuật, công nghệ thông tin hiệnđang phát triển mạnh mẽ với tốc độ ngày càng tăng cao do nhu cầu trao đổi thông tin

và tiếp thu các tri thức mới của con người Song song đó, công nghệ thông tin đượccon người vận dụng không ngừng vào mọi lĩnh vực của đời sống nhằm phục vụ nhucầu cho mình như giáo dục, kinh doanh, giao thông, các hệ thống ngân hàng, … vàthương mại điện tử là một trong những lĩnh vực được quan tâm và ứng dụng nhiềunhất Thương mại điện tử qua Internet/web giúp người tiêu dùng và doanh nghiệpgiảm đáng kể thời gian và chi phí giao dịch [6] Ở Việt Nam, hình thức bán hàng trựctuyến còn khá mới mẻ như: vatgia.com, sieuthinhanh.com, enbac.com, … vì vậy đây

là thị trường đầy tiềm năng

Để tận dụng triệt để thị trường kinh doanh này ngày càng nhiều các doanh nghiệpcông ty, cửa hàng thành lập website với mục đích quảng bá sản phẩm và mở rộngphạm vi kinh doanh, mua bán hàng hóa thông qua Internet Trong bối cảnh ngày càng

có nhiều website ra đời, để không ngừng cạnh tranh với nhau ngoài việc cung cấpthông tin quảng bá sản phẩm thì việc không ngừng cải tạo nâng cấp chất lượng website

là một điều hết sức cần thiết Với yêu cầu trên, website bán hàng trực tuyến không chỉđơn thuần là việc quảng bá sản phẩm, mua bán hàng hóa trực tuyến nữa mà nó đòi hỏicần có nhiều yếu tố khác như sự dễ dàng, lưu loát trong các nghiệp vụ mua hàng Mộtđiều cũng khá quan trọng và thường được quan tâm là tạo được sự hài lòng và chú ýcho khách hàng khi mua hàng tại website…

Để cải thiện được điều đó và để giữ được mối quan hệ với khách hàng cũng nhưngày càng hoàn thiện chất lượng, các website không ngừng đưa ra nhiều cách thức cảithiện như thăm dò ý kiến khách hàng, cho khách hàng để lại comment, … hay xâydựng một hệ thống tìm kiếm thật hoàn hảo giúp khách hàng dễ dàng tìm được nhữngmón hàng thật vừa ý Thời gian gần đây, một cách thức khá mới mẻ vừa mới xuất hiện

đó là hệ thống khuyến nghị người dùng Khi khách hàng chọn một sản phẩm bất kỳ, hệthống website sẽ tự động tìm ra những sản phẩm khác phù hợp với sản phẩm vừa chọn

và khuyến nghị trở lại cho khách hàng Với cách thức làm việc như thế việc tìm hiểuthông tin và mua hàng của khách hàng có thể có nhiều điều rất bất ngờ và thú vị, nhờ

đó làm tăng thêm mức độ hài lòng của khách hàng Tuy hệ thống này còn tương đối

Trang 19

mới nhưng hiệu quả của nó mang lại rất đáng kể Hiện nay, hình thức khuyến nghị nàyđang được nhiều hệ thống mua bán trực tuyến áp dụng và rất hiệu quả như Amazon,eBay, …

1.2 Bài toán đặt ra

Với mục đích tìm hiểu kỹ thuật và xây dựng website bán hàng trực tuyến có vậndụng hệ thống khuyến nghị cho người dùng, em quyết định xây dựng một hệ thốngwebsite bán hàng được trình bày như sau:

Đến với website, khi một người nào đó có nhu cầu mua hàng, xem hàng người đó

sẽ tìm kiếm, lựa chọn tùy thích những sản phẩm thấy vừa ý Trong quá trình này, hệthống sẽ liên tục cập nhật và đưa ra những sản phẩm khuyến nghị cho khách hàngxuyên suốt quá trình chọn lựa, xem và mua hàng Để có thể mua hàng khách hàng cầnphải có tài khoản bằng cách cung cấp các thông tin như tên đăng nhập, mật khẩu vàcác thông tin cá nhân khác như số điện thoại, địa chỉ, email…

Ngoài ra, khách hàng có thể đọc tin tức tại website

Người dùng có thể được giải đáp thắc mắc thông qua mục hỗ trợ trực tuyến củawebsite

Trong các quá trình khách hàng tìm hiểu về thông tin của một sản phẩm nào đó, hệthống sẽ căn cứ vào sản phẩm đó đưa ra những sản phẩm khác (sản phẩm khuyếnnghị) phù hợp với sản phẩm vừa chọn cho khách hàng có thể chọn xem tiếp các sảnphẩm đó

1.3 Mục tiêu của đề tài

- Xây dựng thành công website “Bán hàng” bao gồm các chức năng:

+ Xem thông tin sản phẩm theo nhiều cách như theo loại sản phẩm, theo nhómhàng, …

+ Khách hàng có thể tìm kiếm sản phẩm theo tên sản phẩm, giá cả, loại sảnphẩm

+ Xem tin tức theo từng lĩnh vực hàng hóa được đăng trên website

+ Cho phép khách hàng mua sản phẩm và thanh toán ở mức độ thanh toán ảo.+ Cho phép khách hàng đăng ký thành viên và lấy mã kích hoạt tài khoản thông

Trang 20

+ Admin phải quản lý được người dùng, sản phẩm, thông tin các tin tức liênquan

- Xây dựng thành công hệ thống khuyến nghị cho người dùng

+ Khuyến nghị trên cơ sở tận dụng toàn bộ lịch sử mua hàng của từng kháchhàng

+ Khuyến nghị trên cơ sở tận dụng lịch sử mua hàng theo từng hóa đơn

1.4 Các bước thực hiện

- Tìm hiểu các hoạt động trong một website bán hàng trực tuyến

- Tìm hiểu về lĩnh vực khai thác dữ liệu (Data Mining) và hệ thống khuyến nghị.

- Phân tích và thiết kế hệ thống thông tin.

- Nghiên cứu việc sử dụng SQL Server 2008 để xây dựng cơ sở dữ liệu.

- Tìm hiểu, nghiên cứu việc xây dựng web theo mô hình MVC.

- Nghiên cứu công cụ thiết kế và lập trình web là Visual Studio 2010 và viết bằng

ngôn ngữ C#

Trang 21

Chương 2 CƠ SỞ LÝ THUYẾT

Vì vậy, để khắc phục những khó khăn trên người ta đưa ra mô hình MVC (Models

- Views - Controllers) với ba tầng hoạt động riêng biệt, mỗi tầng giữ một nhiệm vụnhưng luôn có mối liên hệ mật thiết hỗ trợ lẫn nhau

Nói tóm lại, đây là một phương pháp chia nhỏ một ứng dụng thành ba thành phần

để cài đặt, mỗi thành phần đóng một vai trò khác nhau và ảnh hưởng lẫn nhau, đó làModels, Views, và Controllers

2.1.2 Các thành phần trong mô hình MVC và nhiệm vụ, chức năng của từng thành phần

Hình 2.1 Các thành phần trong mô hình MVC

Trong kiến trúc này, hệ thống được chia thành 3 tầng tương ứng đúng với tên gọicủa nó (Models – Views – Controllers) Ở đó nhiệm vụ cụ thể của các tầng được phânchia rõ ràng và luôn hỗ trợ cho nhau

Trang 22

Models (Mô hình) trong ứng dụng MVC là những thành phần có nhiệm vụ lưu trữ

thông tin, trạng thái của các đối tượng, thông thường nó là một lớp được ánh xạ từ một

bảng trong CSDL Đây là một đối tượng hoặc một tập hợp các đối tượng biểu diễn cho

phần dữ liệu của chương trình Nó được giao nhiệm vụ cung cấp dữ liệu cho CSDL vàlưu dữ liệu vào các kho chứa dữ liệu [8] Dữ liệu vào từ người dùng sẽ thông quaViews đến Controllers và được kiểm tra ở Models trước khi lưu vào CSDL Việc truyxuất, xác nhận và lưu dữ liệu cũng là một phần nhiệm vụ của Models

Views (Khung nhìn) là phần giao diện với người dùng Nó bao gồm việc hiển thị dữ

liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa …, để ngườidùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệthống Thông thường, các thông tin cần hiển thị được lấy từ thành phần Models

Controllers (Bộ điều khiển) chịu trách nhiệm xử lý các tác động về mặt giao diện,

các thao tác đối với Models và cuối cùng là chọn một view thích hợp để hiển thị ramàn hình Trong kiến trúc MVC, Views chỉ có tác dụng hiển thị giao diện mà thôi, còn

điều khiển dòng nhập xuất của người dùng vẫn do Controllers đảm trách.

Theo mô hình này, dữ liệu/yêu cầu của người dùng sẽ được nhận bởi Views sau đóViews sẽ chuyển đến cho Controllers cập nhật vào Models, tiếp theo dữ liệu trongModels sẽ được đưa lại cho Views mà không thông qua Controllers, do vậy luồng xử

lý này có hình tam giác như hình sau:

Hình 2.2 Sơ đồ làm việc của mô hình MVC

2.1.3 Tìm hiểu sơ lược về mô hình ba lớp và cách làm việc của mô hình ba lớp

Mô hình ba lớp là mô hình được cấu thành từ 3 thành phần: Presentation Layers, Business Logic Layers, và Data Layers Các lớp này sẽ giao tiếp với nhau

thông qua các dịch vụ (services) mà mỗi lớp cung cấp để tạo nên ứng dụng Trong môhình này, lớp này cũng không cần biết bên trong lớp kia làm những gì mà chỉ cần biếtlớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi

Trang 23

Thành phần đầu tiên trong mô hình này là Presentation Layers, lớp này làm nhiệm

vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thị kết quả/dữ liệu thôngqua các thành phần trong giao diện người sử dụng Lớp này sẽ sử dụng các dịch vụ doBusiness Logic cung cấp

Thành phần thứ hai là Business Logic Layer Đây là lớp giữ nhiệm vụ thực hiện

các nghiệp vụ chính của hệ thống Nó sử dụng các dịch vụ do Data Layer cung cấp, vàcung cấp các dịch vụ cho Presentation Layer Lớp này cũng có thể sử dụng các dịch vụcủa các nhà cung cấp thứ ba để thực hiện công việc của mình

Thành phần thứ ba là Data Layer giữ nhiệm vụ thực hiện các nghiệp vụ liên quan

đến lưu trữ và truy xuất dữ liệu của ứng dụng

Đối với những ứng dụng được tổ chức thiết kế theo mô hình ba lớp thì yêu cầu từngười dùng sẽ được thông qua lớp Presentation Layer Sau đó, yêu cầu sẽ được chuyểnđến lớp hai - Business Logic Layer Tại đây, nó sẽ xem xét các yêu cầu, kiểm tra tínhđúng đắn và thực hiện các thao tác cần thiết để lấy được dữ liệu phù hợp để cung cấplên cho lớp Presentation Layer hiển thị ra cho người dùng Quá trình đó được biểu diễnnhư hình sau:

Hình 2.3: Sơ đồ làm việc của mô hình ba lớp

2.1.4 Những điểm giống nhau và khác nhau giữa mô hình ba lớp và mô hình MVC

Trang 24

Từ những tìm hiểu trên ta có thể thấy được một số điểm tương đối giống nhau giữa

mô hình MVC và mô hình ba lớp

Ta thấy rằng, mỗi thành phần trong mỗi mô hình đều được phân công và giữ mộtnhiệm vụ cụ thể và những thành phần này không chịu sự ảnh hưởng hay hạn chế bởithành phần kia Tuy vậy, những thành phần này luôn có mối quan hệ mật thiết vớinhau và sẵn sàng hỗ trợ cho nhau khi cần thiết

Từ những phân tích trên ta cũng thấy được rằng đối với mô hình ba lớp dữ liệu/yêucầu đi từ Presentation Layer đến Business Logic Layer Tại đây Business Logic Layer

sẽ truy vấn và lấy kết quả về từ Data Layer Quy trình hoạt động này đều thông qualớp 2 – Business Logic Layer Ta có thể ví cách thức hoạt động của mô hình này hoạtđộng tương tự như một hệ thống hỏi đáp tự động mà người hỏi là lớp 1 – PresentationLayer và hệ thống tư vấn là lớp 2 – lớp Business Logic và lớp Data đóng vai trò là kho

dữ liệu Khi người hỏi gởi câu hỏi đến hệ thống sẽ tìm câu trả lời thích hợp trong kho

dữ liệu và cuối cùng là hệ thống sẽ phản hồi kết quả về cho người hỏi Quá trình thựchiện cứ lặp đi lặp lại theo vòng lặp như thế Dòng dữ liệu sẽ đi theo một con đường haichiều nhưng thông qua một trạm trung chuyển

Khác với cách hoạt động của mô hình ba lớp, cách hoạt động của mô hình MVCtương đối đơn giản Dữ liệu/yêu cầu của người dùng sẽ được lấy thông qua Views vàtruyền đến Controllers; tại đây Controllers sẽ xem xét tùy theo yêu cầu như thế nào sẽchuyển yêu cầu đến Models thích hợp Models bắt đầu lựa chọn, trích lọc dữ liệu phùhợp với yêu cầu Cuối cùng nó gửi kết quả trực tiếp đến cho người dùng thông quaViews mà không phải trả lại kết quả cho Controllers

2.1.5 Ưu điểm, nhược điểm của mô hình MVC

2.1.5.1 Ưu điểm

Do các nhiệm vụ được phân vạch rõ ràng nên ứng dụng được xây dựng dựa trên

mô hình MVC có thể dễ dàng kiểm tra lỗi Biết được lỗi do dữ liệu không hợp lệ tatiến hành kiểm tra trên Models Trường hợp sai do trình điều khiển có vấn đề ta tiếnhành kiểm tra trên Controllers Nếu lỗi do có vấn đề về giao diện ta kiểm tra trên

Trang 25

Views mà không cần phải xem và kiểm tra lại toàn bộ module như đa số các ngôn ngữlập trình khác.

Khi đó, việc xây dựng hay phát triển phần mềm cũng trở nên dễ dàng và mang tínhchuyên nghiệp hơn Chúng ta có thể chia cho nhiều nhóm được đào tạo nhiều kỹ năngkhác nhau, từ thiết kế mỹ thuật, lập trình đến tổ chức cơ sở dữ liệu Điều này giúp pháttriển ứng dụng nhanh, đơn giản, dễ nâng cấp, …

Với việc phân chia hệ thống thành ba tầng riêng biệt có nhiệm vụ khác nhau, việcthêm chức năng cho hệ thống sẽ dễ dàng hơn là phân chia theo cách khác

Từ những ưu điểm trên cho thấy việc bảo trì cũng trở nên đơn giản và dễ dàng hơn.Với các lớp được phân chia theo như đã nói, thì các thành phần của một hệ thống dễđược thay đổi, nhưng sự thay đổi có thể được cô lập trong từng lớp hoặc chỉ ảnhhưởng đến lớp ngay gần kề của nó, chứ không phát tán náo loạn trong cả chương trình

So với mô hình ba lớp ta thấy quy trình hoạt động của mô hình MVC tương đốiđơn giản và ngắn gọn hơn

Từ đó, ta có thể nói phương pháp MVC là sự phân đoạn rõ ràng giữa Models,Views, Controllers bên trong ứng dụng Một cấu trúc giúp cho việc kiểm tra ứng dụngcủa lập trình viên dễ dàng hơn

2.1.5.2 Nhược điểm

Tuy mang nhiều ưu điểm nhưng mô hình này cũng mang trong nó nhược điểm Đối với dự án nhỏ việc áp dụng mô hình MVC gây cồng kềnh, tốn thời gian trongquá trình phát triển Vì không gian dự án không quá lớn, lúc đó ta còn dễ dàng kiểmsoát được chương trình nên không cần thiết tổ chức xây dựng từng thành phần theoMVC Hơn nữa, việc tốn thời gian trung chuyển dữ liệu của các tầng trong các dự ánnhỏ là không cần thiết Nó chỉ phù hợp đối với các dự án lớn khi khối lượng dữ liệu và

số lượng công việc quá lớn

Vì vậy, tùy theo mức độ rộng của dự án mà ta nên lựa chọn những mô hình phùhợp để xây dựng và phát triển ứng dụng

Trang 26

2.2 Hiện thực hóa mô hình MVC trên ASP.NET

2.2.1 Tổng quan về ASP.NET

2.2.1.1 Một vài điểm về ASP.NET

ASP.NET đã là một bước nhảy vọt khi lần đầu tiên xuất hiện Nó nhằm thu hẹpkhoảng cách giữa phát triển Window Form hướng đối tượng (có trạng thái) vàphát triển web hướng HTML (không có trạng thái)

Microsoft đã cố gắng che dấu HTTP (không trạng thái) và HTML (vào thời điểm

đó không thân thiện với nhiều nhân viên phát triển lập trình) bằng cách dùng mô hìnhgiao diện như một đối tượng control có cấu trúc hoạt động phía server [7]

Mỗi control lưu giữ trạng thái qua các request (sử dụng tính năng ViewState) tựđộng tạo ra mã HTML khi cần thiết và tự động kết nối với các sự kiện phía client (ví

dụ như click) với mã hồi đáp phía server Kết quả WebForm là một lớp trừu tượng lớnnhằm chuyển giao diện có xử lý sự kiện thông qua Web [7]

2.2.1.2 Nhược điểm của ASP.NET truyền thống

ASP.NET truyền thống đã từng là một ý tưởng hay nhưng thực tế cũng tồn tạinhiều vấn đề rắc rối Qua nhiều năm, sử dụng WebForm cho thấy có một số nhượcđiểm:

ViewState: kỹ thuật lưu giữ trạng thái qua các request (ViewState) thường mang lạikết quả là những khối dữ liệu lớn được chuyển qua lại giữa client và server Nó có thểđạt hàng trăm kilobytes trong nhiều dữ liệu thực và nó được chuyển qua lại với mỗilần request Điều đó làm những người truy cập vào trang web phải chờ một thời giandài khi họ chọn một button hoặc cố gắng di chuyển đến trang kế tiếp [7] Chính vì vậyAjax là một trong các giải pháp được đưa ra để giải quyết vấn đề này

Page life cycle: kỹ thuật kết nối sự kiện phía client với mã xử lý sự kiện phía server

là một phần của page life cycle Chỉ có một số ít lập trình viên thành công trong việc

xử lý hệ thống control trong thời gian thực mà không bị lỗi ViewState hoặc hiểu đượcrằng một số trình xử lý sự kiện không được kích hoạt hay phải kích hoạt rất khó khăn

[7]

Limited control over HTML: Server control tự tạo mã HTML tương tứng nhưngkhông phải là mã HTML mà ta mong muốn Mã HTML của chúng thường không tuântheo tiêu chuẩn web hoặc không sử dụng tốt CSS Hơn nữa, các server control còn tạo

Trang 27

ra các giá trị ID phức tạp và không đoán trước được, điều đó làm khó khăn trong việc

sử dụng JavaScript [7]

Ý thức sai về sự tách biệt các thành phần: Mô hình code - behind của ASP.NETcung cấp một giải pháp cho phép ứng dụng đưa mã ra khỏi các dòng HTML vào thànhmột lớp code – behind riêng biệt, điều này đã được ca ngợi là đã làm tách biệt giữagiao diện với mã xử lý Nhưng thực tế người lập trình lại thường xuyên pha trộn mã xử

lý giao diện (xử lý control phía server) với mã xử lý chương trình (xử lý CSDL) trongcùng những lớp code behind khổng lồ [7] Nếu không có sự tách biệt rõ ràng giữa cácthành phần kết quả cuối cùng là rất khó để tiếp cận với mã lập trình gây khó khăn choquá trình nâng cấp và phát triển

Untestable: Khi những người thiết kế của ASP.NET lần đầu tiên giới thiệu nền tảngnày họ có thể đã không lường trước được là việc test tự động sẽ trở thành một côngđoạn chính của việc phát triển phần mềm ngày nay Cấu trúc mà họ đã thiết kế hoàntoàn không thích hợp với việc test tự động [7]

Vì vậy, ASP.NET không ngừng bổ sung thêm các tính năng Phiên bản 2.0 thêmnhiều component chuẩn có thể giảm khá nhiều code mà lập trình viên cần phải tự viết.AJAX release năm 2007 đã là phản hồi của Microsoft với phong trào Web 2.0/Ajax

Nó hỗ trợ tương tác phía client, điều đó làm cho công việc của nhân viên phát triểnweb đơn giản hơn Tiếp sau đó là phiên bản 3.5 Đây là một bản nâng cấp nhỏ hơn Nó

hỗ trợ thêm một số tính năng và control mới Tính năng ASP.NET Dynamic Data tạo

ra các trang cho phép chỉnh sửa/liệt kê cơ sở dữ liệu một cách tự động [7]

2.2.2 Sơ lược về ASP.NET MVC

ASP.NET MVC là một framework phát triển ứng dụng web mới của Microsoft

Nó kết hợp giữa tính hiệu quả và nhỏ gọn của mô hình MVC, những ý tưởng và côngnghệ hiện đại nhất, cùng với những thành phần tốt nhất của nền tảng ASP.NET hiệnthời Là một lựa chọn khác bên cạnh nền tảng WebForm khi phát triển một ứng dụngweb sử dụng ASP.NET [7]

Trang 28

2.2.3 Một vài đặc tính trong ASP.NET MVC

2.2.3.1 Khả năng ánh xạ các URL vào trong class Controllers của ASP.NET MVC

Hầu hết các web framework, như ASP, PHP, JSP, ASP.NET WebForms , đềuánh xạ các URL vào một file template được lưu trên đĩa Ví dụ URL "/Products.aspx"hay "/Products.php" được chuyển đến file template Products.aspx hay Products.phptrên đĩa cứng để xử lý Khi một ứng dụng web nhận được HTTP Request đến webserver, thì web framework sẽ chạy một đoạn code cụ thể tương ứng với nội dung củafile template Lúc này, đoạn code này đóng vai trò xử lý yêu cầu do phía client gửiđến Thông thường thì đoạn code này sẽ sinh ra HTML và đáp ứng lại phía client Đối với MVC Framework lại hoạt động theo một cách khác hoàn toàn Thay vì ánh

xạ các URL vào các file template lưu trên đĩa, nó sẽ đưa thẳng vào các class Nhữngclass được ánh xạ tới được gọi là “Controllers” Các controller chịu trách nhiệm xử lýnhững yêu cầu được gửi đến (request)

2.2.3.2 Cơ chế ánh xạ theo bảng định tuyến URL (URL Routing)

Browser yêu cầu một địa chỉ từ cotroller action trong ASP.NET MVC Frameworkđược gọi là định tuyến URL (URL Routing) URL Routing sẽ chỉ định request (yêucầu) đến controller action Nó sử dụng một bảng định tuyến để điều khiển các yêu cầu(request) Bảng định tuyến được tạo khi ứng dụng được chạy lần đầu tiên Bảng nàyđược thiết lập trong file Global.asax

Framework này có một bộ máy ánh xạ URL thật sự mạnh mẽ [6] Bộ máy này cungcấp phương pháp rất linh hoạt trong việc ánh xạ URL sang cho Controllers Classes.Chúng ta có thể dễ dàng định ra các quy luật, cài đặt đường đi để ASP.NET dựa vàocác quy luật đường đi đó, xác định xem phải thực thi Controllers nào Ngoài ra nó còn

có khả năng phân tích URL, chuyển các thông số trong URL thành các tham số tronglời gọi hàm của Controller Ví dụ, ta có một URL là: “/Product/Details/5” lúc này tựđộng hệ thống sẽ biết tách tham số “5” ra khỏi URL để thực thi trong controller

“Product” với action là “Details”

Trang 29

Hình 2.4 Cơ chế ánh xạ địa chỉ tự phát sinh trong file Global.ascx

Cơ chế ánh xạ các URL được thực hiện theo quy luật sau

{controller}/{action}/{id}

Trong đó:

 controller là địa chỉ của lớp controller được chỉ định đi tới

 action là phương thức (method) cần truy xuất trong controller

id là từ khóa cung cấp cho action để truy vấn.

Ví dụ: Giả sử project của chúng ta có một controller có tên là Product bao gồm cácphương thức như : thêm mới sản phẩm (Insert), chỉnh sửa cập nhật thông tin sản phẩm(Edit), …

Bây giờ, chúng ta muốn chỉnh sửa thông tin của một sản phẩm có mã sản phẩm là “5”thì ta sẽ cung cấp địa chỉ truy vấn như sau:

/Product/Edit/5Trong ASP.NET MVC, các project được định nghĩa sẵn một số quy luật về đường

đi để người dùng không phải hiệu chỉnh thêm điều gì khi bắt đầu làm quen vớiframework mới Chúng ta có thể bắt đầu viết mã và sử dụng phương pháp ánh xạ URLmặc định được định nghĩa trong file Global.asax - ASP.NET Application class.Phương pháp mặc định này làm nhiệm vụ ánh xạ một phần URL từ HTTP Request

Do ứng dụng hoạt động theo cơ chế ánh xạ URL mạnh mẽ nên cho phép xây dựngứng dụng với những URL không cần cs mở rộng

2.2.3.3 Khả năng test không hạn chế – Test Driven Developer

Trong ASP.NET MVC có sự tách rõ ràng các mối liên quan, vì vậy mở rộng khảnăng test TDD ( Test Driven Developer) Chúng ta có thể test unit trong ứng dụng mà

Trang 30

không cần phải chạy Controllers cùng với tiến trình của ASP.NET và có thể dùng bất

kỳ một unit testing framework như NUnit, MBUnit, MS Test… để test ứng dụng [6]

2.2.3.4 Dễ nâng cấp, mở rộng và phát triển ứng dụng

Trong ASP.NET MVC mọi thứ được thiết kế riêng rẽ theo từng Controllers,Models và Views nên ta có thể dễ dàng thay thế/ tùy biến các lớp (ví dụ có thể lựachọn engine view riêng routing policy, parameter serialization, …) [6]

2.2.3.5 Kế thừa những tính năng của ASP.NET WebForm

Bên cạnh đó, ASP.NET MVC Framework cũng hỗ trợ file ASP.NET như ASPX ASCX và Master đánh dấu các tập tin này như một “view template” (có thể dễ dàng

sử dụng các tính năng của ASP.net như lồng các trang Master, <%=%> snippets, mô tảserver controls, template, data-binding, localization…) Tuy nhiên sẽ không cònpostback và interactive back server và thay vào đó là interactive end-user với mộtcontroller class (không còn viewstate, page lifecycle) [6]

ASP.NET MVC Framework cũng hỗ trợ đầy đủ các tính năng bảo mật củaASP.NET như: Form/ Windows authenticate, URL authorization, membership/roles,output và data caching, section/ profile state, configuration system, providerarchitecture, …[6]

Vì vậy, không quá khó khăn khi người lập trình ASP.NET làm quen ASP.NETMVC

2.2.4 Sự khác biệt giữa ASP.MVC và ASP.NET WebForm

ASP.NET WebForm sử dụng ViewState để quản lý, các trang ASP.NET đều cólifecycle, postback và dùng các web controls, các event để thực hiện các hành độngcho UI (User Interface) khi có sự tương tác với người dùng nên hầu hết ASP.NETWebForm xử lý chậm Đối với ASP.NET MVC chia ra làm 3 phần: Models, Views,Controllers Mọi tương tác của người dùng với Views sẽ được thực hiện hành độngtrong Controllers, không còn postback, lifecycel và events nữa [6]

Việc kiểm tra (test), gỡ lỗi (debug) với ASP.NET WebForm đều phải chạy tất cảcác tiến trình của ASP.NET và sự thay đổi ID của bất kỳ Controls nào cũng ảnh hưởngđến ứng dụng Đối với MVC thì việc đó có thể sử dụng các unit test có thể thẩm định

Trang 31

rất dễ dàng các Controllers thực hiện như thế nào mà không cần thay đổi các thànhphần liên quan.

Sau đây là bảng so sánh các tính năng của ASP.NET WebForm với ASP.NETMVC

Kiến trúc chương trình Kiến trúc mô hình

WebForm –> Bussiness –>

Database

Kiến trúc sử dụng việc phân chia chương trình thành: Models, Views, Controllers

Cú pháp chương trình Sử dụng cú pháp của

WebForm, tất cả các sựkiện và controls do serverquản lý

Các sự kiện được điều khiểnbởi controllers, các controlskhông do server quản lý

Truy cập dữ liệu Sử dụng hầu hết các công

nghệ truy cập dữ liệu trongứng dụng

Phần lớn dùng LINQ và SQLclass để tạo mô hình truy cậpđối tượng

bao gồm các lớp truy cập

dữ liệu, sự hiển thị, điềukhiển các controls

Debug có thể sử dụng cácunit test để kiểm tra các

controllers

Tốc độ phân tải Tốc độ phân tải chậm khi

trong trang có quá nhiềucác controls vì ViewStatequá lớn

Phân tải nhanh hơn do khôngphải quản lý ViewState đểquản lý các controls trongtrang

Tương tác với

JavaScript

Tương tác với JavaScriptkhó khăn vì các controlsđược điều khiển bởi server

Tương tác với JavaScript dễdàng vì các đối tượng không

do server quản lýURL address Cấu trúc địa chỉ URL có

dạng:

<filename>.aspx?&<cáctham số>

Cấu trúc địa chỉ rành mạchtheo dạng

controllers/action/id

Trang 32

2.2.5 Những kết luận về mô hình ASP.NET và ASP.NET MVC

Với những điểm yếu và giới hạn của ASP.NET WebForm truyền thống và làm thếnào mà ASP.NET MVC vượt qua những vấn đề này nhưng điều đó không có nghĩa làWebForm đã chết mà chỉ là: Microsoft muốn mọi người hiểu rằng có hai nền tảngsong song nhau, hỗ trợ cho nhau, và cả hai đều là đối tượng cho việc phát triển hiệntại Nói chung, việc chọn lựa giữa hai mô hình còn tùy vào hoàn cảnh

WebForm mang tới một trang web mà giao diện có thể lưu giữ trạng thái và cuốicùng thêm vào một lớp trừu tượng tinh vi nằm trên HTTP và HTML, sử dụngViewState và postback để tạo ra hiệu ứng của việc có trạng thái Điều này thích hợpvới phong cách phát triển kéo và thả của Window Form, tức là đặt các đối tượng cógiao diện lên trang và mã xử lý vào trình xử lý sự kiện của chúng

Bên cạnh đó, MVC hòa vào bản chất không trạng thái của HTTP, nó cung cấp mộtcách tiếp cận đơn giản, mạnh mẽ và hiện đại cho việc viết các ứng dụng web với mã

có trật tự mà dễ dàng để test và bảo trì sau này, giải phóng những phức tạp khó chịu vàcác giới hạn không đáng có

Có những tình huống mà WebForm khá tốt thậm chí còn tốt hơn MVC Ví dụ nhưđối với các ứng dụng nhỏ, nội bộ mà trực tiếp kết nối thẳng vào các bảng CSDL hoặcdẫn người sử dụng thông qua các wizard Vì thế sẽ không cần phải lo lắng về băngthông do ViewState, không dính dáng tới vấn đề tối ưu hóa hệ thống tìm kiếm vàkhông bị làm phiền về việc test và bảo trì lâu dài Sự tiện lợi của cách phát triển kiểukéo thả của WebForm làm mờ đi các điểm yếu của nó

Nhưng mặt khác, nếu viết một ứng dụng trên Internet hoặc các ứng dụng nội bộ lớnhơn ta sẽ hướng tới tốc độ download nhanh và tương thích trình duyệt chéo Hơn nữa

hệ thống xây dựng với chất lượng cao hơn, mã kiến trúc tốt thích hợp cho việc test tựđộng, trong trường hợp đó MVC sẽ mang lại những ưu điểm quan trọng

2.3 Khai thác dữ liệu và hệ thống khuyến nghị

2.3.1 Nghiên cứu tổng quan về khai thác dữ liệu

2.3.1.1 Sơ lược về khai thác dữ liệu

Trong hoạt động diễn ra giao dịch, thông tin thường được lưu trữ trong CSDL tạonên một kho dữ liệu khổng lồ và vô cùng phong phú Tuy nhiên, các kho dữ liệuthường lớn nhưng lại nghèo thông tin Để giải quyết vấn đề khai thác những giá trị

Trang 33

thông tin tiềm ẩn dưới kho dữ liệu ngành AI (Artificial Intelligence) cho ra đời mộtkhái niệm nghiên cứu mới là KTDL (Data Mining)

KTDL là tiến trình khái quát các sự kiện rời rạc trong dữ liệu thành các tri thứcmang tính khái quát, tính quy luật hỗ trợ tích cực cho các tiến trình ra quyết định [4]

“Nguồn dữ liệu phục vụ cho KTDL có thể là các CSDL lớn hay các kho dữ liệu cóhoặc không có cấu trúc” [4] Tuy nhiên, “KTDL chỉ thật sự phát huy tác dụng trên cácCSDL lớn, nơi mà khả năng diễn dịch và trực giác của con người cũng như các kỹthuật truyền thống không thể thực hiện nổi hoặc nếu thực hiện được thì hiệu quả khôngcao” [4]

Có thể chia KTDL thành hai dạng chính: KTDL theo hướng kiểm tra và KTDLtheo hướng khám phá

Các thời kỳ phát triển của khoa học:

 Trước 1600, nghiên cứu khoa học chủ yếu thiên về thực nghiệm

 Từ 1600 – 1950, nghiên cứu chủ yếu thiên về cơ sở lý thuyết

 Từ 1950 – 1990, nghiên cứu chủ yếu thiên về tính toán

 Từ 1900 đến nay, nghiên cứu bắt đầu tập trung chủ yếu KTDL sẵn có

Quá trình KTDL gồm các bước sau:

 Làm sạch dữ liệu (Data Cleaning)

 Tích hợp dữ liệu (Data Integration)

 Chọn dữ liệu (Data Selection)

 Chuyển đổi dữ liệu (Task-relevant Data)

 Khai phá dữ liệu (Data Mining)

 Đánh giá mẫu (Pattern Evaluation)

 Trình diễn dữ liệu (Knowledge Presentation)

Trang 34

Data Integration

Selection

Data Cleaning

2.3.1.2 Các kỹ thuật chủ yếu của KTDL

Các kỹ thuật chủ yếu để khai phá dữ liệu bao gồm một số kỹ thuật sau:

 Khai thác tập thường xuyên (Frequent Pattern Mining)

 Khai thác luật kết hợp (Association Rule Mining)

 Phân lớp dữ liệu (Classification)

 Gom cụm dữ liệu (Clusterring)

2.3.1.3 Các khái niệm cơ bản trong KTDL

Cho cơ sở dữ liệu gồm các giao dịch T là tập các giao dịch t 1 , t 2 , …, t n

T = {t 1 , t 2 , …, t n }

T gọi là cơ sở dữ liệu giao dịch (Transaction Database)

Mỗi giao dịch ti bao gồm tập các đối tượng I (gọi là itemset)

I = {i 1 , i 2 , …, i m }

Một itemset gồm k items gọi là k-itemset

Sự kết hợp (Association): các phần tử cùng xuất hiện với nhau trong một hay

nhiều giao dịch Thể hiện mối liên hệ giữa các phần tử/các tập phần tử

Trang 35

Luật kết hợp: qui tắc kết hợp có điều kiện giữa các tập phần tử Thể hiện mối liên

hệ (có điều kiện) giữa các tập phần tử

Luật kết hợp là luật có dạng X => Y với X, Y I và X Y={} với ý nghĩa là khi X

có mặt thì Y cũng có mặt (trong một xác suất nào đó).

Ví dụ: Cho A và B là các tập phần tử, luật kết hợp giữa A và B là A B B xuất hiện

trong điều kiện A xuất hiện.

Độ tin cậy (confidence)

Độ tin cậy (Confidence) của luật kết hợp X =>Y là xác suất xảy ra Y khi đã biết X.

Ví dụ: độ tin cậy của luật kết hợp {Apple} =>Banana} là 80% có nghĩa là 80% kháchhàng mua Apple cũng mua Banana

 Ngưỡng tin cậy tối thiểu (Minimum confidence threshold - minconf): Giá trịconfidence nhỏ nhất được chỉ định bởi người dùng

Tập thường xuyên (tập phổ biến): Tập thường xuyên là các tập các mục mà số

lần xuất hiện (support) của nó trong CSDL lớn hơn ngưỡng tối thiểu (minsupp) [9].

Khai phá luật kết hợp: Khai phá luật kết hợp được xem như là một trong những

đóng góp quan trọng nhất từ cộng đồng cơ sở dữ liệu trong việc khám phá tri thức.Hai giải thuật điển hình dùng để khám phá các tập thường xuyên là giải thuật

Trang 36

 Giải thuật Apriori: khám phá các mẫu thường xuyên với tập dự tuyển [11].

 Giải thuật FP Growth: khám phá các mẫu thường xuyên với FP-tree [11]

2.3.1.4 Bài toán khai thác tập phổ biến bằng thuật giải Apriori

Bài toán khai thác tập thường xuyên (tập phổ biến) là bài toán rất quan trọng tronglĩnh vực KTDL nhằm vạch ra tính chất ẩn, quan trọng của tập dữ liệu

Bên cạnh đó, bài toán khai thác tập phổ biến là nền tảng cho nhiều nhiệm vụ KTDLkhác như phân tích luật kết hợp, mẫu tuần tự, phân tích dữ liệu không gian, …

Quy trình thực hiện của thuật giải Apriori để tìm ra các tập thường xuyên trãi qua 5bước:

Bước 1: Duyệt toàn bộ transaction database để có được support S của 1-itemset, so

sánh S với minsup, để có được 1-itemset (L 1)

Bước 2: Sử dụng L k-1 nối (join) L k-1 để sinh ra Candidate k-itemsets (C) Loại bỏ các

itemsets không phải là frequent itemsets thu được k-itemset mới.

Bước 3: Duyệt transaction database để có được support của mỗi thành phần trong

C, so sánh S với minsup để thu được frequent k –itemset (L k)

Bước 4: Lặp lại từ bước 2 cho đến khi itemsets (C) trống (không tìm thấy frequent

itemsets)

Bước 5: Với mỗi frequent itemset I, sinh tất cả các tập con s không rỗng của I.

Trang 37

Giả sử ta có cơ sở dữ liệu giao dịch bán hàng gồm 5 giao dịch như sau:

Tid List Of Items

1 Beer, Diaper, Baby Power, Bread, Umbrella

4 Diaper, Beer, Detergent

5 Beer, Milk, Coca-cola

Bảng 2.2 Dữ liệu cho mẫu cho thuật toán Apriori

Trang 39

Bước 4:

Items support

Beer, Diaper, Baby Powder 0

Diaper, Milk, Baby Powder 0

Beer, Milk, Baby Powder 0

Bảng 2.7 Bảng dữ liệu C 3

Bước 5: Với mỗi itemset ta có dữ liệu như sau

itemsets Support(A,B) Support(A)

Bảng 2.8 Bảng dữ liệu thường xuyên

2.3.1.5 Bài toán khai thác luật kết hợp (Asociation Rules)

Mục đích của luật kết hợp là tìm ra sự kết hợp (association) hay tương quan

(correlation) giữa các items Những luật kết hợp này có dạng X -> Y.

Để thu được các luật kết hợp, ta thường áp dụng 2 tiêu chí: minimum support

(minsup) và minimum confidence (minconf).

Minimum support và minimum confidence gọi là các giá trị ngưỡng (threshold) và

phải xác định trước khi sinh các luật kết hợp.

C3: minsup = 40%

L3 = Emty (Stop)

Trang 40

Tiếp tục khai thác các frequent itemset ở bài toán trên, ta tìm những itemsets thỏađiều kiện minsup và minconf.

Với hai giá trị ngưỡng đặt ra là: minsup = 40% và minconf = 70%

itemsets Support(A,B) Support(A) Confidence

Bảng 2.9 Kết quả khai thác luật kết hợp

Kết quả ta có các luật kết hợp sau:

R1: Beer => Diaper (support =60%, confidence = 75%)

R2: Diaper => Beer (support =60%, confidence = 75%)

R3: Milk => Beer (support =40%, confidence = 100%)

R4: Baby Powder => Diaper (support =40%, confidence = 100%)

2.3.2 Hệ thống khuyến nghị

2.3.2.1 Tổng quan về các hệ thống khuyến nghị hiện nay

Hệ thống khuyến nghị là một trong nhiều giải pháp được vạch ra để đáp ứng ngàycàng tốt hơn nhu cầu của người sử dụng

Có rất nhiều cách thức để xây dựng hệ thống này Bằng nhiều thuật toán ta có thểtận dụng các mối quan hệ giữa các nguồn dữ liệu có sẵn, dữ liệu lịch sử để tiến hànhkhai thác, trích xuất dưới dạng ontology hay trích xuất ra các dạng lưu trữ khác theo

Ngày đăng: 22/05/2014, 12:32

HÌNH ẢNH LIÊN QUAN

Hình 3.42. Sơ đồ tuần tự của use case người dùng cập nhật thông tin tài khoản - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.42. Sơ đồ tuần tự của use case người dùng cập nhật thông tin tài khoản (Trang 74)
Hình 3.55. Sơ đồ hoạt động của use case quản lý giỏ hàng - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.55. Sơ đồ hoạt động của use case quản lý giỏ hàng (Trang 81)
Hình 3.72. Sơ đồ tuần tự của use case quản lý nhóm sản phẩm - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.72. Sơ đồ tuần tự của use case quản lý nhóm sản phẩm (Trang 91)
Hình 3.78. Sơ đồ tuần tự của use case quản lý thuộc tính sản phẩm - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.78. Sơ đồ tuần tự của use case quản lý thuộc tính sản phẩm (Trang 95)
Hình 3.84. Sơ đồ tuần tự của use case quản lý loại sản phẩm - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.84. Sơ đồ tuần tự của use case quản lý loại sản phẩm (Trang 98)
Hình 3.89. Sơ đồ hoạt động của use case quản lý sản phẩm - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.89. Sơ đồ hoạt động của use case quản lý sản phẩm (Trang 102)
Hình 3.90. Sơ đồ tuần tự của use case quản lý sản phẩm - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.90. Sơ đồ tuần tự của use case quản lý sản phẩm (Trang 103)
Hình 3.97. Sơ đồ hoạt động của use case quản lý khách hàng/User - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.97. Sơ đồ hoạt động của use case quản lý khách hàng/User (Trang 110)
Hình 3.98. Sơ đồ tuần tự của use case quản lý khách hàng/User - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.98. Sơ đồ tuần tự của use case quản lý khách hàng/User (Trang 111)
Hình 3.111. Sơ đồ hoạt động của use case quản lý tin tức - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.111. Sơ đồ hoạt động của use case quản lý tin tức (Trang 120)
Hình 3.112. Sơ đồ tuần tự use case quản lý tin tức - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.112. Sơ đồ tuần tự use case quản lý tin tức (Trang 121)
Hình 3.114. Giao diện trang cập nhật tin tức - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 3.114. Giao diện trang cập nhật tin tức (Trang 123)
Hình 5.118. Giao diện trang chủ - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 5.118. Giao diện trang chủ (Trang 133)
Hình 5.139. Kết quả thử nghiệm hệ thống khuyến nghị theo từng đơn hàng - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 5.139. Kết quả thử nghiệm hệ thống khuyến nghị theo từng đơn hàng (Trang 148)
Hình 5.141. Kết quả khuyến nghị dựa trên toàn bộ lịch sử mua hàng của khách hàng - Xây dựng website bán hàng kết hợp hệ thống khuyến nghị cho người dùng
Hình 5.141. Kết quả khuyến nghị dựa trên toàn bộ lịch sử mua hàng của khách hàng (Trang 149)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w