ドキュメント指向データベース
更新日:
用語解説
ドキュメント指向データベースは、JSON、BSON、XMLなどの自己記述的なドキュメントを一件の格納・検索単位とするデータベースです。各ドキュメントは識別子をもち、入れ子オブジェクトや配列を含む半構造化データを表せます。
■ 試験で押さえるポイント
同じコレクション内でもフィールドの有無や入れ子構造を柔軟に変えられます。ただしスキーマが存在しないのではなく、アプリケーション又はDBの検証規則で構造と型を管理する必要があります。
注文と明細のように一緒に読み書きする集約を一文書へ埋め込めば、結合を減らして一回で取得できます。独立更新や多対多が多いデータは、参照で結ぶ設計も選びます。
多くの製品はドキュメント内部のフィールドを指定した検索、索引、集約を提供します。値全体を不透明なデータとしてキーだけで取り出すキーバリュー型との違いです。
重複を許す非正規化は読取りを速めますが、同じ情報を複数文書に持つと更新整合性をアプリケーション側で保つ必要があります。柔軟性は無制約や常に高速という意味ではありません。
■ 選択肢での判断ポイント
『一件がJSON/BSON文書』『入れ子や配列』『文書内部のフィールドを検索』を手掛かりにします。ドキュメント指向はNoSQL全体の別名ではなく、キーバリュー、列ファミリー、グラフとは別のデータモデルです。
例: 注文文書に注文番号、顧客、配送先と、商品番号・数量からなる明細配列を埋め込めば、注文一件を一度に取得できます。頻繁に共有更新する商品名は商品文書への参照にする設計もあります。