收藏 分销(赏)

Neo4J粗谈.ppt

上传人:a199****6536 文档编号:14062801 上传时间:2026-06-17 格式:PPT 页数:67 大小:3.62MB 下载积分:8 金币
下载 相关 举报
Neo4J粗谈.ppt_第1页
第1页 / 共67页
Neo4J粗谈.ppt_第2页
第2页 / 共67页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Neo4J粗谈,数据库历史,1923,年,,CTR,发明了首款电动打孔机,数据库历史,1 9 5 0,年雷明顿兰德公司推出的,Univac I,一秒钟可以输入数百条记录的磁带驱动器,数据库历史,汞延迟线,数据库历史,1956,年,IBM,生产出第一个磁盘驱动器,Model 305 RAMAC,数据库历史,60,年代数据库系统的萌芽。,1961,:通用电气,开发了第一个数据库管理系统,IDS,1969,:,E.F.Codd,发明了关系数据库。,1973,:,Cullinane,公司开发了,IDMS,一个针对,IBM,主机的基于网络模型的数据库。,1976,:,Honeywell,公司推出了,Multics Relational Data Store,第一个商用关系数据库产品。,1979,:,Oracle,公司引入了第一个商用,SQL,关系数据库管理系统。,1983,:,IBM,推出了,DB2,数据库产品。,1985,:为,Procter&Gamble,系统设计的第一个商务智能系统产生。,1991,:,W.H.“Bill”Inmon,发表了”构建数据仓库”。,数据库历史,数据库历史,NoSQL,数据库,数据库总排名,db-of mentions of the system on websites.,General interest in the system.,Frequency of technical discussions about the system.,Number of job offers,in which the system is mentioned.,Number of profiles in professional networks,in which the system is mentioned.,Method of calculating the scores of the DB-Engines Ranking,引言,1999,我们十位工程师花去了他们大部分的时间与关系型数据库抗衡。,起因,我们意识到我们的软件不是管理一堆个体的、孤立的、离散的数据项,而是管理他们之间的,关系,。,虽然能够很容易的将离散数据存入关系表中,但是对于其关系数据的存储是具有很大挑战的,并且查询速度也是慢的惊人,现在版本,2.0.1,缘起,“,Neo4j,”,Neo,Investors,Neo Technology is a privately held company funded by Fidelity Growth Partners Europe,Sunstone Capital and Conor Venture Partners,Rod Johnson,Magnus Christersen,Johan Svensson,Nikolaj Nyholm,Neo Technology,Inc.,founder of the Spring Framework,Vice President of Intentional Software Corp,CEO of Polar Rose,CTO of Neo Technology,Emil Eifrem,CEO of Neo Technology,headquartered inSan Mateo,CA,Featured Customers,How much faster is a graph database,在一个社交网络,需要找到用户所有的朋友的朋友。甚至是朋友的朋友的朋友。,于是,用同样为,100,万用户的,MySQL,和,Neo4j,执行这个查询,并且结果是非常惊人的。,friends of friends,friends of friends of friends,.,.,一个非常有意思的实验,Neo4j Developer Productivity Increase,What is a Graph Database?,图论,1736,年,哥尼斯堡七桥,开创了数学的一个新的分支,图论与几何拓扑,欧拉,A Graph contains Nodes and Relationships,A Graph records data in Nodes which have Properties,Relationships organize the Graph,Nodes are organized by Relationships which also have Properties,Labels group the Nodes,Nodes are grouped by Labels into Sets,Query a Graph with a Traversal,A Traversal navigates a Graph;it identifies Paths which order Nodes,Indexes look-up Nodes or Relationships,An Index maps from Properties to either Nodes or Relationships,A Graph Database manages a Graph and also manages related Indexes,Neo4j is a Graph Database,Comparing Database Models,A Graph Database transforms a RDBMS,A Graph Database elaborates a Key-Value Store,Column Family(BigTable-style)databases are an evolution of key-value,using families to allow grouping of rows.Stored in a graph,the families could become hierarchical,and the relationships among data becomes explicit.,A Graph Database relates Column-Family,A Graph Database navigates a Document Store,Neo4j Highlights,Language Drivers,Friends of Neo4j speak many languages,and work in many frameworks.,www.neo4j.org/download,下载,启动,启动,Webadmin,Browser,The Neo4j Graph Database,Nodes,Relationships,Relationships,一个关系包含两个节点,而且开始和结束节点是有效的。,关系总是有方向的,关系可以被看做相关节点的进和出,这对于图的遍历是很有用的,注意,一个节点可以对自己产生关系,Properties,节点和关系都可以有属性。,属性是一个键值对,,KEY,是一个,String,。属性值可以是原始类型或者一个原始类型的数组。举例,,String,,,int,和,int,都是设立的属性值。,Properties,Labels,Label,是一个图结构,用来将节点组成集合,所有用同一个,label,被标记的节点属于一个集合。,许多数据库查询可以运行在这些集合中而不是整个图,这样使得查询更易编写和更有效率。,一个节点可以被多个,label,标记,也可以没有,label,,,label,是图的可选项。,Label,用于定义约束和为属性增加属性。,Paths,Path,是一个或者多个节点和他们之间的关系,代表一个查询或遍历的结果。,Paths,最短的,path,长度为,0,:,长度为,1,的,path,其他长度为,1,的,path,Traversal,一个图就是根据一些规则访问他的节点和关系。大多数情况下只有子图被访问,就像你已经知道从图的哪里可以找到感兴趣的节点和关系。,Traversal,Schema,Indexes,创建索引可以提升性能,可以提升在数据库中查找节点的速度。,Constraints,Neo4j,可以帮助你的数据整洁。用一些特殊的规则来定制约束。任何破坏这些规则的改变将被拒绝。,Neo4j,是一个,schema,可选的图数据库。,Cypher Query Language,Cypher,相当于关系型数据库中的,SQL,。,Cypher,书写直观可以不用编写复杂的查询代码即可实现对图数据库的操作。,-,百度百科,Cypher,是一种声明式图查询语言,且对于图存储的查询及更新操作具有高可读性和高效性。,Cypher,是一种非常简单而且强大的语言。通过,Cypher,可以表达非常复杂的数据库查询。,因此让你可以更关注你的领域,而不是迷失在数据库存储里面。,Introduction,MATCH,:,图模式匹配。这是最常用的从图里面获取数据的途径。,WHERE,:,理论上不算一个从句,应该算是,MATCH,、,OPTIONAL MATCH,和,WITH,的一部分。为一个模式添加约束,或者通过,WITH,过滤中间结果。,RETURN,:,返回,Structure,例子,1,找出,John,和,John,的朋友们(间接的朋友关系),并返回,John,和所有找到的间接朋友。,MATCH(,john,name,:,John,)-:,friend,-()-:,friend,-(,fof,),RETURN,john,fof,例子,2,找出朋友名字以,S,开头的组合,MATCH(user)-:friend-(follower),WHERE user.name IN Joe,John,Sara,Maria,Steve AND follower.name=S.*,RETURN user,follower.name,CREATE(and DELETE):,创建(删除)节点和关系。,SET(and REMOVE):,在节点上用,SET,设置属性的值或者添加,Label,,并用,REMOVE,删除他们。,MERGE:,匹配现有的或者创建新的节点和模式。这对于连接独特的约束条件是非常有用的。,Structure,嵌入式的数据库,图的创建,图的查询,实例,根本原因分析,CREATE,(A1:Device name:A1,status:normal),(A2:Device name:A2,status:normal),(B1:Device name:B1,status:normal),(B2:Device name:B2,status:normal),(B3:Device name:B3,status:unavailable),(B4:Device name:B4,status:normal),(C1:Device name:C1,status:unavailable),(C2:Device name:C2,status:normal),(C3:Device name:C3,status:normal),(C4:Device name:C4,status:unavailable),创建图,MATCH(n)RETURN n;,返回全图,MATCH p=(d10:Devicename:D10)-conn:connection*1.-(anyDevice:Device),WHERE anyDevice.status=unavailable,RETURN p;,查找,D10,的宕机原因,MATCH p=(d1:Devicename:D1)-r*1.-(anyNode),WHERE anyNode.status=unavailable,RETURN p;,查找,D1,的宕机原因,相关查询,neo4j-manual-milestone,O_Reilly.Graph.Databases.2013,图论,七周七数据库,参考读物,谢谢!,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服