データモデル


このページ内の目次

データモデルの考え方
論理データモデル
物理データモデル

データベーススペシャリスト目次へ


データモデルの考え方

データモデル
企業全体のデータ体系を、ダイアグラムなどを使ってモデル化して表現したもの。データモデルを作成することによって、企業全体のデータ体系が矛盾のない整合性のとれたデータ構造になり、必要な情報を速やかに取り出すことができるようになる。

「データスペシャリスト育成カリキュラム」では、従来、データモデルを概念データモデル、論理データモデル、物理データモデルに3区分していたが、平成10年より、従来の概念データモデルを論理データモデルとし、従来2つに分かれていたDBMS依存の論理データモデルと物理データモデルを統合し、物理データモデルとした。

従来 カリキュラム改定後
概念データモデル 論理データモデル
論理データモデル 物理データモデル
物理データモデル
データモデル
論理データモデル 物理データモデルに先立って作成られる。DBMSに依存しないデータモデルであり、コンピュータ化されていない部分についても記述する。
物理データモデル DBMSの特性や実装方式を加味して作成される。DBMSで管理する範囲のみを記述し、コンピュータ化されない部分は記述しない。
ANSI/x3/SPARC 3層スキーマアーキテクチャ
データベースシステムのアーキテクチャをインターフェースを中心にして徹底的に分析し、3層のスキーマからなるモデルを提示したもの。現実のDBMSは大部分がこの3層スキーマアーキテクチャに従っている。
外部スキーマ ユーザあるいはプログラムから見たデータベース記述。 ex.)RDBMSのビュー。
概念スキーマ 対象となる外界の事象を抽象化したもの。データベース化したいすべてのデータを、データモデルに従って記述したもの。 ex.)データ定義SQL。(CREATE TABLE文とか)
内部スキーマ データの物理的な格納面からの定義。 ex.)インデックスの定義。ORACLEの表領域の定義。

平成8春 DB 問55

データモデルは次の三つの部分からなる。そのうち二つの部分は、データ構造およびデータ操作である。残る一つの部分と最も関連の深い用語はどれか。

 関係完備
 関係代数
 整合性制約
 データ独立
 表構造

解答 ウ

データモデルの三つの機能

関係完備:関係モデルのデータ操作言語が備えるべき機能。
関係代数:関係モデルのデータ操作は関係代数からなる。
データ独立:コッドか提唱した関係モデルの目標。
表構造:関係モデルのデータ構造。

平成10春 DB 問5

ANSI/SPARCの3層スキーマのうち、概念スキーマの説明として、正しいものはどれか。

 実体をそのまま表として利用するよりも、部分的に一つの表としてアクセスするときに定義する。
 データベースがモデル化している対象全体の論理的なデータ構造を記述したものである。
 特定の利用者に対して、データベースの一部のデータ構造を特定の見方(ビュー)で切り出したものである。
 二次記憶装置上に格納されたデータの物理的な機能を記述したものである。

解答 イ

ア、ウ:外部スキーマ
エ:内部スキーマ


論理データモデル

企業全体のデータ体系を記述するモデリング技法。対象とする世界のデータの意味関係を忠実に記述でき、分析・設計した結果を的確に第三者に伝えることができなければならない。

論理データモデル機能の機能要件

  1. 誰がモデル化しても同じ結果になること。
  2. 視覚的に理解しやすいこと。
  3. 複合オブジェクトや汎化・特化関係などのデータの意味関係を表現できること。
  4. 論理データモデル機能自身に矛盾がないこと。(完全性)
  5. 整合性制約が表現できること。
A.複合オブジェクト(繰り返し項目、階層構造)
整数や文字型などの基本的なデータ型とそれ以外の抽象データ型、集合、配列などの組合せにより、アプリケーションプログラムで使われる階層構造や繰り返し項目などの複雑なデータ型を表現したもの。

 複合オブジェクト

B.汎化・特化関係
汎化:複数の対象物に共通する特性に注目して抽象化すること。
    ex.)パソコン、ワークステーション、メインフレームの共通特性に注目して抽象化すれば、汎化の親側はコンピュータになる。
特化:逆に、ある対象物を細かく分類すること。

 (高度共通午前:平成8秋 NW 問59の解答を再利用)

C.PART-OF関係
汎化・特化関係は対象の性質に注目した意味関係であるが、対象の特性に注目したもの。対象の構成に注目したグループ化を集約化といい、逆を分解という。

 (高度共通午前:平成8秋 NW 問59の解答を再利用)


E-Rモデル

ネットワークモデル、関係モデル、エンティティセットモデルの3モデルを統合するモデルとして1976年にP.P.チェンにより発表された。
現実世界をモデル化する手段として理解しやすい、実体間の関係の意味表現ができる、さまざまなデータ構造が表現できる、あるいは関係モデルとの親和性が高いなどの特徴から広く利用されている。

