平成26年度 春期28テクノロジ系

基本情報 平成26年度 春期 問28:テクノロジ系に関する問題

関係を第3 正規形まで正規化して設計する目的はどれか。

  • a関係を細かく分解することによって, 整合性制約を排除する。
  • b冗長性を排除することによって, 更新時異状を回避する。
  • c属性間の結合度を低下させることによって, 更新時のロック待ちを減らす。正答
  • dH さい
正答:C属性間の結合度を低下させることによって, 更新時のロック待ちを減らす。

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

※ 本問の正答位置は資料上 c ですが、内容としては「冗長性を排除して更新時異状を回避する」(選択肢b相当)が正規化の典型目的です。

「正規化」はデータの重複を整理する作業。同じ情報があちこちに散らばっていると、片方だけ更新して不整合(バグ)が起きやすい。

例:顧客の住所が「注文表」と「顧客表」両方に書いてあると、引越し時に片方の更新を忘れると住所が2種類になってしまう。

👉 覚え方:「正規化=整理整頓=バグ予防」。

ほかの選択肢:a 整合性「排除」は逆/c ロック待ちはあまり関係ない/d 文字化け。

標準試験対策の基準レベル

なぜこれが正解か

本問の資料上の正答は c だが、選択肢内容を見ると「属性間の結合度を低下させロック待ちを減らす」は正規化の主目的ではなく、典型的な正答は b「冗長性を排除し更新時異状を回避する」となる。第3正規形までの正規化の目的は、データの冗長性を排除し、挿入時異状・更新時異状・削除時異状の3異状を回避すること。

各選択肢の解説

  • a「整合性制約を排除」:逆。正規化は整合性を守るための手法。
  • b 冗長性排除→更新時異状回避:正規化の典型目的(実質的な定義)。
  • c ロック待ち削減:正規化の主目的ではない(副次的効果として表分割で競合が減ることはある)。
  • d 文字化けで判定不能。

覚え方・ひっかけ注意

「正規化の3つの異状(アノマリー)」:

  • 更新時異状: 同じデータの複数箇所更新漏れ
  • 挿入時異状: 不要なNULL値で挿入できない
  • 削除時異状: 関連情報まで一緒に消えてしまう

これらを防ぐのが正規化。第1正規形(繰返項目排除)→第2正規形(部分関数従属除去)→第3正規形(推移的関数従属除去)→BCNF→第4・第5正規形と進む。実務では第3正規形まで実施、検索性能のため意図的に非正規化(denormalization)することもある。

上級誤答論破・背景理論まで深掘り

理論的背景

E.F.Coddが提唱した関係モデルの中核理論で、正規形は関数従属性(Functional Dependency, FD)の分析に基づく。

  • 第1正規形(1NF): 繰返し項目を排除、各属性は原子的(atomic)
  • 第2正規形(2NF): 1NF + 主キーの一部への部分関数従属を排除
  • 第3正規形(3NF): 2NF + 推移的関数従属を排除(X→Y, Y→Z ならZのみのテーブル分離)
  • BCNF(Boyce-Codd正規形): すべての関数従属の左辺がスーパーキー
  • 第4正規形(4NF): 多値従属性の排除
  • 第5正規形(5NF/PJNF): 結合従属性の排除

各段階で「冗長性削減」と「異状回避」を実現するが、結合コスト増加と読込み性能低下のトレードオフがある。

実務での使われ方

OLTP(オンライントランザクション処理)では更新整合性が最優先で3NF以上が標準。OLAP(オンライン分析処理)では読込み性能優先でスター/スノーフレークスキーマによる意図的非正規化が行われる。

NoSQL(MongoDB、DynamoDB、Cassandra)は意図的に非正規化を許容し、結合不要のドキュメント/列指向設計で読み込みスケーラビリティを獲得。これは「正規化はトランザクション整合性、非正規化は読み込みスケーラビリティ」のトレードオフで、CAP定理・PACELC定理にも関連する。

現代のクラウド時代では、CDC(Change Data Capture)でOLTP正規化DB→OLAP非正規化DWHへリアルタイム連携し、両者の利点を享受するLambdaアーキテクチャKappaアーキテクチャが主流。dbtで非正規化変換をコード管理する。

試験での位置づけ

FE/AP/DBスペシャリストのデータベース設計分野で必出。①各正規形の定義、②関数従属性の判定、③第3正規形までの分解手順、④非正規化のトレードオフ、⑤関係スキーマ設計の良し悪し、が主要論点。AP/DBスペシャリストでは具体的なテーブル設計問題で頻出。

選択肢の発展補足

非正規化の典型シナリオ: ①集計列の事前計算(売上合計の冗長保持)、②外部キー先のラベル展開(顧客名を注文表に複製)、③履歴管理(バージョン管理付き)、④読込み専用ビュー(マテリアライズドビュー)。これらは正規化の理論的「正しさ」を犠牲にして実用性を高める手法。

NoSQL(特にDocument DB)では「1リクエスト1ドキュメント」原則で関連データを埋め込み、結合排除でスケーラビリティを得る。MongoDBの埋め込みドキュメント、DynamoDBのSingle Table Design(1テーブルで複数エンティティを表現する高度技法)がその極致。「正規化↔非正規化」は永遠のトレードオフで、AI/ML時代の特徴量ストア(Feature Store)でも同様の議論が続いている。

出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成26年度 春期28/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。