Phần mềm

NoSQL - Cơ sở dữ liệu

(KHCN) - NoSQL có nghĩa là Non-Relational - không ràng buộc, tuy nhiên hiện nay người ta thường dịch NoSQL là Not Only SQL - Không chỉ SQL  một dạng cơ sở dữ liệu cung cấp cơ chế lưu trữ và truy xuất dữ liệu theo mô hình khác với các cơ sở dữ liệu quan hệ. NoSQL được đánh giá là có phương thức tiếp cận thiết kế đơn giản, dễ dàng mở rộng ngang và có độ sẵn sàng đáp ứng cao, dễ dàng kiểm soát.  

Giới thiệu NoSQL

Đây 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 vào năm 1998 sử dụng làm tên gọi chung cho các hệ CSDL quan hệ 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ữ NoSQL khi Johan Oskarsson của Last.fm muốn tổ chức một hội thảo về cơ sở dữ liệu nguồn mở phân tán. Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ CSDL mới: phân tán (distributed) + không ràng buộc (non-relational).

NoSQL storage đặc biệt phổ dụng trong thời kỳ Web 2.0 bùng nổ, nơi các mạng dịch vụ dữ liệu cộng đồng cho phép người dùng tạo hàng tỷ nội dung trên web. Do đó, dữ liệu lớn rất nhanh vượt qua giới hạn phần cứng cần phải giải quyết bằng bài toán phân tán.

Tốt hơn SQL


Các hệ CSDL quan hệ (RDBM) hiện tại bộc lộ những yếu kém trong những tác vụ như đánh chỉ mục một lượng lớn dữ liệu, phân trang, hoặc phân phối luồng dữ liệu media (phim, ảnh, nhạc, ...). CSDL quan hệ được thiết kế cho những mô hình dữ liệu không quá lớn trong khi các dịch vụ mạng xã hội lại có một lượng dữ liệu cực lớn và cập nhật liên tục do số lượng người dùng quá nhiều.

Thế hệ CSDL mới - NoSQL - giảm thiểu tối đa các phép tính toán, tác vụ đọc-ghi liên quan kết hợp với xử lý theo lô (batch processing) đảm bảo được yêu cầu xử lý dữ liệu của các dịch vụ mạng xã hội. Hệ CSDL này có thể lưu trữ, xử lý từ lượng rất nhỏ đến hàng petabytes dữ liệu với khả năng chịu tải, chịu lỗi cao nhưng chỉ đòi hỏi về tài nguyên phần cứng thấp.

NoSQL thiết kế đơn giản, nhẹ, gọn hơn so với RDBMs. Ngoài memory cached, dữ liệu nhỏ,… các NoSQL dạng này đặc biệt thích hợp cho thiết bị cầm nơi mà bộ nhớ và tốc độ xử lý hạn chế hơn so với máy tính thông thường. Khi khối lượng dữ liệu cần lưu trữ và lượng vào/ra cực lớn, RDBM đòi hỏi khắt khe và cao về phần cứng, chi phí thiết lập, vận hành đắt thì các mô hình lưu trữ phân tán trong NoSQL trở nên vượt trội. Thiết kế đặc biệt tối ưu về hiệu suất, tác vụ đọc-ghi, ít đòi hỏi về phần cứng mạnh và đồng nhất, dễ dàng thêm bớt các node không ảnh hưởng tới toàn hệ thống,…

Các mô hình dữ liệu đặc thù của NoSQL cũng cấp API tự nhiên hơn so với việc dùng RDBM.

Những ràng buộc về giấy phép sử dụng cùng với một khoản phí không nhỏ cũng là ưu thế. Chấp nhận NoSQL đồng nghĩa với việc bạn tham gia vào thế giới nguồn mở nơi mà bạn có khả năng tùy biến mạnh mẽ các sản phẩm, thư viện theo đúng mục đích của mình.

Bảng dưới đây đưa ra một số so sánh giữa RDBM và NoSQL.

Tính năng

CSDL quan hệ

NoSQL

Hiệu suất

Kém hơn
SQL
Relational giữa các table

Cực tốt
Bỏ qua SQL
Bỏ qua các ràng buộc dữ liệu

Khả năng mở rộng

Hạn chế về lượng.

Hỗ trợ một lượng rất lớn các node.

Hiệu suất đọc-ghi

Kém do thiết kế để đảm bảo sự vào/ra liên tục của dữ liệu

