在“规范化”和“规范化”数据之间是否存在明确定义的区别?

时间:2019-03-21 17:29:04

标签: normalization canonicalization

我理解规范化规范化是指删除数据表示中任何无意义或含糊不清的部分,从而有效地将相同的数据转化为实际上相同的数据。

例如,如果要获取某些输入数据的哈希,并且对其他对规范相同数据进行哈希处理的其他人也要获得相同哈希很重要,那么您就不希望一个文件使用制表符缩进,而另一个文件则使用空格(和没有其他区别)会导致两个完全不同的哈希值。

对于JSON:

  • 对象属性将按标准顺序放置(也许按字母顺序排列)
  • 不必要的空格将被删除
  • 缩进标准化或剥离
  • 甚至可以使用全新的语法对数据进行重新建模,以强制执行上述操作

我的定义正确吗,这些术语可以互换吗?还是输入数据的<规范>规范化和<规范>规范化之间有明确定义的特定区别?

1 个答案:

答案 0 :(得分:2)

“规范化”和“规范化”(来自“规范化(形式)”和“规范形式”)是两个相关的通用数学术语,根据给出的确切含义,它们在特定上下文中也具有特定用途。适用一般含义时,用这些术语之一标记特定过程是合理的。

您对这些特定用途的描述是模糊的。一般案例和特殊案例的形式含义更有用。

有时候,我们给出了很多东西,将它们(全部)划分为(不相交的)组,也就是等价类,在某些特定意义上我们认为它们是相似或相同的,也就是等价的。根据某些特定的equivalence relation,组/类的成员是相同/等效的。

我们从每个组/类中选择一个特定的成员作为代表事物,并将其称为该组及其成员的规范形式。当它们在同一个等效类中时,两件事完全相等。当正则形式相等时,两件事完全相等。

正常形式可能是规范形式,也可能只是几个杰出成员之一。

规范化/规范化就是找到或使用事物的规范化/规范化形式。

Canonical form

  

“规范”形式和“常规”形式之间的区别因子字段而异。在大多数字段中,规范形式为每个对象指定唯一的表示形式,而普通形式只是指定其形式,而无需唯一性。

将定义应用于您的示例:您是否正在划分一堆值,并且每个类都在选择一些成员而不是该类的其他成员?好吧,您拥有JSON值,并且没有对其进行重新建模,而是根据它们在函数下映射到的同一类成员对它们进行分区。因此,您可以合理地调用输入的结果JSON值规范形式。如果您将重新建模描述为适用于所有输入,那么您也可以合理地将这些规范值的后重新建模形式称为重新建模输入值的规范形式。但是,如果不是那样的话,即使从技术上讲,人们可能不会抱怨您将输入值的重新建模值称为规范形式。