Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベース08: 実体関連モデルとは?
Search
Y. Yamamoto
PRO
June 09, 2025
Science
0
940
データベース08: 実体関連モデルとは?
1. データモデリングの流れ
2. 実体関連モデル
講義ノートURL
https://dbnote.hontolab.org/content/er-model/01.html
Y. Yamamoto
PRO
June 09, 2025
Tweet
Share
More Decks by Y. Yamamoto
See All by Y. Yamamoto
データベース15: ビッグデータ時代のデータベース
trycycle
PRO
0
360
データベース14: B+木 & ハッシュ索引
trycycle
PRO
0
470
データマイニング - グラフ埋め込み入門
trycycle
PRO
0
88
データマイニング - ウェブとグラフ
trycycle
PRO
0
180
データベース12: 正規化(2/2) - データ従属性に基づく正規化
trycycle
PRO
0
980
データマイニング - コミュニティ発見
trycycle
PRO
0
160
データベース11: 正規化(1/2) - 望ましくない関係スキーマ
trycycle
PRO
0
950
データマイニング - ノードの中心性
trycycle
PRO
0
270
データベース10: 拡張実体関連モデル
trycycle
PRO
0
990
Other Decks in Science
See All in Science
AIに仕事を奪われる 最初の医師たちへ
ikora128
0
980
07_浮世満理子_アイディア高等学院学院長_一般社団法人全国心理業連合会代表理事_紹介資料.pdf
sip3ristex
0
620
Explanatory material
yuki1986
0
410
ランサムウェア対策にも考慮したVMware、Hyper-V、Azure、AWS間のリアルタイムレプリケーション「Zerto」を徹底解説
climbteam
0
120
CV_5_3dVision
hachama
0
150
Machine Learning for Materials (Challenge)
aronwalsh
0
340
Ignite の1年間の軌跡
ktombow
0
160
統計的因果探索: 背景知識とデータにより因果仮説を探索する
sshimizu2006
4
1k
システム数理と応用分野の未来を切り拓くロードマップ・エンターテインメント(スポーツ)への応用 / Applied mathematics for sports entertainment
konakalab
1
400
My Little Monster
juzishuu
0
110
Hakonwa-Quaternion
hiranabe
1
130
Cross-Media Technologies, Information Science and Human-Information Interaction
signer
PRO
3
31k
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Become a Pro
speakerdeck
PRO
29
5.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
For a Future-Friendly Web
brad_frost
180
9.9k
How to Ace a Technical Interview
jacobian
280
24k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Thoughts on Productivity
jonyablonski
70
4.9k
A better future with KSS
kneath
239
17k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.2k
Transcript
実体関連モデル(1/3) ⼭本 祐輔 名古屋市⽴⼤学 データサイエンス研究科
[email protected]
第8回 データベース 〜 実体関連モデルとは?
講義ノート https://bit.ly/3xqTSds
draw.io: 実体関連図を書くツール https://app.diagrams.net/
データモデリングの流れ 1 Flow of Data Modeling
関係データモデル あるゆるデータを表(=関係)として表現するモデル - データに冗⻑性がない - データのもつ⼀貫性制約(正しさに関する制約)が保持するのが容易
関係スキーマ 関係 関係スキーマ インスタンス = + 関係の名前と関係がもつ属性,⼀貫性制約に関する情報 (" A! ,
… , A" , {'! , … , '# }) 記法 関係名 属性 ⼀貫性制約の集合 " A! , … , A" ⼀貫性制約が⾃明 or 考慮しないとき
関係データモデル上の⼀貫性制約 一貫性制約 ドメイン制約 キー制約 参照制約 データ従属性 実世界を正しく反映すべく DB上のデータが満たすべき規則 … ⼀貫性制約を考慮して関係スキーマの定義や関係の分解を⾏う
典型的な関係データモデル 学生ID 姓 名 入学年 所属 s00001 川澄 桜 2023
A学部 s00002 山畑 滝子 2024 B学部 s00003 田辺 通 2024 C学部 科目ID 科目名 開講年度 c0001 線形代数 2023 c0002 線形代数 2024 c0003 統計学入門 2024 科目ID 学生ID 成績 c0001 s00001 不可 c0002 s00001 良 c0002 s00002 優 c0003 s00003 可 学⽣ 科⽬ 履修 … … … データの正しさを担保するためにデータを複数の表に分割
典型的な関係データモデル 学生ID 姓 名 入学年 所属 s00001 川澄 桜 2023
A学部 s00002 山畑 滝子 2024 B学部 s00003 田辺 通 2024 C学部 科目ID 科目名 開講年度 c0001 線形代数 2023 c0002 線形代数 2024 c0003 統計学入門 2024 科目ID 学生ID 成績 c0001 s00001 不可 c0002 s00001 良 c0002 s00002 優 c0003 s00003 可 学⽣ 科⽬ 履修 … … … データの正しさを担保するためにデータを複数の表に分割 いきなり完全無欠な関係スキーマを 設計するのは難しい・・・
データモデリングの流れ 概念モデリング 論理モデリング 対象世界を ざっくりとモデル化 DBMSに応じて 概念モデルを変換 実体関連モデル 関係データモデル !
A! , … , A" ! A! , … , A" ! A! , … , A"
実体関連モデル 2 Entity-Relationship Model
実体関連モデルとは? 商品 商品ID 商品名 価格 発売⽇ ユーザ ユーザ名 ⽒名 email
住所 購⼊希望 登録⽇ 製造 メーカー 企業名 email TEL 対象とする実世界のデータのすべてを 実体と関連の2種類で分類・記述する概念モデル 実体関連モデルは実体関連図(ER図)として表現される
実体(1/2) 実体 実体集合 データ対象をモデル化しようとしたときに,独⽴した存在 として⼀意に識別可能な物体や事象 - 同じ種類の実体の集合 - 実体集合内の集合は⼀意に特定できなければならない ⼭本祐輔
⼤島裕明 ⽥中克⼰ 研究者 … はーいお茶 午前の紅茶 健康⻨茶 商品 … 線形代数 データベース ⼈⼯知能 科⽬ … 実体 概念的なものも識別可能な事象であれば「実体」となりえる
実体(2/2) 実体型 - 実体集合の名前や属性,⼀貫性制約を定めた型 - 実体型は1つ以上の属性をもつ - 実体集合内の実体を⼀意に特定する極⼩の属性集合を 主キーと呼ぶ 商品
商品ID 商品名 価格 実体型は 四⾓で書く 属性は丸で囲い 実体型と線でつなぐ 主キーには 下線を引く
実体関連図における実体型の解釈 商品 商品ID 商品名 価格 商品ID = P0001 商品名 =
はーいお茶 価格 = 150 商品ID = P0002 商品名 = PONオレンジ 価格 = 180 実体集合「商品」 実体型「商品」 実体型によって注目する実体の特徴が決まる 「実体」は主キーで⼀意に特定できなければならない
Q1: 実体(1/3) Q. Orange Musicは仮想のサブスクリプション型 ⾳楽ストリーミングサービスである. Orange Musicでは「ユーザ」は「ユーザID」 「⽒名」「性別」「誕⽣⽇」「電話番号」を もつ.この状況を実体関連図で表現せよ.
ユーザ ユーザID ⽒名 性別 誕⽣⽇ 電話番号 A.
Q1: 実体(1/3) Q. Orange Musicは仮想のサブスクリプション型 ⾳楽ストリーミングサービスである. Orange Musicでは「ユーザ」は「ユーザID」 「⽒名」「性別」「誕⽣⽇」「電話番号」を もつ.この状況を実体関連図で表現せよ.
ユーザ ユーザID ⽒名 性別 誕⽣⽇ 電話番号 A.
Q2: 実体(2/3) Q. Orange Musicでは「楽曲」は「楽曲ID」 「楽曲名」「ジャンル」「⻑さ」をもつ. この状況を実体関連図で表現せよ. 楽曲 楽曲ID 楽曲名
ジャンル ⻑さ A.
Q2: 実体(2/3) Q. Orange Musicでは「楽曲」は「楽曲ID」 「楽曲名」「ジャンル」「⻑さ」をもつ. この状況を実体関連図で表現せよ. 楽曲 楽曲ID 楽曲名
ジャンル ⻑さ A.
Q3: 実体(3/3) Q. Orange Musicにおける実体型「楽曲」の 実体の例を2,3挙げよ.属性値は適当でOK. 楽曲ID : OM-12235 楽曲名:
Room 335 ジャンル: ジャズ ⻑さ: 5分39秒 楽曲ID : OM-67235 楽曲名: アイドル ジャンル: J-POP ⻑さ: 3分33秒 A.
Q3: 実体(3/3) Q. Orange Musicにおける実体型「楽曲」の 実体の例を2,3挙げよ.属性値は適当でOK. 楽曲ID : OM-12235 楽曲名:
Room 335 ジャンル: ジャズ ⻑さ: 5分39秒 楽曲ID : OM-67235 楽曲名: アイドル ジャンル: J-POP ⻑さ: 3分33秒 A.
関連(1/2) 関連 - 複数の実体間のつながりを表す - 関連はつながっている実体によって⼀意に特定できる 関連集合 - 同じ種類の関連の集合 -
関連集合内の集合は⼀意に特定できなければならない A 商品X B ユーザAは商品Xを 「購⼊希望」登録 商品Y ユーザBは商品Yを 「購⼊希望」登録 関連集合「購⼊希望」
関連(2/2) 関連型 - 関連集合の名前や属性,⼀貫性制約を定めた型 - 関連型は属性をもつことがある(持たなくてもよい) 商品 商品ID 商品名 価格
発売⽇ ユーザ ユーザ名 ⽒名 email 住所 購⼊希望 登録⽇ 関連型は ひし形で書く 属性があれば 丸で囲んで書く
実体関連図における関連型の解釈(1/2) 商品 商品ID 商品名 価格 発売⽇ ユーザ ユーザ名 ⽒名 email
住所 購⼊希望 登録⽇ A 商品X ユーザ名「A」のユーザは 商品ID「PXXX01」の商品を 2023年9⽉25⽇に購⼊希望登録 B 商品Y ユーザ名「B」のユーザは 商品ID「PYYY01」の商品を 2023年7⽉15⽇に購⼊希望登録 関連集合「購⼊希望」
関連 関連 - 複数の実体間のつながりを表す - 関連はつながっている実体によって⼀意に特定できる 関連集合 - 同じ種類の関連の集合 -
関連集合内の集合は⼀意に特定できなければならない A 商品X B ユーザAは商品Xを 「購⼊希望」登録 商品Y ユーザBは商品Yを 「購⼊希望」登録 関連集合「購⼊希望」 ある実体の組み合わせによって 特定できる関連は唯⼀ひとつ
実体関連図における関連型の解釈(2/2) 商品 ユーザ 購⼊希望 ユーザ 購⼊希望 商品 P1 P2 P3
P4 P5 U1 U2 U3 U4 U1,P1 U2,P2 U2,P3 U3,P2 U1,P4 U4,P4 U4,P1 × ある実体の組み合わせによって特定できる関連は唯⼀ひとつ
Q4: 関連(1/3) Q. Orange Musicでは「アーティスト」は 「アーティストID」「アーティスト名」をもつ. 「アーティスト」は作成した「楽曲」をOrange Musicに「公開」する.「公開」時には「公開⽇」 が記録される.この状況を実体関連図で表現せよ. アーティスト
アーティストID アーティスト名 公開 公開⽇ 楽曲 楽曲ID 楽曲名 ジャンル ⻑さ A.
Q4: 関連(1/3) Q. Orange Musicでは「アーティスト」は 「アーティストID」「アーティスト名」をもつ. 「アーティスト」は作成した「楽曲」をOrange Musicに「公開」する.「公開」時には「公開⽇」 が記録される.この状況を実体関連図で表現せよ. アーティスト
アーティストID アーティスト名 公開 公開⽇ 楽曲 楽曲ID 楽曲名 ジャンル ⻑さ A.
Q5: 関連(2/3) Q. Orange Musicでは「ユーザ」は「プレイリスト」 を「作成」することがある.「プレイリスト」は 「プレイリストID」「プレイリスト名」をもつ. プレイリスト「作成」時には「作成⽇」が記録さ れる.作成された「プレイリスト」には「楽曲」 を「追加」することができる.「追加」時には
「追加⽇」が記録される. この状況を実体関連図で表現せよ.
Q5: 関連(2/3) A.
クイズ Q. 学⽣情報を管理するデータベースを検討中 のあなた.あなたの⼤学ではどの学⽣も § ⾃分の⾯倒を⾒てくれる「先輩」学⽣ § ⾯倒を⾒てあげる「後輩」学⽣ が割り当てられているとしよう. この状況を実体関連モデルで表現せよ.
「先輩学⽣」と「後輩学⽣」を実体として扱うと… 先輩学⽣ 学⽣ID ⽒名 所属 世話 先輩学⽣ 後輩学⽣ ⼭畑滝⼦ ⽥辺通
北千種 ⼭畑滝⼦ 川澄桜 世話 後輩学⽣ 学⽣ID ⽒名 所属 実体・関連集合の要素 ⼆重に情報を管理することになるのはマズい…
同⼀実体集合間の関連: 役割の付与 実体型と関連型をつなぐ直線に役割を明⽰する ことで不要な実体型を除く 学⽣ 学⽣ID ⽒名 所属 世話 先輩
後輩 学⽣ ⽥辺通 北千種 ⼭畑滝⼦ 川澄桜 世話 先輩 先輩 後輩 後輩 先輩 後輩
Q6: 関連(3/3) Q. Orange Musicの「ユーザ」は別の「ユーザ」を 「フォロー」することがある.「フォロー」時に は「フォロー⽇」が記録される. この状況を実体関連図で表現せよ. ユーザ フォロー
フォローワー フォロー⽇ フォローイー A.
Q6: 関連(3/3) Q. Orange Musicの「ユーザ」は別の「ユーザ」を 「フォロー」することがある.「フォロー」時に は「フォロー⽇」が記録される. この状況を実体関連図で表現せよ. ユーザ フォロー
フォローワー フォロー⽇ フォローイー A.
実体・関連を決める際の経験則 Peter Chen, “English, Chinese and ER diagrams”, Data &
Knowledge Engineering, Vol. 23, No.1, 1997. 普通名詞 実体型 固有名詞 実体 他動詞 関連型 ⾃動詞 属性 形容詞 実体の属性 副詞 関連の属性
回 実施日 トピック 1 04/14 ガイダンス:データベースを使わない世界 2 04/21 データベースの概念 3
04/28 関係データモデル 4 05/12 SQL (1/3) 5 05/19 SQL (2/3) 6 05/26 SQL (3/3) 7 06/02 SQL演習 – レポート課題1 8 06/09 実体関連モデル (1/3) 9 06/16 実体関連モデル (2/3) 10 06/23 実体関連モデル (3/3) 11 06/30 正規化 (1/2) 12 07/07 正規化 (2/2) 13 07/14 データベース設計演習 – レポート課題2 14 07/21 索引付け 15 07/28 授業の振り返り or 発展的話題 16 08/04 期末試験 今後の予定 38