Tốt với mô hình xử lý lô và những tối ưu về đọc-ghi dữ liệu.

Thay đổi số node trong hệ thống

Phải shutdown cả hệ thống.
Việc thay đổi số node phức tạp.

Không cần phải shutdown cả hệ thống.
Việc thay đổi số node đơn giản, không ảnh hưởng đến hệ thống.

Phần cứng

Đòi hỏi cao về phần cứng.

Đòi hỏi thấp hơn về giá trị và tính đồng nhất của phần cứng

Về cơ bản, thiết kế của NoSQL lựa chọn mô hình lưu trữ dữ liệu theo cặp giá trị ‘key-value’. Khái niệm node được sử dụng như trong các hệ thống phân tán. Việc lưu trữ dữ liệu có thể chấp nhận trùng lặp, tức dữ liệu được nhân bản ra nhiều node khác nhau. Một yêu cầu truy vấn dữ liệu có thể gửi tới nhiều máy cùng lúc, khi một máy nào đó bị sự cố cũng không ảnh hưởng nhiều tới toàn bộ hệ thống. Để đảm bảo tính ‘thời gian thực’ trong các hệ thống xử lý lượng lớn, thông thường người ta sẽ tách biệt CSDL ra làm 2 hoặc nhiều CSDL. CSDL nhỏ đảm bảo đọc-ghi liên tục, khi đạt tới ngưỡng thời gian hoặc dung lượng, CSDL nhỏ sẽ được gộp vào CSDL lớn có thiết kế tối ưu cho tác vụ đọc.

Một số đặc điểm

- Phi quan hệ (hay không ràng buộc): relational - ràng buộc - thuật ngữ sử dụng đến các mối quan hệ giữa các bảng trong cơ sở dữ liệu quan hệ (RDBM) sử dụng mô hình gồm 2 loại khóa: khóa chính và khóa phụ (primary key + foreign key) để ràng buộc dữ liệu nhằm thể hiện tính nhất quán dữ liệu từ các bảng khác nhau. Non-relational là khái niệm không sử dụng các ràng buộc dữ liệu cho nhất quán dữ liệu.

- Lưu trữ phân tán: mô hình lưu trữ phân tán các tập tin hoặc dữ liệu ra nhiều 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 phải đảm bảo ngay tức khắc 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 (không phải ngay tức khắc), thay đổi sẽ đi đến mọi điểm trong hệ thống để cuối cùng dữ liệu trên hệ thống sẽ trở lại trạng thái nhất quán.

- Triển khai đơn giản, dễ nâng cấp và mở rộng.

- Mô hình dữ liệu và truy vấn linh hoạt.

Có bao nhiêu loại cơ sở dữ liệu NoSQL

Hiện nay, có rất nhiều loại cơ sở dữ liệu NoSQL mỗi hãng phát triển lại tạo nên những ưu điểm và tinh hoa riêng cho sản phẩm của mình có thể kể đến như: Memcached (Key-value cache), MongoDB (document store), …..

Tính ứng dụng của NoSQL

Ngày nay, với sự phát triển của các ứng dụng Big Data mạng xã hội, yêu cầu đòi hỏi xử lý một lượng dữ liệu vô cùng lớn, tăng lên nhanh chóng hàng ngày. Vì vậy mà NoSQL trở thành một cơ sở dữ liệu không thể thiếu để giải quyết những bài toán như vậy. Ví dụ như Facebook sử dụng NoSQL kết hợp với RDBMS để lưu trữ hàng tỷ bài viết và bình luận đáp ứng hơn 1 tỷ thành viên sử dụng dịch vụ mà vẫn luôn hoạt động ổn định, tính sẵn sàng cao và khả năng phân tán dữ liệu vô tận.

TH

Thông tin website

Chuyên trang Bản tin khoa học công nghệ.
Thực hiện : Phòng Khoa học - Công nghệ, Trung Tâm CNTT, BộVăn hoá,Thể thao & Du lịch.
Người chịu trách nhiệm chính: Nguyễn Thanh Liêm - Giám đốc.

Địa chỉ: Ngõ 2 số 20, Vân Hồ, Hoa Lư, Hà Nội;
Tel: 0243 9745845
Email: khoahoccongnghe@cinet.gov.vn
Ghi rõ nguồn khi phát lại thông tin từ website này.

Liên hệ Tòa soạn