兵庫WEB制作.com

【シリーズ:セキュリティ】テクノロジ – データベース設計

2018年10月29日

データベース設計では、属性を洗い出して、「正規化」というものを行います。

また、データ関係を表すE-R図を使います。

情報セキュリティ - テクノロジ

正規化

正しい規則に従い、テーブルの分割することを正規化といいます。

データベースの情報は更新されるので、更新時異状を排除することが正規化の目的になります。

テーブルに分けてデータ重複を排除して、一つのデータを1個所に保管し、データの整合性を保ちます。

データを更新しないのであれば、正規化は行わなくても構いません。加えて、正規化すると速度が遅くなるので、あえて正規化しないこともあるようです。

主キー、候補キー、関数従属性

正規化にあたり、候補キー主キーの概念を確認しておきます。

すべての属性を、一意に特定する属性または属性の組で最小のもの、というのが候補キーです。

例)社員[社員番号|氏名|メールアドレス]

上記の例で言えば、社員を一意に特定できるのは「社員番号」です。

氏名は同姓同名がいるかもしれませんし、メールアドレスは持っていない人もいるかもしれませんが、持っていればそれは一意となります。

こういった場合に、「社員番号」「メールアドレス」の二つが候補キーになります。

なお、どの候補キーにも当てはまらない属性を非キー属性といい、ここでは「氏名」がそれにあたります。

次に主キーについてです。

主キーは、データベースに実装するときに設定るキーで、各テーブルの行を一意に特定するため、主キーには候補キーのうちの一つを選びます。

そのため、主キー条件には、候補キーであることに加え、「NULLを含まないこと」というのも条件です。

NULLというのは、空の値のことで未定義値ともいい、「”値がない”という値」になります。

つまり、値がないときに設定するものになります。

したがって、例でいえば主キーは「社員番号」になります。

関数従属性というのは、ある属性Aの値が決まったら、別の属性Bの値も一意に決定できることをいいます。A→Bといった書き方になります。

関数従属性や主キー、候補キーを考えるときのコツは、あまり常識的なことは考えず、純粋にデータだけから導き出すのがコツです。

意味的にン成り立つはず、というのではなく、実際のデータの一つ一つをチェックし、本当に成り立っているかを確認していきましょう。

正規化の手順

正規化の実際の流れは次のようになります。

「非正規形」 → 第一正規形 → 第二正規形 → 第三正規形 → 高次の正規形

各正規形の条件は以下のようになります。

1.第一正規形

繰り返し属性を排除し、単純な表にしていきます。
データベースの1マスにデータが一つだけ入っているシンプルな状態になります。

2.第二正規形

第一正規形で、全ての非属性キーが候補キーに完全監修従属していることです。
完全監修従属というのは、すべての属性が候補キーの全部に関数従属している、
ということになります。

候補キーの一部だけに関数従属している属性を排除し、別の表にします。

3.第三正規形

第二正規形で、全ての非キー属性がいかなる候補キーにも推移的に関数属性していないことです。

推移的に関数従属するというのは、A→B→Cのようなかたちで、Aが決まればBが決まるが、Bが決まればAに関係なくCが決まる、といった関係です。Aが候補キー、Bが候補キー以外、Cは非キー属性である必要があります。そのため、候補キー以外の属性に関数従属している属性を排除して、別の表にします。

E-R図

実態(エンティティ)と関連(リレーションシップ)を表す図を、E-R図(Entity-Relationship Diagram)といいます。

対応関係(カーディナリティ)を記述しますが、対応関係には次の4種類があります

1.1対1の関連

[先生]-[生徒]

先生と生徒、家庭教師のようなマンツーマンの関係となることから、
一つのデータに一つのデータが対応します。

2.1対多の関連

[先生]→[生徒]

学校の担任のように、先生1人で複数の生徒に教える関係です。

3.多対1の関連

[先生]←[生徒]

複数の先生が、1人の生徒に質問する面接のような関係になります。

4.多対多の関連

[先生]⇔[生徒]

学校のように、複数の先生が複数の生徒に勉強を教えるような関係です。

– –

【ホームページの制作・更新・運用】お困りのことがあればご相談ください

カテゴリ

最新コラム

Facebook TWITTER LINE