Tổng quan về cơ sở dữ liệu NoSQL

Từ viết tắt NoSQL được đặt ra vào năm 1998. Nhiều người nghĩ NoSQL là một thuật ngữ xúc phạm tạo ra để chọc vào SQL. Trong thực tế, thuật ngữ này có nghĩa là không chỉ SQL. Ý tưởng là cả hai công nghệ đều có thể cùng tồn tại và mỗi công nghệ đều có vị trí của nó. Phong trào NoSQL đã được đưa tin trong vài năm qua vì nhiều nhà lãnh đạo Web 2.0 đã áp dụng công nghệ NoSQL. Các công ty như Facebook, Twitter, Digg, Amazon, LinkedIn và Google đều sử dụng NoSQL theo cách này hay cách khác.

Hãy chia nhỏ NoSQL để bạn có thể giải thích cho CIO của bạn hoặc ngay cả đồng nghiệp của bạn.

NoSQL nổi lên từ một nhu cầu

Lưu trữ dữ liệu: Dữ liệu kỹ thuật số được lưu trữ của thế giới được đo bằng exabyte. Một exabyte bằng một tỷ gigabyte (GB) dữ liệu. Theo Internet.com, lượng dữ liệu được lưu trữ được thêm vào năm 2006 là 161 exabyte. Chỉ 4 năm sau vào năm 2010, lượng dữ liệu được lưu trữ sẽ gần 1.000 ExaBytes, tăng hơn 500%. Nói cách khác, có rất nhiều dữ liệu được lưu trữ trên thế giới và nó sẽ tiếp tục phát triển.

Dữ liệu được kết nối: Dữ liệu tiếp tục trở nên kết nối hơn. Việc tạo ra các trang web được nuôi dưỡng trong các siêu liên kết, các blog có pingback và mọi hệ thống mạng xã hội lớn đều có các thẻ gắn kết mọi thứ với nhau. Các hệ thống chính được xây dựng để được kết nối với nhau.

Cấu trúc dữ liệu phức tạp: NoSQL có thể dễ dàng xử lý các cấu trúc dữ liệu lồng nhau phân cấp. Để thực hiện điều tương tự trong SQL, bạn sẽ cần nhiều bảng quan hệ với tất cả các loại khóa.

Ngoài ra, có mối quan hệ giữa hiệu suất và độ phức tạp của dữ liệu. Hiệu suất có thể làm suy giảm trong một RDBMS truyền thống khi chúng tôi lưu trữ một lượng lớn dữ liệu cần thiết trong các ứng dụng mạng xã hội và web ngữ nghĩa.

NoSQL là gì?

Tôi đoán một cách để định nghĩa NoSQL là xem xét nó là gì không.

Nó không phải là SQL và nó không quan hệ. Giống như tên cho thấy, nó không phải là một thay thế cho một RDBMS nhưng khen ngợi nó. NoSQL được thiết kế cho các kho dữ liệu phân tán cho các nhu cầu dữ liệu quy mô rất lớn. Hãy suy nghĩ về Facebook với 500.000 người dùng hoặc Twitter tích lũy dữ liệu Terabits mỗi ngày.

Trong cơ sở dữ liệu NoSQL, không có lược đồ cố định và không có tham gia. RDBMS "mở rộng quy mô" bằng cách nhận phần cứng nhanh hơn và nhanh hơn và thêm bộ nhớ. NoSQL, mặt khác, có thể tận dụng lợi thế của "mở rộng quy mô". Mở rộng quy mô ra đề cập đến việc lan truyền tải trên nhiều hệ thống hàng hóa. Đây là thành phần của NoSQL làm cho nó trở thành một giải pháp rẻ tiền cho các tập dữ liệu lớn.

Danh mục NoSQL

