【PostgreSQL】【正規化】リレーショナルデータベース(RDMS)の基本【Part.2】

データベースを勉強し始める方に取って最初の難関が「正規化」です。

 

正規化には第1正規化から第5正規化まであります。

  • 第1正規化
  • 第2正規化
  • 第3正規化
  • 第4正規化
  • 第5正規化

 

 

正規化の目的

  • データの冗長性をなくすため
  • データの更新時に不整合が起きづらいようにするため

 

非正規形

正規化されていない状態のテーブルを「非正規形」と呼びます。

 

 

第1正規化

  • テーブルの行を一意に特定するための主キーを設定します。
  • 繰り返し現れる列のデータをグループ化して、別の表に切り離します。
  • 導出項目(他の属性から算出できる項目)を削除します。

 

※一意(いちい)とは「こうであると、値が1つに特定している状態」のことを言います。

 

第2正規化

主キーに他の列が完全関数従属している状態にすることを「第2正規化」と言います。

 

完全関数従属とは

ある列の値(A)が決まれば、別の列の値(B)が一意に決まるとき、(B)は(A)に関数従属していると言えます。

■表記

「A → B」

 

 

関数従属の表し方

  • A が B に関数従属している ← 「B → A」
  • Z が A と B に完全関数従属している ← 「{A,B} → Y」 
  • Z が A に部分関数従属している ← 「{A,X,Y} → Z」かつ「A → Z」
  • C が A に推移関数従属している(A が決まると B が決まり、B が決まると C が決まる) ← 「A → B → C」かつ「A → C」 

 

第3正規化

第2正規化したテーブル内の主キー以外の列に注目します。

主キー以外の列の間の(非キー列間の)関数従属性を取り除いたものが第3正規形と言います。

非キー列の関数従属性のことを「主キーからの推移的関数従属」と言います。

推移的関数従属とは「Xが決まればYが決まり、Yが決まればZが決まる」ことを言います。

 

 

 

正規化をしないとどうなるのか?

データの更新を続けていくとデータの不整合が発生する可能性があります。

 

 

 

PostgreSQL シリーズ

今まで学習した PostgreSQL の技術をシリーズとしてまとめました。

 

【PostgreSQL】PostgreSQL の特徴と基本【Part.1】

 

【PostgreSQL】【正規化】リレーショナルデータベース(RDMS)の基本【Part.2】

 

【PostgreSQL】PostgreSQL のインストールと初期設定【Part.3】

 

【PostgreSQL】PostgreSQL の標準付属ツールの説明とコマンド手順【Part.4】

 

【PostgreSQL】PostgreSQL の設定ファイル(postgresql.conf、pg_hba.conf)の解説【Part.5】

 

【PostgreSQL】PostgreSQL のバックアップ手順とリストア手順【Part.6】

 

【PostgreSQL】PostgreSQL の運用管理(ユーザー管理、バキューム)【Part.7】

 

【PostgreSQL】PostgreSQL の基本的な SQL文 とオブジェクトについて【Part.8】

 

【PostgreSQL】PostgreSQL の組み込み関数、ユーザー定義関数、演算子について【Part.9】

 

【PostgreSQL】PostgreSQL のトランザクションについて【Part.10】

 

【PostgreSQL】SQL文【Part.11】

 

【PostgreSQL】テーブル設計(データ型、制約)【Part.12】

 

 

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください