hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • MongoDB
Giới thiệu tổng quan và các khái niệm cơ bản về MongoDB

Giới thiệu tổng quan và các khái niệm cơ bản về MongoDB

  • 08-10-2024
  • Toanngo92
  • 0 Comments

MongoDB là một hệ quản trị cơ sở dữ liệu đa nền tảng, khác biệt với các cơ sở dữ liệu truyền thống. Thay vì sử dụng các bảng (tables) như trong MySQL hay Oracle, MongoDB làm việc với các Collection và Document, giúp nó có hiệu suất cao, khả năng mở rộng dễ dàng và tính khả dụng cao.

Mục lục

  • Các khái niệm cơ bản
  • So sánh giữa RDBMS và MongoDB
  • Server và Client trong MongoDB
  • Lý do một số dự án cân nhắc lựa chọn sử dụng MongoDB thay thế Cơ sở Dữ liệu Quan hệ (RDBMS)
    • 1. Linh hoạt hơn với ít ràng buộc về Schema
    • 2. Cấu trúc của dữ liệu rõ ràng
    • 3. Không có các Join phức tạp
    • 4. Truy vấn sâu và mạnh mẽ
    • 5. Tuning và dễ mở rộng
    • 6. Dễ dàng chuyển đổi đối tượng ứng dụng
    • 7. Hiệu suất vượt trội nhờ sử dụng bộ nhớ nội tại
  • Những trường hợp nên sử dụng MongoDB
    • 1. Xử lý khối lượng dữ liệu lớn
    • 2. Quản lý dữ liệu người dùng
    • 3. Quản lý nội dung (Content Management)
    • 4. Data Hub và hệ thống phân tán
  • Những lợi ích chính của MongoDB

Các khái niệm cơ bản

  1. Database (Cơ sở dữ liệu)
  • Database trong MongoDB là nơi chứa tất cả các Collection. Mỗi cơ sở dữ liệu có tập hợp file riêng biệt trên hệ thống tệp của máy chủ. Một server MongoDB có thể chứa nhiều cơ sở dữ liệu khác nhau.
  1. Collection (Tập hợp)
  • Collection là tập hợp các Document, tương tự như một bảng trong hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Tuy nhiên, khác với bảng, Collection không có cấu trúc cố định. Điều này có nghĩa là các Document trong một Collection có thể chứa các trường (fields) khác nhau và không cần phải tuân theo một cấu trúc cụ thể. Điều này giúp việc lưu trữ và truy xuất dữ liệu trở nên nhanh chóng và linh hoạt hơn.
  1. Document (Tài liệu)
  • Document là đơn vị lưu trữ cơ bản trong MongoDB, có cấu trúc giống với JSON (JavaScript Object Notation). Document bao gồm các cặp key-value (khóa-giá trị), và có schema động. Điều này có nghĩa là các Document trong cùng một Collection không cần có cùng cấu trúc hoặc các trường giống nhau. Các trường chung có thể có kiểu dữ liệu khác nhau trong từng Document.

So sánh giữa RDBMS và MongoDB

RDBMSMongoDB
DatabaseDatabase
TableCollection
Tuple/RowDocument
ColumnField
Table JoinEmbedded Documents
Primary KeyPrimary Key (_id)

Server và Client trong MongoDB

  • Trong RDBMS như MySQL hay Oracle, chúng ta có mysqld hoặc Oracle để quản lý cơ sở dữ liệu. Tương tự, trong MongoDB, ta có mongoDBCompass.
  • Đối với giao diện dòng lệnh, MySQL sử dụng mysql/sqlplus, còn MongoDB sử dụng mongo để tương tác với cơ sở dữ liệu.

Ví dụ một cấu trúc tài liệu (document trong mongoDB):

{
   _id: ObjectId("6512684f92bc"),  // ID duy nhất cho document
   title: 'Introduction to MongoDB', 
   description: 'MongoDB is a popular NoSQL database that offers high performance and scalability.',
   by: 'tech tutorials',
   url: 'http://www.techtutorials.com',
   tags: ['mongodb', 'NoSQL', 'database'],
   likes: 250,
   comments: [
      {
         user: 'user123',
         message: 'Great tutorial on MongoDB!',
         dateCreated: new Date(2023, 9, 10, 9, 30),
         like: 3
      },
      {
         user: 'user456',
         message: 'Very informative and easy to follow.',
         dateCreated: new Date(2023, 9, 11, 14, 10),
         like: 8
      },
      {
         user: 'user789',
         message: 'Helped me a lot in my project!',
         dateCreated: new Date(2023, 9, 12, 18, 25),
         like: 10
      }
   ]
}

