Tải bản đầy đủ (.docx) (52 trang)

(TIỂU LUẬN) TIỂU LUẬN kết THÚC học PHẦN đề tài tìm HIỂU về hệ QUẢN TRỊ cơ sở dữ LIỆU MONGODB

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

NGÂN HÀNG NHÀ NƯỚC VIỆT NAM

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP.HỒ CHÍ MINH
KHOA HỆ THỐNG THƠNG TIN QUẢN LÝ



-------

-------

TIỂU LUẬN KẾT THÚC HỌC PHẦN

Đề tài:

TÌM HIỂU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ
LIỆU MONGODB

Môn: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Họ và tên:
MSSV:
LỚP: ITS322_202_D02
Giảng viên hướng dẫn: ThS Trịnh Hồng Nam

Thành phố Hồ Chí Minh, ngày 12 tháng 07 năm 2021



NHẬN XÉT CỦA GIẢNG VIÊN


…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………


LỜI MỞ ĐẦU
Từ nửa cuối của thế kỷ 20 cho đến nay, thuật ngữ “bùng nổ thông tin” trở nên rất
quen thuộc và dường như trở thành tên của một thời kỳ. Với sự phát triển của khoa
học công nghệ, đặc biệt là các trang mạng xã hội, mỗi giây con người đón nhận hàng
triệu thơng tin khác nhau đến nỗi mà người ta phải đề cập đến hiện tượng “bội thực
thông tin”. Với khối lượng dữ liệu ngày một lớn như thế, các hệ thống quản trị cơ sở
dữ liệu quan hệ như trước đây sẽ mất rất nhiều thời gian chỉ để hiển thị một trang web
hay chỉ trả lời một yêu cầu API. Nhất là khi các ứng dụng xử lý thông tin ngày một
phức tạp. Lúc này, cơ sở dữ liệu SQL đã gây ra rất nhiều hạn chế, cụ thể là các lược
đồ /schema thiếu linh hoạt khiến chúng trở nên khơng cịn phù hợp.
Để đáp ứng với nhu cầu xử lý một lượng lớn thông tin, những công nghệ mới dần
xuất hiện như công nghệ lưu trữ đám mây, sử dụng các phương pháp đẩy nhanh tốc độ
, rút ngắn chu trình,... Và cùng với đó, cơ sở dữ liệu NoSQL ra đời với sự linh hoạt
trong truy vấn, lưu trữ , thao tác một lượng lớn thông tin, tốc độ vận hành ở công suất

cao, trở thanh một lựa chọn tuyệt vời cho các nhà phát triển phần mềm.
Ngày nay, NoSQL đã được ứng dụng ngày càng phổ biến. Để có thể hỗ trợ người
dùng dễ dàng sử dụng loại cơ sở dữ liệu này, hàng loạt hệ quản trị cơ sở dữ liệu đã ra
đời và nổi bật nhất trong số đó chính là hệ quản trị cơ sở dữ liệu MongoDB. Theo các
khảo sát cho thấy hiện nay có khoảng 33000 cơng ty sử dụng MongoDB trên tồn thế
giới, được sử dụng nhiều nhất ở các nước phát triển về công nghệ như Mỹ(48%), Anh
(7%) và Ấn Độ (7%). Với những tính năng nổi bật của mình, MongoDB rất có tiềm
năng để phát triển mạnh mẽ trong tương lai, khi mà dữ liệu được sinh ra ngày càng
nhiều. Do đó, trong bài tiểu luận này, em sẽ tìm hiểu về hệ quản trị cơ sở dữ liệu
MongoDB với 4 phần chính như sau:
-

Chương 1: Tổng quan về hệ quản trị cơ sở dữ liệu MongoDB
Chương 2: Quản trị vận hành với hệ quản trị cơ sở dữ liệu MongoDB
Chương 3: Quản trị thành phần với hệ quản trị cơ sở dữ liệu MongoDB
Chương 4: Quản trị người dùng với hệ quản trị cơ sở dữ liệu MongoDB


MỤC LỤC
CHƯƠNG 1: TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB......1
I.

Một số khái niệm cơ bản.....................................................................................1
1. Cơ sở dữ liệu (Database).................................................................................1
2. Hệ quản trị cơ sở dữ liệu (Database Management System).............................1
3. Cơ sở dữ liệu quan hệ (Database Relationship)...............................................2

II. Giới thiệu............................................................................................................2
1. Tìm hiểu về NoSQL........................................................................................2
2. Tìm hiểu về cơng ty MongoDB Inc.................................................................7

3. Tìm hiểu về hệ quản trị cơ sở dữ liệu MongoDB.............................................8
4. Một số khái niệm trong MongoDB................................................................ 11
III.

