Giới thiệu về cơ sở dữ liệu MongoDB

Giới thiệu MongoDB

logo-mongoDB

MongoDB là một cơ sở dữ liệu mã nguồn mở thuộc họ nhà NoSQL được phát hành sử dụng miễn phí bởi công ty MongoDB. Nếu bạn là người mới nghiên cứu về NoSQL thì đây là một cơ sở dữ liệu đầu tiên nên tiếp cận bởi nó dễ dàng cài đặt và sử dụng để tiếp cận với những ý tưởng lưu trữ mới. MongoDB hoạt động trên mọi hệ điều hành phổ biến hiện nay như: Windows, Linux, OS X và hỗ trợ đầy đủ các driver cho các ngôn ngữ lập trình để giao tiếp với chúng một cách dễ dàng nhất.

Xem thêm: Cơ sở dữ liệu NoSQL là gì?

Những khái niệm mới mà MongoDB sử dụng

  • Mỗi một table (bảng dữ liệu) trong SQL sử dụng thì trong MongoDB gọi là collection (tập hợp)
  • Mỗi một record (bản ghi) trong MongoDB được gọi là document (tài liệu)

Một bản ghi của MongoDB được lưu trữ như thế nào?

Một bản ghi của MongoDB được lưu trữ dưới dạng document (tài liệu), nó được ghi xuống với cấu trúc field (trường) và value (giá trị). Nó giống như là một đối tượng JSON có dạng như sau:

mot-ban-ghi-cua-mongodb-json-document

Cách MongoDB lưu trữ một bản ghi

Điều đó giúp bạn có thể dễ dàng ép kiểu sang array (mảng) để lập trình các ứng dụng một cách dễ dàng hơn. Nói một cách dễ hiểu thì mỗi một bản ghi của MongoDB là một mảng dữ liệu riêng biệt bao gồm các cặp key, value khác nhau do đó cách lưu trữ của MongoDB là phi cấu trúc dữ liệu.

MongoDB hoạt động như thế nào?

Mô hình hoạt động của MongoDB

Mô hình hoạt động của MongoDB

  • MongoDB hoạt động dưới một tiến trình ngầm service luôn mở một cổng (Cổng mặc định là 27017) để lắng nghe các yêu cầu truy vấn, thao tác từ các ứng dụng gửi vào sau đó mới tiến hành xử lý.
  • Mỗi một bản ghi của MongoDB được tự động gắn thêm một field có tên “_id” thuộc kiểu dữ liệu ObjectId mà nó quy định để xác định được tính duy nhất của bản ghi này so với bản ghi khác, cũng như phục vụ các thao tác tìm kiếm và truy vấn thông tin về sau.
  • Trường dữ liệu “_id” luôn được tự động đánh index (chỉ mục) để tốc độ truy vấn thông tin đạt hiệu suất cao nhất.
  • Mỗi khi có một truy vấn dữ liệu, bản ghi được cache (ghi đệm) lên bộ nhớ Ram, để phục vụ lượt truy vấn sau diễn ra nhanh hơn mà không cần phải đọc từ ổ cứng.
  • Khi có yêu cầu thêm/sửa/xóa bản ghi, để đảm bảo hiệu suất của ứng dụng mặc định MongoDB sẽ chưa cập nhật xuống ổ cứng ngay, mà sau 60 giây MongoDB mới thực hiện ghi toàn bộ dữ liệu thay đổi từ RAM xuống ổ cứng.

Cơ chế phân quyền và bảo mật của MongoDB ra làm sao?

Cách mà MongoDB bảo mật dữ liệu

Cách mà MongoDB bảo mật dữ liệu

  • Cũng như các hệ cơ sở dữ liệu thông thường khác, MongoDB cũng có cơ chế xác thực phân quyền và bảo mật linh hoạt để quản trị viên có thể cấp phát quyền thao tác với cơ sở dữ liệu một cách đơn giản nhất.
  • MongoDB có thể truy cập mà không cần xác thực khi bạn tắt chế độ xác thực quyền sở hữu với cơ sở dữ liệu
  • Mặc định MongoDB sẽ có một tài khoản có tên truy cập là “admin” có quyền hạn cao nhất, có quyền thao tác với tất cả các cơ sở dữ liệu được tạo ra trên hệ thống.

Ưu và nhược điểm của MongoDB là gì?

a. Ưu điểm

  • Dữ liệu lưu trữ phi cấu trúc, không có tính ràng buộc, toàn vẹn nên tính sẵn sàng cao, hiệu suất lớn và dễ dàng mở rộng lưu trữ
  • Dữ liệu được caching (ghi đệm) lên RAM, hạn chế truy cập vào ổ cứng nên tốc độ đọc và ghi cao

b. Nhược điểm

  • Không ràng buộc, toàn vẹn nên không ứng dụng được cho các mô hình giao dịch yêu cầu độ chính xác cao
  • Không có cơ chế transaction (giao dịch) để phục vụ các ứng dụng ngân hàng
  • Dữ liệu được caching, lấy RAM làm trọng tâm hoạt động vì vậy khi hoạt động yêu cầu một bộ nhớ RAM lớn
  • Như đã giới thiệu ở trên, mọi thay đổi về dữ liệu mặc định đều chưa được ghi xuống ổ cứng ngay lập tức vì vậy khả năng bị mất dữ liệu từ nguyên nhân mất điện đột xuất là rất cao.

Lời kết

MongoDB là một cơ sở dữ liệu đang có tốc độ phát triển tốt và được sử dụng cho rất nhiều dự án công nghệ hiện nay. Với những nhược điểm nêu trên thì rất khó  có thể ứng dụng rộng rãi cho mọi bài toán, tuy nhiên giữa NoSQL và SQL đều có những thế mạnh riêng của nó. Các kỹ sư công nghệ thường áp dụng kết hợp để giải quyết các bài toán cụ thể. Với ưu điểm là một hệ cơ sở dữ liệu mã nguồn mở, nên tiềm năng ứng dụng phát triển của MongoDB là rất lớn. Hiện nay mình thấy ở trong các yêu cầu của nhà tuyển dụng thì đã đề cập tới MongoDB. Vì vậy, hi vọng với bài viết này các bạn có thể hiểu biết tổng quan hơn về loại cơ sở dữ liệu này để phục vụ cho công việc hiệu quả.