特点
- 遵循属性图数据模型
- 通过使用Apache Lucence支持索引
- 支持UNIQUE约束
(
什么是UNIQUE约束?
"""
1.定义了unique约束的字段中不能包含重复值
2.可以为一个或多个字段定义unique约束
3.unique约束中可以包含null空值(unique只要求每列的值不一样,当值是null时也算不一样)
"""
) - 支持完整的ACID(原子性,一致性,隔离性,持久性)规则
(
什么是事务?
"""
事务就是一组原子性的SQL执行单元,如果其中的任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。
要么全部执行成功(commit),要么全部执行失败(rollback)。
"""
1.原子性
单个事务,为一个不可分割的最小工作单元,整个事务中的所有操作要么全部执行成功,要么全部执行失败
2.一致性
数据库总是从一个一致性的状态转换到另外一个一致性的状态。保证数据一致性
3.隔离性
一个事务所做的修改在最终提交以前,对其他事务是不可见的。
4.持久性
一旦事务提交,所做的修改就会永久保存到数据库中。即使系统崩溃,也不会丢失。
"""
) - 采用原生图形库与本地GPE(图形处理引擎)
- 支持查询的数据导出到JSON和XLS格式
- 提供了REST API,可以被任何编程语言(Java,Spring,Scala)访问
- 提供了可以通过任何UI MVC框架(如Node JS)访问的Java脚本
- 支持两种Java API:Cypher API和Native Java API来开发Java应用程序
Neo4j属性图模型规则
- 表示节点,关系和属性中的数据
- 节点和关系都包含属性
- 关系连接节点
- 属性是键值对
- 节点用圆圈表示,关系用方向键表示
- 关系具有方向:单向和双向
- 每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”
CQL命令
CREATE 创建 | 创建节点,关系和属性 |
---|---|
MATCH 匹配 | 检索有关节点,关系和属性数据 |
RETURN 返回 | 返回查询结果 |
WHERE 哪里 | 提供条件过滤检索数据 |
DELETE 删除 | 删除节点和关系 |
REMOVE 移除 | 移除节点和关系的属性 |
ORDER BY 以...排序 | 排序检索数据 |
SET 组 | 添加或更新标签 |
CQL函数
String 字符串 | 用于使用String字面量 |
---|---|
Aggregation 聚合 | 用于对CQL查询结果执行一些聚合操作 |
Relationship 关系 | 用于获取关系的细节,如startnode,endnode等 |
CQL支持的数据类型
boolean,byte,short,int,long,float,double,char,String
示例
创建Customer和CreditCard节点之间的关系
MATCH (cust:Customer),(cc:CreditCard)
WHERE cust.id="1001" AND cc.id="5001"
CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc)
RETURN r