Trong đó:

  • _id: ID duy nhất của document trong MongoDB (tạo tự động).
  • title: Tiêu đề của document, mô tả ngắn về nội dung.
  • description: Mô tả chi tiết hơn về nội dung.
  • by: Tác giả hoặc nguồn của bài viết.
  • url: Đường dẫn đến bài viết hoặc nguồn tài liệu.
  • tags: Một danh sách các từ khóa liên quan đến chủ đề.
  • likes: Số lượt thích.
  • comments: Mảng các comment với các trường con như user, message, dateCreated và like.

Dưới đây là nội dung bổ sung để bạn có thể sử dụng cho bài viết trên website, với phần giải thích chi tiết hơn về MongoDB và các trường hợp nên sử dụng:


Lý do một số dự án cân nhắc lựa chọn sử dụng MongoDB thay thế Cơ sở Dữ liệu Quan hệ (RDBMS)

MongoDB là một cơ sở dữ liệu NoSQL dựa trên Document, cung cấp nhiều lợi thế quan trọng so với các hệ thống cơ sở dữ liệu quan hệ truyền thống (RDBMS). Một số lý do chính để lựa chọn MongoDB bao gồm:

1. Linh hoạt hơn với ít ràng buộc về Schema

Khác với RDBMS, MongoDB không yêu cầu một schema cố định cho các bảng (hay collections). Bạn có thể lưu các documents với cấu trúc đa dạng trong cùng một collection. Điều này cho phép hệ thống dễ dàng mở rộng và thay đổi theo thời gian, phù hợp cho các dự án có yêu cầu phát triển nhanh, không cố định cấu trúc dữ liệu từ đầu.

2. Cấu trúc của dữ liệu rõ ràng

MongoDB lưu dữ liệu dưới dạng các đối tượng JSON, cho phép biểu diễn dữ liệu theo cách dễ hiểu và tự nhiên hơn, đặc biệt khi làm việc với các ứng dụng web hoặc các hệ thống API. Việc không có các mối quan hệ phức tạp như trong RDBMS cũng giúp đơn giản hóa cấu trúc dữ liệu.

3. Không có các Join phức tạp

Trong RDBMS, các truy vấn phức tạp thường phải dựa vào việc JOIN giữa nhiều bảng dữ liệu, dẫn đến khó khăn trong việc tối ưu hóa hiệu suất. Với MongoDB, mọi dữ liệu liên quan có thể được lưu trong cùng một document, loại bỏ nhu cầu về join và cải thiện hiệu năng truy vấn.

4. Truy vấn sâu và mạnh mẽ

MongoDB hỗ trợ một ngôn ngữ truy vấn động mạnh mẽ, cho phép truy vấn và thao tác trực tiếp trên các documents. Ngôn ngữ này có khả năng tìm kiếm và thao tác dữ liệu tương tự như SQL nhưng với cú pháp linh hoạt hơn. Điều này làm cho việc truy vấn dữ liệu phức tạp trở nên dễ dàng và hiệu quả.

5. Tuning và dễ mở rộng

MongoDB dễ dàng mở rộng theo chiều ngang bằng cách phân mảnh dữ liệu (sharding) trên nhiều máy chủ. Điều này rất hữu ích cho các hệ thống có khối lượng dữ liệu lớn và yêu cầu khả năng xử lý cao. MongoDB cũng cung cấp công cụ tối ưu hóa để tăng hiệu suất cho các hệ thống sản xuất lớn.

6. Dễ dàng chuyển đổi đối tượng ứng dụng

Khi sử dụng MongoDB, các đối tượng trong ứng dụng có thể được lưu trực tiếp dưới dạng documents mà không cần qua quá trình chuyển đổi hoặc ánh xạ phức tạp như khi sử dụng ORM (Object-Relational Mapping) trong RDBMS. Điều này giúp đơn giản hóa việc lưu trữ và truy xuất dữ liệu trong các ứng dụng phát triển nhanh.

7. Hiệu suất vượt trội nhờ sử dụng bộ nhớ nội tại

