階層型データモデル
表示
データベースモデル |
---|
基本的なモデル |
階層 |
ネットワーク |
関係 |
オブジェクト関係 |
オブジェクト |
その他のモデル |
多次元 |
スタースキーマ |
XMLデータベース |
列指向 |
Associative |
Concept-oriented |
階層型データモデル(かいそうがたデータモデル)は、データを木構造で表したデータモデルである。一般には、会社の組織図などで使われている。階層型データベースとも呼ばれる。
階層型では、データを上から下へと見ていくために、親データと子データという関係が発生する。これは会社の組織図を例にとると、社長の下にはいくつもの部署があり、部署の下には違う業務を担当する課が存在するといった関係になる。
このような体系では、1つのデータを探す手順は1通りしか存在しない。これは、親データと子データが1対多の関係でしか存在しないためである。
特徴
[編集]さきほどの会社の組織図の例では各課はそれぞれ違った社員がいるわけだが、ここで例えばある社員がなにかのプロジェクトチームに入った場合には、その社員はプロジェクトチームにいながら所属は元々いた課なので、組織図で示すとその社員は2人いることになる。つまり、データの重複が発生してしまう。
このようなことから、子データが様々な親データの下にある場合には、データが必要以上に増えてしまう欠点がある。このため、IMSやDL/I VSEなど実際の階層型DBMSでは、仮想レコード(ポインター)を実装している。
長所
[編集]- 大規模データベースでも、必要資源が少なく、高速で、応答時間の見積り精度が高い。
- レコード単位の読み書きのため、プログラミングが容易である。SQLのような表のカーソル操作は不要である。
短所
[編集]- 専用のスキルが必要である。
- レコードの絞込みはアプリケーションで行う必要がある。SQLでのWHEREに相当する機能が弱い。