データ設計をしていると、
「1テーブルにまとめた方が分かりやすいのでは?」
と感じる場面があります。
応用情報技術者試験でも、
一見すると便利そうな1テーブル構成が、
後から問題を起こす例としてよく登場します。
この回では、
なぜ1テーブル設計が破綻しやすいのかを、
応用情報視点で整理します。
1テーブル設計が魅力的に見える理由
1テーブルにまとめると、
- JOIN が不要
- データ構造が単純
- 画面と直結しやすい
といったメリットがあります。
特に初期段階では、
「これで十分では?」と感じやすい構成です。
破綻は「変更」から始まる
問題が表面化するのは、
次のようなタイミングです。
- 項目の意味が増える
- 一部だけ別ルールが必要になる
- 履歴を持ちたくなる
1テーブル設計では、
意味の違うデータが同居し始め、
構造が歪んでいきます。
応用情報でよくある破綻パターン
午後問題では、
- NULL が大量に発生する
- 同じ列の意味が行によって違う
- 更新条件が複雑化する
といった状態が、
設計上の問題として描かれます。
これは、
正規化の視点が欠けていることを
見抜かせるための構造です。
なぜ最初は問題なく動くのか
1テーブル設計は、
最初の要件には過不足なく合うことが多いです。
そのため、
- テストでは問題が出ない
- 初期リリースはスムーズ
になります。
応用情報では、
この「今は動いている」という状態が、
判断を誤らせる要因として使われます。
実務でも同じ崩れ方をする
実務でも、
- 後から仕様が増える
- 想定外の使われ方をする
ことで、
1テーブル設計は急激に扱いづらくなります。
応用情報は、
その崩れ方を
試験問題として整理しています。
まとめ
- 1テーブルは短期的には便利
- 変更と例外で一気に破綻する
- 応用情報はその兆候を見抜かせる
設計を見るときは、
「今」だけでなく「変わった後」を
想像することが重要です。
次回予告
次回は、
「インデックスはなぜ万能ではないのか」
を扱います。
性能と設計の話に進みます。


コメント