MongoDB sử dụng RAM để lưu trữ các phần công việc nóng (hot working set), giúp tăng tốc độ truy xuất dữ liệu và giảm thời gian chờ so với việc chỉ dựa vào lưu trữ trên đĩa.


Những trường hợp nên sử dụng MongoDB

MongoDB là lựa chọn lý tưởng cho các hệ thống đòi hỏi linh hoạt và khả năng mở rộng, chẳng hạn như:

1. Xử lý khối lượng dữ liệu lớn

MongoDB được thiết kế để xử lý dữ liệu lớn với khả năng mở rộng linh hoạt. Các tổ chức có lượng dữ liệu khổng lồ, đặc biệt là dữ liệu phi cấu trúc hoặc bán cấu trúc, có thể hưởng lợi từ hệ thống phân mảnh tự động của MongoDB.

2. Quản lý dữ liệu người dùng

Các hệ thống như mạng xã hội, ứng dụng di động, hoặc nền tảng thương mại điện tử cần lưu trữ thông tin đa dạng về người dùng như hồ sơ cá nhân, lịch sử hoạt động, và tương tác xã hội. MongoDB với khả năng lưu trữ tài liệu đa dạng là lựa chọn hoàn hảo cho các trường hợp này.

3. Quản lý nội dung (Content Management)

Các nền tảng quản lý nội dung như CMS, blog, và trang web thương mại điện tử cần khả năng lưu trữ dữ liệu đa dạng và linh hoạt. MongoDB cho phép lưu trữ thông tin dưới dạng JSON, phù hợp cho các hệ thống yêu cầu cập nhật nội dung liên tục.

4. Data Hub và hệ thống phân tán

MongoDB hoạt động tốt trong các hệ thống phân tán, nơi dữ liệu được lưu trữ và xử lý trên nhiều node khác nhau. Các hệ thống Data Hub hoặc hệ thống tích hợp dữ liệu từ nhiều nguồn có thể tận dụng khả năng mở rộng của MongoDB để duy trì hiệu suất cao.


Những lợi ích chính của MongoDB

  • Lưu trữ Document định hướng: Dữ liệu được lưu dưới dạng tài liệu JSON/BSON giúp dễ dàng xử lý và tương thích với nhiều loại dữ liệu phức tạp.
  • Lập chỉ mục linh hoạt: Bạn có thể lập chỉ mục trên bất kỳ trường nào của document, giúp tối ưu hóa việc truy vấn dữ liệu.
  • Khả năng sao lưu và phục hồi (Replication): MongoDB hỗ trợ cơ chế sao chép dữ liệu giúp đảm bảo tính sẵn sàng cao và khả năng khôi phục dữ liệu trong trường hợp xảy ra sự cố.
  • Tự động phân mảnh (Sharding): MongoDB tự động phân chia dữ liệu trên các máy chủ khác nhau, giúp hệ thống mở rộng dễ dàng mà không ảnh hưởng đến hiệu suất.
  • Truy vấn đa dạng: Hỗ trợ các truy vấn động, tổng hợp (aggregation), và các thao tác phức tạp trên documents.
  • Cập nhật nhanh: Khả năng cập nhật dữ liệu nhanh chóng, phù hợp cho các hệ thống yêu cầu hiệu suất cao.
  • Hỗ trợ chuyên nghiệp: MongoDB Inc. cung cấp dịch vụ hỗ trợ chuyên nghiệp cho các hệ thống doanh nghiệp, đảm bảo hiệu suất và độ tin cậy của hệ thống.

Với những lợi thế và tính năng mạnh mẽ như vậy, MongoDB là lựa chọn lý tưởng cho các dự án cần lưu trữ dữ liệu phi cấu trúc hoặc bán cấu trúc với khối lượng lớn và yêu cầu tính linh hoạt cao.

Bài viết liên quan:

Hướng dẫn cài đặt MongoDB trên môi trường windows, linux, macOS

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

KHÁI NIỆM QUẢN LÝ DỰ ÁN CÔNG NGHỆ THÔNG TIN (IT PROJECT MANAGEMENT)

Cấu trúc lập trình và Mảng

Bắt đầu với C#

1. GIỚI THIỆU KHÁI NIỆM CHUẨN MỰC – ĐẠO ĐỨC VÀ VẤN ĐỀ NGHỀ NGHIỆP TRONG CNTT

2. ÁP DỤNG CÁC CHUẨN MỰC VÀ VẤN ĐỀ NGHỀ NGHIỆP TRONG CNTT

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×