Lựa chọn phiên bản cài đặt............................................................................ 13

IV.

Cài đặt và cấu hình........................................................................................ 14

V. Các thành phần của MongoDB......................................................................... 19
CHƯƠNG 2: QUẢN TRỊ VẬN HÀNH VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
MONGODB................................................................................................................ 20
I.

Tạo và cấu hình cơ sở dữ liệu............................................................................ 20
1. Tạo cơ sở dữ liệu........................................................................................... 20
5. Xóa database.................................................................................................. 21

II. Sao lưu dữ liệu.................................................................................................. 21
III.

Phục hồi dữ liệu............................................................................................. 23

CHƯƠNG 3: QUẢN TRỊ THÀNH PHẦN VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
MONGODB................................................................................................................ 23
I.

Bộ sưu tập (Collection)..................................................................................... 23
2. Tạo Collection............................................................................................... 23

2. Một số kiểu dữ liệu trong MongoDB............................................................. 26
3. Các thao tác CRUD........................................................................................ 27
4. Một số toán tử so sánh................................................................................... 28

II. Khung nhìn........................................................................................................ 28
1. Tạo khung nhìn.............................................................................................. 28
4. Các hạn chế trên khung nhìn.......................................................................... 29
5. Các thao tác được hỗ trợ trên khung nhìn:..................................................... 29


III.

Chỉ mục......................................................................................................... 29

IV.

Hàm và thủ tục (Stored Procedure -SP)......................................................... 31

V. Ràng buộc......................................................................................................... 33
VI.

Bẫy lỗi (Trigger)............................................................................................ 34

CHƯƠNG 4: QUẢN TRỊ NGƯỜI DÙNG VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
MONGODB................................................................................................................ 34
I.

Quyền và vai trò (role) trong MongoDB........................................................... 34
1. Các quyền và vai trị tích hợp có sẵn trong hệ thống...................................... 34
2. Tạo quyền và vai trò tùy chỉnh (Role)........................................................... 37


II. Quyền đăng nhập hệ thống................................................................................ 38
III.

Quyền truy xuất dữ liệu................................................................................. 40


DANH MỤC HÌNH ẢNH
Hình 1 Cơ sở dữ liệu SQL và NoSQL..........................................................................1
Hình 2 Cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu.........................................................1
Hình 3 Cơ sở dữ liệu quan hệ.......................................................................................2
Hình 4 Sự khác nhau giữa NoSQL và SQL trong ứng dụng và cấu trúc lưu trữ. Nguồn
: news.bnn.vn................................................................................................................4
Hình 5 Mơ hình lưu trữ của CSDL NoSQL nhóm Key-Value. Nguồn: dotnet.edu.vn .. 5
Hình 6 Một record được lưu trữ trong cơ sở dữ liệu "Collumn Family".......................6
Hình 7 Document Database ở định dạng JSON và XML. Nguồn: dotnet.edu.vn.........6
Hình 8 Mơ hình Cơ sở dữ liệu đồ thị. Nguồn: dotnet.edu.vn........................................7
Hình 9 Trụ sở chính của MongoDB Inc. . Nguồn: usacontactdetails.com....................7
Hình 10 Logo của hệ quản trị CSDL MongoDB...........................................................8
Hình 11 Minh họa một số thuật ngữ trong MongoDB................................................ 12
Hình 12 Ví dụ về cấu trúc Document trong MongoDB............................................... 12
Hình 13 So sánh về cấu trúc tổ chức lưu trữ trong SQL và MongoDB.......................13
Hình 14 Giao diện trang chủ của MongoDB............................................................... 15
Hình 15 kiến trúc của MongoDB [2].......................................................................... 19
Hình 16 Các kiểu dữ liệu trong MongoDB................................................................. 27


DANH MỤC BẢNG BIỂU
Bảng 1 Các tính năng của MongoDB. Nguồn: MongoDB Documentation..................9
Bảng 2 Lịch sử phát hành MongoDB. Nguồn : MongoDB Documentation................14

Bảng 3 Các lựa chọn tạo backup trong MongoDB...................................................... 23
Bảng 4 các tùy chọn backup....................................................................................... 23
Bảng 5 Các tùy chọn cấu hình cho Collection Nguồn: MongoDB Documentation....24
Bảng 6 Các thao tác CRUD trong MongoDB............................................................. 27
Bảng 7. Các toán tử so sánh trong MongoDB. Nguồn:viblo.asia................................ 28
Bảng 8 Các thao tác trên view.................................................................................... 29
Bảng 9 Danh sách các tùy chọn để tạo chỉ mục.......................................................... 30
Bảng 10 Nhóm Database User Roles.......................................................................... 35
Bảng 11 Nhóm Database Adminnistration Roles........................................................ 35
Bảng 12 Nhóm All Database Roles............................................................................. 36


