Tải bản đầy đủ (.doc) (115 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.21 MB, 115 trang )

LỜI MỞ ĐẦU
Trong giai đoạn phát triển Công nghệ Thông tin như ngày hôm nay thì việc đọc
sách là vấn đề được nhiều người quan tâm. Trong trường Đại học thì việc đọc sách lại
là việc làm quan trọng hơn, vì vậy việc xây dựng một thư viện trực tuyến rất cần thiết.
Một số chức năng cơ bản của một website thư viện cần phải có như: tra cứu sách, tìm
kiếm sách, mượn trước sách…Tuy nhiên việc tìm kiếm một cuốn sách nào đó chưa thể
đáp ứng được sách đó có phù hợp với người dùng đó muốn tìm hay không. Với những
vấn đề nêu trên đã thúc đẩy tôi đến với đề tài “Xây dựng website thư viện cho trường
Đại học Trà Vinh kết hợp hệ thống khuyến nghị cho người dùng” để hướng cho các
bạn sinh viên tại trường Đại học Trà Vinh có thể chọn được sách thích hợp cho mình
nhất.
Trong khóa luận này tôi đã có sử dụng một hệ thống thông minh dùng các kỹ
thuật khai thác dữ liệu tạo ra một dữ liệu tri thức để áp dụng vào website. Đây là một
hệ thống được sử dụng rỗng rãi trên những website thương mại điện tử và các website
khác, các nhà phát triển ứng dụng web sử dụng nó để gợi ý cho khách hàng những gì
họ có thể lựa chọn sẽ thích hợp nhất. Đây cũng là một chiến lược kinh doanh của các
doanh nghiệp có áp dụng thương mại điện tử.
Sau quá trình thực hiện khóa luận thì tôi đã xây dựng thành công webite thư
viện kết hợp với hệ thống khuyến nghị người dùng. Với sự thành công này nếu hệ
thống được áp dụng vào thực tế thì nó sẽ giúp các bạn sinh viên chọn được sách phù
hợp với mình.
GVHD: ThS Nguyễn Bảo Ân SVTH: Thạch Va Rết
LỜI CẢM ƠN
Trước tiên em xin gởi lời cảm ơn đến Ban Giám Hiệu trường, thầy cô, gia đình
và bạn bè đã tạo điều kiện để em hoàn thành khóa luận này.
Cảm ơn thầy Nguyễn Bảo Ân, thầy là người trực tiếp hướng dẫn, đưa ý tưởng,
hướng giải quyết trong quá trình làm khóa luận tốt nghiệp. Ngoài ra, thầy còn cung
cấp cho em những kiến thức mà em chưa được học trên lớp cũng như cung cấp những
tài liệu cần thiết trong quá trình thực hiện khóa luận.
Cảm ơn quý thầy cô trong bộ môn Công nghệ Thông tin đã tận tình chỉ dạy
trong suốt thời gian qua. Những kiến thức mà các thầy cô truyền đạt cho em sẽ là nền


tảng để em có thể vững bước trong sự nghiệp tương lai.
Tôi xin gởi lời tri ân đến các bạn học cùng lớp và các bạn thân thiết với tôi vì đã
tận tình chia sẽ những kiến thức trong quá trình học tập cũng như trong quá trình thực
hiện khóa luận.
Con chân thành cảm ơn cha mẹ đã nuôi nấng, tạo điều kiện và luôn ủng hộ để
con thực hiện tốt khóa luận này. Con cảm ơn cha mẹ rất nhiều.
Kính chúc mọi người lời chúc sức khỏe và thành đạt.
Sinh viên thực hiện
(ký và ghi rõ họ tên)
Thạch Va Rết
GVHD: ThS Nguyễn Bảo Ân SVTH: Thạch Va Rết
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
Nguyễn Bảo Ân
GVHD: ThS Nguyễn Bảo Ân SVTH: Thạch Va Rết
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
Nguyễn Thái Sơn
GVHD: ThS Nguyễn Bảo Ân SVTH: Thạch Va Rết
MỤC LỤC

Lời mở đầu:
Trang
ix
x
Chương 1: ĐẶT VẤN ĐỀ 1
Chương 2: CƠ SỞ LÝ THUYẾT 2
2.1. Tìm hiểu mô hình MVC (Model – View - Controller) 2
2.1.1. Xu t xấ ứ 2
2.1.2. Ki n trúc c a mô hình MVCế ủ 2
2.1.3. c i m c a mô hình MVCĐặ để ủ 3
2.1.4. Mô hình MVC trên ASP.NET 4
2.1.5. Nh c i m c a ASP.NETượ để ủ 6
2.1.6. Khái quát các th nh ph n c a ASP.NET MVCà ầ ủ 7
2.1.7. L i ích c a mô hình ASP.NET MVCợ ủ 8
2.1.8. So sánh gi a ASP.NET v ASP.NET MVCữ à 8
2.1.9. Tìm hi u v nh tuy n URLể ềđị ế 9
2.2. Hệ thống khuyến nghị người dùng 12
2.2.1. Khai thác d li u (Data Minning)ữ ệ 12
2.2.2. B i toán khai thác t p th ng xuyênà ậ ườ 14
2.2.3. Khai thác lu t k t h pậ ế ợ 18
Chương 3: PHÂN TÍCH THIẾT KẾ WEBSITE THƯ VIỆN TRƯỜNG ĐẠI
HỌC TRÀ VINH 22
3.1. Đặc tả bài toán 22
3.2. Phân tích use case 24
3.3. Phân tích lĩnh vực 26
3.4. Hiện thực hóa các use case 33
Chương 4: HỆ THỐNG KHUYẾN NGHỊ NGƯỜI DÙNG 84
4.1. Giới thiệu kiến trúc tổng quan 84
4.2. Tiền xử lý 85
4.3. Khai thác 85

