首页 > 试题广场 >

当关系模式 R(A,B)已属于 3NF,下列说法中() 是正

[单选题]
当关系模式 R(A,B)已属于 3NF,下列说法中() 是正确的。
  • 它一定消除了插入和删除异常
  • 仍存在一定的插入和删除异常
  • 一定属于 BCNF
  • A 和 C 都是
因为5NF ⊆ 4NF ⊆ BCNF ⊆ 3NF ⊆ 2NF ⊆ 1NF.
BCNF的要求比3NF更加严格,所以C、D错。
至于A,且听我慢慢道来:
作者:知乎用户
链接:https://www.zhihu.com/question/24696366/answer/29189700
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

要了解 BCNF 范式,那么先看这样一个问题:

若:

  1. 某公司有若干个仓库;
  2. 每个仓库只能有一名管理员,一名管理员只能在一个仓库中工作;
  3. 一个仓库中可以存放多种物品,一种物品也可以存放在不同的仓库中。每种物品在每个仓库中都有对应的数量。

那么关系模式 仓库(仓库名,管理员,物品名,数量) 属于哪一级范式?

答:已知函数依赖集:仓库名 → 管理员,管理员 → 仓库名,(仓库名,物品名)→ 数量 码:(管理员,物品名),(仓库名,物品名) 主属性:仓库名、管理员、物品名 非主属性:数量 ∵ 不存在非主属性对码的部分函数依赖和传递函数依赖。∴ 此关系模式属于3NF。

基于此关系模式的关系(具体的数据)可能如图所示:

<img src="https://pic3.zhimg.com/68d080d437732aad8cfe451b427849d6_b.jpg" data-rawwidth="625" data-rawheight="296" class="origin_image zh-lightbox-thumb" width="625" data-original="https://pic3.zhimg.com/68d080d437732aad8cfe451b427849d6_r.jpg">

好,既然此关系模式已经属于了 3NF,那么这个关系模式是否存在问题呢?我们来看以下几种操作:

  1. 先新增加一个仓库,但尚未存放任何物品,是否可以为该仓库指派管理员?——不可以,因为物品名也是主属性,根据实体完整性的要求,主属性不能为空。
  2. 某仓库被清空后,需要删除所有与这个仓库相关的物品存放记录,会带来什么问题?——仓库本身与管理员的信息也被随之删除了。
  3. 如果某仓库更换了管理员,会带来什么问题?——这个仓库有几条物品存放记录,就要修改多少次管理员信息。

从这里我们可以得出结论,在某些特殊情况下,即使关系模式符合 3NF 的要求,仍然存在着插入异常,修改异常与删除异常的问题,仍然不是 ”好“ 的设计。

发表于 2017-09-12 15:45:00 回复(0)
R(A,B)如果A,B理解为关系的属性那选D啊
发表于 2018-11-23 10:05:13 回复(0)