DANH SÁCH TỪ VIẾT TẮT
CSDL
RDBMS
NoSQL
CRUD
GUI
SQL
NoSQL


CHƯƠNG 1: TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB
I.
Một số khái niệm cơ bản
1. Cơ sở dữ liệu (Database)
Cơ sở dữ liệu ( Database) là một thuật ngữ được sử dụng thường xuyên trong lĩnh vực
công nghệ thông tin. Theo các chuyên gia, CSDL được định nghĩa là “ một tập hợp
các dữ liệu có tổ chức, thường được lưu trữ và truy cập điện tử từ hệ thống máy tính.”.
Hay có thể hiểu CSDL là một tập hợp các dữ liệu có liên quan với nhau về mặt luận lý

đã được tổ chức và sắp xếp. Hiện nay CSDL được phân làm 2 loại bao gồm :
-

SQL: Dữ liệu được mơ hình hóa dưới dạng các hàng và cột trong bảng, sử dụng
ngôn ngữ T-SQL để truy vấn dữ liệu.
NoSQL: bao gồm các loại dữ liệu phi quan hệ được mơ hình hóa dưới dạng các
loại phương tiện khác . CSDL này được gọi là NoSQL vì nó sử dụng các ngơn
ngữ truy vấn khác SQL.

Hình 1 Cơ sở dữ liệu SQL và NoSQL

2. Hệ quản trị cơ sở dữ liệu (Database Management System)
Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) là phần mềm
tương tác với người dùng cuối, các ứng dụng và chính CSDL để thu thập và phân tích
các CSDL này. Hệ quản trị CSDL và CSDL ln có mối quan hệ chặt chẽ với nhau.

Hình 2 Cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu

1


3. Cơ sở dữ liệu quan hệ (Database Relationship)
Năm 1970, thuật ngữ “cơ sở dữ liệu quan hệ” đã được giới thiệu bởi EF Codd tại IBM
trong tài liệu nghiên cứu của mình “ A relational
Model of Data for Large Shared Data Banks”.
Trong tài liệu này, ông đã định nghĩa thuật ngữ
“Cơ sở dữ liệu quan hệ” như sau:
“Cơ sở dữ liệu quan hệ tổ chức dữ liệu theo các
bảng và có quan hệ với nhau để giảm thiểu sự dư
thừa dữ liệu đồng thời vẫn đảm bảo sự hiệu quả

trong lưu trữ và truy xuất dữ liệu ”
Ngày nay , cơ sở dữ liệu quan hệ được sử dụng Hình 3 Cơ sở dữ liệu quan hệ
phổ biến trong hầu hết các phần mềm quản lý dữ liệu .

AI.

Giới thiệu
1. Tìm hiểu về NoSQL
a) Khái niệm NoSQL

Cơ sở dữ liệu NoSQL (viết tắt của “Not SQL” hoặc “Not Only SQL”) là một cơ sở dữ
liệu không quan hệ (Non-Relational). NoSQL là tên gọi chung cho các cơ sở dữ liệu
không sử dụng các bảng như MySQL hay SQL Server. Nó khơng sử dụng mơ hình cơ sở
dữ liệu quan hệ (RDBMSs) để lưu trữ và truy cập dữ liệu mà sử dụng mơ hình lưu trữ
key- value . Thay vì lưu trữ dữ liệu trong các bảng như một cơ sở dữ liệu truyền thống,
một CSDL NoSQL lưu trữ từng hạng mục riêng với một khóa duy nhất.Ngồi ra
, NoSQL còn là một hệ thống sử dụng dữ liệu phân tán. Tức là dữ liệu của hệ thống này
không chỉ bao gồm những gì mà chúng ta nhập vào mà cịn có thể là dữ liệu từ các file
hoặc video,... và chúng được lưu trữ ở nhiều server khác nhau. Điều này cung cấp một
cách tiếp cận nhiều linh hoạt hơn để lưu trữ dữ liệu hơn là một cơ sở dữ liệu quan hệ .

Với việc lưu trữ dữ liệu phân tán, NoSQL hỗ trợ rất tốt trong việc xử lý một khối
lượng lớn dữ liệu lên đến hàng petabytes mà khơng cần phải có tài ngun phần cứng
cao. Nó chia dữ liệu của mình ra để lưu trữ trên nhiều Server khác nhau tạo điều kiện
cho việc mở rộng theo chiều ngang một cách thuận lợi với chi phí khơng q cao. Bên
cạnh đó, việc lưu trữ trên nhiều Server cũng làm cho NoSQL có độ chịu tải và độ chịu
lỗi cao. Nhiều hệ thống cơ sở dữ liệu NoSQL cũng sử dụng mã nguồn mở.
b) Lịch sử phát triển của NoSQL
Thuật ngữ NoSQL được giới thiệu lần đầu tiên bởi Carlo Stozzi vào năm 1998, lúc
này nó cịn được gọi là Lightweight open source relational database . Tuy nhiên, các

