一、数据库的分类
1.关系型数据库
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。主流的关系型数据库有Oracle、DB2、MySQL、SQLServer等。推荐了解java中级程序员学习线路图。
2.非关系型数据库
非关系型数据库,也称为NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。常见的非关系型数据库按照分类有:
键值(Key-Value):Redis、Memcached、OracleBDB
列存储数据库:Cassandra、HBase、Riak
文档型数据库:MongoDB、SequoiaDB
图形数据库:Neo4J、JanusGraph、TigerGraph
二、Neo4j
2.1什么是Neo4j
Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。简单来说Neo4j是一个开源的基于Java开发,运行于JVM之上。
2.2Neo4j的数据结构
在一个图中包含两种基本的数据类型:Nodes**(节点)**和Relationships**(关系)。Nodes**和Relationships包含key/value形式的属性。Nodes通过Relationships所定义的关系相连起来,形成关系型网络结构。
2.3社区版和企业版区别
1)社区版限制
节点:亿
关系:亿
属性:亿
2)企业版与社区版都有的功能
·PropertyGraphModel(属性图模型)
·NativeGraphProcessingStorage(本地图形处理和存储)
·ACID(事务管理)
·Cypher–GraphQueryLanguage(支持Cypher图查询语句)
·RESTAPI(Restful风格的api)
·High-PerformanceNativeAPI(本机高性能api)
·HTTPS
3)企业版独有的功能
·集群(水平伸缩/高可用)
社区版不支持集群等高可用配置,只有单机。
·基于用户和角色的访问控制
社区版在安全管理方面相比企业版而言,功能较弱,仅提供用户和密码管理,没有涉及角色、权限控制等企业必需的安全管理功能。
·热备份
社区版不支持热备份(neo4j-backup),只有企业版才有这个工具。
·日志功能
社区版本没有安全日志功能,Neo4j提供安全日志和查询日志两种,用于记录数据库的查询和发生的安全事件,但仅在企业版才支持。
·查询管理
可以设置事务超时时间,以及列出运行的查询,可以选择性终止一个或多个查询。
·诊断及调优工具
JMX日志和监控,包含GraphiteJMX客户端
·垂直伸缩(超过4核)
支持超过4个以上的CPU核心,对于超过4核的CPU提供高度优化的并行图算法执行过程。
·锁管理
对于超过4核的CPU系统提供更加高效的写入锁机制以增加并发处理能力
·Cypher查询追踪
对正在运行的查询进行状态跟踪和管理(例如强制结束查询的运行)
·企业级监控
更全面的监控插件以及日志输出,社区版本仅有