北川 博之著「データベースシステム(オーム社)」を参考に,データベースシステムの知識をまとめます。
データモデルの定義
データモデルとは,DB中のデータとそれに対する操作を規定する枠組みです。データモデルが果たす役割は,大きく下記の二つに分類されます。
- DBMSが提供するインタフェースを規定
- 実世界のモデル化ツール
DBMSが提供するインタフェースを規定
データモデルは,格納するデータ構造のルールおよび整合性制約を定め,そのルールに従って格納されたデータに対する操作体系を提供するため,DBMSが提供するインタフェースを規定していることになります。DBMSのインタフェースとしてのデータモデルは古くから盛んに研究されており,下記のような代表例があります。
- リレーショナルデータモデル
- ネットワークデータモデル
- 階層データモデル
リレーショナルデータモデルは,関係データモデルともよばれます。1970年にCoddにより提案され,ネットワークデータモデルと階層データモデルと比べ,単純性・数学的な記述性・物理レベルの独立性に優れているデータモデルであり,現在最も主流なデータモデルになっています。一方,ネットワークデータモデルと階層データモデルは,ファイルシステムを拡張する目的でDBMS発展文脈の初期に提案されました。
リレーショナルデータモデルでは,リレーションとよばれる表でデータを管理し,データの操作体系にリレーショナル代数(関係代数)とリレーショナル論理(関係論理)を利用します。前者はリレーション同士の和差積商等の代数演算によりデータ操作を記述し,後者は論理記号を用いてデータを記述します。これらは完備(どちらを使っても本質的には同じ)であることが知られています。
実世界のモデル化ツール
データモデルは,実世界の情報をできるだけ自然に表現するためのツールです。このような意味で,オブジェクト指向プログラミングと相性が良く,最近ではオブジェクト指向データモデルとよばれるデータモデルも提案されています。
コメント