Thế giới NoSQL hiện tại phù hợp với 4 loại cơ bản.

  1. Các khóa-giá trị Các cửa hàng chủ yếu dựa trên Giấy Dynamo của Amazon được viết vào năm 2007. Ý tưởng chính là sự tồn tại của một bảng băm trong đó có một khóa duy nhất và một con trỏ tới một mục dữ liệu cụ thể. Các ánh xạ này thường đi kèm với các cơ chế bộ nhớ cache để tối đa hóa hiệu suất.
    Các cửa hàng Family Column được tạo ra để lưu trữ và xử lý một lượng lớn dữ liệu được phân phối trên nhiều máy. Vẫn còn khóa nhưng chúng trỏ đến nhiều cột. Trong trường hợp BigTable (mô hình NoSQL của gia đình cột của Google), các hàng được xác định bằng một khóa hàng với dữ liệu được sắp xếp và lưu trữ bởi khóa này. Các cột được sắp xếp theo họ cột.
  1. Các cơ sở dữ liệu tài liệu được lấy cảm hứng từ Lotus Notes và tương tự như các kho khóa-giá trị. Mô hình về cơ bản là các tài liệu được phiên bản là các bộ sưu tập các bộ sưu tập khóa-giá trị khác. Các tài liệu bán cấu trúc được lưu trữ trong các định dạng như JSON.
  2. Cơ sở dữ liệu đồ thị được xây dựng với các nút, mối quan hệ giữa các ghi chú và các thuộc tính của các nút. Thay vì các bảng các hàng và cột và cấu trúc cứng nhắc của SQL, một mô hình đồ thị linh hoạt được sử dụng có thể mở rộng trên nhiều máy.

Người chơi NoSQL chính

Những người chơi chính trong NoSQL đã nổi lên chủ yếu là do các tổ chức đã áp dụng chúng. Một số công nghệ NoSQL lớn nhất bao gồm:

Truy vấn NoSQL

Sau khi tất cả, dữ liệu được lưu trữ trong một cơ sở dữ liệu khổng lồ không làm bất cứ ai tốt nếu bạn không thể truy xuất và hiển thị nó cho người dùng cuối hoặc dịch vụ web. Cơ sở dữ liệu NoSQL không cung cấp ngôn ngữ truy vấn khai báo cấp cao như SQL. Thay vào đó, truy vấn các cơ sở dữ liệu này là mô hình dữ liệu cụ thể.

Nhiều nền tảng NoSQL cho phép giao diện RESTful với dữ liệu. API truy vấn phiếu mua hàng khác. Có một vài công cụ truy vấn đã được phát triển để cố gắng truy vấn nhiều cơ sở dữ liệu NoSQL. Những công cụ này thường hoạt động trên một danh mục NoSQL duy nhất. Một ví dụ là SPARQL. SPARQL là một đặc tả truy vấn khai báo được thiết kế cho các cơ sở dữ liệu đồ thị. Dưới đây là ví dụ về truy vấn SPARQL truy xuất URL của một blogger cụ thể (do IBM cung cấp):

PREFIX foaf:
Url SELECT?
FROM
Ở ĐÂU {
foaf đóng góp: tên "Jon Foobar".
? Đóng góp cho foaf: weblog? url.
}

Tương lai của NoSQL

Các tổ chức có nhu cầu lưu trữ dữ liệu lớn đang xem xét nghiêm túc tại NoSQL. Rõ ràng, khái niệm này không nhận được nhiều lực kéo trong các tổ chức nhỏ hơn. Trong một cuộc khảo sát được tiến hành bởi Information Week, 44% các chuyên gia CNTT kinh doanh chưa từng nghe về NoSQL. Hơn nữa, chỉ có 1% số người được hỏi cho biết NoSQL là một phần trong định hướng chiến lược của họ. Rõ ràng, NoSQL có vị trí của nó trong thế giới kết nối của chúng ta nhưng sẽ cần phải tiếp tục phát triển để có được sự hấp dẫn hàng loạt mà nhiều người nghĩ rằng nó có thể có.