如何理解模式是否在 BCNF 中

How to understand whether a schema is in BCNF

我非常理解 BCNF 的概念,所以有人给我一个这种格式的关系,比如

R = {P, Q, S}
F = {PQ->S, PS->Q, QS->P}

我可以很容易地说这个关系在 BCNF 中,因为左侧的所有键也是超级键。但是如果我遇到像下图这样的现实问题:

那我如何确定这个模式是否在BCNF中?我将如何从模式创建功能依赖关系,然后发现 super keys?谁能给我一些解决此类问题的建议?

如果将架构​​转换为:

Code -> City, State
Flightnum -> .....
model -> ...
cid -> ....
Cid, flightnum, date -> ...

那么显然这不在 BCNF 中,但答案是以下模式是 BCNF,我无法理解他们是如何推导出它的等式的。

非正式地,如果模式的所有关系都在 BCNF 中,则该模式在 BCNF 中。

How will I create functional dependencies from the schema . . .

在没有任何其他上下文的情况下,我假设图像中带下划线的属性是主键中的属性。

所以我读到那张图片是在说

code->city, state
cid->name, city
etc.

这些是您的功能依赖项。