1. データモデル
  2.  データ構造を表現する機能や整合性を維持するための機能をダイヤグラムなどで図式化して表したもの。
    データ構造(スキーマ)を第三者でもわかるように表現することを目標とする。

    1. 3層スキーマアーキテクチャ
    2.  ANSI/x3/SPARCによって提示された、現在もっとも用いられているデータ構造。
      3つの観点からデータをとらまえて、スキーマ*を決定する。

      1. 外部スキーマ
      2.  ユーザー視点からからとらまえたデータ構造の定義。
        概念スキーマの変更に対し、ユーザーが影響を受けないことを考慮する。(論理データの独立性

      3. 概念スキーマ
      4.  データベース全体のデータ構造の定義したもの。

      5. 内部スキーマ
      6.  データの型や、格納方法によるデータ構造の定義。
        概念スキーマの変更に対し、データベースが影響を受けないことを考慮する。(物理データの独立性

    3. データモデル
      • 概念データモデル
      •  現実の世界の中から対象となる概念実体(エンティティ)を抽出し、その関連性を表現する。
        範囲はデータ化されない現実世界の物理的な要素も含まれる。
        例えば、ユーザー情報などは実在する人物とソフトウェア上のユーザーのデータがどう結び付くかを表現する。

      • 論理データモデル
      •  抽出された概念実体(エンティティ)を属性として上げられた項目で表現する。
        範囲はデータ化したソフトウェア上の要素に限られる。
        ユーザー情報で例えると、名前、年齢、性別などの項目を属性とすることで個々のデータを識別できるように表現する。

      • 物理データモデル
      •  データベース管理システムの実装に依存する部分を表現する。
        検索処理速度を意識した格納構造(インデックスなど)などが該当する。

      1. 階層型モデル
      2.  データ構造に階層構造を採用したデータモデル。IBM社のIMS(Information Management System)が有名。
        データ構造を親と子の関係として表現する。
        基本的に1つの親はN個の子を持つことができますが、1つの子は1つの親しか持てない。
        親から子、子から親に辿ることで、高速な検索が可能になるが、常に親子関係を維持しなければいけないため、
        データの操作は複雑になる。また、親子関係で辿ることができない検索では検索が遅くなる。

      3. ネットワークモデル
      4.  データ構造にネットワーク構造を採用したデータモデル。CODASYLのDBTG*が提案したデータベースや、
        データベース言語NDLがある。データ構造を概念実体(エンティティ)間のネットワークで表現する。
        階層モデルと違い、汎用性と拡張性が高く、子に当たるデータが複数の親に当たるデータを持つことも可能。

      5. 関係モデル
      6.  1970年にE.F.Coddにより提唱された数学の集合と関係性の概念に基づいたデータモデル。
        データ構造を二次元的な表(テーブル)を用いて表現する。
        階層型モデル、ネットワークモデルが、関係性を確立するために互いのエンティティを結びつける為の
        ポインタを用意しなければならないのに対し、関係モデルはエンティティのもつ属性で
        関係性を確立する。このため、ネットワークモデルよりも柔軟にデータ構造を構築できる。

      7. ERモデル
      8.  1976年にP.P.チェンによって提唱されたネットワークモデルと関係モデルを統合したデータモデル。
        データ構造は関係モデルにおけるテーブルをエンティティとし、
        属性値による関係性をネットワークモデルのように表現する。
        結び付くエンティティ同士の多重度を意識することで、関係性をより詳細に表現できる。