NoSQL là gì? Tổng quan về NoSQL database

1090
15-10-2018
NoSQL là gì? Tổng quan về NoSQL database

Trong khi cơ sở dữ liệu SQL có những ràng buộc về kiểu dữ liệu và tính nhất quán, NoSQL lại cho thấy những ưu điểm về tốc độ, tính linh hoạt và khả năng mở rộng. Hãy cùng Bizfly Cloud  tìm hiểu tổng quan về NoSQL database.

NoSQL là gì?

Cơ sở dữ liệu NoSQL là cơ sở dữ liệu cung cấp cơ chế lưu trữ và truy xuất dữ liệu (non-relational Data Management System) với sơ đồ linh hoạt. NoSQL được ra đời để khác phục những hạn chế của SQL như: lược đồ/schema cứng nhắc, thiếu linh hoạt - khiến chúng trở nên ít phù hợp hơn với các loại ứng dụng khác. 

Hệ thống NoSQL lưu trữ và quản trị dữ liệu sao cho có thể hỗ trợ được tốc độ vận hành ở công suất cao và cung cấp tính linh hoạt tuyệt vời cho các nhà phát triển sử dụng. Có rất nhiều hệ thống đã được các công ty lớn như Google, Amazon, Yahoo, and Facebook phát triển, cung cấp các phương thức lưu trữ nội dung và xử lý dữ liệu cho các website thuộc hàng "khủng". Không giống với cơ sở dữ liệu SQL, rất nhiều cơ sở dữ liệu NoSQL có thể mở rộng theo chiều ngang trên hàng trăm hoặc hàng ngàn máy chủ.

>> Tham khảo thêm:  Sự khác nhau giữa SQL, MySQL và SQL Server

NoSQL là gì? Tổng quan về NoSQL database - Ảnh 1.

NoSQL và SQL bổ sung, tương hỗ cho nhau

Tuy nhiên, so với hệ cơ sở dữ liệu SQL, NoSQL không có tính nhất quán bằng. Trên thực tế, cơ sở dữ liệu SQL thường sẽ ưu tiên tuân thủ các thuộc tính ACID đảm bảo độ tin cậy cho các giao dịch, sau đó mới xét đến hiệu suất và khả năng mở rộng, trong khi cơ sở dữ liệu NoSQL gần như bỏ qua các đảm bảo ACID để ưu tiên tốc độ và khả năng mở rộng.

Nói một cách ngắn gọn, NoSQL và SQL cung cấp các cân bằng khác nhau và khi đặt trong một bức tranh tổng thể lại có vai trò tương hỗ, bổ sung cho nhau. Mỗi hệ thống sẽ phù hợp với các trường hợp sử dụng khác nhau. Việc quyết định lựa chọn công cụ nào cần phụ thuộc vào tính chất công việc thực tế.

>> Xem thêm:  27 Cú pháp SQL cơ bản phải biết

Các hệ thống NoSQL phổ biến

Với NoSQL, dữ liệu có thể được lưu trữ theo kiểu đơn giản lược đồ hoặc dạng tự do. Dữ liệu bất kỳ có thể được lưu trữ trong bản ghi bất kỳ. Trong số các cơ sở dữ liệu NoSQL, có 4 mô hình lưu trữ dữ liệu phổ biến, do đó, có 4 loại hệ thống NoSQL phổ biến:

1. Document database: (ví dụ: CouchDB, MongoDB): Dữ liệu thêm vào sẽ được lưu trữ dưới dạng cấu trúc JSON tự do hoặc "tài liệu", ở đó dữ liệu có thể là bất kỳ dạng nào từ số nguyên đến chuỗi dữ liệu đến văn bản dạng tự do.

2. Key-value stores (ví dụ: Redis, Riak): Các giá trị dạng tự do — từ các số nguyên hoặc chuỗi đơn giản đến các tài liệu JSON phức tạp —truy cập được trong cơ sở dữ liệu sử dụng các phím.

3. Wide column stores (ví dụ: HBase, Cassandra): Dữ liệu được lưu trữ dạng cột thay vì theo hàng như trong hệ thống SQL thông thường. Bất kỳ số cột nào (và do đó có nhiều loại dữ liệu khác nhau) có thể được nhóm hoặc tổng hợp khi cần thiết cho các truy vấn hoặc chế độ xem dữ liệu.

4. Graph database (ví dụ: Neo4j): Dữ liệu được biểu diễn dưới dạng mạng hoặc đồ thị các đối tượng và mối quan hệ của các đối tượng đó, với mỗi node trong biểu đồ là một đoạn dữ liệu dạng tự do.

Dạng lưu trữ kiểu lược đồ đơn giản (loại bỏ lược đồ) sẽ hữu ích trong các trường hợp cụ thể sau:

- Người dùng muốn truy cập nhanh vào dữ liệu, người dùng quan tâm đến tốc độ và tính đơn giản khi truy cập hơn là độ tin cậy hay tính nhất quán của giao dịch.

- Khi người dùng lưu trữ một lượng lớn dữ liệu và không muốn bị hạn chế bởi các lược đồ, bởi việc thay đổi lược đồ có thể sẽ diễn ra rất chậm và khó khăn.

- Người dùng đang nhập vào các dữ liệu phi cấu trúc từ một hay nhiều nguồn và bạn muốn dữ liệu ở dạng nguyên bản để tận dụng tối đa tính linh hoạt.

- Người dùng muốn lưu trữ dữ liệu trong một cấu trúc phân cấp, nhưng các thứ bậc đó cần phải được mô tả bởi chính dữ liệu mà không phải là một lược đồ. NoSQL cho phép dữ liệu có thể tự mô phỏng với phương thức phức tạp hơn cơ sở dữ liệu SQL.

NoSQL là gì? Tổng quan về NoSQL database - Ảnh 2.

NoSQL có tính linh hoạt, khả năng mở rộng và hiệu suất cao

Những hạn chế của NoSQL

- Không có lược đồ: Với NoSQL, trách nhiệm sẽ được chuyển từ cơ sở dữ liệu sang nhà phát triển ứng dụng. Ví dụ, nhà phát triển có thể áp đặt cấu trúc thông qua một hệ thống map đối tượng quan hệ hoặc ORM. Nhưng nếu bạn muốn lược đồ tự dữ liệu, NoSQL thường sẽ không hỗ trợ.

- Thiếu tính nhất quán: Dữ liệu được chèn vào cụm dỳ thế nào cũng sẽ khả dụng trên toàn bộ hệ thống, nhưng không thể biết chắc chắn khoảng thời gian nào.

NoSQL là gì? Tổng quan về NoSQL database - Ảnh 3.

NoSQL đòi hỏi kỹ năng tương đối để sử dụng

NoSQL lock-in: Hầu hết các hệ thống NoSQL đều tương tự về khái niệm, tuy nhiên, cách thực hiện lại rất khác nhau. Mỗi hệ thống sẽ có cơ chế truy vấn dữ liệu và quản lý riêng. Điều này có thể sẽ trở gây ra trở ngại nếu xảy ra các thay đổi hệ thống trong quá trình làm việc.

- Kỹ năng NoSQL: Một hạn chế khác đối với NoSQL là người sử dụng có thể sẽ thiếu các kỹ năng chuyên môn ở mức tương đối bởi hệ thống này còn khá mới và không phải ai cũng biết cách sử dụng thành thạo. 

Theo Bizfly Cloud chia sẻ

>> Có thể bạn quan tâm: Vài điều cơ bản về SQL

SHARE