此外还有一类数据库,数据逻辑层与关系型数据库相比,在表现形式上相当灵活,主要有四种形式:一是键值模型,这种模型在表现形式上比较单一,但却有很强的扩展性。二是列式模型,这种模型相比于键值模型能够支持较为复杂的数据,但扩展性相对较差。三是文档模型,这种模型对于复杂数据的支持和扩展性都有很大优势。四是图模型,这种模型的使用场景不多,通常是基于图数据结构的数据定制的。之所以需要这样的数据库,是因为有些工作场景对数据库的逻辑结构并不明确,对于数据的扩展速度和扩展量同样也并不明确,要是利用关系型数据库来存储的话,将会随时面临不稳定的行列调整,在一个已经存放有海量数据的关系型数据库中,随时进行的列的增删,将是一场困难甚至无法实现的灾难。
因此非关系型数据库,都是用来对付需要方便扩展,数据量极大,性能要求极高,可用性极高,数据模型灵活的应用场景。
因为这类数据库存储数据的方式比较离散,因此被称作非关系型数据库。它们基本都是为了解决海量数据,高增长数据的实际运用问题而生的,因此又被周至称为“工科狗数据库”。
非关系数据库中有一类较为特殊的数据块,其数据逻辑层是基于图论为数据基础的数据管理系统。
图是一组点和边的集合,“点”表示实体,“边”表示实体间的关系。在图数据库中,数据间的关系和数据本身同样重要,它们被作为数据的一部分存储起来。
这样的架构使图数据库能够快速响应复杂关联查询,因为实体间的关系已经提前存储到了数据库中。
图数据库可以直观地可视化关系,是存储、查询、分析高度互联数据的最优办法。
这样的数据结构直接存储了节点之间的依赖关系,除了把数据间关联作为数据的一部分特征进行存储外,在关联上还可以添加标签、方向以及属性,这也是图数据库在关系查询上相比其他类型数据库有巨大性能优势的原因。
要举一个例子的话,点所代表实体或实例,可以是人员、企业、帐户或要跟踪的任何其他项目。它们大致相当于关系数据库中的记录、关系或行,或者文档存储数据库中的文档。
而边也称作关系,可以理解为将节点连接到其他节点的线;比如这些人员属于这家企业,这个企业开设了这些账户等等。
在探索节点、属性和边的连接和互连时,往往会得到意想不到的价值洞见,比如发现企业上下游人员对企业中某成员的不正常交易,就属于分析出一种不合理的“边”。
边可以是有向的,也可以是无向的。在无向图中,连接两个节点的边具有单一含义。在有向图中,连接两个不同节点的边,根据它们的方向具有不同的含义。
比如家庭成员中,父和子的关系,就属于两个节点所构建的一条边,在两个方向上的不同含义。
这样一种数据库对于处理和分析文科知识体系来说是最合适的,因此周至决心要发展它,甚至直接将其命名为“文科狗数据库”。