1

この質問は、リレーショナルデータベースの設計理論からのものです。分解はリレーショナルデータベースで可逆であるか

は、我々は受け入れの方法は、異常排除(冗長更新をして異常を削除)にある関係を分解することを知っています。分解の目的は、異常を示さないいくつかの関係を置き換えることです。 BCNF,3NFのような条件と、データベースをその形式に分解するアルゴリズムがあります。

一般に、分解プロセスは常に可逆的である(つまり、dbの初期状態を復元できる)と言えるでしょうか?はいの場合、それを理論的に証明する方法は?

答えて

3

スキーマの「分解」は、それぞれがその属性のサブセットを持つスキーマの集合です。通常、スキーマには制約が付いています。 「ロスレス」分解とは、構成要素の値が元の属性に投影されている場合、構成要素は元の構成要素に戻る。 (不可逆分解の成分の結合は実際には元の行の適切なスーパーセットを有する)分解は、ある結合依存性が保持されている場合に限り、無損失である。

したがって、正規化は約の非損失の分解です。

頻繁に私たちはたっぷりとしていますが、文脈の中で私たちはすべてそれが非ロスであると知っているときに "分解"について話します。

多くの場合、データベースの状態が記録されるため、元に戻す代わりに、または損失のある分解を使用するデザインに間違っていることがあります。 正規化していますが、元の正規化されたバージョンではありません。

すべての大学/大学の教科書はこれらの定義とプロパティを明確にし、おそらく証明の概要を示します。証明のために、the Alice book、Abiteboul、HullによるFoundations of Databases & Vianuを参照してください。

+0

あなたの答えは正しい方法で私をもたらしました。私は "データベースシステム - 完全な本"で私の答えを見つけました。どうも :) –

関連する問題