mongodb_logo

Trước khi đi sâu vào chủ đề chính như thường lệ ta sẽ tìm hiểu lý thuyết rồi đi sâu dần vậy trong bài đầu tiên chúng ta sẽ bắt đầu tìm hiểu về NoSQLMongoDB là gì ???

1. Nosql 

Nosql có nghĩa là Non-Relational (NoRel) – không ràng buộc. Tuy nhiên, thuật ngữ đó ít phổ biến hơn và ngày nay người ta thường dịch NoSQL thành Not Only SQL.

Không chỉ là SQL đây là thuật ngữ chung cho các hệ CSDL không sử dụng mô hình dữ liệu quan hệ. NoSQL đặc biệt nhấn mạnh đến mô hình lưu trữ cặp giá trị – khóa và hệ thống lưu trữ phân tán.

Hiện nay có trên dưới 150 loại cơ sở dữ liệu NoSql ở bài này chúng ta chỉ tìm hiểu về MongoDB.

2. MongoDB là gì ?

Hiểu theo một cách nôm na thì MongoDb là một mã nguồn mở và là một tập tài liệu dùng cơ chế NoSql và được viết bởi C++. Chính vì thế nên chúng có thể truy vấn tính toán dữ liệu nhanh chứ ko như hệ quản trị Cơ Sở Dữ Liệu (CSDL) như hiện nay.

MongoDB có cấu trúc như JSON nếu như bạn biết sử dụng JSON thì đó cũng là một lợi thế khi tương tác với MongoDB. Nó hoạt động trên khái niệm CollectionDocument vậy thì chúng là gì.

3. Collection là gì ?

Collection là một nhóm tài liệu (document), nó tương tự như một table trong CSDL thông thường một Collection thuộc về một database duy nhất tuy nhiên nó không có ràng buộc nên khả năng truy xuất rất nhanh. Vì vậy mỗi Collection có thể chứa nhiều dạng khác nhau chứ không ràng buộc field cố định như trong hệ quản trị CSDL.

4. Document là gì ? 

Có cấu trúc dữ liệu như kiểu JSON tức là 1 cặp key=>value. Một Document tương tự 1 record dữ liệu trong CSDL tuy nhiên sự khác nhau giữa key=>value có thể không giống ở mỗi Document

So sánh giữa RDBMS và MongoDB

RDBMS MongoDB
Database Database
Table Collection
Tuple/Row Document
column Field
Table Join Embedded Documents
Primary Key Primary Key (mặc định là _id)

demo_mongodb_data

Ví dụ: Key=>value không giống nhau của document.

5. Nên sử dụng MongoDB khi nào ?

Tuy xử lý tốc độ cao nhưng không phải trường hợp nào cũng nên dùng MongoDB. Ở đây chúng ta sẽ xét các trường hợp xử dụng MongoDB

  • Website có tính chất Insert  cao tương tác thêm record liên tục trong 1 thời gian ngắn.
  • Website dạng thời gian thực, nghĩa là có nhiều người tương tác với ứng dụng. Nếu có quá trình load lỗi xảy ra nó sẽ bỏ qua phần đó nên sẽ an toàn.
  • Website có dữ liệu quá lớn. Một database có 10 triệu 20 triệu record thì quá khủng khiếp với MYSQL còn MongoDB thì có tính truy xuất nhanh nên trường hợp này sử dụng MongoDB.
  • Máy chủ không có hệ cơ sở dữ liệu.

Tuy nhiên hiện nay các Website nhỏ vừa vẫn ưu tiên hàng đầu hệ CSDL như Mysql hay SQLServer bởi xây dựng hệ csdl vẫn nhanh hơn dùng MongoDB. Ở đây là bài tìm hiểu nên các bạn hãy lựa chọn giải pháp CSDL hợp lý cho website của chính mình.

===> Bài sau chúng ta sẽ tìm hiểu cách cài đặt và sử dụng 1 số lệnh cơ bản của MongoDB trên command line (CMD)

tuanthanhvoMongoDBCollection,Document,MongoDB,NoSQL
Trước khi đi sâu vào chủ đề chính như thường lệ ta sẽ tìm hiểu lý thuyết rồi đi sâu dần vậy trong bài đầu tiên chúng ta sẽ bắt đầu tìm hiểu về NoSQL và MongoDB là gì ??? 1. Nosql  Nosql có nghĩa là Non-Relational (NoRel) – không ràng buộc....