談談偶的通用資料庫查詢器開發心得

來源:互聯網
上載者:User
資料|資料庫|心得
    目前,基於關係型資料庫的應用系統到處都是,能否提供一個強大的資料查詢功能是這些系統優劣的一個重要考量指標。很多大型的資料庫應用軟體公司都有自己的查詢器。比如用友、SAP等。但是它們的查詢器只用於自身的系統。

    偶一日閑來無事,突生開發一通用東東玩玩的念頭,隧有DataGetter查詢器的誕生。偶之設計為針對應用系統之普通使用者,非我等之IT技術人員也,故設計之時需假設使用者不瞭解基表結構,不瞭解任何SQL語句。

    奮戰一月,終有小成,然不敢私藏,故借CSDN示之以眾,若能對人有所啟迪,則幸莫大焉!

 

基本概念定義



















業務對象:

     已存於未經處理資料庫的定義之中。在資料庫中基表大致可以劃分為兩類,一類是定義實體(對象)的,另一類是用來定義實體(對象)間關係的。一類業務對象一定能找到對應的基表定義。基表中的每一條記錄就代表一個具體的業務對象定義。

特徵:

     一個特徵就反映某對象某方面的特性。特徵具有通過對象關係進行傳遞和匯聚的特性。特徵分為狹義特徵和廣義特徵。

狹義特徵:

    一個狹義特徵是某對象的直接特性。未經處理資料庫中的每一基表的每個業務欄位都是特徵,亦可稱為基本特徵。

廣義特徵:

    除狹義特徵外還包括某對象通過路由規則和匯聚規則所得到的所有特徵和相關所有衍生特徵。

路由規則:

    對於對象A和B,若其間的對象關係為n:1,則稱B的特徵可以被傳遞給A,即可直接視B的特徵為A的特徵。

匯聚規則:

    對於對象A和B,若關係為1:n,則稱B的特徵可被匯聚成A的特徵。

衍生特徵:由單行記錄中一個或多個特徵經過一定固定的計算而推演出的新特徵為衍生特徵,也稱匯出特徵。該類特徵和匯聚特徵通常都不直接存在於未經處理資料庫中,而是要進行專門的編程來實現。因此能否很好的支援這兩種特徵便是判斷一個取數工具強大與否的重要條件。


 


 



 



 



      基於以上概念,可對使用者取數行為本質作如此定義:是使用者擷取關注對象的關注特徵值的過程。比如某合約管理員在某天需要某個合約的執行情況資料,具體包括合約簽訂日期、承包商名稱、合約總金額、累計發產生本、累計完成工程量、本年累計發產生本、本年累計工程量等資訊。在這個例子中,某個合約就成為了使用者的關注對象,而合約簽訂日期等就成為了該關注對象的關注特徵。在這些特徵中,合約簽訂日期、承包商名稱、合約總金額就屬於基本特徵,而累計發產生本、累計完成工程量、本年累計發產生本、本年累計工程量屬於衍生特徵。

綜上所述,我們可以知道使用者需要的特徵可能在一個基表中,也有可能散落在不同的基表中。這就是資料查詢器開發的關鍵和痛點,而基於業務對象―特徵方法的兩層結構恰好是解決這個問題的一個好辦法。

   以上是偶開發DataGetter的理論基礎。DataGetter對使用者隱藏了資料庫的結構資訊而以兩層結構方式向使用者直接展現業務對象和其所有業務特徵。使用者只要找到業務對象就能擷取它所有相關的特徵,而不需要考慮它到底散落在資料庫的哪個基表中。這大大方便了使用者的取數。同時,軟體還提供了可擴充的衍生計算方法庫、匯聚計算方法庫,使用者若有新的特徵需要,則只需按照規定在相應表中進行簡單登記即可。若碰到比較特殊的需求,可通過擴充相關方法庫來滿足需要。以下通該軟體的介紹來進一步說明基於業務對象-特徵兩層結構方法開發資料查詢器方法的實際工作原理。

介紹



















(1) 系統架構圖




















    


    



    



    

       (2) 軟體使用樣本



















示範假象情境:某資訊系統包含一合約管理系統,該合約管理系統具有登記合約基本資料、記錄合約每次支付單資訊的功能。該系統的未經處理資料庫基表結構如下。





























 


 



 



 



 




 


 



 



 


























































































































































































某業務人員想擷取2003年簽訂的合約及執行的有關情況,具體內容為:合約代碼、合約名稱、合約簽訂日期、合約承包商名稱、合約金額、合約累計支付金額。在這樣的一個取數例子中,對照上面的基表可以知道本次關注對象為所有2002年簽訂的合約,而關注特徵中合約代碼、合約名稱、合約簽訂日期、合約累計支付金額為基本特徵,合約承包商名稱為



















傳遞特徵,而合約累計支付金額為匯聚特徵。這個查詢要求的完成過程說明及圖示見如下。



















第一步:選擇所關注的物件類別,因為合約對象都在合約檔案櫃中因此選擇合約檔案櫃即可。然後點擊下一步。

第二步是選擇所關注的特徵。需要注意的是使用者需要的累計支付金額已經出現左邊在特徵列表中,這是因為預先在特徵表中進行了登記,故而使用者只需要使用而不需要考慮如何去完成累計值的計算。選擇完成後點擊下一步。

第三步是定義對象篩選條件。可通過滑鼠或直接在條件定義框中輸入的方式來定義篩選條件。

第四步是啟動DataGetter Software取數引擎。本步操作僅是點擊完成鍵。一點便完成了取數引擎的啟動工作。



第五步是查看取數結果並可對其進行其它操作,本次案例的結果如下。DataGetter Software提供了在系統內進行結果查看和列印的功能,同時能將結果儲存為TXT格式檔案。運用此功能可在其它諸如EXCEL之類的表格處理軟體中讀取取數結果便於進一步的分析、處理、列印等。






















 


 



 



 



 




 


 



 



 



 (3) DataGetter Software特點



















1.採用先進的Java語言編製而成。

2.可支援多種資料庫。

3.終端使用者的零資料庫知識要求。

4.終端使用者的零操作培訓。

5.終端使用者的零使用者編程。

6.可提出存在於多表中的相關資料。

7.取數速度快。

8.系統提供了可擴充的多行運算方法庫(比如累計、平均值等)。使用者可以象擷取其它基本資料一樣簡單的擷取多行運算結果資料而不需要使用運算函數的使用方法。

9.系統提供了可擴充的匯出方法庫(通過已有的資料產生新的有意義的資料,比如日期資料可以匯出年份資料)。

10.系統提供了可擴充的關係運算方法庫。

11.系統提供了可擴充的特徵庫。

12.系統可將資料提取結果儲存為文字格式設定。以便滿足使用者將資料提取結果轉入到EXCEL等專用表格處理軟體之中完成進一步的處理、排版、列印等的需要。

13.可在系統中以EXCEL網格形式瀏覽提取結果。

14.系統提供了快速列印提取結果的功能。


 


 



 



 



 





  


相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。