各位,我们平时使用的数据库大多是关系数据库,MySQL、PostgreSQL、SQLServer等也是关系数据库。 关系数据库的特点是数据的存储是通过二维表实现的。 数据通常存储在相互独立的表中,这些表由程序开发人员定义,单个对象可以分布在多个表中。
近年来,随着互联网的迅速发展,数据形态发生了巨大的变化,非关系型数据库NoSQL应运而生,并日益普及。 NoSQL主要包括哪些内容? 按存储形态分类,主要有以下4种。
键值(Key-Value)存储数据库
键值数据库类似于在传统语言中使用哈希表,可以使用key来添加、查询或删除数据。 通过使用密钥进行访问,获得了高性能和可扩展性。 键值(Key-Value )数据库主要使用哈希表。 该表有特定的键和指针,指向特定的数据。 对于IT系统来说,Key/value模型的优点是简单、易于部署、并发性高。
密钥值存储数据库主要是Memcached、Redis、MemcacheDB、BerkeleyDB、Aerospike、LevelDB、Scalaris、项目体积、HyperDex
列存储(Column-oriedted)数据库
列存储(Column-oriedted )数据库是通常用于分布式存储的大量数据,其特征是密钥仍然存在,但指向多个列。 这样现在的应用不太多。典型产品: Cassandra、HBase等。
面向文档(Document-Oriented)数据库
在文档数据库中将数据另存为文档。 每个文档都是一个独立的数据单元,是一系列数据项的集合。 每个数据项都有其名称和相应的值。 值也可以是简单的数据类型,如字符串、数字和日期。 也可以是复杂的类型,如有序列表和关系对象。 数据存储的最小单位是文档,存储在同一表中的文档属性可能不同,并且数据可以存储为XML、JSON或JSONB等多种格式
面向文档数据库的APP应用比较广泛,相关产品主要有MorgoDB、Apache CouchDB、Terrastore、RavenDB、OrientDB、Thrudb、SisoDb、RaptorDB、CloudKit
图形(Graph)数据库
图形数据库是一种NoSQL数据库,应用图形理论存储实体之间的关系信息。 图形数据库是应用图形理论存储实体之间关系信息的非关系型数据库。 最常见的例子是社交网络中人与人之间的关系。 关系数据库用于存储“关系”数据是无效的。 虽然查询复杂、慢且出乎意料,但图形数据库的独特设计弥补了这一缺点。
图形数据库产品主要包括Neo4j、FlockDB、AllegroGrap、GraphDB、InfiniteGraph等。