資料庫樣式
2004 年 5 月 24 日
當我談論資料庫以及它們與應用程式的關聯時,我發現區分兩種資料庫樣式很有用:ApplicationDatabase 和 IntegrationDatabase。兩者的差別在於資料庫是否受控於單一 ApplicationBoundary 內,並由其封裝。
我發現,在討論資料庫管理時,人們通常假設使用其中一種樣式 - 如果不同的參與者假設不同的樣式,則討論可能會很快變得非常混亂,因為這兩種樣式對資料庫管理有非常不同的假設。當然,在資料庫和資料管理社群中,人們傾向於假設資料庫將是 IntegrationDatabase。這是資料庫社群多年來的運作假設。然而,這個假設正越來越受到質疑。整合資料庫最終會產生具有廣泛表面積和有限能力將介面與實作分開的介面。應用程式和資料庫之間產生的連結最終會變得脆弱,因此難以變更。
服務導向架構最近的興起對不同的人來說似乎有非常不同的意義,但一個合理的脈絡是自主應用程式的興起,它們有自己的 ApplicationDatabase,並透過服務介面進行通訊 - 有效地取代 共用資料庫 整合,並以 rpc 或 訊息傳遞 為基礎進行整合。我對這個觀點非常認同,特別是偏好透過訊息傳遞進行整合 - 這是為什麼我鼓勵開發 EIP 的原因。在這個世界觀中,整合資料庫不再是預設假設。
因此,我的主要觀點是:小心兩種資料庫樣式之間的差異,並在討論資料庫管理問題時將其考慮在內。