【问题标题】:Is there a data integrity test software?有数据完整性测试软件吗?
【发布时间】:2011-03-28 09:30:42
【问题描述】:

我们在多个 mysql 数据库中拥有大量数据,这些数据不断从外部来源更新。 是否有一些软件(最好是基于 php),我们可以使用它定义规则来测试数据库,例如数据上的正则表达式、更新频率、丢失数据等。)并定期运行检查报告出现问题或数据的趋势发生了变化?

【问题讨论】:

  • 是的。它被称为程序。坏消息是你必须自己写!说真的,它是您的数据与您的业务规则。这些检查和约束不应该已经到位以强制执行完整性和清洁吗?
  • 我写它没问题,但我必须维护它,注意重复警报和其他东西。仅仅因为我知道业务规则而为此编写整个基础架构没有任何意义。当有 UI 时,业务规则很容易定义。

标签: mysql database mysql-management


【解决方案1】:

STFW 怎么样?谷歌搜索“Mysql 数据质量”带来了(除其他外)一个链接到 http://www.talend.com

否则,我会看看数据仓库工具 - 例如,Oracle Warehouse Builder 有一些数据审计机制。

亲切的问候,弗兰克

【讨论】:

    【解决方案2】:

    如果您有多个未使用外键连接的 db 表,则应添加并使用它们以确保数据完整性。

    如果您有大量 PL/SQL 代码,那么您需要对其进行单元测试(是的,DB 也需要测试)。因此,最终您将获得定期运行测试的“持续集成”。是的,你必须自己写

    请参阅http://www.slideshare.net/antonkeks/database-refactoring 了解更多信息。

    如果你必须同步数据库,那么我推荐 SQLYog。

    【讨论】:

    • OP 询问的是 MySQL,所以我猜他们没有任何 PL/SQL 代码(对于那些不熟悉它的人:PL/SQL 是 Oracle 对 SQL 语言的程序扩展)跨度>
    • MySQL 确实有存储过程,并且归 Oracle 所有。你可以说它有它的程序语言。
    【解决方案3】:

    如果您正确设计了数据库,则不会有很多数据完整性问题。这意味着要设置 PK/FK 关系、数据约束、正确的数据类型、触发器等。这尤其意味着您永远不会考虑应用程序将处理所有这些。这可能意味着设置工作以检查某些类型的数据输入并通知某人可能出现的问题。这可能意味着修改所有数据导入以使用一组标准的清理例程。这可能意味着创建一种识别和合并重复记录的方法(所有复杂的数据库都应该编写一个重复数据删除应用程序,以便用户可以选择要保留哪些数据以及发现重复记录时要保存哪些数据)。

    如果您没有正确设计数据库,则需要根据您的业务规则一次在数据库中设置这些内容,并在执行过程中修复错误数据。对于开发人员无法正确设计的问题,没有简单的解决方案。

    由于每个数据库的需求都非常不同,据我所知,没有人能够自动执行所有完整性规则,这是数据库设计人员在设计数据库时所做的很大一部分工作。我肯定不会相信任何 COTS 程序可以做到这一点,因为我曾经对支持的每个 COTS 数据库设计得很糟糕。

    【讨论】:

      猜你喜欢
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 2012-02-19
      • 2012-12-30
      相关资源
      最近更新 更多