03/08/2018, 10:16

Bài 01: Tổng quan về MongoDB

Như thường lệ, trước khi đi vào chủ đề chính thì ta sẽ tìm hiểu lý thuyết rồi mới bắt đầu tìm hiểu sâu vào dần, vì thế trong bài này chúng ta sẽ ...

Như thường lệ, trước khi đi vào chủ đề chính thì ta sẽ tìm hiểu lý thuyết rồi mới bắt đầu tìm hiểu sâu vào dần, vì thế trong bài này chúng ta sẽ tìm hiểu khái niệm mongodb là gì, được ứng dụng như thế nào và sử dụng khi nào cho phù hợp.

1. MongoDB là gì?

Hiểu 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 để truy vấn, nó được viết bởi ngôn ngữ C++. Chính vì được viết bởi C++ nên nó có khả năng tính toán với tốc độ cao chứ không giống như các hệ quản trị CSDL hiện nay.

Nếu như bạn biết sử dụng JSON thì trong MongoDB cũng có cấu trúc lưu trữ tương tự, chính vì thế nó có hiệu suất cao, tương tác nhanh và khả năng mở rộng tốt, nó hoạt động trên khái niệm collection  document. Tới đây thì có lẽ bạn sẽ thắc mắc collection là gì?document là gì? phải  không nào? Nếu vậy thì ta sẽ tìm hiểu các phần tiếp theo nhé.

Database là gì?

Database là một Ô chứa dữ liệu ở mức vật lý (physical), mỗi database sẽ có nhiều collection và được thiết lập lưu trữ ở một nơi trong máy chủ máy tính. Một máy chủ MongoDB thường có thể tạo nhiều cơ sở dữ liệu.

Collection là gì?

Collection trong MongoDB là nhóm các tài liệu (document), nó tương đương với một bảng (table) trong CSDL thông thường nên mỗi collection sẽ thuộc về một database duy nhất. Tuy nhiên nó có một sực khác biệt đó là nó không có ràng buộc Relationship như các hệ quản trị CSDL khác nên việc truy xuất rất nhanh, chính vì thế mỗi collection có thể chứa nhiều thể loại khác nhau không giống như table trong hệ quản trị mysql là các field cố định.

Document là gì?

Document trong MongoDB có cấu trúc tương tự như kiểu dữ liệu JSON, nghĩa là sẽ có các cặp (key => giá trị) nên nó có tính năng động rất lớn. Document ta có thể hiểu nó giống như các record dữ liệu trong MYSQL, tuy nhiên nó có sự khác biệt là các cặp (key => value) có thể không giống nhau ở mỗi document. 

Để rõ hơn chúng ta sẽ so sánh MongoDB và một hệ quản trị CSDL khác nhé.

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)

Để rõ ràng hơn chúng ta sẽ tìm hiểu thông qua một ví dụ về cách lưu trữ trong MongoDB nhé.

{
   _id: ObjectId(7df78ad8902c)
   title: 'Tìm hiểu mongodb', 
   description: 'MongoDB sử dụng khái niệm NO-SQL',
   comments: [	
      {
         user:'user1',
         message: 'First comment',
         dateCreated: new Date(2011,1,20,2,15),
         like: 0 
      },
      {
         user:'user2',
         message: 'Second comment',
         dateCreated: new Date(2011,1,25,7,45),
         like: 5
      }
   ]
}
Trong đó ta thấy key _id là do hệ thống tự tạo ra một field như vậy làm khóa chính. Đây là cấu trúc của một mẫu document trong MongoDB, như vậy khi có thêm comment thì ta sẽ thêm nó vào phần comment của tin.

2. Khi nào sử dụng MongoDB