khái niệm về cơ sở dữ liệu này vẫn chưa được hồn thiện và vẫn cịn mang hướng cơ
sở dữ liệu quan hệ. Đến đầu năm 2009, trong sự kiện thảo luận về “ các cơ sở dữ liệu
phân tán , không quan hệ nguồn mở”, Johan Oskarsson của Last.fm đã giới thiệu lại
thuật ngữ NoSQL. Đây là một cột mốc đánh dấu sự phát triển của hệ cơ sở dữ liệu
mới - NoSQL. Từ đó, NoSQL trở nên phát triển và phổ biến và đặc biệt thông dụng
với các mạng xã hội như: Facebook, Twitter,...
2


c) Một số thuật ngữ trong NoSQL

- Ràng buộc (Relational)
- Không ràng buộc ( Non – Relational) Khả năng mở rộng ( High Scalability)
- Khả năng mở rộng theo chiều dọc ( Vertical scalable)
- Khả năng mở rộng theo chiều ngang ( Horizontal scalable) Phân tán dữ liệu ( Distributed data)
- Triển khai linh hoạt ( Deployment Flexibility)
- Tính sẵn sàng (High Availability)
- Nhất quán cuối ( Eventual consistency) Lưu trữ tốt (Durability)
d) So sánh CSDL NoSQL và CSDL SQL
Hiện nay, có 2 loại hình cơ sở dữ liệu phổ biến nhất là SQL và NoSQL. Tuy cả hai
đều được sử dụng phổ biến nhưng chúng vẫn có những điểm khác nhau như sau:
Tính năng
Loại hình

Ngơn ngữ dữ liệu
Hiệu suất

Khả năng mở rộng

Tốc độ đọc/ghi



Phần cứng
Thay đổi số node trong hệ
thống

Truy vấn và báo cáo

Ứng dụng

Qua bảng trên ta có thể thấy NoSQL có những ưu điểm vượt trội hơn SQL về khả
năng xử lý và lưu trữ dữ liệu. Nhưng NoSQL không thể thay thế được SQL mà chúng
sẽ hỗ trợ, bổ sung cho SQL để xây dựng một hệ thống tốt hơn. Hiện nay, trên thế giới
đã có sự xuất hiện của một loại cơ sở dữ liệu mới, là sự kết hợp giữa NoSQL và SQL ,
tên là NewSQL.

Hình 4 Sự khác nhau giữa NoSQL và SQL trong ứng dụng và cấu trúc lưu trữ. Nguồn : news.bnn.vn

4


e) Phân loại các CSDL NoSQL

Ngày nay, với sự phổ biến của NoSQL, thì cơ sở dữ liệu này cũng được phát triển và
phân thành nhiều loại khác nhau, các loại Cơ sở dữ liệu này khác nhau về cách lưu trữ
dữ liệu. Chúng được chia thành 5 nhóm như sau:
-

Key-value: Đây là cơ sở dữ liệu được phát triển dựa trên ý tưởng sử dụng bảng
băm (hash – table), nó có một khóa duy nhất và một con trỏ chỉ đến một mục

dữ liệu cụ thể. Cơ sở dữ liệu này có khả năng phân mảnh cao và cho phép mở
rộng quy mô theo chiều ngang ở các quy mơ lớn. Các mơ hình loại này đơn
giản và dễ thực hiện nhưng nó khơng hiệu quả khi chỉ truy vấn hoặc update đến
một phần dữ liệu trong value. Cơ sở dữ liệu NoSQL loại Key-values thường
được sử dụng cho trị chơi, cơng nghệ quảng cáo và đặc biệt thích hợp cho IoT

Key
Value

Hình 5 Mô hình lưu trữ của CSDL NoSQL nhóm Key-Value. Nguồn: dotnet.edu.vn

-

Cơ sở dữ liệu tài liệu ( Document Database) :Loại này được xây dựng dựa trên
ý tưởng từ Lotus Noted và tương tự như loại Key- value. Mơ hình này bao gồm
tập hợp nhiều document. Bên trong mỗi document là tập hợp các key- value và
các cặp key-value này được lồng ghép với nhau. Dữ liệu trong những
document này thường được biểu diễn dưới dạng một đối tượng văn bản hoặc
JSON. Với loại cơ sở dữ liệu NoSQL này thì việc truy vấn sẽ được thực hiện
hiệu quả hơn. Tính chất linh hoạt và phân cấp của văn bản cho phép chúng phát
triển phù hợp với yêu cầu của ứng dụng. Hiện nay, Amazon DocumentDB và
MongoDB là các cơ sở dữ liệu tài liệu phổ biến cung cấp các API mạnh mẽ và
trực quan để phát triển linh hoạt và lặp lại.

