CL2*_*L23 6 mysql normalization
我有一个 mySQL 数据库,里面装满了一个包含 80 列和 1000 万行的大表。数据可能存在不一致。
我想以自动化和有效的方式规范化数据库。
我可以使用 java/c++/... 来做到这一点,但我想在数据库中尽可能多地做。我猜数据库之外的任何工作都会大大减慢速度。
关于如何做的建议?什么是好的资源/教程可以开始?
我不是在寻找关于什么是规范化的任何提示(使用谷歌发现了很多这样的东西)!
您需要研究列以识别“类似”实体并将它们分解为单独的表。自动化工具充其量可以为某些列识别具有相同值的行组,但了解数据的人必须决定这些行是否真正属于单独的实体。
这是一个人为的示例 - 假设您的列是名字、姓氏、地址、城市、州、邮编。自动化工具可能会识别出具有相同姓氏、地址、城市、州和邮政编码的同一家庭成员的行,并错误地得出这五列代表一个实体的结论。然后它可能会拆分表:
名字,参考 ID
和另一张桌子
ID、姓氏、地址、城市、州、邮编
明白了吗?
在清理混乱的数据时,我喜欢创建用户定义的 mysql 函数来执行典型的数据清理工作……这样您就可以稍后重用它们。通过这种方式还可以让您看看是否可以找到已编写的可以使用的现有 udf(无论是否经过修改)...例如mysqludf.org