企業數據庫比應用程序數據庫更大,其外部影響也更大。它們與其餘系統之間存在更多的關係,包括依賴關係和被依賴關係。這些關係多是Web應用程序與報表工具之間的,但也頗有可 能是與其餘的複雜系統和數據庫的接口。在企業數據庫中,不單單存在遠比應用程序數據庫多得 多的外部接口,並且這些接口的做用方式也大不相同。一些接口多是用於每晚批量加載數據的 接口,其餘的則多是實時事務處理接口。因爲這些緣由,企業數據庫自己可能實際上就是由不止一個數據庫組成的。下圖從較高的層次描繪了一個企業數據庫的例子。html
企業數據庫對於其設計和使用都強加了許多限制。對於數據完整性、性能以及安全性,企業 數據庫每每比應用程序數據庫要考慮更多的因素。基於這個緣由,企業數據庫爲分離關注點和分 隔需求,每每會分裂爲多個部分。若是試圖僅建立單個的數據庫來知足企業系統的全部需求,其代價將很是昂貴而且複雜,或者根本就不實際甚至不可能。數據庫
上圖描繪的示例,需求按照橫向的非業務需求被劃分。具體來講,這些數據庫被劃分爲集成數據庫(integration database)、在線事務數據庫(online transactional database)以及報表數 據庫(reporting database)。集成數據庫和報表數據庫都經過批量加載(batch load)與事務數據庫交互,這也就暗示了這個系統並不要求報表必須是最新的,另外事務數據庫也只要求可以週期性地從第三方系統中更新數據。這樣設計的好處就在於咱們可以大大減輕事務數據庫的負擔,從而使一個較爲簡單的設計成爲可能。通常來講,要設計一個同時對集成性、事務性和報表都是高效 的數據庫是不實際的。對以上的每個性能都有一些設計模式可保證最佳的性能和設計。但有時 咱們的需求是近似於實時的集成和報表功能。對這樣的需求以前的設計就沒法知足了。這時你可 能會發現須要將企業數據庫按照業務功能縱向劃分。設計模式
無論企業數據庫如何設計,要理解應用程序數據庫與企業數據庫的不一樣點都很是容易。理解你的環境有哪些特別的限制,以保證你的應用程序總能高效地使用數據庫而且與其餘使用當前數據庫的應用程序相安無事,這很是重要。安全
MyBatis在企業數據庫環境中工做得很是出色。它具備的一些特徵使得它成爲了與複雜的數據 庫設計和大型數據集協調工做的理想工具。iBATIS用於多數據庫時一樣很是出色,由於它歷來沒 有假設某個類型的對象必須僅來自一個數據庫。它一樣支持在單個事務中涉及多數據庫的復瑣事 務。此外,MyBatis不只對在線事務系統很是有用,一樣對實現報表系統和集成系統也很是有用。工具
系列文章:性能