第4章 実体関連モデル(Entity-Relationship Model)

5-1
5. 実体関連モデル-高階の実体関連図
述語抽出法では, 高階の述語で記述された現実世界を図示する方法として,Chen が発案し
た実体関連図を拡張して用いる.ただし,述語抽出法の実体関連図は,高階の述語を忠実に反
映した高階の実体関連図であり,Chen のオリジナルやその亜流(IDEF1X に代表される)に比べ
て,現実世界の記述能力に雲泥の差がある.本章では,実体関連図の描き方を,高階の述語か
らの変換方法とともに説明する.
5.1
実体関連図の位置付け
実体関連図(Entity-Relationship Diagram -ERD)は,代表的なデータモデルの図式表記法
であり,実体集合と関連集合を用いて現実世界を図示する.述語抽出法における実体関連図は,
高階の述語=高階の関連を含むので,高階の実体関連図(higher-order entity-relationship
diagram)である.従来は,データモデルを実体関連図(亜流の変種も含む)で表記することがほ
とんどそのまま概念設計(流派によっては,論理設計をも含む)の唯一の技法であった.すなわち,
収集した要件情報を,満足な方法論もなしに,いきなり図示していた.一方,述語抽出法では,
要件を記述する自然言語表現を数学的述語に変換したものがそのままデータモデルとなる.さ
らに,数学的述語は機械的に,例えば,関係データベースのスキーマ定義に変換できる.この
ため,実体関連図は,数学的述語を分かり易く図解するための,あくまで補助的な技法として
位置付けられる.さらに,リバース・エンジニアリングの発達により,関係スキーマなどから
実体関連図を復元するのは,造作もない作業になっている.このため,述語抽出法では,論理
設計によって具体的なデータベーススキーマ定義が作成された後に,それを実体関連図にリバ
ース・エンジニアリングして,当初のデータモデルの妥当性をレビューするという方式を推奨
する.
5.2
5.2.1
高階の述語から高階の実体関連図へ
高階の述語の図示
高階の実体関連図では,拡張分離記法で記述された高階の述語を図示する.高階の述語を図
示するには,述語そのものと,述語から(その項である) 低階の述語への参照(reference)の双方
に記号を割り当てる必要がある.述語抽出法では,多項述語を菱形で,単項述語を逆三角形で
表現する(その他の述語記号については,適宜解説する).また,述語から低階の述語への参照を
線で表し1,高階の述語を低階の述語の上に配置し,参照を表す線でそれらを結ぶ (図 5-1).
IDEF1X に代表される従来理論では,線以外の図形は実体を表し,線は実体の間の関連を表すが,これは,
関係と参照を混同しているためである.この誤りについては,
「第三部 従来理論批判」で詳述する.
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
1
5-2
低階の
述語
高階の
述語
(N+1)階
高階の
述語
多項
述語
N階
単項
述語
(N-1)階
低階の
述語
低階の
述語
低階の
述語
述語
変項
述語
変項
図 5-1 高階の述語の図示
述語記号の内部を 2 段に分け,上段にはその述語の名称を,下段には述語の終端成分の名称
のリストを記入する.終端成分とは,第 0 階の述語である.このようにして描かれた図は,拡
張分離記法による記述と完全に対応する.すなわち,図の上段に位置する記号は拡張分離記法
の左辺に対応し,下段に位置する記号は右辺の構成要素に対応する.また,多項述語を示す菱
形は, と の 2 つの機能を併せて表し,単項述語を示す逆三角形は, の機能だけを表す.述
語内部の下段がその述語の成分を示し,述語からその項(である述語)への参照線がその述語の成
立を示す.図 5-2 の例は,2 階の述語とそれを図式化したものを示している:
入れ子記法:
拡張分離記法:
2階
1階
0階
V
ABC
2階
R
AB
1階
0階
A
S
BC
B
C
UoD
-1階
図 5-2
2 階の述語の図示
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-3
また,この参照線に沿って,述語の終端成分からその項(である述語)の終端成分への参照整合
性制約2も表現されている(図 5-3).
①
①
V(a, b, c)⊆R(a, b)*S(b, c)
R
AB
②
図 5-3
V
ABC
②
S
BC
参照線は参照整合性制約をも表す
なお,変項が 4 個以上の多項述語は,図 5-4 のように表記する:
多項
述語
図 5-4
5.2.2
4 項以上の多項述語
実体集合
「述語抽出法の数学的基礎」で述べたように,現実世界のモノの集合は,論議領域(UoD)の部
分集合である 0 階の単項述語で記述される.例えば,
“町内に存在するモノ”の集合を論議領域
とすれば,その町内の住民は,住民だ(u),町内を徘徊する犬は,犬だ(u) という単項述語で表
される.日常的には,これらをそれぞれ,住民,犬 という普通名詞で表す.これを図式化すれ
ば,図 5-5(a)のようになる.従来の方法論では,これらを実体集合(entity set)と呼んで別個の
記号(長方形)を割り当てる(同図(b)).本書でも,基本的に従来の慣例に従う.
実体集合 ”住民”
住民
R
犬
D
実体集合 ”犬”
住民
R
犬
D
UoD:町内に存在するモノ
(a) 0階の単項述語
図 5-5
2
モノを表す 0 階の単項述語と実体集合
参照整合性制約については,後章で詳述する.
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
(b) 実体集合
5-4
5.2.3
関連集合-多項関連
従来の方法論では,述語抽出法における多項述語を関連集合(relationship set)と呼ぶ.関連
集合は,現実世界のコトに対応する.関連集合の元である関連(relationship)は,多項述語の変
項に個例を代入して得られる命題であり,現実世界のモノゴトの個例に対応する.図 5-6 は,
1階の多項述語(分離記法)をそのまま図式化したものである.0 階の単項述語を実体集合として
表記すれば,同図(b)になる.なお,従来の方法論は,述語の階の概念を欠いていたため,実体
集合(0 階)と関連集合(1 階)を,同図(c)のように同階に配置してきた.本書でも,階の違いを強
調する必要がない場合は,慣例に従う.
R(a, b)⊆A(a)*B(b)
A(a), B(b)⊆U
R
AB
1階
0階
R
AB
1階
A
0階
B
A
(b) 実体集合の導入
UoD
-1階
B
R
AB
A
(a) 分離記法の述語をそのまま図示
図 5-6
B
(c) 慣例的表記法
多項述語の図示と実体関連図
従来の実体関連図は,Chen のオリジナルにせよ,IDEF1X にせよ,理論的な根拠のない恣意
的な(より正確には,誤った理論に基づく)記号の寄せ集めでしかなかったが,高階の実体関連図
に至って,理論的な根拠を持つ,現実世界のモノゴトの忠実な図式表記として生まれ変わった
のである. 図 5-2 を実体関連図に書き換えれば,図 5-7 が得られる.
V
ABC
R
AB
A
図 5-7
S
BC
B
C
2 階の関連を含む高階の実体関連図
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-5
ここで,関連集合の実際の姿をもう尐し詳細に眺めておこう.図 5-8 (a)は,
「業者は部品を
製造する」を表す実体関連図であり,2 つの実体集合 業者,部品 と 1 つの関連集合 製造する
(業者,部品) が示されている.これをそれぞれ個例ベースで例示したものがその下に描かれて
いる. 図 5-8(a)に示すように,2 項関連は実体と実体をつなぐ線であり,それらの線を集め
たものが関連集合である.これらの線=関連は,述語 製造する(業者,部品) から生成される命
題である.したがって,関連集合の記号の菱形は,関連を表す線の束を表す.関連集合は,例
えば,太い結合線などでも表せるが,関連集合同士の関連集合も表現できるように,菱形を使
っている.よって,同図(b)に示すように,結合線は菱形を貫いている.
業者
S
製造する
SP
部品
P
製造する (業者 (s), 部品 (p))
エンジン
豊産
シャーシ
製造する (s, p) ⊆業者 (s) * 部品 (p)
車輪
日田
タイヤ
実体集合
業者
S
「日田はタイヤを製造する」
製造する(日田,タイヤ)
(a)関連は実体を結ぶ線である
関連集合
製造する
SP
実体集合
部品
P
(b)関連の線は菱形を貫く
図 5-8 関連集合の実際
図式表記としては,関連は実体を結ぶ線でよいが,線が表す関連は,図 5-9(a)に示すように,
関連の両端の点,すなわち,関連する実体の組(tuple)として表現される.さらに,関連から実
体に改めて参照線を引けば,同図(b)になる.図 5-8 では,関連は実体を結ぶ線であったが,
図 5-9(b)では,実体の組とそこから実体に引かれた参照線の複合となる.
図 5-9(b)は,図 5-10 に示す数式を忠実に図式化したものである.図中の集合名は数式中
の述語名に,図中の参照線は数式に加えた補助線に,図中の 業者,部品,製造する の個例は,
それぞれ,各述語の変項
に対応している.すなわち,図中の線以外の記号は述
語(集合)を表し,線は参照を表す.
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-6
業者
豊産
日田
製造する
部品
業者
豊産
エンジン
エンジン
豊産
シャーシ
シャーシ
日田
エンジン
日田
車輪
日田
タイヤ
豊産
車輪
日田
タイヤ
(a)線である関連を実体の組として表す
製造する
部品
豊産
エンジン
エンジン
豊産
シャーシ
シャーシ
日田
エンジン
日田
車輪
日田
タイヤ
車輪
タイヤ
(b)関連を実体の組と実体への参照線に分ける
図 5-9
関連集合の表現
製造する (s, p) ⊆業者 (s) * 部品 (p)
図 5-10
5.2.4
数式と図式(b)の対応
関連集合-単項関連
単項述語を表す単項関連集合は,三角形で表現する.単項述語 哺乳類 動物
で書き換えた 哺乳類
動物
を分離記法
を単項関連集合として図示すれば,図 5-11 のように
なる.同図には,個例レベルでの関連も例示されている.
哺乳類
ポチ
シロ
ミケ
動物
(UoD)
哺乳類(動物(u))
ポチ
シロ
哺乳類 (u) ⊆動物 (u)
クロ
ミケ
図 5-11
単項述語の図式表記
図 5-11 を図 5-9(b)と比較すれば,単項関連図は,2 項関連図を関連の中心で真二つに割った
片割れであることが分かる.これが,単項関連記号として 3 角形を採用した理由である.
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-7
5.2.5
記号の二重性-定義域と値域
「数学的基礎」で述べたように,モデリングでは,定義域(domain)と値域(range)を必ず対で
考えなければならない.しかし,これをそのまま図示すると,図 5-12 の上のように非常に煩
雑である.同図上では,網掛けの長円が定義域を,白抜きの記号が値域を表す.そこで,同図
下のように,定義域の記号は一切省略し,本来値域を表す集合の記号に,定義域と値域の二重
の意味を担わせることにする.これにより,定義域と値域との関係,特に,
「低階の関連集合(実
体集合)の値域同士を関連させると,高階の関連集合の定義域ができる」ということが見えなく
なってしまうので,注意が必要である.
実体
集合
関連
集合
実体
集合
実体
集合
関連
集合
実体
集合
図 5-12
定義域記号の省略
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-8
5.3
5.3.1
識別子(identifier)
実体の識別子
述語抽出法では,論議領域(Universe of Discourse)内のモノの識別子として,UUID
(Universally Unique IDentifier)を採用する.実体集合は論議領域の部分集合であるから,その
元である実体の識別子としても,UUID を使う.従来理論では,実体の識別子は,同一実体集
合内の他の実体と区別するためのものであるため,実体集合が異なれば,異なる実体に同一の
識別子を付与してもよかった.しかし,この方式では異なる実体集合内に同一の識別子を持つ
異なる実体が存在し得る.それらを識別するには,実体集合名と集合内識別子を対にして使わ
なければならない.これでは,同一の実体が(通時的に,あるいは,共時的に)異なる集合に属す
るという事態を表現するのが困難である(異なる ID を持つ実体が実は同一であることを表明す
る方法を別途用意しなければならない.結局,UUID のような,集合を超えた識別子に帰着せ
ざるを得ない).これに対して,UUID は,文字通り,宇宙内で一意であるので,異なる実体集
合内の実体を,実体集合名を必要とせずに,識別できる.
実体の識別子は,時空を越えて一意である.したがって,論議領域の範囲が増減しても影響
を受けない.識別子は,実体が生まれたときに付与されるが,実体が消滅してもなくならない.
これは,識別子が再使用されないことを意味する. 実体の消滅とともに識別子の消滅を許すと,
過去のモノゴトを記録できないことになるからである.実体の消滅は,その実体の識別子を用
いて「実体が消滅した」というモノゴトとして記録される.識別子の再使用は,異なる実体に
同一の識別子を付与することになるので,論外である.
実体の識別子は,従来は属性と同一視されてきたが,述語抽出法では,実体を識別するため
の固有の先天的な自明の存在として,属性とは別物として扱う.このため,実体関連図には実
体の識別子を表す記号は存在しない.実体の識別子が必要な場合は,実体名で代用する.
なお,本書で使用する例では, UUID(32 桁の 16 進数)の代わりに,モノの名前を識別子と
して使っているが,これはあくまで,説明の便宜上の理由による.
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-9
5.3.2
関連の識別子
関連の識別子は,参画する実体または関連の識別子から形成される.例えば,図 5-9 の関連
集合 製造する の識別子は,(業者,部品) である.これは,一つの関連集合において,一対の
実体は高々1つの関連しか持てない,ということを意味する.
「どの業者がどの部品を製造する
か」は表現できるが,
「何月何日に,どの業者がどの部品を製造したか」を表現することはでき
ない(しかし,日付を加えた 3 項関連なら表現できる).
一対の実体は,一つの関連集合において,高々1つの関連しか持てないが,同じ対 (業者,
部品)を識別子として持つ別の関連集合(例えば,よく売れる)があってもかまわないことに注意
されたい.
5.3.3
識別子に関する反常識
述語抽出法では,実体と関連の識別子の考え方が従来の常識とは逆になるので,注意を要す
る.
 実体には,無意味キー(望むらくは UUID)を付けなければならない.例えば,社員という
