CGFT大数据技术原理中NoSQL的四大类型是什么?今天跟着小编一起看看。
1、键值数据库
键值数据库(Key-Value Database)会使用一个哈希表,这个表中有一个特定的Key和一个指针指向特定的Value。Key可以用来定位Value,即存储和检索具体的Value。Value对数据库而言是透明不可见的,不能对Value进行索引和查询,只能通过Key进行查询。
Value可以用来存储任意类型的数据,包括整型、字符型、数组、对象等。在存在大量写操作的情况下,键值数据库可以比关系数据库取得明显更好的性能。因为,关系数据库需要建立索引来加速查询,当存在大量写操作时,索引会发生频繁更新,由此会产生高昂的索引维护代价。
关系数据库通常很难水平扩展,但是,键值数据库天生具有良好的伸缩性,理论上几乎可以实现数据量的无限扩容。键值数据库可以进一步划分为内存键值数据库和持久化(Persistent)键值数据库。内存键值数据库把数据保存在内存,如Memcached和Redis;持久化键值数据库把数据保存在磁盘,如BerkeleyDB、Voldmort和Riak。
2、列族数据库
列族数据库一般采用列族数据模型,数据库由多个行构成,每行数据包含多个列族,不同的行可以具有不同数量的列族,属于同一列族的数据会被存放在一起。每行数据通过行键进行定位,与这个行键对应的是一个列族,从这个角度来说,列族数据库也可以被视为一个键值数据库。列族可以被配置成支持不同类型的访问模式,一个列族也可以被设置成放入内存当中,以消耗内存为代价来换取更好的响应性能。
3、文档数据库
在文档数据库中,文档是数据库的*小单位。虽然每一种文档数据库的部署都有所不同,但是,大都假定文档以某种标准化格式封装并对数据进行加密,同时用多种格式进行解码,包括XML、YAML、JSON和BSON等,或者也可以使用二进制格式(如PDF、微软Office文档等)。
文档数据库通过键来定位一个文档,因此可以看成键值数据库的一个衍生品,而且前者比后者具有更高的查询效率。对于那些可以把输人数据表示成文档的应用而言,文档数据库是*合适的一个文档可以包含*复杂的数据结构,如嵌套对象,并且不需要采用特定的数据模式,每个文档可能具有完全不同的结构。文档数据库既可以根据键(Key)来构建索引,也可以基于文档内容来构建索引。
尤其是基于文档内容的索引和查询这种能力,是文档数据库不同于键值数据库的地方,因为,在键值数据库中,值(Value)对数据库是透明不可见的,不能根据值来构建索引。文档数据库主要用于存储并检索文档数据,当需要考虑很多关系和标准化约束以及需要事务支持时,传统的关系数据库是更好的选择。
4、图形数据库
图形数据库以图论为基础,一个图是一个数学概念,用来表示一个对象集合,包括顶点以连接顶点的边。图形数据库使用图作为数据模型来存储数据,完全不同于键值、列族和文档数据模型,可以高效地存储不同顶点之间的关系。图形数据库专门用于处理具有高度相互关联关系的数据,可以高效地处理实体之间的关系,比较适合于社交网络、模式识别、依赖分析、推荐系统以及路径寻找等问题。