Database 集成2nf和3nf数据库

Database 集成2nf和3nf数据库,database,integration,servicebus,3nf,Database,Integration,Servicebus,3nf,我有一个具有多个系统的遗留IT环境,每个系统都有自己的数据库,该数据库引用了有关我们客户的相同数据。即销售系统、会计系统和运营系统,所有这些系统都有关于相同客户、账户和产品的数据 在某些情况下,这些数据存储在2nf中,在某些情况下存储在3nf中。是否有最佳实践或已知的算法来集成这两个方面 例如,是否有办法在3nf销售系统中更改客户,然后在2nf运营系统中可靠地更新客户的相同信息 谢谢 伊恩 是否有办法在3nf销售系统中对客户进行更改,然后在2nf运营系统中可靠地更新客户的相同信息 不是没有很多艰

我有一个具有多个系统的遗留IT环境,每个系统都有自己的数据库,该数据库引用了有关我们客户的相同数据。即销售系统、会计系统和运营系统,所有这些系统都有关于相同客户、账户和产品的数据

在某些情况下,这些数据存储在2nf中,在某些情况下存储在3nf中。是否有最佳实践或已知的算法来集成这两个方面

例如,是否有办法在3nf销售系统中更改客户,然后在2nf运营系统中可靠地更新客户的相同信息

谢谢

伊恩

是否有办法在3nf销售系统中对客户进行更改,然后在2nf运营系统中可靠地更新客户的相同信息

不是没有很多艰苦的工作

在一般情况下,唯一可行的方法是将匹配键存储在表中,并使用这些匹配键传播更改。还有很多事情可能会阻止这一点

  • 不兼容的列宽
  • 不兼容的权限
  • 不兼容的约束
  • 缺少数据
  • 重复数据

匹配钥匙需要大量的实际操作。例如,假设“客户”有五行,其中客户的名字是“David Small”,而操作系统有三行。有多少个“大卫·斯莫尔”?他们怎么搭配?单凭名字是看不出来的。你必须挖掘其他数据——地址、购买历史记录等。没有办法提前告诉你需要浏览多少数据,而且当你完成时,你可能仍然无法分辨哪些数据与哪些数据匹配。实现自动化很难。

谢谢。假设在所有系统中数据都已被清理并准确复制,那么存储匹配密钥的方法将如何工作?您是否建议我在3nf表有fk的地方向2nf表添加键列?所以,如果2nf客户系统有一个表“customer”,如下所示:fname,lname,address,company,我会在customer中添加一个新的字段companyid,它看起来是这样的:fname,lname,address,company,companyid,对吗?谢谢,不,你不应该改变现有的表格。而是创建一个新表,其中包含2NF表中的主键列和3NF表中的主键列。您需要仔细查看具有可传递依赖项的表——使用键映射表可能不足以保证一致的更新。