5


Hình 7 Document Database ở định dạng JSON và XML. Nguồn: dotnet.edu.vn

-


Cơ sở dữ liệu “Column Family”: Cơ sở dữ liệu này được tạo ra để lưu và xử lý
lượng lớn dữ liệu trên nhiều server. Nó lưu trữ dữ liệu trong nhiều cột, nhiều
dịng và mỗi dịng sẽ có key riêng. Column Family bao gồm một nhóm các dữ
liệu có liên quan và được truy cập cùng nhau. Một số cơ sở dữ liệu dạng này
phổ biến hiện này là: Cassandra, Amazon DynamoDB,...

Hình 6 Một record được lưu trữ trong cơ sở dữ liệu "Collumn Family".

-

Cơ sở dữ liệu đồ thị (Graph Database): giống như tên gọi , cơ sở dữ liệu này sử
dụng cấu trúc của đồ thị để lưu trữ dữ liệu . Nó khơng giống với cơ sở dữ liệu
quan hệ lưu dữ liệu dưới dạng bảng hay các loại cơ sở dữ liệu NoSQL ở trên.
Mỗi bản ghi (record) trong cơ sở dữ liệu này được gọi là một Node, các node
được kết nối với nhau bằng các quan hệ giống như trong Hệ cơ sở dữ liệu quan
hệ (RMDBS) và có thể có các thuộc tính. Các mối quan hệ giữa các node này
khơng được tính vào thời gian truy vấn nên việc truy vấn sẽ nhanh hơn so với
trong RMDBS. Hiện này có rất nhiều cơ sở dữ liệu đồ thị có sẵn như Neo4J,
Infinite Graph, OrientDB,...

6


Hình 8 Mô hình Cơ sở dữ liệu đồ thị. Nguồn: dotnet.edu.vn

2. Tìm hiểu về cơng ty MongoDB Inc.

Hình 9 Trụ sở chính của MongoDB Inc. . Nguồn:
usacontactdetails.com


MongoDB Inc. là một trong những công ty
công nghệ hàng đầu của Mỹ chuyên phát
triển và cung cấp sự hỗ trợ cho các doanh
nghiệp trong việc quản trị nguồn tài
nguyên quý giá nhất – đó chính là thơng
tin. Cơng ty được thành lập vào Ngày 1
tháng 11 năm 2007 bởi Dwight Merriman,
Eliot Horowitz và Kevin Ryan với tên gọi
đầu tiên là 10Gen, đặt trụ sở chính tại
thành phố New York, Mỹ.

Dwight Merriman, Eliot Horowitz và Kevin Ryan đều là cựu thành viên của
DoubleClick – hiện thuộc quyền sở hữu của Google. Khi còn làm việc tại
DoubleClick, họ đã nhận thấy những vấn đề lớn khi sử dụng những hệ cơ sở dữ liệu
hiện có như Oracle để xử lý một lượng lớn dữ liệu. Ở những hệ thống cũ, khi chúng ta
muốn mở rộng quy mơ thì sẽ gắn liền với việc phải mua thêm những máy chủ mới và
đây là một thách thức lớn đối với các doanh nghiệp vì chi phí phải bỏ ra rất lớn. Với
những trăn trở về vấn đề phát triển và khả năng mở rộng khi xây dựng các ứng dụng
trong thiết kế web để hỗ trợ xử lý một lượng lớn dữ liệu, Dwight Merriman, Eliot
Horowitz và Kevin Ryan đã lấy cảm hứng và quyết định thành lập 10Gen.
10Gen lúc đầu được thành lập với mục đích tạo ra một nền tảng đám mây hồn tồn dựa
trên các thành phần mã nguồn mở. Tuy nhiên, họ đã khơng thể tìm thấy nền tảng cơ sở dữ
liệu nào hiện có có thể đáp ứng đc mong muốn của mình. Do đó cơng ty này đã bắt đầu
phát triển một hệ thống cơ sở dữ liệu mới dựa trên DOB (Document-Oriented Database)
và đặt tên cho cho hệ thống này là MongoDB. Trong q trình đó, họ cũng đã nhận ra
tiềm năng rất lớn của MongoDB, 10Gen đã từ bỏ hồn tồn mục đích ban
7



