問題

だから私は今後のインタビューのための一般的な概念と用語に自分自身をリフレッシュしようとしている私のデータベースノートと材料を探しています。私は依存関係に固執しており、lossless-joinは逆コンパイルされています。私はすべてを検索し、多くのmathy方程式を見てきましたが、私は単純で単純な英語の応答や例を探しています。

私は完全に理解できない例を示す http://www.cs.kent.edu/~jin/DM09Fall/lecture6.ppt からのパワーポイントを見つけました。以下に掲載されています。

 R = (A, B, C)F = {A → B, B → C)
Can be decomposed in two different ways
R1 = (A, B),   R2 = (B, C)
Lossless-join decomposition:
         R1 ∩ R2 = {B} and B → BC
Dependency preserving
R1 = (A, B),   R2 = (A, C)
Lossless-join decomposition:
         R1 ∩ R2 = {A} and A → AB
Not dependency preserving (cannot check B -> C without computing R1 ⋈ R2)
 

だから私はA→B→B→Cがあることを理解していますが、A→B→A→CはBとCの間に参照やリンクがないことを意味します。

そう、

  1. Lossless-join分解は、データ全体がまだそのままであることを意味しますか?どちらのシナリオでも、最終的に両方のデータを取得できますか?これが間違っている場合は、私を修正してください! :)

  2. 2番目の分解でその接続BをCにすることの意義は何ですか?依存関係を保持しないようにするにはどうすればよいですか?

    • Aが削除されると、関係のないBとCだけが表示されます。

    • Bが削除された場合、まだA→Cがあります。

    • Cが削除されても、A→Bが残ります。

なぜなら、最初の例であっても、値を削除する際にsimiliarの結果が得られるからです。

  • Aが削除されても、B→Cの関係があります。

    • Bが削除されると、関係のないAとCだけが表示されます。

    • Cが削除された場合、A→Bの関係があります。

いずれにしても、各項目を削除すると、リレーションの2つのインスタンスと、関係のない2つの項目の1つのインスタンスが残ります

私の推測では、「中間人関係」(その用語はありますか)を削除する際に、例1と例AのBは、例1のA→B→B→Cを関連付けることができますが、例2ではA→Bに接続していません。

しかし、あなたが見ることができるように、なぜこれがデータ依存関係を引き起こすのか、「データ依存関係は何か」または「データ依存の例」をグーグルで検索している間に、単に意味をなさないだけです。

誰かが私のためにこれを明確にするのを助けることができれば、それは非常に高く評価されます。

  ベストアンサー

lossless Joinは、タプルのいずれかが失われたり、結合後に回復できないことを意味しません。 lossless joinは、「余分な」行(タプル)につながるspuriousタプルの生成を意味し、「情報」は失われると言われています。

単純に言えば、1つのサブスキーマの属性にFDの両側があるときに依存関係が保持されると思います。 (私が間違っていれば誰かが私を修正してください)。

  同じタグがついた質問を見る

databasedatabase-normalizationfunctional-dependencies