実体を,氏名 と住所 の組み合わせで識別するというように,実体を複数の“属性”の組
み合わせで識別してはならない.
 関連には,無意味キーを付けてはならない.例えば,注文する の識別子として,注文[伝
票]番号 を使うのは許されない.
全てのモノゴトの出発点はモノであり,コトはモノまたはモノとコトから構成される.従って,
コトを出発点にしたり,コトからモノを構成することはできないのである.
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-10
5.4
5.4.1
いろいろな関連
単なる3項関連
3 項関連集合は,3 つの実体集合の結合(実際は直積)の部分集合
であり, 図 5-13 のように表記される.
U
ABC
A
B
A
C
U
ABC
C
B
図 5-13
単なる 3 項関連
図 5-14 は,3 項関連 注文する⊆業者*工場*部品 である.この 3 項関連では,
「工場が注
文できる部品は,その業者で製造される部品に限られる」や,
「工場が注文する部品は,その工
場が使用する部品に限られる」という制約がない.このため,この 3 項関連を使うアプリケー
ションは,関連集合 製造する や 使用する を見て,制約が満足されているかどうかチェック
しなければならない.
注文する
FSP
業者
S
工場
F
部品
P
図 5-14
注文する⊆業者*工場*部品
業者 S
工場 F
部品 P
日田
第1工場
タイヤ
豊産
第1工場
車輪
豊産
第1工場
エンジン
日田
第2工場
車輪
日田
第2工場
タイヤ
日田
第3工場
シャーシ
豊産
第3工場
シャーシ
3 項関連 注文する
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-11
5.4.2
高階の関連-実体と関連の間の関連
実体と関連の間の関連集合は,実体集合と関連集合の直積の部分集合
であり,図 5-15 のように表記される.
A
U
ABC
A
B
U
ABC
S
BC
図 5-15
C
B
S
BC
実体と関連の間の関連
図 5-16 は,実体 工場 と関連 製造する(業者,部品) の間の関連
注文する(工場,業者,部品)⊆工場*製造する(業者,部品)
で,
「工場は,業者が製造する部品を注文する」を表す.
工場 F
第1工場
第2工場
業者
S
注文する
FSP
注文する⊆工場*製造する
工場 F
業者 S
部品 P
第1工場
豊産
エンジン
第1工場
日田
タイヤ
第1工場
日田
車輪
第2工場
豊産
シャーシ
第2工場
豊産
エンジン
第2工場
日田
タイヤ
製造する
SP
部品
P
工場
F
製造する⊆業者*部品
業者 S
部品 P
豊産
シャーシ
豊産
エンジン
日田
タイヤ
日田
車輪
図 5-16
注文する⊆工場*製造する
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
C
5-12
5.4.3
高階の関連-関連同士の関連
関連同士の関連集合は,関連集合の結合の部分集合
であり,図 5-17 のように表記される.
U
ABC
R
AB
A
図 5-17
B
S
BC
C
関連同士の関連
図 5-18 は,関連 使用する(部品,工場) と関連 製造する(業者,部品) の間の関連
注文する(業者,部品,工場)⊆使用する(部品,工場)*製造する(業者,部品)
で,
「工場は,自分が使用する部品を,それを製造する業者に注文する」を表す.
注文する⊆製造する*使用する
業者 S
部品 P
工場 F
豊産
シャーシ
第1工場
日田
タイヤ
第1工場
豊産
タイヤ
第2工場
日田
車輪
第2工場
製造する⊆業者*部品
業者 S
部品 P
豊産
シャーシ
豊産
タイヤ
日田
タイヤ
日田
車輪
業者
S
注文する
SPF
製造する
SP
図 5-18
部品
P
使用する⊆部品*工場
部品 P
工場 F
タイヤ
第1工場
シャーシ
第1工場
タイヤ
第2工場
車輪
第2工場
使用する
PF
関連 注文する⊆使用する*製造する
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
工場
F
5-13
5.4.4
高階の関連-関連集合の直積
仲介項となれる共通の集合が存在しない関連集合同士の結合
は,直積に他ならず,図 5-19 のように表記される.
U
ABCD
R
AB
A
B
図 5-19
T
CD
C
D
関連集合の直積(1)
一方,仲介項となれる共通の集合があっても仲介させない場合は,数式では
と表現され,図 5-20 のように表記される.図 5-20 では,
を2つ並べることで,仲介させ
ないことを示している.
U
ABBD
A
R
AB
図 5-20
B
S
BC
C
関連集合の直積(2)
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-14
5.5
関連の多重度
2 項関連には,多重度(cardinality)が設定される.多重度とは,一方の実体/関連集合の元が,
他方の実体/関連集合のいくつの元と関連するかを示す尺度である.従来理論では,多重度は
実体集合同士の間の関連集合(=1 階の関連集合)にしか考えられていなかったが,述語抽出法で
は,高階の関連(関連同士の関連)集合でも考えられる.
従来の方法論では,多重度によって,モデルの構造(エンティティの数)が変わるため,概念モ
デルで多重度を設定しておく必要があったが,述語抽出法では,論理モデルにおいてさえ,多
重度の影響は最小限に抑えられる.多重度は,参照整合性制約と一意性制約の組み合わせだけ
で表現され,多重度の変更によってエンティティの数が変わることはない.
5.5.1
関連の多重度 - 多対多
多対多の関連集合では,それぞれの実体集合の1つの実体が他方の実体集合の多数の実体と
関連する.
例)1つの業者が多くの種類の部品を製造するし,1つの種類の部品が多くの業者で製造される
ので,業者と部品の間の関連集合 製造する は多対多である.
製造する
業者
部品
図 5-21 多対多の関連
5.5.2
関連の多重度 - 多対1
多対1の関連集合では,一方の集合の各実体は他方の集合の高々1つの実体と関連する.し
かし,他方の集合の1つの実体は,一方の集合の多数の(ゼロも含む)実体と関連し得る.
例)1 つの工場で最も多く使用する部品は高々1つであるが,ある部品は,複数の(含む 0)工場で
最も使用することがあるので,工場から部品への関連集合 最も多く使用する は多対1である.
使用する
工場
部品
最も多く
使用する
図 5-22
多対1の関連
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-15
5.5.3
関連の多重度 - 1対1
1対1の関連集合では,どちらの実体集合の実体も,お互いに相手の集合の高々1つの実体
と関連する.
例)複数のメーカーが同一銘柄の車種を作ることはないし,メーカーには,最も売れている車種
は1銘柄しかない(同点はないものとする)ので,実体集合 メーカー と 車種 の間の関連 最も
売れている は,1 対 1 である.
製造する
メーカー
車種
最も売れ
ている
図 5-23
1 対 1 の関連
以上をまとめて,関連の多重度を図示すれば図 5-24 のようになる.
多対多
多対1
1対1
メーカー
最も売れ
ている
車種
1対1の関連集合は,両側に入る矢印で示す
工場
最も多く
使用する
部品
多対1の関連集合は,1側に入る矢印で示す
業者
製造する
部品
多対多の関連集合では,矢印を使わない
図 5-24
5.5.4
関連の多重度
多重度の別の表現
多重度を厳密に数値で示す必要がある場合には,図 5-25 のように,下限..上限
と表記す
る.上限の*は,不特定多数を意味する.また,多重度がきっかり N の場合は,N..N ではなく,
単に N と記す.
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-16
1人の学生が履修する科目の数
は,最少15,最多38である
履修する学生が1人
もいない科目もある
0..*
学生
図 5-25
5.5.5
15..38
履修する
科目
多重度の別の表現
多重度の見極め方
多重度は,図 5-26 のように,2 項関連をマトリクス表記すると分かりやすい.
 1 対 1 では,マトリクスの各行,各列に○は一度しか出現しない.
 多対 1 では,○はマトリクスの列には複数回出現するが,行には 1 度しか出現しない.
 多対多では,○は,マトリクスの列にも行にも複数回出現し得る.
