mongo

mongo

2020-12-18 1104 lượt xem

MongoDB là gì? Cơ sở dữ liệu phi quan hệ

Bài viết này mình sẽ giúp các bạn có cái nhìn tổng quan về MongoDB. Ở trường chúng ta không lạ gì với cơ sở dữ liệu quan hệ như SQLserver, Mysql, ... Còn với cơ sở dữ liệu phi quan hệ thì sao? Để hiểu hơn về MongoDB thì chúng ta sẽ xem lại 1 tí về NoSQL Database nha.

1. NoSQL Database là gì?

Đầu tiên về cơ sở dữ liệu phi quan hệ chúng ta cùng tìm hiểu về NoSql nhé, vậy NoSql là gì?

a. mục đích

Thuật ngữ NoSQL Database được giới thiệu lần đầu vào năm 1998. viết tắt của lightweight open source relational database. bạn hãy nhớ noSql ra đời cho 2 mục đích lớn là  distributed (phân tán) + non-relational (không ràng buộc).

cứ hãy tưởng tượng bạn là 1 lập trình viên làm Chat realtime. Mình chưa bàn đến việc làm như thế nào mà chỉ nói tới việc hàng ngày có hàng tấn dữ liệu chat do ng dùng gõ vào bàn phím rồi kêu bạn lưu vào cơ sở dữ liệu. lúc đó hẳn bạn cần gấp cho mình 1 loại cơ sở dữ liệu có thể lưu nhanh và lưu đc nhiều. và nhược điểm của RDBMS bắt đầu kìm hãm. và nhiều mục đích khác mà ở đây mình chỉ biết có 2 cái đó :v 

đặc tính: 

  • là 1 dạng CSDL mã nguồn mở và bạn dễ nhớ hơn thì nghĩ ngay đến cái tên Not-Only SQL.
  • là mảnh ghép của những hạn chế của mô hình dữ liệu quan hệ RDBMS (Relational Database Management System) về tốc độ, tính năng, khả năng mở rộng,... Đừng nghĩ NoSql database sẽ thay thế được RDBMS nhé :v
  • Tính mở rộng cao. khi bạn code RĐBMS khi mở rộng dữ liệu thường bonus thêm phần sửa code hén. còn NoSql cũng phải sửa chứ thoát sao đc, nhưng đỡ hơn tí về khóa ngoại, khóa chính, kiểm tra ràng buộc .v.v ...
  • NoSQL được sử dụng ở rất nhiều công ty, tập đoàn lớn, ví dụ như FaceBook sử dụng Cassandra do FaceBook phát triển, Google phát triển và sử dụng BigTable,...

2, MongoDB là gì?

  • MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là CSDL thuộc NoSql và được hàng triệu người sử dụng.
  • MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON thay vì dạng bảng như CSDL quan hệ nên truy vấn sẽ rất nhanh.
  • Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ (như MySQL hay SQL Server...) sử dụng các bảng để lưu dữ liệu thì với MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng
  • So với RDBMS thì trong MongoDB collection ứng với table, còn document sẽ ứng với row , MongoDB sẽ dùng các document thay cho row trong RDBMS.
  • Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định.
  • Thông tin liên quan được lưu trữ cùng nhau để truy cập truy vấn nhanh thông qua ngôn ngữ truy vấn MongoDB

Vậy là mình đã giới thiệu xong khái niệm và một số điểm khác cơ bản của MongoDB so với CSDL quan hệ rồi, tiếp theo sẽ là một vài thao tác với MongoDB để các bạn có thể hình dung rõ hơn nhé

Bài viết trong chủ đề mongo