1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tính: 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

75 0 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng 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
Tác giả Vũ Văn Việt
Người hướng dẫn TS. Nguyễn Gia Tuấn Anh
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Khoa học máy tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2023
Thành phố TP.HCM
Định dạng
Số trang 75
Dung lượng 41,34 MB

Nội dung

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

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 2

tô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 3

LỜ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 4

1.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 5

3.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 6

DANH 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 7

DANH 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 8

Hì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 9

MỞ ĐÀ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 10

viê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 11

Chươ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 14

Chươ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 15

có 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 16

2.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 17

2.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 19

Hì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 20

2.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 21

mua 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 22

Chươ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 23

3.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 24

Cậ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 25

Xem 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 27

3.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 28

3.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 29

Nhậ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 30

Nhó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 31

Nhậ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 32

Số 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 33

Hì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 34

sinh 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();

Ngày đăng: 08/11/2024, 17:12

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN