Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

データモデル設計

項目一覧

  • 埋め込みデータモデル
  • 正規化されたデータモデル
  • さらに読む

効果的なデータモデルは、アプリケーションのニーズをサポートします。 ドキュメントの構造に関する重要な点は、 を埋め込むか、参照を使用するかです。

MongoDB では、関連データを単一の構造またはドキュメントに埋め込むことができます。 これらのスキーマは通常、「非正規化」モデルと呼ばれ、MongoDB の豊富なドキュメントを活用します。 次の図を考えてみましょう。

関連するすべての情報を含む埋め込みフィールドを持つデータモデル。

埋め込みデータモデルを使用すると、アプリケーションは関連する情報を同じデータベースレコードに保存できます。 その結果、アプリケーションでは一般的な操作を完了するために必要なクエリ数と更新数が少なくなる場合があります。

一般に、埋め込みデータモデルは、次の場合に使用します。

  • エンティティ間に「含む」の関係がある場合。 「 ドキュメントを使用した 1 対 1 の関係のモデル化 」を参照してください。

  • エンティティ間に1対多の関係がある場合。 これらの関係では、「多数」または子ドキュメントは常に とともに表示されるか、「1 つ」または親ドキュメントに関連して表示されます。 「埋め込みドキュメントによる 1 対多の関係のモデル化 」を参照してください。

一般に、埋め込みにより読み取り操作のパフォーマンスが向上するだけでなく、1 回のデータベース操作で関連データをリクエストして取得する能力も向上します。 埋め込みデータモデルを使用すると、1 回のアトミックな書き込み操作で関連データを更新できます。

埋め込みドキュメント内のデータにアクセスするには、ドット表記を使用して埋め込みドキュメントに「アクセス」します。 配列や埋め込みドキュメント内のデータへのアクセスに関するその他の例については、「配列内のデータのクエリ 」および「 埋め込みドキュメント内のデータのクエリ 」を参照してください。

MongoDB 内のドキュメントは、最大 BSON ドキュメント サイズ より小さくなければなりません。

一括バイナリ データには、 GridFS を検討してください。

正規化されたデータモデルは、ドキュメント間の参照を使用して関係を記述します。

参照を使用してドキュメントをリンクするデータモデル。``contact`` ドキュメントと ``access`` ドキュメントの両方に ``user`` ドキュメントへの参照が含まれています。

一般に、正規化されたデータモデルを使用します。

  • を使用すると 、データの重複が発生しますが、重複の影響を与えるほどの読み取りパフォーマンス上の利点は得られません。

  • より複雑な多対多の関係を表します。

  • を使用して、大規模な階層データセットをモデル化します。

コレクションを結合するために、MongoDB は 集計ステージを提供します。

MongoDB は、コレクション間でデータを結合するための参照も提供します。

正規化されたデータモデルの例については、「ドキュメント参照を使用した 1 対多の関係のモデル化 」を参照してください。

さまざまなツリーモデルの例については、「モデルツリー構造 」を参照してください。

MongoDB を使用したデータ モデリングの詳細については、 「MongoDB アプリケーション モダナイゼーション ガイド」をダウンロードしてください。

ダウンロードには、次のリソースが含まれています。

  • MongoDB を使用したデータ モデリングの方法論に関するプレゼンテーション

  • RDBMS データモデルから MongoDB に移行するためのベストプラクティスと考慮事項を説明したホワイトペーパー

  • MongoDB のスキーマを RDBMS の同等のスキーマで参照

  • アプリケーション モダナイゼーション スコアカード

戻る

データモデル