1

誰か他の人を意味しますか?無損失分解と依存関係の保存

私のロジックは、すべての依存関係が保持されていれば情報が失われることはなく、同様に、分解がロスレスであれば、関数の依存関係に違反していなければならないということです。

基本的に、依存関係の保持は、分解がロスレスであることを保証する方法です。

私はそれを受け入れる/拒否するのに苦労しています。これらの両方が互いに保証されているのでしょうか、あるいは、一方が他方なしで実現できるケースがありますか?

一般に

答えて

1

これらは2つの独立しものです:あなたは依存関係の保全だけでなく、依存関係を維持するが、それはないロスレスで分解することなく、無損失分解を持つことができます。

したがって、最初の質問に対する回答はでなく、で、どちらも他の質問を意味しません。

:しかし、これら二つの特性は、分解を保存依存性もロスレスであれば確立する十分(必要さえない場合)の条件を与え、次の基本的な結果により、「接続」することができ

依存関係を保持する関係スキーマR(T、F)の分解をρ= {R(T i、F i)}とする。いくつかのjについて、T jがR(T、F)のスーパーキーである場合、分解ρは無損失である。前のステップで得られた無スキーマは、元の関係のスーパーキーが含まれていない場合は、新しいスキーマを追加します。実は、このプロパティは3NFで関係を分解する「合成」アルゴリズムの最後のステップで適用される

元の関係の任意の候補キーと比較する。

これは、アルゴリズムがロスレスでありかつ依存関係を保持する分解を生成することを保証する一方で、BCNFにおける関係を分解する「解析」アルゴリズムは、場合によっては、機能的な依存関係の喪失。

+0

黄色い部分(私のような)をほとんど理解している人は、http://stackoverflow.com/a/26816032/2550406は灰色のブロックで同じことを言うと思います。私はこれをもっとよく理解するのを助けました – lucidbrot

+1

@lucidbrot、2つのものは異なっています。リンクされた解答の灰色部分は、分解が可逆でなければならない場合に満たされる条件を与える。上記の答えの黄色の部分ではなく、無分解のために保持しなければならない条件を示す定理を引用します。**分解が既に依存関係を保存している場合**。実際、問題は正確にはこのテーマ「Lossless decomposition vs Dependency Preservation」についてのものでしたが、2つのプロパティをリンクしたaswerでは関連はありません。したがって、2つの答えが異なる事実に関係していることがわかります。 – Renzo

+0

oh。私は、そのことに言及していただきありがとうございます。私は前にその違いを気付かなかった – lucidbrot

関連する問題