カテゴリ: 基本情報技術者試験 更新日: 2025/10/04

第3正規形とは?初心者でもわかるデータベース設計の基本とメリット

第3正規形
第3正規形

先生と生徒の会話形式で理解しよう

生徒

「先生、第2正規形までは理解できたんですが、第3正規形ってどういうものなんですか?」

先生

「第3正規形(ダイサンセイキケイ)は、第2正規形を満たしたうえで『推移的関数従属(スイイテキカンスウジュウゾク)』をなくすことが目的なんだよ。」

生徒

「推移的関数従属って難しそうですね…。簡単にいうとどういうことなんですか?」

先生

「簡単にいうと『キー以外の列が、別のキー以外の列に依存してしまう状態』をなくすことなんだ。つまり、余計な間接的なつながりを整理するのが第3正規形なんだよ。」

生徒

「なるほど!つまりさらに無駄をなくして、データをシンプルにするってことなんですね。」

先生

「その通り。それじゃあ具体例を見て理解していこう。」

1. 第3正規形(ダイサンセイキケイ)とは?

1. 第3正規形(ダイサンセイキケイ)とは?
1. 第3正規形(ダイサンセイキケイ)とは?

第3正規形とは、第2正規形を満たしたデータベースにおいて「主キー(シュキー)以外の列が、他の非キー列に依存していない状態」のことを指します。つまり、データの間に無駄な依存関係がなく、すっきり整理された状態です。

これによって、データの重複や更新異常、削除異常をさらに減らすことができます。データベース設計を学ぶ上で、第3正規形はとても大切な基礎です。

2. 推移的関数従属(スイイテキカンスウジュウゾク)とは?

2. 推移的関数従属(スイイテキカンスウジュウゾク)とは?
2. 推移的関数従属(スイイテキカンスウジュウゾク)とは?

推移的関数従属とは、主キーを通さなくても「ある列が別の列に依存している状態」のことです。例えば「社員ID」から「部署ID」がわかり、「部署ID」から「部署名」がわかる場合、「部署名」は間接的に「社員ID」に依存していることになります。

このような間接的な依存があると、部署名を変更する際に複数のレコードを修正する必要が出てきて、ミスや矛盾の原因になります。これを解消するのが第3正規形の目的です。

3. 第2正規形から第3正規形への変換例

3. 第2正規形から第3正規形への変換例
3. 第2正規形から第3正規形への変換例

次のような第2正規形の表を考えてみましょう。

社員ID | 社員名 | 部署ID | 部署名
001   | 佐藤   | D01   | 営業
002   | 鈴木   | D01   | 営業
003   | 田中   | D02   | 開発

この表では「部署名」が「部署ID」に依存しています。つまり「社員ID」から「部署ID」が分かり、「部署ID」から「部署名」が分かるため、推移的関数従属が存在しています。

これを第3正規形に直すと次のようになります。

社員表
社員ID | 社員名 | 部署ID
001   | 佐藤   | D01
002   | 鈴木   | D01
003   | 田中   | D02

部署表
部署ID | 部署名
D01   | 営業
D02   | 開発

こうすることで「部署名」は部署表で一元管理され、無駄な重複や矛盾がなくなります。

4. 第3正規形のメリット

4. 第3正規形のメリット
4. 第3正規形のメリット

第3正規形にすることで次のようなメリットがあります。

  • データの重複を減らすことができる
  • 更新の手間を最小限にできる
  • 削除や追加時に不整合が起こりにくい
  • データベース全体の整合性を保ちやすい

例えば「営業部」を「マーケティング部」に変更する場合でも、部署表の1行を修正するだけで済むようになります。

5. 第3正規形とデータベース設計の雑学

5. 第3正規形とデータベース設計の雑学
5. 第3正規形とデータベース設計の雑学

第3正規形の考え方は、1970年代に登場したリレーショナルデータベース(リレーショナルデータベース)の正規化理論の一部です。提唱したのはエドガー・F・コッドという研究者で、現在のデータベース設計の基本を築いた人物です。

第3正規形を理解すると、さらに進んだボイスコッド正規形(ボイスコッドセイキケイ)などの発展的な考え方につなげることができます。初心者にとって第3正規形は「整理されたデータベースの完成形に近い姿」と覚えると理解しやすいでしょう。

カテゴリの一覧へ
新着記事
New1
基本情報技術者試験
クライアントサーバシステムとは?初心者でもわかるネットワークの基本構成をやさしく解説
New2
基本情報技術者試験
分散処理とは?初心者でもわかるコンピュータの処理方式をやさしく解説
New3
情報セキュリティマネジメント試験
ブラックリストとは何かをやさしく解説!初心者でもわかる仕組みと活用例
New4
基本情報技術者試験
集中処理とは?初心者でもわかるコンピュータ処理方式の基本用語をやさしく解説
人気記事
No.1
Java&Spring記事人気No1
基本情報技術者試験
FTP
220
FTPとは?初心者でもわかるファイル転送プロトコルの基本と仕組みを徹底解説!
No.2
Java&Spring記事人気No2
基本情報技術者試験
NIC
212
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
No.3
Java&Spring記事人気No3
基本情報技術者試験
16進数とは?初心者にもわかる意味・読み方・変換方法をやさしく解説!
No.4
Java&Spring記事人気No4
基本情報技術者試験
URL
187
URLとは?初心者でもわかるWebリンクの仕組みと役割をやさしく解説!
No.5
Java&Spring記事人気No5
基本情報技術者試験
イーサネット(Ethernet)とは?初心者にもわかるLANの基本技術をやさしく解説
No.6
Java&Spring記事人気No6
基本情報技術者試験
セグメントとは?ネットワークの基本単位を初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
基本情報技術者試験
スキーマ(Schema)とは?データベースの基本構造を初心者向けに解説
No.8
Java&Spring記事人気No8
基本情報技術者試験
ハブとは?初心者でもわかるネットワーク接続装置の基本と仕組み