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的四大类型的更多相关文章

  1. 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)

    1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...

  2. 大数据技术原理与应用【第五讲】NoSQL数据库:5.1 NoSQL概论&5.2 NoSQL与关系数据库的比较

    5.1 NoSQL概论 最初:反SQL 概念演变,现在:Not only SQL 特点: 1.灵活的可扩展性 所以支持海量数据存储 2.灵活的数据模型 例如:HBase 3.和云计算的紧密结合 (一) ...

  3. 大数据技术原理与应用【第五讲】NoSQL数据库:5.4 NoSQL的三大基石

    NoSQL的三大基石:cap,Base,最终一致性   5.4.1 cap理论(帽子理论):   consistency:一致性availability:可用性partition tolerance: ...

  4. 大数据技术原理与应用——大数据处理架构Hadoop

    Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构. Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以 ...

  5. 大数据技术原理与应用【第五讲】NoSQL数据库:5.6 文档数据库MongoDB

    文档数据库介于关系数据库和NoSql之间: 是最像关系数据库的一款产品,也是当前最热门的一款产品. 1.MongoDB简介:   1)     2)文档类型BSON(Binary JSON),结构类似 ...

  6. 大数据技术原理与应用【第五讲】NoSQL数据库:5.5 从NoSQL到NewSQL数据库

    应用场景: OldSql数据库:希望一种架构就能支持多种应用场景,但证明不可能.   NewSql数据库:同时具备OldSql和NoSQL各自的优点:水平可扩展性,强一致性,事务一致性,支持查询,支持 ...

  7. 大数据技术原理与应用——分布式文件系统HDFS

    分布式文件系统概述 相对于传统的本地文件系统而言,分布式文件系统(Distribute File System)是一种通过网络实现文件在多台主机上进行分布式存储的文件系统.分布式文件系统的设计一般采用 ...

  8. 大数据技术原理与应用:【第二讲】大数据处理架构Hadoop

    2.1 Hadoop概论 创始人:Doug Cutting 1.简介: 开源免费; 操作简单,极大降低使用的复杂性; Hadoop是Java开发的; 在Hadoop上开发应用支持多种编程语言.不限于J ...

  9. 学一下HDFS,很不错(大数据技术原理及应用)

    http://study.163.com/course/courseMain.htm?courseId=1002887002 里面的HDFS这一部分.

随机推荐

  1. 8.10 NOIP模拟测试16 Blue+Weed+Drink

    T1 Blue 贪心,每次跳得时候跳能跳到的最远的地方,跳过的就把他设为0,每次二分找到位置,一直跳就行,如果能跳到的位置就是当前位置或比当前位置还小(数组里现在呆着的这一块石头,二分得到的就是当前位 ...

  2. 15 张 Vim 速查表奉上,帮你提高N倍效率!

    阅读本文大概需要 2.8 分钟. 去年上半年开始全面使用linux进行开发和娱乐了,现在已经回不去windows了. 话归正传,在linux上一直使用vim,慢慢熟悉了它的命令,才终于领悟了什么是编辑 ...

  3. 【ASP.NET Core分布式项目实战】(五)Docker制作dotnet core控制台程序镜像

    Docker制作dotnet core控制台程序镜像 基于dotnet SDK 新建控制台程序 mkdir /home/console cd /home/console dotnet new cons ...

  4. SpringBoot+EventBus使用教程(二)

    简介 继续上篇,本篇文章介绍如何集成spring-boot-starter-guava-eventbus使用EventBus,最新的版本好像已经不叫spring-boot-starter-guava- ...

  5. Linux下Maven私服Nexus3.x环境构建操作记录

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79553747 私服介绍 私服是指私有服务器,是架设在局域网的一种特殊的远程仓库, ...

  6. axios浏览器异步请求方法封装 XMLHttpRequest

    axios学习笔记defaults(浏览器端异步请求处理方式) 浏览器异步请求方法封装,主要使用XMLHttpRequest lib/adapters/xhr.js //入口 var utils = ...

  7. DFRobot模块物联网演示项目整合

    简介 本文是此次物联网项目的终结篇.本文将演示如何整合之前的文章中的模块和代码,来简单的完成一个物联网项目.最终的实现效果是:利用Iphone手机上的MQTTool App,来获取DHT11的温湿度数 ...

  8. Apache Commons 简介

    Apache Commons 由多个独立发布的软件包组成,此页面提供了当前可用的 Commons 组件的概述. Components BCEL 字节码工程库 - 分析,创建和操作 Java 类文件. ...

  9. java中 Math和StrictMath

    今天无意中看到java api中有StrictMath 这个工具类,发现它部分调用实现是用了Math中的实现.Math 这个类API 1.0版本就有了,StrictMath API是1.3版本才出来的 ...

  10. Mysql序列(七)—— order by优化

    前言 在mysql中满足order by的处理方式有两种: 让索引满足排序,即扫描有序索引然后再找到对应的行结果,这样结果即是有序: 使用索引查询出结果或者扫描表得到结果然后使用filesort排序: ...