【问题标题】:What happens to composite and multi-valued attributes in 1NF?1NF 中的复合属性和多值属性会发生什么?
【发布时间】:2016-04-05 02:42:10
【问题描述】:

我有如下标准化问题:

R={
    att1(nb1, nb2, nb3),
    att2, val1, val2, def1, class1,
    class2{notion1, notion2},
    def2,col1
  }

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

如何将R 转换为 1NF?

是不是像下面这样?

R={
    nb1, nb2, nb3,
    att2, val1, val2, def1, class1,
    notion1, notion2,
    def2,col1
  }

【问题讨论】:

  • nb1、nb2 和 nb3 是索引值吗?否则“多值”与“复合”有何不同?
  • @philipxy,我不知道。这个问题是在我的课上给出的。
  • 你应该知道,因为多值通常意味着同构集合(例如数组/列表/序列)&它变成一个单列(并且对更高范式的规范化会引入另一个表)。
  • 这能回答你的问题吗? Normalization in database management system

标签: relational-database database-normalization


【解决方案1】:

是的,你的答案是正确的。正如Wikipedia中所说:

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

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

  1. 是结构化的,即包含组件,或
  2. 重复(或两者)。

因此,att1class2 必须由它们的组件替换。

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

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

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

(见Wikipedia citation)。

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

第一范式

第一范式 (1NF) 现在被认为是基本(平面)关系模型中关系的正式定义的一部分;从历史上看,它被定义为不允许多值属性、复合属性及其组合。它声明一个属性的域必须只包含 atomic(简单的,不可分割的)values,并且元组中任何属性的值都必须是一个 单个值 来自该属性的域。因此,1NF 不允许将一组值、一组值或两者的组合作为单个元组的属性值。换句话说,1NF 不允许 关系中的关系关系作为元组中的属性值。 1NF 允许的唯一属性值是单个 atomic(或 indivisiblevalues

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 2011-09-17
    • 2012-09-15
    相关资源
    最近更新 更多