产品人气榜

传统数据库逆风难翻盘,看图数据库如何站稳C位

2018-12-05 18:41:22154人阅读

一、什么是数据库?

如今数据库已经无处不在了,一个网站需要有数据库来存储数据,一个学校需要用数据库来存储学生和教师的信息,一个公司需要用数据库来存储员工和公司的资料。

而数据库到底是什么?数据库是如何存储数据的呢?

举个例子:当我们在超市或商场购物,每件商品都有自己的编码,营业员通过在商品信息统计表内查询编码获取这件商品的数量、位置,从而顺利帮助顾客快速的找到所需商品。这其实就是在生活中,数据库的一个典型应用场景。

简单来说,数据库就是存放数据的仓库。和真实世界用仓库来存储商品一样,只不过在计算机世界中,数据库中存储的是被分好类别的各种数据表,而每个数据表包含若干的记录,每条记录又分不同的字段,数据就是这样分门别类地有序存放。

1.png

那如何在数据库中查询你所需要的数据呢?这里再举个例子:

1、图书馆就是一个数据库:图书馆的每本书都有一个编号,编号表示了书的类别和顺序号,同类别的书放在一个书架上,然后书按顺序摆在它所属的书架上,这么做的好处是方便查找书。

2、图书馆管理员就是访问接口:你想找一本书时,他先找到这本书的类别和顺序号,然后他就到指定的书架上按顺序找到那本书,交给你。

3、你和其他人提出的借书请求就是外部程序,一本书可以借给你也可以借给别人,但是图书馆管理员知道书的状态并负责把书放回原位。

 

二、关系型数据库问题何在?

由于每个企业或产品对数据库的查询使用有着不同的需求,随着技术的发展,业务需求的多样化,又演变出了各种各样的数据库类型。常见的有关系型数据库和非关系型数据库,如列式数据库、键值数据库、图数据库、分布式文档数据库等。

关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。

关系型数据库表格举例:

2.png 

关系型数据库采用二维表格形式储存,容易理解;通用的SQL语句使得操作关系型数据库非常方便;数据库的ACID属性大大降低了数据冗余和数据不一致的概率,易于维护等优势被广泛应用于各个行业。但是久而久之,问题也不断显现,关系型图数据库三大痛点被广大技术开发者诟病不已。 

具体问题体现在:

(1 )对于网站的并发量高,往往达到每秒上万次的请求,对于传统关系型数据库来说,海量的数据和读写效率成为很大的挑战。

(2) 在基于web的结构中,关系型数据库是最难以横向拓展的,当一个应用系统的用户量和访问量与日俱增的时候,关系型数据库没有办法像web Server那样简单的通过添加更多的硬件和服务节点来拓展性能和负载能力。

(3)关系型数据库在查询关联数据,特别是多层关联时,需要大量IO操作和内存消耗,导致查询速度缓慢。

在高速发展的互联网应用中,业务需求的频繁变更和数据的快速增长都要求数据库必须具有很强的适应能力,传统的关系型数据库难以处理海量复杂的关联关系。而我们今天想要重点推荐的图数据库便能很好的解决这些问题。

 

三、什么是图数据库?

现实世界中的一切事物都处在联系之中,如人际关系、电脑网络、地理数据、分子结构模型等,无一不处在纷繁复杂的联系之中。这种联系形成了一种互相关联的数据,联系才是数据的本质所在。

而图广泛存在于世界之中,从人与人之间的联系、工厂与消费者之间的联系到电话与数据中心网络节点之间的关系、基因和蛋白质之间的关联,都会涉及大量的高度关联数据。这些数据构成了庞大的图,图数据库就是呈现和查询这些关联的最好方式。

3.png 

图数据库,是图数据库管理系统的简称,它是一种在线的图数据库管理系统,支持对图数据模型的增、删、改、查(CRUD)方法,比如neo4j、titan(janus)、hugegraph等图数据库。图数据库能够灵活存储复杂关联关系,在深度超过2层以上关系中查找遍历,或是基于复杂算法的实时或离线数据挖掘。相比于传统的关系型数据库,无需表链接带来了非常巨大的性能优势,而且我们得到的模型更简单,也更具表现力。

 

下面是一个使用HugeGraph构建的《红楼梦》主要家族成员图谱: 

4.png 

由百度安全开发的HugeGraph,是一款开源图数据库。可以存储海量的顶点(Vertex)和边(Edge), 实现了Apache TinkerPop 3框架,支持Gremlin查询语言。 HugeGraph支持多用户并行操作,用户可输入Gremlin查询语句,并及时得到图查询结果,也可在用户程序中调用HugeGraph API进行图分析或查询。

 

更多图数据库优势,且听下回分解。

了解更多HugeGraph接入信息,请点击https://anquan.baidu.com/page/27

参考内容:

1、怎样用三句话向一个 8 岁小孩解释什么是数据库?

https://www.zhihu.com/question/21091495/answer/17197897

2、《一起学图数据库》之一:图数据库介绍

https://zhuanlan.zhihu.com/p/32857155

3、天天鼓捣数据,你知道数据库长啥样吗?

http://www.woshipm.com/it/270174.html

4、关系型数据库的介绍与分类

https://blog.csdn.net/u012209626/article/details/49765269/


本文为百度安全原创内容,转载需注明出处及本文链接