データの正規化: 繰り返される要素を排除して表を整理すること
正規化の手順
一意:主キーを用いて分類したとき、属性が重複なく分類できていること
完全関数従属:どの主キーで選んでも一意に决まること
部分関数従属:主キーを選べば、一意に决まること
推移関数従属:完全関数従属の関係が複数続くこと
非正規形のデータ | 重複する要素が含まれている |
第 1 正規形 | 繰り返しされている情報を複数の行に分けたものを、 複数の表に分解し、重複しない表を作る |
第 2 正規形 | 部分従属変数を取り除くこと |
第 3 正規形 | 推移関数従属を取り除くこと |
ある問屋で働く人の手書きの売上げメモを読んでみよう。
これを一覧表にしてみるとどうだろうか?
6月15日 | 薄型さにーテレビ | テレビ | まり電器 |
6月15日 | 月立計算機 | PC | ゆっきーのPC |
6月15日 | ダコモフォーン | 携帯電話 | ともき電話取次店 |
6月15日 | サーテックPC | PC | やまがた電機 |
6月16日 | サムさんPC | PC | まる電器店 |
6月16日 | ダコモフォーン | 携帯電話 | おの商店 |
6月16日 | ぼうだフォーン | 携帯電話 | ともき電話取次店 |
6月16日 | サムさんPC | PC | ゆっきーのPC |
6月16日 | ダコモフォーン、ぼうだフォーン | 携帯電話 | おの商店 |
6月16日 | 薄型さにーテレビ | テレビ | やまがた電機 |
6月16日 | ラノボ思考版 | PC | まる電器店 |
6月17日 | サーテックPC、ラノボ思考版 | PC | ゆっきーのPC |
6月17日 | ラノボ思考版 | PC | まり電器 |
6月17日 | ぼうだフォーン | 携帯電話 | やまがた電機 |
これに関して第一正規化を行なう。2 つのデータが含まれているところを分解する。
6月15日 | 薄型さにーテレビ | テレビ | まり電器 |
6月15日 | 月立計算機 | PC | ゆっきーのPC |
6月15日 | ダコモフォーン | 携帯電話 | ともき電話取次店 |
6月15日 | サーテックPC | PC | やまがた電機 |
6月16日 | サムさんPC | PC | まる電器店 |
6月16日 | ダコモフォーン | 携帯電話 | おの商店 |
6月16日 | ぼうだフォーン | 携帯電話 | ともき電話取次店 |
6月16日 | サムさんPC | PC | ゆっきーのPC |
6月16日 | ダコモフォーン | 携帯電話 | おの商店 |
6月16日 | ぼうだフォーン | 携帯電話 | おの商店 | 6月16日 | 薄型さにーテレビ | テレビ | やまがた電機 |
6月16日 | ラノボ思考版 | PC | まる電器店 |
6月17日 | ラノボ思考版 | PC | ゆっきーのPC |
6月17日 | サーテックPC | PC | ゆっきーのPC |
6月17日 | ラノボ思考版 | PC | まり電器 |
6月17日 | ぼうだフォーン | 携帯電話 | やまがた電機 |
卸した取扱商品一覧と卸した店舗名の表に分けてみる。
6月15日 | 薄型さにーテレビ | テレビ |
6月15日 | 月立計算機 | PC |
6月15日 | ダコモフォーン | 携帯電話 |
6月15日 | サーテックPC | PC |
6月16日 | サムさんPC | PC |
6月16日 | ダコモフォーン | 携帯電話 |
6月16日 | ぼうだフォーン | 携帯電話 |
6月16日 | サムさんPC | PC |
6月16日 | ダコモフォーン | 携帯電話 |
6月16日 | ぼうだフォーン | 携帯電話 |
6月16日 | 薄型さにーテレビ | テレビ |
6月16日 | ラノボ思考版 | PC |
6月17日 | ラノボ思考版 | PC |
6月17日 | サーテックPC | PC |
6月17日 | ラノボ思考版 | PC |
6月17日 | ぼうだフォーン | 携帯電話 |
6月15日 | テレビ | まり電器 |
6月15日 | PC | ゆっきーのPC |
6月15日 | 携帯電話 | ともき電話取次店 |
6月15日 | PC | やまがた電機 |
6月16日 | PC | まる電器店 |
6月16日 | 携帯電話 | おの商店 |
6月16日 | 携帯電話 | ともき電話取次店 |
6月16日 | PC | ゆっきーのPC |
6月16日 | 携帯電話 | おの商店 |
6月16日 | 携帯電話 | おの商店 |
6月16日 | テレビ | やまがた電機 |
6月16日 | PC | まる電器店 |
6月17日 | PC | ゆっきーのPC |
6月17日 | PC | ゆっきーのPC |
6月17日 | PC | まり電器 |
6月17日 | 携帯電話 | やまがた電機 |
つぎに、部分従属変数を取り除く。A といえば B または C が該当する、 という状況ならば、A と B の表、A と C の表に分解する。
ここでは、この問屋にとって取引先が PC 取扱専門店、電話取扱専門店かどうか、 が分かる。卸した先をさらに分解すると
ゆっきーのPC | PC |
まる電器店 | PC |
おの商店 | 携帯電話 |
ともき電話取次店 | 携帯電話 |
やまがた電機 | PC |
やまがた電機 | テレビ |
やまがた電機 | 携帯電話 |
まり電器 | PC |
まり電器 | テレビ |
この例では、やまがた電機は得意先であり、 おの商店やともき電話取次店は携帯電話を専門に扱っていることが分かる。
一方、取扱った商品で表を分解すると
薄型さにーテレビ | テレビ |
月立計算機 | PC |
サーテックPC | PC |
サムさんPC | PC |
ラノボ思考版 | PC |
ダコモフォーン | 携帯電話 |
ぼうだフォーン | 携帯電話 |
となり、この店ではテレビと言えば、薄型さにーテレビとなる。このように、 あるキーを選ぶと必ず特定できるものを完全関数従属という。 取扱った商品の表でで商品を選ぶとかならずある商品区分に分解される。 このように、商品名を選ぶと必ず商品区分が分かるようなものを部分関数従属という。 部分関数従属をあらたに表にしなおすことを第二正規形と呼ぶ。
この問屋は、月立計算機は唯一ゆっきーの PC にのみ卸している。 すなわちこの問屋では、ゆっきーの PC といえば、月立計算機を卸す、 と分析できる。月立計算機は、月立工場からのみ納入されるとすると、 ゆっきーの PC から月立計算機の故障のクレームがあった場合は、 月立工場に直接連絡を取ればよい。すなわち、 連絡先一覧は月立計算機を選ぶと必ずどこにとってよいか分かる。 これらを表にし直すことを第 3 正規形という。