So sánh sự tương quan giữa MongoDB và SQL

(Ngày: 26/09/2019)
So sánh về sự tương quan giữa MongoDB và SQL sẽ giúp ích cho những ai mới bắt đầu tìm hiểu từ SQL sang NoSQL. Bạn có thể xem các ví dụ đơn giản cách query dữ liệu

Start Mongo DB

  • Đơn giản là bạn bật MongoDB server lên, và bật shell mode của mongo db để gõ các câu lệnh query tương ứng với các câu lệnh SQL mà bạn quen thuộc.

  • Về cơ bản, để bắt đầu, chúng ta sẽ có 2 cửa terminal.

Cửa sổ (terminal) thứ nhất ta bật MongoDB sever, cửa sổ thứ hai ta để mongo shell. Đơn giản là chúng ta chỉ cần cỗ chỗ viết các câu query và thực hiện các kêu query để mục sở thị kết quả cho dễ nhớ.

Bạn có thể xem thêm: MySQL là gì? Xây dựng và thiết kế cơ sở dữ liệu với MySQL

Sự tương quan các thuật ngữ được sử dụng trong MongoDB và SQL

Operation In SQL In MongoDB
Create Insert Insert
Read Select Find
Update Update Update
Delete Delete Remove
Table Table Collection
Row Row Document

Một số điểm quan trọng của MongoDB

  1. MongoDB lưu dữ liệu theo định dạng JSON (chúng ta gọi nó là BSON (Binary JSON).

  2. JSON là viết tắt của JavaScript Object Notations và trông nó kiểu kiểu như {"name": "nhat"}.

  3. JSON document lưu trữ các dữ liệu theo kiểu định dạng key-value, trong ví dụ trên, "name" là key"nhat" là value.

  4. Có 2 kiểu cấu trúc cơ bản trong JSON là:

    • Array: Một danh sách chứa các thể hiện của một list các key-value.
    • Dictionaries: Lưu trữ các cặp key-value, ai đã từng dùng ngôn ngữ lập trình python sẽ rất quen thuộc với kiểu dictionaries này. Bạn có thiểu nó tương tự kiểu con trỏ trong C, C++, nghĩa là key trỏ đến giá trị mà nó lưu trữ, bạn có thể, lấy giá trị nó lưu trữ thông qua key.
  5. MongoDb có cấu trúc Schema động, nó không cần phải định nghĩa một mô hình với những mối quan hệ phải được định sẵn khi thiết kế, điều này MongoDB kế thừa từ NoSQL.

  6. MongoDB không hỗ trợ Joins.

  7. MongoDB không hỗ trợ Transactions.

Một vài ví dụ về query trong MongoDB

  1. Insert
  • Ý nghĩa/mục đích: Chèn thêm một bảng ghi vào 1 bảng.
  • Câu query trong SQL:
    insert into
    Student Values(1,'Vijay',
    'VijayRana1091@gmail.com',
    '9711965544','Delhi')
  • Câu query trong MongoDB:
    db.Student.insert(
    {"_id":1,"Name":"Vijay","Email":"VijayRana1091@gmail.com",
    "PhoneNo":"9711965544","Address":"Delhi"}
    )
  1. Select
  • Ý nghĩa/mục đích:
  • Câu query trong SQL:
    Lấy tất cả các cột :
    select * from student
    Lấy một vài cột :
    select ID,Name from Student
  • Câu query trong MongoDB:
    Lấy tất cả các cột :
    db.Student.find()
    Lấy một vài cột :
    db.Student.find({},{"Name":true})
    Chúng ta dùng find() Method để get tất cả dữ liệu trong table.
  1. Where
  • Ý nghĩa/mục đích:
  • Câu query trong SQL:
    select * from student where Name='Vijay'
  • Câu query trong MongoDB:
     db.Student.find({Name:"Vijay"})

Trên là một ví dụ về 3 query thường gặp nhất trong SQL, và nó chuyển thành như thê nào trong MongoDB.

Trong các bài viết tiếp theo, tôi sẽ tiếp tục tìm hiểu Mongodb và so sánh chúng với SQL để những người đã tiếp xúc với SQL có một chuyển mình nhẹ nhàng sang NoSQL, cụ thể là MongoDB.

viblo.asia