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

BCNF很简单:只需确保单个关系中属性集之间的所有依赖关系都依赖于该关系的超键。你的第一个关系很接近,但第二个关系需要省略"状态"。通常,人们止步于3NF,因为并非所有与fd的关系都具有保持依赖性的BCNF分解。你需要帮忙分解其他关系吗?如果你需要的话,我会帮你的。

编辑:帮助其他关系

销售和功能很好。为了在BCNF中,模型和用户需要在名称上进行拆分;您指出这不是您可以为模型做的事情。为什么?名字意味着箭头右边的东西,对吧?

最新更新