《NOSQL数据库技术》课件第3章-Neo4j图数据库.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《NOSQL数据库技术》课件第3章-Neo4j图数据库.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NOSQL数据库技术 NOSQL 数据库技术 课件 Neo4j 数据库
- 资源描述:
-
1、目录目录Neo4j DBNeo4j DB基础基础1Neo4jNeo4j数据操作基础数据操作基础2Neo4jNeo4j集群技术集群技术3Neo4jNeo4j管理与监控管理与监控4小结小结513.1 Neo4j DB基础基础2nNeo4jNeo4j图数据库采用图数据库采用JavaJava语言开发语言开发。nNeo4jNeo4j图数据库是以原生图结构形式来存储数据的,数据模图数据库是以原生图结构形式来存储数据的,数据模型对于实体及其间的复杂关联关系具有天生的适配性型对于实体及其间的复杂关联关系具有天生的适配性n官网:官网:https:/https:/ Neo4j DB基础基础nNeo4jNeo4j特
2、点特点n优越的性能优越的性能:高效的读写能力;:高效的读写能力;n设计的灵活性设计的灵活性:无固定模式,自然扩展;:无固定模式,自然扩展;n迭代的敏捷性迭代的敏捷性:适应迭代的敏捷开发方法;:适应迭代的敏捷开发方法;n安全可靠安全可靠:支持事务管理,提供实时在线备份、日志恢:支持事务管理,提供实时在线备份、日志恢复功能;复功能;n简单易用简单易用:支持多种程序设计语言开发,特别是:支持多种程序设计语言开发,特别是Spring Spring data Neo4jdata Neo4j开发包;支持开发包;支持REST APIREST API;n提供提供类类SQLSQL的图数据查询语言:的图数据查询语
3、言:Neo4j CQLNeo4j CQL;n支持批量导入、导出支持批量导入、导出图图数据;数据;n提供提供一个用于执行一个用于执行CQLCQL命令命令的的Web UIWeb UI:通过浏览器即可通过浏览器即可操作操作Neo4jNeo4j图图数据;数据;3.1 Neo4j DB基础基础nNeo4jNeo4j特点(续)特点(续)n支持索引支持索引机制机制及及UNIQUEUNIQUE约束约束;n采用原生图采用原生图数据存储模式数据存储模式与图与图计算计算引擎引擎;n提供丰富的图数据处理与分析算法库(提供丰富的图数据处理与分析算法库(APOCAPOC);n提供提供丰富的丰富的APIAPI,支持,支持J
4、avaJava、PythonPython、ScalaScala等编程语言;等编程语言;n集群架构易于横向扩展;集群架构易于横向扩展;n最新最新4.04.0版本在横向扩展方面、安全控制粒度方面、支持版本在横向扩展方面、安全控制粒度方面、支持WebWeb应用响应式开发框架技术等方面都有很大提升;应用响应式开发框架技术等方面都有很大提升;n丰富丰富的学习资源:的学习资源:https:/ Neo4j DB基础基础nNeo4jNeo4j特点(续特点(续):):采用采用属性图模型属性图模型描述业务关描述业务关键图数据键图数据n图数据模型关键要素图数据模型关键要素 节点、关系、节点属性、关系属性等节点、关系
5、、节点属性、关系属性等还有?还有?nNeo4jNeo4j数据模型基本要素数据模型基本要素n节点存储(节点存储(node storenode store)n关系存储(关系存储(relationship storerelationship store)n属性存储(属性存储(property storeproperty store)n标签标签(LabelLabel):表示类别的含义):表示类别的含义3.1 Neo4j DB基础基础n官网下载官网下载:httpshttps:/:/ 2020年年1 1月月1515日发布最新版本日发布最新版本4.04.0,读者可自行对比练习;,读者可自行对比练习;n4.0
6、4.0版本主要在多数据库访问支持、响应式开发等方面进行提升版本主要在多数据库访问支持、响应式开发等方面进行提升3.1.1下载与安装下载与安装nWindowsWindows版本安装,版本安装,linuxlinux平台安装步骤类似平台安装步骤类似 下载下载neo4j-community-3.5.x-windows.zipneo4j-community-3.5.x-windows.zipn需要需要OpenJDKOpenJDK 8 8 或者或者 Oracle Java Oracle Java 8 8 环境环境n创建目录:如创建目录:如D:neo4jD:neo4jn解压解压,主要,主要文件夹作用如下文件
7、夹作用如下:nbin bin 目录目录:用于:用于存储存储 Neo4j Neo4j 的可执行程序;的可执行程序;nconfconf目录:用于控制目录:用于控制 Neo4j Neo4j 启动的配置文件,启动的配置文件,neo4j.confneo4j.conf ;ndata data 目录:目录:用于存储核心数据库文件;用于存储核心数据库文件;nplugins plugins 目录:用于目录:用于存储存储 Neo4j Neo4j 的的插件插件;nl logsogs目录目录:用于存储用于存储日志文件日志文件;nliblib目录目录:用于存储依赖的用于存储依赖的jarjar包文件;包文件;3.1.1下
8、载与安装下载与安装n配置环境变量配置环境变量n设置环境变量:设置环境变量:NEO4J_HOMENEO4J_HOME为安装路径为安装路径n修改环境变量:修改环境变量:PATHPATH,加上,加上Neo4jNeo4j的的binbin目录目录3.1.1下载与安装下载与安装n启动服务启动服务:管理员身份管理员身份n方法方法1 1:控制台启动:控制台启动:neo4j.bat consoleneo4j.bat console问题:需要始终开启窗口,否则服务无法访问问题:需要始终开启窗口,否则服务无法访问n方法方法2 2:安装服务,在系统服务管理中启停服务:安装服务,在系统服务管理中启停服务 neo4j i
9、nstall-service neo4j install-servicen方法方法3 3:neo4j start neo4j start 命令启动服务命令启动服务 neo4j stop neo4j stop 命令停止服务命令停止服务3.1.1下载与安装下载与安装n启动服务启动服务n验证服务启动成功验证服务启动成功使用浏览器打开:使用浏览器打开:http:/localhost:7474http:/localhost:74743.1.1下载与安装下载与安装n登录数据库服务登录数据库服务n默认登录账号:默认登录账号:neo4j neo4j 密码:密码:neo4j neo4j n首次首次登录需要修改密
10、码登录需要修改密码:如改为:如改为yuanyuan3.1.1下载与安装下载与安装n左边收藏中有电影库示例及其它功能菜单左边收藏中有电影库示例及其它功能菜单3.1.1下载与安装下载与安装n在在WebWeb控制台可以执行以下命令查看有关控制台可以执行以下命令查看有关CQLCQL的详细在线的详细在线语法帮助。语法帮助。$:help$:help cyphercyphernNeo4jNeo4j除了提供除了提供WebWeb控制台方式操作数据库外,也提供控制台方式操作数据库外,也提供了了Cypher-shellCypher-shell的命令行方式操作数据库的命令行方式操作数据库。n命令行交互环境下可命令行交
11、互环境下可输入输入:help :help 查看查看cyphercypher命令提示命令提示信息信息n输入输入:quit quit 则则退出交互退出交互环境环境ncyphercypher命令执行时需要以冒号命令执行时需要以冒号开头开头3.1.1下载与安装下载与安装nNeo4jNeo4j除了除了CQLCQL默认提供的函数和存储过程外,还提供了功默认提供的函数和存储过程外,还提供了功能强大的扩展能强大的扩展APOCAPOC库。库。n可以调用库函数进行可以调用库函数进行更复杂的图数据处理与更复杂的图数据处理与分析如图数据分析如图数据集成处理集成处理、社团、社团检测检测、节点重要性计算、节点重要性计算、
12、PageRankPageRank等算法等算法,及灵活,及灵活的格式转换等数据处理函数的格式转换等数据处理函数。n需要额外安装对应程序包,如需要额外安装对应程序包,如apoc-3.5.0.2-all.jarsapoc-3.5.0.2-all.jarsn实践环节再详细介绍,右边实践环节再详细介绍,右边 命令可确认是否安装成功命令可确认是否安装成功n以下为格式转换命令示例以下为格式转换命令示例3.1.1下载与安装下载与安装n在在Neo4jNeo4j数据库中,节点、边的属性是一系列的数据库中,节点、边的属性是一系列的KeyKey、ValueValue值对,值对,KeyKey取值要求为字符串类型,表示属
13、性的名称,属取值要求为字符串类型,表示属性的名称,属性性ValueValue的类型如的类型如表所表所示,可以是示,可以是9 9种基本类型之一,也可种基本类型之一,也可以是由基本类型组成的数组类型。以是由基本类型组成的数组类型。序号序号CQL数据类型数据类型含义含义1boolean布尔:布尔:true,false2byte8位位整数整数3short16位位整数整数4int32位位整数整数5long64位位整数整数6float32位位浮点浮点7double64位位浮点浮点8char16位位Unicode字符字符9string字符串,字符串,Unicode字符序列字符序列3.1.2 数据类型数据类型
14、n复杂类型支持复杂类型支持n映射映射(MapMap):):KVKV形式形式n列表列表(ListList)类型)类型:n类似类似数组的形式存储多个值的数组的形式存储多个值的序列序列n可以可以通过位置引用某个元素值,位置索引从通过位置引用某个元素值,位置索引从0 0开始,开始,位置为负时表示从尾部位置为负时表示从尾部开始开始n时间、日期类型:不直接支持时间、日期类型:不直接支持n通过函数调用实现,如下通过函数调用实现,如下datedate函数调用示例函数调用示例3.1.2 数据类型数据类型n时间、日期类型:不直接支持(续)时间、日期类型:不直接支持(续)ntimestamptimestamp()(
15、)函数可以用来获取当前的函数可以用来获取当前的时间时间ntimestamp()timestamp()函数内部是使用函数内部是使用System.currentTimeMillisSystem.currentTimeMillis()()返返回当前毫秒级时间戳值的回当前毫秒级时间戳值的。n可以使用可以使用APOCAPOC库函数库函数apoc.date.formatapoc.date.format来完成格式转换来完成格式转换操作,如按操作,如按”yyyyyyyy-MM-MM-dddd HH:mm:ssHH:mm:ss”格式显示格式显示3.1.2 数据类型数据类型目录目录Neo4j DBNeo4j DB
16、基础基础1Neo4jNeo4j数据操作基础数据操作基础2Neo4jNeo4j集群技术集群技术3Neo4jNeo4j管理与监控管理与监控4小结小结5193.2 Neo4j数据操作基础数据操作基础20nNeo4jNeo4j每次每次启动读取配置文件中默认启动读取配置文件中默认链接的链接的数据库数据库 如初始默认配置数据库名称为:如初始默认配置数据库名称为:graph.dbgraph.dbn对应配置文件对应配置文件neo4j.confneo4j.conf中对应的数据库配置项:中对应的数据库配置项:dbms.active_databasedbms.active_database=graph.dbgrap
17、h.dbn数据库文件位于安装路径下的数据库文件位于安装路径下的datadatabasesdatadatabasesgraph.dbgraph.db文件夹下文件夹下n后续实践课学习如何新建其他数据库后续实践课学习如何新建其他数据库n节点及其属性、标签的节点及其属性、标签的CRUDCRUDn创建创建没有属性的没有属性的节点节点n创建包含创建包含属性的节点属性的节点n创建有一个标签的节点创建有一个标签的节点n创建有多个标签的节点创建有多个标签的节点n节点查询、修改、删除操作节点查询、修改、删除操作3.2.1节点操作节点操作n1 1、创建、创建没有属性的没有属性的节点节点CREATE(CREATE(:
18、)n例:例:create create(emp:Employeeemp:Employee)create(create(dept:Deptdept:Dept)n注注:如果执行两次上面标红色的语句会报错吗?如果执行两次上面标红色的语句会报错吗?要要创建的节点名称。创建的节点名称。节点节点标签名称标签名称3.2.1节点操作节点操作说明:v表示variable,变量n2 2、创建有、创建有属性的属性的节点节点CREATE(CREATE(:.:-Value )n示例:示例:CREATE(CREATE(dept:Deptdept:Dept deptno:10,dname:Accounting,locati
19、on:Hyderabad)deptno:10,dname:Accounting,location:Hyderabad)3.2.1节点操作节点操作n3 3.创建标签:创建标签:节点单一标签节点单一标签CREATE(CREATE(:)n示例:示例:CREATE(google1:GooglePlusProfile)CREATE(google1:GooglePlusProfile)n4.4.同时创建节点的多个标签同时创建节点的多个标签CREATE(:label-nameCREATE(:.:.:)n示例示例:CREATE(CREATE(m:Movie:Cinema:Film:Picturem:Movie
20、:Cinema:Film:Picture)3.2.1节点操作节点操作n节点查找节点查找 MATCHMATCH (emp:Employeeemp:Employee)WHEREWHERE emp.name=emp.name=AbcAbc OR emp.name=Xyz OR emp.name=Xyz RETURNRETURN empempn查询所有节点,结果显示如图查询所有节点,结果显示如图 MATCH(n)RETURN n;MATCH(n)RETURN n;3.2.1节点操作节点操作n更改节点属性更改节点属性n语法:语法:SET property-name-listSET n示例:示例:1 1)
21、批量修改)批量修改MATCH(MATCH(emp:Employeeemp:Employee)set)set emp.salemp.sal=3456 return=3456 return empemp2 2)加加WHEREWHERE过滤条件,修改满足条件节点的属性过滤条件,修改满足条件节点的属性MATCH MATCH(emp:Employeeemp:Employee)WHERE emp.id=121 set)WHERE emp.id=121 set emp.salemp.sal=5678 =5678 return return empemp3 3)加属性匹配过滤条件,修改匹配节点的属性)加属性匹
22、配过滤条件,修改匹配节点的属性MATCH(MATCH(empempid:121id:121)set)set emp.salemp.sal=9000 return=9000 return empemp3.2.1节点操作节点操作n删除节点示例删除节点示例n语法:语法:DELETE DELETE node-name-list n示例:示例:match match(e:Employeee:Employee)DELETE)DELETE e en注意:当节点含注意:当节点含关系时关系时,无法执行,无法执行删除删除 。n可以限定要删除节点满足的属性取值及其它需要满可以限定要删除节点满足的属性取值及其它需要满
23、足的条件足的条件3.2.1节点操作节点操作n删除删除节点节点属性,关系属性删除语法类似属性,关系属性删除语法类似n语法:语法:REMOVE REMOVE property-name-list n示例:示例:1 1)创建创建CREATE(CREATE(book:Bookbook:Book id:122,title:Neo4j id:122,title:Neo4j Tutorial,pages:340,price:250)Tutorial,pages:340,price:250)3.2.1节点操作节点操作n删除删除节点节点属性,关系属性删除语法类似(续)属性,关系属性删除语法类似(续)n示例:示例
24、:2 2)查询查询:match(match(n:Bookn:Book)return n limit)return n limit 25253 3)删除节点属性删除节点属性MATCH(bookid:122)MATCH(bookid:122)removeremove book.pricebook.price return book return book3.2.1节点操作节点操作n删除删除节点标签,节点标签,关系关系标签标签删除删除语法语法类似类似n语法:语法:REMOVE label-name-listREMOVE n示例:示例:MATCH(MATCH(m:Moviem:Movie)remove
25、remove m:Picture m:PicturenREMOVEREMOVE与与DELETEDELETE比较比较nDELETEDELETE删除节点、关系;删除节点、关系;nREMOVEREMOVE删除属性、标签;删除属性、标签;n二者都不能独立使用;二者都不能独立使用;n二者需要和二者需要和MATCHMATCH配合使用;配合使用;3.2.1节点操作节点操作n使用循环批量创建节点使用循环批量创建节点n示例:示例:withwith a,b,ca,b,c as as collcoll foreachforeach (value in(value in collcoll|create(:person
展开阅读全文