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
930
データベース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
330
データベース14: B+木 & ハッシュ索引
trycycle
PRO
0
430
データマイニング - グラフ埋め込み入門
trycycle
PRO
0
62
データマイニング - ウェブとグラフ
trycycle
PRO
0
160
データベース12: 正規化(2/2) - データ従属性に基づく正規化
trycycle
PRO
0
950
データマイニング - コミュニティ発見
trycycle
PRO
0
140
データベース11: 正規化(1/2) - 望ましくない関係スキーマ
trycycle
PRO
0
930
データマイニング - ノードの中心性
trycycle
PRO
0
260
データベース10: 拡張実体関連モデル
trycycle
PRO
0
970
Other Decks in Science
See All in Science
Transport information Geometry: Current and Future II
lwc2017
0
180
Agent開発フレームワークのOverviewとW&B Weaveとのインテグレーション
siyoo
0
320
白金鉱業Meetup Vol.16_【初学者向け発表】 数理最適化のはじめの一歩 〜身近な問題で学ぶ最適化の面白さ〜
brainpadpr
11
2.3k
IWASAKI Hideo
genomethica
0
130
AIに仕事を奪われる 最初の医師たちへ
ikora128
0
880
生成検索エンジン最適化に関する研究の紹介
ynakano
2
1.3k
Trend Classification of InSAR Displacement Time Series Using SAE–CNN
satai
4
550
SciPyDataJapan 2025
schwalbe10
0
250
CV_3_Keypoints
hachama
0
200
Lean4による汎化誤差評価の形式化
milano0017
1
290
論文紹介 音源分離:SCNET SPARSE COMPRESSION NETWORK FOR MUSIC SOURCE SEPARATION
kenmatsu4
0
290
Ignite の1年間の軌跡
ktombow
0
140
Featured
See All Featured
Embracing the Ebb and Flow
colly
87
4.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Why Our Code Smells
bkeepers
PRO
338
57k
Faster Mobile Websites
deanohume
309
31k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
It's Worth the Effort
3n
187
28k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
YesSQL, Process and Tooling at Scale
rocio
173
14k
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