正規化とは?せいきか
正規化とは、同じ値の重複や、行の挿入・更新・削除のときに生じる矛盾(更新時異状)を防ぐため、関数従属(ある項目が決まると別の項目が1つに決まる関係)にもとづいて表を分割していく手順。繰返し項目をなくすのが第1正規形、主キーの一部だけで決まる部分関数従属をなくすのが第2正規形、他の項目を介した推移的関数従属(AでBが決まり、BでCが決まるので、AでCが間接的に決まる関係)をなくすのが第3正規形。
最終更新:2026-10-09
この語が出る過去問を解く →背景
1枚の大きな表に何もかも詰め込むと、同じ商品名が何百行にも書かれ、名前を変えるたび全行を直す羽目になる。1行でも直し漏れれば、同じ商品に2つの名前が存在してしまう。この種の事故は運用上の注意では防げないため、そもそも同じ事実を1か所にしか書かせない表の形へ、設計段階で作り替えてしまうのが正規化の考え方である。
具体例
「注文番号・商品コード・商品名・数量」という表は、主キーが注文番号と商品コードの組なのに、商品名は商品コードだけで決まる(部分関数従属)。商品名を商品表へ切り出せば、改称のとき直すのは1行で済み、まだ注文の無い商品も先に登録できるようになる。
試験での引っ掛け
目的はディスク容量の削減ではなく、更新時異状を防いで整合性を保つこと。「容量を減らすため」とある選択肢は誤り。また正規化を進めるほど結合が増えて検索が遅くなるので、性能を優先してあえて崩す非正規化という設計判断もあり、常に第3正規形が最善というわけではない。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成29年度 春期 基本情報技術者試験 午前 問37(IPA)解説で登場
ディレクトリトラバーサル攻撃に該当するものはどれか。
正解:攻撃者が,パス名を使ってファイルを指定し,管理者の意図していないファイルを不正に閲覧する。
要点:ディレクトリトラバーサルはパス指定を細工した不正閲覧
ディレクトリトラバーサルは、ファイル名を受け取るWebアプリケーションに対して「../」などを含むパスを与え、本来公開する意図のない上位ディレクトリのファイルを読み出させる攻撃です。パスの検証不足が原因なので、入力値の正規化や、指定できる範囲を限定する対策が有効です。
出典:平成29年度 春期 基本情報技術者試験 午前 問48(IPA)解説で登場
オブジェクト指向の基本概念の組合せとして,適切なものはどれか。
正解:抽象化,カプセル化,継承,クラス
要点:オブジェクト指向の柱は抽象化・カプセル化・継承・クラス
オブジェクト指向は、共通の性質を抜き出す抽象化、データと操作を1つにまとめて内部を隠すカプセル化、既存のクラスの性質を引き継ぐ継承、そしてオブジェクトの雛形であるクラスを基本概念とします。正規化は関係データベースの、構造化は手続き型設計の考え方であり、オブジェクト指向の基本概念には含まれません。
出典:令和5年度 公開問題 基本情報技術者試験 科目A 問6(IPA)解説で登場
次の関数従属を満足するとき,成立する推移的関数従属はどれか。ここで,“A→B”はBがAに関数従属していることを表し,“A→{B, C}”は,“A→B”かつ“A→…
正解:注文コード → 顧客コード → 顧客住所
要点:推移的関数従属はA→B→Cと2段でCが決まる関係
推移的関数従属は、A→B かつ B→C が成り立ち、Bが候補キーでないために A→C が間接的に導かれる関係をいう。ここでは注文コードから顧客コードが決まり、顧客コードから顧客住所が決まるので、注文コードを起点とした推移的関数従属が成立する。正規化ではこの連鎖を切り離して別表にすることが第3正規形の目的となる。
出典・参考
公式シラバスの4 開発技術 > 2. 設計 > (9) ソフトウェア設計手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。