码迷,mamicode.com
首页 > 数据库 > 详细

大数据技术原理与应用【第五讲】NoSQL数据库:5.3 NoSQL的四大类型

时间:2019-06-09 13:17:16      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:master   海量数据   缓冲   优点   不同类   效率   移动应用   数据   memcach   

5.3 NoSQL的四大类型

 

5.3.1 键值数据库和列族数据库


可以分为四大类产品:键值数据库,列族数据库,文档数据库,图数据库
技术图片

 

(代表)技术图片
 


1.键值数据库:
技术图片
 
用的多:redis
云数据库:SimpleDB
典型应用:要求的数据模型非常简单,不涉及到存储结构化信息;要求非常好的写性能;涉及非常频繁的读写操作。内容缓存,如:会话,配置文件,参数,购物车等存储配置,用户数据信息等移动应用。
优点:
(扩展性好)数据规模扩大时,往里面增加结点,理论上有无上限的扩展空间;
(灵活性好)任何类型的数据都可以写成键值对;
 (大量写操作性能高)因为数据模型很简单,就是key value;为什么适合用来做内容缓存的原因;
缺点:
无法存储结构化信息,因为数据模型太简单key value,值与值之间也无法反映关联关系;
条件查询效率非常低,键值数据库不允许对它的值进行索引(值是透明的,只有一个一个把key找到,才能去访问它的值),无法实现非常复杂的条件查询;
不适用:
(键值数据没有通过值来查询的途径)通过键而是通过值来查找;
(不反映数据之间的关联关系)想要存储数据之间的关系;
(很多产品不支持事务)需要事务支持;
 
应用:
理想的缓冲层解决方案,在底层的数据库之上构建缓存层,提高响应web速度;Redis用的比较多(比Memcached性能高);
 

2.列族数据库:

技术图片

 

有所区别
HBase:采用master slave架构,一个管家管很多从节点。
Cssandra:对等结构,p2p结构,整个服务器中所有节点对等。

典型应用:
(分布式数据存储与管理)尤其是海量数据分布式的存储与管理,因为它的水平可扩展性非常好(可以通过列族进行垂直切分,进而进行水平分区,分成很多region,放在不同节点上去存储);
(拥有动态字段的应用程序)因为传统的关系数据库无法随便修改它的数据库模式,很难动态增加减少字段;
优点:
(复杂性低)因为底层是通过系统自动去实现的,不需要人工干预。
不适用:需要事务强一致性的支持的时候,有些列族数据库就不能用了,例如:Cassandra
 
 
 
5.3.2 文档数据库、图数据库 以及不同数据库比较分析
 

 1.文档数据库

本质也是键值数据库,只不过它的key对应的value是一个文档;

关系数据库中的每一行记录,在文档数据库中就是一个文档;

 

1)特性:可以进行自我描述

文档数据库读完后就可以获得相关数据的名称、值等信息

技术图片

 

2)文档数据库的数据结构:JSON数据格式

技术图片

 

 (数据不规则)每一条记录都对应了关系数据库中一行;嵌套对于关系数据库是多表连接的结构;不包含外部引入,读完一行就把所有信息读完了(好处:进行记录移植时,只要把一个文档迁移到其他机器上面,不用考虑别的表。而关系数据库需要锁定其他表,迁移时要把其他关联的表也迁移走)。

 

3)

技术图片

 

典型应用:

比如:后台有大量读写操作的网站,用JSON数据结构的一些应用,使用嵌套结构等非规范化数据的应用结构

 优点:

(高并发)所有信息在一个文档里面;

(灵活性高)可以在一个文档里写入不同类型的数据;

 


2.图数据库:
技术图片

 

相关产品:Neo4j(面向Java开发的)
数据模型:图结构(不是只存放图,是图结构)
用图的顶点和边存储信息;

缺点:
只适用以上情况,有些信息不适用于用图结构存储,就不能用图数据库
 
 
 
3.不同数据库之间的比较分析
技术图片

 

 
 

大数据技术原理与应用【第五讲】NoSQL数据库:5.3 NoSQL的四大类型

标签:master   海量数据   缓冲   优点   不同类   效率   移动应用   数据   memcach   

原文地址:https://www.cnblogs.com/musecho/p/10992963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!