MongoDB thật sự rất hot nhưng không phải lúc nào ta sử dụng nó cũng tốt, có những trường hợp không nên sử dụng và nên sử dụng, chi tiết thế nào thì chúng ta cùng thảo luận nhé.

  • Nếu website của bạn có tính chất INSERT cao, bởi vì mặc định MongoDB có sẵn cơ chế ghi với tốc độ cao và an toàn.
  • Website của bạn ở dạng thời gian thực nhiều, nghĩa là nhiều người thao tác với ứng dung. Nếu trong quá trình load bị lỗi tại một điểm nào đó thì nó sẽ bỏ qua phần đó nên sẽ an toàn.
  • Website bạn có nhiều dữ liệu quá, giả sử web bạn có đến 10 triệu records thì đó là cơn ác mộng với MYSQL. Bởi vì MongoDB có khả năng tìm kiến thông tin liên quan cũng khá nhanh nên trường hợp này nên dùng nó.
  • Máy chủ không có hệ quản trị CSDL, trường hợp này thường bạn sẽ sử dụng SQLITE hoặc là MongoDB.

3. Lời kết

Với nhưng ưu điểm của MongoDB thì trong tương lai nó sẽ thay thế các hệ quản trị CSDL, tuy nhiên theo bản thân mình nghĩ thì điều này cũng khó có thể xảy ra, bởi vì các ứng dụng web vừa và nhỏ nếu được xây dựng bằng MYSQL thì sẽ nhanh hơn nhiều MongoDB. Vì thế hãy cân nhắc trước khi sử dụng nhé. Bài tiếp theo chúng ta sẽ tìm hiểu dịch vụ mongolab.com nhé, đây là một dịch vụ theo mình khá tiện dùng đẻ học mongodb.

BÀI KẾ SAU
BÀI KẾ TIẾP

Nguồn: code24h.com

Bài liên quan

Bài 09: Tổng quan về CSS

1. Tổng quan về css CSS là viết tắt của cụm từ “Cascading Style Sheet” , nó là một ngôn ngữ quyết định cách trình bày của thẻ HTML trên trang web CSS quy định cách hiển thị nội dung của các thẻ HTML trên các trình duyệt gần như giống nhau, bằng cách quy định các thuộc tính cho ...

Bùi Văn Nam viết 3 tuần trước

Bài 02: Tổng quan về MongoDB

MongoDB là một cơ sở dữ liệu mã nguồn mở thuộc họ nhà NoSQL được phát hành sử dụng miễn phí bởi công ty MongoDB. Nếu bạn là người mới nghiên cứu về NoSQL thì đây là một cơ sở dữ liệu đầu tiên nên tiếp cận bởi nó dễ dàng cài đặt và sử dụng để tiếp cận với những ý tưởng lưu trữ mới. MongoDB hoạt ...

Tạ Quốc Bảo viết 3 tuần trước

Bài 01. Tổng quan về MYSQL

1. Đặc điểm MySQL là một phần mềm quản trị CSDL dạng server-based. MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu. MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người ...

Bùi Văn Nam viết 3 tuần trước

Bài 2: Tổng quan về C và cài đặt môi trường

1. Lịch Sử: C là một ngôn ngữ cấp cao mà ban đầu được phát triển bởi Dennis M. Ritchie để phát triển hệ điều hành UNIX tại Bell Labs . C ban đầu được thực hiện lần đầu tiên trên máy tính DEC PDP -11 vào năm 1972 . Năm 1978 , Brian Kernighan ...

Bùi Văn Nam viết 3 tuần trước

Bài 6: Tổng quan về mảng và các hàm hỗ trợ trong PHP

Bài 6: Tổng quan về mảng và các hàm hỗ trợ trong PHP Cũng như bao ngôn ngữ lập trình khác. PHP cũng tồn tại một loại dữ liệu được gọi là mảng. Cụ thể hơn Mảng là 1 biến danh sách. Nghĩa là, một biến vốn chứa nhiều phần tử được tạo bởi các số hoặc chuỗi. Nó cho phép chúng ta ...

Vũ Văn Thanh viết 15:13 ngày 19/09/2018
0