【Next Tokyo ’24】8/1 - 2 パシフィコ横浜にて開催!最新技術やトレンド、顧客事例、専門家によるセッションなど、ビジネス変革を加速させるヒントが満載です。

NoSQL データベースとは

NoSQL という用語は、「Not only SQL」の略で、リレーショナル データベースのようなルールベースのリレーショナル テーブルではなく、非表形式でデータを保存する非リレーショナル データベースを指します。NoSQL データベースは、ドキュメント、Key-Value、ワイドカラム、グラフなどの幅広い非構造化データをサポートする柔軟なスキーマモデルを使用します。

NoSQL データベースを選択する理由は、柔軟性、水平方向のスケーラビリティ、開発の容易さです。

Google Cloud の NoSQL データベースである BigtableMemorystoreFirestore が、スケーラビリティ、信頼性、頻繁なデータ変更に関して心配することなく、どのようにアプリケーションを強化し、優れたカスタマー エクスペリエンスを提供できるかをご確認ください。

5 種類の NoSQL データベース

NoSQL データベースには主に 5 つのタイプがあります。

ドキュメント データベース

ドキュメント データベースは、ドキュメント指向データベースまたはドキュメント ストアとも呼ばれ、半構造化データの保存とクエリに使用されます。データは、デベロッパーがアプリケーション コードで使用するデータ オブジェクトに似た JSON のようなドキュメントに保存されるため、プライマリ スキーマを参照せずにアプリケーションを簡単に作成、更新できます。ドキュメント データベースは、ブログ プラットフォーム、e コマースおよびリアルタイム分析アプリケーション、CMS システムで最もよく利用されています。

Key-Value データベース

Key-Value データベースは Key-Value ストアとも呼ばれ、NoSQL データベースの最もシンプルなタイプです。データは「Key-Value」構造で保存され、一意のキーと値(文字列、数値、ブール値、複雑なオブジェクトなど)がペアに設定されます。キーを使用してデータの書き込みやクエリを行うことができます。このキーは、関連する値の保存や取得に使用されます。Key-Value ストアは、ウェブ アプリケーションのユーザー設定、ショッピング カート、ユーザー プロフィールに最もよく使用されます。

列指向データベース

列指向のデータベース、またはワイドカラム ストア型は、データを行単位で格納して読み取り、一連の列として編成されます。リレーショナル データベースの表形式に似ていますが、ワイドカラム ストア型の列の名前と形式は、単一テーブルの行ごとに異なる場合があります。データベースの特定の列に対してクエリを実行し、特定の列の値を迅速に集計する必要がある分析のユースケースに最適です。ワイドカラム ストア型は、カタログ、不正行為の検出、レコメンデーション エンジンに最もよく使用されます。

グラフ データベース

グラフ データベースは、データ要素間の関係に注目して、データをノードとして整理します。エッジと呼ばれるこれらのノード間の接続は、ファースト クラスの要素として保存されます。これにより、データの関係性をより豊かに表現すると同時に、ストレージとナビゲーションを簡略化できます。グラフ データベースは、ソーシャル メディア プラットフォーム、予約システム、ロジスティクス アプリケーションなど、関係をマッピングするシステムで最もよく使用されます。

インメモリ データベース

インメモリ データベースはデータをメモリに保存するため、リアルタイム アプリケーションにレイテンシは発生しません。Redis はインメモリ NoSQL データベースの一例です。インメモリ データベースは、キャッシュ、メッセージング、ストリーミング、リアルタイム分析に最もよく使用されます。

NoSQL の仕組み

NoSQL 機能は、選択したデータベースに固有のものです。ただし、一般的には次のような特徴が共通しています。

  • データの固定スキーマを決定または宣言する必要がない、柔軟なスキーマに従っているため、半構造化データと非構造化データに最適
  • 容量を追加するために垂直スケーリングに依存せずに、範囲またはハッシュ分散を使用して水平方向にスケーリングする
  • Key-Value、ワイドカラム、インメモリなど、特定のデータモデルやワークロード パターンに合わせて最適化されている
  • 多くの NoSQL データベースは、リレーショナル データベースや SQL データベースのより厳密な ACID 特性(原子性、一貫性、独立性、永続性)に従うのではなく、後のある時点での整合性(結果整合性モデルなど)を示す
  • 大部分の NoSQL データベースは、シャード間のトランザクションや柔軟な分離モードをサポートしていない

こうした機能により、非リレーショナル データベースは、大規模、信頼性、高可用性、頻繁なデータ変更を必要とするアプリケーションに最適です。

NoSQL のメリット

柔軟なデータモデルとスキーマ

