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
610
データベース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
データベース12: 正規化(2/2) - データ従属性に基づく正規化
trycycle
0
610
データベース11: 正規化(1/2) - 望ましくない関係スキーマ
trycycle
0
590
データベース09: 実体関連モデル上の一貫性制約
trycycle
0
590
データベース08: 実体関連モデルとは?
trycycle
0
570
データベース14: B+木 & ハッシュ索引
trycycle
0
280
データベース15: ビッグデータ時代のデータベース
trycycle
0
230
データベース06: SQL (3/3) 副問い合わせ
trycycle
0
420
データベース05: SQL(2/3) 結合質問
trycycle
0
540
データベース04: SQL (1/3) 単純質問 & 集約演算
trycycle
0
610
Other Decks in Technology
See All in Technology
生成AI×財務経理:PoCで挑むSlack AI Bot開発と現場巻き込みのリアル
pohdccoe
1
780
AIエージェント入門
minorun365
PRO
32
19k
どちらかだけじゃもったいないかも? ECSとEKSを適材適所で併用するメリット、運用課題とそれらの対応について
tk3fftk
2
220
株式会社Awarefy(アウェアファイ)会社説明資料 / Awarefy-Company-Deck
awarefy
3
11k
ウォンテッドリーのデータパイプラインを支える ETL のための analytics, rds-exporter / analytics, rds-exporter for ETL to support Wantedly's data pipeline
unblee
0
140
AI自体のOps 〜LLMアプリの運用、AWSサービスとOSSの使い分け〜
minorun365
PRO
8
660
実は強い 非ViTな画像認識モデル
tattaka
3
1.3k
Ruby on Railsで持続可能な開発を行うために取り組んでいること
am1157154
3
160
ABWG2024採択者が語るエンジニアとしての自分自身の見つけ方〜発信して、つながって、世界を広げていく〜
maimyyym
1
190
Pwned Labsのすゝめ
ken5scal
2
480
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
19k
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
150
Featured
See All Featured
Practical Orchestrator
shlominoach
186
10k
Side Projects
sachag
452
42k
Mobile First: as difficult as doing things right
swwweet
223
9.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Done Done
chrislema
182
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Raft: Consensus for Rubyists
vanstee
137
6.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
260
Typedesign – Prime Four
hannesfritz
40
2.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Transcript
実体関連モデル(3/3) ⼭本 祐輔 名古屋市⽴⼤学 データサイエンス学部 yusuke_yamamoto@acm.org 第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