DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TÁTSTT |Kýhiệu | Diễn giải Tiếng Việt1 HCMUTE Trường Đại học Sư Phạm Kỹ Thuật TP.HCM 2_ |QĐÐ1727 Quyết định 1727/QD-DHSPKT 3 QC Quy chế Đào tạo trình độ
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Bk CR
GF
lò
VŨ VĂN VIỆT
XÂY DỰNG VÀ PHÂN TÍCH HỆ THÓNG KHẢO SÁT
HOAT DONG GIANG DAY CUA GIẢNG VIÊN
TREN MONGODB
LUAN VAN THAC SI NGANH KHOA HOC MAY TÍNH
Mã số: 8 48 01 01
NGƯỜI HƯỚNG DAN KHOA HỌC
TS NGUYÊN GIA TUẦN ANH
Trang 2tôi thực hiện luận văn.
Tôi xin chân thành cảm ơn các thầy cô khoa Sau đại học - trường Đại học Công nghệ Thông tin đã trang bị kiến thức và tạo điều kiện cho tôi trong quá trình tôi
tham gia học tại trường.
Tôi cũng xin cảm ơn sự giúp đỡ của ban Lãnh đạo và quý thay cô đồng nghiệp
trường Đại học Sư phạm Kỹ thuật TP.HCM đã cung cấp số liệu, tài liệu cũng như
đóng góp những ý kiến quý báu cho tôi trong quá trình thực hiện Luận văn
Tôi xin chân thành cảm ơn!
TP.HCM, tháng 5 năm 2023
Học Viên
Vũ Văn Việt
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan công trình nghiên cứu này là của tôi, được hoàn thành trên cơ sở
tìm kiếm, thu thập, nghiên cứu, tổng hợp, phần lý thuyết và các phương pháp kỹthuật đã được trình bày trong các tài liệu được công bố trong nước và trên thế giới,Công trình này được thực hiện dưới sự hướng dẫn của TS Nguyễn Gia Tuan Anh.Các số liệu, kết quả được nêu trong luận văn là trung thực và chưa được ai công bố
ở bất cứ công trình nào khác Các tài liệu tham khảo đều được ghi ở cuối luận văn
Luận văn này không sao chép nguyên bản từ bất kỳ một nguồn tài liệu nào khác.
Nêu có gì sai sót, tôi xin hoàn toàn chịu trách nhiệm.
Trang 41.2 PHẠM VI NGHIÊN CỨU
1.3 NỘI DUNG VÀ MỤC TIÊU NGHIÊN CỨU -.ccc::z++:v+vc++ 91.4 PHƯƠNG PHÁP VA CÔNG CỤ 222 222E11212222112 221211 eerrrk 9
1.4.1 Phuong 77 .ẻ 9
1.4.2 Công cụ đ ain, GM cassesssceseMecessesseghessesssesseressensessssesssessvenser 10
Chương 2: CƠ SỞ LÝ THUYÉT - s22 222222222222222222222222222222222222222 e HH2.1 GIỚI THIYẾN, vgợ quợc Ả Q.0 eo 112.2 PHAN LOẠẠI - 22 222k 5EEE1551111 E111 221111211111211140211101.111.12111017111.2111 xe, 12
2.2.1 Thuật toán không cá nhân hóa (non-personalized recommendations) 12 2.2.2 Thuật toán cá nhân hóa (personalized recommendations) L2 2.2.3 Khó khăn và thách thỨC - -¿- ¿52+ 321v **EEEeEEx+keEEEexerekrkexekrersrrre 17
Chương 3: GIẢI QUYẾT BÀI TOÁN -.22:-2222222+22222222222222312222221122 22x 193.1 HỆ THONG KHẢO SÁT HOẠT ĐỘNG GIẢNG DẠY GIẢNG VIÊN 193.1.1 Phát biểu bai toán
3.1.2 Phân tích thiết kế hệ thống Khảo sát ::¿22222cz+222vvvcrz+crx 203.1.3 Mô hình CSDL hệ thống Khảo sát - -cc:cc:c55522vvvvvvrrrrrrrrrrrr 243.1.4 Mô tả tổng quan cấu trúc dữ liệu 2-22¿¿222222222222212222222112 te 24
3.1.5 Giao diện Khảo Sất - 1t 2t 211v 121212111111 11111111 1111111 re 25 3.1.6 Phân tích xây dựng CSDL giữa MongoDB va SQL server 25
3.1.7 So sánh tốc độ xử lý CSDL giữa MongoDB và SQL server 32
Trang 53.1.9 Thống kê, tổng hợp và trực quan hóa số liệu khảo sát - 373.2 XÂY DỰNG MÔ HÌNH KHAI THÁC DU LIỆU đÏ3.2.1 Dựa vào kết quả khảo sát gợi ý sinh viên đăng ký môn tự chọn 423.2.2 Dự đoán kết quả khảo sát của sinh viên - -ccccc-c-cccssc .423.2.3 Dự đoán kết quả học tập của sinh viÊn 5c 5sccscscsxsrerrrsrererrrv 433.2.4 Các quy định liên quan đến xử lý kết quả học tập của sinh viên 453.2.5 Mô hình CSDL dự đoán kết quả học tập - -.- c c.ccc.e 46
3.2.6 Dữ liệu thực nghiệm ccccccvcvvvvvvvvrvvvvvvvrvvrrvvrvrrkvrvrrvrrvrrvre 46
3.2.7 Kết quả thực nghiệm -.cccccvccvvvvvrvvrvrrvrrkrrkrrkrrkrrrrrvrrvrrvie 473.2.8 Đánh giá kết quả cc:cc 222tr tri 48Chương 4 : KET LUẬN VÀ KHUYEN NGHỊ -222¿222222cc22222xzcretrrxee 55HƯỚNG PHAT TRIỂN 2222222222 222222222111111 1222222111111 ca 56wV.100)2)08957 084707157 .‹‹3 57
Trang 6DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TÁTSTT |Kýhiệu | Diễn giải Tiếng Việt
1 HCMUTE Trường Đại học Sư Phạm Kỹ
Thuật TP.HCM
2_ |QĐÐ1727 Quyết định 1727/QD-DHSPKT
3 QC Quy chế Đào tạo trình độ Đại
học
4 QLĐT Quản lý Đào tạo
5 PDT Phong Dao tao
6 |CTĐT Chuong trinh dao tao
7 SV Sinh vién
8 | CSDL Co sở dữ liệu
9 CF Collaborative Filtering Lọc thông tin dựa trên cộng tác
10 | CBF Content-Based Filtering Lọc thông tin dựa trên nội dung
1I | MF Matrix Factorization Phân tích thừa số ma trận
12 | BMF Bias Matrix Factorization
13 | RS Recommender System Hệ Khuyến nghị
14 |U User Người dung
15 |1 Item San pham
16 | IF Information Filtering Loc thông tin
17 | MAE Mean absolute error Sai số trung bình tuyệt đối
18 | RMSE Root Mean Squared Error | Sai số trung bình bình phương
DANH MỤC CÁC BANG
Bang 3.1 So sánh thời gian thao tác dữ liệu giữa MongoDB và SQLServer
Bảng 3.2 mức độ hài lòng của sinh viên theo môn học
Bang 3.3 So sánh thuật toán lọc cộng tác trên dit liệu khảo sát
Bảng 3.4 Điểm sinh viên theo môn học
Bảng 3.5 Số liệu tỉ lệ RMSE theo ngành
Bảng 3.6 So sánh kết qua du đóan theo khóa
Trang 7DANH MỤC CÁC HÌNH VẼ ĐÒ THỊHình 1.1 Thống kê khảo sát hoạt động giảng dạy từ năm 2019 đến 2022
Hình 1.2 Thống kê kết quả học tập của sinh viên khóa 2019 đến 2022
Hình 2.1 Phân loại thuật toán gợi ý
Hình 2.2 Ma trận xếp hạng người dùng
Hình 2.3 Ma trận nội dung
Hình 2.4 Ma trận tính toán sự tương đồng giữa người ding
Hình 2.5 Ma trận tính toán sự tương đồng giữa các sản phẩm
Hình 2.6 Ma trận Phân rã
Hình 2.7 Sơ đồ gợi ý dựa theo ngữ cảnh
Hình 2.8 Mô hình kết hợp nhiều thuật toán
Hình 2.9 Diễn giải mô hình kết hợp thêm thuộc tính
Hình 3.1 Mẫu phiêu Khảo sát
Hình 3.2 Mô hình CSDL trên MongoDB
Hình 3.3 Giao diện sinh viên tham gia khảo sát
Hình 3.4 Giao diện nội dung khảo sát
Hình 3.5 So sánh về hiệu suất
Hình 3.6 Thời gian thực hiện khi Insert và Update
Hình 3.7 Performance thời gian thực hiện khi Insert Collection SurveyResult Hình 3.8 Performance thời gian thực hiện khi Update Collection SurveyResult Hình 3.9 Mô ta dung lượng lưu trữ dit liệu
Hình 3.10 Thống kê mức độ hài lòng của sinh viên theo Khoa
Hình 3.11 Giảng viên có mức độ hài lòng của sinh viên thấp theo Khoa
Hình 3.12 Thống kê mức độ hài lòng theo học hàm, học vị
Hình 3.13 Thống kê mức độ hài lòng theo năm học, học kỳ
Hình 3.14 So sánh mức độ hài lòng của sinh viên theo Khoa, năm học, học kỳ
Hình 3.15 Mô hình gợi ý sinh viên đăng ký môn học theo kết quả khảo sát
Hình 3.16 Dự đoán điểm của sinh viên theo môn học trong CTĐT
Hình 3.17 Dự đoán kết quả học tập theo từng sinh viên
Hình 3.18 Mô hình CSDL dự đoán kết quả học tập trên MongoDB
Trang 8Hình 3.20 Mô hình dự đoán kết quả học tập của sinh viên dựa trên BMF
Hình 3.21 Đồ thị so sánh Loss data train theo ngành
Hình 3.22 Đồ thị so sánh RMSE trên tập đữ liệu huấn luyện theo ngành
Hình 3.23 Biểu đồ so sánh RMSE trên tập dữ liệu TEST theo ngành
Hình 3.24 Biểu dé so sánh RMSE theo ngành, số lượng sinh viên và điểm môn họcHình 3.25 Biểu dé so sánh RMSE của thuật toán BMF và MF
Hình 3.26 So sánh RMSE theo [1]
Hình 3.27 So sánh RMSE theo [6]
Trang 9MỞ ĐÀUHiện nay Trường Đại học Sư phạm Kỹ Thuật TP.HCM đang sử dụng hệ thông quản
ly dữ liệu tập trung trên Hệ quan trị cơ Sở SQL Server 2014 Tuy nhiên do dit liệu
lớn nhiều database và các nghiệp vụ xử lý phức tạp nên hệ thống thường bị quá tảiđặc biệt vào các đợt xử lý dữ liệu và truy xuất dữ liệu nhiều như: Sinh viên đăng kýmôn học, Sinh viên Khảo sát hoạt động giảng dạy, Sinh viên nhập học, xử lý xét tốtnghiệp, xử lý học phí vì vay tôi đề xuất xây dựng chức năng Khảo sát hoạt độnggiảng dạy của giảng viên sang một hệ cơ sở dữ liệu khác, tối ưu hóa việc lưu trữ dữliệu và các thao tác xử lý dữ liệu với lý do cụ thể sau:
-_ Chức năng này thường sử dụng trong mỗi học kỳ do số lượng sinh viên Khảo sát
nhiều nên cơ sở dữ liệu phát sinh trung bình trong mỗi học kỳ khá lớn, khoảng28.000 sv tham gia khảo sát và 221.140 sinh viên lớp học phần khảo sát trên 3
tiêu chí có khoảng 20 câu hỏi nên dữ liệu phát sinh trong 1 đợt, khoảng trên 4 triệu dòng dit liệu /1 học kỳ.
- Trong các đợt Khảo sat dit liệu cần sử dụng đơn giản ít bảng đữ liệu
- Dữ liệu có thê xây dựng độc lập không cần truy xuất trực tiếp vào các hệ thống
quản lý trong trường.
- Dữ liệu không cần tính bảo mật cao so với các dữ liệu khác như điểm sinh viên,
học phí
- Không cần sự nhất quán để ưu tiên tốc độ, hiệu suất hiệu quả hơn
Bên cạnh đó mỗi học kỳ nhà trường có khoảng 1.050 sinh viên bị cảnh báo học vụ(chiếm khoảng 4% trên tổng số sinh viên) và 6% sinh viên được cấp học bỗng vìvậy việc khai thác dữ liệu và dự đoán kết quả học tập của sinh viên nhằm hỗ trợ
sinh viên có những định hướng trong việc lựa chọn đăng ký môn học, hoặc rút môn
phủ hợp với bản thân mang lại kết quả cao trong quá trình học tập tại trường
Từ cơ sở thực tiễn đó tôi chọn đề tài: “Xây dựng và phân tích hệ thống khảo sáthoạt động giảng dạy của giảng viên trên Mongodb” Mục đích của đề tài là Xâydựng webapp hệ thống Khảo sát hoạt động giảng day của giảng viên và ứng dụngphân tích đữ liệu kết hợp với kết quả học tập thực tế của sinh viên nhằm hỗ trợ sinh
Trang 10viên lựa chọn môn phù hợp, đạt kết quả cao nhất và phục vụ nhu cầu cải tiến chất
lượng giảng dạy của giảng viên tại Trường Đại học Sư phạm Kỹ thuật TP.HCM.
Nội dung trình bày luận văn “Xây dựng và phân tích hệ thống khảo sát hoạtđộng giảng dạy của giảng viên trên Mongodb” được bố cục gồm 3 chương:
Chương 1: Giới thiệu
Chương này trình bày về hiện trạng tại trường SPKT TP.HCM, các đối tượng phạm
vi và hướng nghiên cứu của luận văn.
Chương 2: Cơ sở lý thuyết
Chương này trình bày về Hệ thống gợi ý (Recommender System — RS) là dạng hệthống lọc thông tin (information filtering) dùng để dự đoán kết quả học tập của sinh
viên.
Chương 3: Giải quyết bài toán
Mô tả, xây dựng trang web khảo sát, và dự đoán kết quả học tập của sinh viên tổnghợp và xử lý các đữ liệu liên quan dùng cho phát triển hệ thống
Xây dựng CSDL khảo sát hoạt động giảng dạy của giảng viên từ đó thiết kế và xâydựng trang web hỗ trợ khảo sát dựa trên Flask python và Mongodb
Kết hợp đữ liệu kết quả học tập của sinh viên xây dựng ứng dụng dự đoán kết quả
học tập cho sinh viên.
Chương 4 - Kết luận: Trình bày kết qua đạt được của luận văn và định hướng pháttriển trong tương lai
Trang 11Chương 1: TONG QUAN1.1 GIỚI THIEU
1.2 PHẠM VI NGHIÊN CỨU
Hệ thống khảo sát, sử dụng CSDL trong hệ thống quản lý đào tạo tại trường Đại học
sư phạm kỹ thuật TPHCM Dữ liệu đã khảo sát hoạt động giảng dạy trong vòng 4
năm, từ năm 2019 đến năm 2022 với số liệu thống kê cụ thể sau
- _ Số sinh viên khóa 2019 đến năm 2022: 27.369 sinh viên-_ Tổng số lớp học phan đã khảo sát: 27.760 lớp học phần-_ Tổng số Giảng viên đã khảo sát: 1.119 giảng viên
-_ Tổng số dé liệu kết quả đã khảo sát: 12.280.320 mâu tin
Dữ liệu khảo sát được tổng hợp theo hình sau:
THỐNG KÊ KHẢO SÁT TỪ NĂM 2019 ĐẾN 2022 at
Tống số méutin én 36 sinh vien Tổng số Gling viên | Tống sốlớp học phần
12.28M '27.36K: 1119 | 27.76K
Số lượng si lên theo mức độ hài lòng
Trung bình mức độ hài lòng của sin viên theo Khoa
Hình 1.1 Thống kê khảo sát hoạt động giảng dạy từ năm 2019 đến 2022
Phần dự báo kết quả học tập: Sử dụng dữ liệu điểm của sinh viên từ năm 2019 dànhcho sinh viên các khóa 2019,2020,2021,2022 Với số liệu thống kê cụ thể sau
- _ Tổng số sinh viên: 28.060 sinh viên
- Téng số môn học sinh viên đã học: 2112 môn
- _ Tổng số ngành đang đào tạo: 45 ngành
Dữ liệu điểm được tổng hợp theo bảng sau:
Trang 12( Tổng số Sinhviên Ì (“ Tổng số Môn học Tổng số Ng Ÿ ¡
28.06K || 2112 45
Dy doin RMSETest theo ngành
SỐ lượng sinh viên theo Ngành
L =
Hình 1.2 Thống kê kết quả hoc tập của sinh viên khóa 2019 đến 2022
`
1.3 NOI DUNG VÀ MỤC TIÊU NGHIÊN CỨU
Đề tài gồm có 2 mục tiêu cụ thể sau:
- Xây dựng và phân tích hệ thống ứng dụng khảo sát hoạt động giảng dạy củagiảng viên trên MongoDB, nhằm cải thiện tốc độ truy vấn dữ liệu của hệ thôngđang triển khai tại trường Đại học Sư phạm Kỹ thuật TpHCM, xây dựng công cụ
để phân tích và trực quan hóa đữ liệu khảo sát
- Dự đoán kết quả học tập của sinh viên nhằm hỗ trợ thông tin dé sinh viên đăng
ký môn học, rút môn nhằm giảm tình trạng cảnh báo học vụ, hoặc nâng cao kết
qua học tập giúp sinh viên đạt học bồng trong trường
1.4 PHƯƠNG PHÁP VÀ CÔNG CỤ
1.4.1 Phương Pháp
Thu thập số liệu về khảo sát hoạt động giảng dạy, các số liệu về điểm của sinhviên để dự đoán điểm học tập của sinh viên từ đó dự đoán kết quả học tập (xếploại) của sinh viên theo quy chế 1727/QD-DHSPKT
Thực nghiệm đối chiếu so sánh SQL server 2014 và MongoDB trên đữ liệu
Khảo sát hoạt động giảng dạy của giảng viên.
-_ Phân tích va tong hợp số liệu về dit liệu Khảo sát
Trang 13- Dùng các thuật toán về RS cụ thé thuật toán BMF dé dự đoán kết quả học tập
của sinh viên dựa trên dữ liệu quản lý dao tạo (điểm sinh viên) và xây dựng hệthống dự đoán
1.4.2 Công cụ
Cơ sở dữ liệu, sử dụng MongoDB để lưu trữ và xử lý dữ liệu
Sử dung Flask python dé viết ứng dụng.
Sử dụng Power BI dung đề thống kê và tổng hợp số liệu
Trang 14Chương 2: CƠ SỞ LÝ THUYET
HỆ THÓNG GỢI Ý2.1 GIỚI THIỆU
Hệ thống gợi ý (recommendation system) là một hệ thống lọc và phân tích đữ liệuđầu vào Mục tiêu của nó là cung cấp cho người dùng gợi ý về mặt hang, sản phẩm.(Item) có thé đáp ứng nhu cau, sở thích của người dùng (User) Một số ứng dung
pho bién nhat hién nay là thương mại điện tử va dich vụ phát trực tuyến Chẳng hạn,
booking.com gợi ý người dùng địa điểm đến dựa trên những chuyến đi trước đó củangười dùng và xếp hạng những người khác Amazon theo đõi các mặt hàng ngườidùng xem, mua hoặc đánh giá dé cung cấp cho người dùng các dé xuất phù hợp vềcác sản phẩm tương tự khác mà người dùng có thể quan tâm Spotify, phân tích cácthể loại, cung cấp danh sách nhạc của người dùng khác và đưa ra đề xuất cho ngườidùng Tương tự, Netflix gợi ý người dùng muốn xem tiếp những bộ phim gì Do đó,một danh sách các mặt hàng được đánh giá là đầu vào cho thuật toán gợi ý Mô tảcủa mỗi mặt hàng có thể được làm phong phú thêm bằng một tập hợp các thuộctính Ví dụ: nếu hệ thống dé xuất phim thì thé loại, đạo diễn và diễn viên có thé làmột tập hợp các thuộc tính có ý nghĩa hỗ trợ thêm cho gợi ý người dùng Một hệthống gợi ý cũng cần biết thông tin về người dùng dé gợi ý như nhân khẩu học,chang hạn như giới tính và độ tuôi, sở thích Nguồn thông tin quan trọng nữa làcác tương tác giữa người dùng và các mặt hàng Tương tác tiết lộ ý kiến của ngườidùng về một số mặt hàng Chăng hạn, người dùng có thé đã đánh giá (rating) một sốphim, hoặc like một sản phẩm Trong trường hợp này, chúng ta biết rõ ý kiến củangười dùng về những bộ phim này Ngoài ra, chúng ta có thé biết những cuốn sách
mà người dùng đã mua trong quá khứ hoặc những bộ phim mà người dùng đã xem.
Chúng ta có thê giả định rằng nếu người dùng đã xem một bộ phim hoặc mua mộtcuốn sách, thì có thé người dùng đó thích bộ phim đó hoặc cuốn sách đó Việc biếtnhững tương tác này có thé hữu ich dé dé xuất những người dùng khác nên đọc gihoặc xem gì tiếp theo dựa trên những gì họ đã đọc hoặc xem Ví dụ: nếu những
người mua áo sơ mi thì thường mua cả cà vạt hoặc mua giày thì mua thêm vớ vì
vậy hệ thông gợi ý sẽ khuyến khích người mua cả hai mặt hàng Các tương tác cũng
Trang 15có thuộc tính bối cảnh Ví dụ về các thuộc tính theo ngữ cảnh là vị trí địa lý, ngàytrong tuần, giờ trong ngày, tâm trạng của người dùng, v.v Cùng một người dung cóthể có ý kiến khác nhau về cùng một mặt hàng dựa trên ngữ cảnh Ví dụ, một nhàhàng có thể là nơi hoàn hảo cho bữa trưa công sở, nhưng không phải là nơi lý tưởngcho bữa tối lăng mạn Bữa trưa công sở và bữa tối lãng mạn là ví dụ về ngữ cảnhkhi giới thiệu nhà hàng Tương tự, nếu thời tiết nắng, người dùng có thể thích nhàhàng có khu vườn ngoài trời hơn, trong khi nếu thời tiết mưa, người dùng có thểthích nhà hàng có mái che Nắng và mưa là hai ví dụ khác về ngữ cảnh.
2.2.1 Thuật toán không cá nhân hóa (non-personalized recommendations)
Thuật toán không được cá nhân hóa thì tat cả người dùng đều nhận được các đề xuấtgiống nhau Ví dụ: những bộ phim nổi tiếng nhất, các ban nhạc nồi tiếng gần đâyhoặc các khách sạn được xếp hạng tốt nhất chẳng hạn
2.2.2 Thuật toán cá nhân hóa (personalized recommendations)
Thuật toán cá nhân hóa thì những người dùng khác nhau sẽ nhận được các đề xuất
khác nhau Các kỹ thuật cá nhân hóa được phân loại thành kỹ thuật lọc dựa trên nội dung và lọc cộng tác.
Để xây dựng thuật toán cá nhân hóa người ta xây dựng ma trận rating để mô tả dữliệu đầu vào
Trang 162.2.2.1 Lọc dựa trên nội dung (Content-based filtering)
Y tưởng của dé xuất lọc dựa trên nội dung là để xuất các mục tương tự như các mục
mà người dùng đã thích trong quá khứ Ví dụ: nếu bạn thích bộ phim Indiana Jones,
hệ thống đề xuất có thé đề xuất cho bạn những bộ phim khác của cùng đạo diễnSteven Spielberg hoặc của cùng diễn viên chính, Harrison Ford, hoặc khi chúng tađang xem trang mô tả một sản phẩm trên trang web Amazon, chúng ta nhận được
đề xuất liệt kê các sản phâm tương tự như sản phâm chúng ta đang xem Lọc dựatrên nội dung là một trong những cách tiếp cận đầu tiên được sử dụng dé xây dựng
hệ thống gợi ý Một điều kiện tiên quyết quan trong dé tính năng lọc dựa trên nộidung hoạt động là phải có danh sách các thuộc tính chất lượng tốt đối với mỗi sản
df
pham
introduction
recommender | † 1 IRm systems | 1 1 Km Introduction to Recommender Systems machine 1
Machine leaming Paradigms learning 1 1
adigms 1
Social Network-based Recommender Systems =
social 7 7
a Learning Spark newokbased | | |i] | | |
Recommender Systems Handbook apes 3
handbook 1Recommender Systems and the Social Web ve i
Hình 2.3 Ma trận nội dung
Trang 172.2.2.2 Kỹ thuật lọc cộng tác (Collaborative filtering techniques)
Các kỹ thuật lọc cộng tác không yêu cầu bat kỳ thuộc tính của sản phẩm hoặc ngườidùng mà dựa trên ý kiến của cộng đồng người dùng
2.2.2.2.1 Dựa vào người dùng (User base)
Loại gợi ý lọc cộng tác đầu tiên được phát minh dựa trên sự tương đồng giữa người
dùng với người dùng (user — user) Ý tưởng cơ bản là tìm kiếm những người dùng
có cùng sở thích, nghĩa là những người dùng có cùng quan điểm về một số mặthàng Ví dụ, nếu Paula và Suzy có cùng quan điểm về nhiều bộ phim, rất có thê nếuPaula thích Chiến tranh giữa các vì sao thì Suzy cũng sẽ thích Chiến tranh giữa các
vì sao Ý tưởng này có vẻ hợp lý, nhưng chúng ta sẽ thấy cách tiếp cận người dùng
-người dùng không phải lúc nào cũng hoạt động tốt
Dé tính toán chúng ta xây dựng ma trận tương đồng giữa các người ding:
Similarity =cos0= PF = imiaty(p.4) =cosd= THIẾT Ee Be
Hình 2.4 Ma trận tính toán sự tương đồng giữa người dùng2.2.2.2.2 Dựa vào sản phẩm (Item base)
Loại gợi ý lọc cộng tác thứ hai (item - item) Lọc cộng tác dựa trên mặt hàng được
Amazon.com sử dụng lần đầu tiên vào năm 1998 Ý tưởng cơ bản là tính toán mức
Trang 18độ giống nhau giữa từng cặp mặt hàng theo số lượng người dùng có cùng quan điểm
về hai mặt hàng đó Ví dụ: hầu hết người dùng thích Indiana Jones cũng thích Chiếntranh giữa các vì sao, vì vậy, nếu một người thích Indiana Jones, người đó sẽ đánhgiá cao Chiến tranh giữa các vì sao Ngày nay, nhiều gợi ý trong thương mại dựa
vào các thuật toán item - item.
Dé tính toán chúng ta xây dựng ma trận tương đồng giữa các sản pham:
Hình 2.5 Ma tran tính toán sự tương đồng giữa các san phẩm
2.2.2.2.3 Phân rã ma trận (Matrix factorization)
Netflix đã từng tổ chức một cuộc thi trao giải thuật toán tốt nhất cho hệ thống đềxuất của họ[7] Trong đó, một nhóm thuật toán lọc cộng tác mới đã được phát minhdua trên một kỹ thuật gọi là phân rã ma tran (matrix factorization), là một phần củanhóm thuật toán tổng quát hơn được gọi là giảm số chiều của ma trận
Ý tưởng chính của phân rã ma trận trong xây dựng hệ thống khuyến nghị là coi matrận xếp hạng X là kết quả của phép nhân hai ma trận có hạng U và V nhỏ hơn Matrận U gọi là ma trận người dùng, ma trận V đại diện cho ma trận sản phẩm
Trang 19Hình 2.6 Ma trận Phân rã 2.2.2.2.4 Gợi ý dựa trên ngữ cảnh (Context-aware recommender CARS)
Chúng ta thấy rằng người dùng có thé có ý kiến khác nhau về cùng một mục dựatrên ngữ cảnh, chẳng hạn như ngày trong tuần, giờ trong ngày, tâm trạng của người
dùng, v.v.
Các thuật toán hiện đại có thể sử dụng đồng thời nhiều nguồn thông tin không đồng
nhất dé xây dựng các hệ thống gợi ý gọi là kỹ thuật cộng tác dựa trên ngữ cảnh
Online Music Sampling Deep Convolutional Neural Networks Music Classification
Hình 2.7 So đồ gợi ý dựa theo ngữ cảnhNguồn: An Emotion-Aware Personalized Music Recommendation System Using a
Convolutional Neural Networks Approach [2]
Trang 202.2.2.2.5 Thuật toán kết hợp (Hybrids side Information)
Các thuật toán kết hợp này có thể được coi là các kỹ thuật lọc cộng tác, trong đóngười dùng, vật phẩm và tương tác được bé sung thêm thông tin phụ Chang hạn,chúng ta có thể xây dựng một hệ thống gợi ý cho các nhà hàng có thể tính đến mô tả
về nhà hàng, nhận xét do người dùng viết và ảnh chụp các món ăn được phục vụ tại
nhà hàng.
Để xây dựng các thuật toán lai, có thể tận dụng thông tin bên lề, phải sử dụng các
kỹ thuật mới, chẳng hạn như máy thừa số (factorization machines) hoặc kỹ thuậthọc sâu (deep learning techniques) Các kỹ thuật nay cũng có thể được sử dụng nhưcác thuật toán lọc cộng tác, nhưng ưu điểm chính của chúng là khi được sử dụng vớicác nguồn thông tin bên lề hoặc theo ngữ cảnh
user gender age occupaton movie genres,
‘occupation
enbe movie embeddings} genre embeddings
Hình 2.9 Diễn giải mô hình kết hợp thêm thuộc tính
2.2.3 Khó khăn và thách thức
2.2.3.1 Xây dựng nhãn:
Các nhãn được thể hiện rõ ràng như: có mua sản phẩm hay không, đánh giá củangười dùng đối với sản phâm hay có chấp nhận kết bạn hay không Những nhãn nàyđược gọi là phản hồi rõ ràng Tuy nhiên, không phải hệ thống gợi ý nào cũng hỗ trợ
Trang 21mua hàng hoặc tất cả người dùng đều dành thời gian dé đánh giá các mặt hàng.Trong nhiều trường hợp, nhãn được xây dung dựa trên phản hồi ẩn từ người dùng.
Vi dụ: người dùng xem một sản phẩm hoặc đọc thông tin sản phẩm, xem phim,
nghe một bản nhạc, v.v.
2.2.3.2 Dữ liệu lệch:
Khó khăn trong việc xây dựng mô hình khuyến nghị là các nhãn thường bị sai lệchnghiêm trọng Số lượng mẫu có nhãn tích cực (được xếp hạng, nhấp vào, đã mua,v.v.) rất ít so với số lượng mẫu không phản hồi Việc thiếu phản hồi không nhấtthiết có nghĩa là người dùng không quan tâm đến sản phẩm Sự khác biệt về nhãn
này làm cho việc xây dựng mô hình trở nên phức tạp hơn.
2.2.3.3 Hiện tượng đuôi dài:
Thông thường số lượng phản hồi cho sản phẩm rất khác nhau Có những sản phẩm
có nhiều dữ liệu phản hồi nhưng cũng có những sản phẩm có rất ít phản hồi
2.2.3.4 Vòng phản hồi:
Việc gợi ý người dùng dựa trên phản hồi của họ đôi khi din đến tình trạng ngườidùng chỉ nhìn thay những sản pham họ đã tương tác Nếu bạn tiếp tục đề xuất thikết quả gợi ý sẽ dần tập trung vào một số ít sản phẩm Vòng gợi ý này sẽ có tácđộng tiêu cực tới người dùng, khiến người dùng thiếu trải nghiệm với sản phẩm
ta xây dựng một hệ thống dự đoán có độ chính xác cao nhưng không triển khai được
thì thật vô nghĩa.
Trang 22Chương 3: GIẢI QUYẾT BÀI TOÁN
3.1 HỆ THÓNG KHẢO SÁT HOẠT ĐỘNG GIẢNG DẠY GIẢNG VIÊN
3.1.1 Phát biểu bài toán
Hệ thống khảo sát hoạt động giảng dạy của giảng viên nhằm Khảo sát mức độ hàilòng của sinh viên đối với các môn học trong học kỳ, tiếp thu ý kiến, góp ý của sinhviên nhằm nâng cao hiệu quả dạy và học, nâng cao tỉnh thần trách nhiệm của giảngviên trong hoạt động giảng day, tạo kênh thông tin giúp giảng viên điều chỉnh hoạt
động giảng dạy, giúp cán bộ quản lý có thêm cơ sở nhận xét, đánh giá giảng viên.
Hiện nay hệ thống được xây dựng trên cơ sở dữ liệu SQL Server Tuy nhiên mỗi đợtkhảo sát hệ thống, thường Server bị quá tải do hiệu xuất sử dụng CPU va Memory(ở mức sử dụng trên 90%) vì vậy tôi xây dựng lại hệ thống trên cơ sở đữ liệu
Mongodb nhằm khi sinh viên khảo sát thì tách hệ thống khảo sát ra khỏi cơ sở dữ
liệu của trường dùng hệ thống cơ sở dit liệu độc lập và xây dung lại bang dit liệu dé
tối ưu lưu trữ, truy xuất dữ liệu nhằm cải thiện tốc độ xử lý dữ liệu khi sinh viên
khảo sát.
Y
TỰ THẢO PHIẾU KHẢO SÁT Ý KIÊN CỦA SINH VIÊN
'VÊ HOẠT ĐỌNG GIẲNG DẠY LÝ TRUYẾT CỦA GIANG VIÊN
St ap pin ing ao G kg đ và bọc Ng se ác bế vất và
ng do in pis Rt Rg động ig ya ng gcc
ong hog bt oy Tg se Ca Ho tes ack Ce we
ey kế uta dẻ po tum tno cũ cho độn wie đợc oye bn ah
ihe trì tán Soe pop ng aa es rắn Bi par hrm, ah
Saige
© sensing
1 Gp ấn Ben cho bộ ểng ed A ip FD, CTE
Tr Tai Gt cia [aie
ling som ung orp a ls hp dc Hv i aso
omg day rab
“ide aia Tic pong pa
Gide is as os GION mao ESA
Trang 233.1.2 Phân tích thiết kế hệ thông Kháo sát
3.1.2.1 Đặc tả hệ thông
Hệ thống khảo sát hoạt động giảng dạy của giảng viên, hỗ trợ sinh viên khảo sátgiảng viên về hoạt động giảng dạy, dựa theo kết quả khảo sát gợi ý sinh viên trongviệc đăng ký môn học, chọn môn học tự chọn và chọn giảng viên để đăng ký học
3.1.2.1.1 Nhân viên
Hỗ trợ nhân viên tạo các bảng câu hỏi trong các đợt khảo sát, cấu hình thời giankhảo sát và cập nhật danh sách sinh viên lớp học phần để sinh viên khảo sát
3.1.2.1.2 Sinh viên
Hỗ trợ sinh viên đăng nhập/đăng xuất hệ thống, hỗ trợ sinh viên khảo sát về môn
học, giảng viên mà sinh viên đăng ký học, gợi ý cho sinh viên khi đăng ký môn học
3.1.2.2 Ma trận Actor và User case
Actors: Nhan vién, Sinh vién, Giang vién va Quan ly
User Cases :
Trang 24Cập nhật danh sách sinh viên lớp học phần: User case này cho phép nhân
viên lay sanh sách sinh viên lớp học phan trong hệ thống quản lý dao tạo đề
sinh viên khảo sát.
Chọn lớp học phần khảo sát: User case này cho phép sinh viên chọn Lớp họcphần, giảng viên dé khảo sát
Trả lời bang câu hỏi: User case này cho phép sinh viên chọn các câu trả lời
Trang 25Xem gợi ý môn học đề đăng ký học phần: User case này cho phép sinh viên
dựa vào môn học tự chọn mà sinh viên đăng ký, gợi ý môn học tự chọn khác
mà sinh viên chưa đăng ký theo mức độ hài lòng của các sinh viên đã khảo sat.
Xem gợi ý giảng viên dé đăng ky học phan: User case này cho phép sinh
viên dựa vào giảng viên ma sinh viên đăng ký, gợi ý sinh viên chọn giảng viên đê đăng ký theo mức độ hài lòng của các sinh viên đã khảo sát.
Xem nhận xét cá nhân: User case này cho phép giảng viên xem các nhận xét
của sinh viên về hoạt động giảng dạy của giảng viên.
Xem thống kê cá nhân: User case này cho phép giảng viên xem thống kêmức độ hài lòng của sinh viên về hoạt động giảng dạy của giảng viên
Xuất dữ liệu theo Khoa: User case này cho phép Lãnh đạo xuất dữ liệu thống
kê mức độ hài lòng của sinh viên theo từng giảng viên
Xem báo cáo thống kê: User case này cho phép Lãnh đạo thống kê mức độ
hài lòng của sinh viên theo năm học học kỳ, theo khoa
3.1.2.4 Mô tả các lưu đỗ hoạt động
3.1.2.4.1 Lưu đồ Nhân viên soạn bảng câu hỏi khảo sát
Bắt đầu
Nhập Templace cho form
hap câu hỏi cho Template
Nhập câu trả lời
cho câu hồi
Input: Câu hỏi, câu trả lời Output: Bảng câu hỏi cho mỗi đợt khảo sát
Trang 26-3.1.2.4.2 Lưu đô Sinh viên khảo sát
Bắt đầu
Danh sách các
lớp Học phần, Giảng viên
Kiếm tra các LHP đã khảo
sat
Hiển thi bang cầu hỏi
- Input: Bảng câu hỏi, Sinh viên, lớp học phần
Trang 273.1.3 Mô hình CSDL hệ thông Kháo sát
Answer Class Professors ‘Question
RetingTemplate RatingTemplate_Answer SurVeyResult VoteForm
.- —
YoteResult VoteResultDetail
Hinh 3.2 M6 hinh CSDL trén MongoDB
3.1.4 Mô tả tong quan cầu trúc dữ liệu
Hệ thống được xây dựng gồm 13 Collections để lưu trữ dữ liệu mô tả cụ thể như
Sau:
- VoteForm: Lưu trữ các mẫu khảo sát, mỗi học kỳ sẽ có 1 mẫu khảo sát
- RatingTemplate: Cac Template chứa câu hỏi
- VoteForm_RatingTemplate: Form khảo sat chứa dang Template
- Class : Phần giới tiệu của form
- RatingTemplate_Answer: Template chứa các câu trả lời
- Question: Danh mục câu hỏi
- Answer : Danh mục các dang câu trả lời
- Professors: Danh mục giảng viên
- Question_Answer: Bảng câu hỏi và câu trả lời
- StudentScheduleStudyUnit: Danh sách sinh viên lớp học phan
- VoteResult: Các lớp học phan mà sinh viên khảo sát
- VoteResultDetail: Chứa chỉ tiết kết quả Khảo sát
- SurveyResult: Tông hợp dữ liệu của 2 Collections VoteResult, VoteResultDetail
Trang 283.1.5 Giao diện Khảo sát
HE THỐNG KHAO SÁT HOẠT ĐỘNG GIANG DẠY CUA GIẢNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
1 222MEBU244817_02 Co học công trình 40 'GVTS Lê Trung Kiên Khio sắt
2 222EQUB324116_01 ‘Trang thiết bị công trình 20 ‘TGTHS Pham Minh Sơn hảo sắt
3 2221NAP320916 08 DA Co sở kiến trúc 4 Vẽ ghi 20 'GVTHS Nguyễn Thị An Anh “Khảo sắt
4 222SCPA231116_05 “Thực hành Điêu khắc: Tổ hợp hình khối kiến trúc _3.0 TGTHS Nguyễn Hoài Huyển Vũ — Khảo sát
5 222GISP422922_01 Gis Trong Kiến Trúc và Quy Hoạch 20 GVTS Trin Vũ Tự Khao sắt
Hinh 3.3 Giao dién sinh vién tham gia khao sat
| PHIẾU KHAO SÁT Ý KIEN CUA SINH VIÊN.
VỀ HOẠT ĐỘNG GIẢNG DẠY LÝ THUYẾT CỦA GIẢNG VIÊN.
Nhâm gép phần nông ao cht lượng dạy và học Nhà tưởng đềnghị các bạn sinh vin ul lòng cho ý kiến phản hồi về hoạt
đông giản day la giảng Viên bảng cách rẻ li đầy đủ các mục trong bằng hỏi đưới đây, Nguyên tác của khảo át|à ẩn dah
| ina tna a1 temgi Đảo st Ht gs út ca ham ody bons in in tn oh
thin đóng gép xay dung, mønh dan nêu kin, phản ảnh tung thực khích quan vẽ cc thông tin kh st SW:Hà Quế Tiên :
Ngành: Kiến tae Gh Ch kiến dng gốp của Anh/Chísẽ được tổng hợp v công bổ trên website phòng Đảm bảo Chất lượng
1.761 được giới thiệu đầy đủ về đề cương chỉ tiết môn học ® oooo
2 Giảng viên sử dụng hiệu quả cắc phương tiện/ứng dụng công nghệ thông tin và truyền thông hỗ trợ giảng day (Glides, video clips, máy chiếu, ) @0000
3 Gling viên áp dung đa dang các phương phấp day học tích cực nhằm khuyến khích người học phát triển năng lực ty
học, tự nghiên cứu v8 lim việc nhóm @oooo
4, Giảng viên tạo mỗi tường học tập thân thiện, hợp tắc, khuyến khích sáng tạo trong dạy và học ®oooo
5, Sự hài lòng chung về phương pháp giảng day e@0000
2 Tiêu chi 2 Nội dung giáng day, kiếm tra, đánh giá
Nội dung giảng day bám sát đề cương chiết “mã ca.
2 Giảng viên thường liên hệ thực tế trong quá tình giảng dạy ° oo°oo
8 Giảng viên thông báo về hình thức, nội dung và tiêu chỉ đánh giá (hi/kiểm tra), môn học đầy đủ và rõ rang o®ooo
Hình 3.4 Giao diện nội dung khảo sát
3.1.6 Phân tích xây dựng CSDL giữa MongoDB va SOL server
3.1.6.1 Xây dựng bảng lưu dữ liệu Phiếu khảo sát trên Cơ sở dữ liệu quan hệ
Do phiếu khảo sát có số câu hỏi, nội dung câu hỏi thay đổi trong các học kỳ nên để
tạo bảng lưu đữ liệu khi xây dựng trên CSDL quan hệ cần lưu trên 2 bảng:
Bang VoteResult gồm các trường dữ liệu : VoteResullD, StudentID,
ScheduleStudyUnitID
Bang VoteResultDetail gồm các trường dữ liệu: ID, VoteResultID, QuestionID,
AnswerID, TextAnswer
Trang 29Nhận xét:
Với khoảng 30 ngàn sinh viên trong mỗi đợt khảo sát và 200 ngàn sinh viên lớp họcphan ta có khoảng:
- Dữ liệu phát sinh trong bảng VoteResult : 200 ngàn mau tin
- Dữ liệu phát sinh trong bảng VoteResultDetail: 4 triệu mẫu tin (do mỗi SV,
lớp học phan tra lời khoảng 20 câu hỏi)3.1.6.2 Xây dung collection lưu dữ liệu Phiếu khảo sát trên Cơ sở dữ liệu NoSQL
Đối với CSDL NoSQL cụ thé là MongoDB các field là các cặp khóa - giá trị trong
document, giống như các Column trong cơ sở dit liệu quan hệ
Trong MongoDB document, chúng ta được phép lưu trữ dit liệu lồng nhau Việclồng dữ liệu này cho phép chúng ta tạo các mối quan hệ phức tạp giữa đữ liệu và
lưu trữ chúng trong cùng một Document, giúp cho quá trình làm việc và tìm nạp dit liệu hiệu quả hơn so với SQL.
Phân tích Phiếu khảo sát về bảng câu hỏi được phân thành 3 nhóm:
Nhóm 1 (TabAnswers): Lưu giữ các câu hỏi phục vụ tính toán, thông kê — Đánh giámức độ hài lòng của sinh viên theo 5 mức độ (1 Hoàn toàn không đồng ý, 2 Khôngđồng ý, 3 Phân vân, 4 Đồng ý, 5 Hoàn toàn đồng ý )
1 Hoàn toàn không đồng ý 2 Không đồng ý 3 toàn đồng,
Tiêu chí 1 Phương pháp giảng day
1 Tôi được giới thiệu day đủ về đề cương chỉ tiết môn học
2 Giảng viên sử dụng hiệu quả các phương tiện/ứng dụng công nghệ thông tin vả truyền thông hỗ trợ giảng day
(slides, video clips, máy chiếu, ) ® oo 0
Nhóm 2 (OptAnswers): Các câu hỏi chon lựa dùng dé tông hợp
20 Tỷ lệ thời gian bạn tham gia lớp học của môn học này.
21 Bình quân hàng tuần tôi dành lượng thời gian tự học cho môn học này:
© Không dành thời lượng tự học
Ít hơn thời lượng học trên lớp
© Bằng thời lượng học trên lớp
Gấp đôi thời lượng học trên lớp
© Gấp ba thời lượng học trên lớp
Trang 30Nhóm 3 (TabAnswers): Các câu hỏi dé sinh viên nhận xét
18 Những điều anh/chị hài lòng nhất về môn học này:
|Giảng viên nhiệt tình giảng dạy, trao đổi nhiều kiến thức thực tiễn
19 Ý kiến đóng góp của bạn để việc giảng dạy môn học này được tốt hơn:
|Giảng viên cho bài tập nhiều
20 Tỷ lệ thời gian bạn tham gia lớp học của môn học này
Với việc phân tích trên, phiếu khảo sát chỉ cần lưu trên 1 Collection SuveyResultvới cấu trúc sau: ID, StudentID, ScheduleStudyUnitID,
TabAnswers: [ {QuestionID, AnswerID}, {QuestionID, AnswerID}, {QuestionID, AnswerID}, {QuestionID, AnswerID}, {QuestionID, AnswerID}, {QuestionID, AnswerlD}]
OptAnswers:[ {QuestionID, TextAnswer , AnswerID}, {QuestionID, TextAnswer , AnswerID}, {QuestionID, TextAnswer , AnswerID}]
TextAnswers:[ {QuestionID, TextAnswer , AnswerID}, {QuestionID, TextAnswer ,
Trang 31Nhận xét:
Như vậy với dữ liệu lưu trên MongoDB mỗi bảng khảo sát chỉ cần lưu trên 1Collection, Số document phát sinh trong 1 học kỳ khảo sát khoảng 200 ngàn
documents.
3.1.6.3 Phân tích khả năng chịu tải của hệ thống
Trong các đợt khảo sát trung bình có 28 ngàn SV đăng nhập vào hệ thống khảo sáttrong vòng 7 ngày, hệ thống thường quá tải trong 3 ngày đầu mở cho sinh viên khảosát, có khoảng 7 ngàn sinh viên truy cập trong cùng khoảng thời gian đầu Hệ thống
chậm là do thao tác dữ liệu trên server data, trong thời gian này theo dõi
performance trên hệ thống khảo sát đang lưu dữ liệu trên SQL server sử dung tạitrường, CPU và Memory sử dụng trung bình từ 85-95% nên hệ thống quá tải
3.1.6.3.1 So sánh hiệu suất truy van dữ liêu trên MongoDB và SOL server
So sánh performance khi truy vấn dữ liệu trên SQL Server và MongoDB đề lay dt
liệu cho 1 bảng khảo sát.
Chạy trên Laptop cấu hình :
CPU: Intel(R) Core(TM) i5-8250U CPU @1.60GHz 1.80 GHz
RAM : 8G
3.1.6.3.2 Hiệu suất thao tác dữ liệu trong Collection SuveyResult
Để kiểm tra khả năng chịu tải của hệ thống, tôi lấy toàn bộ dit liệu khảo sát trong 4
năm, sau đó chèn vào Collection SurveyResult, Mỗi Document trong Collection
SurveyResult tương ứng với 1 bảng khảo sát Do lấy tat cả số liệu các năm và cáckhóa đang lưu trữ trên hệ thông dé thực nghiệm nên:
Trang 32Số mâu tin trong kết quả khảo sát chỉ tiết: 18.638.129 mau tin
Cách thực hiện gồm 2 bước:
- Bước 1: Lấy toàn bộ dữ liệu trong Collection VoteResult để chèn vào Collection
SurveyResult
- Bước 2: Lấy toàn bộ câu hỏi và câu trả lời trong Collection VoteResultDetail và
gom nhóm câu hỏi, câu trả lời theo 3 nhóm TabAnswers , OptAnswers ,
TextAnswers đê cập nhật vào Collection SurveyResult
® Bước |
Insert đữ liệu từ Collection VoteResult chèn vào Collection SurveyResult với tổng
số Records là 972 ngàn mầu tin Mỗi Document tương ứng với sinh viên, lớp họcphan
Dùng Performance trong Mongodb Compass dé đánh giá
Hình 3.6 Thời gian thực hiện khi Insert và Update
Trang 33Hình 3.7 Performance thời gian thực hiện khi Insert Collection SurveyResult
¢ Bước2:
Lay dữ liệu trong Collection VoteResultDetail Cập nhật vào Collection
SurveyResult gồm 3 Fiels TabAnswers , OptAnswers , TextAnswers với tổng số
Documents là 972 ngàn Mỗi Document tương ứng với 1 bảng trả lời của sinh
viên, lớp học phần
Dùng Performance trong Mongodb Compass đê đánh giá.
Thời gian Update là: 25 phút 17.018643 giây
Hình 3.8 Performance thời gian thực hiện khi Update Collection SurveyResult Nhận xét:
- Với việc phân tích dữ liệu trên trên Mongodb chỉ cần 972 ngàn documents có thélưu toàn bộ dir liệu khảo sát trong vòng 4 năm va mỗi học kỳ khảo sát chỉ cần phát
Trang 34sinh thêm khoảng 200 ngàn documents (giảm 20 lần so với việc lưu trữ đữ liệu trên
cơ sở dit liệu quan hệ).
- Thời gian thao tác dữ liệu trên Collection chứa 972 ngàn documents sẽ nhỏ hơn rấtnhiều so với thời gian thao tac dit liệu trên Collection chứa 16 triệu documents(được so sánh cụ thể trong mục 3.1.6)
- Với mỗi đợt khảo sát, dữ liệu phát sinh khoảng 200 ngàn documents, tông thời
gian insert và update chỉ khoảng 5 phút Hệ thống mở cho sinh viên khảo sát trongvòng 7 ngày và tập trung chủ yêu trong 3 ngày đầu khảo sat vì vậy hệ thống hoàntoàn đáp ứng về tốc độ xử lý các thao tác dữ liệu
3.1.6.3.3 Hiệu suất về lưu trữ dữ liệu dùng Collection SuveyResult
Hình3.9 Mô tả dung lượng lưu trữ dữ liệu
e Khi lưu trữ dữ liệu trong:
- Collection SurveyResult dung lượng cần : 959.49MB
- Collection VoteResult và VoteResultDetail dung lượng cần: 2793.27 MB
Nhận xét:
- Với việc xây dựng dữ liệu dùng Collection SurveyResult, trong mỗi học kỳ
(đợt khảo sát hệ thống chi phát sinh thêm 192 MB đữ liệu, Nếu tạo 2
Colleclions VoteResult và VoteResultDetail hoặc lưu trữ trên SQL Server
hệ thống phat sinh thêm 559 MB dit liệu (do phải lưu thêm khóa chính, khóa
phụ ở VoteResultDetail)
Trang 35- Với dữ liệu có dung lượng nhỏ hơn chi chiếm 34,35% thì việc sao lưu dit
liệu sẽ nhanh hơn và chiếm ít băng thông hơn
3.1.7 So sánh tốc độ xứ lý CSDL giữa MongoDB và SQL server
Dé so sánh về tốc độ xử lý thao tác dữ liệu trong đợt khảo sát, khi phân tích và tìmhiểu tôi nhận thấy tốc độ xử lý chỉ ảnh hưởng do việc lưu trữ và thao tác đữ liệu vềkết quả khảo sát (cụ thê dữ liệu trong 2 bảng VoteResult và VoteResultDetail) vì
vậy tôi thực hiện so sánh trên 3 hình thức lưu trữ dữ liệu:
Hình thức 1: Thao tác dữ liệu trên SQL server (hệ thống đang sử dụng tại trường)Hình thức 2: Thao tác dữ liệu được lưu trữ trên Mongodb dùng 2 Collections dé lưutrữ dữ liệu kết quả khảo sát VoteResult và VoteResultDetail
Hình thức 3: Thao tác dữ liệu được lưu trữ trên Mongodb dùng một Collection
SurveyResult để lưu trữ dữ liệu kết quả khảo sát
Khi sinh viên khảo sát hệ thống sẽ có các thao tác dữ liệu sau:
- Truy xuất dữ liệu (Select) : Lay các dữ liệu sinh viên đã khảo sát lên dé hiển thi
cho sinh viên
- Tạo mới dir liệu (Insert): Thêm dữ liệu mà sinh viên trả lời.
- Xóa dữ liệu (Delete) : Xóa bảng trả lời trước để thêm bảng trả lời mới
Vì vậy tôi so sánh về thời gian của 3 thao tac dir liệu Select, Insert và Delete trên hệthống SQL server và Mongodb
Cấu hình máy tính:
- CPU: Intel(R) Core(TM) ¡7-7700 CPU @ 3.60GHz 3.60
- RAM: 16.0 GB
3.1.7.1 So sánh thời gian truy xuất dit liệu (Select)
Khi sinh viên chọn một lớp học phần để khảo sát, hệ thống sẽ dựa vào Mã sinh viên
và mã lớp học phần để lấy lên các chọn lựa của sinh viên trước đó kết hợp hiền thị
các câu hỏi lên form khảo sát.
Thời gian truy xuất dữ liệu trên SQL Server 2014: 5.273s
Thời gian truy xuất dữ liệu trên Mongodb sử dụng 2 Collection: 0.020140s
Thời gian truy xuất dữ liệu trên Mongodb sử dụng 1 Collection : 0.009982s
Câu lệnh truy van trên SQL Server
Trang 36@OldTime = Q;
a.ID,VoteResultId, AnswerID,
TextAnswer, QuestionID, VotedObject1ID, FormId
VoteResultDetail a
inner join VoteResult b a.VoteResultTd b.TD an
userID='21110008' and VotedObject1ID='211EHQT230237E_11CLC'
@NewTime QO;
@NewTime-@OldTime
Chỉ tiết truy vấn dữ liệu trên SQL
Trang 37- Df liệu trên SQL Server hệ thống không được tạo index trên các cột nên khi
truy van hệ thống phải quét toàn bộ dit liệu mắt thời gian
- Bảng chỉ tiết khảo sát có số lượng mau tin lớn trên 18 triệu records khi join
lại sẽ mat nhiều không gian và thời gian, mỗi học kỳ phát sinh thêm khoảng
4 triệu records.
- Trén MongoDB collection đã được tạo index và chỉ lay ra 1 nhóm dữ liệu
sau đó merge các dữ liệu lại với nhau nên chiếm ít tài nguyên và nhanh hơn
- Collection SurveyDetail chứa chỉ 972 ngàn documentts nên lây dữ liệu
nhanh hơn 2 Collections VoteResult và VoteResultDetail 3.1.7.2 So sánh thời gian chèn dữ liệu (Insert)
Khi sinh viên lưu bảng Khảo sát hệ thông sẽ xóa thông tin khảo sát của lớp học
phần cũ và chèn thông tin khảo sát của sinh viên theo lớp học phần mới
Thời gian chèn dữ liệu trên SQL Server 2014: 0.023s
Thời gian chèn dữ liệu trên Mongodb sử dung 2 Collection: 0.003s
Thời gian chèn dữ liệu trên Mongodb sử dụng 1 Collection: 0.000997
Câu lệnh chèn dữ liệu trên SQL Server
DECLARE @OldTime Datetime;
DECLARE @NewTime Datetime;
set @OldTime = GETDATE();
INSERT INTO VoteResultDetail (QuestionID, TextAnswer,
AnswerID, VoteResultId)
Select * from #temp
set @NewTime = GETDATE();