如何理解模式是否在 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.
这些是您的功能依赖项。
我非常理解 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.
这些是您的功能依赖项。