0
割り当て:属性が他のものとは関係がないときに分解をBCNFする方法
関係を考えてみましょう(,,,,,,)とそのFDの集合= {→、→、→、→ 、→、→}。 BCNFにない場合は、それをBCNF関係の集合に分解します。あなたの分解が損失のない結合であることを確認してください。
説明
こんにちは、私は私のデータベースの宿題に取り組んでいます(リレーションデザインの章)。 私は、クラス内の事例に基づいて基本的なプロセスを命じたと思います。 しかし、ここでの扱いにくい部分は、他と関係のない属性「H」を持っているため、私を深く混乱させます。私はそれをどのように扱うべきですか?
未遂答え
• We start from a schema: ABCDEGH, since H has no relations with any attribute, we decompose it into tables: H and ABCDEG
• The FDs for ABCDEG remains the same, therefore key is E.
• The FD D →AG violates BCNF (FD with non-key on LHS).
• To fix, we need to decompose into tables: ADG and BCDE
• FDs for ADG are { D → AG }, therefore key is D, therefore BCNF.
• FDs for BCDE are { B → CD, E → D, BC → DE, E → B, CD → BE }
• Key for BCDE is also E, and FD B → CD violates BCNF (FD with non-key on LHS).
• To fix, we need to decompose into tables: BCD and BE
• FDs for BCD are { B → CD } therefore key is B, therefore BCNF.
• FDs for BE are { E → B } therefore key is E, therefore BCNF.
• Final schema: H, ADG, BCD, BE
私の過ちについてのご意見は何ですか?
ステップ1が間違っています。どのようなリファレンスを使用していますか? – philipxy
"同じまま"とはどういう意味ですか?あなたはABもCKだと気づいていますか?あなたは関係が複数のCKを持つことができることを認識していますか?アルゴリズムをフォローしているとき、またはそれに参照をつけているときは、それに続く部分のトレースだけでなく、それを参照してください。また、「他人との関係がない」という用語は、専門用語としての使用方法が異なるという意味で、一般的な意味で「関係」を使用しています。あなたは、Hが他の属性を持つ任意のFDに言及されていないことを意味します。 – philipxy