Adress 1: 225 Broadway Suite 680 New York
Adress 2: 318/3a Trịnh Đình Trọng, Tân Phú, Hồ Chí Minh
Tổng đài miễn cước
0886.02.02.02
Email
contact@websolutions.com.vn

Mongodb là gì? Tổng quan về MongoDB

Mongodb là gì? Tổng quan về MongoDB

MongoDB là gì?

MongoDB là một hệ thống quản lý cơ sở dữ liệu nguồn mở (DBMS) sử dụng mô hình hỗ trợ các dạng dữ liệu khác nhau. Đây là một trong nhiều công nghệ cơ sở dữ liệu phát sinh vào giữa những năm 2000 dưới biểu ngữ NoQuery để sử dụng trong các ứng dụng dữ liệu lớn và các công việc xử lý khác.

Một bản ghi trong MongoDB là một tài liệu, là một cấu trúc dữ liệu bao gồm các cặp giá trị và trường. Các tài liệu MongoDB tương tự như các đối tượng JavaScript, nhưng sử dụng một biến thể có tên Binary JSON (BSON) có thể chứa nhiều loại dữ liệu hơn. Theo hướng dẫn sử dụng MongoDB, các trường trong tài liệu gần giống với các cột trong cơ sở dữ liệu quan hệ và các giá trị chứa nhiều loại dữ liệu khác nhau.

Lịch sử của MongoDB

MongoDB được tạo bởi Dwight Merriman và Eliot Horowitz – những người đã gặp các vấn đề về phát triển và khả năng mở rộng với cách tiếp cận cơ sở dữ liệu quan hệ truyền thống trong khi xây dựng các ứng dụng trong thiết kế web tại DoubleClick (một công ty quảng cáo trực tuyến hiện thuộc sở hữu của Google Inc.) – để hỗ trợ một lượng lớn dữ liệu.

Merriman và Horowitz đã giúp thành lập 10Gen Inc. vào năm 2007 để thương mại hóa MongoDB và các phần mềm liên quan. Công ty đã được đổi tên thành MongoDB Inc. vào năm 2013 và ra mắt vào tháng 10 năm 2024 với ký hiệu MDB.

DBMS được phát hành dưới dạng phần mềm nguồn mở vào năm 2009 và có các điều khoản của Phiên bản 3.0 của Giấy phép GNU, bên cạnh các giấy phép thương mại được cung cấp bởi MongoDB Inc.

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

Giống như các cơ sở dữ liệu NoQuery khác, MongoDB không yêu cầu các lược đồ được xác định trước và lưu trữ bất kỳ loại dữ liệu nào. Điều này cho phép người dùng linh hoạt tạo số lượng trường bất kỳ trong tài liệu, giúp dễ dàng mở rộng cơ sở dữ liệu MongoDB so với cơ sở dữ liệu quan hệ.

Một chức năng cốt lõi của MongoDB là khả năng mở rộng theo chiều ngang, làm cho nó trở thành một cơ sở dữ liệu hữu ích cho các công ty chạy các ứng dụng dữ liệu lớn. Ngoài ra, còn cho phép cơ sở dữ liệu phân phối dữ liệu trên một cụm máy. Các phiên bản mới hơn của MongoDB cũng hỗ trợ tạo các vùng dữ liệu.

MongoDB hỗ trợ một số công cụ lưu trữ và cung cấp công cụ API lưu trữ, cho phép các bên thứ ba phát triển công cụ lưu trữ của riêng cho MongoDB.

DBMS cũng có các khả năng tổng hợp tích hợp, cho phép người dùng chạy mã MapReduce trực tiếp trên cơ sở dữ liệu, thay vì chạy MapReduce trên Hadoop. MongoDB cũng bao gồm hệ thống tệp riêng được gọi là GridFS, gần giống với Hệ thống tệp phân tán Hadoop ( HDFS ), chủ yếu để lưu trữ các tệp lớn hơn giới hạn kích thước 16 MB của BSON trên mỗi tài liệu. Những điểm tương đồng này cho phép MongoDB được sử dụng thay cho Hadoop, mặc dù phần mềm cơ sở dữ liệu tích hợp với Hadoop, Spark và các framework xử lý dữ liệu khác.

Mặc dù lợi ích rất nhiều, nhưng nó cũng có một số nhược điểm. Với chiến lược chuyển đổi dự phòng tự động, người dùng chỉ thiết lập một nút chính trong cụm MongoDB. Nếu nút chính bị hỏng, một nút phụ sẽ tự động chuyển đổi sang nút chính mới. Công tắc này hứa hẹn tính liên tục, nhưng có thể mất đến một phút. 

