過去,公司使用單一資料庫管理系統(DBMS)。 所有資料庫存取皆透過該系統的前端或專門為該系統撰寫的應用程式完成。 然而,隨著電腦使用增加及更多電腦硬體與軟體的問世,公司開始採購不同的資料庫管理系統(DBMS)。 原因有很多:人們購買最便宜、最快、已知、市場上最新產品、最適合單一應用的產品。 其他原因包括重組與合併,過去只有單一資料庫管理系統的部門現在擁有多個資料庫管理系統。
隨著個人電腦的出現,這個問題變得更加複雜。 這些電腦帶來了大量查詢、分析和顯示資料的工具,以及多個價格低廉且易於使用的資料庫。 從那時起,單一企業通常將資料散落在無數桌上型電腦、伺服器和小型電腦中,儲存在各種不相容的資料庫中,並被大量不同工具存取,而其中很少有工具能取得全部資料。
最後一個挑戰來自客戶端/伺服器運算的出現,該技術旨在最大化電腦資源的有效利用。 便宜的個人電腦(客戶端)則安裝在桌面上,提供資料的圖形前端以及多種便宜的工具,如試算表、圖表程式和報表產生器。 小型電腦與大型主機(伺服器)承載資料庫管理系統(DBMS),利用其運算能力與中央位置,提供快速且協調的資料存取。 那麼,前端軟體該如何與後端資料庫連接呢?
獨立軟體供應商(ISV)也面臨類似問題。 為小型電腦和大型主機撰寫資料庫軟體的廠商,通常被迫為每個資料庫管理系統撰寫一個版本的應用程式,或為每個想要存取的資料庫撰寫專屬的 DBMS 程式碼。 為個人電腦開發軟體的廠商必須為他們想使用的各種資料庫管理系統撰寫資料存取例程。 這通常意味著大量資源被投入在撰寫和維護資料存取例程,而非應用程式,且應用程式的銷售重點不是品質,而是是否能存取特定資料庫管理系統中的資料。
雙方開發者都需要一種能存取不同資料庫管理系統資料的方法。 大型主機與小型電腦團隊需要一種方法,能將不同資料庫管理系統的資料合併於單一應用程式中,而個人電腦團隊則需要此功能,以及能夠撰寫獨立於單一資料庫管理系統的單一應用程式。 簡言之,兩組人都需要互通的存取方式;他們需要開放的資料庫連接。