第三正規形とは?意味・条件・正規化の進め方を解説

第三正規形は、第二正規形を満たし、非キー属性が別の非キー属性に推移的に依存しない状態を指します。属性どうしの決まり方に着目し、更新異常を抑えるための考え方です。

正規化を始める前に、主キーや候補キー、関数従属を確認し、更新・挿入・削除で起きる異常を整理します。

  • 推移的な依存:主キーから非キー属性を経由して、別の非キー属性が決まる関係です。
  • 表の分け方:従属を見つけたら別表に分け、外部キーやNULLの扱いを決めます。
  • 使いどころ:部署名や税率のように、別の属性から決まる情報の重複を避け、変更を一箇所に集約したいときです。

第三正規形とは?まず押さえる定義と役割

第三正規形の中央概念と第二正規形、非キー属性、推移的に依存しない状態、更新異常を示す注釈図
属性の決定関係を分けて考える

第三正規形は、第二正規形を満たしたうえで、非キー属性間の推移的従属を解消した状態です。第二正規形の条件を満たしていても、非キー属性どうしが決まり方でつながっていると、同じ情報を複数の行に書くことになります。そのため、一部だけ直して他を直し忘れる更新異常が生じます。

決定関係ごとに表を分けておくと、属性を変えるときは決定元の一箇所を直せば済みます。

ポイント

重複して保存している属性があれば、そこに推移的な依存がないかを先に確かめます。依存があるなら、表を分けて決定元を一箇所にまとめると、更新時の直し漏れを減らせます。

第三正規形の仕組み|計算と判断の流れ

第三正規形の仕組みを目的の定義、候補設定、意思決定の3段階で示すフロー図
定義から評価までを順に確認する

1. 目的とデータの単位の定義

まず、主キーから非キー属性を経由する従属を見つけ、決定する属性と決定される属性を別の表に分けます。分けたあとは、外部キーやNULLの扱い、参照のライフサイクルも定めておきます。

2. 候補設定の学習と推定

主キーや関数従属を、表分割や外部キーとあわせて設計記録に書いておきます。これは、後から同じ条件で再確認できるようにするためです。

3. 結果を意思決定できる形への変換

分けた結果は、更新異常や重複が減ったかだけでなく、JOINや参照整合性も見ます。クエリ性能と変更の影響範囲も確認します。

ポイント

分ける範囲は、更新異常を抑える効果と、JOINが増えて読み取りが遅くなる影響を合わせて見て決めます。迷う場合は、代表的なデータで小さく試してから、分割の範囲を広げるかを決めます。

第三正規形の使い方|実務での適用場面

小さな検証の進め方

部署名や税率のように、別の属性から決まる情報を重複して保存せず、変更を一箇所に集約したい場合に使います。読み取り用の非正規化とは、目的が異なるため分けて考えます。

最初は代表的なデータと明確な成功条件に絞り、基準となる手法との差を測ります。短期の指標が改善しても、運用負荷や説明可能性を含めて見ます。更新頻度や例外処理まで含めて、採用の可否を判断します。

評価期間と利用者のそろえ方

設計記録には、関数従属や主キー、外部キーを書いておきます。そのうえで、JOIN数、更新異常、性能への影響も残しておきます。

本番運用への移行

データを変えたあとは、参照整合性と重複を確かめます。加えて、JOINや性能、変更の影響も見て、設計変更を記録しておきます。

ポイント

部署名や税率のように、別の属性から決まる情報を一箇所で管理したい場面で採用します。読み取りを速くする非正規化とは目的が違うため、どちらを優先するかは用途で決めます。

第三正規形と関連手法の違い

第二正規形、第三正規形、BCNFが扱う条件を3枚のパネルで比較する図
扱う従属条件を分けて整理する

第二正規形は複合キーの部分従属を、第三正規形は非キー属性どうしの推移的従属を扱います。BCNFは、これらよりも厳しい決定者の条件を求めます。

比べるときは、データ分割と目的、評価期間をそろえます。前処理と計算予算も同じ条件にします。

手法ごとに答えられる問いが違う場合は、単純な順位付けを避けます。代わりに判断表を作り、精度や安定性、説明の観点を並べます。費用や保守性も同じ表に入れます。

第三正規形の評価方法|数字だけに頼る判断の注意点

主要指標と不確実性

診断と再現性

平均値だけでなく、期間別やグループ別、極端なケース別の結果も確かめます。そのうえで、設定を変えた感度分析や別データでの確認、複数シードでの再実験を行い、結論が一つの偶然に依存していないかを点検します。

ポイント

平均値や一度きりの結果だけで採用を決めず、期間別やグループ別、極端なケース別の結果も見ます。結論が一つの偶然に頼っていないかは、設定を変えて再実験すると確かめられます。

