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 を操作する
  • オブジェクト リレーショナル マッピングとデータの正規化が不要
  • クエリ言語、クエリプランナー、参照整合性結合、ACIDなどの複雑な機能はありません

スキーマフリー

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

シンプルなAPI

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

分散

  • 複数の NoSQL データベースを分散方式で実行可能
  • 自動スケーリングとフェイルオーバー機能を提供します
  • 多くの場合、ACID の概念はスケーラビリティとスループットのために犠牲になることがあります
  • 分散ノード間の同期レプリケーションはほとんど行われません。非同期マルチマスターレプリケーション、ピアツーピア、HDFSレプリケーション
  • 最終的な整合性のみを提供する
  • 何も共有されていない Archi構造。これにより、調整が少なくなり、分散が向上します。
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 システム、ブログ プラットフォーム、リアルタイム分析、e コマース アプリケーションで使用されます。さまざまな集計構造に対して複数の操作やクエリを必要とする複雑なトランザクションには使用しないでください。

Amazon シンプルDB、 CouchDB, MongoDB、リアク、ロータス ノート、 MongoDB、人気のあるドキュメントの起源 DBMSシステム.

グラフベース

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

グラフベース

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

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

Neo4J、無限グラフ、 OrientDB、FlockDB は、人気のあるグラフベースのデータベースです。

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

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

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

CAP定理とは何ですか?

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

  1. 一貫性
  2. 利用状況
  3. パーティショントレランス

一貫性:

データは、操作の実行後も一貫性が保たれている必要があります。つまり、データが書き込まれると、それ以降の読み取り要求にはそのデータが含まれる必要があります。たとえば、注文ステータスを更新した後、すべてのクライアントが同じデータを表示できる必要があります。

在庫:

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

パーティション許容度:

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

結果整合性

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

データのレプリケーションは、一部のコピーはすぐに更新されますが、他のコピーは時間の経過とともに更新されるため、瞬時に行われない場合があります。これらのコピーは相互に更新されますが、時間の経過とともに一貫性が保たれます。これが、結果的一貫性という名前です。

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

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

結果整合性

NoSQLの利点

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

NoSQLの欠点

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

製品概要

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