Share So sánh cơ sở dữ liệu SQL với NoSQL

filiallion

Administrator
Staff member
Administrator
Messages
585
Points
10
Language
Tiếng Việt
Một thực tế cho thấy cơ sở dữ liệu SQL đã thống trị thế giới dữ liệu và là nguồn lưu trữ dữ liệu chính trong hơn 40 năm qua. Các cơ sở dữ liệu SQL chủ yếu là các hệ cơ sở dữ liệu quan hệ. Trong đó, Oracle và Microsoft SQL Server đã chiếm lĩnh thị phần của các hệ cơ sở dữ liệu SQL trong suốt một thời gian dài cho tới khi nền tảng web ra đời thì mới có sự chuyển dịch sang các hệ cơ sở dữ liệu mã nguồn mở khác như MySQL, Postgres..., đặc biệt là MySQL.

Thời điểm đầu của NoSQL với các tính năng chưa thật sự đáp ứng được nhu cầu lưu trữ ngày càng lớn nên nó chưa thật sự được quan tâm, có một sự thật là NoSQL đã ra đời từ những năm 1960 nhưng cho tới một vài năm gần đây thì NoSQL mới thật sự có chỗ đứng trong thế giới lưu trữ cơ sở dữ liệu với một hệ cơ sở dữ liệu nổi tiếng là MongoDB có khả năng mở rộng cao.

Sự khác biệt chủ yếu của SQL và NoSQL đó chính là cách chúng xử lý dữ liệu. Trong cơ sở dữ liệu SQL, dữ liệu được lưu trữ dưới dạng cấu trúc cột, hàng hai chiều truyền thống trong khi đó mô hình document của NoSQL (Cụ thể là MongoDB) cho phép lưu trữ bất kỳ loại dữ liệu nào.

Các bạn có thể tham khảo bảng so sánh dưới đây để thấy sự khác biệt giữa SQL và NoSQl (Cụ thể là MongoDB):
  • SQL là cơ sở dữ liệu quan hệ còn NoSQL là cơ sở dữ liệu không quan hệ.
  • SQL hỗ trợ ngôn ngữ truy vấn SQL còn NoSQL hỗ trợ ngôn ngữ truy vấn JSON.
  • SQL lưu trữ theo cấu trúc bảng, hàng và cột còn NoSQL lưu trữ dưới dạng collection, document và field.
  • SQL hỗ trợ khoá ngoại còn NoSQL thì không.
  • SQL hỗ trợ trigger còn NoSQL thì không.
  • SQL chứa lược đồ được xác định trước còn NoSQL thì chứa lược đồ động.
  • SQL không phù hợp với lưu trữ dữ liệu phân cấp còn NoSQL thì đáp ứng tốt nhất.
Và còn nhiều sự khác biệt khác các bạn có thể tham khảo thêm.

Với NoSQL cụ thể là MongoDB thì document cũng phù hợp với cấu trúc đối tượng trong các ngôn ngữ hiện đại mà các bạn biết. Điều này giúp các nhà phát triển dễ dàng lập bản đồ dữ liệu được sử dụng trong ứng dụng với các document liên quan của nó trong cơ sở dữ liệu. Trong khi cơ sở dữ liệu SQL, việc tạo một bảng có các cột được ánh xạ tới các thuộc tính của một đối tượng trong ngôn ngữ lập trình thật sự không được thuận tiện cho lắm.

Với một vài nội dung chia sẻ cùng các bạn như trên, tôi hi vọng các bạn có thêm chút thông tin để tìm hiểu và quyết định lựa chọn loại cơ sở dữ liệu phù hợp cho các dự án của các bạn.
 
Back
Top