重複による食い違いを防ぐ
- 正規化を更新時の不整合を減らす設計として説明する
- 何によって値が決まるかを基に表を分ける
- 表を分けてもキーで必要な情報を復元できるようにする
点線のことばを押すと、意味と使い方を調べられます。
表示・保存
このページの目次 3節・復習と3問
- 1説明を読む
- 2復習する
- 3問題を解く
- 4次へ進む
1同じ事実を何度も書く危険
会員の住所を注文のたびに同じ意味で書くと、住所変更時に多数の行を直す必要がある。一部だけ更新すると、同じ会員なのに現在住所が違ってしまう。こうした更新異常を防ぐために、データの重複と項目の依存関係を調べる。
正規化は、データの一貫性を保つため、重複しやすい情報を表に分けて整理する考え方。圧縮率を上げることが主目的ではない。分けても再び関連付けられるようにキーを残す必要がある。
2何の番号で値が決まるか
関数従属性は、ある項目の値が決まると別の項目の値が一意に決まる関係。商品の標準単価を一定として扱う学習例なら、商品番号で商品名と標準単価が決まる。一方、注文数量は商品だけでは決まらず注文ごとの事実だ。
商品表には商品番号・商品名・標準単価、注文明細には注文番号・商品番号・数量を置く。商品番号を消すとどの商品か結合できない。実務の販売時単価は値引きや価格変更を記録する別の事実なので、標準単価と同一視しない。
ハルとビットで、使い方を確かめよう
とにかく表を細かく分けるの?
何で値が決まるかを考えて、元の関係を保って分けるんだよ。
商品価格は一か所でいい?
現在の標準単価と過去の販売時単価は別の事実。意味を先に確かめよう。
3会員種別も関連を残して分ける
店舗ごとに会員番号が重なる会員データを整理する例。会員表の主キーは店舗コードと会員番号の組。会員種別に応じて割引率が決まるなら、種別表へ種別コード・種別名・割引率を分け、会員表には種別コードを残す。
会員番号だけでは店舗間で衝突する。複合主キーだけ正しくても種別コードがないと種別表につながらない。正規化では表を分割することだけでなく、元の事実を取り違えずに復元できる関係を保つ。
復習
このレッスンを振り返ろう
同じ部署の電話番号を従業員全員の行に書くと、変更時にどんな問題が起きますか。
部署コードで一つに決まる電話番号は、どこへ保存しますか。
答え方と、確認するポイント
部署コードを持つ部署表へ一度保存し、従業員表には部署コードを残します。現在の標準値と、取引当時の価格や住所として残す履歴は区別します。
会員種別の割引率を別表に分けた後、会員表に残すものは何ですか。
問題で確かめる
実際の問題に挑戦しよう
IPA(独立行政法人 情報処理推進機構)公開過去問1問、過去問を参考にした独自問題1問、入門の確認問題1問で、この範囲の考え方を使います。答えを選んだら、正解の理由とほかの選択肢の違いも確かめましょう。
ヒントを見る
同じ情報を何か所も更新すると起こる不整合を,どう減らすか考えましょう。
公開問題・原図の著作権はIPAにあります。表記・表の配置を整えています。解説は当サイト独自のものです。
3問中0問の答えと解説を確認しました。選んだ答えの理由も確かめてから、次へ進みましょう。
出典・参考資料を確認する
学習範囲:IPA シラバス Ver.6.5 ↗ 項目55。身近な例・会話・図解・確認問題は当サイトのオリジナルです。
学習範囲と参考資料
シラバスは学習範囲の根拠です。説明は参考資料を基に当サイトが作成しています。身近な事例・会話・図の数値は学習用の架空例です。2026年9月10日確認。