首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复合属性和多值属性在1NF中会发生什么?

复合属性和多值属性在1NF中会发生什么?
EN

Stack Overflow用户
提问于 2015-12-31 04:42:45
回答 1查看 3.1K关注 0票数 4

我遇到了一个标准化问题,如下所示:

代码语言:javascript
复制
R={
    att1(nb1, nb2, nb3),
    att2, val1, val2, def1, class1,
    class2{notion1, notion2},
    def2,col1
  }

这里,attr1是一个多值属性,class2是一个复合属性.

如何将R转换为1NF?

像下面这样吗?

代码语言:javascript
复制
R={
    nb1, nb2, nb3,
    att2, val1, val2, def1, class1,
    notion1, notion2,
    def2,col1
  }
EN

回答 1

Stack Overflow用户

发布于 2015-12-31 07:30:54

是的,你的回答是正确的。正如在维基百科中所说的

如果每个属性的域仅包含原子值,而每个属性的值仅包含来自该域的单个值,则关系处于第一范式。

换句话说,您不能拥有下列属性:

  1. 结构,即包含组件,或
  2. 被重复(或两者都重复)。

因此,att1class2必须由它们的组分取代。

注意,在结果关系中,对于与nb1nb2nb3不同的所有其他属性,有不同的行具有相同的值。

这一范式最初是在E.Codd于1971年发表的一篇论文中介绍的:E.F.Codd,数据库关系模型的进一步规范化,Courant Institute: Pr共-Hall,ISBN 013196741X,

如果一个关系具有它的域中没有一个元素本身就是集合的属性,那么它就是第一范式。

(见维基百科引用)。

这种范式现在只因为历史原因才出现在所有关于关系理论的书中,因为这个属性现在被认为是关系数据库模型的一部分。例如,见R.Elmasri,S.Navathe,Addison著的“数据库系统的基本原理”一书(第6版第519页,ISBN: 978-0-13-608620-8):

第一正规形式 First normal form (1NF)现在被认为是基本(平面)关系模型中关系形式定义的一部分;历史上,它被定义为不允许多值属性、复合属性及其组合。它指出,属性的域必须只包含原子(简单、不可分割)值,而元组中的任何属性值必须是该属性域中的单个值。因此,1NF不允许将一组值、一组值或两者的组合作为单个元组的属性值。换句话说,1NF不允许关系中的关系或关系作为元组中的属性值。1NF允许的唯一属性值是单个indivisible)原子(或)。

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

https://stackoverflow.com/questions/34541122

复制
相关文章

相似问题

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