第三正規形で起きやすい失敗と対策

データと前処理の問題

全データで集計や標準化、補完をしてから分割する、未来の値を入力に含める、結果を見て評価対象を選ぶといった操作は、性能や推定を実際より良く見せてしまいます。そのため、前処理を学習側だけで行い、処理の前後で件数と値域を監査します。

指標と問いの混同

よくある失敗には、決定関係の誤認や過度な分割があります。加えて、履歴値の上書きや分析用途との混同も起こりえます。過度に表を分割するとJOINが増えるため、更新異常の抑制と読み取り性能を合わせて検証します。

運用条件の変化の見落とし

属性の決定関係や利用方法が変わったときは、表の分割と参照条件を見直します。

第三正規形を採用する判断基準

属性の変更を一箇所で管理でき、更新異常を抑える効果が大きい場合に採用します。性能のために複製を残す場合は、その理由と同期の方法を記録しておきます。

設計資料には、主キーからの従属や分割後の外部キーを記録します。あわせて、NULLや参照の扱い、JOIN・性能への影響も書いておきます。

ポイント

属性の変更を一箇所で管理でき、更新異常を抑える効果が大きいかで採用を判断します。ただし、性能のために複製を残すなら、その理由を説明できるかを確かめておきます。

第三正規形まとめ|目的・前提・評価の揃え方

第三正規形は、第二正規形を満たしたうえで、属性の決定関係を表ごとに分け、更新異常を抑える状態です。条件は、非キー属性どうしの推移的な依存を残さないことです。

価値を出すには、対象と時間、入力と出力、仮定を先に定義しておきます。そのうえで、基準となる手法と同じ条件で評価することが欠かせません。

小さく検証してから適用範囲を広げ、設定・データ・評価結果を再現できる形で保存します。精度や有意性だけでなく、誤りのコストや説明可能性も含めて判断してください。運用負荷や、影響を受ける人への公平性も見ておく必要があります。

よくある質問(FAQ)

Q. 第三正規形とは何ですか?

第二正規形を満たし、非キー属性が別の非キー属性に推移的に依存しない状態です。属性の決定関係を分けて、更新異常を抑える考え方です。

Q. 第三正規形はどのような場面で使いますか?

非キー属性から別の非キー属性への推移的な依存を分け、更新異常を減らしたいときに使います。

Q. 第三正規形を使うときの評価指標は何ですか?

まず、更新異常と重複が減ったかを確かめます。JOINや整合性、性能も見て、変更の影響範囲まで確認します。

Q. 第三正規形で起きやすい失敗は何ですか?

決定関係の誤認と分割過多に注意します。また、JOIN、履歴の上書き、用途混同にも目を配る必要があります。

Q. 第三正規形と似た手法はどう使い分けますか?

第二正規形は部分従属を、第三正規形は推移的従属を扱います。BCNFは、より厳しい決定者の条件を求めます。

参考資料

本記事の定義と実務上の注意は、次の参考資料をもとにしています。

en.wikipedia.org の資料とwww.databasestar.com の資料を参照しています。利用時は、該当するバージョンの資料を確認してください。

会社紹介

株式会社riplaでは、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを、構想策定・要件定義から開発・改善まで一気通貫で支援。事業会社でIT・DXを経験したプロフェッショナルによる高い要件定義力・システム設計力を活かし、事業成果の最大化に伴走します。

また、当社独自の開発テンプレート「Boxシリーズ」による標準機能の高速開発と、AI駆動開発の独自フレームワーク「GoDD」による独自機能のAI実装を組み合わせることで、低コスト・短期間で開発を実現いたします。

もし、システム開発やプロダクト開発に関するご要望がございましたら、お気軽にお問い合わせください。

・サービス概要資料のURLはこちら >>>
・お問合せページのURLはこちら >>>
・お役立ち資料のURLはこちら >>>

執筆者プロフィール
張田谷凌央
張田谷凌央

株式会社ripla 代表取締役CEOとして、システムパッケージ活用、システム開発、データ分析、生成AI活用、SaaS開発、アプリ開発、EC構築など、幅広い領域で企業のDX推進と事業成長を支援している。事業会社でIT・DXを経験したプロフェッショナルが集う株式会社riplaにおいて、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを構想策定・要件定義から開発・改善まで一気通貫で支援し、単なるシステム納品にとどまらず、クライアントと同じ目線で事業成果の最大化に向けた伴走支援を行う。早稲田大学卒業後、ラクスル株式会社、LINEヤフー株式会社にて事業開発やDX推進などに従事した後、株式会社riplaを創業。