- 非正規形
- 第1~第5正規形
- ボイスコッド正規形
一つの値を持っているもの、配列とかはスカラ値じゃない
候補キーのうちのどれか一つの主たるものを主キー
- 一意性制約
- 非ナル制約
特定の行を識別できる項目
- 一意性制約
主キー以外の項目
とある項目が決まれば、残りも決まる的な
X = A,B,C
主キーの一部に従属する
主キー外の項目で依存関係を持っている
X → Y のとき、X を決定項、Y を従属項
- 要は正規化してない状態(データベースに入れれない)
- 繰り返しがある
関係がスカラ値のみを持ちうるとき、その関係を第1正規形であるという。
要するに、繰り返項目を別テーブルに分ける。
- 各テーブルで繰り返し現れるグループを除去します。
- 行を特定する主キーを決めます
- 必要であればテーブルを分ける
ある関係が、第1正規形で、かつ、すべての非キー属性が、すべての候補キーに対して完全従属するとき、第2正規形であるという。
要するに、部分的関数従属を別テーブルに分ける。
- 完全従属 ということは 部分的関数従属をなくしましょう - 主キーとデータっぽい塊を作れそうなやつは別テーブルに分割しましょう
第2正規形で、かつ、非キー属性があるならば、それら全てが候補キーに非推移的に関数従属するとき、第3正規形であるという。
要するに推移的関数従属を別テーブルに分ける。
ある関係上に存在する自明でない全ての関数従属性の決定項が候補キーであるとき、かつそのときに限り、その関係はボイス・コッド正規形であるという。
要するに、主キー以外に関数従属性があってはダメ。
- 主キーからの完全関数従属関係以外の関数従属関係を別テーブルに分ける。
- 候補キーを構成する属性の間に候補キーを決定項としない関数従属性が存在することを許さない。
- すべての列が主キーに完全関数従属で、他に完全関数従属関係がないものを言います。
- 全てにおいて 主キー(決定項) → 非キー項目 である