コンテンツにスキップ

テーブル設計

テーブル名は英語ならば複数形/複数名詞で書ける。そうでなければそのテーブルにはどこか間違いがある。

主キー

必ず 1 行のレコードを特定できる列の組み合わせのことを指す。

テーブルに必ず 1 つだけ存在する必要がある。

複合キー

複数列を組み合わせて主キーになるものを複合キーという。

外部キー

別のテーブルの主キーになっているキー。

外部キーが設定されている場合、不整合が起こりうるのでデータの削除は子から順に操作するべき。

キーについて

キーとなる列にはコードや ID など表記体系の定まった固定長の文字列を用いる。

正規化

データベースで保持するデータの冗長性をなくすこと。第 1 正規形から第 5 正規形まである。通常は第 3 正規形までを考える。

第 1 正規形

1 つのセルの中に 1 つの値しか含まない状態。

配列は NG。列を増やすか、別途テーブルを切る。

第 2 正規形

部分関数従属をなくす。部分関数従属とは主キーの一部の列に対して従属する(一部の列が主キーの値によって決まっている)こと。

部分関数従属をなくすにはテーブルを分割する。

正規化は結合によって非正規形(分割前のテーブルの形式)に戻すことができる。

第 3 正規形

推移的関数従属をなくす。主キー以外の列に対して従属すること。詳細は達人に学ぶ DB 設計 徹底指南書の 3-6 を参照。