1

根据我在介绍中的教授。对于数据库理论,没有任何例子可以表明何时会出现这种情况,考虑到它是该理论的特定部分,这似乎有点奇怪。

我正在寻找的只是一个示例关系,它是第四范式,并且可以执行第五范式分解。或者(这可能更有可能)对此有一些见解(我的老师没有),如果实际上不可能创造出来,这似乎几乎是自相矛盾的......

4

1 回答 1

6

来自“数据库系统简介”:

考虑一个表 {supplier, part, project},其含义是指定的供应商将指定的部分提供给指定的项目。

如果对所有供应商 sx、所有部分 py 和所有项目 jz 的效果存在约束:

  • 如果供应商 sx 提供部分 py,并且
  • 供应商 sx 为项目 jz 提供物资,以及
  • 部分py用于项目jz,

然后必须遵循供应商 sx 向项目 jz 提供部分 py。

假设这样的约束是有效的,那么三列的单表设计是 4NF,而不是 5NF。

三列设计的更新异常如下:

假设表有两行,(s1,p1,j2) 和 (s1,p2,j1)。如果我们插入行 (s2,p1,j1) 而没有插入 (s1,p1,j1),那么就会违反约束。

假设该表有四行,(s1,p1,j2)、(s1,p2,j1)、(s2,p1,j1) 和 (s1,p1,j1)。如果我们删除行 (s1,p1,j1) 而不删除其他三个行之一,那么将再次违反约束。

于 2010-11-09T14:49:33.493 回答