SQL và NoSQL là hai mô hình cơ sở dữ liệu cơ bản với đặc thước, ưu/nhược điểm khác nhau.
| Tiêu chí | SQL (RDBMS) | NoSQL |
|---|---|---|
| Kiểu | Cơ sở dữ liệu quan hệ (Relational) | Phi quan hệ, phân tán (Non-relational, Distributed) |
| Ngôn ngữ | SQL chuẩn (Structured Query Language), schema cố định, phù hợp truy vấn phức tạp | Schema động, dữ liệu phi cấu trúc (document, key-value, graph, column-family), cú pháp khác nhau tùy DB |
| Khả năng mở rộng | Mở rộng dọc (Vertical scaling): tăng RAM, CPU, SSD trên 1 server | Mở rộng ngang (Horizontal scaling): thêm server, phù hợp big data, dữ liệu thay đổi liên tục |
| Mô hình dữ liệu | Tuân thủ ACID (Atomicity, Consistency, Isolation, Durability) | Dựa trên CAP Theorem (Consistency, Availability, Partition Tolerance) - thường ưu tiên AP |
| Hiệu năng & Phù hợp | Truy vấn phức tạp, JOIN, transaction chặt chẽ, báo cáo, tài chính | Dữ liệu phân cấp lớn, real-time, IoT, log, cache, social network |
| Ví dụ phổ biến | MySQL, PostgreSQL, Oracle, SQL Server, SQLite | MongoDB, Redis, Cassandra, CouchDB, Neo4j, BigTable, HBase, RavenDB |
Khi nào chọn SQL? Dữ liệu có cấu trúc cố định, cần tính nhất quán mạnh (ACID), truy vấn phức tạp với JOIN, ứng dụng tài chính, ERP, CRM.
Khi nào chọn NoSQL? Dữ liệu lớn, thay đổi schema thường xuyên, cần mở rộng ngang, hiệu năng ghi/đọc cao, dữ liệu phi cấu trúc (JSON, log, sensor).
Xu hướng hiện tại: Polyglot Persistence - dùng cả SQL và NoSQL trong cùng một hệ thống cho các mục đích khác nhau.