• 締切済み

データモデルの違いによる利点・欠点

データベースのデータモデルには、階層モデル、ネットワークモデル、関係モデル等がありますが、構造は理解したのですが、その構造からもたらされるそれぞれのメリット・デメリットがよくわかりません。 特に関係モデルとネットワークモデルを比べた時、ネットワークモデルが勝っている部分がわかりません。 どなたかご教示願います。

みんなの回答

回答No.1

親子、他の親との関係が、最初からギチギチに決まっていて、その関連付けでの操作に特化しているかどうかです。 事前に設計された親→子、親→子→別の親などの参照は効率的に行えますが、その一方で、事前の設計になかった別の親や別の子を、新たに追加したり、関連の変更といったケースでは、設計変更を含めた多くの作業が発生します。 DBMSでの実装では、階層DBMSやネットワーク型DBMSでは、親子間のポインタをレコード中に持たせたり、親子を物理的に近傍に格納し、1回のI/Oでファミリー全体を得られたりするといったことで、高性能を出せるようにしています。 一方で、親子などの関連付けの変更などでは、それぞれでポインタを持っているといったことから、RDBMSのように表の追加、参照制約の定義、インデクスの定義といったようには簡単にはできません。 また、事前に定義された親子、子と親の関連以外を連携させた操作は、DMLでは行えず、アプリ側での対処になります。 リレーショナル型での参照制約(外部キー制約)は、RDBに階層型やネットワーク型の特長を生かしたものです。

fumihio
質問者

お礼

ご回答ありがとうございました。 構造を考えればその通りですね、理解が深まりました。

関連するQ&A