Paul Grabscheid是InterSystems公司戰略規劃部門副總裁,他一直在思考數據庫的未來方向。本文由DDJ記者對話Paul Grabscheid先生(簡稱PG),看他是怎麼回答的。
記者:InterSystems同時提供了面向普通目的和醫療保健業的數據庫產品,醫療保健業需要什麼特殊的數據庫呢?
PG:雖然InterSystems的Cache數據庫在醫療保健業得到了廣泛使用,它吸引人的特性使得在其它領域也受到越來多的重視,首先,臨床方面要處理大量的非結構化和半結構化數據,醫療記錄中的數據和收集數據的格式與普通數據是完全不一樣的,存儲方式也在不斷發展,所有這一切都要求對象模型要具有內在的靈活性,既要捕捉到豐富的數據,存儲也要有效地支持才行,也要使用新的數據類型,例如,目前越來越多的基因組信息被捕獲用來診斷和治療。醫療保健的另一個挑戰是要讓數據模型看起來更優美。臨床數據數年後仍然有價值,而不象其它領域那樣可能在幾周內或幾個月內有價值,這就需要增加新的數據、新的數據類型和新的關系,並且不能破壞現有應用程序和結構、以及數據庫重組或卸載/重新加載周期,對象數據庫技術有助於通過模式演化,使增量“無損”更改數據庫結構成為可能,並通過對象概念的多態性為不同的對象類型或版本提供安全的訪問。
記者:在對象/關系領域,總是要預防不匹配的問題。
PG:我認為預防不匹配變得越來越重要,十多年前,對象的概念被強化了,但學習起來很困難,這些概念都來自於國外專注於文件和數據庫開發的開發商,相比傳統的方法,開發一套基於對象的應用程序需要更多的步驟和工作,時至今日,情況正好相反:許多(甚至大多數)開發商都在思考它們正在嘗試解決的問題,以及它們用來解決問題的數據模型。對象概念中的繼承、封裝和多態性已經成為方案框架和構建應用的天然方式,目前,在後端使用關系來存儲反倒增加了額外的開發步驟,因為需要實現對象--關系之間的映射。
在設計時就要完成從關系到對象數據模型的轉換,而不是在編碼或執行時才進行轉換,因為應用程序數據模型變得越來越復雜,富對象模型的優點是它天生就表現了雙向關系、控制和分層,數據庫中的對象模型減小了開發成本,相比關系數據庫中使用多個JOIN而言,它顯著地降低了運行時的開銷。
記者:我們通常熟悉的是“事務數據庫”,但什麼是“事務位圖索引”呢?
PG:傳統上,用於事務處理和分析的數據往往是分開的,分析通常會建立數據倉庫,這種分離機制使業務系統的性能和安全性都有所提升,大多數數據倉庫主要是用於分析長期的數據,並不需要最新的精確到分鐘的數據。通常,一周或一個月從業務系統數據庫往數據倉庫更新一次數據就已經足夠了。位圖索引是數據倉庫最佳的方法:它為復雜查詢提供了優秀的性能,即使在insert、update和delete操作時性能相對降低了,但也不會對事務系統產生惡劣影響,皆大歡喜。
現在焦點已經轉向利用商務智能和其他分析技術作為應用程序的一部分,以便支持范圍更廣的每日決策需要,為了滿足這種需求,我們已經開始以一種新的方法運行位圖索引,既滿足高性能查詢,又滿足高性能更新,從技術上來看,使用壓縮技術替換簡單的每行一位的存儲技術,使存儲效果更有效、更理想,在數據庫引擎中以更優秀的方法處理位圖,這種事務位圖索引技術引發了實時分析開發的新浪潮。
記者:“數據庫即服務”是一個新興主題,特別是雲計算,對於開發者而言,這意味著什麼?對於數據庫廠商,這又意味著什麼?
PG:我不確定“數據庫即服務”會成為一個成功的商業概念,因為目前的趨勢是花錢購買某種應用程序服務,我所接觸過的客戶對“架構即服務”沒什麼興趣,數據庫即服務要求系統管理簡單,但目前在企業級數據庫軟件上還看不到這一點,還需要能夠透明地增加或移除系統功能,應用不能中斷,在這些領取的改進將有助於降低操作成本,並提升整個系統的可用性。