首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我以为我懂正常形态

我以为我懂正常形态
EN

Stack Overflow用户
提问于 2015-06-30 01:54:30
回答 4查看 340关注 0票数 4

我正在网上学习网络开发文凭,我刚进入数据库设计和开发阶段。我以为我理解正常的形式,但我只是遇到了一个问题,使我止步不前。

查看客户实体的下列属性列表: 客户(cus_ID,姓名,地址,mobile_phone) 为什么这个实体不在3NF中?

据我所知,它在3NF中。如果没有客户,所有属性都不会存在,名称、地址和移动数据集都要求客户存在。

我是不是搞错了3NF的整个概念?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-06-30 02:15:12

一开始看起来很奇怪,但您还没有定义地址中的内容,甚至没有定义id。在脑海中出现的违反3NF的一些可能性是(除了您可能在这里得到的其他评论和答案):

  1. 如果id是移动电话号码本身。
  2. 如果客户有多个移动电话或多个地址,则业务对捕获这一点的来源感兴趣。
  3. 如果地址包括一些通信方法,包括移动电话。
  4. 如果移动电话号码能以某种方式在用户之间流通。例如,该数字可能不一定是唯一的国家/运营商(我不是一个电信专家)。
  5. 如果地址包含国家、城市和州信息,则允许移动电话号码包含区号作为其中的一部分(这取决于国家、城市和州的信息)。

编辑:我最初包括了这一点,但是@philipxy在下面的注释中提出了不同的建议:“如果在数据库的其他部分中发现了任何属性,这里没有显示。”

票数 5
EN

Stack Overflow用户

发布于 2015-06-30 01:58:38

多个客户可以有相同的地址。

票数 2
EN

Stack Overflow用户

发布于 2015-06-30 06:13:26

先前给出的每一个答案都对你的数据的意义做出了假设。但是要知道模式是否在3NF中,唯一正确的答案是:“向我展示模式的功能依赖关系,然后我可以证明模式是否在3NF中”。这是因为3FN是一个正式的概念,只有在正式的上下文中才有意义。

所以也许这个问题应该以一种不同的方式提出:

在这种模式下,在现实假设下,哪些是功能依赖?

然后,从这些功能依赖,我们可以知道,而不是推测一个正常的形式。

所以,在我看来,一门没有人教你什么是功能依赖的课程,并且问你某个关系是否在3NF中,这不是一门好的课程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31128310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档