HF
WY
MB
第1工場
第2工場
第3工場
日田
豊産
鈴本
UA2
○
MK_X
GTR
○
最も売れ
ている
車種
工場
最も多く
使用する
部品
業者
製造する
部品
○
タイヤ
○
○
エンジン
車輪
○
タイヤ
○
エンジン
○
○
○
車輪
○
図 5-26
5.5.6
メーカー
多重度の見極め方
多項関連の多重度
多重度は 2 項関連のみに許される.
3 項以上の関連では,
多重度の解釈が曖昧になる.
図 5-27
の例では,業者 と何が1対多なのか曖昧である.
工場
F
注文する
FPS
部品
P
業者
S
? 対 業者(S)=多 対 1
図 5-27
多項関連の多重度
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-17
5.5.7
高階の関連の多重度
高階の述語に対応する関連集合にも多重度を考えることができる.図 5-28 の関連集合と実
体集合との間の関連の例を採れば:
[使用する(FP) の多重度] 工場(F)対部品(P)=多対多
[注文する(FPS) の多重度] 使用する(FP)対業者(S)=多対1
となる.関連集合と関連集合との間の関連も同様に考えることができる.
工場
F
使用する
FP
部品
P
注文する
FPS
業者
S
図 5-28
5.5.8
使用する(FP) 対 業者(S)=多 対 1
高階の関連の多重度
関連の生存期間と多重度
関連の生存期間を考慮すると,多重度が変わる場合がある.図 5-29 に示す 顧客 と ビデオ
ディスク の間の関連 借りる の例では,ある時点をとると,1 人の顧客は同時に複数本のテー
プを借りられるが 1 本のディスクは 1 人の顧客しか借りられないので, 顧客 対 ビデオディス
ク =1対多である.この場合は, 借りている という方が正確である.この関連は,ディスク
が借りられたときに生まれ,返却されると消滅する.一方,ある期間の中で考えると,1 本の
ディスクは複数人の顧客が借りるので, 顧客 対 ビデオディスク =多対多である.この場合
は, 借りたことがある という方が正確である.この関連は,ディスクが返却されても消滅し
ない.
織田
豊臣
徳川
織田
豊臣
徳川
MSX-02
○
S3-04
○
SW1-03
○
MSX-02
○
○
S3-04
○
○
○
SW1-03
○
○
図 5-29
顧客
借りる
ビデオ
ディスク
借りている:借りると生まれ,返却すると消滅する
顧客
借りる
ビデオ
ディスク
借りたことがある:借りると生まれ,返却しても消滅しない
関連の生存期間と多重度
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-18
5.6
5.6.1
関連(結合)以外の演算結果の集合
併合
共通の集合を仲介とする併合は,以下のように定義されていた:
これは,図 5-30 のように図式化される.
B
C
R
AB
R
AC
B
併合
C
R
ABC
A
A
図 5-30
併合演算
併合は,原則として共通変項を持つ同一の述語について行われる.さらに,その述語も,現実
的には,ハイパー述語
5.6.2
に限られる.
結合・併合以外の演算結果の集合
結合・併合以外の演算はすべて六角形の記号に演算記号を記入して表現する.入力の集合が
図から明らかな場合は, 演算のパラメタは省略される.図 5-31 は,関連集合 製造する から,
「豊産が製造する部品」を抽出する演算(選択と射影)を表している.
業者
S
製造する
SP
部品
P
π(σ(製造する;業者=“豊産” );部品)
製造する
業者
部品
豊産
シャーシ
豊産
エンジン
日田
タイヤ
日田
車輪
豊産が製造する部品
シャーシ
エンジン
図 5-31
その他の演算結果の集合
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-19
5.7
5.7.1
推移関連
推移還元関連
同一の実体集合に属する実体同士の関連を自己関連(endorelationship)という.その中で,そ
の推移閉包が推移関連になる最小のものを推移還元関連という.推移還元関連では,実体集合
と関連集合をつなぐ参照線に役割(role)と呼ばれる名前を付けることが多い.役割は,関連の異
なる成分を区別する.図 5-32 の例では,ピストンが関連の 2 つの成分[親]と[子]の両方
に出現している.
構成する
PP
[親]
[子]
部品
P
部品[親]
エンジン
エンジン
ピストン
図 5-32
部品[子]
ピストン
シリンダー
リング
推移還元関連
同一の実体集合に属する実体同士の間の関連であっても,推移還元でないものは,自己関連
とはせずに,はじめから,異なる実体集合とする方がよい.例えば,図 5-33(a)の自己関連 夫
婦である は,推移還元ではない(推移閉包が作れない)ので,同図(b)のようにする.
夫婦である
HH
[夫]
[妻]
人間
H
男性
M
夫婦である
MF
(b)
(a)
図 5-33
推移還元でない自己関連
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
女性
F
5-20
5.7.2
推移関連
実体集合
関連
包
の元
と推移還元関連
について,
が成立するならば,
は推移的であるという. “~の親である/子である”は推移還元であり,その推移閉
“~の祖先である/子孫である”は推移的である( も含む).
推移還元関連と推移関連は,従来は同一視されてきたが,本来は別物である.推移還元関連
の推移閉包を作ると,推移関連になる.
ad
R+
ac
ab
E
bd
bc
a
R+
b
R
EE
R
cd
c
d
図 5-34
E
推移関連
のような関連を反射関連という.推移関連と反射関連を併せて,反射推移関連といい,
で表す.
ad
R+
ac
ab
E
R+
bd
bc
R*
R
cd
a
b
c
d
aa
bb
cc
dd
図 5-35
R*
反射推移関連
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
R
EE
E
5-21
5.8
実体関連図は構文木である
これまで見てきたように,述語抽出法によって描かれる実体関連図は,実体集合(モノ)を終端
記号とし,関連集合(コト)を非終端記号とする構文木になる.最も単純な構文木は,図 5-36
に示すように,数式を表すものである.同図の構文木とそれを実体関連図に書き換えたものを
比較すれば,上記の主張を理解していただけるであろう.
この実体関連図は,
「モノ(実体)は,現実世界を構成する基本的な要素ではあるが,現実世界
は,モノのネットワークではなく,コトのネットワークである」ということを物語っている.
ネットワークが如何に複雑化しようと,その複雑性に関与するのは,コトである.モノはその
ネットワークの終端を占めるに過ぎない3.
A+B
AにBを加える
+
+
A
B
A
A+(B+C)
BにCを加えたものに
Aを加える
+
+
+
A
B
+
A
B
C
C
(A+B)*(C+D)
AにBを加えたものとCに
Dを加えたものを掛ける
*
*
+
A
B
+
+
B
C
図 5-36
D
A
+
B
C
D
数式の構文木と実体関連図
現在主流となっている object-oriented (「オブジェクト嗜好」が適訳)方法論は,すべてをモノに還元するの
で,モノ(データ)もコト (演算命令)も等しく主記憶に格納する von Neumann 型のコンピュータでは威力を発
揮する.しかし,まさにそれゆえに,その威力は,プログラム作成段階に限定される.モノゴトを記述しなけ
ればならない上流工程に適用するのは無理がある.
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
3
5-22
5.9
属性とサブクラスの図式表記
ペットを論議領域
とする 2 つの高階の単項述語,白い 犬
とコリー 犬
を例として
採り上げる.高階の述語 白い は低階の述語 犬の属性であり,高階の述語 コリー は低階の述
語 犬 のサブクラスである(図 5-37).いずれの単項述語も単項関連記号を用いて図示される
(図 5-38).
ペット
ペット
犬
犬
コリー
白い
白い(犬(x))
図 5-37
白い
コリー(犬(x))
属性とサブクラス
コリー
犬
ペット
図 5-38
白い
犬
ペット
属性とサブクラスの実体関連図
なお,高階の単項関連図は,図 5-38 右のように反時計回りに 90°回転すると,数式表記と一
致する.
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-23
5.10 単項述語からハイパー述語へ
5.10.1 クラス階層の表現
図 5-39 に示すような集合と元との間の所属関係
と集合間の包含関係
を例として取
り上げる.集合を丸角長方形で,個例(集合の元)を長円で示しており,論議領域は ペット であ
る.
ペット
犬
猫
チワワ
ポチ
タロ
ポチ
コリー
シャム猫
三毛猫
クロ
タマ
ミケ
∈
ペット
⊆
∈
∈
⊆
∈
犬
∈
⊆
猫
⊆
チワワ
⊆
コリー
シャム猫
∈:集合と元との間の所属関係
図 5-39
コリー
犬,犬
三毛猫
⊆:集合間の包含関係
は,クラスの階層表現を表すので,実際に
は,以下のような関係の組で書き直すことができる(ここでの
犬,
∈
⊆
所属関係と包含関係の例
例えば,高階の単項述語 コリー 犬 ペット
コリー,
ミケ
は,通常の数学記号である):
ペット
ペット
ペットを論議領域とし,集合族 分類={ ペット,犬,コリー,・・・}を導入すれば,上記の関係
の組は,以下のように,2 項ハイパー述語の組として記述できる:
ペット
ここに,変項
分類
,分類
分類
は集合族 分類 の元,すなわち,集合を表す.2 重線の三角形を集合族の記
号として,図 5-39 の諸関係は図 5-40 のように描かれる.ハイパー関連記号の足の接続点に
注目されたい.ハイパー関連
ー関連
の足は,集合 ペット と集合族 分類 に垂れており,ハイパ
の足は,2 本とも集合族 分類 に垂れている.
通常の関連と同様に,ハイパー関連にも多重度を設定できる.図 5-40 のハイパー関連
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-24
の多重度が多対1であることは,同図中の包含関係が木構造を成すことを示している.なお,
ハイパー関連
は推移還元関連なので,ペットの個例がどの最下位分類に属するかが分かっ
ていれば,上位分類への所属は,図 5-41 に示す推移閉包を用いた計算により求めることがで
きる.
チワワ
シャム
猫
コリー
三毛猫
集合族
”分類”
犬
猫
[子分類]
∈H
⊆H
ペット
[親分類]
集合
”ペット”
クロ
ポチ
ミケ
集合
”犬”
クロ
ポチ
ハイパー述語∈H
ペット
分類
クロ
ペット
ポチ
ペット
ミケ
ペット
クロ
犬
ポチ
犬
ミケ
猫
クロ
コリー
ポチ
チワワ
ミケ
三毛
図 5-40
ペット
犬
猫
コリー
チワワ
三毛
クラス階層のハイパー述語∈H と⊆H による表現
⊆H+
ハイパー述語∈H
最下位
ペット
分類
クロ
ポチ
ミケ
ハイパー述語⊆H
子分類 親分類
犬
ペット
猫
ペット
コリー
犬
チワワ
犬
三毛
猫
集合族
”分類”
コリー
チワワ
三毛
図 5-41
*
下位
分類
上位
分類
犬
猫
コリー
チワワ
三毛
コリー
チワワ
三毛
ペット
ペット
ペット
ペット
ペット
犬
犬
猫
=
ハイパー述語∈H
ペット
分類
クロ
ペット
ポチ
ペット
ミケ
ペット
クロ
犬
ポチ
犬
ミケ
猫
クロ
コリー
ポチ
チワワ
ミケ
三毛
ハイパー述語(上位分類への所属)の導出
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-25
5.10.2 属性の表現
いわゆる属性は,単項述語で 50cm(ペット(ポチ)) のように表現される.これをそのまま図
示すると,図 5-42 のようになる.さらに,集合族とハイパー関連
を用いて描き直したの
が図 5-43 である.
集合
”50cm”
集合
”25cm”
集合
”13kg”
集合
”10kg”
集合
”9kg”
クロ
ポチ
ミケ
クロ
ポチ
ミケ
25cm
13kg
10kg
9kg
50cm
45cm
集合”ペット”
クロ
ポチ
ミケ
図 5-42
単項関連による属性の表現
集合 集合族 ”身長” 集合
”50cm”
”25cm”
50cm
クロ
45cm
ミケ
ポチ
25cm
50cm
ペット
集合
集合 集合族 ”体重”
”13kg” ”10kg”
13kg
クロ
ポチ
10kg
9kg
45cm
13kg
25cm
∈H
9kg
ペット
クロ
ポチ
ミケ
身長
50cm
50cm
25cm
集合”ペット”
クロ
ポチ
ミケ
図 5-43
10kg
ペット
クロ
ポチ
ミケ
体重
13kg
10kg
9kg
∈H
ペット
集合族とハイパー関連∈H による属性の表現
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
集合
”9kg”
ミケ
5-26
5.10.3 ハイパー関連の併合と属性の簡略表記
図 5-43 のハイパー関連
を ペット に関して併合すると,図 5-44 左になる.これを同
図右のように簡略表記したものが,従来の実体関連図でいう実体集合と属性である.なお,併
合するのはハイパー関連の多重度が多対 1 のときに限られる.多対多のケースは,従来理論で
も多値(多価)属性と呼ばれており,正規化によって 2 項関連に還元される.
集合族 ”身長”
50cm
集合族 ”体重”
45cm
13kg
ペット
クロ
ポチ
ミケ
25cm
身長
50cm
50cm
25cm
体重
13kg
10kg
9kg
10kg
9kg
∈H
集合”ペット”
クロ
ポチ
ミケ
図 5-44
身長
ペット
体重
ペット
ハイパー関連の併合と属性の簡略表記
5.10.4 高階のハイパー述語の図示
「分類がペットであるポチは,属性の身長が 50cm である」に対応する高階の単項述語
属性 身長
分類 ペット ポチ
における所属関係と包含関係は,図 5-45 のように高階のハイパー述語
を使って記述され
分類
2H
属性



