【初心者向け】データベース(DB)の正規化とは

はじめに

今回は、データベースの正規化について、初心者でもわかりやすく説明していきます。データベースの基礎的なことから段階的に学習したいという方は以下の記事を先に読むことをオススメします。

関連記事

はじめに 今回は、データベース(DB)基礎について、初心者でもわかりやすく説明していきます。 この記事はこんな方にオススメ! IT系の分野で活躍したいので、IT用語・知識を習得したい 基本情報技術者、応用情報技術[…]

関連記事

はじめに 今回は、DBの主キーと外部キーについて、初心者でもわかりやすく説明していきます。さらにデータベースの基礎的なことから学習したいという方は以下の記事を先に読むことをオススメします。 [sitecard subtitle[…]

この記事はこんな方にオススメ!

  • IT系の分野で活躍したいので、IT用語・知識を習得したい
  • 基本情報技術者、応用情報技術者などIT系の資格を取りたい
  • システムエンジニアとして復習がしたい

データベースの正規化とは

データベースで扱うデータに矛盾や重複がないよう最適化し、データを効率よく取り扱えるように設計することをデータベースの正規化といいます。正規化を行うメリットとしては、データの追加、更新、削除などに伴うメンテナンスの効率化、及びデータの呼び出しの効率化ができることです。また、正規化されていないデータベースを非正規系と呼び、非正規系から第1正規系⇨第2正規系⇨第3正規系と段階を踏んで正規化していきます。関係データベース(RDB)では第3正規系まで正規化されたデータベースが使われます。ではそれぞれの正規系について説明していきます。

非正規系とは

例えば、下のような3つの請求書があるとします。

請求書①

請求書②

請求書③

この3つの請求書を請求書単位のデータで一覧化すると次のようになります。

この一覧表では「費目コード」から「金額」までの項目が繰り返しされています。

このような繰り返し部分を持っているデータを非正規系のデータといいます。繰り返し部分を持っているデータベースは関係データベース(RDB)を扱う上では利用価値はありません。おおざっぱに言うと、この形ではシステムでは使えません。

第1正規系とは

第1正規系とは、前章で紹介した非正規系から繰り返し部分を除いた形を指します。第1正規系でのゴールはとにかく行と列が揃った二次元の表を目指していきます。非正規系から第1正規系の変換をイメージで捉えてみましょう。

まずは非正規系のイメージ

次に非正規系から第1正規系に変換イメージ

イメージは掴めたところで、前章の請求書の例をもとに第1正規化を行った結果が次のとおりです。

非正規化状態

第1正規化後

青色の行が非正規化時点で繰り返しとなっていた部分を新たに差し込んだ行です。綺麗な二次元の表になりました。また、ここで重要なポイントとして「金額」項目がなくなりました。「金額」項目は単価と数量の掛け算で求められます。後からでもシステム的に計算できる項目は第1正規化時点で省きます。省かなくても問題はありませんが、できるだけ綺麗な形を目指します。

次に第2正規系の説明ですが、第2正規系を説明する前に前提の知識として、関数従属と部分関数従属についておさえていきましょう。

関数従属とは

主キーのある値を取った時、それぞれの列の値も必ず決まるという関係を関数従属の関係にあるといいます。例えば、下の例でいうと、ある患者番号を取ったときに必ず患者名と住所がわかるという関係で、患者名、住所は患者番号に関数従属しているといいます。

部分関数従属とは

複合キーのそれぞれの列において、ある値を取った時、それぞれの列の値も必ず決まるという関係を部分関数従属の関係にあるといいます。例えば、下の例でいうと、請求書番号と費目コードの2つで複合キーであった場合、請求書番号が決まれば、請求書発行日、取引先コード、取引先名称がわかります。また、費目コードからは費目名と単価がわかります。このような関係を部分関数従属にあるといいます。

第2正規系とは

第2正規系とは第1正規化後のデータから部分関数従属している列を切り出した形を指します。では、非正規系から第1正規系への変換同様、第1正規系から第2正規系への変換もまずはイメージで捉えてみましょう。

まずは第1正規系イメージ

次に第2正規系イメージ

イメージは掴めたところで、第1正規化したデータをもとに第2正規化を行った結果が次のとおりです。

第1正規系状態

第2正規化後

第3正規系とは

第3正規系とは、第2正規系のデータから主キー以外の列に関数従属している列を切り出した形です。第2正規系までと同様、イメージで説明していきます。

第2正規系のイメージ

第3正規系のイメージ

イメージは掴めたところで、第2正規化したデータをもとに第3正規化を行った結果が次のとおりです。

第2正規系

第3正規化後

最終的に4つのデータとなりました。この4つのデータを関係データベース(RDB)として、各データのリレーションをはりながら、システムを構築していくことで、データメンテナンスの効率化、呼び出しの効率化を図ることになります。

おわりに

今回は初心者向けにデータベースの正規化ついてわかりやすく説明しました。他の記事で様々なIT用語を説明しているので、他の記事もチェックしてください!

関連記事

はじめに 今回は、データベース(DB)基礎について、初心者でもわかりやすく説明していきます。 この記事はこんな方にオススメ! IT系の分野で活躍したいので、IT用語・知識を習得したい 基本情報技術者、応用情報技術[…]

関連記事

はじめに 今回は、DBの主キーと外部キーについて、初心者でもわかりやすく説明していきます。さらにデータベースの基礎的なことから学習したいという方は以下の記事を先に読むことをオススメします。 [sitecard subtitle[…]

関連記事

はじめに 今回は、ミドルウェアの役割、種類、代表的なサービス について、わかりやすく説明していきます。 この記事はこんな方にオススメ! IT系の分野で活躍したいので、IT用語・知識を習得したい基本情報技術者、応用情[…]

関連記事

はじめに 私は基本情報技術者試験の勉強を始めて、3ヶ月で一発合格しました。 3ヶ月で合格した勉強方を本記事で記載していきます。 また、基本情報技術者資格を取得する目的は以下のどちらに当てはまるか明確にして下さい。 目的によっ[…]