数据库系统架构讨论

来源:这里教程网 时间:2026-03-03 17:35:43 作者:

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

我正在为一家拥有在CA生长的数据库系统的公司工作。过去10年。

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

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

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

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

  3. Reporting:报告团队创建了它在.NET中编写自己的平台,以允许客户端通过GUI创建自定义报告。报告可通过网络访问。

最大的表格有大约100万行。所以,我希望我没有忘记任何重要的东西。

好吧,我想讨论的是别人如何实现这种情况,我无法想象每个公司都写了自己的自定义应用程序。实际上是允许在数据库上快速计算的可能性(使用T-SQL旁边)。我以某种方式错过了这里的链接到了面向对象的编程我习惯了来自我的旧公司,但我们从未处理过这么多的数据,也许是为了快速计算,这是这样做的方式......或者是可能的使用例如LINQ或BizTalk Server创建算法和计算,也许甚至以图形方式?问题只是如何将现有的仪表长存储过程转换为新格式......将来我们想要使用数据仓库,但这需要一段时间,所以也许可以有一个单独的步骤来简化流程。

任何评论都得到了赞赏。

谢谢丹尼尔

看答案

为什么在地球上你想要转换现有的工作复杂存储的procs(这可以是绩效调整的)到linq(或者我误解了你)?因为你个人不喜欢t-sql?不是好的原因。他们太慢了吗?然后他们可以调整(这是你真正不想在Linq上尝试做的事情)。可以使用SSIS更好地实现过程,但随着SSIS的复杂是复杂的,并且重写过程的时间将采取,我不确定你真的会通过这样做来获得任何东西。

“我以某种方式错过了这里的链接到面向对象的编程......”关系数据库不是面向对象的,如果你试图像它们一样对象而表现。在访问数据库时,学会在设置时思考不是对象。你一次从一个用户的心态到一次插入一个记录,但这并不是要处理大量数据的转移的心态。对于这些类型的东西,使用数据库来处理问题比以面向对象的方式做好事物更好。一旦您有大量的数据和许多报告,人们对性能的更感兴趣,而不是在过去的情况下,当您使用某些工具可能对性能如此不好的工具时。无论您是否喜欢T-SQL,它是SQL Server的母语,数据库是针对它的使用而优化的。

相关推荐