2. æ¦å¿µã¢ãã«
Transcription
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