数据存储:大数据存储系统(4)--- 图存储系统(Graph Database)

本文转载自:https://blog.csdn.net/u013710265/article/details/72802802


一、图数据模型
(1)图的概念
G=(V,E):V为顶点的集合,E为边的集合。
有向图:边有方向
无向图:边没有方向;可以用有向图表达无向图:每条无向边->2条有向边。
(2)图数据存储系统

存储图顶点和边,提供顶点和边的查询。

二、Neo4j
(1)概念
Native graph database:采用自定义的结构在本地硬盘存储图,而不是存在数据库关系型表中。
开源Java实现。
(2)Neo4j存储
顶点:称为node
边:称为relationship
顶点和边上可以存储多个key-value值,称为property。
(3)Neo4j使用
Cypher:Declarative query language
Traversal:Embedded Java lib
(4)Cypher用法
Node:
 
Relationship:
 
Create:
 
Match:
 

(5)文件存储

  +Node.Relationship.Property 都放在一起存储,有unique id

  +relationship 同一个node的relationship是双向链表,指针为relationship id,node 存储第一个的id,每个relationship可能有多个     property。

  +Property 是单项链表,链表第一个存在与对应的node/relationship中

  +Neo4j对node.relathionship.property缓冲,property以key-value形式附加在node/relationship上

ACID:

  定义了transaction概念,采用类似snapshot isolation机制,一个transaction首先保存起来,直到transaction.finish()尝试真正修     改。采用多副本,主副本把transaction log发送到从副本,从副本replay log执行同样操作。 

  

扫描二维码关注公众号,回复: 1590769 查看本文章

 

三、RDF和Sparql 

  Resource Description Framework:w3c标准,广泛用于语义网络。每个RDF记录是三元组(subject, predicate, object)。

  Sparql 是RDF的查询语言  ?前缀代表变量,注意“.”


猜你喜欢

转载自blog.csdn.net/qq_40981790/article/details/80674748