NoSQL數(shù)據(jù)庫應用與實踐 課件 第四章 圖形存儲數(shù)據(jù)庫Neo4j_第1頁
NoSQL數(shù)據(jù)庫應用與實踐 課件 第四章 圖形存儲數(shù)據(jù)庫Neo4j_第2頁
NoSQL數(shù)據(jù)庫應用與實踐 課件 第四章 圖形存儲數(shù)據(jù)庫Neo4j_第3頁
NoSQL數(shù)據(jù)庫應用與實踐 課件 第四章 圖形存儲數(shù)據(jù)庫Neo4j_第4頁
NoSQL數(shù)據(jù)庫應用與實踐 課件 第四章 圖形存儲數(shù)據(jù)庫Neo4j_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第四章

圖形存儲數(shù)據(jù)庫Neo4j單擊此處添加副標題演講者:認識Neo4j01Neo4j安裝部署02Python鏈接Neo4j04項目實踐:使用Python創(chuàng)建課程知識圖05Cypher操作03目錄01認識Neo4j設計理念:Neo4j的設計初衷是為了更好地同時也更高效地描述實體之間的關系。在現(xiàn)實生活中,每一個實體都與周圍的其他實體有著千絲萬縷的關系,這些關系里面所存儲的信息甚至要大于實體本身的屬性。01相關特性:基于圖的存儲模型、高性能的查詢語言、事務支持、可擴展性、實時性、靈活性、集成與兼容性、可視化與監(jiān)控02Neo4j簡介Neo4j簡介優(yōu)點:數(shù)據(jù)的插入、查詢操作很直觀,不用再考慮各個表之間的關系。提供的圖搜索和圖遍歷方法很方便,速度也是比較快的。更快的數(shù)據(jù)庫操作。當然,有一個前提條件,那就是數(shù)據(jù)量較大,在MySql中存儲的話需要許多表,并且表之間聯(lián)系較多(即有不少的操作需要join表)。缺點:當數(shù)據(jù)過大時插入速度可能會越來越慢。超大節(jié)點。當有一個節(jié)點的邊非常多時(常見于大V),有關這個節(jié)點的操作的速度將大大下降。提高數(shù)據(jù)庫速度的常用方法就是多分配內存,無法直接設置數(shù)據(jù)庫內存占用量,而是需要計算后為其”預留“內存Neo4j簡介應用場景適用于圖形一類數(shù)據(jù)。這是Neo4j與其他NoSQL數(shù)據(jù)庫的最顯著區(qū)別。例如:社會關系,公共交通網絡,地圖及網絡拓譜。Neo4j不適用場景:不適用記錄大量基于事件的數(shù)據(jù)(例如日志條目或傳感器數(shù)據(jù));不適用對大規(guī)模分布式數(shù)據(jù)進行處理,類似于Hadoop;不適用二進制數(shù)據(jù)存儲;不適用適合于保存在關系型數(shù)據(jù)庫中的結構化數(shù)據(jù)。Neo4j簡介Neo4j與傳統(tǒng)數(shù)據(jù)庫的區(qū)別Ne04jRDBMS允許對數(shù)據(jù)的簡單且多樣的管理高度結構化的數(shù)據(jù)數(shù)據(jù)添加和定義靈活,不受數(shù)據(jù)類型和數(shù)量的限制,無需提前定義表格Schema需預定義,修改和添加數(shù)據(jù)結構和類型復雜,對數(shù)據(jù)有嚴格的限制常數(shù)時間的關系查詢操作關系查詢操作耗時提出全新的查詢語言cypher,查詢語句更加簡單查詢語句更為復雜,尤其涉及到join或union操作時數(shù)據(jù)結構Neo4j的數(shù)據(jù)模型包含Nodes、Labels、Relationship、Properties和Schema02Neo4j安裝部署環(huán)境準備下載安裝包/download-center/#communityNeo4j安裝安裝步驟非常簡單,需要注意的是,在安裝過程中需要復制激活碼,粘貼到工具的“Softwarekey”Neo4j安裝安裝結束后,需要修改密碼,然后到瀏覽器中登錄即可。03Cypher操作創(chuàng)建數(shù)據(jù)CREATE命令用于創(chuàng)建節(jié)點,語法如下:#創(chuàng)建帶有標簽的節(jié)點CREATE(<node-name>:<label-name>)#創(chuàng)建帶有標簽、屬性的節(jié)點CREATE(<node-name>:<label-name>{<property-name>:<property-value>})return<node-name>#使用set創(chuàng)建CREATE(<node-name>:<label-name>)set<property-name>:<property-value>,<property-name>:<property-value>return<node-name>match命令功能:查詢已有數(shù)據(jù),語法如下:match(<node-name>:<label-name>)return<node-name>.<property-name>merge命令功能:若節(jié)點存在,則等效于match命令;若節(jié)點不存在,則等效于create命令,語法如下:match(<node-name>:<label-name>)return<node-name>.<property-name>查詢數(shù)據(jù)12merge(節(jié)點變量1:標簽)-[關系變量:關系]-(節(jié)點變量2:標簽)merge創(chuàng)建關系create(節(jié)點變量1:標簽)-[關系變量:關系]->(節(jié)點變量2:標簽)Create創(chuàng)建關系創(chuàng)建關系where命令功能類似于SQL中的添加查詢條件,查詢到符合條件的數(shù)據(jù)后面還可以連接其他操作例如reture和delete,語法如下:match(節(jié)點變量1:標簽)-[關系變量:關系]-(節(jié)點變量2:標簽)where條件where命令010203040506刪除關系刪除需要使用delete關鍵字,同時需要配合查詢語句以及where條件,才能刪除符合條件的數(shù)據(jù),語法如下:match(節(jié)點變量1:標簽)-[關系變量:關系]-(節(jié)點變量2:標簽)where條件delete關系變量刪除節(jié)點刪除節(jié)點與刪除關系類似,只是delete關鍵字后面加上節(jié)點變量名稱,語法如下:match(節(jié)點變量:標簽)where條件delete節(jié)點變量刪除關系和節(jié)點match(節(jié)點變量:標簽)where條件remove節(jié)點變量.屬性Remove關鍵字用于刪除屬性,同樣也需要配合查詢和where同時使用,語法如下:刪除屬性04Python鏈接Neo4j環(huán)境準備命令如下:pipinstallpy2neo準備好數(shù)據(jù)庫,下面打開python的編輯器,創(chuàng)建py文件。鏈接代碼如下:01frompy2neoimportGraph,Node,Relationship02#連接到Neo4j數(shù)據(jù)庫03db=Graph("bolt://localhost:7687",auth=("neo4j","123456ydc"),name="demo2")04鏈接Neo4j數(shù)據(jù)庫并簡單操作節(jié)點操作創(chuàng)建節(jié)點創(chuàng)建節(jié)點需要兩個步驟,先創(chuàng)建Node,然后執(zhí)行Create方法,語法如下:node_1=Node(*labels,**properties)db.create(node_1)創(chuàng)建關系創(chuàng)建關系需要使用Relationship方法,指定開始節(jié)點,關系,結束節(jié)點,基本語法如下:Relationship((start_node,type,end_node,**properties))節(jié)點操作刪除關系及節(jié)點帶關系的節(jié)點不能直接被刪除,但是可以直接刪除一個節(jié)點及與之相連的關系,需要run方法運行Neo4j指令代碼進行刪除。例:刪除HBase節(jié)點和關系。語句:db.run('match(n:Nosql{name:"HBase"})detachdeleten')查詢db的nodes屬性包含圖當中的所有節(jié)點信息,可以使用match方法來找到相應節(jié)點。語法如下:db.nod

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論