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 5 years have passed since last update.

応用カリキュラム 07 データベース正規化

0
Last updated at Posted at 2019-11-23

データベースをより単純な形に分解していくこと。

主に、第一正規形〜第三正規形までがある。
第四正規形以降も存在するが、パフォーマンスの低下を招く恐れがあるので、多くの場合第三正規形に止める。

正規化は手順を進める毎にテーブルが増えていくことになる為、参照時のSQLコマンドを実行する回数が増えていくことで速度が低下する。
正規化を行っていないデータベースは、非正規形という。

なぜ必要なのか

単純な形に分解しておかなければ、参照時に分析が必要になってしまう。
RDBにおいては、データの重複がある部分について変更があった場合
全ての重複部分について正確に更新を行わなければ、矛盾が発生してしまいデータの整合性が取れなくなってしまう。など

第一正規形

データが、一つのカラムに一つの値のみが設定されている状態。
繰り返し入力されている値は、カラムを一つにまとめて、各々一つずつの別レコードにする。

第二正規形

各テーブルにおいて、主キー基準で主キー以外のカラムが一意に決まる状態。
逆に言えば、他のカラムを一意に決めるカラム(主キー)が一つのテーブルに複数存在しない状態。

第三正規形

各テーブルの主キー以外のカラムについて、
カラム同士で依存関係があるカラムを分解する。


うん、カリキュラムで一緒くたにしてただけあって、第二正規形と第三正規形の違いが
ちょこっとググっただけではよく分からん。
第三正規化が必要になってる時点で、第二正規化が不十分だったんだろ?って認識になっちゃう。

でもそれで正しいのかもしれない。
第二正規化の時点では主キーがそれ以外のカラムを一意に決めているが、
第三正規化においては、「あれっ?主キー以外にもまだ主キーにできそうな項目あるじゃん!」
っていう、第二正規化での見逃しを見つけるとか、複数の主キーで一意に決まるように見えるカラムを見つける作業
なのかな?という認識。

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?