NoSQL là gì?

Một phần của tài liệu Nghiên cứu phương pháp xây dựng Storage Engine cho hệ quản trị cơ sở dữ liệu MySQL (Trang 47)

L ỜI CAM ĐOAN

2.3.3.1. NoSQL là gì?

NoSQL có nghĩa là không ràng buộc (Non – Relational), hay phổ biến hơn có nghĩa là không chỉ SQL – Not Only SQL.

NoSQL là thuật ngữ chung cho các hệ CSDL không sử dụng mô hình dữ liệu quan

hệ. NoSQL đặc biệt nhấn mạnh đến mô hình lưu trữ cặp giá trị - khóa và hệ thống lưu

trữ phân tán.

Thuật ngữ NoSQL được giới thiệu lần đầu tiên vào năm 1998 sử dụng làm tên chung cho các hệ CSDL nguồn mở nhỏ không sử dụng SQL để truy vấn. Vào năm

2009, Eric Evans, nhân viên của Rackspace giới thiệu lại thuật ngữ này trong một hội

thảo về mã nguồn mở phân tán. Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ

Cách thức lưu trữ NoSQL đặc biệt phổ dụng trong thời kì web 2.0 bùng nổ, nơi

các dịch vụ dữ liệu cộng đồng cho phép người dùng tạo ra hàng tỉ nội dung trên web.

Do đó, dữ liệu rất nhanh vượt qua giới hạn phần cứng và giải pháp đưa ra là phân tán

dữ liệu trên các nút đặt tại các vị trí khác nhau.

NoSQL thiết kế đơn giản và gọn nhẹ hơn so với CSDL quan hệ truyền thống cho nên nó đặc biệt thích hợp cho các thiết bị cầm tay nơi mà bộ nhớ và tốc độ xử lí hạn

chế. Khi khối lượng dữ liệu cần lưu trữ và lưu lượng truy cập vào/ra cực lớn, các hệ

CSDL quan hệ đòi hỏi cao về tài nguyên phần cứng, chi phí thiết lập, vận hành đắt thì các hệ CSDL NoSQL, với lưu trữ phân tán được thiết kế đặc biệt để giảm thiểu các

phép toán, thao tác đọc/ghi liên quan đến xử lí lô, ít đòi hỏi phần cứng mạnh và đồng

nhất, dễ dàng thêm bớt các nút mà không ảnh hưởng tới toàn bộ hệ thống. Các hệ

CSDL NoSQL có thể lưu trữ, xử lí một lượng dữ liệu từ rất nhỏ đến hàng petabyte với

khả năng chịu tải, chịu lỗi cao.

NoSQL được thiết kế dựa trên mô hình lưu trữ cặp giá trị: khóa – giá trị (key – value) trên các hệ thống phân tán. Dữ liệu trên các nút có thể được nhân bản trong

nhiều nút khác nhau. Một yêu cầu truy vấn có thể gửi tới nhiều máy cùng lúc. Khi một nút nào đó gặp sự cố cũng không ảnh hưởng tới toàn bộ hệ thống.

Một số đặc trưng nổi bật của NoSQL là:

- Không ràng buộc: trong CSDL quan hệ, để đảm bảo tính nhất quán của dữ liệu,

các bảng sử dụng 2 khóa: khóa chính và khóa ngoại để ràng buộc dữ liệu. Trong

CSDL NoSQL, không sử dụng các ràng buộc này.

- Lưu trữ phân tán: phân tán các tệp tin hoặc dữ liệu trên các máy khác nhau trong mạng LAN hoặc Internet dưới sự kiểm soát của phần mềm.

- Nhất quán cuối: tính nhất quán của dữ liệu không cần đảm bảo ngay sau mỗi

phép ghi. Một hệ thống phân tán chấp nhận những ảnh hưởng theo phương thức lan

truyền và sau một khoảng thời gian các thay đổi đó sẽ được chỉnh sửa tại mọi điểm của

hệ thống, tức là cuối cùng dữ liệu trên hệ thống sẽ trở lại trạng thái nhất quán.

- Khả năng mở rộng theo chiều dọc (scale up): là phương pháp tăng cường khả năng lưu trữ và xử lí bằng việc cải thiện phần cứng và phần mềm như là tăng cường

CPU, mua thêm bộ nhớ, đĩa cứng, …

- Khả năng mở rộng theo chiều ngang (scale out): là phương pháp tăng cường lưu

trữ và xử lí bằng cách bổ sung thêm nhiều máy tính phân tán (bổ sung các nút)

NoSQL đặc biệt thích hợp với các ứng dụng cực lớn như dịch vụ tìm kiếm, mạng

xã hội, … hay các mô hình lưu trữ dữ liệu đặc thù như hướng đối tượng, hướng văn

bản, … với chi phí thấp và yêu cầu về phần cứng là không cao. Tuy nhiên, chấp nhận NoSQL đồng nghĩa với chấp nhận những thách thức như sự non nớt, sự hỗ trợ và giám

thức về NoSQL không thể so sánh được với tri thức của CSDL quan hệ đã được phát

triển trong thời gian dài với hàng tỉ người phát triển.

Một phần của tài liệu Nghiên cứu phương pháp xây dựng Storage Engine cho hệ quản trị cơ sở dữ liệu MySQL (Trang 47)

Tải bản đầy đủ (PDF)

(75 trang)