階層型
データモデルは、データを木構造で表現する
データモデルです。これは、組織図のように、データが親と子の関係で階層的に整理される構造を指します。例えば、会社の組織図では、
社長の下に複数の部署があり、各部署の下にはさらに複数の課が存在するという構造が、階層型
データモデルの良い例です。
このモデルの最大の特徴は、データのアクセス経路が一意に定まる点です。親データから子データへと順にたどることで、目的のデータに必ず到達できます。これは、親データと子データが1対多の関係でしか存在しないという制約によるものです。つまり、あるデータの子は、必ず一つの親データにのみ属しているということです。
しかし、この構造にはいくつかの課題もあります。例えば、ある社員が複数のプロジェクトチームに参加する場合、組織図上ではその社員が複数箇所に存在することになり、データの重複が発生します。これは、階層型
データモデルでは、あるデータが複数の親データに属することを許容しないためです。現実のデータは必ずしも単一の親子関係で表現できるわけではないため、この制約はデータの冗長性を招き、データ管理の複雑さを増大させる要因となります。
実際の階層型
[データベース管理システム]では、この問題を解決するために、仮想レコード(ポインター)などの仕組みが実装されています。これにより、データの重複を避けつつ、複数の親データから子データへのアクセスを可能にしています。代表的な例として、
IMSやDL/I VSEなどが挙げられます。
長所
階層型
データモデルには、以下のような長所があります。
高速性: 大規模なデータベースでも、必要なリソースが少なく、高速なデータ処理が可能です。
応答時間の予測: 応答時間の見積もりが比較的容易です。
プログラミングの容易さ: レコード単位での読み書きのため、SQLのような複雑なカーソル操作を必要とせず、プログラミングが容易です。
短所
一方で、以下のような短所も抱えています。
専門知識: データベースの利用には、専門的なスキルが求められます。
柔軟性の低さ: データ検索において、SQLのWHERE句のような機能が弱く、レコードの絞り込みはアプリケーション側で実装する必要があります。
データ構造の変更困難: 階層構造の変更は、データベース全体の構造に影響を与えるため、柔軟なデータ構造の変更が難しい。
関連項目
階層型
データモデルに関連する技術やシステムとして、以下のようなものがあります。
MUMPS: 医療分野で利用されるデータベース言語。
Caché: インターシステムズ社が開発した多次元データベース。
DL/I: IBMのデータベース管理システム。
IMS: IBMの階層型
データベース管理システム。
階層型
データモデルは、その構造のシンプルさから、特定の用途においては非常に有効な
データモデルです。しかし、複雑なデータ構造や多様なデータ関係を扱う場合には、他の
データモデル、例えば、関係
データモデルやネットワーク
データモデルなどが適している場合があります。