📜  什么是 PJNF(Project-Join Normal Form)?

📅  最后修改于: 2021-09-09 10:24:02             🧑  作者: Mango

第五范式(5NF) ,也称为项目连接范式(PJNF) 。它是一种数据库规范化级别,旨在减少关系数据库中的冗余。当且仅当一个关系满足 4NF 并且不存在连接依赖关系时,才称其为 5NF。如果一个关系可以通过连接多个子关系重新创建,并且这些子关系中的每一个都具有原始关系的属性子集,则称该关系具有连接依赖性。

什么是 PJNF

加入依赖的条件:
如果 R1 和 R2 在 Q 上的连接等于关系 R,那么我们可以说存在连接依赖,其中 R1 和 R2 是给定关系 R ( P、Q、S)。 R1 和 R2 是 R 的无损分解。

5NF的特性:
关系 R 是 5NF 当且仅当它满足以下条件:

  • R 应该是 4NF(不存在多值依赖)。
  • 它不能进行无损分解(连接依赖)

示例:考虑下面具有模式 R(供应商、产品、消费者)的关系R。主键是关系的所有三个属性的组合。

表格1
supplier product consumer
S1 P1 C1
S1 P2 C1
S2 P1 C1
S3 P3 C3
表 2
supplier product
S1 P1
S1 P2
S2 P1
S3 P3
表3
consumer product
C1 P1
C1 P2
C3 P3
表 4
supplier consumer
S1 C1
S2 C1
S3 C3

解释:
表 2、表 3 和表 4 连接时产生原始表(表 1)。因此连接依赖存在于表 1 中,因此表 1 不在 5NF 或 PJNF 中。但是表 2、表 3 和表 4 满足 5NF,因为它没有多值依赖,不能进一步分解(不存在连接依赖)。但这可能并非在所有情况下都是如此,即,当我们组合分解表时,结果表可能不等同于原始表,在这种情况下,原始表被称为 5NF,前提是它已经在 4NF 中。然而,5NF 并未应用于实际场景,仍然局限于理论概念。