亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于非線(xiàn)性關(guān)系的稅務(wù)自發(fā)任務(wù)分發(fā)應(yīng)用的算法分析與Oracle 實(shí)現(xiàn)

        2013-03-20 08:24:54朱愛(ài)民
        稅收經(jīng)濟(jì)研究 2013年3期
        關(guān)鍵詞:子句層數(shù)數(shù)據(jù)表

        ◆孫 利 ◆朱愛(ài)民

        一、引 言

        稅務(wù)任務(wù)分發(fā)應(yīng)用是工作流的一種,工作流的概念源自企業(yè)的生產(chǎn)經(jīng)營(yíng)管理與辦公自動(dòng)化領(lǐng)域。稅務(wù)任務(wù)分發(fā)應(yīng)用通過(guò)記錄對(duì)稅務(wù)機(jī)關(guān)在稅收征管活動(dòng)中具有上下層級(jí)順序的若干涵蓋多部門(mén)、多人員的工作流及工作流變化過(guò)程,監(jiān)督與控制稅務(wù)機(jī)關(guān)的整個(gè)任務(wù)落實(shí)過(guò)程諸如上傳下達(dá)完成等環(huán)節(jié)流程的執(zhí)行時(shí)間、效率與結(jié)果。通過(guò)對(duì)任務(wù)分發(fā)過(guò)程與結(jié)果的信息分析利用,進(jìn)行稅收征管業(yè)務(wù)流程再造,實(shí)現(xiàn)高水平的稅務(wù)信息化建設(shè)。

        二、非線(xiàn)性的稅務(wù)任務(wù)分發(fā)應(yīng)用與一般稅務(wù)任務(wù)應(yīng)用的區(qū)別

        一般稅務(wù)任務(wù)應(yīng)用是按照始于納稅人需求的納服體系建設(shè)要求設(shè)計(jì)的業(yè)務(wù)流程,通常是從納稅人的申請(qǐng)與納服部門(mén)的受理開(kāi)始,中間經(jīng)過(guò)調(diào)查、核實(shí)、報(bào)批、審批等節(jié)點(diǎn),最終回到納服部門(mén)反饋納稅人結(jié)果為結(jié)點(diǎn)的過(guò)程。如圖1 所示:

        圖1 一般稅務(wù)任務(wù)應(yīng)用

        圖1 顯示了一般稅務(wù)任務(wù)應(yīng)用中節(jié)點(diǎn)與崗位的關(guān)系。在實(shí)際運(yùn)用中,通過(guò)設(shè)計(jì)不同事項(xiàng)途經(jīng)不同的節(jié)點(diǎn)以及不同的操作人員對(duì)應(yīng)的崗位,實(shí)現(xiàn)從對(duì)納稅人申請(qǐng)的受理開(kāi)始任務(wù)的傳遞流程。這種業(yè)務(wù)流程實(shí)現(xiàn)的是一種線(xiàn)性關(guān)系,其結(jié)構(gòu)是鏈表式的基本數(shù)據(jù)結(jié)構(gòu),流程按順序訪(fǎng)問(wèn)一組數(shù)據(jù)項(xiàng)的集合,這些數(shù)據(jù)項(xiàng)形成一個(gè)鏈表,每個(gè)元素都含有訪(fǎng)問(wèn)下一個(gè)元素所需的信息。要訪(fǎng)問(wèn)鏈表的信息,只需要引用鏈表的指針和結(jié)構(gòu)體的成員名即可。

        從稅務(wù)機(jī)關(guān)內(nèi)部發(fā)起的自發(fā)任務(wù)分發(fā)應(yīng)用則不同。一項(xiàng)從內(nèi)部發(fā)起的征管任務(wù),從發(fā)起者開(kāi)始,到最終履行者,任務(wù)逐級(jí)推送,涉及人員逐級(jí)增長(zhǎng),內(nèi)容逐步明晰,其業(yè)務(wù)流程實(shí)現(xiàn)的是非線(xiàn)性關(guān)系,所呈現(xiàn)的樹(shù)圖如圖2 所示。

        圖2 稅務(wù)機(jī)關(guān)自發(fā)任務(wù)分發(fā)應(yīng)用的樹(shù)圖

        其基本特征有:

        特征1.1 稅務(wù)自發(fā)任務(wù)分發(fā)應(yīng)用是樹(shù)的應(yīng)用。

        稅務(wù)自發(fā)任務(wù)分發(fā)應(yīng)用是由n 棵互不相交的樹(shù)組成的集合,即森林;每一棵樹(shù)是一棵有向樹(shù),每棵樹(shù)的每個(gè)節(jié)點(diǎn)有零或多個(gè)子節(jié)點(diǎn),每個(gè)子節(jié)點(diǎn)有且僅有一個(gè)父節(jié)點(diǎn),在樹(shù)的根與其他節(jié)點(diǎn)之間、父節(jié)點(diǎn)與子節(jié)點(diǎn)之間有且僅有一條路徑。

        特征1.2 稅務(wù)自發(fā)任務(wù)分發(fā)應(yīng)用是有序樹(shù)。

        有一個(gè)結(jié)點(diǎn)的入度為0,其余所有結(jié)點(diǎn)的入度都為l,是一個(gè)有根樹(shù),雖不是自由樹(shù),但作為一個(gè)為每個(gè)子結(jié)節(jié)規(guī)定從左到右次序的有序樹(shù),則在實(shí)際中未必有必要性。

        特征1.3 稅務(wù)自發(fā)任務(wù)分發(fā)應(yīng)用是M 叉樹(shù)。

        作為一個(gè)M 叉樹(shù),每一個(gè)節(jié)點(diǎn)的出度小于或等于m,子節(jié)點(diǎn)的數(shù)目并不確定。 從行業(yè)應(yīng)用來(lái)看,稅務(wù)自發(fā)任務(wù)分發(fā)應(yīng)用有以下特征:

        特征2.1 樹(shù)的根、層數(shù)、不同層數(shù)的節(jié)點(diǎn)均存在不確定性。

        不同層級(jí)的稅務(wù)機(jī)關(guān)下發(fā)任務(wù)時(shí),其根、層數(shù)與不同層數(shù)的節(jié)點(diǎn)均不確定。不同的任務(wù),也產(chǎn)生同樣的不確定性。以節(jié)點(diǎn)落實(shí)到具體數(shù)據(jù)的不確定性為例:有的任務(wù)是指定數(shù)據(jù)的,例如對(duì)全國(guó)重點(diǎn)稅源納稅人的管理任務(wù),表現(xiàn)為數(shù)據(jù)量固定不變;有的任務(wù)是從一批指定數(shù)據(jù)到另一批指定數(shù)據(jù),如從風(fēng)險(xiǎn)識(shí)別->風(fēng)險(xiǎn)推送->風(fēng)險(xiǎn)應(yīng)對(duì),呈數(shù)據(jù)量衰減趨勢(shì);有的任務(wù)是從文字描述發(fā)起到具體數(shù)據(jù)的落實(shí)過(guò)程,呈數(shù)據(jù)量增長(zhǎng)趨勢(shì)。

        特征2.2 目標(biāo)是實(shí)現(xiàn)以任務(wù)自身為核心的柔性的任務(wù)分發(fā)功能。

        基于特征2.1,稅務(wù)自發(fā)任務(wù)分發(fā)應(yīng)用的目標(biāo)是實(shí)現(xiàn)以任務(wù)自身為核心而非任務(wù)內(nèi)容為核心的、柔性的而非剛性的任務(wù)分發(fā)功能。在核心功能實(shí)現(xiàn)的基礎(chǔ)上,兼顧任務(wù)內(nèi)容所落實(shí)的具體數(shù)據(jù)信息,實(shí)現(xiàn)系統(tǒng)的完整性。

        三、基于實(shí)際稅務(wù)應(yīng)用的表設(shè)計(jì)

        如果從存取類(lèi)似稅務(wù)任務(wù)分發(fā)這樣的應(yīng)用來(lái)說(shuō),無(wú)疑一些NoSQL 數(shù)據(jù)庫(kù),例如文檔型數(shù)據(jù)庫(kù)是更好的解決方案。NoSQL 數(shù)據(jù)庫(kù)與關(guān)系型數(shù)據(jù)庫(kù)相比,更偏重于數(shù)據(jù)存取和問(wèn)題的解決,而非像關(guān)系型數(shù)據(jù)庫(kù)那樣基于關(guān)系模型、側(cè)重于分析數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系和結(jié)構(gòu)。關(guān)系型數(shù)據(jù)庫(kù)雖然不是唯一的高級(jí)數(shù)據(jù)庫(kù)模型,也不是性能最優(yōu)的模型,但是因?yàn)楣δ芗骖?,易于理解和使用,已成為目前使用最廣泛的主流數(shù)據(jù)庫(kù),包括在稅務(wù)系統(tǒng)的應(yīng)用。本文也以關(guān)系數(shù)據(jù)庫(kù)為例說(shuō)明。

        稅務(wù)自發(fā)任務(wù)分發(fā)應(yīng)用需要的基本信息有:

        1.任務(wù)信息

        任務(wù)有發(fā)起時(shí)間、發(fā)起部門(mén)、類(lèi)型、完成任務(wù)的數(shù)量要求、質(zhì)量要求、時(shí)限要求等信息,因此,需要一個(gè)任務(wù)表(tasks),如表1:

        表1 任務(wù)表

        2.任務(wù)狀態(tài)信息

        在業(yè)務(wù)流程設(shè)計(jì)上,任務(wù)分發(fā)的正常流程包括:生成->下發(fā)->未讀->已讀->(轉(zhuǎn)發(fā))->申請(qǐng)完成->完成,其業(yè)務(wù)邏輯為從任務(wù)制訂為起點(diǎn),把任務(wù)下發(fā)給指定對(duì)象,指定對(duì)象是否閱讀的狀態(tài)用于監(jiān)控接收任務(wù)對(duì)象的工作流。指定對(duì)象收到任務(wù)后,決定是否要轉(zhuǎn)發(fā)任務(wù),對(duì)轉(zhuǎn)發(fā)的任務(wù),原任務(wù)處于轉(zhuǎn)發(fā)狀態(tài),再重新生成新的任務(wù)。接收任務(wù)方完成任務(wù)后,向任務(wù)發(fā)起方提交任務(wù)完成申請(qǐng),由任務(wù)發(fā)起方設(shè)定任務(wù)完成狀態(tài)。

        非正常的業(yè)務(wù)邏輯有申請(qǐng)退回、刪除、凍結(jié)等。

        任務(wù)狀態(tài)表(states)用于保存任務(wù)的狀態(tài),如表2:

        表2 任務(wù)狀態(tài)表

        3.任務(wù)分發(fā)人員信息

        由于稅務(wù)任務(wù)分發(fā)時(shí),常常需要分發(fā)同一任務(wù)給多個(gè)接收人員,因此需要任務(wù)分發(fā)人員信息表(operators)記錄任務(wù)分發(fā)人員的信息,對(duì)下發(fā)人員、接收人員進(jìn)行記錄,如表3:

        表3 任務(wù)分發(fā)信息表

        4.任務(wù)內(nèi)容/附件信息

        在解決了核心問(wèn)題后,通過(guò)任務(wù)內(nèi)容或附件表(attachments)的形式,記錄任務(wù)相關(guān)的內(nèi)容與附件,為精細(xì)化處理任務(wù)保存信息,如表4:

        表4 任務(wù)附件表

        稅務(wù)自發(fā)任務(wù)分發(fā)應(yīng)用的E-R 圖如圖3 所示。

        圖3 表設(shè)計(jì)的E-R 圖

        為便于描述,以上數(shù)據(jù)表設(shè)計(jì)均以單樹(shù)為例,未加入總?cè)蝿?wù)號(hào)字段來(lái)標(biāo)識(shí)區(qū)分多樹(shù)。

        四、任務(wù)分發(fā)應(yīng)用的算法

        對(duì)以上通過(guò)保存任務(wù)號(hào)+父任務(wù)號(hào)信息的形式實(shí)現(xiàn)的最基本的稅務(wù)任務(wù)分發(fā)應(yīng)用的數(shù)據(jù)表結(jié)構(gòu),我們運(yùn)用的最基本的算法即是任務(wù)的遍歷。通過(guò)任一任務(wù)的節(jié)點(diǎn),系統(tǒng)地處理任務(wù)里的每一節(jié)點(diǎn)。有三種基本的順序來(lái)遍歷節(jié)點(diǎn):

        先序:先訪(fǎng)問(wèn)根節(jié)點(diǎn)或父節(jié)點(diǎn),再訪(fǎng)問(wèn)子節(jié)點(diǎn)。

        中序:通過(guò)父節(jié)點(diǎn)得到所有同層子節(jié)點(diǎn),然后訪(fǎng)問(wèn)子節(jié)點(diǎn)。

        后序:先訪(fǎng)問(wèn)子節(jié)點(diǎn),再訪(fǎng)問(wèn)父節(jié)點(diǎn)直至根節(jié)點(diǎn)。

        通過(guò)遞歸可以實(shí)現(xiàn)以上遍歷方法,如圖4 所示(圖左為先序遍歷,右為后序遍歷):

        圖4 遞歸遍歷圖示(tid/fid 分別為子節(jié)點(diǎn)與父節(jié)點(diǎn))

        在最簡(jiǎn)數(shù)據(jù)表結(jié)構(gòu)的基礎(chǔ)上實(shí)現(xiàn)的遍歷,雖然可以采取三個(gè)遍歷方法,但實(shí)際使用以后序法為主。因數(shù)據(jù)表結(jié)構(gòu)中保存的信息僅有父信息與子信息,要從任一節(jié)點(diǎn)出發(fā),只能跟蹤鏈接逐一從一個(gè)節(jié)點(diǎn)移到上一節(jié)點(diǎn)。從數(shù)據(jù)庫(kù)運(yùn)行來(lái)說(shuō),即每次節(jié)點(diǎn)的移動(dòng)就是對(duì)數(shù)據(jù)庫(kù)的一次檢索,如果一個(gè)任務(wù)有N 個(gè)節(jié)點(diǎn),對(duì)該任務(wù)的一次遍歷訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)也不會(huì)少于N 次。

        因此,我們還可以看到在基本數(shù)據(jù)表結(jié)構(gòu)的基礎(chǔ)上,為解決遍歷效率問(wèn)題而衍生的另外幾種擴(kuò)充數(shù)據(jù)表結(jié)構(gòu),用于實(shí)現(xiàn)任務(wù)分發(fā)應(yīng)用的參考:

        1.加路徑信息

        例如在前面的tasks 表中增加路徑信息字段paths,定義為AA(-BB-CC……)的結(jié)構(gòu),如00-00-00 為根節(jié)點(diǎn)(或00),第一層的左節(jié)點(diǎn)為00-01-00(或00-01),右節(jié)點(diǎn)為00-02-00(或00-02),依次類(lèi)推,也可不補(bǔ)零。在檢索時(shí),通過(guò)SQL 語(yǔ)句SELECT * FROM tasks WHERE paths LIKE SUBSTR(@path,1,2) ORDER BY paths 在任一節(jié)點(diǎn)可以?xún)H訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)一次即可檢索整棵樹(shù)。但其缺點(diǎn)也很明顯,即路徑字段寬度受到層數(shù)和子節(jié)點(diǎn)個(gè)數(shù)的限制,僅適用固定層數(shù)的樹(shù)遍歷。

        2.加層數(shù)信息

        通過(guò)增加層數(shù)和根節(jié)點(diǎn)信息,有利于提高中序檢索的效率。如在前面的tasks 表中增加層數(shù)信息字段layer 和根節(jié)點(diǎn)信息字段root,通過(guò)SQL 語(yǔ)句SELECT * FROM tasks WHERE root=@root AND layer=@layer AND father_id=@father_id 在任一節(jié)點(diǎn)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)可以得到中序遍歷的結(jié)果。其缺點(diǎn)是數(shù)據(jù)冗余嚴(yán)重。

        3.設(shè)置左右代碼信息。

        在tasks 表中增加表示左右信息的字段left 和right,left 數(shù)據(jù)以根節(jié)點(diǎn)為1 開(kāi)始,從根節(jié)點(diǎn)沿子節(jié)點(diǎn)路徑向下,每個(gè)節(jié)點(diǎn)加1,到樹(shù)葉后,再沿子節(jié)點(diǎn)向上,right 數(shù)據(jù)在每個(gè)節(jié)點(diǎn)加1,通過(guò)SQL 語(yǔ)句SELECT * FROM tasks WHERE left>@left AND right<@right 可以得到中序遍歷的檢索結(jié)果。從算法上是一種新穎的設(shè)計(jì),但目前僅適用二叉樹(shù),且不適應(yīng)節(jié)點(diǎn)的刪改變更。

        綜上幾種數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì),從算法來(lái)看可以獲得不同的遍歷效率,但從實(shí)際運(yùn)用來(lái)看,則是耦合度越高,容錯(cuò)度就越低。

        五、Oracle 實(shí)現(xiàn)舉例

        Oracle 數(shù)據(jù)庫(kù)是關(guān)系型數(shù)據(jù)庫(kù),不能像層次型數(shù)據(jù)庫(kù)那樣存放層次關(guān)系。但Oracle 數(shù)據(jù)庫(kù)提供了強(qiáng)有力的層次查詢(xún)(Hierarical Retrival)功能,可以高效地獲得層次關(guān)系信息。以O(shè)racle10g 為例,可以實(shí)現(xiàn)用先序、中序、后序各種方法遍歷樹(shù),其實(shí)現(xiàn)方法為:通過(guò)查詢(xún)子句START WITH 確定起始節(jié)點(diǎn)位置;通過(guò)查詢(xún)子句CONNECT BY 確定遍歷方向,先序或后序。

        SQL 語(yǔ)句語(yǔ)法為:

        Oracle 提供了一個(gè)用于層次檢索的虛擬列l(wèi)evel,與CONNECT BY 子句共用,通過(guò)level 列可以獲得樹(shù)的層數(shù)值。

        檢索的遍歷方向根據(jù)CONNECT BY 后的PRIOR 在哪個(gè)節(jié)點(diǎn)前確定。如在子節(jié)點(diǎn)前,則為先序;如在父節(jié)點(diǎn)前,則為后序。如子句為CONNECT BY PRIOR son_id=father_id 或CONNECT BY father_id=PRIOR son_id 時(shí),則其方向?yàn)橄刃虮闅v,按START WITH 子句指點(diǎn)的節(jié)點(diǎn)按路徑逐一向下遍歷;如子句為CONNECT BY son_id= PRIOR father_id 或CONNECT BY PRIOR father_id=son_id 時(shí),則其方向?yàn)橄刃虮闅v,按START WITH 子句指點(diǎn)的節(jié)點(diǎn)按路徑逐一向上遍歷,但遍歷的范圍僅限于同一父節(jié)點(diǎn)為止。

        例如在表tasks 中,從father_id 為空處(表示根節(jié)點(diǎn))開(kāi)始進(jìn)行先序檢索:

        檢索結(jié)果如表5:

        表5 檢索結(jié)果

        使用DELETE 語(yǔ)句結(jié)合START WITH 和CONNECT BY 子句,實(shí)現(xiàn)對(duì)指定節(jié)點(diǎn)的子節(jié)點(diǎn)刪除。

        Oracle10g 在層次查詢(xún)上的一個(gè)新增功能是引入了CONNECT_BY_ISLEAF 函數(shù),通過(guò)函數(shù)值判斷指定節(jié)點(diǎn)是否為樹(shù)的葉子。函數(shù)值為0 時(shí),非葉子;函數(shù)值為1 時(shí),為葉子。

        如按先序檢索tasks 表中father_id=1 開(kāi)始的子節(jié)點(diǎn)信息,并顯示其是否為葉子:

        Oracle10g 對(duì)層次查詢(xún)中可能發(fā)生的遞歸死循環(huán),即互為父子節(jié)點(diǎn)的情況,使用NOCYCLE 關(guān)鍵字進(jìn)行干預(yù),而且可以通過(guò)CONNECT_BY_ISCYCLE 關(guān)鍵字的值查詢(xún)?cè)谀膫€(gè)節(jié)點(diǎn)發(fā)生了死循環(huán)。

        六、結(jié)語(yǔ)

        本文分析基于非線(xiàn)性關(guān)系的稅務(wù)機(jī)關(guān)自發(fā)任務(wù)分發(fā)應(yīng)用的算法,并在實(shí)際稅務(wù)應(yīng)用的基礎(chǔ)上,給出了基本的數(shù)據(jù)表設(shè)計(jì),通過(guò)Orcale 實(shí)例,說(shuō)明了應(yīng)用的實(shí)現(xiàn)效果。文章表明了非線(xiàn)性關(guān)系的稅務(wù)機(jī)關(guān)自發(fā)任務(wù)分發(fā)系統(tǒng)的實(shí)現(xiàn)可能性、可靠性與可維護(hù)性,為最終實(shí)現(xiàn)該應(yīng)用提供了堅(jiān)實(shí)的基礎(chǔ)。

        [1][美]塞奇威克.算法Ⅰ-Ⅳ 基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)、排序和搜索[M].張銘澤等譯.北京:中國(guó)電力出版社,2004.

        [2][美]科曼.算法導(dǎo)論[M].潘金貴等譯.北京:機(jī)械工業(yè)出版社,2006.

        [3]Iggy Fernandez.Beginning Oracle Database 11g Administration[M].USA CA:APRESS,2009.

        猜你喜歡
        子句層數(shù)數(shù)據(jù)表
        命題邏輯中一類(lèi)擴(kuò)展子句消去方法
        填筑層數(shù)對(duì)土石壩應(yīng)力變形的影響研究
        上海發(fā)布藥品包裝物減量指南
        康復(fù)(2022年31期)2022-03-23 20:39:56
        命題邏輯可滿(mǎn)足性問(wèn)題求解器的新型預(yù)處理子句消去方法
        湖北省新冠肺炎疫情數(shù)據(jù)表
        黨員生活(2020年2期)2020-04-17 09:56:30
        MoS2薄膜電子性質(zhì)隨層數(shù)變化的理論研究
        電子制作(2019年11期)2019-07-04 00:34:50
        基于列控工程數(shù)據(jù)表建立線(xiàn)路拓?fù)潢P(guān)系的研究
        西夏語(yǔ)的副詞子句
        西夏學(xué)(2018年2期)2018-05-15 11:24:42
        命題邏輯的子句集中文字的分類(lèi)
        住在哪一層
        久久精品国产亚洲av忘忧草18| 韩国免费一级a一片在线| 国产免费激情小视频在线观看| 日本一区二区高清视频| 久久久男人天堂| 手机AV片在线| 国产精品久久av色婷婷网站| av在线播放男人天堂| 国产私人尤物无码不卡| 18禁无遮拦无码国产在线播放 | 337人体做爰大胆视频| 国产精品片211在线观看| 国产丝袜免费精品一区二区| 中文字幕亚洲精品高清| 国产一区二区精品人妖系列在线 | 熟女少妇丰满一区二区| 精品国产色哟av一区二区三区| 精品一区中文字幕在线观看| 国产精品 亚洲 无码 在线| 国产亚洲精品资源在线26u| 久久亚洲黄色| 青青草一级视频在线观看| 日本视频在线播放一区二区 | 亚洲国产精华液网站w| 国产乱妇乱子视频在播放| 亚洲区在线| 青青草视全福视频在线| 亚洲成年国产一区二区| 日本在线 | 中文| 爽爽午夜影视窝窝看片| 丰满少妇爆乳无码专区| 亚洲视频在线视频在线视频| 色和尚色视频在线看网站| 美女内射毛片在线看免费人动物| 国产成人一区二区三区影院动漫 | 人人妻人人澡人人爽欧美一区双| 日本爽快片18禁免费看| 国产一区二区精品在线观看| 视频女同久久久一区二区三区| 国产精品自拍视频在线| 午夜dv内射一区二区|