テーブルとは


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

テーブルの分類

名称 別名 判断基準 定義内容
リソース系 マスタ(系) 「~名」といえるか ビジネスを行う上で必要な資産データを保持するテーブル。台帳的ともいえる。
イベント系 トランザクション(系) 「~する」といえるか
「~日」といえるか
行為の記録データを保持するテーブル。

正規化

まずは、各正規化の説明
非正規形
全く正規化が行われていない状態のテーブル。
第1正規形
非正規形のテーブルに対して以下のことを行ったもの。
1.テーブルに主キーを設定
2.繰り返し現れる列を別のテーブルに分離
3.導出列(他の列同士の演算によって算出できるなど)を削除
第2正規形
複合主キーを構成する1つの列のみの値によって、決まる列は、別テーブルに分割する。
※難しくいうと、第1正規形から部分関数従属性を取り除くこと。
第3正規形
主キーとなる列以外の値によって、他の非主キー列の値が決まることがないようにテーブルを分割した状態のこと。
※難しくいうと、第2正規形から推移関数従属性を取り除くこと。

関数従属性
ある属性Aの値が決まるとき、属性Bが一意に決まることをいう。「A→B」と表記。
移関数従属性
ある属性Aが決まると属性Bが決まり、その結果属性Cが決まるという関係。「A→B→C」と表記。(ただしB→Aは不成立)

正規化の例1

非正規形のテーブル
表の1レコードが、「受注番号」を主キーとして、こんなふうにレイアウトされているとする。
受注番号 得意先番号 得意先名 担当営業番号 担当営業名 商品番号1 商品名1 単価1 数量1 金額1 商品番号2 商品名2 単価2 数量2 金額2
1レコード中に「商品明細」が繰り返し存在する。(明細「商品番号・商品名・単価・数量・金額」が、一つのレコードの中に繰り返し存在している。)
このような繰り返し項目は、別のテーブルに分離するとともに導出項目を削除。
第1正規形のテーブル
受注番号 得意先番号 得意先名 担当営業番号 担当営業名
分割した結果、つぎのテーブルの主キーは、[受注番号,商品番号]の複合主キーとなる。
受注番号 商品番号 商品名 単価 数量
このうち、商品名と単価は、複合主キーの商品番号によってのみ決定される([商品番号]→[商品名]、[商品番号]→[単価])ので、別テーブルとする。
第2正規形のテーブル
受注番号 得意先番号 得意先名 担当営業番号 担当営業名
[得意先番号]→[得意先名]、 [担当営業番号]→[担当営業名]なので、別テーブルとする
受注番号 商品番号 数量

商品番号 商品名 単価

第3正規形のテーブル
第3正規形にすると以下のようになる。
受注番号 得意先番号 担当営業番号

得意先番号 得意先名

担当営業番号 担当営業名

受注番号 商品番号 数量

商品番号 商品名 単価

正規化の例2(データ付かつ少し変かも)

非正規形のテーブル
生徒 中学 教室 科目 先生
太郎 東中 東教室 国語,社会,数学 近藤先生(国語),桐山先生(社会),後藤先生(数学)
花子 西中 西教室 英語,社会,数学 立川先生(英語),桐山先生(社会),太田先生(数学)
一郎 東中 東教室 数学 後藤先生(数学)
生徒名は、一意である前提とすると、生徒名がキー項目となる。
また繰り返しを排除することで次の形になる。
第1正規形のテーブル
この結果、主キーは[生徒,科目]の複合主キーとなる。
生徒 中学 教室 科目 先生
太郎 東中 東教室 国語 近藤先生
太郎 東中 東教室 社会 桐山先生
太郎 東中 東教室 数学 後藤先生
花子 西中 西教室 英語 立川先生
花子 西中 西教室 社会 桐山先生
花子 西中 西教室 数学 後藤先生
一郎 東中 東教室 数学 後藤先生
このうち、中学は、複合主キーの生徒によってのみ決定される([生徒]→[中学])ので、別テーブルとする。
このときに教室もあわせて移動させないと後でおかしくなるが、それを説明するのが難しい
第2正規形のテーブル
生徒 科目 先生
太郎 国語 近藤先生
太郎 社会 桐山先生
太郎 数学 後藤先生
花子 英語 立川先生
花子 社会 桐山先生
花子 数学 後藤先生
一郎 数学 後藤先生

生徒 中学 教室
太郎 東中 東教室
太郎 東中 東教室
太郎 東中 東教室
花子 西中 西教室
花子 西中 西教室
花子 西中 西教室
一郎 東中 東教室
この状態だと、中学により教室は決定される([中学]→[教室])ので、別テーブルとする。
第3正規形のテーブル
生徒 科目 先生
太郎 国語 近藤先生
太郎 社会 桐山先生
太郎 数学 後藤先生
花子 英語 立川先生
花子 社会 桐山先生
花子 数学 後藤先生
一郎 数学 後藤先生

生徒 中学
太郎 東中
花子 西中
一郎 東中

中学 教室
東中 東教室
西中 西教室