第 4 正規形( 4NF )は、データベースの正規化で使用される正規形です。1977年にRonald Faginによって導入された 4NF は、ボイス-コッド正規形(BCNF) の次のレベルの正規化です。第 2正規形、第 3 正規形、ボイス-コッド正規形が関数従属性に関係するのに対し、4NF は多値従属性と呼ばれるより一般的なタイプの従属性に関係します。テーブルが 4NF であるためには、そのテーブルのすべての非自明な多値従属性X Yに対して、{X, Y} がスーパーキーである必要があります。つまり、 XとYのすべての属性の組み合わせが候補キーかそのスーパーセットのいずれかである必要があります。 [1]
多値依存関係
リレーショナル データベース テーブルの列見出しが 3 つの互いに重ならないグループX、Y、Zに分割されている場合、特定の行のコンテキストでは、各見出しグループの下のデータをそれぞれx、y、zとして参照できます。多値依存関係 X Y は、テーブルに実際に出現する任意のx を選択し(この選択をx cと呼びます)、テーブルに出現するすべてのx c yz の組み合わせのリストをコンパイルすると、 x c はzに関係なく同じyエントリに関連付けられていることがわかります。したがって、基本的に、 z の存在はyの可能な値を制限する有用な情報を提供しません。
単純な多値依存関係 X Y は、 Y がXのサブセットであるか、XとY が一緒に関係の属性セット全体を形成する 依存関係です。
関数従属関係は、多値従属関係の特殊なケースです。関数従属関係X → Yでは、すべてのx は1 つの y だけを決定し、複数の y を決定することはありません。
例
次の例を考えてみましょう。
各行は、特定のレストランが特定の種類のピザを特定の地域に配達できることを示しています。
このテーブルにはキー以外の属性はありません。候補キーは {Restaurant、Pizza variety、Delivery area} のみだからです。したがって、このテーブルは BCNF までのすべての正規形を満たしています。ただし、レストランが提供するピザの種類が配達エリアの影響を受けないと仮定すると (つまり、レストランは、提供しているすべてのエリアにすべての種類のピザを提供している)、4NF を満たしていません。問題は、このテーブルが {Restaurant} 属性 (スーパーキーではない) に 2 つの重要な多値依存関係を持っていることです。依存関係は次のとおりです。
- {レストラン} {ピザの種類}
- {レストラン} {配達エリア}
スーパーキーでないキーに対するこれらの重要な多値依存関係は、レストランが提供するピザの種類がレストランの配達エリアとは無関係であるという事実を反映しています。この状況により、テーブルに冗長性が生じます。たとえば、A1 Pizza では Stuffed Crust を提供していることが 3 回示されていますが、A1 Pizza が Cheese Crust ピザの製造を開始すると、A1 Pizza の配達エリアごとに 1 つずつ、複数の行を追加する必要があります。さらに、これを誤って行うことを防ぐものはありません。A1 Pizza の配達エリアの 1 つを除くすべてに Cheese Crust 行を追加し、多値依存関係 {レストラン} {ピザの種類} を尊重しない可能性があります。
これらの異常の可能性を排除するには、提供される品種に関する事実を配達エリアに関する事実とは別のテーブルに配置し、両方とも 4NF である 2 つのテーブルを生成する必要があります。
対照的に、レストランが提供するピザの種類が配達エリアによって正当に異なる場合、元の 3 列の表は 4NF を満たします。
ロナルド・フェイギンは、4NFを達成することが常に可能であることを実証しました。[2]リッサネンの定理は、多値依存関係にも適用できます。
4NFの実践
1992 年の Margaret S. Wu の論文では、データベースの正規化の指導は、通常 4NF までには至らないと述べられています。これは、4NF に違反する (ただし、すべての下位正規形を満たす) テーブルは、ビジネス アプリケーションではほとんど見られないと考えられているためかもしれません。ただし、この考えは正確ではない可能性があります。Wu は、40 の組織データベースの調査で、20% を超えるデータベースに、すべての下位正規形を満たしながらも 4NF に違反するテーブルが 1 つ以上含まれていたと報告しています。[3]
4NFを超える正規化
4NF テーブルが高正規形5NFに準拠しない状況はまれです。これは、4NF テーブル内の属性値の有効な組み合わせを管理する複雑な現実世界の制約が、そのテーブルの構造に暗黙的に含まれていない状況です。
参照
参考文献
- ^ 「関係スキーマ R* が第 4 正規形 (4NF) であるとは、R* に対して非自明な多値依存関係 X Y が成立する場合、R* のすべての列名 A に対して関数依存関係 X → A も成立することを意味します。直感的に、すべての依存関係はキーの結果です。」Fagin, Ronald (1977 年 9 月)。「多値依存関係とリレーショナル データベースの新しい正規形」(PDF)。ACM Transactions on Database Systems。2 ( 1): 262–278。CiteSeerX 10.1.1.69.1872。doi : 10.1145 /320557.320571。S2CID 14617155。2007年 11 月 29 日に オリジナル(PDF)からアーカイブ。2008年4 月 26日に取得。
- ^ フェイギン、268ページ
- ^ Wu, Margaret S. (1992年3月). 「第4正規形の実際的な必要性」. ACM SIGCSE 速報. 24 (1): 19–23. doi :10.1145/135250.134515.
さらに読む
- Date, CJ (1999)、『データベースシステム入門』(第8版)。Addison-Wesley Longman。ISBN 0-321-19784-4。
- ケント、W. (1983)リレーショナルデータベース理論における 5 つの正規形の簡単なガイド、Communications of the ACM、vol. 26、pp. 120–125
