目录
1 为什么需要图形数据库
1.1 数据库的类型
目前主要有两种类型的数据库,关系型数据库与非关系型数据库。
1.1.1 关系型数据库
关系型数据库主要是把复杂的数据库结构转化为简单的二元关系,二维表格的形式,例如 Oracle、MySQL。对于大部分结构化数据来说,使用关系型数据库就可以很好的存储和表示数据。
1.1.2 非关系型数据库
非关系型数据库又称为NoSQL数据库,意为 Not Only SQL。是作为关系型数据库的补充,而不是要替代。随着数据的多样化,如社交网络、视频托管等应用程序,产生大量的连接数据,普通的关系型数据库已经遭遇到高并发等性能瓶颈。
非关系型数据库中有
- 键值存储数据库,典型产品 Redis,通过key进行增删改查,具有高并发、易部署、简单等特性
- 列存储数据库,典型产品 Hbase,分布式存储海量数据,键依然存在,但指向多列
- 面向文档数据库,典型产品 MongoDB,文档是数据库的基本单元,也由键值组成,值既可以是简单的数据类型,如字符 串、数字和日期等;也可以是复杂的类型,如有序列表和关系对象
- 图形数据库,典型产品 Neo4j,主要用于存储更多的连接数据,用图形理论存储实体间的关系信息,其本质是方便查找节点之间的关系,而不是为了存储数据。
1.2 图形数据库的优点
- 更快的数据库操作。当然,有一个前提条件,那就是数据量较大,在MySql中存储的话需要许多表,并且表之间联系较多(即有不少的操作需要join表)。
- 数据更直观,相应的SQL语句也更好写(Neo4j使用Cypher语言,与传统SQL有很大不同)。
- 更灵活。不管有什么新的数据需要存储,都是一律的节点和边,只需要考虑节点属性和边属性。而MySql中即意味着新的表,还要考虑和其他表的关系。
- 数据库操作的速度并不会随着数据库的增大有明显的降低。这得益于Neo4j特殊的数据存储结构和专门优化的图算法。
1.3 小结
不同的数据库适用于不同的业务场景,需要根据不同的业务类型来判断最合适自己的数据库。当数据是网络结构,关系、连接较复杂和重要时,可以选择图形数据库。