Sql 数据库系统体系结构探讨

Sql 数据库系统体系结构探讨,sql,architecture,Sql,Architecture,我想开始讨论数据库系统的实现 我在一家公司工作,在过去的10年里,该公司的数据库系统在加州发展壮大 让我试着描述一下它在做什么以及它是如何实现的: 该系统分为3个主要部分,由3个不同的团队处理 条目: 进入团队负责为系统创建GUI。后台是一个巨大的MS SQL数据库(约100个表),GUI是使用.NET创建的。有不同的GUI应用程序,每个应用程序都有许多不同的选项卡来填充相应的表。例如,如果向数据库中添加了一个新列,则该列将手动添加到GUI应用程序中 数据流: 数据流团队的目的是进行数据计算并为

我想开始讨论数据库系统的实现

我在一家公司工作,在过去的10年里,该公司的数据库系统在加州发展壮大

让我试着描述一下它在做什么以及它是如何实现的:

该系统分为3个主要部分,由3个不同的团队处理

  • 条目: 进入团队负责为系统创建GUI。后台是一个巨大的MS SQL数据库(约100个表),GUI是使用.NET创建的。有不同的GUI应用程序,每个应用程序都有许多不同的选项卡来填充相应的表。例如,如果向数据库中添加了一个新列,则该列将手动添加到GUI应用程序中

  • 数据流: 数据流团队的目的是进行数据计算并为报告团队准备数据。这是通过多个级别完成的。让我试着更详细地解释一下这个过程:Dataflow团队使用条目数据库中的数据,这些数据通过事务复制复制到另一台服务器和另一个数据库(这些数据包含来自所有客户端的信息)。然后,自写应用程序每小时检查一次输入表中的更改行(使用ChangedDate列),然后为每个输出表调用存储过程,使用1-N个输入表计算新数据。之后,再次使用事务复制将数据复制到另一台服务器上的另一个数据库。这里调用另一个存储过程来计算额外的新输出表。此存储过程是使用SQL作业启动的。从那里,数据被分割到不同的数据库,每个数据库都是特定于客户端的。此复制是使用另一个使用.NET bulkcopy命令(在客户端上进行筛选)自行编写的应用程序完成的。这些特定于客户端的数据库通过另一个自行编写的应用程序复制到其他服务器上的不同特定于客户端的报告数据库,该应用程序将报告数据库与特定于客户端的数据库进行比较,以计算数据差异。只复制数据差异(因为报表数据库以前在客户端服务器上运行)。 整个过程由另一个自行编写的应用程序进行编排,以控制事务性复制是否在启动作业调用存储过程之前完成等。。。此外,这里还协调了不同客户端之间的同步。这个过程可以通过一个自编的监控工具以图形化的方式显示,正如你所想象的,这个监控工具看起来非常复杂。。。 所有这些组件的状态都会被记录,并且可以由另一个自行编写的应用程序查看。 如果添加了新的列或表,则必须手动更改所有这些组件。 对于部署,使用MS Word编写安装说明。(约10人在此团队中工作)

  • 报告: 报告团队创建了自己用.NET编写的平台,以允许客户端通过GUI创建自定义报告。这些报告可以通过网络访问

  • 最大的表大约有100万行。所以,我希望我没有忘记任何重要的事情

    我想讨论的是其他人是如何认识到这种情况的,我无法想象每个公司都编写自己的定制应用程序。 允许在数据库上进行快速计算的实际可能性是什么(仅次于使用T-SQL)。不知何故,我错过了我在老公司使用的面向对象编程的链接,但我们从未处理过如此多的数据,也许为了快速计算,这就是解决问题的方法……或者是否可以使用LINQ或BizTalk Server来创建算法和计算,甚至是以图形方式?问题是如何将现有的米长存储过程转换为新格式。。。 在未来,我们希望使用数据仓库,但这需要一段时间,所以可能有一个单独的步骤来简化流程

    如有任何意见,我们将不胜感激

    谢谢
    丹尼尔

    从你说话的声音来看,你有三个步骤

  • 输入数据
  • 分析数据
  • 报告数据
  • 第一步和第三步需要由“用户”完成。因此,每个团队都需要一个GUI来完成手头的任务,否则,他们将直接在SQL Server上工作,并且需要广泛的SQL知识。对于这些项目,我认为您的组织正在采取的方法没有任何问题,您正在构建一个定制的系统来报告手头的数据。在这方面,唯一值得考虑的是公共库团队之间的标准化和使用的技术


    您的中间步骤似乎有点长,有许多活动部件。然而,我曾在许多大型报告系统上工作过,在这些系统中,这确实是解决问题的唯一方法。没有更多地了解您的组织和运营的确切性质。

    从您所说的声音来看,您有一个三步流程

  • 输入数据
  • 分析数据
  • 报告数据
  • 第一步和第三步需要由“用户”完成。因此,每个团队都需要一个GUI来完成手头的任务,否则,他们将直接在SQL Server上工作,并且需要广泛的SQL知识。对于这些项目,我认为您的组织正在采取的方法没有任何问题,您正在构建一个定制的系统来报告手头的数据。在这方面,唯一值得考虑的是公共库团队之间的标准化和使用的技术

    您的中间步骤似乎有点长,有许多活动部件。然而,我曾在许多大型报告系统上工作过,在这些系统中,这确实是解决问题的唯一方法。不知道更多关于您的组织和运营的确切性质。

    为什么