【どきゅめんとしこうでーたべーす】

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

💡 書類ファイルのように自由な形式でデータを保管する収納上手
📌 このページのポイント
行指向 vs ドキュメント指向 行指向(RDB) id name age dept 1 田中 30 開発 2 鈴木 25 営業 固定スキーマ 全行が同じ列構成 ドキュメント指向 Doc 1 { name: "田中", age: 30, dept: "開発", skills: [...] } Doc 2 { name: "鈴木", age: 25 } 柔軟なスキーマ 各ドキュメントが自由な構造 MySQL MongoDB CouchDB
行指向とドキュメント指向の比較
ひよこ ひよこ

ドキュメント指向データベースって普通のデータベースと何が違うの?

ペンギン先生 ペンギン先生

普通のリレーショナルデータベースExcelの表みたいに行と列が決まっているよね。ドキュメント指向は、一つ一つのデータをJSON形式の「ドキュメント」として保存するんだ。書類をファイリングするイメージだね

ひよこ ひよこ

JSONで保存するメリットって何?

ペンギン先生 ペンギン先生

一番のメリットはスキーマの柔軟性だよ。例えばユーザーAは住所あり、ユーザーBは住所なしでも同じコレクションに入れられる。リレーショナルDBだとカラムを事前に定義しないといけないけど、ドキュメント指向なら後から自由にフィールドを追加できるんだ

ひよこ ひよこ

じゃあ全部ドキュメント指向にすればいいんじゃない?

ペンギン先生 ペンギン先生

そうとも限らないんだ。複数のドキュメント間のリレーション(結合)が苦手なんだよ。例えば「注文データから顧客情報を引っ張ってくる」みたいな操作は、リレーショナルDBのJOINの方がずっと得意。用途に応じて使い分けるのが大事だね

ひよこ ひよこ

MongoDBが有名みたいだけど、どんな場面で使われるの?

ペンギン先生 ペンギン先生

コンテンツ管理システムIoTのセンサーデータ、ゲームのユーザープロフィールなど、データ構造が多様で変化しやすい場面で活躍するよ。実はMongoDBはBSONというJSONバイナリ版で保存していて、検索性能も高いんだ。最近はAtlasというクラウドサービスも人気だね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
ドキュメント指向データベース」って出てきたら「JSON形式で自由にデータを保存できるデータベース」と思えればだいたいOK!
📖 おまけ:英語の意味
「Document-Oriented Database」 = ドキュメント指向データベース
💬 ここでのDocumentはWordファイルではなく、JSONのような構造化されたデータのかたまりのことだよ
← 用語集にもどる