03-非关系型数据库种类介绍

来源:互联网 发布:ubuntu中文五笔输入法 编辑:程序博客网 时间:2024/04/30 12:03

非关系型数据库也被称为NoSQL数据库

web2.0:上传、下载、发布帖子、发布博文、SNS

一.NoSQL产生的背景

  随着互联网web2.0网站的兴起,动态数据比较多,传统的关系型数据库在应对日益扩大的海量数据有点力不从心,于是NoSQL就产生了。Google的BigTable与Amazon的Dynamo是非常成功的商业NoSQL实现,一些开源的NoSQL体系,如Facebook的Cassandra,Apache的HBase也得到了广泛的认同,Redis,mongodb也逐渐的越来越受到各类大中小型公司的欢迎和追捧。

二.非关系型数据库(NoSQL)种类

  1. 键值(Key-Value)存储数据库
  2.   键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据,因为使用key主键访问,所以会获得很高的性能以及拓展性。

      键值(Key-Value)数据库主要是使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署、高并发。

      典型产品:Memcached(memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。)、Redis


  3. 列存储(Column-oriented)数据库
  4.   列存储数据库将数据存在列族(column family)中一个列族存储经常被一起查询的相关数据。举个例子,如果我们有一个Person类,我们通常会一起查询他们的姓名和年龄而不是薪资。这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另一个列族中。

      这部分数据库通常是用来应对分布式存储的海量数据,键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。

      典型产品:Cassandra、Hbase


  5. 面向文档(Document-Orienten)数据库
  6.   文档型数据库的灵感来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似,该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON,文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值,而且文档型数据库比键值数据库的查询效率更高。

      面向文档数据库会将数据以文档的形式储存,每个文档都是自包含的数据单元,是一系列数据项的集合,每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用XML、JSON或者JSONB等多种形式存储。

      典型产品:MongoDB


  7. 图形(Graph)数据库
  8.   图形数据库允许我们将数据以图的方式储存,实体会被作为顶点,而实体之间的关系则会被作为边,比如我们有三个实体,Steve Jobs、Apple和Next,则会有两个“Founded by”的边将Apple和Next连接到Steve Jobs。

      图形结构的数据库同其它行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型,许多NoSQL数据库都有REST式的数据接口或者查询API。

      典型产品:Neo4J、InfoGrid