4.4. Hậu xử lý 86
4.5. Khuyến nghị 86
Chương 5: CÀI ĐẶT VÀ KẾT QUẢ 91
5.1. Cài đặt 91
5.1.1. Yêu c u h th ngầ ệ ố 91
5.1.2. H ng d n c i tướ ẫ à đặ 91
5.2. Kết quả thử nghiệm 94
5.2.1. Các ch c n ng c a th vi nứ ă ủ ư ệ 94
5.2.2. K t qu khuy n nghế ả ế ị 100
Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 102
6.1. Kết luận 102
6.1.1. K t qu t cế ảđạ đượ 102
6.1.2. H n chạ ế 102
6.2. Hướng phát triển 103
DANH MỤC TÀI LIỆU THAM KHẢO 104
GVHD: ThS Nguyễn Bảo Ân SVTH: Thạch Va Rết
DANH MỤC CÁC BẢNG
Bảng 2.1: Quá trình phát triển của ASP.NET 5
Bảng 2.2: So sánh giữa ASP.NET Webform và ASP.NET MVC 9
Bảng 2.3: Các loại Action Result 12
Bảng 2.4: Bảng minh họa khai thác luật kết hợp 20
Bảng 3.1: Bảng “Sach” 31
Bảng 3.2: Bảng “TheLoai” 31
Bảng 3.3: Bảng “User” 31
Bảng 3.4: Bảng “TinHoatDong” 32
Bảng 3.5: Bảng “OrderLine” 32
Bảng 3.6: Bảng “LienHe” 32
Bảng 3.7: Bảng “NewMinning” 32
Bảng 3.8: Use case đăng nhập 36
Bảng 3.9: Use case đăng ký thành viên 39

Bảng 3.10: Use case mượn trước sách 43
Bảng 3.11: Use case xem thông tin sách 46
Bảng 3.12: Use case xem tin tức 50
Bảng 3.13: Use case tìm kiếm 53
Bảng 3.14: Use case gửi liên hệ 56
Bảng 3.15: Use case quản lý sách 62
GVHD: ThS Nguyễn Bảo Ân SVTH: Thạch Va Rết
Bảng 3.16: Use case quản lý thể loại sách 66
Bảng 3.17: Use case quản lý người dùng 71
Bảng 3.18: Use case quản lý tin tức 77
Bảng 3.19: Use case quản lý liên hệ 80
Bảng 3.20: Use case quản lý mượn trước sách 83
Bảng 4.1: Ví dụ về Transaction Database 85
DANH MỤC CÁC HÌNH
Hình 2.1: Kiến trúc mô hình MVC 3
Hình 2.2: Mô hình MVC trên ASP.NET 4
Hình 2.3: Kiến trúc của ASP.NET Webform 6
Hình 2.4: Minh họa mô hình ASP.NET MVC 7
Hình 2.5: Mô hình khám phá tri thức 13
Hình 2.6: Quá trình khai phá tri thức trong kinh doanh 14
Hình 2.7: Ví dụ về cây FP-Tree 18
Hình 2.8: Mô hình khuyến nghị dựa trên luật kết hợp 22
Hình 3.1: Kiến trúc hệ thống website 23
Hình 3.2: Cấu trúc website 24
Hình 3.3: Actor 25
Hình 3.4: Use case 25
Hình 3.5: Sơ đồ tổng quan 26
Hình 3.6: Lớp sách 26
Hình 3.7: Lớp thể loại sách 27
Hình 3.8: Lớp người dùng 27

