はじめに
データベースに関する教科書的な説明がわかりにくかったので、具体例を通してわかった気になれる記事を書きます。
今回は「第1正規化」について書きます。
第1正規化
ここでは、エクセルで何かを管理している場合にありがちな、正規化されていないダメな例2つをもとに第1正規化について理解していこうと思います。
ダメパターン① : ひとつのセルに複数の情報がある
例えば、下記のようなテーブルがあるとします
・社員テーブル
社員ID | 名前 | 電話番号 |
---|---|---|
1 | 田中 | 080-1234-5678, 03-1234-5678 |
2 | 佐藤 | 090-1234-5678 |
このテーブルは第一正規形に違反しています。なぜなら、「電話番号」の列に2つの電話番号がカンマで区切られて入っているからです。この問題を解消するために、テーブルを以下のように修正します。
社員ID | 名前 | 電話番号 |
---|---|---|
1 | 田中 | 080-1234-5678 |
1 | 田中 | 03-1234-5678 |
2 | 佐藤 | 090-1234-5678 |
これで各セルには一つの値だけが入るようになり、第一正規化を満たすようになりました。
ダメパターン② : 「セルの結合」を使っている
セルの結合もよく見ますよね。
以下の (結合)
となっている部分が、その上のセルと結合していることを表しています。
・社員テーブル
社員ID | 名前 | 電話番号 |
---|---|---|
1 | 田中 | 080-1234-5678 |
(結合) | (結合) | 03-1234-5678 |
2 | 佐藤 | 090-1234-5678 |
第一正規形では、それぞれの行と列の交差点(セル)が一意の値を持つように設計することが求められます。つまり、一つのセルには一つの値のみが含まれるべきで、複数の行または列にまたがる情報(結合したセル)を持つべきではありません。
これも正しく正規化すると、繰り返しになってしまいますが、以下のテーブルのようになります。
・社員テーブル
社員ID | 名前 | 電話番号 |
---|---|---|
1 | 田中 | 080-1234-5678 |
1 | 田中 | 03-1234-5678 |
2 | 佐藤 | 090-1234-5678 |
最後に
筆者が以前勤めていたところでは、上記の2パターンの両方が混在していました。
それどころか、「その他」のカラムに大量のデータが書き込まれている始末でした。。。
できればもう見たくないですね。
みなさんの職場でもエクセルで何かを管理している場合、この記事を参考に、まずは第1正規化から試してみてください。以降の第2〜3正規化がとてもしやすくなります!
ここまで読んでいただきありがとうございました!!
もし本記事が少しでも理解の助けになったなら、ぜひイイね!をよろしくお願いします。
それではまた!(^_^)ノシ