Tổng quan về MongoDB

0 0 0

Người đăng: Duy Nghĩa Phùng

Theo Viblo Asia

1.Mở đầu

  • MongoDB là một cơ sở dữ liệu dạng tài liệu. Nó lưu trữ dữ liệu dưới một định dạng JSON gọi là BSON.
  • Một bản ghi trong MongoDB là một document, đây là một cấu trúc dữ liệu bao gồm các cặp khóa-giá trị, tương tự như cấu trúc của các đối tượng JSON.
  • Ví dụ image.png

2.Các thuật ngữ trong MongoDB

image.png

  • Database: Một database trong MongoDB là tập hợp các collections. Đây là nơi dữ liệu được tổ chức và lưu trữ.
  • Document: Trong MongoDB, các bản ghi được gọi là documents. Mỗi document là một cấu trúc dữ liệu chứa các cặp key-value. Các giá trị có thể là số, chuỗi, boolean, mảng, hoặc thậm chí là các document lồng nhau.
  • Collection: Một collection là một nhóm các documents liên quan. Không giống như bảng trong SQL, các documents trong một collection không cần có cùng cấu trúc hoặc kiểu dữ liệu.
  • Field: Mỗi cặp key-value trong một document được gọi là một field.
  • So sánh với SQL databases image.png
    • SQL Databases
      • Là cơ sở dữ liệu quan hệ (RDBMS), lưu dữ liệu trong các bảng có cấu trúc rõ ràng.
      • Dữ liệu liên quan được lưu ở các bảng riêng biệt, và khi cần, chúng sẽ được liên kết lại thông qua các truy vấn JOIN.
    • MongoDB
      • Là cơ sở dữ liệu dạng tài liệu, thường được gọi là cơ sở dữ liệu phi quan hệ (non-relational database) hoặc non-tabular database.
      • Dữ liệu liên quan được lưu trữ trong các documents linh hoạt, giúp truy vấn nhanh hơn vì không cần thực hiện JOIN.

3.Các mô hình triển khai MongoDB

3.1.Mô hình

Trong MongoDB, có ba mô hình triển khai chính, mỗi mô hình phục vụ các mục đích khác nhau

  • Standalone

    image.png

    • Đây là triển khai cơ bản nhất, với một instance duy nhất của MongoDB. Mô hình này phù hợp cho môi trường phát triển, thử nghiệm hoặc các ứng dụng nhỏ không yêu cầu tính sẵn sàng cao.
    • Đặc điểm:
      • Dễ cài đặt và quản lý.
      • Không có khả năng chịu lỗi; nếu server gặp sự cố, dịch vụ sẽ bị gián đoạn.
      • Không hỗ trợ mở rộng ngang.
      • Có khả năng bị ảnh hưởng tới hiệu năng do đọc, ghi liên tục và database. Do đó, cần xử lý để tối ưu khi gặp.
  • Replication

    image.png

    • Replication tạo ra một replica set, bao gồm một primary và nhiều secondary nodes. Primary node xử lý các hoạt động ghi, trong khi các secondary nodes duy trì bản sao dữ liệu và có thể xử lý các yêu cầu đọc (tùy cấu hình).
    • Đặc điểm:
      • Tăng tính sẵn sàng và khả năng chịu lỗi; nếu primary node gặp sự cố, một secondary node sẽ được bầu làm primary mới.
      • Cải thiện khả năng đọc bằng cách phân phối tải đọc đến các secondary nodes.
      • Đảm bảo dữ liệu được sao chép đồng bộ giữa các nodes.
  • Sharding

    image.png

    • Sharding phân chia dữ liệu thành các phần nhỏ gọi là shards, mỗi shard là một replica set. Mô hình này cho phép MongoDB mở rộng theo chiều ngang, xử lý các tập dữ liệu lớn và tải công việc cao.
    • Đặc điểm:
      • Phân phối dữ liệu và tải công việc trên nhiều máy chủ, cải thiện hiệu suất và khả năng mở rộng.
      • Yêu cầu cấu hình phức tạp hơn, bao gồm các config servers để lưu trữ metadata và mongos để định tuyến các yêu cầu.
      • Thích hợp cho các ứng dụng với yêu cầu lưu trữ và xử lý dữ liệu lớn.

3.2.Hạ tầng triển khai

