2

我通过一些正常化的例子阅读,但我遇到了一个我不明白的地方。正常化3NF

网站的例子是位于:http://cisnet.baruch.cuny.edu/holowczak/classes/3400/normalization/#allinone

我不明白的是“第三范式”

在我脑子里,我看到了传递依赖于EMPLOYEE_OFFICE_PHONE (Name, Office, Floor, Phone)为以下Name->->Office|FloorName->->Office|Phone

的一部分

笔者拆分表EMPLOYEE_OFFICE_PHONE (Name, Office, Floor, Phone)EMPLOYEE_OFFICE (Name, Office, Floor)EMPLOYEE_PHONE (Office, Phone)

从我一开始的判断,我仍然看到Name->->Office|Floor中的传递依赖,所以我不明白它为什么在3NF。在Name->->Office|Floor中表示存在传递依赖关系吗?

推理的传递性: 这里是我的函数依赖

  1. 名称的列表 - >办公
  2. 名称 - >地板
  3. 名称 - >手机
  4. 办公室 - >电话
  5. 办公室 - >楼(这是不正确的?为什么?

感谢您的帮助!

回答

1

5)您假设这里命名为sheme ......办公室4xx必须位于第4层...... 5xx必须位于第5层......如果存在这样的方案,您可以拥有您的依赖...只要这不是规范的一部分......不。 5退出游戏......

0
1. Name -> Office 
2. Name -> Floor 
3. Name -> Phone 
4. Office -> Phone 
5. Office -> Floor (Is this the incorrect one? and why? 

(1)您和作者和我同意名称 - >办公室。

(2)您和作者同意Name-> Floor。尽管完全基于样本数据,但Office-> Floor也是如此。我会问这样一个问题来探讨这类问题:“如果一个办公室空着,我是否仍然知道该办公室在哪个楼层?” (是)

这些事情表明存在传递依赖关系,Name-> Office和Office-> Floor。所以我会不同意你和作者在这个问题上。

(3)你说Name-> Phone。作者说办公室 - >电话。作者还说,“每个办公室只有一个电话号码。”所以给予Office的一个价值,我知道Phone的唯一价值。给出一个Name的值,我知道Phone的唯一值。我会问这个问题:“如果我搬到另一个办公室,我的电话号码跟着我吗?”如果是,则Name-> Phone。如果没有,则Office->电话。

这里没有足够的信息来回答这个问题,而且我曾在两个办事处工作,因此现实世界的经验对我们也无能为力。在这种情况下,我必须与作者站在一起,尽管我认为对于规范化示例并不是很好的想法。

(4)这实际上只是上面(3)的扩展。

(5)参见上面的(2)。这与命名方案没有任何关系,并且您不需要假设5xx号办公室位于5楼。唯一相关的问题是:给定Office的一个值,Floor是否有且仅有一个值? (是)我可以通过询问“一个办公室能够在多个楼层上吗?”来探讨这个问题吗? (在现实世界中,这是远程可能的,但示例数据不支持这种可能性。)

一些额外的FD,仅基于样本数据。

Phone->Office 
Phone->Floor 
Office->Name 
0

首先,让我清楚地界定3NF: - 一个关系是3NF,如果满足以下条件: - 1)关系是2NF 2)没有非主属性是及物依赖在主键上。 换句话说,在3NF中的关系是对于每个函数依赖关系X> Y满足以下条件之一:1)X是超级键 2)Y是主要属性 对于你的问题,if下面的函数依赖存在: -

Name -> Office 
Name -> Floor 
Name -> Phone 
Office -> Phone 

那么我们不能说有关Office和Floor.You什么都可以通过应用和检查任何应用这些规则的阿姆斯特朗推理Rules.When的验证这一点,你会发现你不能推断任何关于办公室和地板的事情。