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

ドキュメント データベースは、柔軟な形式でデータを保存、管理、取得する NoSQL データベースの一種です。これらの「ドキュメント」はそれぞれ独自の構造を持つことができます。行と列で構成された厳格なテーブルを使用するリレーショナル データベースとは異なります。

この柔軟性により、ドキュメント データベースは、AI 生成アプリケーションやセンサーデータなど、半構造化データや非構造化データを処理するのに最適な選択肢となります。このようなケースでは、従来のスキーマでは制限が厳しすぎます。特に、コンテンツ管理、e コマース、リアルタイム分析などのユースケースで人気があります。

重要ポイント

ドキュメント データベースは、柔軟な JSON のような「ドキュメント」にデータを保存する NoSQL データベースの一種です。

ドキュメント データベースは、次の点で知られています。

  • 柔軟なデータモデル: 各ドキュメントは独自の構造を持つことができ、オブジェクトをコードに直接マッピングするデベロッパー フレンドリーな設計
  • 水平方向のスケーラビリティ: スケールアウトするように設計されているため、ドキュメント データベースは成長に合わせて簡単にスケールできる
  • 豊富なクエリ機能: 強力なクエリ言語により、複雑なフィルタリング、並べ替え、データ集計が可能
  • さまざまなユースケース: ドキュメント データベースは、非構造化データや半構造化データに最適で、コンテンツ管理システム、ユーザー プロフィール、健康記録、e コマースの製品カタログなど、さまざまなユースケースがあります。

ドキュメント データベースの仕組み

ドキュメント データベースは、スマートなデジタル ファイル キャビネットのようなものです。データはコレクション(フォルダ)にグループ化され、各コレクションには、顧客や商品などの単一のエンティティの自己完結型ドキュメント(ファイル)が格納されます。

厳格なリレーショナル テーブルとは異なり、各ドキュメントは固有の構造を持つことができます。たとえば、他のすべてのアイテムのスキーマを変更することなく、e コマース カタログの 1 つの商品に「sustainability_rating」フィールドを追加できます。

ドキュメント 1:

{

ID:1

product_name: “blue shirt”

product_category: “shirt”

数量:76

sustainability_rating: “moderate”

}


ドキュメント 2:

{

ID:2

product_name: “green pants”

product_category: “pants”

数量:44

}

ドキュメント 1:

{

ID:1

product_name: “blue shirt”

product_category: “shirt”

数量:76

sustainability_rating: “moderate”

}


ドキュメント 2:

{

ID:2

product_name: “green pants”

product_category: “pants”

数量:44

}

ドキュメント データベースは、AI アプリケーション、コンテンツ管理、e コマース、リアルタイム分析など、柔軟性、スケーラビリティ、迅速な開発が求められるアプリケーションに適しています。

たとえば、1 件のソーシャル メディア投稿には、ユーザー名、タイムスタンプ、いいねの数など、予測可能なフィールドである半構造化データが含まれていますが、その構造は柔軟です。ある投稿には位置情報のタグが付けられている場合もあれば、別の投稿にはタグ付けされたユーザーのリストが含まれている場合もあります。これに加えて、投稿には画像や動画、キャプションの自由形式のテキスト、一連のユーザー コメントなどの非構造化データが含まれている場合があります。

ドキュメント データベースは、構造化されたユーザー名から非構造化された画像やコメントまで、関連するすべての情報を 1 つのまとまった「ドキュメント」に保存するように設計されています。これにより、開発者は、まず厳格な事前定義された構造にデータを強制的に入れる必要がなく、実世界のデータを非常に効率的に処理できます。

ドキュメント データベースの主な機能

ドキュメント データベースは、最新の開発パターンとデータ効率をサポートするように設計された独自のアーキテクチャ機能によって、その特徴が際立っています。

ドキュメントはコレクションにグループ化されます。これは、リレーショナル データベースのテーブルに似ています。ただし、テーブルとは異なり、コレクションではすべてのドキュメントが同じ構造である必要がないため、より柔軟に対応できます。たとえば、お客様の名前とメールアドレスは同じでも、お支払い方法が異なるドキュメントを想像してみてください。あるドキュメントにはクレジットカードの詳細が保存され、別のドキュメントには当座預金口座の銀行コードと口座番号が保存されているかもしれません。

各ドキュメントには固有の構造があるだけでなく、情報が追加されると形式も変わる可能性があります。つまり、値だけでなくデータの構造も進化する可能性があります。これは、テーブル内のすべての行が同じ事前定義された列に準拠し、値のみが変更されるリレーショナル データベースとは根本的に異なります。動的スキーマは、新しいビジネス要件を表現する単一のプロンプトがデータモデルの変更を反映する可能性がある、バイブ コーディングで特に強力です。

ドキュメント データベースでは、ドキュメントのフィールド内で直接クエリを実行でき、インデックスによって高速なクエリが実現します。たとえば、メールアドレスでユーザーをすばやく見つけたり、特定の価格を超える注文を取得したりできます。

ドキュメント データベースは、ダウンタイムをほとんど、あるいはまったく発生させることなく、サーバーやクラスタをシームレスに追加して簡単に拡張できるように設計されています。このスケーラビリティにより、データニーズが拡大している、または予測できないアプリケーションに最適です。

ドキュメント データベースの主なユースケース

ドキュメント データベースは、柔軟性、スケーラビリティ、スピードが不可欠なアプリケーションで広く採用されています。一般的なユースケースを次に示します。

  • コンテンツ マネジメント システム(CMS): ブログ投稿から商品説明まで、さまざまなコンテンツを管理し、効率的なコンテンツ配信と更新を実現
  • e コマース プラットフォーム: 複雑な商品カタログ、ユーザー アカウント、リアルタイムのトランザクションを処理し、高性能なオンライン ストアを強化
  • リアルタイム分析: 大量のデータを処理、分析して、貴重な分析情報を取得し、データドリブンな意思決定を行う
  • モバイル アプリケーションとウェブ アプリケーション: デバイス間でシームレスなユーザー エクスペリエンスを実現する、高速でレスポンシブなアプリケーションを構築
  • モノのインターネット(IoT): 膨大な量のセンサーデータを保存、分析して、スマート デバイスやシステムを強化
  • ゲーム開発: プレーヤー データ、ゲームの状態、リーダーボードを管理して、没入感のあるゲーム体験を創出
  • 医療アプリケーション: 機密性の高い患者情報を安全に保存および管理し、効率的かつ正確な医療提供を実現
  • AI を活用したアプリケーション: AI のプロンプトの変化に迅速に対応できるデータモデルで AI をサポート
  • AI キャッシュ: 言語翻訳やデータ分類などを行う AI サービスの結果をキャッシュに保存し、サービング費用を削減

ドキュメント データベース、キー値データベース、リレーショナル データベースの比較

ドキュメント データベース、リレーショナル データベース、Key-Value ストアはすべてデータを管理しますが、構造、柔軟性、速度に関する優先事項が異なります。

機能

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

Key value ストア

リレーショナル データベース

データ形式

リッチ、構造化ドキュメント

シンプルな Key-Value ペア

表形式(行と列)

柔軟性

高い。ドキュメントごとに異なる

高い。列数は行ごとに異なる

限定的、事前定義されたスキーマ

クエリ

高度(ネストされたフィールドを含む)

最適なパフォーマンスを得るために、キーまたはセカンダリ インデックスを使用

高度(JOIN を使用した複雑なクエリ)

最適な用途

迅速な開発と進化するデータモデル

シンプルなデータ構造と高速なルックアップ

複数のテーブルにわたる強整合性とクエリ

機能

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

Key value ストア

リレーショナル データベース

データ形式

リッチ、構造化ドキュメント

シンプルな Key-Value ペア

表形式(行と列)

柔軟性

高い。ドキュメントごとに異なる

高い。列数は行ごとに異なる

限定的、事前定義されたスキーマ

クエリ

高度(ネストされたフィールドを含む)

最適なパフォーマンスを得るために、キーまたはセカンダリ インデックスを使用