3.2.1.Sử dụng Cloud

  • MongoDB Atlas: Là nền tảng cơ sở dữ liệu đám mây được cung cấp bởi MongoDB, cho phép bạn thiết lập và quản lý cơ sở dữ liệu nhanh chóng mà không cần phải lo lắng về quản trị thủ công.
    • Bạn được cấp 512 MB miễn phí, phù hợp để bắt đầu và thử nghiệm các tính năng của MongoDB.
    • Atlas hỗ trợ khả năng mở rộng dễ dàng, với các cụm (clusters) được quản lý trên các nhà cung cấp dịch vụ đám mây như AWS, Google Cloud, và Microsoft Azure.
  • Cách bắt đầu:
    • Truy cập MongoDB Atlas và đăng ký tài khoản miễn phí.
    • Sau khi đăng ký, bạn có thể tạo cluster miễn phí, thiết lập quyền truy cập và bắt đầu sử dụng ngay lập tức.
  • Ưu điểm của việc sử dụng cloud:
    • Không cần đầu tư vào phần cứng.
    • Tích hợp dễ dàng với các ứng dụng hiện có.
    • Được cập nhật tự động với các tính năng mới nhất. image.png

3.2.2.Triển khai On-premise

  • Đây là hình thức triển khai MongoDB trên cơ sở hạ tầng vật lý hoặc máy chủ riêng của tổ chức. Phù hợp với các tổ chức có yêu cầu bảo mật cao hoặc muốn kiểm soát hoàn toàn dữ liệu của mình.
  • Lợi ích:
    • Kiểm soát hoàn toàn việc quản lý và bảo mật cơ sở dữ liệu.
    • Không phụ thuộc vào nhà cung cấp dịch vụ đám mây.
    • Phù hợp cho các tổ chức có cơ sở hạ tầng sẵn có hoặc yêu cầu hoạt động độc lập.
  • Nhược điểm:
    • Yêu cầu đội ngũ kỹ thuật có chuyên môn để cài đặt, cấu hình, và quản lý.
    • Cần đầu tư phần cứng, phần mềm và nguồn lực bảo trì hệ thống.
  • Hướng dẫn triển khai cơ bản:
    • Tải xuống phiên bản MongoDB Community từ trang chủ MongoDB.
    • Cài đặt trên hệ điều hành phù hợp (Windows, macOS, hoặc Linux).
    • Bạn có thể tự cấu hình thêm các tệp mongod.conf để điều chỉnh các tham số như port, lưu trữ dữ liệu, và kết nối mạng.
    • Khởi động dịch vụ MongoDB và sử dụng MongoDB Shell (mongosh) để thao tác với cơ sở dữ liệu.

Kiến trúc của MongoDB

Kiến trúc của MongoDB là một phần cốt lõi trong việc hiểu cách cơ sở dữ liệu này hoạt động và quản lý dữ liệu. Tuy nhiên, do nội dung khá chi tiết và chuyên sâu, mình xin phép chia sẻ các nguồn tài liệu uy tín để các bạn tham khảo thêm:

Tài liệu tham khảo

Hãy đón đọc các bài viết tiếp theo trong chuỗi series này, cảm ơn các bạn rất nhiều😘!

Bình luận

Bài viết tương tự

- vừa được xem lúc

TÌM HIỂU VỀ MONGODB

. 1. Định nghĩa về MongoDB. . MongoDB là một cơ sở dữ liệu mã nguồn mở và là cơ sở dữ liệu NoSQL(*) hàng đầu, được hàng triệu người sử dụng.

0 0 44

- vừa được xem lúc

Mongo DB cho người mới bắt đầu !

Lời nói đầu. Gần đây, mình mới bắt đầu nghiên cứu và sử dụng mongo db nên có chút kiến thức cơ bản về Mongo muốn share và note ra đây coi như để nhở (Biết đâu sẽ có ích cho ai đó).

0 0 36

- vừa được xem lúc

Áp dụng kiến trúc 3 Layer Architecture vào project NodeJS

The problem encountered. Các framework nodejs phổ biết như Express cho phép chúng ta dễ dàng tạo ra Resful API xử lí các request từ phía client một cách nhanh chóng và linh hoạt.

0 0 80

- vừa được xem lúc

Mongo DB cho người mới bắt đầu ! (P2)

Lời nói đầu. Gần đây, mình mới bắt đầu nghiên cứu và sử dụng mongo db nên có chút kiến thức cơ bản về Mongo muốn share và note ra đây coi như để nhở (Biết đâu sẽ có ích cho ai đó).

0 0 183

- vừa được xem lúc

Xây dựng CRUD RESTful API sử dụng Node, Express, MongoDB.

Introduction. Trong phạm vi bài viết này chúng ta sẽ cùng tìm hiểu về cách tạo restful api với Node, Express và MongoDB. . Xử lý các hoạt động crud.

0 0 226

- vừa được xem lúc

MongoDB là gì? Cơ sở dữ liệu phi quan hệ

Bài viết này mình sẽ giúp các bạn có cái nhìn tổng quan về MongoDB. Chúng ta không lạ gì với cơ sở dữ liệu quan hệ, còn với cơ sở dữ liệu phi quan hệ thì sao? MEAN stack (MongoDB, Express, AngularJS,

0 0 53