NoSQL チュートリアル: NoSQL データベースの種類と例

NoSQLとは何ですか?

NoSQL データベースは非リレーショナル データ管理システムであり、固定スキーマを必要としません。 結合が回避され、拡張が容易になります。 NoSQL データベースを使用する主な目的は、膨大なデータ ストレージのニーズがある分散データ ストアに使用することです。 NoSQL はビッグ データとリアルタイム Web アプリに使用されます。 たとえば、Twitter、Facebook、Google などの企業は、毎日テラバイト規模のユーザー データを収集しています。

NoSQLデータベース 「Not Only SQL」または「Not SQL」の略です。 「NoREL」という方が適切な用語ですが、NoSQL が普及しました。 Carl Strozz は 1998 年に NoSQL の概念を導入しました。

従来の RDBMS は、SQL 構文を使用して、さらなる洞察を得るためにデータを保存および取得します。 代わりに、NoSQL データベース システムには、構造化データ、半構造化データ、非構造化データ、多態性データを保存できる幅広いデータベース テクノロジが含まれています。 この NoSQL データベース チュートリアルの図を使用して NoSQL について理解しましょう。

NoSQLデータベース

なぜNoSQLなのか?

NoSQL データベースの概念は、Google、Facebook、 Amazon、大量のデータを扱う人など。大量のデータに RDBMS を使用すると、システムの応答時間が遅くなります。

この問題を解決するには、既存のハードウェアをアップグレードすることでシステムを「スケールアップ」できます。 このプロセスには費用がかかります。

この問題の代替案は、負荷が増加するたびにデータベースの負荷を複数のホストに分散することです。 この方法は「スケールアウト」として知られています。

NoSQL

NoSQL データベースは非リレーショナルであるため、Web アプリケーションを念頭に置いて設計されているため、リレーショナル データベースよりもスケールアウトが優れています。

NoSQL データベースの簡単な歴史

  • 1998 - カルロ ストロッツィは、軽量のオープンソース リレーショナル データベースに対して NoSQL という用語を使用しました
  • 2000- グラフデータベース Neo4jが発売されました
  • 2004 - Google BigTable が開始される
  • 2005 - CouchDB が開始される
  • 2007- に関する研究論文 Amazon ダイナモ発売
  • 2008- Facebook が Cassandra プロジェクトをオープンソース化
  • 2009 - NoSQL という用語が再導入されました

NoSQLの特徴

非リレーショナル

  • NoSQL データベースは決して 関係モデル
  • フラットな固定列レコードをテーブルに提供しないでください
  • 自己完結型集計または BLOB を操作する
  • オブジェクト リレーショナル マッピングとデータの正規化が不要
  • コムなしplex クエリ言語、クエリ プランナー、参照整合性結合、ACID などの機能

スキーマフリー

  • NoSQL データベースはスキーマフリー、または緩和されたスキーマのいずれかです
  • データのスキーマの定義は一切必要ありません
  • 異種提供neo同じドメイン内のデータの構造を理解する
NoSQLの特徴
NoSQL はスキーマフリーです

シンプルなAPI

  • 提供されたデータのストレージとクエリのための使いやすいインターフェイスを提供します
  • API により、低レベルのデータ操作と選択方法が可能になります
  • 主に JSON を使用した HTTP REST で使用されるテキストベースのプロトコル
  • ほとんどの場合、標準ベースの NoSQL クエリ言語は使用されません
  • インターネット接続サービスとして実行される Web 対応データベース

分散

  • 複数の NoSQL データベースを分散方式で実行可能
  • 自動スケーリングとフェイルオーバー機能を提供します
  • 多くの場合、ACID の概念はスケーラビリティとスループットのために犠牲になることがあります
  • 分散ノード間の同期レプリケーションはほとんどなし 非同期マルチマスター レプリケーション、ピアツーピア、HDFS レプリケーション
  • 最終的な整合性のみを提供する
  • 何も共有しないアーキテクチャ。 これにより、調整が少なくなり、分散が向上します。
NoSQLの特徴
NoSQL は何も共有されません。

NoSQLデータベースの種類

NoSQLデータベース 主に、キーと値のペア、列指向、グラフベース、ドキュメント指向の XNUMX つのタイプに分類されます。 すべてのカテゴリには、独自の属性と制限があります。 上記で指定したデータベースのどれも、すべての問題を解決するのに適しています。 ユーザーは、製品のニーズに基づいてデータベースを選択する必要があります。