高度(JOIN を使用した複雑なクエリ)

最適な用途

迅速な開発と進化するデータモデル

シンプルなデータ構造と高速なルックアップ

複数のテーブルにわたる強整合性とクエリ

ドキュメント データベースとリレーショナル データベースの比較

ドキュメント データベースは、データが急速に進化したり、さまざまな形式をとったりする、e コマース プラットフォームやモバイルアプリなどの動的な環境で優れています。柔軟性が高いため、さまざまなソースのデータセットやスキーマが異なるデータセットに適しています。

一方、リレーショナル データベースは、一貫性と構造が不可欠な財務システムや在庫管理などの従来のアプリケーションに最適です。たとえば金融サービスでは、厳格なスキーマを維持することで、すべての顧客アカウントがガバナンスで要求される同じデータ型を使用できるようになります。

2 つのどちらを選択するかを検討する際の考慮事項:

  • 構造: リレーショナル データベースは厳格なスキーマを適用しますが、ドキュメント データベースでは各レコードが独自の構造を持つことができます。
  • 関係: リレーショナル データベースは JOIN 操作でテーブルを接続しますが、ドキュメント データベースでは関連データを 1 つのドキュメントに埋め込んでアクセスを高速化することがよくあります。
  • スケーラビリティ: リレーショナル データベースは、単一のサーバーにリソースを追加する垂直方向のスケーリングは簡単ですが、水平方向のスケーリングには複雑なメカニズムが必要です。ドキュメント データベースは、複数のサーバーにわたる水平スケーリングを前提に構築されている
  • 柔軟性: ドキュメント データベースはデータモデルの変更に簡単に適応できますが、リレーショナル データベースではスキーマを変更するのに多大な労力が必要になります

ビデオゲームなどの大規模で複雑なアプリケーションは、ドキュメント データベースとリレーショナル データベースの両方で構築されることがあり、それぞれがデータの異なる部分を保存します。

ドキュメント データベースと Key-Value ストア

ドキュメント データベースと Key-Value ストアはどちらも NoSQL データベースですが、データの処理方法に基づいて異なる目的で使用されます。

ドキュメント データベース: ドキュメント データベースは、キーと値のコンセプトを拡張したものです。ドキュメントにはネストされたデータを含めることができ、ドキュメント データベースでは、このデータをインデックスに登録して、ネストされたデータの値に対してパフォーマンスの高いクエリを実行できる柔軟性が高くなっています。この構造により、ドキュメント データベースは多様なデータセットを管理し、高度なクエリをサポートできます。

Key-Value ストア: これらのデータベースは、キーと値のシンプルな構造を使用します。各キーは一意であり、その値に直接ポイントします。このシンプルさにより、キー値ストアは検索が非常に高速になりますが、高度なクエリ言語を使用しないため、複雑なデータや階層データの処理には適していません。

各ツールの使い分け:

  • ユーザー セッションの管理やキャッシュなど、高速なルックアップが不可欠な単純なデータ構造には、Key-Value ストアを選択する
  • 商品カタログやユーザー プロフィールの管理など、複雑で進化するデータ構造を持つアプリケーションにはドキュメント データベースを選択する

ドキュメント データベースに関するよくある質問

Firestore は、Google Cloud のフルマネージド サーバーレス ドキュメント データベースです。柔軟なドキュメントにデータを保存でき、他の Google Cloud サービスとシームレスに統合して、堅牢でスケーラブルなソリューションを実現します。

違いは構造と柔軟性にあります。Cloud SQLCloud Spanner などの SQL データベースでは、行と列で構成された固定のテーブルが使用されます。Firestore などのドキュメント データベースは、柔軟な JSON のようなドキュメントにデータを保存するため、スキーマを壊すことなく構造を進化させることができます。

ドキュメント データベースを使用するメリット

ドキュメント データベースは、現代のデータニーズに対応する強力なツールです。主な利点は次のとおりです。

柔軟性

ドキュメント データベースはスキーマが動的であるため、データモデルが頻繁に変更されるアプリケーションに役立ちます。

パフォーマンス

ドキュメント データベースは、組み込みのインデックス登録と効率的なデータアクセス パターンにより、大規模または複雑なデータセットを処理する場合でも高速です。

スケーラビリティ

水平スケーリングでは、データが増加するにつれてサーバーを追加できるため、アプリケーションの成長に合わせて一貫したパフォーマンスを確保できます。ドキュメント データベースは、各ノードにコンピューティング能力を追加することで垂直方向にスケーリングすることもできます。

デベロッパー エクスペリエンス

開発者が使い慣れた構文を使用して、JSON ドキュメントをデータベース内のオブジェクトにマッピングできます。コード内でドキュメントを直接更新できます。

データの汎用性

ドキュメント データベースは、非構造化情報や半構造化情報、画像や動画などのファイルに関連付けられたメタデータなど、さまざまなデータタイプの保存、管理、クエリに優れています。

ドキュメント データベースのニーズに Firestore を選択する

Firestore は、データベース管理の複雑さを軽減するフルマネージドのドキュメント データベースです。Google Cloud のあらゆる機能と、グローバルにスケーラブルなプラットフォームを活用できます。

小規模なアプリを構築する場合でも、グローバル プラットフォームをスケーリングする場合でも、Firestore の機能は、柔軟性とパフォーマンスを維持しながら、より迅速に作業を進められるように設計されています。

  • サーバーレス アーキテクチャ: Firestore はサーバーレスであるため、インフラストラクチャの設定や管理は不要です。ゼロから数百万の同時接続まで、データ負荷を処理するために自動的にスケーリングされます。
  • Google Cloud サービスとの統合: Cloud FunctionsCloud RunBigQuery などの他の Google Cloud サービスと簡単に接続できます。これにより、複雑な構成なしで、強力なデータ処理と分析パイプラインを実現できます。
  • MongoDB 互換性: MongoDB ドライバ、ツール、コードを使用して Firestore に直接接続できます。これにより、既存のアプリケーションの移行や、使い慣れたパターンを使用した新しいプロジェクトの開始が非常に簡単になります。
  • リアルタイムの更新: プラットフォームに直接組み込まれたライブデータ同期により、ユーザーの接続を維持します。
  • グローバルなスケーラビリティ: Firestore の水平スケーリング機能により、世界中のユーザーに低レイテンシのアクセスを確保しながら、成長に簡単に対応できます。
  • デベロッパー フレンドリー: インフラストラクチャやメンテナンスを気にすることなく、革新的な機能の作成に集中できます。Firestore のフルマネージド サービスが、重い処理をすべて引き受けます。
  • 使用量が少ない場合の無料枠: Firestore には十分な無料枠が用意されているため、スタートアップや小規模プロジェクトが、先行投資なしで成長に合わせてスケールしたい場合に最適です。

Google Cloud と Firebase の一部である Firestore は、Firebase Auth、BigQuery、その他多くのサービスとの簡単な統合により、アプリケーションを強化します。リアルタイムのコラボレーション ツールからモバイルアプリ、エンタープライズ プラットフォームまで、Firestore は成功に必要なツールを提供します。

今すぐご利用ください。使用量が少ない場合は無料枠をご利用いただけます。強力で信頼性が高く、スケーラブルなドキュメント データベースのメリットを実感してください。

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

新規のお客様には、Google Cloud で使用できる無料クレジット $300 分を差し上げます。

参考情報

  • リレーショナル データベースとは:リレーショナル データベースの基礎を学びます。行と列でデータを構造化する方法や、強力な整合性を実現するためにリレーショナル データベースを使用するタイミングなどについて説明します。
  • NoSQL データベースとは:Key-Value ストア、ドキュメント ストア、ワイドカラム ストアなどのさまざまな種類の NoSQL データベースについて調べ、非構造化データをどのように処理するかを確認する
  • Firestore を使ってみる: このガイドに沿って、最初の Firestore データベースを設定し、データを追加して、Google Cloud でスケーラブルなアプリケーションの構築を開始します。

次のステップ

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

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud