For Want Of A Better Word

正規化メモ

      2015/04/19

本当に、いまさらながら復習。メモ。
※第三正規刑まで。

[参考]:達人に学ぶDB設計

正規化とは

「データベースで保持するデータの冗長性を排除し、一貫性と効率性を保持するためのデータ形式」

  • 冗長性 = 一つの情報が複数のテーブルに散乱してしまっている。
  • 非一貫性 = 更新処理のタイムラグによって、データの不整合が発生したり、そもそもデータを登録することが出来ないようなテーブルを作ってしまう。
第一正規形
一つのセル(カラム)の中には、ひとつの値しか含まない。
  • 正規化時は、列では無く行でデータを分割することを推奨。
    • 行持ちは欠点が少ない。列持ちは分かりやすいけど、無用なNullや列の増減の対応が難しいというデメリットがある。
    • 双方の変換はSQL一発で出来るので、基本は拡張性の高い「行持ち」にして、性能問題などがあったら「列持ち」にすることを推奨、。
第二正規形
主キーの関数従属性を排除し完全関数従属の形式を作る。
  • 部分関数従属 = 主キーの一部の列に対して従属する列がある場合。
  • 完全関数従属 = 主キーを構成する全ての列に従属性がある場合 =これが出来れば第二正規化OK
  • メリット
    • 同じ値が複数行に登場しないようにすることで、データの一貫性を保つ。

※第二正規形を戻すのが結合(Inner Join)。

第三正規形
推移的関数従属を排除する。
  • 推移的関数従属 = テーブル内部に存在する段階的な従属関係のこと。

第二正規形で主キーに対して行ったことを、他の列にも適用させるってことだな。

 - db

  関連記事

mysql-logo
dotCloudにWordPressをインストール。

【参考】http://www.glidenote.com/archives/13 …

mysql-logo
Symfony2をつかってみる①

検証としてsymfony2を使ってみるのだ。 環境 CentOS release …

027
InnoDBでレプリケーション

http://www.irori.org/doc/mysql-rep.html …

mysql-logo
PHPerを使ってみる。

dotCloudは二つまでしか無料でできないので。。 PHPerも使ってみる。 …

mysql-logo
Cent5にphp5.3をインストール

なにやらRedhutのリポジトリが繋がらないので、 php53をインストールして …