解析電算會(huì)計(jì)基于關(guān)系數(shù)據(jù)庫(kù)原理的“電子賬”結(jié)構(gòu)
解析電算會(huì)計(jì)基于關(guān)系數(shù)據(jù)庫(kù)原理的“電子賬”結(jié)構(gòu)
“審計(jì)人員不掌握計(jì)算機(jī),將失去審計(jì)資格!”——李金華語(yǔ)。
隨著會(huì)計(jì)信息系統(tǒng)的不斷完善、被審計(jì)單位的信息化程度不斷提高、計(jì)算機(jī)管理覆蓋面的不斷擴(kuò)大,審計(jì)人員面臨更高、更迫切的要求,即對(duì)會(huì)計(jì)信息系統(tǒng)要有深入了解,并在審計(jì)過(guò)程中能對(duì)電子數(shù)據(jù)進(jìn)行采集、轉(zhuǎn)換和分析。
湖北省審計(jì)廳計(jì)算機(jī)中心與武漢大學(xué)商學(xué)院會(huì)計(jì)系,在對(duì)目前普遍運(yùn)用的各類會(huì)計(jì)信息系統(tǒng)進(jìn)行深入了解后,結(jié)合審計(jì)操作流程,總結(jié)了現(xiàn)階段計(jì)算機(jī)輔助審計(jì)的基本方法。本欄目將陸續(xù)將計(jì)算機(jī)審計(jì)相關(guān)文章介紹給讀者。
單位實(shí)現(xiàn)會(huì)計(jì)電算化后,會(huì)計(jì)數(shù)據(jù)存儲(chǔ)在計(jì)算機(jī)外存儲(chǔ)器的數(shù)據(jù)庫(kù)中。審計(jì)被審單位的會(huì)計(jì)賬務(wù)數(shù)據(jù)庫(kù),即電子賬,首先要了解被審單位電子賬結(jié)構(gòu)。由于現(xiàn)在市面上流行和使用的支撐會(huì)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行的平臺(tái)都是關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品,無(wú)論哪家會(huì)計(jì)軟件公司開(kāi)發(fā)的會(huì)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)都是基于關(guān)系數(shù)據(jù)庫(kù)原理設(shè)計(jì)的,本文將從關(guān)系數(shù)據(jù)庫(kù)原理和會(huì)計(jì)賬務(wù)核算電算化原理相結(jié)合的角度剖析電子賬的構(gòu)造原理,展示出會(huì)計(jì)電子賬結(jié)構(gòu)的共性規(guī)則,以便審計(jì)人員了解、掌握電子賬的結(jié)構(gòu)和特點(diǎn),進(jìn)而深入審查電子賬,并且做到觸類旁通。
數(shù)據(jù)庫(kù)是以某種數(shù)據(jù)模型所確定的數(shù)據(jù)結(jié)構(gòu)方式來(lái)組織和存儲(chǔ)某個(gè)組織(或部門(mén))相互關(guān)聯(lián)的數(shù)據(jù)集。數(shù)據(jù)庫(kù)管理系統(tǒng)是一種幫助用戶建立、使用、管理和維護(hù)數(shù)據(jù)庫(kù)的計(jì)算機(jī)系統(tǒng)軟件?;蛘哒f(shuō),數(shù)據(jù)庫(kù)管理系統(tǒng)是開(kāi)發(fā)一個(gè)實(shí)際應(yīng)用數(shù)據(jù)庫(kù)的工具并支撐其運(yùn)行的平臺(tái)。數(shù)據(jù)庫(kù)管理系統(tǒng)必須與其管理的數(shù)據(jù)庫(kù)的數(shù)據(jù)模型相一致。
1.數(shù)據(jù)模型
數(shù)據(jù)模型是對(duì)現(xiàn)實(shí)世界數(shù)據(jù)特征進(jìn)行抽象的工具,用來(lái)描述和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。數(shù)據(jù)模型要能較真實(shí)地模擬現(xiàn)實(shí)世界,既要便于人們理解,又要便于在計(jì)算機(jī)上實(shí)現(xiàn)。數(shù)據(jù)模型主要由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)完整性規(guī)則三個(gè)部分組成。數(shù)據(jù)結(jié)構(gòu)描述了組成數(shù)據(jù)庫(kù)的基本成分;數(shù)據(jù)操作描述了對(duì)數(shù)據(jù)結(jié)構(gòu)允許執(zhí)行的操作集合;完整性規(guī)則描述了對(duì)數(shù)據(jù)結(jié)構(gòu)所具有的約束和存儲(chǔ)規(guī)則。
2.關(guān)系數(shù)據(jù)模型
關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)是人們?nèi)粘J聞?wù)處理中常見(jiàn)的二維表結(jié)構(gòu)(如工資發(fā)放表)。關(guān)系數(shù)據(jù)模型將數(shù)據(jù)看成是二維表中唯一的行號(hào)和列號(hào)確定的一個(gè)表中元素,即關(guān)系數(shù)據(jù)模型是用二維表的方式來(lái)組織、存儲(chǔ)和處理數(shù)據(jù)和信息的。從應(yīng)用的角度來(lái)看,任何一個(gè)組織(或部門(mén))的關(guān)系數(shù)據(jù)庫(kù)的基本組成成分是二維表,或者說(shuō)某個(gè)組織(或部門(mén))的數(shù)據(jù)庫(kù)是由若干張相互關(guān)聯(lián)的二維表組成。由于二維表結(jié)構(gòu)清晰、簡(jiǎn)單、易于理解,也易于計(jì)算機(jī)實(shí)現(xiàn)(存儲(chǔ)、操作、控制),加上關(guān)系數(shù)據(jù)模型有數(shù)學(xué)理論基礎(chǔ)(集合論、關(guān)系代數(shù)),因此現(xiàn)在的數(shù)據(jù)庫(kù)管理系統(tǒng)軟件都是基于關(guān)系數(shù)據(jù)模型研發(fā)的,如SQL SERVER、ORACLE、DB2、SYBASE、ACCESS、FOXPRO等等。也就是說(shuō),用這些關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)軟件為某個(gè)組織開(kāi)發(fā)的會(huì)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)必須按關(guān)系數(shù)據(jù)模型來(lái)組織數(shù)據(jù)。那么,關(guān)系數(shù)據(jù)模型中的二維表與數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件之間有何聯(lián)系?
下面我們通過(guò)會(huì)計(jì)科目代碼表來(lái)介紹關(guān)系數(shù)據(jù)模型的基本概念及其與數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件之間的對(duì)應(yīng)關(guān)系:
(1)關(guān)系、二維表、數(shù)據(jù)文件:關(guān)系數(shù)據(jù)模型中用關(guān)系來(lái)表述現(xiàn)實(shí)世界中能夠相互區(qū)別的要管理的數(shù)據(jù)對(duì)象集。每一個(gè)關(guān)系都有一個(gè)關(guān)系名和一組表述其特征的屬性集,人們就是通過(guò)這些屬性集區(qū)別不同的關(guān)系。如記賬憑證、會(huì)計(jì)科目、總賬都可以稱之為關(guān)系,它們都是要管理的數(shù)據(jù)對(duì)象集,都有各自的屬性集。一個(gè)關(guān)系用一張二維表表示,表名對(duì)應(yīng)關(guān)系名。二維表由有限個(gè)不重復(fù)的行組成,表中的每一列不可再分。一張二維表在關(guān)系數(shù)據(jù)庫(kù)中用一個(gè)數(shù)據(jù)文件存儲(chǔ)。如“會(huì)計(jì)科目代碼表”在會(huì)計(jì)數(shù)據(jù)庫(kù)中用一個(gè)數(shù)據(jù)文件存儲(chǔ),文件名可以用表名“會(huì)計(jì)科目代碼”,使計(jì)算機(jī)中存儲(chǔ)的文件內(nèi)容與現(xiàn)實(shí)世界管理的數(shù)據(jù)對(duì)象相聯(lián)系。
(2)記錄:二維表中的每一行稱為一個(gè)記錄,描述了關(guān)系中一個(gè)具體的個(gè)體,在數(shù)據(jù)文件中是一個(gè)記錄值。如表1中第一行為現(xiàn)金賬戶的記錄,描述了現(xiàn)金賬戶在會(huì)計(jì)科目代碼文件中所有屬性的取值(特征)。
(3)屬性、列、字段:二維表中的每一列是一個(gè)屬性,描述了關(guān)系的一個(gè)特征。一個(gè)二維表的所有列構(gòu)成了一個(gè)關(guān)系的屬性集,通過(guò)它可以區(qū)別不同的二維表(關(guān)系)。二維表中的每一列的數(shù)據(jù)屬于同一類型。每一列的列名對(duì)應(yīng)關(guān)系的屬性名,同時(shí)對(duì)應(yīng)數(shù)據(jù)文件中的字段名。如表1用6個(gè)列表示會(huì)計(jì)科目代碼的屬性,其中第三列表示屬性“科目性質(zhì)”,當(dāng)某條記錄取值為1時(shí),表示是資產(chǎn)類科目。
(4)主碼、主關(guān)鍵字:指二維表中的某個(gè)列(屬性)或某幾個(gè)列(或?qū)傩越M),它們的值能夠唯一確定表中或數(shù)據(jù)文件中的一個(gè)記錄。如表1中的“科目代碼”屬性可以作為主碼(或主關(guān)鍵字),用來(lái)唯一識(shí)別表中的每一個(gè)會(huì)計(jì)科目。
(5)域:描述二維表中每一列屬性或數(shù)據(jù)文件的某一字段的取值類型和范圍。每一列的列名下面的括號(hào)中的內(nèi)容表示該列的取值類型和范圍,其中第四列“底層明細(xì)標(biāo)志”表示某個(gè)科目是不是最底層明細(xì)科目(不再有下層科目),只有兩種取值T(真)和F(假)。
(6)關(guān)系模式:一個(gè)關(guān)系模式由一個(gè)關(guān)系名及它所有的屬性構(gòu)成,它對(duì)應(yīng)一個(gè)二維表的表名和表頭欄目行(列的集合),構(gòu)成了一個(gè)二維表的框架,同時(shí)也是設(shè)計(jì)該二維表的數(shù)據(jù)文件結(jié)構(gòu)的依據(jù)。
至此,我們直觀地介紹了關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系、二維表、數(shù)據(jù)文件之間各個(gè)概念的對(duì)應(yīng)關(guān)系。由于二維表中的行與數(shù)據(jù)文件的記錄、二維表的列(屬性)與數(shù)據(jù)文件的字段之間相互對(duì)應(yīng),因此,審計(jì)人員只要掌握了會(huì)計(jì)賬務(wù)數(shù)據(jù)庫(kù)的二維表結(jié)構(gòu)及表之間的關(guān)聯(lián)也就能夠分析電子賬的結(jié)構(gòu)。
例如,將會(huì)計(jì)科目代碼表(表1)轉(zhuǎn)換成關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件結(jié)構(gòu):
3.關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作
從數(shù)學(xué)的角度看,關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作是基于集合的操作,操作對(duì)象和操作結(jié)果都是集合。從數(shù)據(jù)處理的角度看,數(shù)據(jù)操作的對(duì)象和結(jié)果都是二維表。對(duì)二維表的操作主要有:
(1)對(duì)表中的行(記錄)進(jìn)行操作:指對(duì)一張表中指定范圍的記錄進(jìn)行有條件的操作,操作的結(jié)果組成一張新表。例如,從“會(huì)計(jì)科目代碼表”中篩選出資產(chǎn)類科目組成新的“資產(chǎn)類科目代碼表”,操作的范圍是整個(gè)“會(huì)計(jì)科目代碼表”,條件是“科目性質(zhì)等于1”。對(duì)表中的行進(jìn)行操作后的結(jié)果表的結(jié)構(gòu)與原表相同,記錄數(shù)小于或等于原表。
(2)對(duì)表中的列(屬性)進(jìn)行操作:指對(duì)一張表中指定的列進(jìn)行有條件的操作,操作的結(jié)果組成一張新表。例如,從“會(huì)計(jì)科目代碼表”中選出“科目代碼”、“科目名稱”兩列,組成新的科目代碼對(duì)應(yīng)表,新表只有“科目代碼”和“科目名稱”兩列。顯然,列操作后的結(jié)果表的結(jié)構(gòu)與原表不同,結(jié)果表小于或等于原表。
(3)連接:對(duì)兩張表或多張表進(jìn)行有條件的連接操作,生成一張新表。連接操作后的結(jié)果表大于等于操作前的表。
從應(yīng)用的角度看,對(duì)二維表中的數(shù)據(jù)操作功能主要包括更新(增加、修改、刪除)數(shù)據(jù)和檢索(查詢)數(shù)據(jù),即對(duì)二維表填入和修改數(shù)據(jù),并從表中檢索出數(shù)據(jù)進(jìn)行加工應(yīng)用。
4.關(guān)系數(shù)據(jù)模型的數(shù)據(jù)完整性規(guī)則
數(shù)據(jù)完整性是指數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)是有意義的或正確的。關(guān)系數(shù)據(jù)模型中的數(shù)據(jù)完整性規(guī)則是指對(duì)二維表的定義和操作過(guò)程中要遵循的某些約束條件。主要包括:
(1)實(shí)體完整性:指每張表都必須有主碼,而且表中不允許存在無(wú)主碼值的記錄和主碼值相同的記錄。如表1中的每一個(gè)記錄都必須有科目代碼,并且不能有相同科目代碼的記錄和無(wú)科目代碼的記錄。
(2)參照完整性:指一張表的某列的取值受另一張表的某列的取值范圍約束,描述了多張表之間的關(guān)聯(lián)關(guān)系。例如,記賬憑證表中的“科目代碼”列的取值受到會(huì)計(jì)科目代碼表的“科目代碼”取值范圍的限定。
(3)用戶定義完整性。指針對(duì)某一具體應(yīng)用定義的數(shù)據(jù)庫(kù)約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足應(yīng)用語(yǔ)義的要求。即限制屬性的取值類型及范圍,防止屬性的值與應(yīng)用語(yǔ)義矛盾。如表1中,“科目性質(zhì)”的取值只能是1(資產(chǎn))、2(負(fù)債)、3(權(quán)益)、4(成本)、5(損益)。
5.從關(guān)系數(shù)據(jù)模型得到的啟示
(1)基于關(guān)系數(shù)據(jù)模型的會(huì)計(jì)賬務(wù)數(shù)據(jù)庫(kù)是以二維表為基本部件構(gòu)建的,數(shù)據(jù)庫(kù)中的每一個(gè)數(shù)據(jù)文件對(duì)應(yīng)一張二維表,數(shù)據(jù)文件之間的關(guān)聯(lián)也可以用二維表之間的關(guān)聯(lián)來(lái)表示,對(duì)二維表的定義和數(shù)據(jù)操作必須滿足數(shù)據(jù)完整性約束條件。構(gòu)建一個(gè)會(huì)計(jì)賬務(wù)數(shù)據(jù)庫(kù)首先要將會(huì)計(jì)賬務(wù)管理的對(duì)象,如會(huì)計(jì)科目、記賬憑證、日記賬、明細(xì)賬、總賬及它們之間的關(guān)系抽象成二維表的形式,弄清了它們的二維表結(jié)構(gòu)也就弄清了它們的數(shù)據(jù)文件結(jié)構(gòu),即電子賬結(jié)構(gòu)。因此,會(huì)計(jì)賬務(wù)數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)可以轉(zhuǎn)變成會(huì)計(jì)賬務(wù)數(shù)據(jù)的二維表及二維表之間的關(guān)聯(lián)設(shè)計(jì),而一張二維表的表頭欄目(屬性集)反映了表的結(jié)構(gòu)特征,是設(shè)計(jì)數(shù)據(jù)文件結(jié)構(gòu)的依據(jù)。
(2)依據(jù)關(guān)系數(shù)據(jù)模型研發(fā)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)是開(kāi)發(fā)和管理會(huì)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)的工具軟件,也是支持所開(kāi)發(fā)的會(huì)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行的平臺(tái),任何一個(gè)會(huì)計(jì)賬務(wù)數(shù)據(jù)庫(kù)都必須在某一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的在線管理下運(yùn)行。由于不同的數(shù)據(jù)庫(kù)軟件公司提供的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)軟件的各個(gè)版本的功能強(qiáng)弱、所適應(yīng)的計(jì)算機(jī)系統(tǒng)的運(yùn)行環(huán)境(單機(jī)、網(wǎng)絡(luò)等)、所提供的對(duì)表的操作命令等都有所不同,因此,審計(jì)人員要審查電子賬,首先要了解被審單位的電子賬的數(shù)據(jù)庫(kù)管理系統(tǒng)軟件的名稱(例如是SQL SERVER或ORACLE)、版本(單機(jī)、網(wǎng)絡(luò),第幾版)、打開(kāi)數(shù)據(jù)庫(kù)(表)以及對(duì)表操作的命令格式和命令等。盡管各種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)軟件版本有差異,但通過(guò)以上對(duì)關(guān)系數(shù)據(jù)模型的操作可以了解到:表的主要操作類型和功能基本一致。審計(jì)人員僅需要掌握最基本的打開(kāi)、檢索、匯總數(shù)據(jù)庫(kù)(表)等操作命令就能進(jìn)行審查會(huì)計(jì)賬務(wù)數(shù)據(jù)庫(kù)的基本工作,并非深不可測(cè)。