> 数据库 > NoSQL >

NoSQL数据库主要分为哪几种?分别是什么?

NoSQL 广泛使用的四种模型: 键值,文档,列族,图。前三种的共同特征是 面向聚合 。聚合作为交互单元的数据集合,使数据库在集群上管理数据存储更为方便。

图数据库的基本数据结构是: 由边连接而成的若干节点。它不使用关系模型,但是与面向聚合数据库的明显差异在于,它重视数据间的 关系 。使用图数据库时,大部分操作是浏览各种关系。图数据库通常运行在 单一 的服务器上,而不是分布式的集群中。

  • 数据分布有两种方式:
    • 将不同数据分片存在多个服务器中,每一个数据子集都由专门一台服务器负责
    • 将数据复制到多个服务器上,每份数据都能在多个节点中找到
  • 数据复制有两种方式:
    • 主从复制 : 将其中一个节点当作权威数据源,并负责写入操作;其他从节点都要和主节点保持同步,它们可以负责读取操作
    • 对等复制 : 任何节点均可写入,节点间互相协调以同步其数据

键值数据库

键值数据库是一张简单的哈希表,主要用在所有数据库访问都通过主键来操作的情况下

Oracle Riak
数据库实例 Riak集群
表/table 存储区/bucket
行/row 键值对/key-value

适用于:

  • 存放会话信息。网络会话都是唯一的,所以分配的sessionid也是唯一的。全部会话内容都可以用一条PUT请求存放,只需一条GET请求就能获得
  • 用户配置信息。
  • 购物车数据。电子商务网站的用户都与其购物车绑定。由于购物车的内容要在不同时间,不同浏览器,不同会话中保持一致,所以可以把购物信息放在VALUE属性中,并将其绑定到userid这个键名上。

文档数据库

文档数据库可以存取文档,其格式可以是XML,JSON,BSON

Oracle MongoDb
数据库实例 MongoDb 实例
模式/schema 数据库
表/table 集合/collection
行/row 文档/document
rowid id

适用于:

  • 事件记录
  • 内容管理系统和网站发布程序
  • 网站分析和实时分析。由于可以只更新部分文档的内容,所以用它来存储 页面浏览量 , 独立访客数 会非常方便
  • 电子商务应用程序。存储产品和订单等

列族数据库

列族数据库可以存储关键字以及其映射的值,并且把值分成多个列族,让每个列族代表一张数据映射表

Oracle Cassandra
数据库实例 集群/cluster
数据库 键空间/keyspace
表/table 列族/column family
行/row

适用于:

  • 合适用来保存应用程序状态或运行中遇到的错误等信息事件
  • 可以将博文的tag,category,link 等属性放在不同的列中。博客用户和博文可以存在不同列族中
  • 统计某页面的访问人数并分类
  • 限期使用。向用户提供适用版,可以通过 带过期时限的列 来实现。这种列过了给定时间后,就会由 Cassandra 自动删除。程序检测到此列不存在,收回用户访问权限

图数据库

图数据库存放实体和实体间的关系,实体也叫节点,节点视为应用程序中某对象的实例,关系又叫边。用图将数据一次性组织好后,稍后便可根据 关系 以不同方式解读

适用于:

  • 部署并使用图数据库处理社交网络
  • 安排运输路线,分派货物。还可以将书店,餐馆等销售点做成节点,当用户靠近时通知他们,提供基于位置的服务
  • 推荐引擎
(责任编辑:IT)