Database BCNF与非平凡函数依赖

Database BCNF与非平凡函数依赖,database,database-design,relational-database,Database,Database Design,Relational Database,我试图理解BCNF和非琐碎的FDs,但我有点困惑。我目前设计了以下数据库,据我所知,这应该是BCNF 如果确实如此,你能提供反馈吗?请注意,*表示主键,用户不能同时对同一个项目出价。一个项目可以有多个类别。第一次投标是每个项目的唯一投标,表示最低要求投标金额。开始、结束是拍卖的日期 项目(项目id*、名称、当前投标、购买价格、首次投标、数量投标、卖方id、开始、结束、说明) 投标(买方id*、时间*、金额、项目id) 用户(用户id*、位置、国家/地区、等级)类别(类别id*, 类别名称)项目类

我试图理解BCNF和非琐碎的FDs,但我有点困惑。我目前设计了以下数据库,据我所知,这应该是BCNF

如果确实如此,你能提供反馈吗?请注意,*表示主键,用户不能同时对同一个项目出价。一个项目可以有多个类别。第一次投标是每个项目的唯一投标,表示最低要求投标金额。开始、结束是拍卖的日期

项目(项目id*、名称、当前投标、购买价格、首次投标、数量投标、卖方id、开始、结束、说明) 投标(买方id*、时间*、金额、项目id)
用户(用户id*、位置、国家/地区、等级)
类别(类别id*, 类别名称)
项目类别(项目id*,类别id*)


您还可以告诉我每个关系的非平凡函数依赖性是什么吗?

一个平凡依赖性的示例:在bids表中,(买家id,时间)决定时间。它很简单,因为它是输入的一部分

一个非常重要的依赖关系示例:在Category表中,cat_id可能决定cat_名称。如果没有,那么cat_id就不是钥匙

如果你告诉我们所有的FD,我们会告诉你哪些是非琐碎的

作为BCNF的另一个句柄,这里有一条方便的规则:任何只有一个候选键且在3NF中的表也在BCNF中。除了您所述的表外,这些表中是否有其他候选键


用户表可能不在3NF中。位置决定国家吗

一个简单依赖的例子:在bids表中,(买家id,时间)决定时间。它很简单,因为它是输入的一部分

一个非常重要的依赖关系示例:在Category表中,cat_id可能决定cat_名称。如果没有,那么cat_id就不是钥匙

如果你告诉我们所有的FD,我们会告诉你哪些是非琐碎的

作为BCNF的另一个句柄,这里有一条方便的规则:任何只有一个候选键且在3NF中的表也在BCNF中。除了您所述的表外,这些表中是否有其他候选键


用户表可能不在3NF中。位置决定国家吗

我关心的是第二张桌子。请大家:(我已经花了17个小时在这上面了……我关心的是第二张桌子。请大家:(我已经花了17个小时在这上面了……非常感谢Walter Milly!好吧,位置和国家互不依赖,用户可以在这两个地区写任何东西。比如位置:“地狱”,国家:“百慕大”我不确定每个表的所有FD,但据我所知,因为没有其他候选键(我再也看不到了,你能看到更多吗?),那么只有非平凡的依赖关系才是决定其余属性的关键因素,对吗?所以非平凡的DFs应该是:商品id->名称,当前出价,买入价格,首次出价,数量出价,卖家id,开始,结束,描述买家id,时间->金额,商品id用户id->位置,国家,评级类别id->商品id->类别iding FDs与数据库设计技能无关。它关系到一个人对主题和数据的理解程度。这是你的数据,而不是我的。你告诉我FDs是什么。你不是从数据库设计派生FDs。你从FDs派生数据库设计。你从分析数据派生FDs。非常感谢Walter Milly!好吧阳离子和国家互不依赖,用户可以向这两个区域写入任何内容。例如位置:“地狱”,国家:“百慕大”,我不确定每个表的所有FD,但据我所知,因为没有其他候选键(我看不到更多,你能看到更多吗?),那么只有非平凡的依赖关系才是决定其余属性的关键因素,对吗?所以非平凡的DFs应该是:商品id->名称,当前出价,买入价格,首次出价,数量出价,卖家id,开始,结束,描述买家id,时间->金额,商品id用户id->位置,国家,评级类别id->商品id->类别iding FDs与数据库设计技能无关。它关系到一个人对主题和数据的理解程度。这是你的数据,而不是我的。你告诉我FDs是什么。你不是从数据库设计派生FDs。你从FDs派生数据库设计。你从FDs派生数据库设计。你从分析数据派生FDs。