ペット
H
身長



ポチ

50cm
H
分類 H 属性
分類
属性
ペット
身長
ペット
体重
犬
骨数
猫
爪研数
チワワ
毛色
三毛
毛長
2
2
2
る:
図 5-45
ペット H 身長
ペット 身長
ポチ
50cm
シロ
30cm
ミケ
25cm
タロ
20cm
タマ
20cm
高階のハイパー述語
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-27
これは,図 5-46 のような実体関連図に変換される.同図には,次のハイパー述語が含まれて
いる:
① 分類
② ペット
分類:クラス階層を表す
分類:ペットの個例がどのサブクラスの個例かを表す
③ 分類
属性:クラスに固有の属性を表す高階のハイパー述語
④ 分類
身長,
⑤ ペット
身長,
② ∈H
ペット 分類
ポチ ペット
ミケ
ペット
ポチ
犬
ミケ
猫
ポチ チワワ
ミケ
三毛
∈
H
⑤
犬
骨数
ポチ
5本
④ ⊇H
分類 骨数
犬
7本
犬
5本
:クラスに固有の属性の定義域を表す
:クラスの個例が持つ固有の属性の値を表す
チワワ
シャム
猫
コリー
三毛猫
集合族
”分類”
犬
①
猫
⊆H
②
∈H
ペット
⑤
⑤
∈H
∈H
④
④
⊇H
③
⊇H
∈H2
5本
7本
50cm
20cm
集合族
”身長”
集合族
”骨数”
集合族
”属性”
図 5-46
① ⊆H
分類
分類
犬
ペット
猫
ペット
チワワ
犬
三毛
猫
⑤ ∈H
ペット 身長
ミケ
20cm
④ ⊇H
分類
身長
ペット 50cm
ペット 20cm
③
∈H2
分類
属性
ペット 身長
ペット 体重
犬
骨数
猫
研数
チワワ 毛色
三毛
毛長
高階のハイパー述語の図示
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved
5-28
5.11 関連の汎化/特化
実体だけでなく,関連にも汎化/特化の概念は適用できる.次の 2 つの命題は,同じ授業で
も,単位取得を目的とする場合(履修する)と単位取得を目的としない場合(聴講する)について記
述している.
① 学生は、授業を履修する (単位取得目的)
② 学生は、授業を聴講する (単位はもらえない)
これらを同時に表記すると,図 5-47 左になる.
聴講する
履修する
SC
SC
STCP:X=多:1
聴講する
SC
∈H
SCX
履修する
SC
学生
S
受講形態
X
成績
受講する
SC
授業
C
成績
図 5-47
学生
S
授業
C
関連の汎化と特化
ここで, 2 つの関連集合 履修する と 聴講する は成分と成立が同じであるから,図 5-47
右のように,それらを元とする集合族 受講形態
クラス 受講する
履修する, 受講する
履修する 聴講する を設定して,スーパー
聴講する に汎化することができる.履修する と
聴講する がそれぞれ異なる関連や属性を持っていてもよい――関連 履修する は,成績という
属性を持つであろう.履修する と 聴講する が排他的であることは,多重度制約を使って表現
できる.
なお,上記で実体とされている 授業 は,詳細化すれば高階の述語で記述されるものである.
これについては,後章で述べる.
Copyright © 2007-2010 by IT Consulting Co., Ltd. All Rights Reserved