2.1. Tổng quan về hệ quản trị CSDL MongoDB
2.1.1. Giới thiệu về MongoDB
CHƯƠNG 135. Như đã trình bày ở mục 1.5.4 của chương 1, MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là cơ sở dữ liệu NoSQL và được hàng triệu người sử dụng. MongoDB được viết bằng C++. MongoDB là một cơ sở dữ liệu hướng tài liệu (document database), các dữ liệu được lưu giữ trong document kiểu JSON thay vì dạng bảng như cơ sở dữ liệu quan hệ nên truy vấn sẽ rất nhanh, cung cấp hiệu suất cao, tính khả dụng cao và khả năng mở rộng dễ dàng.
CHƯƠNG 136.
a. Hình 2.3: MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL
CHƯƠNG 137. - Với CSDL quan hệ có khái niệm bảng, các cơ sở dữ liệu quan hệ (như MySQL hay SQL Server…) dùng
các bảng để lưu dữ liệu thì với MongoDB sẽ sử dụng định nghĩa là collection thay vì bảng.
CHƯƠNG 138. - So với RDBMS thì trong MongoDB collection ứng với table, còn document sẽ ứng với row, MongoDB sẽ sử dụng các document thay cho row trong RDBMS. CHƯƠNG 139. - Các collection trong MongoDB được cấu trúc rất linh động, cho phép các dữ liệu lưu giữ không cần tuân theo một cấu trúc chắc chắn.
CHƯƠNG 140. MongoDB được thiết kế để đáp ứng nhu cầu của các ứng dụng hiện đại với nền tảng công nghệ cho phép: - Mơ hình hóa dữ liệu tài liệu: MongoDB đưa ra cho chúng ta cách tốt nhất để làm việc với dữ liệu.
- Thiết kế hệ thống phân tán: cho phép chúng ta đưa dữ liệu vào nơi mình muốn một cách thông minh.
- Một trải nghiệm thống nhất cho phép chúng ta tự do chạy ở bất cứ đâu - cho phép người dùng chứng minh cơng việc của mình trong tương lai và loại bỏ sự khóa chặt của nhà cung cấp.
CHƯƠNG 141. 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 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ọ.
CHƯƠNG 142. 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 ( documentoriented, 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 đó:
CHƯƠNG 143.
a. Hình 2.4: Sự phát triển của MongoDB từ năm 2013 đến năm 2021
CHƯƠNG 144. Một số khái niệm trong MongoDB:
CHƯƠNG 145. Database: là một container của các
collection giống như là một cơ sở dữ liệu chứa các bảng trong RDBMS. Mỗi database có một bộ các file trên hệ thống file. Server của MongoDB có thể lưu trữ được nhiều database.
CHƯƠNG 146. Collection: là một nhóm các dữ liệu thuộc cùng
loại do người dùng quy định, sự khác nhau giữa collection với table trong RDBMS đó là collection khơng có ràng buộc, quan hệ với collection khác. Mỗi dữ liệu trong collection không cố định về số trường như row trong table.
CHƯƠNG 147.
a. Hình 2.5: Dữ liệu trong Collection
CHƯƠNG 148. Document: là một tài liệu lưu trữ dưới dạng
json. Nó tương đương với row trong table của RDBMS nhưng dữ liệu trong document khá linh hoạt, nó khơng cố định có bao nhiêu trường, dữ liệu trong mỗi trường phải là cố định.
CHƯƠNG 149.
a. Hình 2.6: Dữ liệu trong Document
CHƯƠNG 150. _id: là trường bắt buộc phải có trong mỗi
document. Vì nó là bắt buộc nên nếu khơng thiết lập giá trị cho nó MongoDB sẽ tự động sinh ra trường này.
CHƯƠNG 151. Field: là một cặp key-value. Một document có
thể khơng có trường nào hoặc có thể có nhiều trường. Các trường này tương tự như các cột trong RDBMS.
CHƯƠNG 152. Embedded Documents: Nếu trong RDBMS,
chúng ta có kiểu join các bảng, ví dụ bảng person join với bảng address để biết một person có những address nào thì trong MongoDB, document của person sẽ chứa một array các document address.