自作アプリ作成記録5日目

朝少し学習進められたので備忘録。

正規形についてざっくりと学習

第1正規形
→一つのセルの中には一つの値しか含まない
このセルの値をスカラ値という

関数中属性
→ Y = Xのような関係性を持つこと。YはXに従属しているみたいな表現をする。

第2正規形
以下のような第1正規形のテーブルがあるとする。会社コードと社員IDが主キー。

会社コード 会社名 社員ID 社員名 年齢 部署コード 部署名
C0001  A商事 000A 加藤 40 D01 開発
C0001  A商事 000B 藤本 32 D02 人事

上記の場合、会社名は会社コードに従属している。
このように主キーの一部の列に対して従属する列がある場合、「部分関数従属」という。
主キーを構成する全ての列に従属性がある場合を「完全関数従属」と呼ぶ。
第2正規形は完全関数従属のみのテーブルを作ること。

第2正規形にするメリット
→上記テーブルの場合で考えると、社員情報が不明の会社名「C建設」という会社を登録したくても
登録することができない。
→主キーの一部に社員IDが含まれているので、これがNULL不可。

第3正規形
部署コード→部署名という関数従属が成立する
また{会社コード、社員ID}→部署コードという関数従属も成立する。つまり
{会社コード、社員ID}→部署コード→部署名が全体として成立している。
このような段階的な従属関係のことを推移的関数従属という。

正規化のまとめ

■更新時の不都合/不整合を排除するために行う
■正規化は従属性を見抜くことで可能
■正規形はいつでも元に戻せる

この記事が気に入ったらサポートをしてみませんか?