Hình 3.9: Lớp đặt sách 27
Hình 3.10: Lớp liên hệ 28
Hình 3.11: Lớp tin hoạt động 28
Hình 3.12: Sơ đồ lớp nghiệp vụ 29
Hình 3.13: Sơ đồ cơ sở dữ liệu quan hệ 30
Hình 4.1: Kiến trúc tổng quan của hệ thống khuyến nghị 84
Hình 4.2: Mô tả quá trình khai thác dữ liệu trong hệ thống khuyến nghị 85
Hình 4.3: Ví dụ về dữ liệu chứa các luật 87
Hình 4.4: Dữ liệu sau khi đã chọn 87
Hình 4.5: Sơ đồ hành động 88
Hình 4.6: Sơ đồ tuần tự 88
Hình 4.7: Kết xuất dữ liệu 89
Hình 4.8: Kết quả khyến nghị 90
Hình 5.1: Tạo mới một thư mục ảo (Virtual Directory) 92
Hình 5.2: Chọn thư mục chứa website 92
Hình 5.3: Cấu hình thư mục ảo 93
GVHD: ThS Nguyễn Bảo Ân SVTH: Thạch Va Rết
Hình 5.4: Cấu hình Extension Mapping 93
Hình 5.5: Nhập thông tin đăng nhập 94
Hình 5.6: Đăng nhập thành công 94
Hình 5.7: Giao diện trang chủ 95
Hình 5.8: Đăng ký thành viên 96
Hình 5.9: Chức năng liên hệ 97
Hình 5.10: Gửi liên hệ thành công 97
Hình 5.11: Giao diện mượn trước sách 98
Hình 5.12: Giao diện tìm kiếm sách 98
Hình 5.13: Giao diện hiển thị kết quả tìm kiếm 99
Hình 5.14: Giao diện quản lý sách 99
Hình 5.15: Minh họa dữ liệu sau khi khai thác 100
Hình 5.16: Kết quả khuyến nghị 101

KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT
CSDL: Cơ sở dữ liệu
MVC: Model – View – Controller
HTTP: Hypertext Transfer Protocol
HTML: HyperText Markup Language
URL: Uniform Resource Locator
KTDL: Khai thác dữ liệu
GVHD: ThS Nguyễn Bảo Ân SVTH: Thạch Va Rết
IIS: Internet Information Services
GVHD: ThS Nguyễn Bảo Ân SVTH: Thạch Va Rết

GVHD: ThS Nguyễn Bảo Ân SVTH: Thạch Va Rết
Chương 1: ĐẶT VẤN ĐỀ
Để đảm bảo cho việc đọc sách cho các bạn sinh viên được tốt hơn thì việc phải
xây dựng một website thư viện trực tuyến rất đáng được quan tâm. Hiện nay, trường
Đại học Trà Vinh đã xây dựng cho mình thư viện trực tuyến. Nhiệm vụ chính của
website này là cung cấp cho bạn đọc nhiều sự lựa chọn về sách, tìm kiếm, tra cứu
thông tin sách đồng thời cũng giới thiệu vài nét về thư viện và cho phép bạn đọc mượn
trước sách. Theo xu hướng hiện nay, các nhà phát triển ứng dụng web cũng đã đẩy
mạnh quan tâm đến người dùng hơn bằng cách sử dụng hệ thống khuyến nghị cho
người dùng chọn những sản phẩm phù hợp với sở thích của mình hơn. Hơn nữa, việc
tìm kiếm hoặc tra cứa sách của các bạn sinh viên trên website chưa đủ để các bạn lựa
chọn được cuốn sách phù hợp. Do vậy, tôi cũng đã áp dụng hệ thống này để xây dựng
website cho thư viện trường Đại học Trà Vinh sử dụng mô hình ASP.NET MVC, đây
là một mô hình tương đối tốt được Microsoft xây dựng ra nhằm giúp cho những nhà
phát triển web phát triển tốt ứng dụng của mình.
Hệ thống được xây dựng không chỉ là một website giới thiệu thư viện, giới
thiệu sách mà còn đóng góp như một hệ thống tư vấn cho các bạn sinh viên những
quyển sách nào cần thiết cho mình. Dựa vào dấu vết của những bạn đọc trước đó đã
từng mượn, từ đó giúp giảm được thời gian tìm sách và nguy cơ không chọn được

những quyển sách thích hợp.
GVHD: ThS Nguyễn Bảo Ân 1 SVTH: Thạch Va Rết
Chương 2: CƠ SỞ LÝ THUYẾT
2.1. Tìm hiểu mô hình MVC (Model – View - Controller)
2.1.1. Xuất xứ
Vào đầu những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox PARC ở
Palo Alto. Với sự ra đời của giao diện đồ họa (Graphical User Interface) và lập trình
hướng đối tượng (Object Oriented Programming) cho phép các lập trình viên làm việc
với các thành phần đồ họa như nhưng đối tượng đồ họa có thuộc tính và phương thức
riêng của nó. Tiếp đến các nhà nghiên cứu đã cho ra một kiến trúc mới đó là mô hình
MVC(Model – View - Controller) [2].
MVC được phát minh tại Xerox vào những năm 70 bởi TrygveReenskaug. Các
giấy tờ quan trọng được công bố trên MVC là “A Cookbook for Using the Model-
View-Conntroller User Interface Paradigm in Smalltalk - 80” bởi Glenn Krasner và
Stephen Pope xuất bản trong tháng 8/tháng 9 năm 1988.
2.1.2. Kiến trúc của mô hình MVC
Kiến trúc của MVC có 3 thành phần cơ bản là: Models, Views, Controllers.
Mỗi thành phần có những nhiệm vụ khác nhau. Models có trách nhiệm với toàn bộ dữ
liệu cũng như các trạng thái của một đối tượng đồ họa. Views là thể hiện của một đối
tượng đồ họa, dùng để trình diễn cho những đối tượng dữ liêu ở thành phần Models.
Thành phần cuối cùng là Controllers điều khiển việc tượng tác giữa các đối tượng đồ
họa với người sử dụng cũng như đối với các đối tượng đồ họa khác.
Khi người dùng hoặc những đối tượng khác cần thay đổi trạng thái của đối
tượng đồ họa thì nó tác động thông qua thành phần Controller của đối tượng đồ họa.
Sau đó Controller sẽ tác động đến thành phần Model để lấy dữ liệu. Một khi có sự thay
đổi nào trên Model thì nó sẽ phát thông điệp đến thành phần Controller và View để có
sự thay đổi thích hợp. Khi nhận được thông điệp từ Model thì View sẽ cập nhật lại thể
hiện của mình để đảm bảo rằng nó luôn là thể hiện trực quan chính xác của Model.
Còn Controller sau khi nhận được thông điệp của Model nó sẽ có nhưng tương tác
phản hồi lại cho người sử dụng hoặc các đối tượng khác.