đầu của mình là tạo ra một nền tảng đám mây để chuyển hẳn sang tập trung vào việc
phát triển và duy trì MongoDB.
Tháng 2 năm 2009, 10gen đã cho ra mắt phần mềm MongoDB dưới dạng một dự án
mã nguồn mở. Để thương mại hóa sản phẩm chủ lực của mình, các nhà sáng lập đã
quyết định đổi tên của công ty thành MongoDB Inc. vào năm 2013 . Điều này đã làm
cho công ty MongoDB trở nên liên kết chặt chẽ hơn với sản phẩm cốt lõi của công ty.
Cùng với sự phát triển của dữ liệu lớn và điện toán đám mây trong các doanh nghiệp,
MongoDB ngày càng trở nên phổ biến và được ưa chuộng vì những lợi ích nó lại.
Năm 2017, MongoDB trở thành một công ty giao dịch công khai, được niêm yết trên
NASDAQ với tên gọi MDB với giá IPO là 24 đô la một cổ phiếu.
3. Tìm hiểu về hệ quản trị cơ sở dữ liệu MongoDB.
a) Giới thiệu về MongoDB

Hình 10 Logo của hệ quản trị CSDL MongoDB

MongoDB là một phần mềm quản trị cơ sở dữ liệu mã nguồn mở được thiết kế theo
kiểu hướng tài liệu. Bên cạnh đó, MongoDB cịn là một cơ sở dữ liệu khơng quan
hệ ,với việc sử dụng cơ chế NoSQL các dữ liệu trong hệ thống được cấu trúc một cách
linh hoạt không cần phải tuân theo một dạng cấu trúc nhất định nào. Nhờ có khả năng
đó nên MongoDB có thể được dùng để lưu trữ các dữ liệu có cấu trúc phức tạp ,đa
dạng và khơng cố định (hay cịn gọi là Big Data).
MongoDB sử dụng các tài liệu (documents) linh hoạt thay vì các bảng và hàng để xử lý
và lưu trữ các dạng dữ liệu khác nhau như thông thường. Đơn vị dữ liệu cơ bản trong cơ
sở dữ liệu này là một tập hợp các cặp key-value. Nó cho phép các document có các field
và các cấu trúc khác nhau. Cơ sở dữ liệu này sử dụng định dạng lưu trữ tài liệu được gọi
là BSON là kiểu nhị phân của các tài liệu kiểu JSON. Là một cơ sở dữ liệu
NoSQL,MongoDB không yêu cầu hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), vì vậy nó
cung cấp một mơ hình lưu trữ dữ liệu đàn hồi (elastic) cho phép người dùng lưu trữ và
truy vấn các kiểu dữ liệu đa biến một cách dễ dàng. Điều này không chỉ


Hình 2 MongoDB là CSDL NoSQL hướng tài liệu ( nhóm Document database). Nguồn:
a/p/tim-hieu-mongo-db-4dbZN8Rq5YM

8


giúp đơn giản hóa việc quản lý cơ sở dữ liệu cho các nhà phát triển mà còn tạo ra một
mơi trường có khả năng mở rộng cao cho các ứng dụng và dịch vụ đa nền tảng.
b) Các tính năng của MongoDB

Bảng 1 Các tính năng của MongoDB. Nguồn: MongoDB Documentation
Truy
Ad Hoc:

Khả
Nhân rộng:

Cân
tải:

Lưu
file:

Tập hợp :

Giới
kích
collection :

Giao dịch:

c) Ưu và nhược điểm của MongoDB

9


Với các tính năng như trên, MongoDB đã mang lại rất nhiều lợi ích cho người dùng
mà các cơ sở dữ liệu SQL chưa có. Một số ưu điểm của MongoDB có thể kể đến như:
-

-

-

-

Tính linh hoạt lưu trữ dữ liệu: Do là một cơ sở dữ liệu NoSQL hướng Document,
các dữ liệu được lưu trữ dưới dạng JSON, nên các dữ liệu đưa vào sẽ khơng bị bó
buộc về số field, kiểu dữ liệu,... như vậy, ta có thể thêm bất cứ dữ liệu nào.
Hiệu năng cao: trong MongoDB khơng có sự ràng buộc dữ liệu như trong một
cơ sở dữ liệu quan hệ, do đó khi muốn thêm, xóa hoặc update , hệ thống sẽ
khơng mất nhiều thời gian để kiểm tra thỏa mãn các điều kiện ràng buộc. Theo
một số nghiên cứu cho thấy: “Tốc độ truy vấn của MongoDB nhanh hơn hẳn so
với các hệ quản trị cơ sở dữ liệu quan hệ. Tốc độ insert của MongoDB có thể
nhanh gấp 100 lần so với MySQL”
Khả năng mở rộng theo chiều ngang: Trong MongoDB cs một khái niệm là
Cluster . Đây là các cụm node chứa dữ liệu của hệ thống, khi muốn mở rộng hệ
thống , ta chỉ cần thêm một node mới vào trong một Cluster.
Trường “_id” trong MongoDB luôn được tự động đánh chỉ mục. Điều này đã
góp phần làm cho hệ thống đạt được hiệu suất truy vấn cao.
Là một Rich Query Language, MongoDB có sẵn các phương thức để thực hiện

