情報処理基礎論 a 第 11 回 (データベースの正規化 ) 「データの正規化」 講義ノート目次

データの正規化: 繰り返される要素を排除して表を整理すること

正規化の手順

一意:主キーを用いて分類したとき、属性が重複なく分類できていること

完全関数従属:どの主キーで選んでも一意に决まること

部分関数従属:主キーを選べば、一意に决まること

推移関数従属:完全関数従属の関係が複数続くこと

非正規形のデータ 重複する要素が含まれている
第 1 正規形 繰り返しされている情報を複数の行に分けたものを、 複数の表に分解し、重複しない表を作る
第 2 正規形 部分従属変数を取り除くこと
第 3 正規形 推移関数従属を取り除くこと

正規化の例

ある問屋で働く人の手書きの売上げメモを読んでみよう。

これを一覧表にしてみるとどうだろうか?

6月15日 薄型さにーテレビ テレビ まり電器
6月15日 月立計算機 PC ゆっきーのPC
6月15日 ダコモフォーン携帯電話ともき電話取次店
6月15日サーテックPCPCやまがた電機
6月16日サムさんPCPCまる電器店
6月16日ダコモフォーン携帯電話おの商店
6月16日 ぼうだフォーン携帯電話ともき電話取次店
6月16日 サムさんPCPCゆっきーの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日サーテックPCPCやまがた電機
6月16日サムさんPCPCまる電器店
6月16日ダコモフォーン携帯電話おの商店
6月16日 ぼうだフォーン携帯電話ともき電話取次店
6月16日 サムさんPCPCゆっきーのPC
6月16日 ダコモフォーン携帯電話おの商店
6月16日 ぼうだフォーン携帯電話おの商店
6月16日 薄型さにーテレビテレビやまがた電機
6月16日ラノボ思考版PCまる電器店
6月17日ラノボ思考版PCゆっきーのPC
6月17日サーテックPCPCゆっきーのPC
6月17日 ラノボ思考版PCまり電器
6月17日 ぼうだフォーン携帯電話やまがた電機

卸した取扱商品一覧と卸した店舗名の表に分けてみる。

売れた品目リスト
6月15日薄型さにーテレビテレビ
6月15日月立計算機PC
6月15日ダコモフォーン携帯電話
6月15日サーテックPCPC
6月16日サムさんPCPC
6月16日ダコモフォーン携帯電話
6月16日ぼうだフォーン携帯電話
6月16日サムさんPCPC
6月16日ダコモフォーン携帯電話
6月16日ぼうだフォーン携帯電話
6月16日薄型さにーテレビテレビ
6月16日ラノボ思考版PC
6月17日ラノボ思考版PC
6月17日サーテックPCPC
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 取扱専門店、電話取扱専門店かどうか、 が分かる。卸した先をさらに分解すると

ゆっきーのPCPC
まる電器店PC
おの商店携帯電話
ともき電話取次店携帯電話
やまがた電機PC
やまがた電機テレビ
やまがた電機携帯電話
まり電器PC
まり電器テレビ

この例では、やまがた電機は得意先であり、 おの商店やともき電話取次店は携帯電話を専門に扱っていることが分かる。

一方、取扱った商品で表を分解すると

薄型さにーテレビテレビ
月立計算機PC
サーテックPCPC
サムさんPCPC
ラノボ思考版PC
ダコモフォーン携帯電話
ぼうだフォーン携帯電話

となり、この店ではテレビと言えば、薄型さにーテレビとなる。このように、 あるキーを選ぶと必ず特定できるものを完全関数従属という。 取扱った商品の表でで商品を選ぶとかならずある商品区分に分解される。 このように、商品名を選ぶと必ず商品区分が分かるようなものを部分関数従属という。 部分関数従属をあらたに表にしなおすことを第二正規形と呼ぶ。

この問屋は、月立計算機は唯一ゆっきーの PC にのみ卸している。 すなわちこの問屋では、ゆっきーの PC といえば、月立計算機を卸す、 と分析できる。月立計算機は、月立工場からのみ納入されるとすると、 ゆっきーの PC から月立計算機の故障のクレームがあった場合は、 月立工場に直接連絡を取ればよい。すなわち、 連絡先一覧は月立計算機を選ぶと必ずどこにとってよいか分かる。 これらを表にし直すことを第 3 正規形という。