2007-09-08

當XML走進關聯式資料庫


http://www.ithome.com.tw/itadm/article.php?c=39966
當XML走進關聯式資料庫

當XML走進關聯式資料庫
文/ 黃天賜 (記者) 2006-10-17

從早期將XML轉換為關聯式資料表或大型物件,到今日轉向原生XML資料型態,關聯式資料庫與XML之間的合作日益緊密。


10年前XML開始起草並向W3C提案,而在1998年後成為W3C的標準。事隔10年之後,XML已經隨著網路應用日益普及,更在Web Services和SOA推波助瀾下,可以預見XML的角色將會更形重要。

觀察XML的重要發展趨勢之一,是XML和關聯式資料庫的合流。IBM甫於6月在美國發表的新版本資料庫DB2 9.0,便以原生XML資料型態和存取技術作為改版重點之一。事實上,微軟於去年年底推出的SQL Server 2005同樣也在XML上下了一番功夫,改變過去將XML轉換成關聯式資料表的存放方式,讓開發人員可以用XML的方法使用儲存在資料庫中的XML文件或 片段。其他如Oracle或Sybase等資料庫也都具備在資料庫中處理XML的技術和工具。由於XML部分技術仍在審議,因此每家資料庫廠商除對標準的 規格支援外,也各自發展不同的實作方式。

XML比關聯性資料庫更具彈性
就資料儲存而言,關聯式資料庫已經是相當成熟的應用,從80年代商用產品出現至今,早已深入企業儲存及資料應用的核心。相較之下, XML部分技術尚且在發展階段,為什麼關聯式資料庫競相擁抱XML呢?

比較兩者處理資料的方式,關聯式資料庫是透過詳細定義和控制結構化資料的方式,達到資料增、刪、查詢的目的。因此它是以欄位資料型態的精確定義, 將資料以列(row)的方式一筆筆儲存,再透過資料表之間的互相關聯,建構出資料和資料結合後的複雜結果。企業在日常營運可以仰賴這種方式來儲存資料,像 是ERP、CRM這種應用程式產生的資料,都可以透過資料庫來儲存。

由於XML是以階層式的樹狀結構作為儲存架構,透過元素(Element)和屬性(Attribute)來包含資料,再利用XML schema控制資料的正確性。這種架構特性,讓XML隨時可以新增欄位,只要吻合XML schema的定義,欄位便可以彈性置入。相對而言,關聯式資料庫一旦要修改欄位,牽動的範圍相當大,既會影響到過去的資料,與其他資料表的關係也必須一 併思考在內,在變動的彈性上較小。由於企業內產生的資料並非總是這麼規矩,一旦遇到非結構化的資料型態,關聯式資料庫便顯得左右支絀,施展不開手腳。

此外,XML透過元素和屬性描述資料,以及不需轉譯編碼的文字型態,讓它可以不受作業系統和應用程式的限制,在資料交換上相當容易進行,而且它的 內容可以被人類解讀之外,也能被機器或應用程式所辨讀,微軟在Vista或新版本的Office上,就大量應用XML作為應用程式的設定或文件的產出格 式。

鑑於這些XML的優勢,可以解決關聯式資料庫在應用及儲存上的不足,因此傳統資料庫大廠紛紛實作出支援XML的方式,讓企業的資料應用可以更為全面。

保留XML原生資料格式成為主流
關聯式資料庫在支援XML上大致有二種方式,一種是將XML拆解成關聯式資料庫的運作邏輯,另外一種則是保留XML原有的運作方式,後者又稱之為原生XML資料庫。

早期關聯式資料庫的作法趨向前者,將XML的樹狀結構資料拆解成數成關聯式資料庫的型態之後再存入資料庫,一旦需要存取時,再透過自訂支援XML查詢的SQL語法將它組合、還原成XML文件。

另外一種原生型資料庫的做法,則是保留階層式的XML格式存進資料庫,並且利用XML的樹狀節點特性,進行查詢節點資料或新增、刪除資料。

以SQL Server為例,在2000版本時,支援XML的方式便是將XML資料轉成關聯式資料的存放方式,無論是儲存或查詢都還是使用關聯式引擎為主。而SQL Server 2005遵循W3C InfoSet規格,以特有的內部結構存放XML文件,並保存XML文件語意。新的XML技術可以透過變數或資料欄位定義XML Schema,驗證XML資料輸入或更新時的正確性。此外可以利用業界標準XQuery進行查詢,也引進XML索引技術,提升查詢效率。

無獨有偶,IBM的DB2 9.0也提出了pureXML的技術與概念,訴求原生的XML資料型態,一改過去作法,直接保留原來樹狀結構的資料型態,同時也支援XML索引功能和 XQuery查詢。此外,在查詢技術上,DB2 9.0整合middle ware的技術,讓開發人員可以忽略底層的資料是關聯式資料庫或XML,開發人員可以透過擅長的SQL或XQuery語言進行查詢,取得所需的結果。

關聯式資料庫的成熟度加持XML
XML的階層式特性協助關聯式資料庫在處理資料時更為全面,同樣的,關聯式資料庫也能為XML帶來好處。

對於XML的儲存、使用而言,由於它本身是檔案型的資料儲存方式,在安全管理的機制上並沒有良善的處理方式,一旦儲存在資料庫中,就可以享有資料 庫本身的安全機制。透過關聯式資料庫的查詢語法,也可以和其他相關記錄欄位作交易管理,資料庫的寫入鎖定機制還可以解決多人作業時寫入衝突的問題。此外像 是搜尋、更新、備份╱還原、交易管理和記錄稽核等,XML資料同樣可以享受資料庫帶來的這些管理機制。過去需要程式開發人員勞心勞力之處,透過資料庫本身 的機制,就可以強化XML的體質。

儲存為XML或關聯式資料的裁量
XML與關聯式資料庫的合流,固然為企業資料帶來更全面的應用方式,但對資料庫開發人員而言,既然資料庫同時可以儲存關聯式結構化的資料與XML階層式的資料,如何裁量資料儲存的方式,也形成了一個挑戰。

由於XML具有跨平臺、跨組織交換資料的特性,又具有階層性的彈性結構關係,因此企業的資料如果有B2B的應用需求或跨系統的交易機會,XML是 相當理想的儲存方式。另外如果資料結構有經常變動的可能,關聯式資料庫顯然較難勝任,XML就可取而代之。這些透過XML資料能作更有利的應用,那麼儲存 為XML資料型態就勢所必然。相較之下關聯式資料庫在技術的成熟度上,或者查詢速度上都是更有效率的資料處理方式,如非必要,利用原來的結構化儲存方式即 可。文☉黃天賜


--
萬歲!您的郵件已被捨棄。一封垃圾郵件也沒有!


--
萬歲!您的郵件已被捨棄。一封垃圾郵件也沒有!

沒有留言: