0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

第2正規化_応用情報備忘録

Last updated at Posted at 2025-07-16

応用情報技術者試験について学習中です。
そこで調べたついでに理解出来たことを載せていきます。

平成30年秋 第28問

「どの非キー属性も、主キーの真部分集合に対して関数従属しない」とは?

◇用語の確認

用語 意味
内容A 内容B
主キー レコードを一意に特定する列(複数列のこともある)
非キー属性 主キーでない他の列
真部分集合(しんぶぶんしゅうごう) 主キーの一部だけを取り出した集合(主キー全体ではない)
関数従属(かんすうじゅうぞく) A → B のとき、A が決まると B が1つに決まる

◇結論

非キー列が、主キーの一部の列だけで決まってはいけない。
→ それを防ぐのが「第2正規形(2NF)」です。

◇具体例で説明

主キーが複合キー(2列以上)である場合
たとえば、以下のような表があるとします:

学生ID 講義ID 成績 学生名
A001 C101 85 山田太郎
A002 C101 92 佐藤花子

主キー:学生ID + 講義ID(この2つでレコードが一意に決まる)
•非キー属性:
•成績(←OK、2つの主キーがないと決まらない)
•学生名(←問題あり)

→ 学生名は「学生IDだけで決まる」(= 主キーの一部で決まる)
→ これは「主キーの真部分集合に対して関数従属」していることになります。
→ 第1正規形ではOKだけど、第2正規形ではNG。

第2正規形(2NF)の意味は?

主キーが複合キーのとき、
非キー属性が主キーの一部だけで決まるような依存関係を禁止する

つまり:
• × 主キーの一部(例:学生ID) → 非キー属性(例:学生名)
• 〇 主キー全体(例:学生ID + 講義ID) → 非キー属性(例:成績)

◇なぜ良くないのか?

•同じ学生が複数の講義をとるたびに、学生名が繰り返し出てくる
•名前を変更するときに複数箇所を更新しなければならず、不整合が起こる可能性あり
→ 「分離(分割)」して正規化するべき

◇まとめ

条件 意味
「どの非キー属性も、主キーの真部分集合に対して関数従属しない」 主キーの一部だけで決まるような非キー属性を排除する(2NFの条件)

ChatGPT参照

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?