NoSQL データベースの種類:

  • キーと値のペアベース
  • 列指向のグラフ
  • グラフベース
  • ドキュメント指向

NoSQLデータベースの種類

キーと値のペアベース

データはキーと値のペアで保存されます。 大量のデータと重い負荷を処理できるように設計されています。

キーと値のペアのストレージ データベースは、各キーが一意であるハッシュ テーブルとしてデータを保存します。値は JSON、BLOB (バイナリ ラージ オブジェクト)、文字列などになります。

たとえば、キーと値のペアには、「Guru99」のような値に関連付けられた「Website」のようなキーが含まれる場合があります。

キーと値のペアベース

これは、最も基本的な NoSQL データベースの例の XNUMX つです。 この種の NoSQL データベースは、コレクション、辞書、連想配列などとして使用されます。キー値ストアは、開発者がスキーマのないデータを保存するのに役立ちます。 ショッピング カートの内容に最適です。

Redis、Dynamo、Riak は、キー/値ストア データベースの NoSQL の例です。それらはすべてに基づいています Amazonのダイナモペーパー。

列ベース

列指向データベースは列で動作し、Google の BigTable 論文に基づいています。 すべての列は個別に処理されます。 単一列データベースの値は連続して保存されます。

列ベースの NoSQL データベース

カラムベースのNoSQLデータベース

SUM、COUNT、などの集計クエリで高いパフォーマンスを実現します。 AVG、MIN など、データは列ですぐに利用できるためです。

列ベースの NoSQL データベースは、データ ウェアハウスの管理に広く使用されています。 ビジネス・インテリジェンス、CRM、図書館カードカタログ、

HBase、Cassandra、HBase、Hypertable は、列ベースのデータベースの NoSQL クエリの例です。

ドキュメント指向

ドキュメント指向 NoSQL DB は、データをキーと値のペアとして保存および取得しますが、値の部分はドキュメントとして保存されます。 ドキュメントは JSON または XML 形式で保存されます。 値は DB によって理解され、クエリを実行できます。

関係性 vs. 書類

関係性 vs. 書類

この図の左側には行と列があり、右側には JSON と同様の構造を持つドキュメント データベースがあることがわかります。 次に、リレーショナル データベースについては、どのような列があるのか​​などを知っておく必要があります。 ただし、ドキュメント データベースの場合は、JSON オブジェクトのようなデータ ストアがあります。 柔軟に定義する必要はありません。

ドキュメント タイプは主に次の目的で使用されます。 CMSシステム、ブログ プラットフォーム、リアルタイム分析および電子商取引アプリケーション。 comには使用しないでくださいplex さまざまな集計構造に対して複数の操作またはクエリを必要とするトランザクション。

Amazon SimpleDB、CouchDB、MongoDB、Riak、Lotus Notes、MongoDB が人気です DBMSシステム.

グラフベース

グラフ型データベースには、エンティティとそれらのエンティティ間の関係が格納されます。 エンティティは、関係をエッジとして持つノードとして保存されます。 エッジはノード間の関係を与えます。 すべてのノードとエッジには一意の識別子があります。

グラフベース

テーブルが緩やかに接続されているリレーショナル データベースと比較して、グラフ データベースは本質的にマルチリレーショナルです。 関係はすでに DB に取り込まれているため、関係の追跡は高速であり、計算する必要はありません。

主にソーシャルネットワーク、物流、空間データに使用されるグラフベースデータベース。

Neo4J、Infinite Graph、OrientDB、FlockDB などは、人気のあるグラフベースのデータベースです。

NoSQL 用のクエリ メカニズム ツール

最も一般的なデータ取得メカニズムは、GET リソースを使用したキー/ID に基づく値の REST ベースの取得です。

ドキュメント ストア データベースは、キーと値のペアの値を理解するため、より困難なクエリを提供します。 たとえば、CouchDB では MapReduce を使用してビューを定義できます。

CAP定理とは何ですか?

CAP定理はブリューワーの定理とも呼ばれます。 それは、分散データ ストアが XNUMX つのうち XNUMX つ以上の保証を提供することは不可能であると述べています。

  1. 一貫性
  2. 商品在庫
  3. パーティショントレランス

一貫性:

