偶然从朋友口中听到图数据库这个词,之前没有听到,特此了解了下,希望对大家有帮助。
1. 现有数据库的缺陷?
首先我们先来说下现在流行的数据库,关系型数据库。如Oracle、MySQL,它们也被称为:关系数据库管理系统(RDBMS)。然而,随着关系数据库使用范围的不断扩大,也暴露出一些它无法解决的问题,其中最主要的是数据建模中的一些缺陷和问题,以及在大数据量和多服务器之上进行水平伸缩的限制。同时,互联网发展也产生了一些新的趋势变化:
- 用户、系统和传感器产生的数据量呈指数增长,数据量不断增加,大数据的存储和处理;
- 新时代互联网形势下的问题急迫性,这一问题因互联网+、社交网络,智能推荐等的大规模兴起和繁荣而变得越加紧迫。
由此,辅助它的另一种数据库诞生了 统称为NoSQL数据库。
2. NoSQL的数据模型?
NoSQL(Not Only SQL,不限于SQL)是一类范围非常广泛的持久化解决方案,它们不遵循关系数据库模型,也不使用SQL作为查询语言。其数据存储可以不需要固定的表格模式,也经常会避免使用SQL的JOIN操作,一般有水平可扩展的特征。
简言之,NoSQL数据库可以按照它们的数据模型分成4类:
- 键-值存储库(Key-Value-stores);
- BigTable实现(BigTable-implementations);
- 文档库(Document-stores);
- 图形数据库(Graph Database);
3. 图数据库?
图数据库源起欧拉和图理论,也可称为面向/基于图的数据库,对应的英文是Graph Database。图数据库的基本含义是以“图”这种数据结构存储和查询数据,而不是存储图片的数据库。它的数据模型主要是以节点和关系(边)来体现,也可处理键值对。它的优点是快速解决复杂的关系问题。
图具有如下特征:
包含节点和边;
节点上有属性(键值对);
边有名字和方向,并总是有一个开始节点和一个结束节点;
边也可以有属性。
说简单点:图就是一些节点和关联这些节点的联系(relationship)的集合。
图数据库名字的由来其实与其在底层的存储方式有关,Neo4j底层会以图的方式把用户定义的节点以及关系存储起来,通过这种方式,可以高效的实现从某个节点开始,通过节点与节点间关系,找出两个节点间的联系。
4.图数据库的代表:Neo4j
具体的使用可以参考此篇文章
5.总结:
图数据库它善于处理大量的、复杂的、互联的、多变的网状数据,其效率远远高于传统的关系型数据库的百倍、千倍甚至万倍。图数据库特别适用于社交网络、实时推荐、银行交易环路、金融征信系统等广泛的领域。领英、沃尔玛、CISCO、HP、eBay等全球知名企业都在使用图数据库Neo4j,中国企业也在逐步开始用图数据库来构建自己的应用。