Developer

【SQL基礎】データベースの正規化1
2021.07.29
Lv1

【SQL基礎】データベースの正規化1

正規化とは

リレーショナルデータベースを設計するうえで、正規化という考え方は必須です。

正規化を一言でいうと、「テーブル(表)を整理すること」です。

正規化を行うことで、データの管理がしやすくなるというメリットがあります。

正規化にはいくつかの段階がありますが、本ブログでは一般的な正規化の過程で現れる非正規形、第一正規形、第二正規形、第三正規形を扱います。(第二正規形と第三正規形は次回


非正規形

以下のテーブルは正規化が行われていない表です。

(正規化が行われていない状態を非正規形と呼びます。)

ここに、新たにチョコレートとガムとクッキーを注文されたら表はどうなるでしょうか。

「商品ID」、「商品名3」、「単価」、「注文数」という列を追加で作成しなければなりません。

品数が増えれば増えるほど表は横に長くなってしまいます。


第一正規形

データベースにおいてカラム(列)は固定的に扱われます。

挿入される項目が増えるからといってむやみに拡張することはできません。

先ほどのテーブルのカラムを次のように修正してデータを縦方向に重ねてみるとどうでしょうか。

カラムは固定的に扱えそうですが、まだよくないところがあります。

それは、セルが結合されている部分です。

データベースにおいては1行が1件のデータとして扱われるため、2行分以上のデータを1件として扱うことができません。

以上を踏まえてテーブルを修正すると以下のようになります。

1行に1件のデータが登録されている状態になり、これで一応データベースに登録できる形式にはなりました。

この状態を第一正規形と呼びます。

第一正規形は、テーブルの横方向の重複をなくすことで実現できます。

次回の記事では第二正規形と第三正規形を扱います。

学習のポイント

・データベースの正規化とは、データを管理しやすくするためにテーブルを整理することである。

・正規化が行われていない状態を非正規形、正規化の第一段階が済んだ状態を第一正規形と呼ぶ。

・第一正規形は、テーブルの横方向の重複をなくすことである。

 

 

連載目次リンク

SQL基礎 連載目次

関連する連載リンク

SQL練習問題 一覧まとめ