データは、操作の実行後でも一貫性を保つ必要があります。 これは、データが書き込まれると、その後の読み取りリクエストにはそのデータが含まれる必要があることを意味します。 たとえば、注文ステータスを更新した後は、すべてのクライアントが同じデータを参照できるようにする必要があります。

在庫:

データベースは常に利用可能であり、応答性が高い必要があります。 ダウンタイムがあってはなりません。

パーティション許容度:

パーティション トレランスとは、サーバー間の通信が安定していない場合でも、システムが機能し続ける必要があることを意味します。 たとえば、サーバーを複数のグループに分割し、それらのグループが相互に通信できないようにすることができます。 ここで、データベースの一部が利用できなくなっても、他の部分は常に影響を受けません。

結果整合性

「結果整合性」という用語は、高可用性とスケーラビリティを実現するために複数のマシン上にデータのコピーを保持することを意味します。 したがって、あるマシン上のデータ項目に加えられた変更は、他のレプリカに伝播する必要があります。

データ レプリケーションは即時ではない可能性がありますneo一部のコピーはすぐに更新されますが、他のコピーはやがて更新されます。 これらのコピーは相互に存在する可能性がありますが、時間が経つにつれて一貫性が保たれます。 したがって、結果整合性という名前が付けられます。

ベース: Bアシックス A利用可能、 S多くの場合、 E実質的な一貫性

  • 基本的に、利用可能とは、CAP 定理に従って DB が常に利用可能であることを意味します。
  • ソフト状態は入力がなくても意味します。 システム状態が変化する可能性があります
  • 最終的な整合性とは、時間の経過とともにシステムの整合性が保たれることを意味します

結果整合性

NoSQLの利点

  • プライマリまたは分析データ ソースとして使用可能
  • ビッグデータ機能
  • 単一障害点なし
  • 簡単なレプリケーション
  • 個別のキャッシュ層は不要
  • 高速なパフォーマンスと水平方向のスケーラビリティを提供します。
  • 構造化データ、半構造化データ、非構造化データを同等の効果で処理できる
  • 使いやすく柔軟なオブジェクト指向プログラミング
  • NoSQL データベースには専用の高性能サーバーは必要ありません
  • 主要な開発者言語とプラットフォームをサポート
  • RDBMS を使用するよりも実装が簡単
  • オンライン アプリケーションのプライマリ データ ソースとして機能します。
  • データの速度、種類、量、通信量などを管理するビッグデータを扱うplexITY
  • 分散データベースとマルチデータセンターの運用に優れています
  • データを保存するための特定のキャッシュ層の必要性を排除します。
  • ダウンタイムやサービスを中断することなく簡単に変更できる柔軟なスキーマ設計を提供します。

NoSQLの欠点

  • 標準化ルールがない
  • 制限されたクエリ機能
  • RDBMS データベースとツールは比較的成熟している
  • 複数のトランザクションが同時に実行される場合の一貫性など、従来のデータベース機能は提供されません。neo普通に。
  • データ量が増加すると、キーが難しくなり、一意の値を維持することが困難になります
  • リレーショナル データではうまく機能しない
  • 新しい開発者にとって学習曲線は厳しいです
  • オープンソースのオプションは企業にとってあまり人気がありません。

まとめ

  • NoSQL は非リレーショナル DMS であり、固定スキーマを必要とせず、結合を回避し、拡張が容易です。
  • NoSQL データベースの概念は、Google、Facebook、 Amazon、大量のデータを扱う人など
  • 1998 年 - カルロ ストロッツィは、軽量のオープンソース リレーショナル データベースに対して NoSQL という用語を使用しました。
  • NoSQL データベースはリレーショナル モデルに従わないため、スキーマがないか、スキーマが緩和されています。
  • NoSQL Database の 1 種類は 2) です。 キーと値のペアベース 3)。 列指向のグラフ 4)。 グラフに基づく XNUMX)。 ドキュメント指向
  • NOSQL は、構造化データ、半構造化データ、および非構造化データを同等の効果で処理できます。
  • CAP 定理は、一貫性、可用性、パーティション耐性の XNUMX つの単語で構成されます。
  • ベースとは Bアシックス A利用可能、 S多くの場合、 E実質的な一貫性
  • 「結果整合性」という用語は、高可用性とスケーラビリティを実現するために複数のマシン上にデータのコピーを保持することを意味します。
  • NOSQL 限定的なクエリ機能を提供する