các thao tác CRUD.

Bên cạnh các ưu điểm như trên, MongoDB vẫn còn tồn tại một số hạn chế trong khi
cài đặt và sử dụng:
-

-

-

Vì MongoDB khơng có các ràng buộc về dữ liệu nên khi thao tác rất dễ bị sai
dữ liệu. Do đó khi sử dụng hệ quản trị cơ sở dữ liệu này, ta cần cẩn trọng trong
thao tác để tránh ảnh hưởng đến cơ sở dữ liệu sẵn có.
Một điều đáng lo ngại khác chính là MongoDB sử dụng khá nhiều bộ nhớ. Do
dữ liệu trong MongoDB được lưu dưới dạng key-value trong khi trong mỗi
collection thường chỉ khác nhau về value nên sẽ gây ra tình trạng lặp lại key
dẫn đến sự dư thừa dữ liệu
Dữ liệu trong MongoDB cũng bị giới hạn kích thước bản ghi: mỗi document có
kích thước khơng q 16Mb .
d) Nên sử dụng MongoDB khi nào?

Mặc dù có MongoDB mang lại khá nhiều lợi ích và dễ dàng sử dụng trong việc lập trình
nhưng tùy theo từng tình huống, từng hệ thống mà ta nên cân nhắc có sử dụng phần mềm
này hay không. Một số trường hợp được khuyến khích sử dụng MongoDB như:
-

-

Khi xây dựng một hệ thống realtime yêu cầu phản hồi nhanh như mạng xã hội,
trang thương mại điện tử... Vì MongoDB có thể ghi với tốc độ rất nhanh và bảo

mật an toàn
Các hệ thống Bigdata có u cầu truy vấn nhanh
Khi máy chủ khơng có hệ quản trị cơ sở dữ liệu thì phần mềm này khá phù hợp
và nên được sử dụng
Khi muốn tìm kiếm nhanh một thơng tin trong một cơ sở dữ liệu lớn.
e) Sự phát triển của MongoDB

Hiện nay, MongoDB được sử dụng khá nhiều trong các ứng dụng như Google,
Facebook, Ebay, Adobe,.. Năm 2020, Phần mềm này được đánh giá là Cơ sở dữ liệu
10


NoSQL phổ biến và được yêu thích nhất. Trong một số diễn đàn về công nghệ, nhiều
người đánh giá rất cao các dịch vụ của MongoDB, phần mềm này có một giao diện
nhất qn giúp đơn giản hóa q trình làm việc với dữ liệu và phát triển sản phẩm của
họ. Kể từ năm 2013, khi mà sự phát triển của dữ liệu phi cấu trúc ra đời, MongoDB đã
phát triển mạnh mẽ và vượt qua cả IBM DB2, Microsoft Access và SQLite để chiếm
vị trí thứ 5 về mức độ phổ biến và là cơ sở dữ liệu đa mơ hình hướng tài liệu
( document-oriented, multi-model database) duy nhất nằm trong top 25 của bảng xếp
hạng này. Biểu đồ dưới đây đã cho thấy sự gia tăng và phát triển khơng ngừng của
MongoDB trong suốt giai đoạn đó:

Hình 3 . Sự phát triển của MongoDB giai đoạn 2013-2021. Nguồn : />
4. Một số khái niệm trong MongoDB
- ID : Đây là Field bắt buộc ( tương đương với Primary Key) phải có trong
mỗi Document. Trường này là khóa chính trong một document - đại diện cho
giá trị duy nhất trong mỗi document của MongoDB. Khi bạn thêm mới một
document thì MongoDB tự động tạo ra một ID đại diện cho document đó.
- Collection: Đây là một kho lưu trữ các document có tổ chức trong MongoDB,
thường có các Field chung giữa các Document. Có thể có nhiều Collection

trên mỗi cơ sở dữ liệu và có nhiều Document trong một Collection.
- Cursor: Con trỏ chỉ đến tập kết quả của một yêu cầu truy vấn.
- Database: Đây chính là chỗ chứa các Collection, chúng chứa các bảng giống
như các cơ sở dữ liệu RDBMS. Trên bộ nhớ vật lý một Database sẽ có một tập
tin riêng được lưu trữ. Mỗi máy chủ MongoDB có thể chứa được nhiều
Database.
- Document: Một bản ghi được gọi là một document khi bản ghi đó thuộc một
collection. Document gồm có khơng hoặc nhiều trường.

