0
私はいくつかのテーブルをBCNFに分解しようとしています。私は最初のものが正しく分解されると信じていますが、他のものが分解できるかどうかはわかりません。すべてのヘルプは高く評価されBCNF分解(データベース設計)
**make(id, name, est, founder, city, state)**
id->name;
name->est, city, state, founder;
city->state
New Relations: [Key(id),name], [Key(name),est,city,state,founder], [Key(city),state]
**model(id, makeId, name, year, category)**
id->makeId, name;
name->year, category (not superkey, but can't really decompose)
**features(id, modelId, abs, tpms, sidebags, drl)**
id->modelID, abs, tpms, sidebags, drl
**user(id, name, pass, first, last, phone, isAdmin)**
id->name, pass, isAdmin; name->first, last, phone
**selling(id, price, modelId, mileage, userId)**
id->price, modelId, mileage, userID
他人を分解するのに役立ちましたら、それは大変ありがとうございます。私はまだアルゴリズムを適用する方法を学んでいるので、そのような場合にそれを行う方法を知ることは大きな助けになるでしょう。 – Leif
lhsはスーパーキーでなければなりません、そうですか? [Key(id)、makeId、name] [Key(name)、year、category]のように分割した場合、正しいでしょうか?助けてくれてありがとう。 – Leif
最初に名前を入れてください。与えられた関係の中の依存関係は、その関係のスーパーキー上になければならない。そのスーパーキーはオリジナルのスーパーキーである必要はありません。上記のコメントで示唆している分解は、正しい、依存性を保持し、ロスレスなBCNF分解です。 – Patrick87