Nút chủ duy nhất của MongoDB cũng giới hạn tốc độ ghi dữ liệu vào cơ sở dữ liệu. Việc ghi dữ liệu phải được ghi lại trên bản gốc và bị giới hạn bởi khả năng của nút chính đó.

MongoDB là không cung cấp tham chiếu đầy đủ thông qua việc sử dụng các khoá ngoài ràng buộc, điều này có thể ảnh hưởng đến tính nhất quán của dữ liệu. Ngoài ra, xác thực người dùng không được bật theo mặc định trong cơ sở dữ liệu MongoDB. Số lượng lớn hệ thống MongoDB không bảo mật là mục tiêu của hacker.

Nền tảng MongoDB

MongoDB có sẵn phiên bản cung cấp thông qua nhà cung cấp MongoDB Inc. MongoDB Community Edition là bản phát hành nguồn mở, MongoDB Enterprise Server cung cấp thêm các tính năng bảo mật, công cụ lưu trữ trong bộ nhớ, tính năng quản trị, xác thực và khả năng giám sát thông qua Trình quản lý Ops.

Giao diện người dùng đồ họa ( GUI ) có tên MongoDB Compass cung cấp cách làm việc với cấu trúc tài liệu, thực hiện các truy vấn, dữ liệu chỉ mục..vv… Trình kết nối MongoDB cho BI cho phép người dùng kết nối cơ sở dữ liệu NoQuery với các công cụ kinh doanh để trực quan hóa dữ liệu và tạo báo cáo bằng các truy vấn SQL.

Theo các nhà cung cấp cơ sở dữ liệu NoQuery khác, MongoDB Inc. đã ra mắt cơ sở dữ liệu đám mây dưới dạng dịch vụ có tên MongoDB Atlas vào năm 2024. Atlas chạy trên AWS, Microsoft Azure và Google Cloud Platform. Gần đây, MongoDB đã phát hành một nền tảng có tên Stitch để phát triển ứng dụng trên MongoDB Atlas, với kế hoạch mở rộng nó sang cơ sở dữ liệu tại chỗ.

Công ty cũng đã thêm hỗ trợ cho các giao dịch ACID đa tài liệu như là một phần của MongoDB 4.0 vào năm 2024. Tuân thủ các thuộc tính ACID trên nhiều tài liệu mở rộng, các loại khối lượng công việc giao dịch mà MongoDB có thể xử lý được đảm bảo độ chính xác và độ tin cậy.

Các tính năng quan trọng của MongoDB

  • Truy vấn : Hỗ trợ truy vấn đặc biệt và truy vấn dựa trên tài liệu
  • Hỗ trợ chỉ mục : Bất kỳ trường nào trong tài liệu đều có thể được lập chỉ mục
  • Nhân rộng : Nó hỗ trợ nhân rộng Master. MongoDB sử dụng ứng dụng gốc để duy trì nhiều bản sao dữ liệu. Ngăn chặn thời gian chết của cơ sở dữ liệu là một trong những tính năng của bản sao vì nó có khả năng tự phục hồi.
  • Nhiều máy chủ : Cơ sở dữ liệu có thể chạy trên nhiều máy chủ. Dữ liệu được sao chép để bảo vệ hệ thống trong trường hợp lỗi phần cứng.
  • Tự động hủy : Quá trình này phân phối dữ liệu trên nhiều phân vùng vật lý được gọi là phân đoạn. Do MongoDB có tính năng cân bằng tải tự động.
  • MapReduce : Hỗ trợ MapReduce và các công cụ tổng hợp linh hoạt
  • Xử lý lỗi : Trong MongoDb, dễ dàng quản trị trong trường hợp xảy ra lỗi. Số lượng lớn các bản sao cung cấp khả năng bảo vệ và dữ liệu sẵn có được đưa lên trước thời gian ngừng hoạt động của cơ sở dữ liệu như lỗi giá, nhiều lỗi máy, lỗi trung tâm dữ liệu hoặc lỗi phân vùng mạng.
  • GridFS: Bất kỳ kích thước tệp nào cũng được lưu trữ, tính năng GridFS chia các tệp thành các phần nhỏ hơn và lưu trữ chúng dưới dạng tài liệu riêng biệt.