E-Rモデルでの表現

1.エンティティタイプ(実体型)とインスタンス
モデル化対象世界の対象物を表すエンティティは、それ自体を説明する幾つかの属性を持つ。エンティティが持つ属性が、ある特定の値を持ったものがインスタンスで、エンティティの実現値である。(図を見たほうが分かりやすいかな)

エンティティタイプとインスタンスの例

2.エンティティ識別子
エンティティの一つのインスタンスを一意に識別するデータ属性。関係モデルにおける主キーに相当する。上図では社員コード。
3.リレーションシップタイプ(関連型)とインスタンス
関連とは、業務上の規則(ビジネスルール)によって発生するエンティティ間の関係。関連は属性を持つことができ、関連の実現値をインスタンスという。
4.ガーディナリティ
エンティティのインスタンス間に1対1、1対多、多対多の対応関係がある場合、これを表す記述をガーディナリティ(写像基数)という。

平成9春 DB 問33

顧客は一般に複数の銀行に預金するものとして、顧客と銀行の関連を、E-R図で次のように表現する。このE-Rモデルを関係データベースで”銀行”表、”預金”表、”顧客”表と表現したときの記述として正しいものはどれか。

”銀行”表と”預金”表のガーディナリティは多対1である。
”銀行”表に参照制約のあるキーはない。
”預金”表と”顧客”表のガーディナリティは1対多である。
”預金”表には2つ以上の外部キーがある。

解答 エ

「顧客は一般に複数の銀行に預金する」こと、および「銀行は通常複数の顧客の預金を預かる」ことから顧客と銀行の関係は多対多の関係となる。
預金は顧客と銀行の多対多の関係を1対多に変えるための連関エンティティであり、顧客と預金は1対多、銀行と預金は1対多の関係となる。
連関エンティティのキーは、元の二つのエンティティ(銀行、顧客)を含むので、”預金”表には最低二つ以上の外部キーが存在することになる。
”銀行”表のキーは、預金表により参照されるので、参照制約の対象となる。


物理データモデル

階層モデル

データ構造に階層構造を採用したデータモデル。

●表現

1.親子関係
階層モデルは、データ構造に木構造(階層構造)を使用し、対象世界のデータを親と子の関係(親子関係)として表現する。親と子のオカレンスの間には1対多の対応関係がある。親は複数の子を持つが、子は1個の親しか持てない。
2.親子関係に従った検索
親子関係は、内部的には親から子、兄弟へ、更に子から親へのポインタによって表現される。親から子の検索、あるいは子から親の検索は、親子関係のつなぎに沿った処理経路(アクセスパス)を経由する。
3.親子関係がないために検索できないこと
親子関係がないと、親から子、子から親への検索ができない。子が複数の親を持つ場合は、どちらかにしか親子関係を設定できない。親子関係が設定されなかった側では、子から親を検索できない。ただし、複数の親を持てるように拡張したDBMSもある。

●特徴

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

階層モデルのデータ構造

ネットワークモデル

データ構造にネットワーク構造を採用したデータモデル。

●表現

1.複数の親を持つことができる
ただし、一つの親子集合では、一つの子レコードは一つの親レコードしか持てない。
2.サイクルやループを持つことができる
サイクル:数珠つなぎのデータ構造。
ループ:自分自身を再帰的に参照するデータ構造。
3.一時的に親子関係を定義できる

●特徴

1.長所
親子間のデータ構造としてさまざまな表現か可能であり、階層モデルのデータ構造に比べて自由度と汎用性が高い。
2.短所
階層モデルと同様、データの論理的関係とアクセスパスを一体化して表現しているため、データの独立性が低いことや、アクセスパス以外の経路での処理効率が悪い。

平成7春 DB 問29

ネットワークモデルにおける親子関係に関する記述のうち、正しいものはどれか。

 親子集合が定義されている場合、子レコード型のすべてのレコード実現値は親レコード型のいずれかの親レコード実現値に対応しなければならない。
 親子集合が定義されている場合、その親レコードとは無関係に子レコードを直接アクセスすることはできない。
 親子集合では、親レコードと子レコードとに同一のレコード型を指定できない。
 親子集合内で子レコードを検索するときは、順序句による条件指定はできない。
 一つの親子集合では、一つの子レコードは一つの親レコードにしか対応できない。

解答 オ

ア:子レコード型の実現値は、親レコード型の実現値に対応しない場合もある。(挿入属性MANUAL指定)
イ:子レコードにレコードキーを指定することによって、子レコードを直接アクセスできる。
ウ:NDLでは、親と子が同じレコード型の再起親子集合が定義できる。


データベーススペシャリスト目次へ