Full

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

1 KỶ YẾU HỘI THẢO KHOA HỌC CITA 2015 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC”

NGHIÊN CỨU GIẢI PHÁP MONGODB TRONG HỆ THỐNG


ĐĂNG KÝ TÍN CHỈ
RESEARCHING MONGODB SOLUTION IN CREDIT REGISTRATION SYSTEM

Nguyễn Thị Ly Sa
Trường Cao đẳng Công nghệ thông tin - Đại học Đà Nẵng; Email: lysa.dsn@gmail.com

Tóm tắt -Hiện nay vấn đề đăng ký tín chỉ của hệ thống đào Abstract- Nowaday, the growing problem in all universities
tạo ở các trường Đại học, Cao đẳng còn gặp rất nhiều khó khăn and colleges is credit registration of the training management
đặc biệt đối với những trường có số lượng sinh viên đông, server system, specially in the universities which have a large number of
luôn trong tình trạng quá tải vào thời điểm sinh viên đăng ký gây students. Server machines always tackle heavy workloads so that
ảnh hưởng không nhỏ đến việc học tập của sinh viên.Với khả they arefrequently overload, this impacts the studying of almost
năng chịu tải cao của MongoDB, bài báo “Nghiên cứu giải pháp students. Due to the high availablity and scalability of Mongodb,
MongoDB trong hệ thống đăng ký tín chỉ” đề xuất giải pháp thay in this article, I propose an approach which replacing relational
thế cơ sở dữ liệu quan hệ truyền thống bằng MongoDB trong hệ database with MongoDB in the credit registration system.
thống đăng ký tín chỉ. Kết quả so sánh hiệu suất hoạt động của Experimetal results of comparing performance of the system
hệ thống ở 2 thời điểm trước và sau khi thay thế sẽ kiểm chứng using MongoDB with the system using relational database will
hiệu quả của giải pháp này. demontrate efficiency of this solution.

Từ khóa -Hệ thống đăng ký tín chỉ; MongoDB;NoSQL; JSON; Key words -Credit Registration System; MongoDB; NoSQL;
Mô hình dữ liệu quan hệ JSON, Data Relational Model