11


-

Field: là một cặp gồm key và value trong một document. Mỗi Field là một
định danh duy nhất cho một điểm giá trị.

Collection

-

-

JSON: ( JavaScript Object Notation), đây chính là một chuẩn mở rộng cho
phép mô tả dữ liệu dưới dạng văn bản dễ đọc và được lưu trữ ở dạng các cặp
key-value.
BSON: đây là một định dạng lưu trữ nhị phân của JSON, được sử dụng để lưu
trữ tài liệu và thực hiện các cuộc gọi thủ tục từ xa trong MongoDB
Index: Index là những cấu trúc dữ liệu đặc biệt, để chứa lượng nhỏ của các tập
dữ liệu để quét một cách dễ dàng. Index hỗ trợ độ phân tích các hiệu quả các

truy vấn, khi khơng có chỉ mục thì MongoDB sẽ phải quét tất cả các document
của collection để đưa ra document phù hợp với truy vấn. Nhưng khi qt như
thế sẽ khơng có hiệu quả và yêu cầu MongoDB xử lý khối lượng lớn dữ liệu.

Hình 12 Ví dụ về cấu trúc Document trong MongoDB.

12


Hình 13 So sánh về cấu trúc tổ chức lưu trữ trong SQL và MongoDB

BI.

Lựa chọn phiên bản cài đặt
Từ khi được công bố đến hiện tại, MongoDB Inc. đã cho phát hành tổng cộng 18
versions của MongoDB. Bảng dưới đây sẽ liệt kê danh sách các versions đã được phát
hành ( tính đến ngày 01/07/2021) :
Lịch sử phát hành MongoDB
Phiên
bản
1.0
1.2

1

1

Ngày phát hành

Tháng 2/2009

Tháng 12/2009

1.4
1.6

Tháng 3/ 2010
Tháng 8/ 2010

1.8
2.0
2.2
2.4

Tháng 3/ 2011
Tháng 9/ 2011
Tháng 8/ 2012
Tháng 3/ 2013

Tham khảo Wikipedia.org


2.6

Ngày 08/04/
2014

3.0

Ngày 03/03/
2015


3.2

Ngày 08/12/
2015

3,4

Ngày 29/11/
2016
Tháng 11/ 2017
Tháng 6/ 2018
Tháng 8/ 2019
Tháng 7/ 2020
Tháng 4/ 2021
Tháng 5/ 2021

3.6
4.0
4.2
4.4
4.4.5
4.4.6
Bảng 2 Lịch sử phát hành MongoDB. Nguồn : MongoDB Documentation

Hiện nay, MongoDB cung cấp 2 phiên bản cài đặt, Community Server và Enterprise
Server. Trong đó Community là phiên bản miễn phí, cịn Enterprise là phiên bản
thương mại, thường dành cho các doanh nghiệp và cần phải trả tiền để sử dụng nó.
Trong bài luận này, em sẽ sử dụng phiên bản Community Server version 4.4.6 cho hệ
điều hành Windows để cài đặt và cấu hình.

IV.

Cài đặt và cấu hình
Để cài đặt phần mềm MongoDB, đầu tiên ta sẽ truy cập vào trang chủ
để tải phần mềm. Ở giao diện tải
phần mềm, sẽ có 2 lựa chọn là download file cài đặt msi hoặc download file zip. Khi
chọn download file zip, ta chỉ cần giải nén ra khơng cần cài đặt gì, sau đó bắt đầu cấu
hình.

14


Hình 14 Giao diện trang chủ của MongoDB
Tiếp theo, ta khởi chạy file mongodb-windows-x86_64-4.4.6-signed vừa tải về.

Chọn ‘I accept the terms in the License Agreement’ và chọn Next để bắt đầu cấu hình
phần mềm cho việc cài đặt:

15


Ở bước này, ta có 2 lựa chọn để cài đặt:
-

Complete: với lựa chọn này, tất cả các chức năng sẽ được tự động cài đặt và sẽ
chiếm nhiều dung lượng ổ cứng
Custom: với lựa chọn này ta có thể tùy chọn các chức năng muốn cài và dung
lượng ổ cứng cài đặt sẽ giảm đi .

Đối với người mới sử dụng thì MongoDB đề xuất chọn Complete để cài đặt tất cả các

phần mềm hỗ trợ

Sau khi đã chọn kiểu cài đặt, ta tiếp tục cấu hình service như sau:

16


×