50代。
「データベース?Excelと何が違うの?」からスタート。
最初は用語が横文字だらけで頭が拒否反応。でも、エンティティとリレーションを“登場人物と関係図”として考えたら、急に霧が晴れた。
今日は、そんな私の視点で
基本情報技術者試験のDB章を一本の物語として整理してみる。
この記事で分かること(目次)
1. エンティティとは何者か?
ざっくり言うと
👉 現実世界に実在する「もの」や「人」
例(幼稚園児向け)
- えんちょう先生
- こども
- おもちゃ
- クラス
👉 これ全部 エンティティ
試験用語的に言うと
- 表(テーブル)になるもの
- 主キーを持つ
- 属性(名前、ID、年齢など)を持つ
🧠 覚え方
エンティティ=名詞
2. リレーションとは何か?
ざっくり言うと
👉 エンティティ同士の関係
幼稚園の例
- こども ー「所属する」→ クラス
- こども ー「使う」→ おもちゃ
- 先生 ー「担当する」→ クラス
これが リレーション
🧠 覚え方
リレーション=動詞
3. カーディナリティ(多重度)が鬼門
ここ、中高年が一番ひっかかる。
よく出るパターン
- 1対1
- 1対多
- 多対多
幼稚園例
- クラス:こども = 1対多
- こども:おもちゃ = 多対多
👉 多対多は そのまま表にできない!
4. 多対多が出たら「中間テーブル」
試験での鉄板展開
多対多
→ 連関エンティティ(中間テーブル)を作れ
例
- こども × おもちゃ
↓ - こどもおもちゃ表
- こどもID
- おもちゃID
- 使用日
🧠 覚え方
多対多を見たら「間に一人入れろ」
5. 主キーと外部キーの関係
主キー
- エンティティの「社員番号」「学籍番号」
外部キー
- 他の表の主キーを借りてくる
例
- クラス表:クラスID(主キー)
- こども表:クラスID(外部キー)
🧠 覚え方
外部キー=「よそから来た番号」
6. 正規化は「整理整頓」
非正規形 → 第3正規形
- 同じ情報を何度も書かない
- 「誰の責任の情報か」をはっきりさせる
試験あるある
- 「どこに依存しているか?」
- 「部分関数従属」「推移的関数従属」
🧠 覚え方
正規化=「誰の机に置くべき書類か考える」
7. トランザクションとDBの安全設計
トランザクション
- 一連の処理は 全部成功 or 全部失敗
ロールバック
- 途中失敗 → なかったことに
ロールフォワード
- バックアップ後のログを足す
🧠 覚え方
バック=戻す
フォワード=足す
8. 試験での典型パターン
午前問題
- ER図を見て正しい関係を選ばせる
- 主キー・外部キーの識別
- 多対多の誤り探し
午後問題
- ER図 → 表構造 → SQL
- JOIN + GROUP BY
- EXISTS / NOT EXISTS
👉 全部、エンティティとリレーションが分かっていれば解ける
9. まとめ
- エンティティは「登場人物」
- リレーションは「関係性」
- 多対多は要注意
- 主キーは身分証
- 外部キーは紹介状
🧠 最後の一言
DBは暗記じゃない
人間関係図だと思えばいい