GVHD: ThS Nguyễn Bảo Ân 2 SVTH: Thạch Va Rết
Hình 2.1: Kiến trúc mô hình MVC
2.1.3. Đặc điểm của mô hình MVC
Mô hình MVC có các lợi ích quan trọng như dễ bảo trì, module hóa các chức
năng, và được xây dựng nhanh chóng. Đồng thời, nó tách các tác vụ của ứng dụng
thành 3 phần riêng lẽ là Model, View Controller giúp cho việc xây dựng ứng dụng trở
nên dễ dàng hơn. Mô hình MVC cho phép các nhà thiết kế và nhà phát triển có thể làm
việc đồng thời với nhau. MVC còn có giúp chúng ta thay đổi trong 1 phần của ứng
dụng mà không ảnh hưởng đến các phần khác.
Kiến trúc MVC đã tách biệt (Decoupling) sự phụ thuộc giữa các thành phần
trong một đối tượng đồ họa, làm tăng tính linh động (Flexibility) và tính tái sử dụng
(Reusebility) của đối tượng đồ họa đó [2]. Khi đó một đối tượng đồ họa có thể dễ dàng
thay đổi giao diện bằng cách thay đổi thành phần view mà các thành phần khác như
model và controller không hề thay đổi. Tương tự chúng ta có thể thay đổi cách thức
lưu trữ trong model cũng như xử lý của controller mà các thành phần khác vẫn được
giữ nguyên.
Vì những lợi ích của mô hình MVC đem lại mà nó đã được sử dụng rất nhiều
để xây dựng các framework và các thư viện đồ họa khác nhau. Bộ thư viện Swing
Components của Java cũng được xây dựng dựa trên kiến trúc của mô hình MVC. Một
GVHD: ThS Nguyễn Bảo Ân 3 SVTH: Thạch Va Rết
trong các nền tảng MVC được nhiều nhà phát triển sử dụng hệ nay để xây dựng
website đó là ASP.NET MVC.
2.1.4. Mô hình MVC trên ASP.NET
* Tổng quan về mô hình MVC trên ASP.NET
ASP.NET MVC đã được Microsoft xây dựng nhằm vào lĩnh vực phát triển ứng
dụng Web, nó kết hợp giữa tính hiệu quả và tính nhỏ gọn của mô hình model – view –
controller(MVC) với những công nghệ hiện đại và ý tưởng mới nhất của nền tảng
ASP.NET hiện tại. Đây là một lựa chọn khác bên cạnh nền tảng Webform khi phát
triển ứng dụng web.
Hình 2.2: Mô hình MVC trên ASP.NET

* Lịch sử phát triển của ASP.NET
Để hiểu sâu hơn về nền tảng ASP.NET MVC, trước tiên chúng ta cần xem lại
lịch sử phát triển của ASP.NET theo từng năm. Quá trình phát triển của nền tảng
ASP.NET được liệt kê ở bảng sau đây [11]:
GVHD: ThS Nguyễn Bảo Ân 4 SVTH: Thạch Va Rết
ActionView incoming request
ActionRecord
ActionController
Mô hình MVC
View
Controller
Model
Thời kỳ Công nghệ Điểm mạnh Điểm yếu
Thời kỳ đầu Common Gateway
Interface (CGI)
Đơn giản
Linh hoạt
Tùy chọn duy
nhất trong thời
gian này
Chạy ngoài Web
Server,cần nhiều
tài nguyên (Cấp
phát các tiến trình
riêng lẻ trên HĐH
cho mỗi yêu cầu)
Cấp thấp
Thời kỳ tiếp theo Microsoft Internet
Database
connector