NoSQL データベースはさまざまな種類のデータを保存し、柔軟なスキーマを提供するので、半構造化データと非構造化データに最適です。新しいタイプのデータに簡単に適応し、変化するデータ要件に合わせてスキーマを進化させることができます。

アジャイル開発

NoSQL の柔軟性は、アジャイルなアプリ開発を補完します。NoSQL データベースはさまざまなデータをネイティブ形式で保存でき、データモデルを適宜定義して適応できるため、デベロッパーは迅速に作業を開始し、データ変換に費やす時間を減らして、迅速に反復処理できます。

スケーラビリティ

リレーショナル データベースとは異なり、NoSQL データベースでは、データやトラフィックの増加に合わせて容量を簡単に増やすことができます。ほとんどの場合、ダウンタイムはゼロです。クラウドベースのデータベースは、自動スケーリング機能と柔軟な料金モデルを備えており、需要に基づくスケーリングがさらに容易です。  

大量のデータ ストレージ

NoSQL は大規模で複雑なデータセットを処理するように設計されているため、ビッグデータ、リアルタイム分析、IoT のユースケースを導入してスケーリングできます。

高可用性

NoSQL データ アーキテクチャは分散型で、単一障害点がありません。また、レプリケーションが容易なため、計画外の停止や中断に対する耐性が高まります。

高速なクエリ

データの重複を減らすために正規化されるリレーショナル データベースとは異なり、NoSQL は高速なクエリに最適化されています。通常、複雑な結合は必要ありません。つまり、データベース クエリにより、結果がより迅速に返されます。

NoSQL のデメリット

NoSQL データベースは近年大きな人気を博していますが、リレーショナル データベースと比べて NoSQL データベースを使用することにはいくつかの欠点があります。比較的新しく、リレーショナル データ システムの成熟度が十分でない場合があります。全体的に、NoSQL はデベロッパーの専門知識、利用できるツールやプロダクト、文書化されていない問題が発生した場合のサポートが少ないです。

また、NoSQL には SQL のような共通言語がありません。データベースごとに独自の言語を使用してデータのクエリや管理を行うこともあります。

多くの場合、NoSQL データベースには、SQL データベースで標準とされているデータの完全性対策や高レベルのデータ整合性がありません。ただし、ACID トランザクションをサポートしている FirestoreMongoDB などがあります。

それでも、ミリ秒単位のわずかな遅延は問題にならないほとんどの NoSQL ユースケースには、結果整合性モデルで十分です。多くのアプリケーションでは、グローバルな強整合性のニーズよりも、高可用性と高速性がはるかに重要です。

SQL と NoSQL: ユースケースと例

アプリケーションによって非リレーショナル NoSQL データベースを使用したり、リレーショナル SQL データベースを使用したりするのはなぜでしょうか。適切なデータベースの選択は、多くの場合、ユースケースによって決まります。ここでは、SQL と NoSQL の使い分けについて説明します。

SQL データベースは、構造化データ、リレーショナル データ、複雑なクエリの管理に優れています。SQL データベースは ACID に準拠しており、トランザクション情報に関して信頼されています。

SQL のユースケース:

  • 金融取引
  • 医療データ分析
  • 顧客情報と取引情報

NoSQL データベースは、高度にパーソナライズされたエクスペリエンスを提供するためにグローバルに分散した多数のユーザーを必要とするユースケースに優れています。これらのインタラクティブなアプリケーションは、NoSQL データベースのアジリティを活かして最適に動作します。

また、NoSQL データベースは高可用性を優先し、一貫したパフォーマンスを提供し、ダウンタイムなしで迅速にスケールアウトし、さまざまな種類のデータを大量に処理できます。

このような NoSQL データベースの機能により、非リレーショナル データベースは、大規模で、信頼性、高可用性を必要とするアプリケーションに最適です。

NoSQL の一般的な用途は次のとおりです。

  • モバイル、ウェブ、IoT のアプリケーション
  • リアルタイム ウェブ アプリケーション
  • パーソナライズ、レコメンド、リアルタイムのカスタマー エクスペリエンス
  • 在庫とカタログの管理
  • 不正行為の検出と ID 認証
  • 金融サービス、支払い
  • アドテック

Google Cloud でビジネスの課題を解決する

新規のお客様には、Google Cloud で使用できる無料クレジット $300 分を差し上げます。
お客様独自の課題を詳細に検討するには、Google Cloud のセールス スペシャリストまでご相談ください。

次のステップ

$300 分の無料クレジットと 20 以上の Always Free プロダクトを活用して、Google Cloud で構築を開始しましょう。

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
コンソール
  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud