我想开始讨论一个数据库系统的实现。数据库系统体系结构讨论
我正在为拥有超过ca的数据库系统的公司工作。过去的10年。
让我试着来形容它在做什么,它是如何实现的:
该系统分为3支不同的球队处理的3个主要部分。
条目: 入门团队负责为系统创建GUI。在后台是一个巨大的MS SQL数据库(大约100个表),GUI是使用.NET创建的。有不同的GUI应用程序,每个应用程序都有很多不同的选项卡来填写相应的表格。如果例如一个新的列被添加到数据库中,这个列被手动添加到GUI应用程序中。
数据流: 数据流团队的目的是为数据报告团队做数据计算和准备数据。这是通过多个层次完成的。让我试着详细解释一下过程:Dataflow团队使用Entry数据库中的数据通过事务复制(此数据包含来自所有客户端的信息)复制到另一个服务器和另一个数据库。然后每小时一次自写应用程序检查输入表中的更改行(使用ChangedDate列),然后调用每个输出表的存储过程,以便使用输入表的1-N计算新数据。之后,再次使用事务复制将数据复制到另一台服务器上的另一个数据库。这里调用另一个存储过程来计算额外的新输出表。此存储过程使用SQL作业启动。从那里数据被分解到不同的数据库,每个数据库都是客户特定的。使用.NET bulkcopy命令(在客户端进行筛选)使用另一个自行编写的应用程序完成此复制。这些客户端特定数据库通过另一个自行编写的应用程序复制到其他服务器上不同的客户端特定报告数据库,该应用程序将报告数据库与客户端特定数据库进行比较以计算数据差异只是复制数据差异(因为报告数据库以前在客户端服务器上运行)。这整个过程由另一个自己写的应用程序来编排,以控制例如如果在开始调用存储过程等作业之前完成了事务复制,那么还可以在这里组织不同客户端之间的同步。这个过程可以用一个自己写的监视工具以图形方式显示出来,看起来相当复杂,你可以想象... 所有这些组件的状态都被记录下来,并且可以被另一个自己写的应用程序查看。 如果添加新列或表,则必须手动更改所有这些组件。 部署安装说明使用MS Word编写。 (大约10人在这个团队中工作)
报告: 报告团队创建了它自己的.NET平台,允许客户通过GUI创建自定义报告。这些报告可通过网络访问。
最大的桌子有大约100万行。所以,我希望我没有忘记任何重要的事情。
那么,我想讨论的是其他人如何意识到这种情况,我无法想象每个公司都会写它自己的自定义应用程序。 什么是实际上允许快速计算数据库的可能性(使用T-SQL旁边)。我在某种程度上错过了我以前从我的老公司那里得到的面向对象编程的链接,但是我们从来没有处理过这么多的数据,也许为了快速计算,这是做到这一点的方法......或者有可能使用例如LINQ或BizTalk Server来创建算法和计算,甚至可能以图形方式?现在的问题仅仅是如何对现有米长的存储过程转换成新的格式... 今后,我们要使用数据仓库,但将需要一段时间,所以也许它可能有一个单独的步骤简化处理。
任何意见赞赏。
感谢 丹尼尔
+1不要指望从OO(或任何其他形式的过程)编程到SQL的任何可转移的概念。您需要完全按照自己的条件学习SQL。并且试图将抽象复杂性与LINQ,SSIS等混在一起,而不知道SQL(毕竟它们必须全部解决),只会搞砸了。 – dkretz 2009-06-01 18:58:10