SQL攻略 - Web上でSQLを実行しながらマスターするサイト
English ver [2 Basis for understanding normalization] is here.
ホーム >> 正規化攻略 - 正規化を理解するための前提知識

正規化を理解するための前提知識

正規化を理解するために必要な、関数従属とキーの考え方と、その関係について解説します。

1.関数従属という考え方

以下のテーブルを見てください。

顧客コード顧客名住所電話番号

主キーは顧客コード、それ以外の項目は顧客名、住所、電話番号です。主キーとそれ以外の項目の関係を関数従属といいます。

ちょっと小難しい言葉なので補足すると、y=xで(中学の数学に出てくる関数)xが例えば1だとyは1ですよね。y=2xならxが1でyは2。まぁ当たり前なのですが、xが決まればyが決まる。このような状態をyはxに関数従属しているといいます。

同じように顧客コードが決まれば、顧客名、住所、電話番号は決まります。つまり、顧客名、住所、電話番号は顧客コードに関数従属しているんです。

2.キーについて

リレーショナルデータベースは、キーとそれ以外の項目からなっています。キーというのはそれがわかれば、他の値が決定するという、先ほど説明した関数従属させる側の項目のことです。

キーにはいくつかの種類があって、テーブルの中から、レコードを特定できるキー項目のことを候補キーといいます。その中でも中心的なキー項目を主キーといいます。キー項目は、一つの項目からなることもありますし、複数の項目が合せてキーということもあります。

例えば銀行口座を例にすると・・・。


  • 口座番号は一意であり、顧客を特定できる。
  • 店番号と顧客番号ふたつで一意になり、顧客を特定できる。
口座番号店番号顧客番号氏名住所残高

この場合、候補キーは、口座番号と、店番号と顧客番号を合せたものになります。

主キーになるものはこのうちのどちらかで、テーブルが例えば口座の情報であれば、口座番号が主キーになりますし、顧客のテーブルであれば、店番号と顧客番号が主キーになります。

3.関数従属とキーの関係

正規化されたテーブルはキー項目とそれ以外の項目のみになります。逆に言うと、正規化とは、そのテーブルの主キーと、それに関数従属する項目のみにしてやるプロセスといえます。

ここでは、関数従属とキーとその関係について説明しました。これで正規化を学ぶための基本的な考え方の習得は完了です。