
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于后端开发程序员来说,数据库可以说是需要熟练掌握的一项开发能力,而今天我们就一起来就一下,图形数据库的概念与类型。
一、图形数据库的基本概念
Neo4j创建的图(Graph)基于属性图模型,在该模型中,每个实体都有ID(Identity)标识,每个节点由标签(Lable)分组,每个关系都有一个的类型,属性图模型的基本概念有:
实体(Entity)是指节点(Node)和关系(Relationship);路径(Path)是指由起始节点和终止节点之间的实体(节点和关系)构成的有序组合;
每个实体都有一个的ID;
每个实体都有零个,一个或多个属性,一个实体的属性键是的;
每个节点都有零个,一个或多个标签,属于一个或多个分组;
每个关系都只有一个类型,用于连接两个节点;
标记(Token)是非空的字符串,用于标识标签(Lable),关系类型(Relationship Type),或属性键(Property Key);
标签:用于标记节点的分组,多个节点可以有相同的标签,一个节点可以有多个Lable,Lable用于对节点进行分组;
关系类型:用于标记关系的类型,多个关系可以有相同的关系类型;
属性键:用于标识一个属性;
属性(Property)是一个键值对(Key/Value Pair),每个节点或关系可以有一个或多个属性;属性值可以是标量类型,或这标量类型的列表(数组);
二、图形数据库的模式
Neo4j的模式(Schema)通常是指索引,约束和统计,通过创建模式,Neo4j能够获得查询性能的提升和建模的便利;Neo4j数据库的模式可选的,也可以是无模式的。
1、索引
图形数据库也能创建索引,用于提高图形数据库的查询性能。和关系型数据库一样,索引是图形数据的一个冗余副本,通过额外的存储空间和牺牲数据写操作的性能,来提高数据搜索的性能,避免创建不必要的索引,这样能够减少数据更新的性能损失。
Neo4j在图形节点的一个或多个属性上创建索引,在索引创建完成之后,当图形数据更新时,Neo4j负责索引的自动更新,索引的数据是实时同步的;在查询被索引的属性时,Neo4j自动应用索引,以获得查询性能的提升。
2、约束
在图形数据库中,能够创建四种类型的约束:
节点属性值约束(Unique node property):如果节点具有指定的标签和指定的属性,那么这些节点的属性值是的
节点属性存在约束(Node property existence):创建的节点必须存在标签和指定的属性
关系属性存在约束(Relationship property existence):创建的关系存在类型和指定的属性
节点键约束(Node Key):在指定的标签中的节点中,指定的属性必须存在,并且属性值的组合是的
3、统计信息
当使用Cypher查询图形数据库时,Cypher脚本被编译成一个执行计划,执行该执行计划获得查询结果。为了生成一个性能优化的执行计划,Neo4j需要收集统计信息以对查询进行优化。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。