确定表格数据所处标准形式的Python代码

5 投票
1 回答
2997 浏览
提问于 2025-04-15 18:36

我在找一些Python代码,这些代码可以处理表格数据,判断这些数据属于哪种规范形式(如果有的话),并展示出任何功能依赖关系等等。

1 个回答

3

关于“规范化”,有一些逻辑测试。不过,这些测试并不是简单的编程练习;它们是对数据的元数据施加的关系。这需要一些“思考”。

第一范式(1NF)——没有重复的组。怎么识别“重复组”呢?它就是在表的列上施加的数组结构。怎么做到这一点呢?SQL并没有提供这样的机制,所以你得查看列名,看看有没有“模式”。比如说,COL_1、COL_2、COL_3。

第一范式(1NF)——行的布局要一致。显而易见。SQL本身在定义表的时候就会强制这一点。

第二范式(2NF)——一行中的数据依赖于主键。你需要进行类似这样的操作。

For each non-key column:
   Query distinct pairs (Key and the non-key column)
   Do all non-key values depend in a consistent way on a key value?
   Can you build a simple dict mapping non-key to key?

完整的算法在这里:http://en.wikipedia.org/wiki/Relational_model#Set-theoretic_formulation

第三范式(3NF)——一行中的数据仅依赖于主键。这更复杂,因为你需要比较所有非主键列的组合,确保这些值之间没有非主键的依赖关系。

第四范式(4NF)和第五范式(5NF)让我感到困惑,所以我就不说了。

我的意思是——理论上,你是可以做到的。但实际上,要确认这些规范形式的关系是否成立,涉及到很多复杂的数据排列组合。

要针对某个特定的违规情况提出假设,并用一些SQL查询和思考来探讨这个问题,简单得多。

正式的数学内容在这里:

http://en.wikipedia.org/wiki/Relational_model

撰写回答