[摘 要] 隨著XBRL(可擴展企業報告語言)技術的發展與應用,XBRL將成為一種重要的數據形式。對于XBRL會計數據,目前實際應用中采用的存儲方式大致可以分為3種:文件系統、關系數據庫、原生XML數據庫。本文在分析和比較各種存儲方法優缺點的基礎上,提出可以從3個角度來選擇XBRL會計數據的存儲方式:一是依據XBRL技術特點,二是依據會計數據特性,三是依據外部環境。
[關鍵詞] XBRL;XML;會計數據;存儲方案
[中圖分類號]F232[文獻標識碼]A[文章編號]1673-0194(2008)16-0020-04
1 XBRL會計數據存儲概述
近年來,隨著XBRL技術的飛速發展,XBRL逐漸成為網絡財務報告和會計數據交換的一種新的標準格式,越來越廣泛地應用于會計應用系統中。由于XBRL實例文檔中包含有會計數據,因而如何對XBRL會計數據進行有效的存儲是數據管理的一個核心問題。只有對XBRL會計數據進行有效的存儲,才能進行高效的數據索引及數據查詢。目前我國在實際應用中采用的存儲方式大致可以分為3種:文件系統、關系數據庫、原生XML數據庫。
2 XBRL會計數據存儲方案分析
2. 1存儲于文件系統中
存儲于文件系統中即以文件的方式保存XBRL 會計數據,利用操作系統進行處理。這是一種簡單的存儲方式,優點是存儲效率高,成本低,XBRL會計數據內部的關聯關系也得到了完全保留,數據無失真。但其缺點也相當明顯,面對大量的XBRL文檔,這種存儲方式無法對XBRL會計數據進行基本的數據索引及數據查詢等數據處理。目前這種存儲方式使用較少,僅適合于少量的對查詢管理要求不高的XBRL文檔存儲。
2. 2存儲于關系數據庫中
XBRL文檔存儲于關系數據庫中,一般有兩種方式:
(1)把XBRL文檔整體看成CLOB(Character Large Object,字符型大型對象,表示把文件,包括程序、圖像、音頻、數據、文件等,當成一個對象來對待,不對對象內部的細節進行解釋)字段,直接存儲到關系數據庫中。
(2)采用拆分的方式,把XBRL文檔映射成關系表再存儲于關系數據庫。
2. 2. 1采用CLOB字段存儲于關系數據庫中
把XBRL會計數據按照CLOB字段存儲于關系數據庫中,即XBRL會計數據以文件的方式存儲于關系數據庫中,這與存儲于文件系統中大致相同,區別在于采用CLOB字段存儲在數據安全性和完整性上相對較好。
2. 2. 2采用拆分方式存儲于關系數據庫中
采用拆分的方式是指將XBRL會計數據轉換為結構化數據后存儲于二維表中(如圖1所示),利用關系數據庫來實現對XBRL會計數據的存儲和管理。由于XBRL 和關系數據模式的互異性,為了實現在XBRL文件和關系數據庫之間交換數據,必須提供一個XBRL映射模型 ,將XBRL文檔模式(XBRL Schema )映射到關系數據庫模式中。其過程一般是:先創建用于存儲XBRL文檔的關系模式;然后拆分XBRL文檔,將其中的數據存儲于已創建的關系模式。數據庫中基本的存儲單元獨立于程序實現。
采用拆分方式存儲于關系數據庫中的好處在于:關系數據庫理論發展已比較成熟,且有諸多配套的分析挖掘工具可供選擇,利于XBRL會計數據進一步深加工,方便企業對數據的分析和挖掘。其缺點是:關系模型難以處理XBRL文檔的元素嵌套和多值屬性,容易產生數據庫的大量空值和數據冗余;且拆分XBRL文檔,很可能會破壞XBRL實例文檔內部的部分關聯關系,一些層次信息無法反映在關系數據庫中,造成數據失真。
2. 3存儲于原生XML數據庫中
關于原生XML數據庫,數據庫專家R. Bouret給出了一個定義,即只有同時滿足以下3個條件的XML數據庫才能稱之為原生XML數據庫:
(1)為XML文檔定義一個模型,XML數據存儲和查詢都基于這個模型;
(2)將XML文檔作為(邏輯)存儲的基本單位,正如關系數據庫將行(元組)作為存儲的基本單位一樣;
(3)不要求只能使用某一特定的底層物理模型或某種專有的存儲格式。
XBRL文檔存儲于原生XML數據庫中,其最小的存儲單位是記錄,每個記錄都有自己的ID,這種存儲方式下,存入取出過程是直接對整個XML文檔進行操作。其存儲方式如圖1所示。

