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