文/林川
隨著云計算技術的快速發(fā)展,大數據的應用也更為廣泛。 大數據的數據量非常大,而且數據產生和傳輸頻率都非常快,且數據形式多樣化。在這種情況下,企業(yè)需要處理的用戶數據量將非常大。傳統(tǒng)的數據庫是關系型的,這種數據庫在海量存儲方面明顯能力不足,非常容易出現因負載過高而宕機,而且數據也容易丟失。另一方面,這種系統(tǒng)也缺乏擴展,維護起來工作量大、成本較高。所以,在云環(huán)境下,需要不斷改進和開發(fā)圖數據庫的建模技術,從而更好的服務于大數據時代的企業(yè)和用戶。
圖數據庫是采用有向圖進行建模的一種通用數據結構,用于數據存儲。圖數據庫模型的關系及節(jié)點分別對應普通圖的邊與節(jié)點。通過關系將節(jié)點組織起來,再將節(jié)點與關系按照一定的方向進行圖模型組合,其中的關系和節(jié)點屬性有多個,每種類型都使用標簽進行區(qū)別,每個圖數據庫都可以儲存多個圖模型。圖數據庫模型的節(jié)點一般用于實體表示,其鏈值對屬性也有多個。圖數據庫模型在節(jié)點關系描述方面具有靈活性,對關系描述具有多樣性,可以單向或者雙向,也可以進行動態(tài)擴展。
在云環(huán)境下,相比于概念模型,應用圖數據模型的擴展性、可靠性和靈活性更好,性能也更高,建立的數據庫模型細粒度也更高,尤其適合于關系復雜的數據推理和建模。其中的關系數據庫建模的主要任務在于對用戶系統(tǒng)中存在的實體集和其聯系集進行語義信息建模。其建模的原則如下:
(1)單實體集建模。單實體集相對于其他實體集是獨立的,建模時將單實體集作為單節(jié)點建模,名稱為單節(jié)點的標簽。
(2)兩個實體集具有1:N的關系。語義的含義表明兩個實體集之間可以使單向或雙向的聯系集,要先在規(guī)則1條件下進行單節(jié)點建模,節(jié)點的關系是聯系集建模的模型,用帶箭頭的線段進行連接。
(3)兩個實體集具有M:N的關系。按照語義的實際含義,通過M:N聯系兩個實體集必須是雙向的。在規(guī)則2的基礎上繼續(xù)進行建模,聯系集建模的方式是通過兩個方向相反的圖模型關系進行建模,而且通過兩個單節(jié)點關系分別連接從而得到構成圖。以X、Y兩個實體集 的M:N聯系方式為例,兩個聯系集的屬性有XY1、XY2等,當運用E-R圖進行關系模式轉化時,一般形成實體集是三個,分別是X、Y、XY,其中X、Y的主碼 分別是X1和Y1,X1和Y1的屬性都會通過復制用于充當外碼。 在圖模型中,XY聯系集都會變?yōu)榉较蛳喾吹膬煞N關系:節(jié)點X指向節(jié)點Y的X-Y和節(jié)點Y指向節(jié)點X的Y-X,這兩種關系 又各自擁有自身的屬性 XY1、XY2及YX1、YX2。
(4)有整體與部分包含關系的實體集建模規(guī)則。當整體與部分實體集之間的關系符合1:1或1:N的聯系時,首先要根據規(guī)則2進行建模。在圖模型中,選擇關系的方向由整體節(jié)點指向部分節(jié)點,也可以采用從部分節(jié)點指向整體節(jié)點的方式,對這兩種關系描述可分別用HasParts、Contains、PartOf、ConsistOf等方式進行語義描述。
(5)當實體集之間關系存在父與子關系時,實體集建模規(guī)則要符合繼承關系。 父子繼承關系滿足1:1或1:N的聯系時,要先在規(guī)則2的條件下進行建模。 在圖模型中,代表從父節(jié)點到子節(jié)點的關系的名稱為Subclass,用其進行語義描述,對于子節(jié)點到父節(jié)點的關系可以使用的語義描述有ISA和Subclassof等。
(6)鍵及數據類型方面的建模規(guī)則。在圖模型建立過程中沒有鍵的相關概念,但是在屬性上需要建立唯一約束,借此來標志關系或者節(jié)點,圖模型節(jié)點及關系擁有類型豐富的屬性數據,除了與常用的關系模型具有相同的數值型、日期型、字符型外,還包括擴展數據類型,比如:集合、關系、節(jié)點及路徑等。
以某大型制造企業(yè)為例,其需要將采購的各種毛坯和零部件再繼續(xù)進行裝配和制造,最終做出產品。一般流程是:質檢部門對來料檢測,驗收合格后入庫存儲,再根據加工訂單計劃進行物料取用。 由于該企業(yè)為汽車生產企業(yè),涉及到的零部件多達10萬件,而供應商有上萬家,采購入庫單每天在500個以上,而且這家企業(yè)有計劃采用圖數據庫形式進行物料出入庫管理,因此該企業(yè)的大數據將非常大且每月增長速度也非常快。前期調研結果表明,該出入庫管理系統(tǒng)包括:物料出入庫單和明細,供應商和物料信息,貨位信息和出入庫人員信息等。其中的一對多關系有:供應商與物料、員工與物料入庫單、物料入庫單與明細。一對一的關系是入庫單明細與貨位,分配是聯系名稱。 根據上述提到的建模規(guī)則,建立Neo4j圖形數據庫模型。需要滿足的條件是:節(jié)點標簽要與實體集保持一致;圖模型的關系標簽要與聯系集保持名稱一致,同時還要根據需要的不同進行關系屬性添加。
建立的圖數據要具有可用性、ACID事務、可擴展性等特點,這種數據庫非常適合用于圖形數據庫的建模和管理。Neo4j圖形數據庫的節(jié)點代表的是實體之間的實體集,關系是聯系集。其對數據庫的操作方式是Cypher(圖形查詢語言),不需要對圖形結構進行代碼編寫,遍歷查詢的效率非常高。經過試用,表明這種圖數據量建模的方式在數據管理方面優(yōu)勢明顯,速度快、準確率高、易于操作管理。
綜上所述,圖數據建模技術的優(yōu)勢明顯,在云環(huán)境下,其在大數據的管理和智能搜索方面的作用越來越受到人們的重視。相信在不久的將來,隨著圖數據建模技術的發(fā)展,其將會獲得更為廣泛的應用。