MongoDB là gì?

Nosql và MongoDB là gì? Chúng ta có thể làm gì với MongoDB? Xin mời bạn xem bài viết này để giải đáp nhé!

1. NoSql là gì?

  • NoSQL là 1 dạng CSDL mã nguồn mở và được viết tắt bởi: None-Relational SQL hay có nơi thường gọi là Not-Only SQL.

  • NoSQL được phát triển trên Javascript Framework với kiểu dữ liệu là JSON và dạng dữ liệu theo kiểu key và value.

  • NoSQL ra đời như là 1 mảnh vá cho những khuyết điểm và thiếu xót cũng như hạn chế của mô hình dữ liệu quan hệ RDBMS (Relational Database Management System – Hệ quản trị cơ sở dữ liệu quan hệ) về tốc độ, tính năng, khả năng mở rộng,…

  • Với NoSQL bạn có thể mở rộng dữ liệu mà không lo tới những việc như tạo khóa ngoại, khóa chính, kiểm tra ràng buộc .v.v …

  • NoSQL bỏ qua tính toàn vẹn của dữ liệu và transaction để đổi lấy hiệu suất nhanh và khả năng mở rộng.

  • 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,…

Đến đây chắc các bạn cũng phần nào hiểu về NoSql rồi phải không, giờ chúng ta đi đến khái niệm MongoDB nhé.

2. MongoDB là gì?

mongoDB1

  • 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.

3. Tính năng của MongoDB là gì?

MongoDB có các tính năng cơ bản như sau:

  • Truy vấn ad hoc

  • Nhân rộng

  • Cân bằng tải

  • Lưu trữ tệp

  • Tập hợp

  • Thực thi Javascript phía máy chủ

  • Giới hạn kích thước collection

  • Giao dịch

Tìm hiểu sâu hơn về tính năng của MongoDB qua bài viết tại đây nhé!

4. Ưu điểm của mongoDB

  • Do MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ có các kích cỡ và các document khác nhau,

    linh hoạt trong việc lưu trữ dữ liệu,

    nên bạn muốn gì thì cứ insert vào thoải mái.

  • Dữ liệu trong MongoDB không có sự ràng buộc lẫn nhau

    , không có join như trong RDBMS nên khi insert, xóa hay update nó không cần phải mất thời gian kiểm tra xem có thỏa mãn các ràng buộc dữ liệu như trong RDBMS.

  • MongoDB rất dễ mở rộng (Horizontal Scalability)

    . Trong MongoDB có một khái niệm cluster là cụm các node chứa dữ liệu giao tiếp với nhau, khi muốn mở rộng hệ thống ta chỉ cần thêm một node với vào cluster:

  • Trường dữ liệu “_id” luôn được tự động đánh index

    (chỉ mục) để tốc độ truy vấn thông tin đạt hiệu suất cao nhất.

  • Khi có một truy vấn dữ liệu, bản ghi được cached lên bộ nhớ Ram,

    để phục vụ lượt truy vấn sau diễn ra nhanh hơn mà không cần phải đọc từ ổ cứng.

  • Hiệu năng cao:

    Tốc độ truy vấn (find, update, insert, delete) của MongoDB nhanh hơn hẳn so với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Với một lượng dữ liệu đủ lớn thì thử nghiệm cho thấy tốc độ insert của MongoDB có thể nhanh tới gấp 100 lần so với MySQL.

mongodb

5. Nhược điểm của mongoDB

  • Một ưu điểm của MongoDB cũng chính là nhược điểm của nó.

    MongoDB không có các tính chất ràng buộc như trong RDBMS

    nên khi thao tác với mongoDB thì phải hết sức cẩn thận.

  • Tốn bộ nhớ do dữ liệu

    lưu dưới dạng key-value, các collection chỉ khác về value do đó key sẽ bị lặp lại. Không hỗ trợ join nên dễ bị dư thừa dữ liệu.

  • Khi insert/update/remove bản ghi, MongoDB sẽ chưa cập nhật ngay xuống ổ cứng, mà

    sau 60 giây MongoDB mới thực hiện ghi toàn bộ dữ liệu

    thay đổi từ RAM sang ổ cứng điều này sẽ là nhược điểm vì sẽ có nguy cơ bị mất dữ liệu khi xảy ra các tình huống như mất điện…

  • Không có cơ chế transaction (giao dịch)

    để phục vụ các ứng dụng ngân hàng.

6. Một số câu lệnh cơ bản trên MongoDB

CSDL

MySQL

MongoDB

Tạo csdl

CREATE DATABASE test;

use test;

Tạo bảng

CREATE TABLE students (ten_cot – kieu_du_lieu);

db.createCollection(‘students’);

Tạo bản ghi

INSERT INTO students (‘name’, ‘gender’) VALUES(‘thanh’, ‘male’);

db.students.insert({ name:’thanh’, gender: ‘male’});

Cập nhật

UPDATE students SET name = ‘thanh update’ WHERE id = 1;

db.students.update({ _id: 1 },{$set:{ name: ‘thanh update’ }});

Xóa bản ghi

DELETE FROM students Where id = 1;

db.students.remove({ _id: 1});

Tìm kiếm all

SELECT * FROM students;

db.students.find({});

Tìm kiếm

SELECT * FROM students WHERE name = ‘thanh’;

db.students.find({ name: ‘thanh’ });

 

Qua bài viết trên, hy vọng bạn có thể hiểu được MongoDB là gì và ứng dụng được trong thực tế. Xin cảm ơn bạn đã đọc.

Tổng hợp

Japan IT Works