Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
【基本情報対策】正規化とE-R図
Search
赤神青空
PRO
October 30, 2026
Video
Programming
21
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【基本情報対策】正規化とE-R図
赤神青空
PRO
October 30, 2026
Video
More Decks by 赤神青空
See All by 赤神青空
Claude API の temperature が消えた?
akagami
PRO
0
8
GPT-6.1 Terra とは何か
akagami
PRO
0
20
【力学 #2】空気抵抗のある落下と終端速度
akagami
PRO
0
9
【基本情報対策】SQLとトランザクション
akagami
PRO
0
21
PHP2Shell とは何か
akagami
PRO
0
20
【力学 #1】投げ上げの運動方程式を解く
akagami
PRO
0
19
【AIニュース】GPT-6 で COBOL の移行はどこまでできる?
akagami
PRO
0
40
【基本情報対策】稼働率と冗長化
akagami
PRO
0
27
【AWSの新サービス】AWS Lambda Web Functions とは何か
akagami
PRO
0
30
Other Decks in Programming
See All in Programming
Spec-driven Development with AI
simas
PRO
0
2.2k
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.1k
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.2k
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
390
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
170
ActionController meets Protocol Buffers
sorah
1
750
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
140
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
110
AI Augmentation Techniques with Liberty
ivargrimstad
0
170
No More NoSuchMethodError
exoego
1
120
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
180
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.5k
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
510
The untapped power of vector embeddings
frankvandijk
2
2k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
How STYLIGHT went responsive
nonsquared
100
6.3k
Become a Pro
speakerdeck
PRO
31
6.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Being A Developer After 40
akosma
PRO
92
590k
Prompt Engineering for Job Search
mfonobong
0
560
Raft: Consensus for Rubyists
vanstee
143
7.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Transcript
2026年10月 正規化とE-R図 基本情報技術者試験 対策 #9 赤神青空
▪並列は、2台とも止まったときだけ止まる 前回のクイズの答えは「C」 前回のクイズ 稼働率 0.9 の装置を2台、並列につないだ システムの稼働率は? 並列は、どちらか1台が動けば動く。 ⽌まるのは2台とも⽌まったときで、 (1−0.9)×(1−0.9)=0.01。
稼働率は 1−0.01=0.99 答えは C 今ココ おさらい . A 直列と取り違えたとき(0.9×0.9) . B 1台のときのまま . C 1−(1−0.9)×(1−0.9) . D ⾜してしまったとき。稼働率は1を超えない 2/17
▪正規化とE-R図、テーブル設計の基本 今回の話 ① E-R図とキー エンティティ‧関連‧主キー ② 正規化 第1〜第3正規形 ③ 実務では
設計のレビューと外部キー制約 今回いちばん持ち帰ってほしいこと 正規化は、1つの事実を1か所にだけ書くための⼿順 今ココ はじめに 3/17
▪エンティティ・属性・リレーションシップ E-R図 顧客 顧客番号 顧客名 多 1対多 受注 受注番号 受注⽇
多 多 多対多 商品 商品番号 商品名 単価 エンティティ 管理したい対象(箱) 属性 エンティティが持つ項⽬(箱の中) リレーションシップ エンティティどうしの関連(線) 1つの受注に商品がいくつも、1つの商品も受注がいくつも = 多対多 今ココ E-R図 4/17
▪間にエンティティを挟んで、1対多を2つにする 多対多は、連関エンティティで分ける 多対多のまま 受注 多 数量は、どこに書く? 多 商品 「どの受注で、どの商品を何個」は、受注にも商品にも置けない 連関エンティティで分ける
受注 多 受注明細 数量 多 商品 多対多を、1対多の2つに分ける 今ココ E-R図 5/17
▪行を決める列と、ほかの表を指す列 主キー・候補キー・外部キー 顧客 顧客番号 C C 受注 受注番号 主キー 顧客名
⻘葉商店 ⼭⽥書店 受注⽇ / / / ⾏を1つに決める列(または列の組) 重複できず、空(NULL)にもできない 候補キー 顧客番号 C C C 実線の下線:主キー 破線の下線:外部キー 今ココ キー ⾏を1つに決められる、最⼩限の列(の組) 主キーは、候補キーの中から1つ選んだもの 外部キー ふつうは、ほかの表の主キーを参照する列 受注の顧客番号は、顧客の顧客番号を指す 6/17
▪1つの受注の行に、商品が繰り返し入っている 正規化する前の受注の表 受注番号 受注⽇ 顧客番号 顧客名 / C ⻘葉商店 /
/ C C ⼭⽥書店 ⻘葉商店 繰り返し(1つの受注に、商品が何個も) 商品番号 P P P P 商品名 ノート ペン ノート 消しゴム 単価 数量 繰り返し項⽬がある形 = ⾮正規形 このままでは、どのマスにも値が1つだけ、という関係データベースの表の形にならない 今ココ 正規化 7/17
▪繰り返しをなくして、1行に1つの商品にする 第1正規形 受注番号 商品番号 P P P P 受注⽇ /
/ / / 顧客番号 C C C C 顧客名 ⻘葉商店 ⻘葉商店 ⼭⽥書店 ⻘葉商店 商品名 ノート ペン ノート 消しゴム 単価 数量 第1正規形:どのマスにも値は1つだけ 繰り返しをなくし、1⾏に1つの商品にした 主キーは、受注番号と商品番号の組 今ココ 正規化 8/17
▪ある項目が決まると、別の項目が1つに決まる 関数従属 X → Y:X の値が決まると、Y の値が1つに決まる(Y は X に関数従属する)
商品番号 商品名‧単価 受注番号 受注⽇‧顧客番号 顧客番号 受注番号+商品番号 数量 2つそろって、はじめて決まる 今ココ 正規化 P なら、いつもノート‧200円 顧客名 9/17
▪部分関数従属をなくす 第2正規形 主キー ⼀部だけで決まる 受注⽇‧顧客番号‧顧客名 受注 受注番号 商品番号 全体で決まる ⼀部だけで決まる
数量 商品名‧単価 主キーの⼀部だけで決まる項⽬がある = 部分関数従属 受注明細 商品 受注番号 受注⽇ 顧客番号 顧客名 受注番号 商品番号 数量 商品番号 商品名 単価 実線の下線:主キー 破線の下線:外部キー 今ココ 正規化 10/17
▪推移関数従属をなくす 第3正規形 受注(第2正規形) 受注番号 受注⽇ 主キーで決まる 顧客番号 顧客名 顧客番号で決まる 受注番号
→ 顧客番号 → 顧客名 キーではない項⽬(顧客番号)を経由して決まる = 推移関数従属 受注 顧客 受注番号 受注⽇ 顧客番号 受注には、顧客番号だけを残す(外部キー) 今ココ 正規化 顧客番号 顧客名 実線の下線:主キー 破線の下線:外部キー 11/17
▪1つの事実が、1か所にだけある 第3正規形まで分けた結果 顧客 顧客番号 C C 顧客名 ⻘葉商店 ⼭⽥書店 多
受注 受注番号 受注⽇ 顧客番号 / C / C / C 1つの事実を、1か所にだけ書く 多 受注明細 受注番号 商品番号 数量 P P P P 多 商品 商品番号 商品名 単価 P ノート P ペン P 消しゴム 実線の下線:主キー 破線の下線:外部キー 顧客名は顧客に、単価は商品に、数量は受注明細に。E-R図と同じ4つになる 今ココ 正規化 12/17
▪同じ情報が何か所にもあると、ずれる テーブル設計のレビューで見るところ 同じ情報を、2か所以上に書いていないか 受注番号 商品番号 P P P P 顧客番号
C C C C ずれる‧登録できない‧消える 顧客名 ⻘葉ストア ⻘葉商店 ⼭⽥書店 ⻘葉商店 修正‧追加‧削除のときの不都合(更新時異状とも) 正規化すると、起きにくくなる 今ココ 実務では 修正:1か所だけ直すと、ずれる 受注1001 の1⾏⽬だけ「⻘葉ストア」に直した 同じ C なのに、名前が2つになる 追加:まだ注⽂の無い顧客を登録できない 顧客だけの⾏は、主キーの受注番号‧商品番号が空になる 削除:受注1002 を消すと ⼭⽥書店の情報も、⼀緒に消えてしまう 13/17
▪ただし、理由を決めて あえて正規化を崩すこともある 受注に、顧客名もコピーして持つ 受注番号 顧客番号 C C C 顧客名 ⻘葉商店
⼭⽥書店 ⻘葉商店 受注番号 → 顧客番号 → 顧客名 が戻る 第3正規形ではなくなる(推移関数従属) 集計した値を、別の表に持つ 顧客番号 C C 顧客名 ⻘葉商店 ⼭⽥書店 売上合計 1,420円 400円 売上合計は、元の表から計算できる値 表は正規形でも、同じ情報を重ねて持つ 崩すなら、理由を決めておく なぜ崩すか(表をつなぐ‧集計するのが毎回重い、など) どれが元のデータで、ずれたらいつ作り直すか 今ココ 実務では 14/17
▪つながりを、データベースに守らせる 外部キー制約 顧客 顧客番号 C C 受注 受注番号 無い顧客番号は、⼊れられない 顧客名
⻘葉商店 ⼭⽥書店 受注⽇ / / / 受注に(1004, 10/4, C )を追加しようとする 顧客に C が無いので、エラーになる 顧客番号 C C C 参照されている顧客を消すとき(PostgreSQL の例) 受注1002 が、顧客の C を参照している 何も指定しない → エラーで⽌まる(NO ACTION) CASCADE → 参照している受注も⼀緒に消える SET NULL → 受注の顧客番号を空にする(空を許す列なら) 実線の下線:主キー 破線の下線:外部キー 今ココ 実務では 15/17
▪1つの事実を、1か所にだけ書く まとめ E-R図で、エンティティと関連を整理する E-R図 正規化は、1つの事実を1か所にだけ書く⼿順 正規化 実務では、ずれない設計かを⾒る 実務 多対多は、連関エンティティを挟んで1対多の2つに分ける 第1は繰り返し、第2は部分関数従属、第3は推移関数従属をなくす
崩すなら理由を決める。外部キー制約で、つながりを守る 今ココ まとめ 16/17
▪一度止めて考えてみてください。答え合わせは次回の冒頭で 今回のクイズ 第2正規形のテーブルを第3正規形にするとき、取り除くのは? A 繰り返し項目 今ココ まとめ B 部分関数従属 C
推移関数従属 D 外部キー 17/17