• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于圖數據庫的TDM系統(tǒng)設計與實現

      2018-12-10 09:13:16錢俊松冷文浩
      軟件導刊 2018年9期
      關鍵詞:軟件開發(fā)

      錢俊松 冷文浩

      摘要 為了滿足新的試驗數據管理系統(tǒng)開發(fā)需求,綜合考慮系統(tǒng)可擴展性與需求變動,以及試驗數據缺乏結構化等因素,提出一種使用圖數據庫進行領域建模的思路。對TDM系統(tǒng)作簡要介紹,在此基礎上,通過分析關系數據庫的建模方式,指出TDM系統(tǒng)開發(fā)和運維中存在的問題。針對這些弊端,詳細探討了基于圖數據庫的系統(tǒng)總體設計思路,為今后類似系統(tǒng)的設計提供參考借鑒。

      關鍵詞 試驗數據管理;軟件開發(fā);圖數據庫;TDM;Neo4j

      DOIDOI:10.11907/rjdk.181123

      中圖分類號:TP392

      文獻標識碼:A文章編號文章編號:16727800(2018)009019604

      英文標題Design and Implementation of Test Data Management System Based on Graph Database

      --副標題

      英文作者QIAN Junsong1,LENG Wenhao2

      英文作者單位(1.School of IoT Engineering,Jiangnan University,Wuxi 214122,China;2.China Ship Scientific Research Center,Wuxi 214082,China)

      英文摘要Abstract:The development oftest data management system is difficult.Test data lacks of structuring.In addition,customers' requirements change fast.To solve the problem,a test data management system based on graph database is designed and developed.TDM is briefly introduced and the design of database structure based on relational database and graph databse are both discussed in detail.Neo4j,an easy to use and high efficientgraph database,is explored to provide data storage in the system.The flaw of relation databse is also explored to demonstrate the advantage of graph database.The implementation of the system can provide reference for similar system design in the future.

      英文關鍵詞Key Words:test data management;software development;graph database;TDM;Neo4j

      0引言

      在企業(yè)試驗部門,長期的設計與仿真試驗會產生并積累大量試驗數據,這些數據多以文檔方式保存和管理,而對于缺乏結構化的、格式不統(tǒng)一的文件資料,管理人員往往無法使用,更談不上對信息進行二次處理[1]。因此,企業(yè)需要建立一個平臺,對企業(yè)所有試驗數據和與試驗相關的信息及業(yè)務流程進行統(tǒng)一管理,但是試驗部門采用的傳統(tǒng)試驗手段與數據管理方式,已無法滿足當前的業(yè)務要求[2]。在此背景下,TDM(Test Data Management)系統(tǒng)應運而生[3]。

      TDM系統(tǒng)的核心關鍵技術有元數據驅動的軟件架構[4]、ETL技術[5]和數據庫模型等。對于TDM系統(tǒng)的研究,目前主要集中在系統(tǒng)架構[6]與數據展現[7]等方面,而對于數據庫端關注很少。傳統(tǒng)的TDM系統(tǒng)使用關系型數據庫作為數據庫端,目前市場上成熟的TDM供應商如Hikey TDM、Newtera TDM等公司均使用關系型數據庫(如Oracle、MySql等)作為數據庫服務器[8]。然而,關系型數據庫在開發(fā)TDM系統(tǒng)時存在一系列不足。宋銘利等[9]曾提出使用面向對象的數據庫代替關系型數據庫,但未進行深入研究。本文針對TDM的數據庫建模與查詢,提出新的基于圖數據庫的設計思路,以克服傳統(tǒng)關系型數據庫存在的弊端。

      1關系型數據庫建模

      1.1關系型數據庫建模示例

      本節(jié)以某研究所TDM系統(tǒng)實際開發(fā)中的一個模塊為例,說明軟件開發(fā)人員在TDM開發(fā)中面臨的困難。該模塊功能為與手持終端進行通信,向終端傳輸試驗檢查表格并記錄終端上傳的試驗數據。出于簡化目的,本文將關注重點放在試驗數據建模上,略去了流程管理、角色人員管理、試驗項目管理、試驗資源管理等業(yè)務。

      本模塊要求如圖1所示,每次試驗的具體工作項下包含許多張試驗表格,試驗人員需要完成所有表格。由于要滿足不同時間、不同版本的測試需求,需要建立表格模板和對應表格實例。

      在實際開發(fā)中面臨的最大難題在于表格格式不固定,故建立數據模型非常困難。在開發(fā)中將表格模板分解為行模板表、列模板表、表格模板表與單元格模板表。

      試驗表格的主要數據庫結構如表1所示,模板表與實例表相對應,均被分解為對應的行表、列表、單元格表。該模塊使用步驟如下:首先在工作項下建立表格模板,并將具體表格在工作項下與模板表關聯(lián),然后生成對應的表格實例進行試驗,最后將數據存入具體測驗表中。關聯(lián)表示例如表2所示。

      由表2可知,標識符為420的具體測驗表與主鍵為10的模板表相對應,其1~3條記錄為試驗任務1的數據。為簡化問題,本文略去與試驗流程相關的試驗任務、工作項等業(yè)務說明。

      1.2關系型數據庫的不足

      如表1所示,僅對檢查表格的數據建模已十分復雜,且存在一個難以解決的關鍵問題。相比于單元格表,行表和列表都成為了稀疏表。行表和列表中只需存儲行屬性與列屬性,表格內容都以單元格形式存儲在單元格表中,其結果導致單元格表中的數據量十分龐大,查詢性能與數據維護都成為了難題。

      從表1中可以看出,這種關系模型造成大量的表連接、稀疏行和非空邏輯檢查。外鍵約束和多對多關系表都需要額外的開發(fā)與維護成本,但其存在的目的僅是為了讓數據庫工作。另外,關系模型難以處理的一個問題就是高昂的關聯(lián)查詢成本。按照表1的數據建模方式,若要對表格的某一單元格數據進行增刪改查,需要連接多張表進行查詢,而這種查詢代價巨大。若考慮到TDM系統(tǒng)在實際使用中測試表格會和項目、任務、流程等業(yè)務緊密關聯(lián),這種關聯(lián)查詢甚至可能延伸到第4層、第5層和第6層。由于SQL遞歸的連表查詢使此時的時間空間復雜度非常高,查詢效率嚴重惡化。實際的用戶反饋表明,在進行終端試驗時,程序與后臺交互時間過長,已經影響到用戶體驗。

      使用關系型數據庫處理TDM的業(yè)務建模不僅在使用時存在問題,對開發(fā)人員也不友好。大量支持一對多聯(lián)系的外鍵約束和支持多對多聯(lián)系的連接表僅是為了在查詢時能夠找到表之間的具體關系。然而這些為數據庫服務的數據與業(yè)務數據混雜在一起,增加了復雜度,卻對用戶毫無用處。為了讓關系型數據庫在處理應用請求時表現良好,開發(fā)人員通常使用反規(guī)范化(denormalization)技術使數據模型適應數據引擎。例如在表中添加冗余數據,以減少表連接查詢帶來的性能下降問題。此外,關系模型難以應付真實世界中需求變化的速度。由于試驗類型多樣,TDM的性質決定了業(yè)務人員不可能在需求調研階段即向軟件開發(fā)人員提供一個完整且穩(wěn)定的試驗管理需求[10]。因而軟件開發(fā)人員設計的軟件與實際業(yè)務需求通常有很大差距,項目上線后系統(tǒng)仍需要作大量變更。代碼重構在短時間內即能完成,但數據庫重構不但耗時,且風險與成本較高。采用關系型數據庫的TDM系統(tǒng)在靈活性、可維護性和可擴展性上并不能令人滿意。

      2圖數據庫建模設計及優(yōu)勢

      2.1Neo4j簡介

      本文使用圖數據庫Neo4j對TDM系統(tǒng)的一個模塊進行建模,在此簡要介紹圖數據庫Neo4j。Neo4j 是最重要的圖形數據庫之一[11],其使用數據結構中圖(graph)的概念進行建模。Neo4j 中兩個最基本的概念是節(jié)點和邊,節(jié)點表示實體,邊則表示實體之間的關系,節(jié)點和邊都可以有自己的屬性。不同實體通過各種不同關系關聯(lián)起來,形成復雜的對象圖。Neo4j 同時提供了在對象圖上進行查找和遍歷的功能。使用“圖”這種最通用的數據結構對數據進行建模,使Neo4j 的數據模型具有很強的表達能力。另外,與傳統(tǒng)NoSQL數據庫不同[12],Neo4j的一個重要特點是事務支持,其具有與ACID兼容的數據格式,使用戶能得到ACID的全部支持,完全能夠滿足企業(yè)級程序的需求。

      2.2Neo4j數據庫建模示例

      針對同樣的功能模塊,使用Neo4j建立數據庫。在Neo4j中,節(jié)點代表記錄,可以給節(jié)點打上不同標簽(label)以說明節(jié)點類型,節(jié)點不同的屬性即相當于關系型數據庫中表的字段。不同節(jié)點間建立的連接說明了節(jié)點間的關系。采用粗粒度建模將行和列的屬性直接賦予單元格節(jié)點,單元格節(jié)點通過Cell_of關聯(lián)與表格模板連接。

      在圖2中采用細粒度的建模方式建立表格模板表。模板表通過Has_Row與行節(jié)點連接,行節(jié)點通過Has_Cell與單元格節(jié)點連接。由此可見,使用類似Neo4j的圖數據庫進行建模是非常靈活且直觀的。實體間的聯(lián)系能如同在真實世界中一樣自然保存下來,而不需要像關系型數據庫一樣進行邏輯轉換。在圖數據庫中,數據庫結構如何建立取決于業(yè)務需求和性能測試,并沒有標準模式,因此其數據建模方式非常靈活。

      2.3圖數據庫優(yōu)勢

      本節(jié)通過Neo4j與關系型數據庫的數據建模對比,說明圖數據庫的優(yōu)勢及其對關系型數據庫的改進。首先,與關系型數據庫及NoSQL相比,圖數據庫的性能有了很大提升。當處理強關聯(lián)關系數據集時,關系型數據庫的性能難以滿足用戶需求。關系型數據庫使用join操作計算笛卡爾積并丟棄不相關數據,以返回關聯(lián)查詢結果,但隨著數據集增大或查詢深度增加,計算代價將以指數級增長。與之相對比,圖的局部性使其遍歷速度非??靃13]。由于每次查詢只與圖的一部分相關,且查詢執(zhí)行時間只與滿足查詢條件的遍歷圖大?。ǘ钦麄€圖)成正比,因此即使數據集很大,圖數據庫的性能依然趨向于穩(wěn)定。

      根據對比,使用關系型數據庫建模很容易產生大量關聯(lián)表,從而增加了復雜度,而使用圖數據庫建模是非常自然的,領域實體間的聯(lián)系同樣保存在數據庫中。圖數據庫強大的表現力能有效提升開發(fā)效率,從而使開發(fā)人員有更多時間精力專注投入到領域問題中,而不需要操心如何將實體關系轉化為適應數據引擎的格式。

      圖數據庫強大的靈活性能夠跟上不斷變化的業(yè)務需求。開發(fā)人員并不希望在項目初始就在模型中考慮到所有細節(jié),隨著開發(fā)的深入以及與領域專家的交流,數據結構和模式會自動浮現出來。圖天生就是可擴展的,這意味著可以對已存在的結構添加不同種類的新聯(lián)系、新節(jié)點、新標簽和新子圖,而不用擔心破壞已有的查詢或應用程序功能[14]。圖數據庫的這些特點能提高開發(fā)者生產力,減少數據遷移,從而降低維護開銷與使用風險。圖數據庫的開發(fā)方式與當今增量與迭代的軟件交付實踐相吻合[15],從而使以圖數據庫為后端的應用程序可以跟上不斷變化的業(yè)務環(huán)境。

      綜上,圖數據庫有效改進了關系型數據庫的不足,在圖數據庫中能自然、方便地表示TDM數據的復雜關聯(lián),確保良好的用戶體驗。而且圖數據庫天然的可擴展性能很好地滿足TDM系統(tǒng)各種形式的試驗數據建模需求,并能跟上不斷變化的業(yè)務需求,從而大大提升了開發(fā)效率。

      3關系型數據庫與圖數據庫性能比較

      為了比較關系型數據庫和圖數據庫的性能,對其進行實驗驗證。實驗使用的計算機配置如下:Inteli7CPU,16G內存,Windows10操作系統(tǒng)。由于企業(yè)實驗數據的商業(yè)保密性,實驗驗證采用具有約50 000條記錄的數據集。關系型數據庫使用MySQL,圖數據庫使用Neo4j,二者均未采用優(yōu)化手段優(yōu)化查詢性能。實驗結果如表3所示。

      表中第一列關聯(lián)連接深度是指關聯(lián)查詢時需要連接表的數量。針對TDM系統(tǒng)的數據集,只要在查詢時加入用戶、試驗項目、試驗任務、試驗流程等與試驗表格存在關聯(lián)關系的數據表即可滿足查詢的關聯(lián)深度要求。

      從表3中可以看到,當關聯(lián)深度為2、3時,MySQL查詢表現良好,然而當查詢深度進一步增加時,MySQL的查詢性能顯著下降。當關聯(lián)深度為5時,MySQL處理時間甚至達到了約90s。在實際生產環(huán)境中,試驗人員通過手持移動終端與后臺服務器進行數據交互,因此處理時間過長是無法接受的。與之形成對比,Neo4j的查詢性能表現非常出色。隨著查詢關聯(lián)深度的增加,Neo4j依然保持了良好的查詢性能,相比于關系型數據庫,其表現出數量級的超越。

      關系型數據庫的join操作通過生成所有行組合的笛卡爾積,再剔除與查詢條件不匹配的結果,返回最終查詢結果。依據該原理,可以預見隨著關聯(lián)深度增加,關系型數據庫的查詢性能將顯著下降。圖數據庫性能出色的原因在于每次查詢只需遍歷與起始節(jié)點相連的節(jié)點,而不用考慮整個圖中存在多少節(jié)點和連接。因此,在面對大數據集時,圖數據庫的性能依然保持穩(wěn)定。Partner和Vukotic[16]在有5千萬條記錄數據集上的試驗證明了該預期。在大數據集上進行查詢時,關系型數據庫甚至不能在合理時間內完成查詢,而圖數據庫性能依然保持穩(wěn)定,顯著優(yōu)于關系型數據庫。

      4結語

      根據目前TDM平臺中主流的數據庫存儲技術在查詢性能、用戶體驗和開發(fā)過程等方面的不足以及對下一代TDM系統(tǒng)的開發(fā)需求,為適應試驗數據非格式化和強關聯(lián)等特性,本文提出一種使用圖數據庫構建具有出色性能和良好用戶體驗的TDM系統(tǒng)解決方案。該解決方案使用簡單高效的Neo4j圖數據庫進行數據存儲,與目前主流的TDM系統(tǒng)數據庫端技術相比,該解決方案提升了查詢性能和用戶體驗,并降低了開發(fā)難度,能更好地適應因業(yè)務發(fā)展與客戶需求變化帶來的挑戰(zhàn)。本文對TDM系統(tǒng)設計與開發(fā)過程中的數據建模技術進行介紹,并將關系型數據庫和圖數據庫兩種解決方案進行了對比,可為今后類似系統(tǒng)的設計開發(fā)提供參考借鑒。

      參考文獻參考文獻:

      [1]王素麗,牛建強,宋銘利,等.TDM:工程數據管理平臺[J].計算機工程與設計,2008,29(22):58815883.

      [2]丁力,安海軍.試驗數據管理系統(tǒng)的需求與實現[J].航空計算技術,2010(3):9698.

      [3]MUKKAMALA R,PEDAGANI R,KESKAR H.TDMS:test data management system for aviation software[C].Digital Avionics Systems Conference,2004.

      [4]劉峰,顧君忠.元數據管理應用系統(tǒng)的設計與實現[J].計算機工程,2009,35(11):2931.

      [5]張忠平,趙瑞珍.基于元數據驅動的 ETL架構設計[J].計算機應用與軟件,2009,26(6):6163.

      [6]沈國華,黃志球,楊雪濤.基于數據倉庫技術的工程數據管理系統(tǒng)的研究與實現[J].小型微型計算機系統(tǒng),2004,25(1):127130.

      [7]王方星,冷文浩,孟斌.TDM 平臺的海量試驗數據展現優(yōu)化[J].計算機工程與設計,2012,33(1):412416.

      [8]TDM解決方案[EB/OL].http://www.newtera.com/.

      [9]宋銘利,王素麗.試驗數據管理系統(tǒng)的設計與實現[J].計算機工程與設計,2011 (5):16801683.

      [10]李洪奇.試驗數據管理系統(tǒng)的應用[J].軟件工程師,2010,26(4):4344.

      [11]Neo4j漢化團隊.Neo4j簡體中文手冊[ EB/OL].http://docs.neo4j.org.cn /index.html.

      [12]SADALAGE P J,FOWLER M.NOSQL精粹[M].北京:機械工業(yè)出版社,2013.

      [13]ANGLES R, GUTIERREZ C.Survey of graph database models [J].ACM Computing Surveys(CSUR),2008,40(1):16.

      [14]ROBINSON I,WEBBER J,EIFREM E.Graph databases[M].O'Reilly Media Inc,2015.

      [15]王余藍.圖形數據庫NEO4J與關系數據庫的比較研究[J].現代電子技術,2012,35(20):7779.

      [16]VUKOTIC A,WATT N,ABEDRABBO T,et al.Neo4j in Action [M].New York: Manning Publications Co,2015.

      責任編輯(責任編輯:黃健)

      猜你喜歡
      軟件開發(fā)
      基于安卓平臺的移動式教學模式研究
      嵌入式系統(tǒng)軟件開發(fā)技術探析
      淺談分層技術在軟件開發(fā)中的應用
      Java軟件開發(fā)問題探究
      軟件開發(fā)中JAVA編程語言的應用
      淺談程序設計的方法
      商情(2016年39期)2016-11-21 09:58:50
      信息安全環(huán)境下的計算機軟件開發(fā)研究
      計算機軟件開發(fā)中的分層技術運用
      建模技術在軟件開發(fā)中的應用
      軟件開發(fā)中數據庫設計理論的實踐
      凌源市| 错那县| 鹿邑县| 卓尼县| 石景山区| 全南县| 江山市| 淳安县| 洛阳市| 泸水县| 塔城市| 皮山县| 剑川县| 麻阳| 元氏县| 阜新市| 大竹县| 克什克腾旗| 九寨沟县| 尖扎县| 屏东县| 昭平县| 古浪县| 和田县| 揭阳市| 新余市| 宜城市| 隆子县| 阳东县| 德惠市| 来安县| 通许县| 富民县| 新邵县| 图们市| 武山县| 威海市| 秀山| 新乡市| 买车| 德兴市|