1.4論理データモデル

1.4論理データモデル

代表的な論理データモデルには、階層モデル、ネットワークモデル、関係モデルがある。ここでは階層モデル、ネットワークモデルについて学習。アウトプットします。

データベーススペシャリスト試験の学習内容をアップデート

1.4.1階層モデル

階層モデル(hierarchical model)は、データ構造を採用したデータモデル

(1)階層モデルでの表現

①親子関係

階層モデルは、データ構造に木構造(階層構造)を使用し、対象世界のデータを親と子の関係(親子関係)として表現。親と子のインスタンスの間には1対多関連がある。親はN個の子を持つが、子は1個の親しか持てない。

②親子関係の親しか持てない

親子関係は、内部的には親から子、兄弟へ、さらに子から親へのつなぎ(ポインタ)によって表現。親から子の検索、あるいは子から親の検索は、親子関係のつなぎに沿った処理経路(アクセスパス)を経由する。

③親子関係がないために検索できないこと

親子関係がないと、親から子、子から親への検索ができない。子が複数の親を持つ場合は、どちらにしか親子関係を設定できない。親子関係が設定されなかった側では、子から親を検索できない。ただし、複数の親を持てるように拡張したDBMSもある

(2)階層モデルの特徴

①長所

データ操作を行うときのアクセスパスは、あらかじめデータ構造に定義されている。したがって、定型処理などのアクセスパスに沿った処理は非常に速くなる

②短所

  • 親子関係に沿ったデータ操作を行うため、データ操作が複雑になる
  • データの論理的関係(親子関係)とアクセスパス(つなぎ構造)を一体化して表現している。このため、応用プログラムは常にデータ構造を意識しなければならず、プログラムのデータ独立性が低くなる
  • アクセスパスが決まらない非定形処理の場合は、アクセス効率が悪い
  • モデル化の対象が木構造の場合は問題ないが、そうでない場合は木構造に合うように変換しなければならない

1.4.2ネットワークモデル

ネットワークモデル(network model)は、データ構造にネットワーク構造を採用したデータモデル

(1)ネットワークモデルでの表現

対象世界の実態をレコード型でとらえ、実態間の関連を親子集合型(セット)に基づいたネットワーク構造で表現。親子集合型は基本的には階層モデルの親子関係を踏襲したものであるが、次の点が機能拡張

①複数の親をもつことができる

子は複数の親子集合型に属することができる

ただし、一つの親子集合では、一つの子レコードは一つの親レコードしか持てない

②サイクルやグループを持つことができる

サイクルとは数珠つなぎのデータ構造。ループは自分自身を再帰的に参照するデータ構造。ネットワークモデルではサイクルはそのまま表現可能。ループはNDLであればそのまま表現可能だが、それ以外のネットワークモデルでは構造レコードまたは関係レコードと呼ばれるダミーのレコードを追加する必要がある。なお多対多のデータ構造の場合も多対多を1対多に変更するため、この構造レコードを用いる

③一時的に親子関係を定義できる

一時的な親子関係を定義する場合、親子集合の組入れ属性を手動にし、保存属性を一時にする。こうすれば任意の時点で子レコードを親子集合に追加でき、任意の時点で子レコードを親子集合から切り離すことができる

(3)特徴

①長所

親子間のデータ構造として様々な表現が可能、階層モデルのデータ楮うに比べ自由度と汎用性が高い

②短所

階層モデル同様、データの論理的関係とアクセスパスとを一体化して表現しているため、データの独立性が低いことやアクセスパス以外の経路での処理効率が悪い