For Want Of A Better Word

正規化メモ

      2015/04/19

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

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

正規化とは

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

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

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

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

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

 - db

  関連記事

mysql-logo
プログラミングPHP 第8章( DB )ポイント

PHPによるDBへのアクセス 方法は2通り ①データベース固有の拡張モジュールを …

mysql-logo
xamppの旧バージョンダウンロード

案件ごとにいろんなphp apacheのバージョンを組み合わせるのが面倒臭い。 …

mongo-logo
MongoDB 位置情報 リンク

位置情報検索が出来るという驚きとともに、参考サイトをメモっておく。 平面と球面ど …

mongo-logo
MongoDBのインストールから、insert select delete update

CentOS MongoDBインストール 大体ここからで完結する。素晴らしい。 …

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

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