2. 概念モデル

2. 概念モデル
講師: 大川 昌弘
[email protected]
更新日: 2015/04/14
1
概念モデル
• 概念設計
– 対象実世界の情報構造を抽象化
• 概念モデル
– 実体関連モデル
• ERモデルとも呼ぶ (ER: Entity Relationship)
• 実体関連図(ER図)
– 書き方のルール: IDEF1X, IE, Peter Chenによる表記法など
(本講義では、「Peter Chenによる表記法」を主に扱う)
2
実体関連モデル(ERモデル)
3
実体関連モデルの概念 (1/2)
• 実体 (entity)
– 抽象化された対象
• 例:商品A, 商品B, 顧客A, 顧客B, …
• 実体集合 (entity set)
– 同一種類の実体の集まり
• 例:商品A,商品Bは「商品」、顧客A,顧客Bは「顧客」ととらえ
ることができる
• 属性 (attribute)
– 実体集合に属する実体の共通の特徴
• 例:「商品」の属性は「商品名」、「価格」など
4
実体集合と属性
• Peter Chenによる表記法
商品ID
商品名
価格
商品
属性
実体集合
• IDEF1X, IE
商品
商品ID
商品名
価格
(*) 「商品ID」はキー
実体集合
属性
5
実体関連モデルの概念 (2/2)
• 関連 (relationship)
• 関連集合 (relationship set)
– 2つ以上の実体集合の相互関係
• 例:実体集合「出版社」と「本」の関連集合は「出版す
る」
6
実体集合と関連集合
• Peter Chenによる表記法
出版社名
出版社
ISBN番号
出版する
タイトル
価格
本
関連集合
7
実体集合と関連集合
• IDEF1X
本
出版社
出版社
出版する
ISBN番号
タイトル
価格
出版社名
関連集合
• IE
本
出版社
出版社
出版する
出版社名
関連集合
ISBN番号
タイトル
価格
8
キー
• キーとなる属性
– その属性値から実体が特定できるもの
(2つ以上の実体が同じ値をとることがないもの)
• 属性「出版社名」は実体集合「出版社」のキーとなり得る
• 属性「ISBN番号」は実体集合「本」のキーとなり得る
• すべての実体集合にはキーが必要
• キーは、属性に下線を引いて表す
出版社名
出版社
ISBN番号
出版する
タイトル
価格
本
9
関連の多重度 (1対多)
• 関連の多重度
– 関連する2つの実体集合のうち、それぞれ、何個の実体と関連
するかを表す
• 例:「出版社」と「本」の場合、「出版社」は複数の「本」を出
版し、「本」は必ず1つの「出版社」に属すとすると「出版社」
と「本」は、1対多の関連であり、以下のように表記する
出版社名
出版社
タイトル
ISBN番号
1
出版する
N
価格
本
10
関連の多重度 (1対多)
• 1対多の1の側に矢印を書いて表すこともできる
– 下記、図1は図2のように表すことができる
• 図1
出版社
1
出版する
N
本
• 図2
出版社
出版する
本
11
関連の多重度 (1対多)
• 前ページで述べた実体集合「出版社」と「本」の実体の関連を図示すると
以下のようになる
出版社
本
12
関連の多重度 (多対多)
• 例:「顧客」が「本」を購入する場合、「顧客」は複数の
「本」を購入することができ、「本」は複数の「顧客」に
購入されることができるので、「顧客」と「本」は、多対
多の関連であり、以下のように表記する
顧客ID
顧客名
顧客
N
タイトル
ISBN番号
購入する
M
価格
本
13
関連の多重度 (多対多)
• 前ページで述べた実体集合「顧客」と「本」の実体の関連を図示すると以
下のようになる
顧客
本
14
関連の多重度 (1対1)
• 例:「国」と「首都」を実体集合とすると、「国」は1つの
首都を持ち、「首都」は1つの「国」に属すので、「国」と
「首都」は、1対1の関連であり、以下のように表記する
国ID
国名
国
1
首都ID
政府機関
の都市
1
首都名
首都
15
関連の多重度 (1対1)
• 前ページで述べた実体集合「国」と「首都」の実体の関連を図示すると以
下のようになる
国
首都
17
多重度の厳密化 (1/2)
• 例:1つの「科目」に0個以上の「実習課題」がある場合
科目
1
実習
N
実習課題
• 上記Nは0も含むことになる。UMLの表記方法を取り入れると、以
下のように表現できる
– 1つの「科目」は、0個から無制限個(*)の「実習課題」がある
科目
1
実習
0..*
実習課題
19
多重度の厳密化 (2/2)
• 例:
– 1人の「学生」が履修する「科目」の数は、10個以上
– 1つの「科目」を受講する「学生」は、0人から60人
学生
0..60
履修する
10..*
科目
• その他のルール
– 1..1 は、1 と記す。特定の値のみの場合も、その値のみを記す
– 1..* は、* と記す
20
多項関連 (multiway relationship)
• 3つ以上の実体集合の関連付け
• 例:「顧客」が「本」の「書評」を書く
顧客ID
顧客名
顧客
書評ID
書評する
書評
書評
本
ISBN番号
タイトル
価格
21
関連の属性
• 関連によって生じる属性
– 関連に属性を付ける
購入日
顧客
0..*
購入する
0..*
本
27
関連の属性の除去
• 属性の値を持つ実体集合を定義し、多項関連とすることが
できる
購入ID
購入日
購入情報
顧客
購入する
本
28
役割 (role)
• 同一実体集合間の関連
対象科目 1..*
科目
履修要件
前提科目 0..*
上位部門 1
部門
部門関連
サブ部門 0..*
29
弱実体集合 (weak entity set)
•
弱実体集合の実体は、他の実体集合(所有実体集合)との関連を通して識別
•
例:「選手」は「チーム」に所属し、「背番号」は「チーム」ごとに割り振られる
チーム名
チーム
•
•
•
名前
背番号
1
所属する
0..*
選手
弱実体集合は、二重の四角で表記
弱実体集合に対する関連は、二重の菱形で表記
弱実体集合の属性で、所有実体集合のキーと組み合わせて弱実体集合のキー
となるものを部分キーといい、破線で表記する
30
END
34