0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【初学者向け】データベースの正規化をわかった気になろう!(第1正規化)

Last updated at Posted at 2023-05-12

はじめに

データベースに関する教科書的な説明がわかりにくかったので、具体例を通してわかった気になれる記事を書きます。
今回は「第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正規化がとてもしやすくなります!

ここまで読んでいただきありがとうございました!!
もし本記事が少しでも理解の助けになったなら、ぜひイイね!をよろしくお願いします。
それではまた!(^_^)ノシ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?