999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于圖數據庫的TDM系統設計與實現

2018-12-10 09:13:16錢俊松冷文浩
軟件導刊 2018年9期

錢俊松 冷文浩

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

關鍵詞 試驗數據管理;軟件開發;圖數據庫;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引言

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

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

1關系型數據庫建模

1.1關系型數據庫建模示例

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

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

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

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

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

1.2關系型數據庫的不足

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

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

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

2圖數據庫建模設計及優勢

2.1Neo4j簡介

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

2.2Neo4j數據庫建模示例

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

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

2.3圖數據庫優勢

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

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

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

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

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

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

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

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

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

4結語

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

參考文獻參考文獻:

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

[2]丁力,安海軍.試驗數據管理系統的需求與實現[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]劉峰,顧君忠.元數據管理應用系統的設計與實現[J].計算機工程,2009,35(11):2931.

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

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

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

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

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

[10]李洪奇.試驗數據管理系統的應用[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].北京:機械工業出版社,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.

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

主站蜘蛛池模板: 国产第一色| 91po国产在线精品免费观看| 亚洲美女操| 精品剧情v国产在线观看| 亚洲成在人线av品善网好看| 狠狠色噜噜狠狠狠狠色综合久| 国产福利拍拍拍| 色综合日本| 女高中生自慰污污网站| 欧美激情视频二区| 永久免费av网站可以直接看的| 久久久久九九精品影院 | 免费看a级毛片| 亚洲欧美综合另类图片小说区| 在线免费看片a| 欲色天天综合网| 精品久久国产综合精麻豆 | 国产制服丝袜91在线| 国产一区免费在线观看| 午夜视频在线观看免费网站| 午夜福利视频一区| 久久性妇女精品免费| 亚洲成人高清在线观看| 97国产精品视频自在拍| 精品国产美女福到在线直播| 综1合AV在线播放| 国产精品视频a| 精品色综合| 亚洲精品福利视频| 国产第一页屁屁影院| 72种姿势欧美久久久大黄蕉| 超薄丝袜足j国产在线视频| 亚洲国产精品一区二区第一页免| 精品福利网| 精品国产亚洲人成在线| 国产色伊人| 国产欧美日韩一区二区视频在线| 熟女视频91| 亚洲区第一页| 欧美色视频网站| 亚洲天堂777| 国产亚洲成AⅤ人片在线观看| 欧美高清三区| 亚洲V日韩V无码一区二区| 日韩国产另类| 在线国产欧美| 欧美性色综合网| 亚洲国语自产一区第二页| 亚洲国产成人无码AV在线影院L| 91人人妻人人做人人爽男同| 91小视频在线播放| 国产在线视频自拍| 无码网站免费观看| 在线观看免费国产| 91青青视频| 亚洲成人www| 色综合中文| 538精品在线观看| 免费一级无码在线网站| 亚洲av无码专区久久蜜芽| 国产精品免费电影| 亚洲精品片911| 成人国产免费| 日韩精品亚洲精品第一页| 亚洲成人播放| 成人精品在线观看| 婷婷开心中文字幕| 2020最新国产精品视频| 日韩小视频在线观看| 特级aaaaaaaaa毛片免费视频| 国产日韩精品欧美一区灰| 日本免费一级视频| 亚洲永久精品ww47国产| 少妇精品久久久一区二区三区| 欧美激情首页| 亚洲综合第一区| 99精品国产电影| 全色黄大色大片免费久久老太| 天堂网国产| 特级精品毛片免费观看| 91精品国产丝袜| 亚洲国产成人自拍|