我的老师告诉我,如果一个实体位于BCNF中,则所有决定因素都应该是一个超级键,但是我正在努力理解这一点。我有一个电影数据库的实体,具有以下属性:Showtime_id(PK),Date,Showtime,Hall。
我知道Showtime_id是Date,Showtime,Hall的决定因素。而Date,Showtime和Hall是Showtime_id的决定因素,对吗?
但是这些是我实体中唯一的决定因素吗?还是
Showtime_id,Date-> Showtime,Hall
Showtime_id,Showtime->大厅,日期等等也是决定因素吗?
谢谢:)
我的老师告诉我,如果一个实体位于BCNF中,则所有决定因素都应该是一个超级键
错了。当/仅当非平凡FD的所有决定因素(功能相关性)都是超键时,BCNF才会满足。细节很重要。
我有一个电影数据库的实体
对于BCNF来说,重要的是,您有一个带有某些属性的表,并且知道FD持有什么和不持有FD。
如果您表示保留的唯一FD是{Showtime_id}之后的PK(主键),那么您需要说是。如果您不知道这些是什么,请提出一个问题。 (当某些FD持有时,由阿姆斯特朗公理从它们生成的所有其他FD都成立。但是然后,我们仍然需要知道是否还有其他FD。)
您必须告诉我们 FD持有什么。如果您不知道如何根据表行的含义和业务规则来确定这一点,请问另一个问题,在哪里引用FD的定义并询问是否卡住。 (并说出为什么您认为{Showtime_id}是PK。)(但是PK并不重要,CK(候选密钥)很重要。)