【问题标题】:Is there a term to describe changing a column into multiple columns in data processing?有没有一个术语来描述在数据处理中将一列更改为多列?
【发布时间】:2019-12-05 21:51:40
【问题描述】:

例如,假设我拿这张桌子:

+--------+--------+
| Value1 | Value2 |
+--------+--------+
|      1 | A      |
|      2 | B      |
|      3 | A      |
|      4 | C      |
|      5 | A      |
+--------+--------+

而是像这样呈现它:

+--------+---+---+---+
| Value1 | A | B | C |
+--------+---+---+---+
|      1 | 1 | 0 | 0 |
|      2 | 0 | 1 | 0 |
|      3 | 1 | 0 | 0 |
|      4 | 0 | 0 | 1 |
|      5 | 1 | 0 | 0 |
+--------+---+---+---+

这个操作有什么词或术语吗?

【问题讨论】:

    标签: database data-processing


    【解决方案1】:

    当您从具有同一对象属性的多行中获取数据并将它们转换为具有与这些属性对应的列的单行时的过程称为data pivoting或数据转置。

    【讨论】:

      【解决方案2】:

      其实这似乎是数据库设计的规范化设计(First Normal Form)。例如,想象一下,如果 Value1 行可能不仅有 A、B、C 之一,而且有 A、B 和 C。这将不满足数据库的第一范式,因为每列中的值必须是原子的。因此,更改以获得第二个表将解决第一个范式问题以及 DBMS 中的数据冗余。 反之,将第二张表变为多张表,称为分解。它通过将表分解为多个表来用许多较小的关系替换关系。分解可能有以下两种类型:

      • 无损分解:如果它是无损的,那么如果你做自然连接 在所有分解中,您将得到原始关系。
      • 依赖关系保持:这是 DBMS 和 当分解是依赖保留时,那么至少一个 分解后的表应该满足每个依赖项。

      您可以在此处找到分解示例: https://www.geeksforgeeks.org/data-base-dependency-preserving-decomposition/

      我希望我能用我的共享知识帮助你。

      【讨论】:

      • 提问者没有说他会在同一行中拥有所有值 A、B、C。他可以有三行,每个值一行。这绝对不违反 1NF。
      • 你说得对,但我的回答中哪句话说是违规?
      • 例如,如果 Value1 行可能不仅有 A、B、C 之一,而且有 A、B 和 C。这将不满足数据库的第一范式,因为每列中的值必须是原子的
      • 我刚刚注意到一个案例。我认为这个问题存在不确定性,这就是为什么我的回答有点笼统。
      猜你喜欢
      • 1970-01-01
      • 2011-06-09
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多