BCNF和非平凡功能依赖

时间:2012-10-27 09:35:16

标签: database database-design relational-database

我正在尝试了解BCNF和非平凡的FD,但我有点困惑。我目前设计了以下数据库,根据我的理解,这应该是BCNF。

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

  

项目(item_id *,name,current_bid,buy_price,first_bid,num_bids,seller_id,start,end,description)   出价(buyer_id *,时间*,金额,item_id)
  用户(user_id *,位置,国家/地区,评级)
类别(cat_id *,   cat_name))ItemCategory(item_id *,category_id *)

您能否告诉我每种关系的非平凡功能依赖性是什么?

1 个答案:

答案 0 :(得分:4)

简单依赖的一个例子:在出价表中,(buyer_id,time)确定时间。这很简单,因为它是输入的一部分。

非平凡依赖的示例:在Category表中,cat_id可能确定cat_name。如果没有那么cat_id不能成为关键。

如果你告诉我们所有的FD,我们会告诉你哪些是非平凡的。

作为BCNF的附加句柄,这是一个方便的规则:任何只有一个候选键并且在3NF中的表也在BCNF中。除了你说过的那些之外,这些表中的任何一个都有其他候选键吗?

Users表可能不在3NF中。位置是否确定国家?