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
データベース10: 拡張実体関連モデル
Search
Y. Yamamoto
June 24, 2024
Technology
0
630
データベース10: 拡張実体関連モデル
1. 汎化・継承
2. n項関連
講義ノートURL
https://dbnote.hontolab.org/content/er-model/03.html
Y. Yamamoto
June 24, 2024
Tweet
Share
More Decks by Y. Yamamoto
See All by Y. Yamamoto
機械学習 - pandas入門
trycycle
0
2
データベース12: 正規化(2/2) - データ従属性に基づく正規化
trycycle
0
630
データベース11: 正規化(1/2) - 望ましくない関係スキーマ
trycycle
0
610
データベース09: 実体関連モデル上の一貫性制約
trycycle
0
600
データベース08: 実体関連モデルとは?
trycycle
0
590
データベース14: B+木 & ハッシュ索引
trycycle
0
290
データベース15: ビッグデータ時代のデータベース
trycycle
0
240
データベース06: SQL (3/3) 副問い合わせ
trycycle
0
430
データベース05: SQL(2/3) 結合質問
trycycle
0
550
Other Decks in Technology
See All in Technology
LangGraphを使ったAIエージェント実装
iwakiyusaku
1
180
AIが変えるソフトウェア開発__未来のアジャイルチームとは__.pdf
buchirei
0
330
なぜ「Event Sourcing」を選択したのか〜事実に基づくことの重要性〜/Why did we choose "Event Sourcing"?
bitkey
1
360
Go の analysis パッケージで自作するリファクタリングツール
kworkdev
PRO
1
220
Github Copilot Chatは本日よりケ◯ロ軍曹でありま〜〜〜すッ!!!(たぶん)
yu_yukk_y
1
120
AI活用の壁を超える! 開発組織への普及の秘訣
kouryou
0
570
Streamlitの細かい話
nishikawadaisuke
13
1.7k
【ServiceNow SNUG Meetup LT deck】ServiceNow「検索性の進化」ZingからNow Assistまで
niwato
1
270
セマンティックレイヤー入門
ikkimiyazaki
7
1.4k
Alpine.js を活用した Laravel MPA フロントエンド最適化戦略 / Alpine.js MPA
tzmfreedom
1
580
みんなで育てるNewsPicksのSLO
troter
4
1k
Oracle Cloud Infrastructure:2025年3月度サービス・アップデート
oracle4engineer
PRO
0
240
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
A Philosophy of Restraint
colly
203
16k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
30
1.1k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
KATA
mclloyd
29
14k
Visualization
eitanlees
146
15k
Making Projects Easy
brettharned
116
6.1k
Transcript
実体関連モデル(3/3) ⼭本 祐輔 名古屋市⽴⼤学 データサイエンス学部
[email protected]
第10回 データベース 2024年6月24日 〜
拡張実体関連モデル & n項関連
講義ノート https://bit.ly/3xqTSds
draw.io: 実体関連図を書くツール https://app.diagrams.net/
汎化・継承 1 Generalization/Inheritance
クイズ Q. 山の畑大学において大学構成員である「学生」 および「教員」の情報を管理する実体関連モデル を考えたい. § 実体型「学生」は属性「山の畑ID」「氏名」 「生年月日」「所属」と「入学年」をもつ § 実体型「教員」と属性「山の畑ID」「氏名」
「生年月日」「所属」と「研究者ID」「職階」をもつ としよう. 実体型「学生」「教員」を 実体関連モデルで表現せよ.
素直にモデリングすると 学⽣ 所属 ⼭の畑 ID ⽒名 ⽣年 ⽉⽇ ⼊学年 教員
所属 ⼭の畑 ID ⽒名 ⽣年 ⽉⽇ 研究者 ID 職階 ⼤半の属性は共通している… そもそも学⽣も教員も⼭の畑⼤学の構成員…
より上位の概念である「⼤学構成員」との⽐較(1/2) 学⽣ 所属 ⼭の畑 ID ⽒名 ⽣年 ⽉⽇ ⼊学年 ⼤学構成員
所属 ⼭の畑 ID ⽒名 ⽣年 ⽉⽇ VS. 「学⽣」は「⼤学構成員」に属性「⼊学年」を加えた実体型
より上位の概念である「⼤学構成員」との⽐較(2/2) 教員 所属 ⼭の畑 ID ⽒名 ⽣年 ⽉⽇ 研究者 ID
⼤学構成員 所属 ⼭の畑 ID ⽒名 ⽣年 ⽉⽇ VS. 「教員」は「大学構成員」に属性「研究者ID」「職階」を加えた実体型 職階 差分だけをうまく扱えばよいのでは!?
汎化階層(IsA階層) ある実体型の属性を継承し、差分の属性を 追加して別の実体型を定義する方法 ひきつぎ ⼤学構成員 所属 ⼭の畑 ID ⽒名 ⽣年
⽉⽇ IsA 学⽣ ⼊学年 IsA 教員 研究者 ID 職階 差分属性のみ書く 差分属性 のみ書く 継承した ことを⽰す 継承先の実体集合は継承元の実体集合に包含される
Q1: 汎化・継承 Q. Orange Musicは追加サービスとして 「プレミアムユーザ」サービスを開始した. Orange Musicの「ユーザ」は追加料⾦を⽀払 うことで「プレミアムユーザ」になることが できる.
「プレミアムユーザ」は最⼤100曲 まで「楽曲」を「ダウンロード」できる. 「ダウンロード」には「ダウンロード⽇」を 記録する. 前回の講義で作成した実体関連図に,上記 設定を反映せよ.
前回の講義で作成したER図
A. A1. 汎化・継承
N項関連 2 N-ary relationship
クイズ Q. X大学では4年生になると「学生」は研究室配属 される.「研究室配属」が行われると,「学生」には - 活動のための「学生部屋」 - 「指導教員」 が割り当てられる. この状況を実体関連モデルで表現せよ.
n項関連(1/2) 関連型は3個以上の実体型とつながることが可能 部屋 教員 学⽣ 研究室 配属 A⽒ B⽒ C⽒
D⽒ 部屋 8601号室 8501号室 8603号室 教員 桜⼭ ⼭畑 ⽥辺 学⽣
n項関連(2/2) 関連型は3個以上の実体型とつながることが可能 部屋 教員 学⽣ 研究室 配属 A⽒ B⽒ C⽒
D⽒ 部屋 8601号室 8501号室 8603号室 教員 桜⼭ ⼭畑 ⽥辺 学⽣ 3項以上のn項関係は多重度の把握が難しいので注意すること
Q2: n項関連(1/2) Q. Orange Musicでは追加サービスとして,アー ティストがコンサート等のイベントで演奏し た曲⽬(いわゆるセットリスト)を閲覧でき るサービスを開始することにした. このサー ビスでは,「アーティスト」がどの「楽曲」
をどの「イベント」で「演奏」したのかを閲 覧できる. 「イベント」は「イベント名」 「場所」「⽇時」を情報としてもつ. また, 「演奏」には「演奏番号」が記録される. な お,「アーティスト」が「演奏」した「楽 曲」は他者が制作した楽曲も含まれる. 上記設定に関する実体関連図を作成せよ. なお,本クイズに関係のない実体/関連は書か なくてよい.
A2: 回答 A.
Q3: n項関連(2/2) Q. 第9回の講義資料で⽤いたオンラインショッピ ングの例に戻ろう. このオンラインショッピングサイトでは, 「ユーザ」がどの「商品」を「購⼊」したか を記録している. 購⼊記録においては,購⼊ した「商品」の「数量」や「購⼊⽇」の情報
を記録している. 上記設定に関する実体関連図を作成せよ. なお,本クイズに関係のない実体/関連は書か なくてよい.
以前作成した実体関連図 商品 商品ID 商品名 価格 発売⽇ ユーザ ユーザ名 ⽒名 email
住所 購⼊希望 登録⽇ 製造 メーカー 企業名 email TEL ショッピングサイトにおける「ユーザが購⼊希望の商品」 「商品の製造メーカー」の情報の管理
A3: 回答? ユーザ 購⼊ 商品 P1 P2 U1 U2 U1,P1
U1,P2 U2,P1 U1,P1 関連は実体のペアで⼀意に特定されないとダメ ダメ!!
A3: 回答 A. 実体「伝票」を使って購⼊機会を別々に管理できるように
伝票 S1 S2 S3 S4 A3: 回答の解釈 ユーザ 購⼊ 商品
P1 P2 U1 U2 U1,S1 U1,S2 U2,S3 明細 S1,P1 S2,P2 S3,P2 S4,P1 U1,S4 S4,P2 以前購⼊した商品を再度購⼊可能に 1つの伝票で2種類以上の商品の購⼊を記録可能に
回 実施日 トピック 1 04/15 ガイダンス:データベースを使わない世界 2 04/22 データベースの概念 3
04/29(祝) 関係データモデル 4 05/13 SQL (1/3) 5 05/20 SQL (2/3) 6 05/27 SQL (3/3) 7 06/03 SQL演習 – レポート課題1 8 06/10 実体関連モデル (1/3) 9 06/17 実体関連モデル (2/3) 10 06/24 実体関連モデル (3/3) 11 07/01 正規化 (1/2) 12 07/08 正規化 (2/2) 13 07/15(祝) データベース設計演習 – レポート課題2 14 07/22 索引付け 15 07/29 NoSQL 16 08/05 期末試験 今後の予定 24