在原生XML數據庫中,其存儲方式是按圖1的記錄存儲方式,反映了XBRL文檔的層次信息,可以存儲多級嵌套和多值元素,存入取出都是直接對整個XBRL文檔進行操作。這種存儲方式的優點是:相對關系數據庫而言,省略映射過程,大大增加了存儲效率,且無數據失真;數據查詢時直接把XML文檔數據一次性讀入內存中,建立諸多XML 查詢樹,雖大量占用系統資源,但一旦查詢樹建好后,查詢速度很快。其缺點是:原生XML數據庫理論發展還不成熟,缺少相關分析挖掘等功能軟件的支持。
3 XBRL會計數據存儲方案比較
以上是目前XBRL會計數據存儲的3種主要方式,從表 1中可以看出不同存儲方法具有不同的特點。在基于文件系統存儲中,由于不能直接對XBRL文檔中的元素進行訪問,與其他方法相比靈活性不夠。在基于關系數據庫的存儲方法中,存儲則受到 DBMS 的數據模型和系統映射XBRL文檔方法等因素影響。由于XML文檔映射到關系數據庫容易實現,目前大多數存儲策略是基于關系數據庫的。其優點是能夠讓系統充分利用DBMS本身的許多性能,比如說數據的可靠性、并發控制和數據恢復等。但用關系數據庫方法存儲XBRL時需要對XBRL內容進行拆分,這也使得數據處理時相對低效且容易造成數據失真。與此相反, 原生的XML 數據存儲是完全以XBRL格式進行信息存入和取出的,所以存取速度較快,具有較高的空間利用效率和靈活性。但其在查詢分析時產生大量的XML樹,系統資源占用率高。

從表1對現有的XBRL會計數據存儲方式的比較可以看出,每種方案各有自己的優缺點,都只能較好地滿足XBRL會計數據存儲的某方面的特點。
4 XBRL存儲方案選擇依據
筆者認為可以從3個角度來選擇存儲方案:一是XBRL技術本身的特性,二是會計數據的特點,三是外部環境。
4. 1依據XBRL技術的特性
(1)XBRL 2.1技術規范相關規定。XBRL 2.1技術規范中對XBRL文檔中所包含的元素結構做了定義,限制了元素的嵌套,便于關系模型的映射。
(2)XBRL分類標準相對穩定。由于XBRL分類標準的穩定性,意味著分類標準中定義的元素的屬性、子元素及類型不會經常變動,減少了XBRL會計數據到關系數據庫的映射模型創建頻率,節省了企業應用成本,降低了頻繁開發的風險。
(3)XBRL Dimension的多維表設計。XBRL Dimension的設計思想是多維表,所以XBRL Dimension的引入使得XBRL更加類似于關系模型的結構,轉換為關系模型也更加容易,XBRL數據多維描述的特點也可以得到充分的體現。采用這種方式把數據拆分成表,可以利用基于關系數據庫的相關軟件工具,通過數據挖掘等方式迅速得出有用信息來輔助商業決策和監管決策。
4. 2依據會計數據的特點
會計數據產生于經濟業務,是對經濟業務中產生的原始憑證通過人腦或者計算機的智能判斷,以關系表的形式存儲于關系數據庫中。用戶需要匯總或者分析會計數據時,可通過對應于數據存儲方式的計算機程序進行調用。這樣就會產生以下幾個問題:
(1)經濟業務中產生的原始憑證數據是否都是結構化的,能不能完全拆分成關系數據表達;如果是半結構化或非結構化的數據,拆分時是否會引起數據失真等。
(2)關系數據庫比較復雜,如果不熟悉數據庫結構,那么調用會計數據將非常困難,不利于會計數據的共享。
在使用關系數據庫存儲會計數據方式下,這些問題是難以解決的,但是在XML格式存儲下,就可以避免。第一,由于XML的特性,它可以把經濟業務的全部信息都存入數據庫,可以反映經濟業務的全貌,保持“原汁原味”的會計數據,便于用戶根據個性需要提取所需的數據,而且XML能夠很好地表達半結構化和非結構化數據,無須擔心數據失真問題。第二,XBRL是XML語言,它產生的目的就是致力于會計數據的自由交流,它以XBRL GL作為會計數據底層的應用技術,反映經濟業務全貌,得到的會計數據格式符合XBRL國際組織制定的標準,具有很好的透明性、通用性和易理解性,不但方便計算機閱讀,同樣也方便人的閱讀,提高了會計數據的共享性。
4. 3依據外部環境
4. 3. 1從現在狀況來看
從現在的外部環境來看,現今大多數公司的數據庫是關系數據庫,因為關系數據庫是當今市場上最成熟且完善的數據庫,而且其他支持關系數據庫的相關軟件工具,如財務決策軟件及數據挖掘工具等也發展比較完善,使用關系數據庫顯然要比使用原生XML數據庫在數據分析、數據再利用上具有更大優勢。就目前企業的設備來看,基本上只支持關系數據庫,而且企業也有相當豐富的關系數據庫使用經驗。至于原生XML數據庫,其只不過是一個陌生的概念而已。從技術本身來看,關系數據庫商業化已30多年,形成了一套成熟的技術理論。而原生XML數據庫還不成熟,仍處于研究階段,相關商業化軟件也不成熟,目前幾大數據庫軟件生產商也僅僅支持基于關系數據庫的方式存儲XML數據的數據庫,并沒有單獨開發原生的XML數據庫產品,更沒有開發相關的支持數據再利用的軟件。二者的具體比較如表2所示。
表2 外部環境分析

