[摘 要] 隨著XBRL(可擴(kuò)展企業(yè)報(bào)告語言)技術(shù)的發(fā)展與應(yīng)用,XBRL將成為一種重要的數(shù)據(jù)形式。對(duì)于XBRL會(huì)計(jì)數(shù)據(jù),目前實(shí)際應(yīng)用中采用的存儲(chǔ)方式大致可以分為3種:文件系統(tǒng)、關(guān)系數(shù)據(jù)庫、原生XML數(shù)據(jù)庫。本文在分析和比較各種存儲(chǔ)方法優(yōu)缺點(diǎn)的基礎(chǔ)上,提出可以從3個(gè)角度來選擇XBRL會(huì)計(jì)數(shù)據(jù)的存儲(chǔ)方式:一是依據(jù)XBRL技術(shù)特點(diǎn),二是依據(jù)會(huì)計(jì)數(shù)據(jù)特性,三是依據(jù)外部環(huán)境。
[關(guān)鍵詞] XBRL;XML;會(huì)計(jì)數(shù)據(jù);存儲(chǔ)方案
[中圖分類號(hào)]F232[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194(2008)16-0020-04
1 XBRL會(huì)計(jì)數(shù)據(jù)存儲(chǔ)概述
近年來,隨著XBRL技術(shù)的飛速發(fā)展,XBRL逐漸成為網(wǎng)絡(luò)財(cái)務(wù)報(bào)告和會(huì)計(jì)數(shù)據(jù)交換的一種新的標(biāo)準(zhǔn)格式,越來越廣泛地應(yīng)用于會(huì)計(jì)應(yīng)用系統(tǒng)中。由于XBRL實(shí)例文檔中包含有會(huì)計(jì)數(shù)據(jù),因而如何對(duì)XBRL會(huì)計(jì)數(shù)據(jù)進(jìn)行有效的存儲(chǔ)是數(shù)據(jù)管理的一個(gè)核心問題。只有對(duì)XBRL會(huì)計(jì)數(shù)據(jù)進(jìn)行有效的存儲(chǔ),才能進(jìn)行高效的數(shù)據(jù)索引及數(shù)據(jù)查詢。目前我國在實(shí)際應(yīng)用中采用的存儲(chǔ)方式大致可以分為3種:文件系統(tǒng)、關(guān)系數(shù)據(jù)庫、原生XML數(shù)據(jù)庫。
2 XBRL會(huì)計(jì)數(shù)據(jù)存儲(chǔ)方案分析
2. 1存儲(chǔ)于文件系統(tǒng)中
存儲(chǔ)于文件系統(tǒng)中即以文件的方式保存XBRL 會(huì)計(jì)數(shù)據(jù),利用操作系統(tǒng)進(jìn)行處理。這是一種簡單的存儲(chǔ)方式,優(yōu)點(diǎn)是存儲(chǔ)效率高,成本低,XBRL會(huì)計(jì)數(shù)據(jù)內(nèi)部的關(guān)聯(lián)關(guān)系也得到了完全保留,數(shù)據(jù)無失真。但其缺點(diǎn)也相當(dāng)明顯,面對(duì)大量的XBRL文檔,這種存儲(chǔ)方式無法對(duì)XBRL會(huì)計(jì)數(shù)據(jù)進(jìn)行基本的數(shù)據(jù)索引及數(shù)據(jù)查詢等數(shù)據(jù)處理。目前這種存儲(chǔ)方式使用較少,僅適合于少量的對(duì)查詢管理要求不高的XBRL文檔存儲(chǔ)。
2. 2存儲(chǔ)于關(guān)系數(shù)據(jù)庫中
XBRL文檔存儲(chǔ)于關(guān)系數(shù)據(jù)庫中,一般有兩種方式:
(1)把XBRL文檔整體看成CLOB(Character Large Object,字符型大型對(duì)象,表示把文件,包括程序、圖像、音頻、數(shù)據(jù)、文件等,當(dāng)成一個(gè)對(duì)象來對(duì)待,不對(duì)對(duì)象內(nèi)部的細(xì)節(jié)進(jìn)行解釋)字段,直接存儲(chǔ)到關(guān)系數(shù)據(jù)庫中。
(2)采用拆分的方式,把XBRL文檔映射成關(guān)系表再存儲(chǔ)于關(guān)系數(shù)據(jù)庫。
2. 2. 1采用CLOB字段存儲(chǔ)于關(guān)系數(shù)據(jù)庫中
把XBRL會(huì)計(jì)數(shù)據(jù)按照CLOB字段存儲(chǔ)于關(guān)系數(shù)據(jù)庫中,即XBRL會(huì)計(jì)數(shù)據(jù)以文件的方式存儲(chǔ)于關(guān)系數(shù)據(jù)庫中,這與存儲(chǔ)于文件系統(tǒng)中大致相同,區(qū)別在于采用CLOB字段存儲(chǔ)在數(shù)據(jù)安全性和完整性上相對(duì)較好。
2. 2. 2采用拆分方式存儲(chǔ)于關(guān)系數(shù)據(jù)庫中
采用拆分的方式是指將XBRL會(huì)計(jì)數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù)后存儲(chǔ)于二維表中(如圖1所示),利用關(guān)系數(shù)據(jù)庫來實(shí)現(xiàn)對(duì)XBRL會(huì)計(jì)數(shù)據(jù)的存儲(chǔ)和管理。由于XBRL 和關(guān)系數(shù)據(jù)模式的互異性,為了實(shí)現(xiàn)在XBRL文件和關(guān)系數(shù)據(jù)庫之間交換數(shù)據(jù),必須提供一個(gè)XBRL映射模型 ,將XBRL文檔模式(XBRL Schema )映射到關(guān)系數(shù)據(jù)庫模式中。其過程一般是:先創(chuàng)建用于存儲(chǔ)XBRL文檔的關(guān)系模式;然后拆分XBRL文檔,將其中的數(shù)據(jù)存儲(chǔ)于已創(chuàng)建的關(guān)系模式。數(shù)據(jù)庫中基本的存儲(chǔ)單元獨(dú)立于程序?qū)崿F(xiàn)。
采用拆分方式存儲(chǔ)于關(guān)系數(shù)據(jù)庫中的好處在于:關(guān)系數(shù)據(jù)庫理論發(fā)展已比較成熟,且有諸多配套的分析挖掘工具可供選擇,利于XBRL會(huì)計(jì)數(shù)據(jù)進(jìn)一步深加工,方便企業(yè)對(duì)數(shù)據(jù)的分析和挖掘。其缺點(diǎn)是:關(guān)系模型難以處理XBRL文檔的元素嵌套和多值屬性,容易產(chǎn)生數(shù)據(jù)庫的大量空值和數(shù)據(jù)冗余;且拆分XBRL文檔,很可能會(huì)破壞XBRL實(shí)例文檔內(nèi)部的部分關(guān)聯(lián)關(guān)系,一些層次信息無法反映在關(guān)系數(shù)據(jù)庫中,造成數(shù)據(jù)失真。
2. 3存儲(chǔ)于原生XML數(shù)據(jù)庫中
關(guān)于原生XML數(shù)據(jù)庫,數(shù)據(jù)庫專家R. Bouret給出了一個(gè)定義,即只有同時(shí)滿足以下3個(gè)條件的XML數(shù)據(jù)庫才能稱之為原生XML數(shù)據(jù)庫:
(1)為XML文檔定義一個(gè)模型,XML數(shù)據(jù)存儲(chǔ)和查詢都基于這個(gè)模型;
(2)將XML文檔作為(邏輯)存儲(chǔ)的基本單位,正如關(guān)系數(shù)據(jù)庫將行(元組)作為存儲(chǔ)的基本單位一樣;
(3)不要求只能使用某一特定的底層物理模型或某種專有的存儲(chǔ)格式。
XBRL文檔存儲(chǔ)于原生XML數(shù)據(jù)庫中,其最小的存儲(chǔ)單位是記錄,每個(gè)記錄都有自己的ID,這種存儲(chǔ)方式下,存入取出過程是直接對(duì)整個(gè)XML文檔進(jìn)行操作。其存儲(chǔ)方式如圖1所示。
在原生XML數(shù)據(jù)庫中,其存儲(chǔ)方式是按圖1的記錄存儲(chǔ)方式,反映了XBRL文檔的層次信息,可以存儲(chǔ)多級(jí)嵌套和多值元素,存入取出都是直接對(duì)整個(gè)XBRL文檔進(jìn)行操作。這種存儲(chǔ)方式的優(yōu)點(diǎn)是:相對(duì)關(guān)系數(shù)據(jù)庫而言,省略映射過程,大大增加了存儲(chǔ)效率,且無數(shù)據(jù)失真;數(shù)據(jù)查詢時(shí)直接把XML文檔數(shù)據(jù)一次性讀入內(nèi)存中,建立諸多XML 查詢樹,雖大量占用系統(tǒng)資源,但一旦查詢樹建好后,查詢速度很快。其缺點(diǎn)是:原生XML數(shù)據(jù)庫理論發(fā)展還不成熟,缺少相關(guān)分析挖掘等功能軟件的支持。
3 XBRL會(huì)計(jì)數(shù)據(jù)存儲(chǔ)方案比較
以上是目前XBRL會(huì)計(jì)數(shù)據(jù)存儲(chǔ)的3種主要方式,從表 1中可以看出不同存儲(chǔ)方法具有不同的特點(diǎn)。在基于文件系統(tǒng)存儲(chǔ)中,由于不能直接對(duì)XBRL文檔中的元素進(jìn)行訪問,與其他方法相比靈活性不夠。在基于關(guān)系數(shù)據(jù)庫的存儲(chǔ)方法中,存儲(chǔ)則受到 DBMS 的數(shù)據(jù)模型和系統(tǒng)映射XBRL文檔方法等因素影響。由于XML文檔映射到關(guān)系數(shù)據(jù)庫容易實(shí)現(xiàn),目前大多數(shù)存儲(chǔ)策略是基于關(guān)系數(shù)據(jù)庫的。其優(yōu)點(diǎn)是能夠讓系統(tǒng)充分利用DBMS本身的許多性能,比如說數(shù)據(jù)的可靠性、并發(fā)控制和數(shù)據(jù)恢復(fù)等。但用關(guān)系數(shù)據(jù)庫方法存儲(chǔ)XBRL時(shí)需要對(duì)XBRL內(nèi)容進(jìn)行拆分,這也使得數(shù)據(jù)處理時(shí)相對(duì)低效且容易造成數(shù)據(jù)失真。與此相反, 原生的XML 數(shù)據(jù)存儲(chǔ)是完全以XBRL格式進(jìn)行信息存入和取出的,所以存取速度較快,具有較高的空間利用效率和靈活性。但其在查詢分析時(shí)產(chǎn)生大量的XML樹,系統(tǒng)資源占用率高。
從表1對(duì)現(xiàn)有的XBRL會(huì)計(jì)數(shù)據(jù)存儲(chǔ)方式的比較可以看出,每種方案各有自己的優(yōu)缺點(diǎn),都只能較好地滿足XBRL會(huì)計(jì)數(shù)據(jù)存儲(chǔ)的某方面的特點(diǎn)。
4 XBRL存儲(chǔ)方案選擇依據(jù)
筆者認(rèn)為可以從3個(gè)角度來選擇存儲(chǔ)方案:一是XBRL技術(shù)本身的特性,二是會(huì)計(jì)數(shù)據(jù)的特點(diǎn),三是外部環(huán)境。
4. 1依據(jù)XBRL技術(shù)的特性
(1)XBRL 2.1技術(shù)規(guī)范相關(guān)規(guī)定。XBRL 2.1技術(shù)規(guī)范中對(duì)XBRL文檔中所包含的元素結(jié)構(gòu)做了定義,限制了元素的嵌套,便于關(guān)系模型的映射。
(2)XBRL分類標(biāo)準(zhǔn)相對(duì)穩(wěn)定。由于XBRL分類標(biāo)準(zhǔn)的穩(wěn)定性,意味著分類標(biāo)準(zhǔn)中定義的元素的屬性、子元素及類型不會(huì)經(jīng)常變動(dòng),減少了XBRL會(huì)計(jì)數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的映射模型創(chuàng)建頻率,節(jié)省了企業(yè)應(yīng)用成本,降低了頻繁開發(fā)的風(fēng)險(xiǎn)。
(3)XBRL Dimension的多維表設(shè)計(jì)。XBRL Dimension的設(shè)計(jì)思想是多維表,所以XBRL Dimension的引入使得XBRL更加類似于關(guān)系模型的結(jié)構(gòu),轉(zhuǎn)換為關(guān)系模型也更加容易,XBRL數(shù)據(jù)多維描述的特點(diǎn)也可以得到充分的體現(xiàn)。采用這種方式把數(shù)據(jù)拆分成表,可以利用基于關(guān)系數(shù)據(jù)庫的相關(guān)軟件工具,通過數(shù)據(jù)挖掘等方式迅速得出有用信息來輔助商業(yè)決策和監(jiān)管決策。
4. 2依據(jù)會(huì)計(jì)數(shù)據(jù)的特點(diǎn)
會(huì)計(jì)數(shù)據(jù)產(chǎn)生于經(jīng)濟(jì)業(yè)務(wù),是對(duì)經(jīng)濟(jì)業(yè)務(wù)中產(chǎn)生的原始憑證通過人腦或者計(jì)算機(jī)的智能判斷,以關(guān)系表的形式存儲(chǔ)于關(guān)系數(shù)據(jù)庫中。用戶需要匯總或者分析會(huì)計(jì)數(shù)據(jù)時(shí),可通過對(duì)應(yīng)于數(shù)據(jù)存儲(chǔ)方式的計(jì)算機(jī)程序進(jìn)行調(diào)用。這樣就會(huì)產(chǎn)生以下幾個(gè)問題:
(1)經(jīng)濟(jì)業(yè)務(wù)中產(chǎn)生的原始憑證數(shù)據(jù)是否都是結(jié)構(gòu)化的,能不能完全拆分成關(guān)系數(shù)據(jù)表達(dá);如果是半結(jié)構(gòu)化或非結(jié)構(gòu)化的數(shù)據(jù),拆分時(shí)是否會(huì)引起數(shù)據(jù)失真等。
(2)關(guān)系數(shù)據(jù)庫比較復(fù)雜,如果不熟悉數(shù)據(jù)庫結(jié)構(gòu),那么調(diào)用會(huì)計(jì)數(shù)據(jù)將非常困難,不利于會(huì)計(jì)數(shù)據(jù)的共享。
在使用關(guān)系數(shù)據(jù)庫存儲(chǔ)會(huì)計(jì)數(shù)據(jù)方式下,這些問題是難以解決的,但是在XML格式存儲(chǔ)下,就可以避免。第一,由于XML的特性,它可以把經(jīng)濟(jì)業(yè)務(wù)的全部信息都存入數(shù)據(jù)庫,可以反映經(jīng)濟(jì)業(yè)務(wù)的全貌,保持“原汁原味”的會(huì)計(jì)數(shù)據(jù),便于用戶根據(jù)個(gè)性需要提取所需的數(shù)據(jù),而且XML能夠很好地表達(dá)半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),無須擔(dān)心數(shù)據(jù)失真問題。第二,XBRL是XML語言,它產(chǎn)生的目的就是致力于會(huì)計(jì)數(shù)據(jù)的自由交流,它以XBRL GL作為會(huì)計(jì)數(shù)據(jù)底層的應(yīng)用技術(shù),反映經(jīng)濟(jì)業(yè)務(wù)全貌,得到的會(huì)計(jì)數(shù)據(jù)格式符合XBRL國際組織制定的標(biāo)準(zhǔn),具有很好的透明性、通用性和易理解性,不但方便計(jì)算機(jī)閱讀,同樣也方便人的閱讀,提高了會(huì)計(jì)數(shù)據(jù)的共享性。
4. 3依據(jù)外部環(huán)境
4. 3. 1從現(xiàn)在狀況來看
從現(xiàn)在的外部環(huán)境來看,現(xiàn)今大多數(shù)公司的數(shù)據(jù)庫是關(guān)系數(shù)據(jù)庫,因?yàn)殛P(guān)系數(shù)據(jù)庫是當(dāng)今市場上最成熟且完善的數(shù)據(jù)庫,而且其他支持關(guān)系數(shù)據(jù)庫的相關(guān)軟件工具,如財(cái)務(wù)決策軟件及數(shù)據(jù)挖掘工具等也發(fā)展比較完善,使用關(guān)系數(shù)據(jù)庫顯然要比使用原生XML數(shù)據(jù)庫在數(shù)據(jù)分析、數(shù)據(jù)再利用上具有更大優(yōu)勢。就目前企業(yè)的設(shè)備來看,基本上只支持關(guān)系數(shù)據(jù)庫,而且企業(yè)也有相當(dāng)豐富的關(guān)系數(shù)據(jù)庫使用經(jīng)驗(yàn)。至于原生XML數(shù)據(jù)庫,其只不過是一個(gè)陌生的概念而已。從技術(shù)本身來看,關(guān)系數(shù)據(jù)庫商業(yè)化已30多年,形成了一套成熟的技術(shù)理論。而原生XML數(shù)據(jù)庫還不成熟,仍處于研究階段,相關(guān)商業(yè)化軟件也不成熟,目前幾大數(shù)據(jù)庫軟件生產(chǎn)商也僅僅支持基于關(guān)系數(shù)據(jù)庫的方式存儲(chǔ)XML數(shù)據(jù)的數(shù)據(jù)庫,并沒有單獨(dú)開發(fā)原生的XML數(shù)據(jù)庫產(chǎn)品,更沒有開發(fā)相關(guān)的支持?jǐn)?shù)據(jù)再利用的軟件。二者的具體比較如表2所示。
表2 外部環(huán)境分析
4. 3. 2從未來發(fā)展來看
由表1可以看出,原生XML數(shù)據(jù)庫其主要缺陷在于:與關(guān)系數(shù)據(jù)庫相比,其技術(shù)發(fā)展還不成熟。XBRL、XML作為新興發(fā)展的技術(shù),如果一直依賴于其他數(shù)據(jù)庫來存儲(chǔ),必將嚴(yán)重阻礙XBRL、XML技術(shù)的發(fā)展前景。正因如此,2006年以來,對(duì)于XML存儲(chǔ)技術(shù)的研究不斷深入,相信在不遠(yuǎn)的未來,原生XML數(shù)據(jù)庫技術(shù)將得到良好的發(fā)展和應(yīng)用。
其實(shí)拋開技術(shù)成熟度和實(shí)際應(yīng)用來看,在XBRL文件存儲(chǔ)方面,原生XML數(shù)據(jù)庫對(duì)比關(guān)系數(shù)據(jù)庫還是具有比較明顯的優(yōu)勢,其中體現(xiàn)在以下幾點(diǎn):
(1)強(qiáng)調(diào)數(shù)據(jù)的層次關(guān)系。原生XML數(shù)據(jù)庫按照XBRL數(shù)據(jù)的層次關(guān)系對(duì)XBRL文檔進(jìn)行存儲(chǔ),而關(guān)系數(shù)據(jù)庫是扁平的關(guān)系結(jié)構(gòu),表達(dá)數(shù)據(jù)層次關(guān)系困難。
(2)無數(shù)據(jù)失真。原生XML數(shù)據(jù)庫可以對(duì)XML文檔直接存儲(chǔ),并且提供Schema校驗(yàn)功能,不會(huì)引起數(shù)據(jù)失真,而關(guān)系數(shù)據(jù)庫需要把模式轉(zhuǎn)化為約束才能校驗(yàn),且拆分存儲(chǔ)過程中容易導(dǎo)致數(shù)據(jù)失真。
(3)保留數(shù)據(jù)順序。原生XML數(shù)據(jù)庫完全保留XBRL文檔中的順序關(guān)系,而關(guān)系型數(shù)據(jù)庫存儲(chǔ)XBRL文檔,需要首先拆分成表,容易丟失元素順序信息。
(4)適合頻繁的海量數(shù)據(jù)查詢。原生XML數(shù)據(jù)庫查詢時(shí)是直接把XBRL文檔數(shù)據(jù)一次性讀入內(nèi)存中,雖然在讀取過程中耗費(fèi)時(shí)間,但一旦數(shù)據(jù)讀取完畢后,查詢速度很快,非常適合于頻繁的海量數(shù)據(jù)查詢。而關(guān)系數(shù)據(jù)庫卻在映射過程的拆分、重組中耗費(fèi)過多資源,嚴(yán)重影響查詢速度。
5 結(jié)束語
綜上所述,XBRL會(huì)計(jì)數(shù)據(jù)采用拆分方式存儲(chǔ)于關(guān)系數(shù)據(jù)庫更符合實(shí)際應(yīng)用,這也是在原生XML數(shù)據(jù)庫技術(shù)還不成熟的情況下的一種無奈的選擇。然而目前的存儲(chǔ)方式肯定不能滿足后期對(duì)XBRL大量的需求。如果存儲(chǔ)問題解決不好,XBRL即使得到應(yīng)用,也不會(huì)大范圍使用。為促進(jìn)XBRL的技術(shù)發(fā)展和應(yīng)用,筆者認(rèn)為應(yīng)該還要注重XBRL存儲(chǔ)技術(shù)的研究,如原生XML數(shù)據(jù)庫技術(shù),這是未來發(fā)展的必然選擇?,F(xiàn)在數(shù)據(jù)庫廠商也在大力研究XML的存儲(chǔ)技術(shù),相信不管從哪個(gè)角度發(fā)展,最后都會(huì)逐步解決目前存在的問題。
主要參考文獻(xiàn)
[1] 萬常選. XML數(shù)據(jù)庫技術(shù)[M]. 北京:清華大學(xué)出版社,2005.
[2] 婁芳,于海雯. XML 數(shù)據(jù)存儲(chǔ)方式的決策研究[J]. 科技廣場,2005(1).
[3] 劉世平,胡霖松. XBRL及其應(yīng)用概論(1)[J]. 當(dāng)代金融家,2006(10).
[4] 吳永春. XML數(shù)據(jù)存儲(chǔ)方法研究及應(yīng)用 [J]. 現(xiàn)代計(jì)算機(jī):專業(yè)版,2005(8).