【データベース】正規化理論の基礎!アームストロングの公理系と「関数従属」|情報処理問題1000本ノック
基本情報技術者試験、応用情報技術者試験、データベーススペシャリスト試験の「データベース・正規化理論」分野で出題される「関数従属(かんすうじゅうぞく)」。難しそうな記号を使わず、日常の「特定できる関係」に置き換えてスッキリ攻略しましょう。
1. 【 問題 】:テクノロジ系(データベース・正規化理論)
【 問題 】 データベースにおけるデータ同士の関係(関数従属:一方を決めるのにもう一方が決まる関係)に関する記述のうち、適切なものはどれか。
(ア)BがAで決まり、CがAで決まれば、CはBで決まる
(イ)BがAの一部であり、CがAで決まれば、CはBで決まる
(ウ)BがAの一部であれば、AはBで決まる
(エ)BとCのセットがAで決まれば、BとCは、それぞれAで決まる
2. 正解:
正解:(エ)BとCのセットがAで決まれば、BとCは、それぞれAで決まる
3. 解説:「『Aを決めればBが決まる』というルールを現実の例で考える!」
関数従属(かんすうじゅうぞく)とは、難しく聴こえますが**「Aが決まれば、自動的にBがただ1つに決まる関係」**のことです。
例えば、「学籍番号(A)」が決まれば、「名前(B)」も「学部(C)」も1つに特定できるという関係のことを指します。
【身近な例で見る!各選択肢が「正しいか・間違いか」の検証】 ← 超分かりやすい解説!
| 選択肢 | 現実のデータに置き換えた例 | 判定と理由 |
|---|---|---|
| (ア) | 「学籍番号(A)」が決まれば「名前(B)」と「学部(C)」が決まるなら、「名前(B)」を決めれば「学部(C)」が決まる。 | 間違い。 同姓同名の人がいるかもしれないので、名前だけでは学部を特定できません。 |
| (イ) | 「学籍番号とクラス(A)」の一部である「クラス(B)」だけで、「学部(C)」を特定できる。 | 間違い。 「A組」という情報だけでは、どの学部の何さんか特定できません。情報が足りません。 |
| (ウ) | 「学籍番号とクラス(A)」の一部である「クラス(B)」を決めれば、「学籍番号とクラス(A)」が決まる。 | 間違い。 正しくは逆です。「学籍番号とクラス(A)」が分かっていれば、その中の「クラス(B)」も分かります。 |
| (エ) | 「学籍番号(A)」が決まれば「名前と学部(BとCのセット)」が決まるなら、「名前(B)」も「学部(C)」も個別に特定できる。 | 正しい! 学籍番号でセットの内容が決まるなら、当然その中の名前単体も、学部単体も特定できます。 |
1. 理解のコツ:
・「セットで特定できるものは、バラバラにしても当然特定できる」という「分解のルール」を言っているのが(エ)です。
2. 試験対策の視点:
・試験問題で「関数従属」という言葉が出たら、自分の頭の中で「A=学籍番号」「B=名前」「C=学部」のように実際のデータに置き換えて考えると、数式を使わずに直感で正解が選べます!
4. まとめ
セットの情報がAによって特定できるなら、その中の1つひとつの項目(BやC)も当然Aによって特定できる(分解のルール)。これが関数従属の基本的な性質です。難しそうな言葉に惑わされず、身近なデータに置き換えて解くコツをマスターしておきましょう!
PR