Hướng dẫn về NoSQL: Là gì, các loại cơ sở dữ liệu NoSQL và ví dụ

NoSQL là gì?

NoSQL Cơ sở dữ liệu là Hệ thống quản lý dữ liệu phi quan hệ, không yêu cầu lược đồ cố định. Nó tránh được sự tham gia và dễ dàng mở rộng quy mô. Mục đích chính của việc sử dụng cơ sở dữ liệu NoSQL là dành cho các kho lưu trữ dữ liệu phân tán có nhu cầu lưu trữ dữ liệu rất lớn. NoSQL được sử dụng cho Dữ liệu lớn và các ứng dụng web thời gian thực. Ví dụ: các công ty như Twitter, Facebook và Google thu thập hàng terabyte dữ liệu người dùng mỗi ngày.

Cơ sở dữ liệu NoSQL là viết tắt của “Không chỉ SQL” hoặc “Không phải SQL”. Mặc dù thuật ngữ tốt hơn có thể là “NoREL”, nhưng NoSQL vẫn được ưa chuộng. Carl Strozz đã giới thiệu khái niệm NoSQL vào năm 1998.

RDBMS truyền thống sử dụng cú pháp SQL để lưu trữ và truy xuất dữ liệu để hiểu rõ hơn. Thay vào đó, hệ thống cơ sở dữ liệu NoSQL bao gồm nhiều công nghệ cơ sở dữ liệu có thể lưu trữ dữ liệu có cấu trúc, bán cấu trúc, không cấu trúc và đa hình. Hãy cùng tìm hiểu về NoSQL bằng sơ đồ trong hướng dẫn cơ sở dữ liệu NoSQL này:

Cơ sở dữ liệu NoSQL

Tại sao lại là NoSQL?

Khái niệm cơ sở dữ liệu NoSQL trở nên phổ biến với những gã khổng lồ Internet như Google, Facebook, Amazon, v.v., những người xử lý khối lượng dữ liệu khổng lồ. Thời gian phản hồi của hệ thống trở nên chậm khi bạn sử dụng RDBMS cho khối lượng dữ liệu lớn.

Để giải quyết vấn đề này, chúng tôi có thể “mở rộng quy mô” hệ thống của mình bằng cách nâng cấp phần cứng hiện có. Quá trình này là tốn kém.

Giải pháp thay thế cho vấn đề này là phân phối tải cơ sở dữ liệu trên nhiều máy chủ bất cứ khi nào tải tăng lên. Phương pháp này được gọi là “mở rộng quy mô”.

NoSQL

Cơ sở dữ liệu NoSQL là cơ sở dữ liệu phi quan hệ nên nó có quy mô tốt hơn cơ sở dữ liệu quan hệ vì chúng được thiết kế dành cho các ứng dụng web.

Tóm tắt lịch sử cơ sở dữ liệu NoSQL

  • 1998- Carlo Strozzi sử dụng thuật ngữ NoSQL cho cơ sở dữ liệu quan hệ mã nguồn mở, nhẹ của mình
  • 2000- Cơ sở dữ liệu đồ thị Neo4j được ra mắt
  • 2004- Google BigTable được ra mắt
  • 2005- CouchDB được đưa ra
  • 2007- Công trình nghiên cứu về Amazon Dynamo được phát hành
  • 2008- Facebook mở nguồn Cassandra dự án
  • 2009- Thuật ngữ NoSQL được giới thiệu lại

Tính năng của NoSQL

Không quan hệ

  • Cơ sở dữ liệu NoSQL không bao giờ tuân theo mô hình quan hệ
  • Không bao giờ cung cấp các bảng có bản ghi cột cố định phẳng
  • Làm việc với các tập hợp độc lập hoặc BLOB
  • Không yêu cầu ánh xạ quan hệ đối tượng và chuẩn hóa dữ liệu
  • Không có các tính năng phức tạp như ngôn ngữ truy vấn, trình lập kế hoạch truy vấn, tham chiếu toàn vẹn tham chiếu, ACID

Không có lược đồ

  • Cơ sở dữ liệu NoSQL không có lược đồ hoặc có lược đồ thoải mái
  • Không yêu cầu bất kỳ loại định nghĩa nào về lược đồ dữ liệu
  • Cung cấp các cấu trúc dữ liệu không đồng nhất trong cùng một miền
Tính năng của NoSQL
NoSQL không có lược đồ

