首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tidy数据与第三范式的等价性

Tidy数据与第三范式的等价性
EN

Data Science用户
提问于 2018-12-27 04:43:23
回答 1查看 1.1K关注 0票数 3

哈德利·韦翰的"Tidy Data“论文一书中,他说

在整理数据中:

  1. 每个变量形成一列。
  2. 每一次观察形成一排。
  3. 每种类型的观测单位构成一个表。

这是Codd的第三种范式(Codd 1990),但它的约束是用统计语言构造的,重点放在单个数据集上,而不是关系数据库中常见的许多连接数据集。

Codd的第三种范式可以描述为:

  1. 如果是,表是第一范式。
    • 它将信息存储在行和列中,其中一个或多个列(称为主键)唯一地标识每一行。
    • 每一列都包含原子值,没有重复的列组。

  2. 如果,表处于第二范式。
    • 该表为第一范式,以及
    • 所有非键列都依赖于表的主键。

  3. 如果的话,表是第三范式。
    • 它是第二种形式,而且
    • 它只包含非传递依赖于主键的列。

我想弄清楚这两套规则是如何等同的。

我相信,第一次数据规则映射为第一范式。具体来说,“每个变量形成一个列”映射到“每个列都包含原子值,并且没有重复的列组”。

我相信Tidy数据规则“每个观察形成一行”映射到“所有非键列依赖于表的主键”,并且“它只包含非传递依赖于主键的列”。

我怀疑“每种类型的观察单元形成一个表”映射到“表将信息存储在行和列中,其中一个或多个列(称为主键)唯一地标识每一行”,但我对这种映射最不确定。

我相信我的上述分析是不正确的,所以我希望有人能澄清这两套规则之间的联系。

我的问题是:上述三条Tidy数据规则如何等同于第三范式?

EN

回答 1

Data Science用户

发布于 2019-03-10 11:52:28

我相信它是这样的,基于我自己的思考:

Hadley的规则1&2(称为TR1 & TR2)等价于1NF,但Hadley的规则1允许重复列。我们在TR1 & TR2中所要说的是,我们在表中的每个单元格中都有一个值,尽管我认为这取决于您如何解释观察。如果一个观察是一个特定对象的实例,那么这是一个更强的语句,尽管TR3认为情况并非如此。

Hadley规则1、2和3的组合等价于3NF。使用此链接也可以解释传递依赖:

带有UnitCode、UnitName、CourseCode、CourseName的表在2NF中,但违反TR3,因为过程和单元是不同的对象。3NF中以外键分隔和连接的3NF表符合TR1、TR2和TR3的要求。

假设我们要证明蕴涵,并假设我们有TR1、TR2和TR3。由于这些都不涉及重复列,所以我认为我们要么假设不重复列,要么接受它们不是等价的。让我们假设不重复列。从定义TR1 & TR2 => 1NF。如果我们有一个不在2NF中的表,那么使用上面例子中的逻辑就违反了TR3。因此,我们有2NF。类似地,如果我们有一个不在3NF中的表,那么TR3就会被违反,再次使用上面的逻辑。因此,TR1 & TR2 & TR3 => 3NF。

我想也许有人能用更多的时间做一个更彻底的证明。

HTH

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

https://datascience.stackexchange.com/questions/43184

复制
相关文章

相似问题

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