Tìm hiểu MongoDB

Nhóm 1

  • Đặng Văn Đại
  • Nguyễn Tuấn Kiên
  • Phan Công Huân
  • Vương Lâm

Tổng quan về MongoDB

  • Lượng dữ liệu cực lớn sinh ra từ mạng xã hội
  • Yêu cầu realtime
  • RDBMS không đáp ứng được cho nền tảng smartphone( phần cứng thấp, tính linh hoạt,... )

Đâu là câu trả lời cho các vấn đề trên???

Tổng quan về MongoDB

NoSQL

  • Phi quan hệ

  • Lưu trữ phân tán

  • Nhất quán trễ

  • Đơn giản, dễ nâng cấp và mở rộng

  • Linh hoạt mô hình và truy vấn

  • Hệ sinh thái nguồn mở

 

Tổng quan về MongoDB

So sánh SQL và NoSQL

Tổng quan về MongoDB

So sánh SQL và NoSQL

Tổng quan về MongoDB

MongoDB là gì?

{'name': 'mongo', 'type': 'DB'}
  • Mã nguồn mở
  • Dùng cơ chế NoSQL để truy vấn các documents
  • Lưu trữ các documents dưới dạng nhị phân BSON
  • Viết bằng C++

Tổng quan về MongoDB

Tính năng chỉnh của MongoDB

{'name': 'mongo', 'type': 'DB'}
  • Document data model with dynamic schemas
  • Full, flexible index support and rich queries
  • Auto-Sharding for horizontal scalability
  • Built-in replication for high availability
  • Text search
  • High Performance
  • Aggregation Framework and MapReduce
  • Large media storage with GridFS

Tổng quan về MongoDB

Document data model with dynamic schemas

{'name': 'mongo', 'type': 'DB'}
  • Mỗi bản ghi trong MongoDB ~ document (key-value)
  • Value là document, mảng giá trị hoặc mảng các document.

Nhược điểm

  • Phải tự thống nhất về cấu trúc lưu trữ
  • Không đảm bảo tính nhất quán của dữ liệu

Ưu điểm

  • Không cần định nghĩa cấu trúc
  • Cấu trúc bản ghi linh hoạt, đa dạng.
  • Dễ mở rộng việc lưu trữ.

 

Tổng quan về MongoDB

Auto-Sharding for horizontal scalability

{'name': 'mongo', 'type': 'DB'}

Tổng quan về MongoDB

Built-in replication for high availability

{'name': 'mongo', 'type': 'DB'}

 

  • Cơ chế tạo các bản sao của MongoDB gọi là replica set.
  • Một replica set là một tập hợp các MongoDB server có cùng tập dữ liệu.
  • MongoDB có cơ chế để tự bầu ra primary node.
  • Mọi yêu ghi sẽ được thực hiện trên primary node,  sau đó primary sẽ thực hiện sao chép quá trình ghi cho các secondary node.

Tổng quan về MongoDB

Xu hướng của MongoDB

{'name': 'mongo', 'type': 'DB'}

Tổng quan về MongoDB

Khu vực quan tâm

{'name': 'mongo', 'type': 'DB'}

Kiến trúc MongoDB

Nexus Architecture

{'name': 'mongo', 'type': 'DB'}

Triết lý: tập trung kết hợp các ưu điểm của CSDL quan hệ và phi quan hệ

Thiết kế CSDL với MongoDB

Một số lưu ý

{'name': 'mongo', 'type': 'DB'}
  • Các đối tượng trọng một Document nên được sử dụng cùng nhau
  • Thực hiện join khi ghi, không làm việc này khi đọc
  • Tối ưu hóa các schema nếu sử dụng thường xuyên
  • Thực hiện aggregation phức tạp trong schema đó

 

Thiết kế CSDL với MongoDB

Nguyên tắc cơ bản

{'name': 'mongo', 'type': 'DB'}
  • One to few
  • One to many
  • One to squillions

 

Ứng dụng của MongoDB

{'name': 'mongo', 'type': 'DB'}
  • Database for Scalable (Web) Applications

  • Object Store for Scalable Web Applications

  • Store for Log Events

 

Made with Slides.com