4. 3. 2從未來發展來看
由表1可以看出,原生XML數據庫其主要缺陷在于:與關系數據庫相比,其技術發展還不成熟。XBRL、XML作為新興發展的技術,如果一直依賴于其他數據庫來存儲,必將嚴重阻礙XBRL、XML技術的發展前景。正因如此,2006年以來,對于XML存儲技術的研究不斷深入,相信在不遠的未來,原生XML數據庫技術將得到良好的發展和應用。
其實拋開技術成熟度和實際應用來看,在XBRL文件存儲方面,原生XML數據庫對比關系數據庫還是具有比較明顯的優勢,其中體現在以下幾點:
(1)強調數據的層次關系。原生XML數據庫按照XBRL數據的層次關系對XBRL文檔進行存儲,而關系數據庫是扁平的關系結構,表達數據層次關系困難。
(2)無數據失真。原生XML數據庫可以對XML文檔直接存儲,并且提供Schema校驗功能,不會引起數據失真,而關系數據庫需要把模式轉化為約束才能校驗,且拆分存儲過程中容易導致數據失真。
(3)保留數據順序。原生XML數據庫完全保留XBRL文檔中的順序關系,而關系型數據庫存儲XBRL文檔,需要首先拆分成表,容易丟失元素順序信息。
(4)適合頻繁的海量數據查詢。原生XML數據庫查詢時是直接把XBRL文檔數據一次性讀入內存中,雖然在讀取過程中耗費時間,但一旦數據讀取完畢后,查詢速度很快,非常適合于頻繁的海量數據查詢。而關系數據庫卻在映射過程的拆分、重組中耗費過多資源,嚴重影響查詢速度。
5 結束語
綜上所述,XBRL會計數據采用拆分方式存儲于關系數據庫更符合實際應用,這也是在原生XML數據庫技術還不成熟的情況下的一種無奈的選擇。然而目前的存儲方式肯定不能滿足后期對XBRL大量的需求。如果存儲問題解決不好,XBRL即使得到應用,也不會大范圍使用。為促進XBRL的技術發展和應用,筆者認為應該還要注重XBRL存儲技術的研究,如原生XML數據庫技術,這是未來發展的必然選擇。現在數據庫廠商也在大力研究XML的存儲技術,相信不管從哪個角度發展,最后都會逐步解決目前存在的問題。
主要參考文獻
[1] 萬常選. XML數據庫技術[M]. 北京:清華大學出版社,2005.
[2] 婁芳,于海雯. XML 數據存儲方式的決策研究[J]. 科技廣場,2005(1).
[3] 劉世平,胡霖松. XBRL及其應用概論(1)[J]. 當代金融家,2006(10).
[4] 吳永春. XML數據存儲方法研究及應用 [J]. 現代計算機:專業版,2005(8).