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

ドキュメントデータベースの特徴

ドキュメントデータベースは、非リレーショナルデータベースの一種で、半構造化データをドキュメントとして格納するために設計されています。開発者がドキュメントデータベースを直感的に使用できるのは、アプリケーション層のデータは一般に、JSON ドキュメントとして表現されるためです。開発者は、アプリケーションコード内で使用するのと同じドキュメントモデル形式を使用して、データを永続させることができます。ドキュメントデータベース内では、各ドキュメントのデータ構造は同じでも異なっていてもよく、スキーマが固有である場合があることを含めて各ドキュメントが自己記述型になっています。また、必ずしもその他のドキュメントに依存しません。ドキュメントは「コレクション」にグループ化されます。これが、リレーショナルデータベースのテーブルに似た目的を果たします。 

例えば、単純な書籍データベースで、ある書籍項目を記述する JSON ファイルは次のコードのようになります。

[
    {
        "year" : 2013,
        "title" : "Turn It Down, Or Else!",
        "info" : {
            "directors" : [ "Alice Smith", "Bob Jones"],
            "release_date" : "2013-01-18T00:00:00Z",
            "rating" : 6.2,
            "genres" : ["Comedy", "Drama"],
            "image_url" : "http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg",
            "plot" : "A rock band plays their music at high volumes, annoying the neighbors.",
            "actors" : ["David Matthewman", "Jonathan G. Neff"]
        }
    },
    {
        "year": 2015,
        "title": "The Big New Movie",
        "info": {
            "plot": "Nothing happens at all.",
            "rating": 0
        }
    }
]

ユースケース

コンテンツ管理

ドキュメントデータベースは、ブログプラットフォームや動画プラットフォームなどのコンテンツ管理アプリケーションに好んで用いられる選択肢です。ドキュメントデータベースでは、アプリケーションが追跡する各エンティティを 1 つのドキュメントとして格納できます。 ドキュメントデータベースは、要件が導き出されてアプリケーションを更新する場合、開発者にとってより直感的です。さらに、データモデルを変更する必要がある場合に更新する必要があるのは、影響を受けるドキュメントのみです。スキーマの更新は不要で、変更を加えるためにデータベースのダウンタイムは必要になりません。 

カタログ

ドキュメントデータベースは、カタログ情報の保存に関して効率的かつ効果的です。 例えば、e コマースアプリケーションでは、異なる製品の属性数は、通常は異なっています。リレーショナルデータベースで数千の属性を管理することは非効率的であり、読み取りのパフォーマンスが影響を受けます。ドキュメントデータベースの使用時には、容易な管理と読み取り速度向上のため、各製品の属性を 1 つのドキュメント内に記述できます。1 つの製品の属性を変更しても、他の製品に影響しません。

人気のあるドキュメントデータベース

Amazon DynamoDB

Amazon DynamoDB は、どのような規模でも信頼性が高いパフォーマンスを提供する非リレーショナルデータベースです。完全マネージド型、マルチリージョン、マルチマスターのデータベースで、レイテンシーを 10 ミリ秒未満に維持でき、組み込みのセキュリティ、バックアップと復元、インメモリキャッシュを利用できます。DynamoDB はネイティブの JSON をサポートしているため、JSON ドキュメントを DynamoDB テーブル内に直接書き込むことができます。DynamoDB では最大項目サイズは 400 KB で、大きな JSON ドキュメントやネストされたオブジェクトを 1 つのトランザクション内に格納できます。

今すぐ DynamoDB の開始を開始してください。

Amazon DynamoDB の使用開始

MongoDB

MongoDB はオープンソースの非リレーショナルデータベースで、JSON のようなドキュメント指向のストレージシステムをサポートします。MongoDB では、どのような構造のデータでも格納できる柔軟なデータモデルがサポートされており、完全なインデックスのサポート、シャーディング、レプリケーションを含む一連の豊富な機能が提供されています。 AWS の AWS クラウドでは、柔軟でスケーラブルかつコスト効果の高い方法で、MongoDB のデプロイをサポートするためのインフラストラクチャをセットアップできます。 

AWS MongoDB クイックスタート (PDF 形式でも入手可能) を利用して、AWS クラウド内に AWS MongoDB クラスターをデプロイしてください。MongoDB の概要と、AWS での MongoDB の実装については、ホワイトペーパー AWS での MongoDB: ガイドラインとベストプラクティスを参照してください。また、MongoDB に関する AWS のセキュリティ上の推奨事項を必ずご確認ください。

Couchbase

魅力的なモバイル、IoT、およびウェブアプリケーションを動かすために設計されたエンタープライズクラスの Couchbase データベースプラットフォームには、Couchbase Server と Couchbase Mobile が含まれています。Couchbase Server は、パフォーマンス、スケーラビリティ、および可用性のための分散型アーキテクチャで設計された、クラウドネイティブな非リレーショナルデータベースです。これにより、開発者は SQL の力と JSON の柔軟性を活用してアプリケーションを構築できます。Couchbase Mobile には、完全に統合された埋め込みデータベース、組み込みのセキュリティ、および非常にスケーラブルな Couchbase Server とのリアルタイムの自動同期機能が含まれています。

AWS Couchbase クイックスタート (PDF 形式でも入手可能) を利用して、AWS クラウド内に Couchbase クラスターをデプロイしてください。