企业数据库比应用程序数据库更大,其外部影响也更大。它们与其余系统之间存在更多的关系,包括依赖关系和被依赖关系。这些关系多是Web应用程序与报表工具之间的,但也颇有可 能是与其余的复杂系统和数据库的接口。在企业数据库中,不单单存在远比应用程序数据库多得 多的外部接口,并且这些接口的做用方式也大不相同。一些接口多是用于每晚批量加载数据的 接口,其余的则多是实时事务处理接口。因为这些缘由,企业数据库自己可能实际上就是由不止一个数据库组成的。下图从较高的层次描绘了一个企业数据库的例子。html
企业数据库对于其设计和使用都强加了许多限制。对于数据完整性、性能以及安全性,企业 数据库每每比应用程序数据库要考虑更多的因素。基于这个缘由,企业数据库为分离关注点和分 隔需求,每每会分裂为多个部分。若是试图仅建立单个的数据库来知足企业系统的全部需求,其代价将很是昂贵而且复杂,或者根本就不实际甚至不可能。数据库
上图描绘的示例,需求按照横向的非业务需求被划分。具体来讲,这些数据库被划分为集成数据库(integration database)、在线事务数据库(online transactional database)以及报表数 据库(reporting database)。集成数据库和报表数据库都经过批量加载(batch load)与事务数据库交互,这也就暗示了这个系统并不要求报表必须是最新的,另外事务数据库也只要求可以周期性地从第三方系统中更新数据。这样设计的好处就在于咱们可以大大减轻事务数据库的负担,从而使一个较为简单的设计成为可能。通常来讲,要设计一个同时对集成性、事务性和报表都是高效 的数据库是不实际的。对以上的每个性能都有一些设计模式可保证最佳的性能和设计。但有时 咱们的需求是近似于实时的集成和报表功能。对这样的需求以前的设计就没法知足了。这时你可 能会发现须要将企业数据库按照业务功能纵向划分。设计模式
无论企业数据库如何设计,要理解应用程序数据库与企业数据库的不一样点都很是容易。理解你的环境有哪些特别的限制,以保证你的应用程序总能高效地使用数据库而且与其余使用当前数据库的应用程序相安无事,这很是重要。安全
MyBatis在企业数据库环境中工做得很是出色。它具备的一些特征使得它成为了与复杂的数据 库设计和大型数据集协调工做的理想工具。iBATIS用于多数据库时一样很是出色,由于它历来没 有假设某个类型的对象必须仅来自一个数据库。它一样支持在单个事务中涉及多数据库的复琐事 务。此外,MyBatis不只对在线事务系统很是有用,一样对实现报表系统和集成系统也很是有用。工具
系列文章:性能