在Hadley Wickham 的“Tidy Data”论文中,他指出
在整洁的数据中:
- 每个变量形成一列。
- 每个观察形成一行。
- 每种类型的观察单元形成一个表格。
这是 Codd 的第 3 范式(Codd 1990),但具有以统计语言为框架的约束,并且重点放在单个数据集上,而不是关系数据库中常见的许多连接数据集。
Codd 的第三范式可以描述为:
一个表是第一范式,如果
- 它将信息存储在行和列中,其中一个或多个列(称为主键)唯一标识每一行。
- 每列包含原子值,并且没有重复的列组。
一个表是第二范式,如果
- 该表是第一范式,并且
- 所有非键列都依赖于表的主键。
一个表是第三范式,如果
- 它是第二范式,并且
- 它仅包含非传递依赖于主键的列
我试图了解这两组规则是如何等效的。
我相信第一个 Tidy Data 规则映射到第一范式。具体来说,“每个变量形成一列”映射到“每列包含原子值,并且没有重复的列组”。
我相信 Tidy Data 规则“每个观察形成一行”映射到“所有非键列都依赖于表的主键”以及“它只包含非传递依赖于主键的列”。
我怀疑“每种类型的观察单元形成一个表”映射到“该表将信息存储在行和列中,其中一个或多个列(称为主键)唯一标识每一行”,但我对这种映射不太确定.
我相信我上面的分析不是(很)正确的,所以我希望有人能澄清这两组规则之间的联系。
我的问题是:前面提到的三个 Tidy Data 规则如何等同于第三范式?