データベースの構造
Chat-spaceの初回コードレビューにて、テーブルの作成でボロクソに指摘受けたので、DBについて学んだことまとめる
...
3層スキーマ
スキーマとはデータベースの構造であり、3層スキーマとはスキーマを3つの階層にわけて定義する方式のこと。
概念スキーマ
- 開発者から見たデータベース。 DBの論理データやデータ同士の関係など定義する。(テーブル定義)
正規化
第一正規化
レコード内の繰り返しを避けたもの。同一カラム内にある複数の値をわけて一つのレコードにしたりする。
第三正規化
主キーに対して全ての属性が従属であり、かつ推移的関数従属(後述)も存在していないテーブル
例えば会社ID 社員ID 社員名 年齢 部署ID 部署名 で定義されたテーブルがあるとする。(アンダーラインは主キーを表す)
社員IDがわかれば部署IDがわかる。部署IDがわかれば部署名がわかる。これを従属しているという。
つまり社員IDがわかれば部署名もわかる。これを推移的関数従属といって、これを解消するのが第三正規化である。
ER図
テーブル同士の関係性を図にしたもの。