API đơn giản

  • Cung cấp các giao diện dễ sử dụng để lưu trữ và truy vấn dữ liệu được cung cấp
  • API cho phép các phương pháp lựa chọn và thao tác dữ liệu cấp thấp
  • Các giao thức dựa trên văn bản chủ yếu được sử dụng với HTTP REST với JSON
  • Hầu hết không sử dụng ngôn ngữ truy vấn NoSQL dựa trên tiêu chuẩn
  • Cơ sở dữ liệu hỗ trợ web chạy dưới dạng dịch vụ truy cập internet

Phân phối

  • Nhiều cơ sở dữ liệu NoSQL có thể được thực thi theo kiểu phân tán
  • Cung cấp khả năng tự động mở rộng quy mô và chuyển đổi dự phòng
  • Khái niệm ACID thường có thể bị hy sinh vì khả năng mở rộng và thông lượng
  • Hầu như không có sao chép đồng bộ giữa các nút phân tán Sao chép đa chủ không đồng bộ, ngang hàng, Sao chép HDFS
  • Chỉ cung cấp sự nhất quán cuối cùng
  • Không chia sẻ gì Archikiến trúc. Điều này cho phép phối hợp ít hơn và phân phối cao hơn.
Tính năng của NoSQL
NoSQL không được chia sẻ gì cả.

Các loại cơ sở dữ liệu NoSQL

Cơ sở dữ liệu NoSQL chủ yếu được phân loại thành bốn loại: Cặp khóa-giá trị, Hướng theo cột, Dựa trên biểu đồ và Hướng tài liệu. Mỗi danh mục đều có những thuộc tính và hạn chế riêng. Không có cơ sở dữ liệu nào được chỉ định ở trên tốt hơn để giải quyết tất cả các vấn đề. Người dùng nên chọn cơ sở dữ liệu dựa trên nhu cầu sản phẩm của họ.

Các loại cơ sở dữ liệu NoSQL:

  • Dựa trên cặp khóa-giá trị
  • Đồ thị hướng cột
  • Dựa trên đồ thị
  • Định hướng tài liệu

Các loại cơ sở dữ liệu NoSQL

Dựa trên cặp giá trị chính

Dữ liệu được lưu trữ theo cặp khóa/giá trị. Nó được thiết kế theo cách để xử lý nhiều dữ liệu và tải nặng.

Cơ sở dữ liệu lưu trữ cặp khóa-giá trị lưu trữ dữ liệu dưới dạng bảng băm trong đó mỗi khóa là duy nhất và giá trị có thể là JSON, BLOB (Đối tượng lớn nhị phân), chuỗi, v.v.

Ví dụ: một cặp khóa-giá trị có thể chứa khóa như “Trang web” được liên kết với giá trị như “Guru99”.

Dựa trên cặp giá trị chính

Đây là một trong những ví dụ về cơ sở dữ liệu NoSQL cơ bản nhất. Loại cơ sở dữ liệu NoSQL này được sử dụng làm bộ sưu tập, từ điển, mảng kết hợp, v.v. Kho lưu trữ giá trị chính giúp nhà phát triển lưu trữ dữ liệu không có lược đồ. Chúng hoạt động tốt nhất cho nội dung giỏ hàng.

Redis, Dynamo, Riak là một số ví dụ NoSQL về Cơ sở dữ liệu lưu trữ khóa-giá trị. Tất cả chúng đều dựa trên Amazongiấy Dynamo của.

Dựa trên cột

Cơ sở dữ liệu hướng theo cột hoạt động trên các cột và dựa trên giấy BigTable của Google. Mỗi cột được xử lý riêng biệt. Giá trị của cơ sở dữ liệu một cột được lưu trữ liền kề nhau.

Cơ sở dữ liệu NoSQL dựa trên cột

Cơ sở dữ liệu NoSQL dựa trên cột

Chúng mang lại hiệu suất cao cho các truy vấn tổng hợp như SUM, COUNT, AVG, MIN, v.v. vì dữ liệu có sẵn trong một cột.

Cơ sở dữ liệu NoSQL dựa trên cột được sử dụng rộng rãi để quản lý kho dữ liệu, kinh doanh thông minh, CRM, Danh mục thẻ thư viện,

HBase, Cassandra, HBase, Hypertable là các ví dụ truy vấn NoSQL của cơ sở dữ liệu dựa trên cột.

Định hướng tài liệu

NoSQL DB hướng tài liệu lưu trữ và truy xuất dữ liệu dưới dạng cặp giá trị khóa nhưng phần giá trị được lưu trữ dưới dạng tài liệu. Tài liệu được lưu trữ ở định dạng JSON hoặc XML. Giá trị được DB hiểu và có thể được truy vấn.

Quan hệ Vs. Tài liệu

Quan hệ Vs. Tài liệu

Trong sơ đồ bên trái này, bạn có thể thấy chúng tôi có các hàng và cột và ở bên phải, chúng tôi có cơ sở dữ liệu tài liệu có cấu trúc tương tự như JSON. Bây giờ đối với cơ sở dữ liệu quan hệ, bạn phải biết mình có những cột nào, v.v. Tuy nhiên, đối với cơ sở dữ liệu tài liệu, bạn có kho lưu trữ dữ liệu giống như đối tượng JSON. Bạn không cần phải xác định điều gì làm cho nó linh hoạt.

Loại tài liệu này chủ yếu được sử dụng cho các hệ thống CMS, nền tảng blog, phân tích thời gian thực và ứng dụng thương mại điện tử. Không nên sử dụng cho các giao dịch phức tạp đòi hỏi nhiều thao tác hoặc truy vấn đối với các cấu trúc tổng hợp khác nhau.

Amazon đơn giảnDB, CouchDB, MongoDB, Riak, Ghi chú hoa sen, MongoDB, là tài liệu phổ biến có nguồn gốc Hệ thống DBMS.

Dựa trên đồ thị

Cơ sở dữ liệu loại biểu đồ lưu trữ các thực thể cũng như mối quan hệ giữa các thực thể đó. Thực thể được lưu trữ dưới dạng một nút với mối quan hệ là các cạnh. Một cạnh đưa ra mối quan hệ giữa các nút. Mỗi nút và cạnh có một mã định danh duy nhất.

Dựa trên đồ thị

So với cơ sở dữ liệu quan hệ nơi các bảng được kết nối lỏng lẻo, cơ sở dữ liệu đồ thị có bản chất là đa quan hệ. Mối quan hệ truyền tải nhanh chóng vì chúng đã được ghi vào DB và không cần phải tính toán chúng.

Cơ sở dữ liệu cơ sở đồ thị chủ yếu được sử dụng cho mạng xã hội, hậu cần, dữ liệu không gian.

Neo4J, Đồ thị vô hạn, OrientDB, FlockDB là một số cơ sở dữ liệu dựa trên đồ thị phổ biến.

Công cụ cơ chế truy vấn cho NoSQL

Cơ chế truy xuất dữ liệu phổ biến nhất là truy xuất một giá trị dựa trên khóa/ID của nó bằng tài nguyên GET

Cơ sở dữ liệu lưu trữ tài liệu cung cấp các truy vấn khó hơn vì chúng hiểu giá trị trong cặp khóa-giá trị. Ví dụ, CouchDB cho phép xác định chế độ xem bằng MapReduce

Định lý CAP là gì?

Định lý CAP còn được gọi là định lý Brewer. Nó tuyên bố rằng một kho lưu trữ dữ liệu phân tán không thể cung cấp nhiều hơn hai trong số ba đảm bảo

  1. Tính nhất quán
  2. Sự có sẵn
  3. Dung sai phân vùng

Tính nhất quán:

Dữ liệu phải được duy trì nhất quán ngay cả sau khi thực hiện một thao tác. Điều này có nghĩa là khi dữ liệu được ghi, mọi yêu cầu đọc trong tương lai đều phải chứa dữ liệu đó. Ví dụ: sau khi cập nhật trạng thái đơn hàng, tất cả khách hàng sẽ có thể xem cùng một dữ liệu.

Khả dụng:

Cơ sở dữ liệu phải luôn có sẵn và đáp ứng. Nó không nên có bất kỳ thời gian chết.

Dung sai phân vùng:

Dung sai phân vùng có nghĩa là hệ thống sẽ tiếp tục hoạt động ngay cả khi liên lạc giữa các máy chủ không ổn định. Ví dụ: các máy chủ có thể được phân chia thành nhiều nhóm và các nhóm này có thể không liên lạc được với nhau. Ở đây, nếu một phần cơ sở dữ liệu không có sẵn thì các phần khác luôn không bị ảnh hưởng.

Tính nhất quán cuối cùng

Thuật ngữ “tính nhất quán cuối cùng” có nghĩa là có các bản sao dữ liệu trên nhiều máy để có được tính sẵn sàng và khả năng mở rộng cao. Do đó, những thay đổi được thực hiện đối với bất kỳ mục dữ liệu nào trên một máy phải được truyền sang các bản sao khác.

Sao chép dữ liệu có thể không diễn ra ngay lập tức vì một số bản sao sẽ được cập nhật ngay lập tức trong khi những bản sao khác sẽ được cập nhật theo thời gian. Các bản sao này có thể là bản sao của nhau, nhưng theo thời gian, chúng sẽ trở nên nhất quán. Do đó, tên gọi cuối cùng là nhất quán.

