テーブルとは

「テーブルとは」の編集履歴(バックアップ)一覧はこちら

テーブルとは」(2008/03/18 (火) 04:23:03) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

**テーブルの分類 |CENTER:名称|CENTER:別名|CENTER:判断基準|CENTER:定義内容| |リソース系|マスタ(系)|「~名」といえるか|ビジネスを行う上で必要な資産データを保持するテーブル。台帳的ともいえる。| |イベント系|トランザクション(系)|「~する」といえるか&br()「~日」といえるか|行為の記録データを保持するテーブル。| **正規化 まずは、各正規化の説明 :非正規形|全く正規化が行われていない状態のテーブル。 :第1正規形|非正規形のテーブルに対して以下のことを行ったもの。&br()1.テーブルに主キーを設定&br()2.繰り返し現れる列を別のテーブルに分離&br()3.導出列(他の列同士の演算によって算出できるなど)を削除 :第2正規形|複合主キーを構成する1つの列のみの値によって、決まる列は、別テーブルに分割する。&br()※難しくいうと、第1正規形から部分関数従属性を取り除くこと。 :第3正規形|主キーとなる列以外の値によって、他の非主キー列の値が決まることがないようにテーブルを分割した状態のこと。&br()※難しくいうと、第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正規形のテーブル |&u(){受注番号}|得意先番号|得意先名|担当営業番号|担当営業名| 分割した結果、つぎのテーブルの主キーは、[受注番号,商品番号]の複合主キーとなる。 |&u(){受注番号}|&u(){商品番号}|商品名|単価|数量| このうち、商品名と単価は、複合主キーの商品番号によってのみ決定される([商品番号]→[商品名]、[商品番号]→[単価])ので、別テーブルとする。 ****第2正規形のテーブル |&u(){受注番号}|得意先番号|得意先名|担当営業番号|担当営業名| [得意先番号]→[得意先名]、 [担当営業番号]→[担当営業名]なので、別テーブルとする |&u(){受注番号}|&u(){商品番号}|数量| |&u(){商品番号}|商品名|単価| ****第3正規形のテーブル 第3正規形にすると以下のようになる。 |&u(){受注番号}|得意先番号|担当営業番号| |&u(){得意先番号}|得意先名| |&u(){担当営業番号}|担当営業名| |&u(){受注番号}|&u(){商品番号}|数量| |&u(){商品番号}|商品名|単価| &br() &br()
**テーブルの分類 |CENTER:名称|CENTER:別名|CENTER:判断基準|CENTER:定義内容| |リソース系|マスタ(系)|「~名」といえるか|ビジネスを行う上で必要な資産データを保持するテーブル。台帳的ともいえる。| |イベント系|トランザクション(系)|「~する」といえるか&br()「~日」といえるか|行為の記録データを保持するテーブル。| **正規化 まずは、各正規化の説明 :非正規形|全く正規化が行われていない状態のテーブル。 :第1正規形|非正規形のテーブルに対して以下のことを行ったもの。&br()1.テーブルに主キーを設定&br()2.繰り返し現れる列を別のテーブルに分離&br()3.導出列(他の列同士の演算によって算出できるなど)を削除 :第2正規形|複合主キーを構成する1つの列のみの値によって、決まる列は、別テーブルに分割する。&br()※難しくいうと、第1正規形から部分関数従属性を取り除くこと。 :第3正規形|主キーとなる列以外の値によって、他の非主キー列の値が決まることがないようにテーブルを分割した状態のこと。&br()※難しくいうと、第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正規形のテーブル |&u(){受注番号}|得意先番号|得意先名|担当営業番号|担当営業名| 分割した結果、つぎのテーブルの主キーは、[受注番号,商品番号]の複合主キーとなる。 |&u(){受注番号}|&u(){商品番号}|商品名|単価|数量| このうち、商品名と単価は、複合主キーの商品番号によってのみ決定される([商品番号]→[商品名]、[商品番号]→[単価])ので、別テーブルとする。 ****第2正規形のテーブル |&u(){受注番号}|得意先番号|得意先名|担当営業番号|担当営業名| [得意先番号]→[得意先名]、 [担当営業番号]→[担当営業名]なので、別テーブルとする |&u(){受注番号}|&u(){商品番号}|数量| |&u(){商品番号}|商品名|単価| ****第3正規形のテーブル 第3正規形にすると以下のようになる。 |&u(){受注番号}|得意先番号|担当営業番号| |&u(){得意先番号}|得意先名| |&u(){担当営業番号}|担当営業名| |&u(){受注番号}|&u(){商品番号}|数量| |&u(){商品番号}|商品名|単価| ***正規化の例2(データ付かつ少し変かも) ****非正規形のテーブル |生徒|中学|教室|科目|先生| |太郎|東中|東教室|国語,社会,数学|近藤先生(国語),桐山先生(社会),後藤先生(数学)| |花子|西中|西教室|英語,社会,数学|立川先生(英語),桐山先生(社会),太田先生(数学)| |一郎|東中|東教室|数学|後藤先生(数学)| 生徒名は、一意である前提とすると、生徒名がキー項目となる。 また繰り返しを排除することで次の形になる。 ****第1正規形のテーブル この結果、主キーは[生徒,科目]の複合主キーとなる。 |&u(){生徒}|中学|教室|&u(){科目}|先生| |太郎|東中|東教室|国語|近藤先生| |太郎|東中|東教室|社会|桐山先生| |太郎|東中|東教室|数学|後藤先生| |花子|西中|西教室|英語|立川先生| |花子|西中|西教室|社会|桐山先生| |花子|西中|西教室|数学|後藤先生| |一郎|東中|東教室|数学|後藤先生| このうち、中学は、複合主キーの生徒によってのみ決定される([生徒]→[中学])ので、別テーブルとする。 このときに教室もあわせて移動させないと後でおかしくなるが、それを説明するのが難しい ****第2正規形のテーブル |&u(){生徒}|&u(){科目}|先生| |太郎|国語|近藤先生| |太郎|社会|桐山先生| |太郎|数学|後藤先生| |花子|英語|立川先生| |花子|社会|桐山先生| |花子|数学|後藤先生| |一郎|数学|後藤先生| |&u(){生徒}|中学|教室| |太郎|東中|東教室| |太郎|東中|東教室| |太郎|東中|東教室| |花子|西中|西教室| |花子|西中|西教室| |花子|西中|西教室| |一郎|東中|東教室| この状態だと、中学により教室は決定される([中学]→[教室])ので、別テーブルとする。 ****第3正規形のテーブル |&u(){生徒}|&u(){科目}|先生| |太郎|国語|近藤先生| |太郎|社会|桐山先生| |太郎|数学|後藤先生| |花子|英語|立川先生| |花子|社会|桐山先生| |花子|数学|後藤先生| |一郎|数学|後藤先生| |&u(){生徒}|中学| |太郎|東中| |花子|西中| |一郎|東中| |&u(){中学}|教室| |東中|東教室| |西中|西教室| &br() &br()

表示オプション

横に並べて表示:
変化行の前後のみ表示: