【面接対策】正規化(第1〜第3正規化)とは?中学生でもわかる例え話と理想的な回答例

データベース設計・最適化
博士

【正規化(読み方:せいきか)】
データベースの「正規化」は、例えるなら洋服ダンスの整理整頓です。服を種類や色で分けて収納すると、どこに何があるかすぐ分かり、無駄なスペースも減りますよね。正規化は、データベース内のデータの重複をなくし、整理することで、効率よくデータを使えるようにするテクニックなんです。
💡 面接でのベスト回答
想定質問:「正規化(第1〜第3正規化)について教えてください」

面接官:正規化(第1〜第3正規化)について説明してください。

私:正規化とは、データベース設計におけるデータの重複を排除し、データの整合性を維持するためのプロセスです。具体的には、第一正規形(1NF)、第二正規形(2NF)、第三正規形(3NF)といった段階があり、それぞれデータの依存関係に基づいてテーブルを分割していきます。

以前のECサイトプロジェクトで、商品情報と注文情報を一つのテーブルにまとめて管理していたため、データの重複が頻繁に発生し、更新時の整合性担保が難しい状況でした。例えば、同じ商品を複数回注文した場合、商品名や価格などの情報が注文ごとに重複して保存されていたのです。

そこで、正規化を行い、商品テーブル、注文テーブル、注文明細テーブルの3つに分割しました。

これにより、商品情報の変更は商品テーブルのみを更新すればよくなり、データの整合性が大幅に向上しました。また、重複データが削減されたことで、データベースの容量も削減され、クエリの実行速度も向上しました。

現役エンジニアによる深掘り解説

メリット

データの整合性の向上:データの重複を排除することで、更新時の矛盾を防ぎ、常に正しい状態を維持できます。

データベース容量の削減:重複データが減ることで、データベースの容量を削減できます。

クエリの効率化:データが整理されることで、必要な情報に素早くアクセスできるようになり、クエリの実行速度が向上します。

メンテナンス性の向上:データ構造がシンプルになることで、データベースの変更や管理が容易になります。

デメリット

テーブル数の増加:正規化を進めすぎると、テーブル数が増加し、複雑なクエリが必要になる場合があります。

結合処理の増加:複数のテーブルに分割されたデータを取得するためには、JOINなどの結合処理が必要になる場合があります。

設計の複雑化:正規化の知識が必要であり、適切なテーブル分割を行うには経験とスキルが求められます。

⚠️ 面接突破のワンポイント

  • 面接対策1:各正規形(1NF, 2NF, 3NF)の定義と、具体例を交えて説明できるように準備しておきましょう。
  • 面接対策2:正規化のメリット・デメリットを理解し、プロジェクトの要件に応じて適切なレベルの正規化を選択できることをアピールしましょう。
タイトルとURLをコピーしました