CĂN CỨ: Bgiống như một Acó sẵn, Strạng thái thường xuyên, Etính nhất quán thông thường

  • Về cơ bản, có sẵn có nghĩa là DB luôn có sẵn theo định lý CAP
  • Trạng thái mềm có nghĩa là ngay cả khi không có đầu vào; trạng thái hệ thống có thể thay đổi
  • Tính nhất quán cuối cùng có nghĩa là hệ thống sẽ trở nên nhất quán theo thời gian

Tính nhất quán cuối cùng

Ưu điểm của NoSQL

  • Có thể được sử dụng làm Nguồn dữ liệu chính hoặc phân tích
  • Khả năng dữ liệu lớn
  • Không có điểm thất bại nào
  • Sao chép dễ dàng
  • Không cần lớp bộ nhớ đệm riêng biệt
  • Nó cung cấp hiệu suất nhanh và khả năng mở rộng theo chiều ngang.
  • Có thể xử lý dữ liệu có cấu trúc, bán cấu trúc và không cấu trúc với hiệu quả như nhau
  • Lập trình hướng đối tượng dễ sử dụng và linh hoạt
  • Cơ sở dữ liệu NoSQL không cần máy chủ chuyên dụng hiệu suất cao
  • Hỗ trợ các ngôn ngữ và nền tảng dành cho nhà phát triển chính
  • Thực hiện đơn giản hơn so với sử dụng RDBMS
  • Nó có thể phục vụ như là nguồn dữ liệu chính cho các ứng dụng trực tuyến.
  • Xử lý dữ liệu lớn, quản lý tốc độ, tính đa dạng, khối lượng và độ phức tạp của dữ liệu
  • Vượt trội trong hoạt động cơ sở dữ liệu phân tán và trung tâm đa dữ liệu
  • Loại bỏ sự cần thiết của một lớp bộ nhớ đệm cụ thể để lưu trữ dữ liệu
  • Cung cấp một thiết kế lược đồ linh hoạt có thể dễ dàng thay đổi mà không có thời gian ngừng hoạt động hoặc gián đoạn dịch vụ

Nhược điểm của NoSQL

  • Không có quy tắc tiêu chuẩn hóa
  • Khả năng truy vấn hạn chế
  • RDBMS cơ sở dữ liệu và công cụ tương đối trưởng thành
  • Nó không cung cấp bất kỳ khả năng cơ sở dữ liệu truyền thống nào, như tính nhất quán khi nhiều giao dịch được thực hiện cùng lúc.
  • Khi khối lượng dữ liệu tăng lên, rất khó để duy trì các giá trị duy nhất vì các khóa trở nên khó khăn
  • Không hoạt động tốt với dữ liệu quan hệ
  • Quá trình học tập khó khăn đối với các nhà phát triển mới
  • Các tùy chọn nguồn mở nên không quá phổ biến đối với các doanh nghiệp.

Tổng kết

  • NoSQL là một DMS không quan hệ, không yêu cầu lược đồ cố định, tránh các phép nối và dễ dàng mở rộng quy mô
  • Khái niệm cơ sở dữ liệu NoSQL trở nên phổ biến với những gã khổng lồ Internet như Google, Facebook, Amazon, v.v. những người xử lý khối lượng dữ liệu khổng lồ
  • Vào năm 1998- Carlo Strozzi sử dụng thuật ngữ NoSQL cho cơ sở dữ liệu quan hệ mã nguồn mở, nhẹ của mình
  • Cơ sở dữ liệu NoSQL không bao giờ tuân theo mô hình quan hệ, nó không có lược đồ hoặc có các lược đồ thoải mái
  • Bốn loại Cơ sở dữ liệu NoSQL là 1). Dựa trên cặp khóa-giá trị 2). Biểu đồ hướng cột 3). Đồ thị dựa trên 4). Định hướng tài liệu
  • NOSQL có thể xử lý dữ liệu có cấu trúc, bán cấu trúc và không cấu trúc với hiệu quả như nhau
  • Định lý CAP bao gồm ba từ Tính nhất quán, Tính khả dụng và Dung sai phân vùng
  • BASE là viết tắt của Bgiống như một Acó sẵn, Strạng thái thường xuyên, Etính nhất quán thông thường
  • Thuật ngữ “tính nhất quán cuối cùng” có nghĩa là có các bản sao dữ liệu trên nhiều máy để có được tính sẵn sàng và khả năng mở rộng cao
  • NOSQL cung cấp khả năng truy vấn hạn chế