(IDC)
Chạy bên trong
web server
Chỉ xoay quanh
nhưng câu truy vấn
SQL và template
cho các kết quả có
định dạng
1996 Active Server
Pages (ASP)
Mục đích chung Diễn giải thời gian
thực Xu hướng
“spaghetti code”
2002/03 ASP.NET 1.0/1.1 Đã được biên
dịch
Giao diện có
trạng thái
Cấu trúc lớn
Xu hướng lập
trình hướng đối
tượng
Làm nặng băng
thong HTML
không được đẹp
Không thể test
2005 ASP.NET 2.0
2007 ASP.NET AJAX
2008 ASP.NET 3.5
2009 ASP.NET MVC
1.0

2010 ASP.NET MVC
2.0
2011 ASP.NET MVC
3.0
Bảng 2.1: Quá trình phát triển của ASP.NET
* ASP.NET truyền thống
ASP.NET là 1 bước nhảy vọt khi lần đầu tiên xuất hiện vào đầu năm 2002 [2]. Hình
dưới đây sẽ minh họa công nghệ ASP.NET Webform trong lần xuất hiện mới đây.
GVHD: ThS Nguyễn Bảo Ân 5 SVTH: Thạch Va Rết
Hình 2.3: Kiến trúc của ASP.NET Webform
Với ASP.NET Webform, Microsoft đã che giấu đi cả 2 HTTP (không trạng
thái) và HTML (không thân thiện với những nhà phát triển ứng dụng Web) bằng cách
dùng mô hình giao diện như một đối tượng điều khiển (control) có cấu trúc hoạt động
phía Server.
Mỗi đối tượng điều khiển (control) lưu trữ trạng thái qua các yêu cầu (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 (khi click chuột) với mã hồi đáp phía Server. Tóm lại,
Webform là môt lớp trừu tượng lớn nhằm chuyển giao diện có xử lý sự kiện thông qua
Web.
2.1.5. Nhược điểm của ASP.NET
- ViewState (trạng thái hiển thị): Sau khi lưu trữ các trạng thái qua các yêu cầu
(request) qua lại giữa client và server thường tạo ra một khối dữ liệu lớn. Điều đó làm
cho những người truy cập vào trang web phải chờ đợi trong một thời gian dài khi họ
click vào một button hoặt di chuyển đến trang nào đó. Để giải quyết được tình trạng
này các nhà lập trình thường sử dụng Ajax.
- Page life cycle (chu kỳ sống của trang web): Kĩ thuật này kết nối sự kiện từ
phía client với mã xử lý sự kiện này ở phía server là một phần của page life cycle, điều
này có thể gặp rắc rối và mỏng manh. Chỉ một số nhà lập trình viên chuyên nghiệp
GVHD: ThS Nguyễn Bảo Ân 6 SVTH: Thạch Va Rết
mới có thể thành công trong việc xử lý hệ thống đối tượng điều khiển (control) mà

không bị lỗi viewstate.
- Limited control over HTML (giới hạn kiểm soát HTML): Server control tự tạo
ra những mã HTML mà bạn không mong muốn. Mã HTML của chúng thường không
theo tiêu chuẩn web và các server control còn tạo ra các giá trị ID phức tạp và không
đoán được trước làm khó khăn trong việc sử dụng javascript.
- Untestable (kiểm chứng): Những nhà thiết kế của ASP.NET khi giới thiệu về
nền tảng này, họ đã không đoán trước được là việc kiểm thử (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 hiện nay.
2.1.6. Khái quát các thành phần của ASP.NET MVC
Như đã giới thiệu ở phần trên, nền tảng ASP.NET MVC cũng chia nhỏ ứng
dụng thành ba phần, mỗi phần đóng vai trò khác nhau nhưng ảnh hưởng lẫn nhau, ba
phần đó là models, views và controllers.
Hình 2.4: Minh họa mô hình ASP.NET MVC
- Models: Chịu trách nhiệm toàn bộ về dữ liệu cũng như trạng thái của đối
tượng đồ họa. Thông thường nó được ánh xạ thành một lớp từ một bảng trong cơ sở dữ
liệu. Ví dụ chúng ta có lớp Product được sử dụng để mô tả dữ liệu từ bảng Product
trong cơ sở dữ liệu.
- Views: Chịu trách nhiệm hiển thị thông tin cho người dùng thông qua giao
diện. Thông thường nhưng thông tin mà view có được là lấy từ thành phần model. Ví
GVHD: ThS Nguyễn Bảo Ân 7 SVTH: Thạch Va Rết
dụ, đối tượng Product có một "Edit" view bao gồm các textboxes, các dropdownlist và
checkboxes để chỉnh sửa các thuộc tính của sản phẩm; có một "Display" view gồm 2
dòng, 1 cột là ProductID, dòng sau là OrderDate để xem thông tin về sản phẩm.
- Controllers: thành phần này chịu trách nhiệm điều phối toàn bộ những tác
động đối với giao diện, những thao tác trong đối tượng dữ liệu và cuối cùng là lựa
chọn một View thích hợp để hiển thị cho người dùng.
2.1.7. Lợi ích của mô hình ASP.NET MVC
- Có tính mở rộng do có thể thay thế từng thành phần một cách dễ dàng.
- Không có viewstate, làm cho ứng dụng có thể được điều khiển dễ dàng hơn.
- Hệ thống định tuyến tốt.

- Hỗ trợ tốt mô hình phát triển kiểm thử (TDD – Test Driven Development) cài
đặt các kiểm thử đơn vị (unit tests) tự động, xác định và kiểm tra lại các yêu cầu trước
khi bắt tay vào viết code.
- Dễ phối hợp giữa người lập trình và người thiết kế giao diện.
- Sử dụng lại những tính năng tốt của ASP.NET.
2.1.8. So sánh giữa ASP.NET và ASP.NET MVC
ASP.NET Webform mang tới một trang web mà giao diện có thể lưu trữ các
trạng thái, sử dụng viewstate và postback để tạo ra hiệu ứng của việc có trạng thái.
Điều này thích hợp với việc kéo và thả các control của Window Form, nghĩa là chúng
ta đặ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.
MVC cung cấp một cá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 để kiểm thử và bảo trì sau này, là giảm
đi sự phức tạp khó chịu và các giới hạn không đáng có.
Điều đặc biệt của ASP.NET MVC có mã nguồn mở, chúng ta có thể dễ dàng tải
mã nguồn gốc của ASP.NET MVC và có thể sửa đổi và tạo ra phiên bản riêng của
mình. Những điểm khác nhau giữa ASP.NET sẽ được liệt kê sau đây [2]:
GVHD: ThS Nguyễn Bảo Ân 8 SVTH: Thạch Va Rết
Tính năng ASP.NET ASP.NET MVC
Kiến trúc chương
trình
Kiến trúcWebformBusiness
Database
Phân chia chương trình thành
Controllers, Models, Views
Cú pháp Sử dụng cú pháp của
Webform, tất các sự kiện và
control do server quản lý
Các sự kiện được điều khiển
bởi controllers, các control

khô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 xuất dữ liệu trong
ứng dụng
Phần lớn dùng LINQ to SQL
class để tạo mô hình truy cập
đối tượng dữ liệu
Debug Debug chương trình bao gồm
các lớp truy cập dữ liệu, hiển
thị, điều khiển các controls
Debug có thể sử dụng các unit
test kiểm tra các phương thức
trong controllers
Tốc độ tải Tốc độ tải chậm trong khi
trang web có nhiều các
controls vì viewstate quá lớn
Tải nhanh hơn do không sử
dụng viewstate để quản lý các
control trong trang
Tương tác với
javascript
Tương tác với javascript khó
khăn vì các controls do server
điều khiển
Tương tác dễ dàng với
javascript vì các đối tượng
không do server quản lý
Địa chỉ URL Cấu trúc địa chỉ URL có dạng
<filename>.aspx?&<các tham
số>

Cấu trúc địa chỉ rõ ràng
theodạngControllers/Action/ID
Sử dụng Routing để quản lý
URL
Bảng 2.2: So sánh giữa ASP.NET Webform và ASP.NET MVC
2.1.9. Tìm hiểu về định tuyến URL
ASP.NET MVC Framework có trang bị một bộ máy ánh xạ URL rất tuyệt vời.
Bộ máy này cung cấp các phương thức rất linh hoạt trong việc ánh xạ URL cho các
controllers [2]. Chúng ta có thể dễ dàng định ra các quy luật ánh xạ và cài đặt
ASP.NET theo những quy luật đó, xác định phải thực thi controllers nào mới phù hợp.
Nền tảng ASP.NET MVC có khả năng phân tích URL chuyển các thông số trong URL
thành các tham số gọi hàm trong các phương thức của controllers.
* Đường đi mặc định từ ASP.NET MVC URL đến các lớp Controllers.
Trình duyệt (browser) yêu cầu một địa chỉ từ controllers action trong ASP.NET
MVC được gọi là định tuyến URL (URL Routing). URL routing này sẽ chỉ định yêu
GVHD: ThS Nguyễn Bảo Ân 9 SVTH: Thạch Va Rết
cầu (request) đến một action nào đó trong controllers. URL routing sử dụng một bảng
định tuyến để điều khiển các yêu cầu. Bảng định tuyến này được tạo ra khi ứng dụng
được chạy lần đầu tiên. Bảng định tuyến này được thiết lập trong tập tin
“Global.asax”.
Khi ứng dụng được chạy lần đầu tiên thì phương thức Application_Start() được
gọi. Đồng thời phương thức này lại gọi một phương thức khác là
RegisterRoutes(RouteTable.Routes).
Định tuyến mặc định chia mỗi yêu cầu thành 3 đoạn, mỗi đoạn nằm cách nhau
bởi dấu “/”. Phân đoạn thứ nhất chứa controllers, phân đoạn thứ hai chứa Action
Method của controllers đó, phân đoạn cuối cùng là tham số đầu vào của Action.
Ví dụ, ta có địa chỉ như sau: /QLSach/Edit/1
Ta phân tích như sau:
Controller: QLSach
Action: Edit

Id: 1
Trong mọi ứng dụng ASP.NET MVC thì controllers mặc định luôn là
HomeController, Action là Index() và Id là “” (rỗng).
* Ánh xạ URL có tham số vào Acion Method trong controllers
Các lớp controllers được thực thi (Implement – thực thi từ các phương thức của
một lớp) từ một Base Controllers - nó đưa ra một tập hợp các đối tượng yêu cầu
(request) và đáp ứng (respone) có thể sẽ được sử dụng. Những đối tượng này có cùng
cấu trúc API (Application Programming Interface – giao diện lập trình ứng dụng) như
HttpRequest/HtppRespone – những đối tượng khá quen thuộc trong ASP.NET
Webform. Lợi ích của việc sử dụng các giao diện (Interface) này là có thể móc nối dễ
dàng với chúng, cho phép thực hiện việc kiểm thử “Unit Test” với các lớp controllers.
Ví dụ về cách sử dụng Request API để lấy một giá trị chuỗi truy vấn “id” của
một Action Method “Edit” của lớp QLSachController.
GVHD: ThS Nguyễn Bảo Ân 10 SVTH: Thạch Va Rết
ASP.NET MVC Framework hỗ trợ việc tự động ánh xạ các giá trị tham số từ
URL đến Action Method như một tham số của Action Method đó [2]. Nếu chúng ta
truyền cho Action Method của mình một tham số thì ASP.NET MVC Framework sẽ
xem xét các yêu cầu được gửi đến qua phương thức HTTP có giá trị nào cùng tên hay
không. Nếu có, nó sẽ tự động chuyển nó vào tham số mà chúng ta đặt cho Action
Method của chúng ta.
Ngoài ra, ASP.NET MVC còn cho chúng ta sử dụng URL Routing để truyền
tham số (chẳng hạn thay vì “QLSach/Edit?id=1” chúng ta có thể sử dụng
“QLSach/Edit/1”).
Quy luật ánh xạ mặc định “Default” sẽ được khai báo mặc định khi chúng ta tạo
một ứng dụng Web ASP.NET MVC đầu tiên, nó có định dạng như sau: “[controller]/
[action]/[id]”. Có nghĩa là nếu bất kỳ đường dẫn URL nào được yêu cầu đến thì hậu tố
sau cùng của nó (sau tên của controller và tên của Action Method) thì mặc định nó
được xem là một tham số có tên là “id”. Như vậy nó có thể được truyền tự động vào
Action Method của chúng ta như một tham số đầu vào.
* Các loại Action Result trong ASP.NET MVC [2]:

Tên Action
Result
Mục đích Ví dụ
ViewResult Hiển thị một View mới
hoặc trang mặc định
Return View();
Return View(“ViewName”, ModelObject);
PartialViewRe Trả về một View mới Return PartialView();
GVHD: ThS Nguyễn Bảo Ân 11 SVTH: Thạch Va Rết
sult hay hay một View có
dạng UserControll
ReturnPartialView(“PartialViewName”,Mo
delObject);
RedirectToRout
eResult
Trả về một Action
Method mới
ReturnRedirectToAction(“OrderAction”,”S
omeController”);
Return RedirectToRoute(“RouteName”);
RedirectResult Chuyển đến một địa
chỉ khác
Return Redirect(“”);
ContentResult Trả về dữ liệu dạng văn
bản
ReturnContent(rssString,”application/rss+x
ml”);
FileResult Truyền dữ liệu nhị
phân trực tiếp đến trình
duyệt

ReturnFile(@”C:\report.pdf”,”application/p
df”);
JsonResult Chuyển một đối tượng
sang kiểu Json và trả về
như một phản hồi
Return Json(Object);
JavaScriptResult Trả về một đoạn mã
JavaScript cần thực
hiện bởi trình duyệt sử
dụng Ajax
Return JavaScript("$('#myelem').hide();");
HttpUnauthori
zedResult
Thiết lập trạng thái
phản hồi HTTP mã 401
Return new HttpUnauthorizedResult();
EmptyResult Không trả về gì cả Return new EmptyResult();
Bảng 2.3: Các loại Action Result
2.2. Hệ thống khuyến nghị người dùng
2.2.1. Khai thác dữ liệu (Data Minning)
Khái quát chung về khai thác dữ liệu
KTDL là một ngành khoa học sử dụng các kỹ thuật thông minh để khám phá
những tri thức hữu ích cho con người. Hiện nay có rất nhiều lĩnh vực khác nhau sử
dụng khai thác dữ liệu và bước đầu đạt được một số thành công nhất định như ngành y
học, kinh doanh, khoa học, hóa học…Tất cả những kết quả đó cho thấy khai thác dữ
liệu có một tiềm năng rất lớn cho việc phát triển nền kinh tế.
Khái niệm
GVHD: ThS Nguyễn Bảo Ân 12 SVTH: Thạch Va Rết
Khai thác dữ liệu – Data mining là tiến trình khám phá tri thức tiềm ẩn trong
các cơ sở dữ liệu. Cụ thể hơn, đó là tiến trình trích lọc, sản sinh những tri thức hoặc

các mẫu tiềm ẩn, chưa biết những hữu ích từ các CSDL lớn [1].
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ức
mang 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.
Các tên gọi khác
+ Khám phá tri thức trong các cơ sở dữ liệu (Knowledge discovery in
databases).
+ Trích rút tri thức (Knowledge extraction).
+ Phân tích mẫu/dữ liệu (Data/pattern analysis).
Quá trình khám phá trí thức
Hình 2.5: Mô hình khám phá tri thức
Bước đầu tiên của quá trình khai thác dữ liệu là thu thập những dữ liệu thô chưa
qua xử lý hoặc dữ liệu bán cấu trúc như HTML…Sau khi thu thập đầy đủ dữ liệu ta
thực hiện quá trình lọc trích và biến đổi dữ liệu, quá trình đó được gọi là quá trình tiền
xử lý. Bước tiếp theo là quá trình lựa chọn những dữ liệu tri thức mang tính chất quan
trọng nhất. Những tri thức mà được chọn phải phù hợp với phương diện mà chúng ta
cần khai thác.
Bước tiếp theo là chọn thuật toán khai phá dữ liệu thích hợp và thực hiện việc
khai phá dữ liệu để tìm được các mẫu (pattern) có ý nghĩa dưới dạng biểu diễn tương
ứng với các ý nghĩa đó (thường được biểu diễn dưới dạng các luật xếp loại, cây quyết
định, luật sản xuất, biểu thức hồi quy, …).
GVHD: ThS Nguyễn Bảo Ân 13 SVTH: Thạch Va Rết
Dựa vào các mẫu chúng ta đã xác định được chúng ta thực hiện việc thống kê.
Sau đó tìm ra mối quan hệ giữa những tri thức mà chúng ta đã khám phá được.
Quá trình khai phá tri thức trong kinh doanh
Hình 2.6: Quá trình khai phá tri thức trong kinh doanh
2.2.2. Bài toán khai thác tập thường xuyên
Khái niệm: là tiến trình khám phá các tập giá trị thuộc tính xuất hiện phổ biến
trong các đối tượng dữ liệu [1].
Dưới đây là hai thuật toán nổi tiếng nhất trong các thuật toán đặc trưng của khai
thác tập thường xuyên:

i. Thuật toán tăng cường (Apriori):
Phát biểu: Cho độ hỗ trợ, tin cậy tối thiểu là S
min
,C
min
. Giả sử ta có
( )
xS =Α

( )
yS =Β
trong đó
x


S
min

min)(min SABSSy <→<
[1].
Thuật toán [4]:
+ Dữ liệu đầu vào: tập các ứng viên
+ Dữ liệu đầu ra: chọn ra các luật và độ tin cậy của luật
B1: Chuẩn bị các ứng viên – độ rộng k(tổ hợp các giá trị cần xét độ hỗ trợ)
B2: Chọn các ứng viên thỏa độ hỗ trợ
B3: Chuẩn bị các ứng viên có độ rộng k+1. Đó là sự kết hợp các phần tử
trong luachon mà khả năng là thỏa độ hỗ trợ. Trở về bước 1
GVHD: ThS Nguyễn Bảo Ân 14 SVTH: Thạch Va Rết
I={I
i

}/ i thuộc [1,n]
Cho k=1, ungvien
k
=I, luachon
k
={}
Khi [(k<=n) || (ungvien
k
!={})]{
Với mọi U thuộc ungvien
k
Nếu S(U[i]>S
min
thì luachon
k
+=U[i])
Với mọi X,Y thuộc luachon
k
{
Ta có W=X hợp Y và |W| =k+1
Nếu mọi Z con W và |Z| =k
Và mọi Z cũng là con luachon
k
thì ungvien
(k+1)
+=W
}
k++
}
Để hiểu thêm về giải thuật tôi có ví dụ như sau :

Cho tập I = { A , B , C , D , E }
Cho tập các giao tác như sau:
T
1
= { A , B , C , D , E }
T
2
= {A , B , C }
T
3
= {D , C , B }
T
4
= {A , B , D}
T
5
= { D , C }
T
6
= {D , C , A , B}
T
7
= {A, B, E , D}
Xét với độ hỗ trợ tối thiểu là 0.5 ~

4 lần
Các bước thực hiện như sau:
B1:
ungvien
1

={A,B,C,D,E} , S(ungvien)={5,6,5,6,2}
luachon
1
={A:5,B:6,C:5,D:6}
Xét AB đều có A, B thuộc luachon
1
 ungvien
2
+=AB
Xét AC đều có A, C thuộc luachon
1
 ungvien
2
+=AC
………
Xét CD đều có C,D thuộc luachon
1
 ungvien
2
+=CD
 ungvien
2
={AB,AC,AD,BC,CD}
GVHD: ThS Nguyễn Bảo Ân 15 SVTH: Thạch Va Rết

×