MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

ドメインキー正規形(DKNF)とは?データベース正規化の最上位形を解説

ドメインキー正規形(DKNF:Domain-Key Normal Form)は、データベースの正規化における最も高い水準の正規形です。データベースに挿入異常や削除異常が一切存在しない状態を指し、これらの更新に関する異常が完全に除去されていることが最大の特徴です。DKNFでは、すべての制約が「ドメイン制約」と「キー制約」によって検証・保証されます。

あるテーブルがドメインキー正規形であるためには、そのテーブルが第4正規形(4NF)、第3正規形(3NF)など、それより低い段階のすべての正規形を満たしている必要があります。DKNFは以下の3つの制約に基づいて成り立っています。

1. ドメイン制約

ドメイン制約とは、属性が取りうる値の集合を定義するものです。例えば、社員ID(EmployeeID)は必ず4桁の数字でなければならない、といったルールが該当します。

EmpIDEmpNameEmpAge
0921Tom33
0922Jack31

上記の例では、EmpIDは4桁の数値というドメイン制約を満たしています。

2. キー制約

キー制約とは、ある単一の属性、または複数の属性の組み合わせが候補キー(candidate key)として機能するという制約です。候補キーにより、リレーション内のタプルを一意に識別できることが保証されます。

3. 一般制約

一般制約とは、すべてのリレーションの集合に対して課される述語(predicate)のことです。業務ルールなど、ドメイン制約やキー制約だけでは表現できない条件を指します。

DKNFの成立条件と実務上の位置づけ

DKNFにおいては、リレーションに適用されるすべての制約が、ドメイン制約とキー制約の論理的な帰結として表現できなければなりません。つまり、一般制約で表現していた内容も、ドメイン制約とキー制約のみで完全に記述できる状態が理想となります。

ただし、この条件を厳密に満たすことは非常に難しいため、DKNFの実務上の有用性は限定的であると言われています。理論的には完璧な正規形ですが、実際のデータベース設計では第3正規形(3NF)やボイスコッド正規形(BCNF)までの適用が一般的です。

  1. 第2正規形(2NF)とは?部分関数従属の排除を具体例で解説

    第2正規形(2NF)とは?データベース正規化における第2段階が「第2正規形(2NF:Second Normal Form)」です。あるテーブルが2NFと呼ばれるためには、以下の条件をすべて満たす必要があります。リレーションが第1正規形(1NF)のルールをすべて満たしていることすべての非キー属性が主キーに対して完全関数従属していることつまり、第2正規形は主キーへの部分関数従属を排除するための正規形です。ここからは、具体的な例を使って2NFについて詳しく見ていきましょう。例:2NFに違反するテーブル<StudentProject>StudentIDProjectIDStudentNam

  2. 第3正規形(3NF)とは?条件と変換例をわかりやすく解説

    第3正規形(3NF)とは?データベースの正規化における第三段階が第3正規形(3NF:Third Normal Form)です。テーブルが3NFであるためには、次の2つの条件を満たす必要があります。リレーションが第2正規形(2NF)であること推移的関数従属が存在しないこと推移的関数従属とは、「A → B」「B → C」という依存関係から、間接的に「A → C」が導かれてしまう状態を指します。このような依存関係が残っていると、データの冗長性や更新時の不整合が発生しやすくなります。例:3NFに違反するテーブル次の <MovieListing> テーブルを見てみましょう。Movie_IDL