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.
Trang 1Trong 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 websitekhá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ácdoanh 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
Trang 2LỜ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ấpcho 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àiliệ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ạytrong 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ềntả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ựchiệ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)
Trang 3NHẬ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
Trang 4NHẬ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
Trang 5MỤC LỤC
Lời mở đầu:
Trang 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 13
2.2.1 Khai thác dữ liệu (Data Minning) 13
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 23
3.1 Đặc tả bài toán 23
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 34
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
Trang 65.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
Trang 7DANH 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” 32
Bảng 3.4: Bảng “TinHoatDong” 32
Bảng 3.5: Bảng “OrderLine” 33
Bảng 3.6: Bảng “LienHe” 33
Bảng 3.7: Bảng “NewMinning” 33
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
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
Trang 8DANH 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
Trang 9Hình 5.3: Cấu hình thư mục ảo 93
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
Trang 10KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT
CSDL: Cơ sở dữ liệuMVC: Model – View – ControllerHTTP: Hypertext Transfer ProtocolHTML: HyperText Markup LanguageURL: Uniform Resource LocatorKTDL: Khai thác dữ liệu
IIS: Internet Information Services
Trang 12Chươ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ảixâ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ủawebsite 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ứuthô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ượntrước sách Theo xu hướng hiện nay, các nhà phát triển ứng dụng web cũng đã đẩymạnh quan tâm đến người dùng hơn bằng cách sử dụng hệ thống khuyến nghị chongườ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ệctì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ựachọ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ựngwebsite 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ớithiệ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ữngquyể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 đượcnhững quyển sách thích hợp
Trang 13Chương 2: CƠ SỞ LÝ THUYẾT2.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ìnhhướng đối tượng (Object Oriented Programming) cho phép các lập trình viên làm việcvớ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ứcriê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ìnhMVC(Model – View - Controller) [2]
MVC được phát minh tại Xerox vào những năm 70 bởi TrygveReenskaug Cácgiấ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 đốitượ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 đốitượ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ácphản hồi lại cho người sử dụng hoặc các đối tượng khác
Trang 14Hì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ứcnă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ụngthà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àmviệc đồng thời với nhau MVC còn có giúp chúng ta thay đổi trong 1 phần của ứngdụ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ầntrong 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àngthay đổ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ứclưu trữ trong model cũng như xử lý của controller mà các thành phần khác vẫn đượcgiữ 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 SwingComponents 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
Trang 15trong các nền tảng MVC được nhiều nhà phát triển sử dụng hệ nay để xây dựngwebsite đó 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 ứngdụ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ảngASP.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áttriể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ạilị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ảngASP.NET được liệt kê ở bảng sau đây [11]:
ActionView incoming request
Trang 16Thời kỳ Công nghệ Điểm mạnh Điểm yếu
Interface (CGI)
Đơn giảnLinh hoạtTùy chọn duy nhất trong thời gian này
Chạy ngoài WebServer,cần nhiềutài nguyên (Cấpphát các tiến trìnhriêng lẻ trên HĐHcho 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 quanhnhưng câu truy vấn
SQL và templatecho các kết quả cóđịnh dạng
Xu hướng lập trình hướng đối tượng
Làm nặng băng
không được đẹpKhông thể test
Trang 17Hình 2.3: Kiến trúc của ASP.NET WebformVới ASP.NET Webform, Microsoft đã che giấu đi cả 2 HTTP (không trạngthá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áchdù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 độngphí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ếtnố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 quaWeb
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àmcho 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ạngnà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ềunà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
Trang 18mớ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ôngtheo 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ànhmộ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ỏ ứngdụng thành ba phần, mỗi phần đóng vai trò khác nhau nhưng ảnh hưởng lẫn nhau, baphầ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 đốitượ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 Producttrong 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 giaodiện Thông thường nhưng thông tin mà view có được là lấy từ thành phần model Ví
Trang 19dụ, đố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ựachọ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
- 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áctrạ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ủachú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ếtcá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ủamình Những điểm khác nhau giữa ASP.NET sẽ được liệt kê sau đây [2]:
Trang 20Tính năng ASP.NET ASP.NET MVC
Các sự kiện được điều khiểnbởi controllers, các controlkhô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 SQLclass để tạo mô hình truy cậpđối tượng dữ liệu
các lớp truy cập dữ liệu, hiểnthị, điều khiển các controls
Debug có thể sử dụng các unittest kiểm tra các phương thứctrong controllers
Tốc độ tải Tốc độ tải chậm trong khi
trang web có nhiều cáccontrols vì viewstate quá lớn
Tải nhanh hơn do không sửdụng viewstate để quản lý cáccontrol 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ớijavascript vì các đối tượngkhông do server quản lý
Địa chỉ URL Cấu trúc địa chỉ URL có dạng
<filename>.aspx?&<các thamsố>
Cấu trúc địa chỉ rõ ràngtheodạ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áccontrollers [2] Chúng ta có thể dễ dàng định ra các quy luật ánh xạ và cài đặtASP.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 URLthà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.NETMVC được gọi là định tuyến URL (URL Routing) URL routing này sẽ chỉ định yêu
Trang 21cầ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() đượcgọ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 nhaubởi dấu “/” Phân đoạn thứ nhất chứa controllers, phân đoạn thứ hai chứa ActionMethod 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:
* Á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ủamộ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ùngcấ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.NETWebform 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ủamột Action Method “Edit” của lớp QLSachController
Trang 22ASP.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 tatruyề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 haykhông Nếu có, nó sẽ tự động chuyển nó vào tham số mà chúng ta đặt cho ActionMethod của chúng ta.
Ngoài ra, ASP.NET MVC còn cho chúng ta sử dụng URL Routing để truyềntham số (chẳng hạn thay vì “QLSach/Edit?id=1” chúng ta có thể sử dụng
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]:
Trang 23sult hay hay một View có
dạng UserControll
ReturnPartialView(“PartialViewName”,ModelObject);
RedirectToRout
eResult
Trả về một Action Method mới
ReturnRedirectToAction(“OrderAction”,”SomeController”);
Return RedirectToRoute(“RouteName”);RedirectResult Chuyển đến một địa chỉ
FileResult Truyền dữ liệu nhị
phân trực tiếp đến trìnhduyệt
ReturnFile(@”C:\report.pdf”,”application/pdf”);
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 yhọ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
Trang 24Khai thác dữ liệu – Data mining là tiến trình khám phá tri thức tiềm ẩn trongcá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ặccá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ứ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
Các tên gọi khác
+ Khám phá tri thức trong các cơ sở dữ liệu (Knowledge discovery indatabases)
+ 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ứcBướ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ưaqua xử lý hoặc dữ liệu bán cấu trúc như HTML…Sau khi thu thập đầy đủ dữ liệu tathự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 quantrọ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 tacầ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ệckhai 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, …)
Trang 25Dự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 khaithá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ó S x và
y
S trong đó x Smin và ySmin S(AB) Smin [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
I={I }/ i thuộc [1,n]
Trang 26Cho 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]>Smin 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
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:
Trang 27Xét BCD có BC, CD, BD đều thuộc luachon2
ungvien3 +=BCD Xét ACD có AC, AD, CD có AC không thuộc luachon2ungvien3 ={ABD,BCD}
Xác định các luật và độ tin cậy của luật
Với ABD ta có ABD; ADB; BDA; ABD; BAD; DAB; Xét luật ABD có C(ABD)=4/5
……
ii Giải thuật FP-Growth [4]
+ Dữ liệu đầu vào: các tập dữ liệu cho trước
+ Dữ liệu đầu ra: tạo ra một cây chứa các tập thường xuyên
Các bước để xây dựng một FP-Tree dựa vào giải thuật FP-Growth
Bước 1: Kiểm tra tập dữ liệu, tìm frequent 1-itemsets
Bước 2: Sắp thứ tự frequent 1-itemsets theo sự giảm dần của support count(frequency, tần số xuất hiện)
Bước 3: Kiểm tra tập dữ liệu, tạo FP-tree
- Tạo root của FP-tree, được gán nhãn “null” {}
- Mỗi giao dịch tương ứng một nhánh của FP-tree
Trang 28- Mỗi node trên một nhánh tương ứng một item của giao dịch.
- Các item của một giao dịch được sắp theo giảm dần
- Mỗi node kết hợp với support count của item tương ứng
- Các giao dịch có chung items tạo thành các nhánh có prefix chung
Giải thuật
Tạo FP-Tree:
Tạo cây với gốc là null ~ TR
min )
( / } {I i S I i S
Xếp Q giảm dần theo S
Với từng giao tác Tj trong T {
Cho (TMP) = (TR.gốc) Cho i=1 đến Q.kích thước
Trang 29Lưu lại vào tập Pre+=Prefix(Ii)
Với điều kiện S(Prefix(Ii)) Smin}
Ta có ví dụ về giải thuật FP- Growth như sau:
Hình 2.7: Ví dụ về cây FP-Tree
2.2.3 Khai thác luật kết hợp
Khái niệm: Từ tập phổ biến có thể tạo ra các luật kết hợp giữa các giá trị
thuộc tính nhằm phản ánh khả năng xuất hiện đồng thời các giá trị thuộc tính trong tập
đối tượng Một luật kết hợp X Y phản ánh sự xuất hiện của tập X dẫn đến sự xuất hiện đồng thời tập Y [1] Trong CSDL bán hàng một luật kết hợp tiêu biểu như sau:
”Có 67% khách hàng mua bia 333, rượu Nàng Hương thì mua bánh tôm Cầu Tre”
Luật kết hợp giúp các nhà hoạch định hiểu rõ xu thế bán hàng, tâm lý kháchhàng… từ đó đưa ra các chiến lược bố trí mặt hàng, kinh doanh tiếp thị, tồn kho…
Trong lĩnh vực Data Mining, mục đích của luật kết hợp (Association Rule AR) là tìm ra các mối quan hệ giữa các đối tượng trong khối lượng lớn dữ liệu Nộidung cơ bản của luật kết hợp được tóm tắt như dưới đây
-Cho cơ sở dữ liệu gồm các giao dịch T là tập các giao dịch t1, t2, …, tn
T = {t1, t2, …, tn} 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 = {i1, i2, …, im} Một itemset gồm k items gọi là k-itemset
Trang 30Mụ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.
Trong Basket Analysis, luật kết hợpX Y có thể hiểu rằng những người mua
các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y (X và Y gọi là
Độ hỗ trợ (Support) được tính bằng công thức (1) của luật kết hợpX Y là tần
suất của giao dịch chứa tất cả các items trong cả hai tập X và Y Ví dụ, support của luật
Y
X là 5% có nghĩa là 5% các giao dịch X và Y được mua cùng nhau.
Công thức để tính support của luậtX Y như sau:
) 1 ( ) (
) (
) (
N
Y X n Y X P Y X
Trong đó: N là tổng số giao dịch.
Độ tin cậy (Confidence) của luật kết hợpX 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 80% khách
hàng mua Apple cũng mua Banana
Công thức để tính độ tin cậy (2) của luật kết hợpX Y là xác suất có điều kiện
Y khi đã biết X như sau :
) 2 ( ) (
) (
) ( ) (
N x
Y X n Y X P Y X
Trong đó: n(X) là số giao dịch chứa X
Ví d : xét c s d li u kh o sát ti n nghi s d ng các h gia ình nh ơ sở dữ liệu khảo sát tiện nghi sử dụng ở các hộ gia đình như ở dữ liệu khảo sát tiện nghi sử dụng ở các hộ gia đình như ữ liệu khảo sát tiện nghi sử dụng ở các hộ gia đình như ệu khảo sát tiện nghi sử dụng ở các hộ gia đình như ảo sát tiện nghi sử dụng ở các hộ gia đình như ệu khảo sát tiện nghi sử dụng ở các hộ gia đình như ử dụng ở các hộ gia đình như ở dữ liệu khảo sát tiện nghi sử dụng ở các hộ gia đình như ộ gia đình như đình như ư sau:
Trang 316 Tivi, Tủ lạnh, Máy giặt
7 Tivi, Tủ lạnh, Máy Vi tính
8 Tivi, Tủ lạnh, Máy giặt, Máy lạnh, Máy Vi tínhBảng 2.4: Bảng minh họa khai thác luật kết hợp
Tivi Máy vi tính [50%, 57%] hay sử dụng:Tivi sử dụng: Máy vi tính
[50%, 57%] Nghĩa là: “57% hộ gia đình sử dụng Tivi thì cũng sử dụng Máy vi tính.
Tivi và Máy vi tính xuất hiện chung trong 50% dòng dữ liệu”
2.2.4 Hệ thống khuyến nghị người dùng dựa trên luật kết hợp
* Khái niệm về hệ thống khuyến nghị
Hệ thống khuyến nghị người dùng là một hệ thống thông minh cung cấp các gợi
ý cho người dùng về một sản phẩm dịch vụ nào đó trên Internet Những sự gợi ý nàygiúp cho người dùng có thể đưa ra quyết định là sẽ chọn sản phẩm nào, chẳng hạn nhưsách nào mà mình muốn mượn, tin tức nào muốn xem, laptop nào muốn mua Hệthống được một số ứng dụng nổi tiếng sử dụng như: hệ thống khuyến nghị sản phẩmcủa Amazon.com, hệ thống khuyến nghị sách của Vinabook.com…Hệ thống này đónggóp cho các nhà phát triển ứng dụng nhiều lợi ích như: giúp người dùng chọn lọc đượcmột sản phẩm thích hợp trong một dữ liệu lớn và nó cũng đã được ứng dụng rỗng rãitrong thương mại điện tử
Hầu hết các bài toán khuyến nghị được coi là những bài toán ước lượng trướchạng (Rating) nhưng sản phẩm (sách, nhạc…) mà người dùng chưa biết trước Việcước lượng trước này dựa trên những lựa chọn của những người dùng trước Những sảnphẩm có hạng ước lượng cao nhất sẽ được dùng để khuyến nghị
Dưới đây là một số chức năng của hệ thống khuyến nghị người dùng:
+ Tăng số lượng các mặt hàng bán ra cho các hệ thống thương mại điện tử: Đây
là một chức năng quan trọng đặc biệt đối với các hệ thống thương mại điện tử Thay vìngười dùng chỉ mua một sản phẩm mà mình cần thì hệ thống sẽ khuyến nghị cho họnhững sản phẩm mà họ sẽ quan tâm, từ đó họ có thể quyết định mua thêm sản phẩm đócho mình Với lợi ích như thế hệ thống khuyến nghị người dùng có thể giúp nâng cao
số lượng mặt hàng bán ra nhằm làm tăng lợi nhuận cho hệ thống thương mại điện tử
+ Bán các mặt hàng đa dạng hơn trên hệ thống thương mại điện tử: Hầu hết các
hệ thống thương mại đều các mặt hàng rất đa dạng và phong phú Khi nắm bắt đượcnhu cầu của người dùng, hệ thống khuyến nghị sẽ mang đến sự đa dạng trong sự lựachọn hàng hóa
Trang 32+ Tăng sự hài lòng cho người dùng: Hệ thống khuyến nghị có vai trò hiểu đượcnhững nhu cầu của người dùng, từ đó gợi ý cho họ những gì họ cần Vì vậy, hệ thốngkhuyến nghị người dùng có thể làm tăng sự hài lòng cho người dùng.
+ Tăng độ tin cậy, độ trung thực của người dùng: Khi hệ thống đưa ra nhữngkhuyến nghị được người dùng lựa chọn và họ hài lòng với sự lựa chọn này thì lòng tincủa họ vào hệ thống theo đó cũng tăng lên Điều quan trọng trong hệ thống khuyếnnghị người dùng là nó hoạt động dựa trên những xếp hạng thật từ chính bản thân ngườidùng trong quá khứ Vì thế, họ càng tin tưởng vào hệ thống hơn, đưa ra những đánhgiá trung thực cho sản phẩm, hệ thống sẽ mang lại cho người dùng những gợi ý chínhxác hơn, phù hợp với nhu cầu cũng như sở thích của họ
* Hệ thống khuyến nghị dựa trên luật kết hợp
Hệ thống khuyến nghị dựa trên luật kết hợp là một hệ thống cung cấp cho ngườidùng nhiều sự lựa chọn theo sở thích hoặc theo dấu vết của người dùng trước để lại
Nó liệt kê một danh sách những dữ liệu có thể người dùng này sẽ quan tâm để giúp họ
có thể có một sự lựa chọn tốt hơn Hệ thống khuyến nghị người dùng dựa trên luật kếthợp là một hệ thống sử dụng kỹ thuật khai thác dữ liệu dựa vào luật kết hợp, nó sửdụng một tập dữ liệu lịch sử và tạo ra một tập các luật với độ tin cậy (Confident) và độ
hỗ trợ (Support) của chúng Tuy nhiên, để có thể khuyến nghị được cho người dùng thì
ta còn phải lựa chọn từ các luật những có độ tin cậy cao nhất trong tập các luật
Trang 33Hình 2.8: Mô hình khuyến nghị dựa trên luật kết hợp
Chương 3: PHÂN TÍCH THIẾT KẾ WEBSITE THƯ VIỆN TRƯỜNG
ĐẠI HỌC TRÀ VINH3.1 Đặc tả bài toán
Bài toán đặt ra là chúng ta phải xây dựng được một website thư viện với một sốchức năng quan trọng như giới thiệu thư viện, giới thiệu sách, cho người dùng mượn
Trang 34trước sách, cho phép người dùng tìm kiếm sách mới một số tiêu chí như tìm theo tênsách, tác giả, từ khóa, thể loại sách…Ngoài ra website này còn cho người dùng xemtin tức hoạt động của thư viện Một phần quan trọng của bài toán này nữa là phải xâydựng được hệ thống khuyến nghị người dùng sử dụng kỹ thuật khai thác dữ liệu dựatrên luật kết hợp Hệ thống khuyến nghị này sử dụng lịch sử mượn sách của nhữngngười dùng trước để khai thác ra những tập luật sau đó đưa tập luật đó xử lý để tạo ramột cơ sở dữ liệu tri thức và cuối cùng là sử dụng dữ liệu này để khuyến nghị trở lạingười dùng.
Hình 3.1: Kiến trúc hệ thống website
Cấu trúc website được thiết kế như sau:
Trang 35Hình 3.2: Cấu trúc website
3.2 Phân tích use case
Website này có 2 tác nhân (Actor) tham gia: Người dùng và nhà quản trị
Một số ký hiệu:
Trang 36+ Tác nhân (Actor)
Hình 3.3: Actor+ Use case
Hình 3.4: Use case
* Actor người dùng gồm một số use case như sau:
+ Xem thông tin sách
+ Xem tin tức hoạt động của thư viện
+ Đăng nhập
+ Đăng ký
+ Mượn trước sách
+ Tìm kiếm sách
+ Liên hệ với người quản tri
* Actor người quản trị gồm một số use case như sau:
+ Quản lý sách
+ Quản lý thể loại sách
+ Quản lý tin tức
+ Quản lý người dùng
+ Quản lý liên hệ của người dùng
+ Quản lý mượn trước sách
Sơ đồ use case tổng quát như sau:
Trang 37Hình 3.5: Sơ đồ tổng quan
3.3 Phân tích lĩnh vực
Trong giai đoạn này ta tiến hành xem xét các lớp nghiệp vụ tham gia vào hệthống website Thư viện, dựa vào nhu cầu hệ thống ta xác định các lớp nghiệp vụ nhưsau:
Sách: có vai trò lưu trữ các thông tin liên quan đến sách như: nhan đềsách, giới thiệu, tóm tắt nội dung, nhà xuất bản, năm xuất bản, ảnh bìa, từ khóa, sốđịnh danh, kích thước, vị trí, số trang, người đăng
Hình 3.6: Lớp sách
Thể loại sách: đảm nhận vai trò lưu trữ tên của các loại sách
Trang 38Hình 3.7: Lớp thể loại sách
Người dùng: có vai trò lưu trữ thông tin người dùng sau khi đăng ký haysau khi người quản trị thêm vào Những thông tin đó bao gồm: tên đăng nhập, mậtkhẩu, họ tên người dùng, lớp, địa chỉ email
Trang 39Hình 3.10: Lớp liên hệ
Tin hoạt động: giữ vai trò lưu trữ hoặc truy xuất thông tin về những bảntin hoạt động của Thư viện Thông tin lưu trữ gồm có: tiêu đề tin, mô tả, nội dung,hình ảnh, người đăng, tác giả, ngày viết, ngày đăng…
Hình 3.11: Lớp tin hoạt động
Trang 40Hình 3.12: Sơ đồ lớp nghiệp vụ