1. Đặt vấn đề chỉ SQL) ám chỉ đến những cơ sở dữ liệu không dùng mô
hình dữ liệu quan hệ truyền thống và không sử dụng ngôn
Trong một thời gian dài (hơn 40 năm), các hệ thống
ngữ SQL đ truy vấn dữ liệu.
cơ sở dữ liệu chủ yếu dựa trên mô hình quan hệ, truy vấn
dữ liệu bằng ngôn ngữ chuẩn SQL. Những năm gần đây, Thuật ngữ NoSQL đánh dấu bư c phát tri n của thế
MongoDB ra đời như một cuộc cách mạng trong các hệ hệ CSDL m i một thế hệ CSDL không ràng buộc, phân
thống cơ sở dữ liệu, được sử dụng rất nhiều trong các dự tán, nguồn mở, kh năng mở rộng theo chiều ngang, c
án công nghệ hiện nay đặc biệt là trong ứng dụng xử lý th lưu trữ, xử lý từ một lượng rất nhỏ cho t i hàng
thời gian thực và BigData. petabytes dữ liệu trong hệ thống c độ chịu t i, chịu lỗi
cao v i những đòi hỏi về tài nguyên phần cứng thấp.
MongoDB thuộc họ cơ sở dữ liệu NoSQL, hư ng văn
b n. u đi m nỗi bật của MongoDB là c kh năng mở NoSQL ra đời đ xử lý những vấn đề của các hệ thống
rộng, t nh s n sàng cao và hiệu suất l n.Tuy c nhiều hạn dữ liệu l n mà mô hình dữ liệu quan hệ không th gi i
chế như việc đ m b o t nh toàn vẹn dữ liệu không cao, quyết một cách triệt đ . Đ là những vấn đề của nguồn dữ
không hỗ trợ giao dịch (transaction); nhưng v i những liệu l n từ web (BigData) hỗ trợ hàng triệu các tương tác
ứng dụng không đặt vấn đề toàn vẹn dữ liệu lên hàng đầu của người dùng, thực hiện phân t ch rút tr ch thông tin c
và giao dịch c th gi i quyết đơn gi n bằng cách thiết kế ch lượng dữ liệu khổng lồ từ lịch sử duyệt web… Những
mô hình dữ liệu phù hợp thì v i ưu đi m là một hệ cơ sở nguồn dữ liệu l n này c đặc đi m là bán cấu trúc, biến
dữ liệu mã nguồn mở và c kh năng gi i quyết những động và khổng lồ nên việc tạo một mô hình quan hệ phù
vấn đề mà hệ thống dữ liệu quan hệ không gi i quyết tốt hợp v i n là điều kh khăn.
được, c th n i tiềm năng phát tri n ứng dụng của Hệ thống NoSQL c th phân làm các loại key-value
MongoDB là rất l n. Đôi khi MongoDB cũng được áp (v dụ hệ thống HBase), document (v dụ hệ thống
dụng kết hợp v i hệ thống dữ liệu quan hệ đ gi i quyết MongoDB, CouchDB) và hệ thống MapReduce. Trong
các bài toán cụ th . đ , hệ thống loại key-value cung cấp giao diện đơn gi n
Dựa trên những ưu đi m của MongoDB, bài báo đề cho phép lưu trữ và truy xuất dữ liệu sử dụng giao diện
xuất gi i pháp sử dụng MongoDB thay thế cho cơ sở dữ băm; hệ thống document hỗ trợ lưu trữ dữ liệu c cấu trúc
liệu quan hệ trong hệ thống đăng ký t n tại các trường Đại gắn liền v i kh a, chẳng hạn tài liệu lưu trữ trong
học - Cao đẳng nhằm gi i quyết những vấn đề tắt nghẽn MongoDB c dạng JSON; hệ thống MapReduce, đi n
mà sinh viên thường xuyên ph i đối mặt khi đăng ký t n hình là Hadoop hỗ trợ xử lý một khối lượng dữ liệu khổng
chỉ, g p phần nâng cao hiệu suất hoạt động của hệ thống lồ trên cluster.
qu n lý đào tạo. 2.2. Giới thiệu MongoDB
2. Tổng quan về NoSQL và MongoDB MongoDB [3] là một hệ cơ sở dữ liệu hư ng văn b n,
2.1. NoSQL là gì? dữ liệu được lưu trữ và truy vấn trong MongoDB c dạng
JSON (không ph i dạng b ng như trong cơ sở dữ liệu
Lúc vừa ra đời, NoSQL [4] c nghĩa là Non-
quan hệ). Lược đồ dữ liệu trong MongoDB rất linh hoạt,
Relational, tuy nhiên thuật ngữ này t phổ dụng và ngày
điều này làm cho việc truy vấn dữ liệu cũng như kh năng
nay người ta dịch NoSQL thành Not Only SQL (không
Nguyễn Thị Ly Sa 2
mở rộng mô hình dữ liệu dễ dàng hơn và nhanh hơn hệ cơ hệ thì một bộ sưu tập c th xem là tương đương v i một
sở dữ liệu truyền thống. b ng.
Trên cơ sở kế thừa và phát huy từ các đặc t nh hữu ch Collection c cấu trúc rất linh hoạt (flexible schema).
từ CSDL quan hệ, MongoDB được xây dựng v i đặc t nh Không giống như CSDL quan hệ cần ph i thiết kế cấu
sau: trúc b ng trư c khi chèn dữ liệu vào, collection không bắt
- Truy vấnđộng (ad-hoc query) MongoDB là CSDL buộc cấu trúc của document. Điều này c nghĩa là các
hư ng văn b n không hỗ trợ kỹ thuật nối (join) và document c hình dạng khác nhauc th cùng được lưu
giao dịch (transaction) nên việc viết câu lệnh truy vấn trữ trong một collection. Tuy nhiên, trong thực tế các
khá đơn gi n. document trong cùng một collection thường c cấu trúc
- Chỉ mục (index) Bất kỳ thuộc t nh nào trong tương tự nhau.
MongDB cũng c th tạo chỉ mục thứ cấp nên khá 2.3.3. Cơ sở dữ liệu (Database)
thuận lợi trong vấn đề truy xuất dữ liệu. MongoDB tập hợp các bộ sưu tập vào các cơ sở dữ
- Nhân b n (replication) MongoDB hỗ trợ sao chép dữ liệu [1]. Một th hiện của MongoDB c th chứa nhiều cơ
liệu không đồng bộ giữa các máy chủ, đ m b o t nh sở dữ liệu. Mỗi cơ sở dữ liệu c bộ quyền riêng và được
dự phòng, sao lưu và phục hồi dữ liệu tự động. lưu trữ trên nhưng file riêng lẻ.
- Cân bằng t i (load balancing) MongoDB hỗ trợ mở
2.3.4. Thiết kế mô hình dữ liệu trong MongoDB
rộng dữ liệu theo chiều ngang sử dụng kỹ thuật
sharding, điều này cho phép người dùng c th thêm Vấn đề quan trọng khi thiết kế mô hình dữ liệu trong
nhiều máy đ ki m soát vấn đề tăng trưởng dữ liệu c MongoDB là xác định cấu trúc của document và cách
th gây quá t i cho hệ thống. bi u diễn mối quan hệ giữa chúng căn cứ vào đặc t nh của
- Lưu trữ file (File storage) Bất kỳ file nào cũng c th dữ liệu cũng như nhu cầu truy xuất xử lý dữ liệu thực tế
được lưu trong MongoDB v i chức năng GridFS, vì trong từng ứng dụng. C 2 cách đ bi u diễn mối quan hệ
vậy MongoDB c th sử dụng như là một hệ thống của dữ liệu trong MongoDB là tham chiếu và nhúng [1,
file. 2, 3].
- Thống kê (aggregation) Ngoài các hàm truy vấn dữ - Nhúng (embeded) Bi u diễn mối quan hệ của dữ liệu
liệu đơn gi n, MongoDB cung cấp một số lượng l n bằng cách nhúng document này trong một document
công cụ phân t ch dữ liệu phức tạp bằng cách sử dụng khác. Lược đồ loại này được xem là phi chuẩn h a
MapReduce. (Hình 3)
2.3. Các khái niệm cơ bản trong MongoDB
2.3.1. Văn bản (Document)
Văn b n [1, 4] là một đơn vị dữ liệu cơ b n trong
MongoDB, tương đương v i một b n ghi trong CSDL
quan hệ. Văn b n là một tập hợp các cặp kh a và giá trị
tương ứng (key-value).

Hình 3. Biểu diễn nhúng

Hình 1. Cấu trúc một document Mô hình dữ liệu sử dụng kỹ thuật nhúng cho phép ứng
Các giá trị trong văn b n không chỉ là các giá trị thô dụng lưu trữ các dữ liệu liên quan trong cùng một
như chuỗi hay số mà chúng c th là một objectid, m ng document, kết qu là ứng dụng c th cầnthực hiện t truy
hay văn b n con. vấn và cập nhật dữ liệu hơn đ hoàn thành yêu cầu xử lý
nào đ . Tuy nhiên, mô hình dữ liệu loại này c th d n t i
2.3.2. Bộ sưu tập (Collection) tình trạng k ch thư c quá l n của document, điều này sẽ
gây kh khăn cho việc lưu trữ cũng như xử lý dữ liệu.
- Tham chiếu (references) Tham chiếu lưu trữ mối
quan hệ giữa dữ liệu bằng cách nhúng liên kết từ
document này t i document khác (Hình 4). Dễ dàng
nhận thấy đây là mô hình dữ liệu đã chuẩn h a.

Hình 2. Cấu trúc một collection


Bộ sưu tập [1, 4] là một nh m các văn b n. Nếu một
văn b n tương đương v i một m u tin trong CSDL quan
3 KỶ YẾU HỘI THẢO KHOA HỌC CITA 2015 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC”

{
"_id" : "ASP",
"TenMH": "Lập trình ASP.net",
"SoTinChi": 2
"MonHocTruoc": ["LTC", "TKW"]
}
Hình 6. Document Môn học
3.1.3. Document “Lớp học phần”
Hình 4. Biểu diễn tham chiếu {
Sử dụng kỹ thuật tham chiếu trong mô hình dữ liệu sẽ "_id" : "LHP01",
hạn chế được vấn đề dư thừa dữ liệu hơn so v i kỹ thuật "TenLop":"Lập trình ASP.net 01",
nhúng. Tuy nhiên MongoDB lại không hỗ trợ việc join dữ "MonHoc": "ASP",
liệu nên một yêu cầu xử lý liên quan đến nhiều document "KhoaHoc": 13,
cần ph i thực hiện nhiều lần truy vấn và cập nhật dữ liệu. "Khoa": "CNTT",
"SoLuongToiDa": 80,
2.3.5. Tính nguyên tố trong một document (Atomicity)
"DaDangKy": 10,
MongoDB dù không hỗ trợ transaction như trong "Tuan":[1,2,3,4,5,6,7,8,9,10],
CSDL quan hệ nhưng các thao tác c t nh nguyên tố trong "Thu": 2,
một document [1, 2, 3]. Ch nh vì vậy những vấn đề liên "Tiet": [ 4, 5, 6 ],
quan đến transaction trong một số trường hợp c th gi i "Phong": "A401"
quyết được bằng cách thiết kế mô hình dữ liệu phù hợp. "GiangVien" : "",
3. Mô hình dữ liệu của Hệ thống đăng ký tín chỉ "SVDangKy":["S01","S02","S03",
Trong quá trình thiết kế mô hình dữ liệu tác gi đã "S04","S05","S06",
xem xét đến nhiều yếu tố hạn chế dư thừa dữ liệu, tối ưu "S07","S08","S09",
truy vấn, đ m b o các ràng buộc toàn vẹn, đ m b o vấn "S10"]
}
đề truy xuất dữ liệu đồng thời. Một số ràng buộc toàn vẹn
trong hệ thống đăng ký t n chỉ như qui định số lượng sinh
Hình 7. Document Lớp học phần
viên tối đa của một l p học phần, qui định số t n chỉ tối đa
của sinh viên trong một kỳ, thời kh a bi u của một sinh 3.2. Mô hình dữ liệu quan hệ
viên đ m b o không c sự trùng lắp, ràng buộc về môn
học trư c,...
Mô hình dữ liệu được thiết kế trên c hai hệ thống là
MongoDB và CSDL quan hệ. Mục đ ch là ki m tra hiệu
suất hoạt động của MongoDB so v i hệ CSDL quan hệ
truyền thống.
3.1. Mô hình dữ liệu MongoDB
Mô hình dữ liệu trong MongoDB gồm các collection
sinh viên, môn học, l p học phần. Các document tượng
trưng cho từng collection như sau
3.1.1. Document “Sinh viên”
{
"_id" : "S01",
"TenSV": "Nguyễn Văn C",
"KhoaHoc": 14,
"Khoa": "CNTT",
"MatKhau": ****, Hình 8. Mô hình dữ liệu quan hệ
"MonDaHoc":["LTC","TRR","TCC", 4. Thực nghiệm và đánh giá
"CSDL","TKW"] ]
} 4.1. Cài đặt chương trình
Đ đánh giá gi i pháp thay thế MongoDB cho CSDL
Hình 5. Document Sinh viên
quan hệ trong hệ thống đăng ký t n chỉ, tác gi đã xây
3.1.2. Document “Môn học” dựng 2 website đăng ký t n chỉ 1 website kết nối
MongoDB, 1 website kết nối SQL Server v i các mô hình
dữ liệu được thiết kế trong mục 3.
Hai website được xây dựng trên nền t ng ASP.Net
MV-C4 framework. Công cụ sử dụng là MS Visual
Nguyễn Thị Ly Sa 4
Studio 2012, MongoDB 3.0 và SQL Server 2008. Website 5. Kết luận và hướng phát triển
c 3 chức năng ch nh là đăng nhập và đăng ký học phần Tác gi đã nghiên cứu gi i pháp thay thế MongoDB
và hủy đăng ký học phần. trong hệ thống đăng ký t n chỉ nhằm gi i quyết sự quá t i
Giao diện chương trình server thường xuyên x y ra cho hệ thống này. Sự thay thế
này cho kết qu kh thi.
Hạn chế của đề tài là chỉ xem xét việc dùng
MongoDB thay cho CSDL quan hệ trong phạm vi phân
hệ đăng ký t n chỉ mà chưa xét đến c hệ thống qu n lý
đào tạo. Bởi việc thay thế này trong hệ thống qu n lý đào
tạo cần thiết ph i xét đến nhiều yếu tố như t nh toàn vẹn
của dữ liệu, t nh b o mật… và đặc biệt là sự đ m b o về
t nh ổn định của hệ thống bởi vì MongoDB cũng m i tồn
tại trong một thời gian ngắn trong khi CSDL quan hệ v i
những ưu đi m nổi trội đã được ki m chứng trong rất
nhiều ứng dụng suốt hơn 40 năm qua.
Hình 9. Giao diện chương trình
Đ c th đưa vào sử dụng thực tế, phân hệ đăng ký
t n chỉ m i (sử dụng MongoDB) cần thiết ph i đồng bộ
4.2. Đánh giá kết quả dữ liệu v i các phân hệ khác đang tồn tại (sử dụng CSDL
Đ so sánh hiệu qu hoạt động của hai hệ thống dùng quan hệ) đ đ m báo t nh nhất quán trong c hệ thống
MongoDB và SQL Server, tác gi sử dụng công cụ test tự qu n lý đào tạo. Đây ch nh là hư ng phát tri n của đề tài.
động Load Test của MS Visual Studio 2012. Kịch b n
dùng đ test trên 2 hệ thống hoàn toàn giống nhau, gồm
các thao tác đăng nhập, đăng ký l p học phần và hủy Tài liệu tham khảo
đăng ký l p học phần. [1] K. Chodorow, M.Dirolf.MongoDB - The Definitive Guide. 2010.
Published by O’Reilly Media, Inc.
V i các thông số đầu vào cho kịch b n test bắt đầu là http://my.safaribooksonline.com
10 user, cứ sau 10 giây thì c 50 user vào, số user tối đa là [2] R. Copeland. MongoDB Applied Design Patterns. 2013.
500 user và thời gian test là 10 phút, ta c kết qu test Published by O’Reilly Media, Inc.
http://my.safaribooksonline.com
tổng quát trong Hình 10. [3] Learning MongoDB and Source Downloads
V i các thông số đầu vào khác bắt đầu là 10 user, cứ http://docs.mongodb.org/manual/
[4] NoSQL 2009. Blog.sym-link.com
sau 3 giây thì c 100 user vào, số user tối đa là 1000 user
và thời gian test là 10 phút, ta c kết qu test tổng quát
trong Hình 11.
Sau các lần load test,thời gian trung bình của một
response trong hệ thống dùng MongoDB gấp kho ng 10
lần so v i hệ thống dùng SQL Server. V i kết qu nhận
được, nhận thấy rằng gi i pháp thay thế MongoDB cho
CSDL quan hệ trong hệ thống đăng ký t n chỉ là hoàn toàn
kh thi.
(a) Hệ thống dùng SQL server (b) Hệ thống dùng MongoDB

Hình 10. Kết quả tổng quát load test lần 1

(a) Hệ thống dùng SQL server (b) Hệ thống dùng MongoDB

Hình 11. Kết quả tổng quát load test lần 2

You might also like