Fork me on GitHub

NoSql 简介

1. 概述

  1. NoSQL(Not Only SQL),"不仅仅是SQL", 泛指非关系型的数据库;
  2. 特点:
    • 易扩展;
    • 在大数据量下,NoSQL 数据库具有非常高的读写性能;
    • 多样灵活的数据模型;
  3. RDBMS(关系型数据库)和NoSQL 比较
    • RDBMS
      • 高度组织化结构化数据;
      • 结构化查询语言(SQL);
      • 数据和关系都存储在单独的表中;
      • 数据操作语言,数据定义语言;
      • 严格的一致性;
      • 基础事务;
    • NoSQL
      • 没有声明性查询语言;
      • 没有预定义的模式;
      • 键值对存储,列存储,文档存储,图形数据库;
      • 最终一致型,而非ACID属性;
      • 非结构化和不可预知的数据;
      • CAP 定理;
      • 高性能,高可用性和可伸缩性;
  4. 3V + 3高
    • 大数据时代的3V
      • 海量(Volume)
      • 多样(Variety)
      • 实时(Velocity)
    • 互联网需求的3高
      • 高并发
      • 高可扩
      • 高性能

2. NoSQL 的数据模型

2.1 Bson

  • Bson 是一种类json的二进制形式的存储格式,即Binary JSON;
  • 支持内嵌的文档对象和数组对象;

2.2 聚合模型

  • KV 键值
  • Bson
  • 列族
  • 图形

2.3 NoSQL 数据库的四大分类

  • KV键值: Redis等;
  • 文档型数据库(bson格式比较多): MongoDB,基于分布式文件存储的数据库;
  • 列存储数据库: HBase,分布式文件系统;
  • 图关系数据库: 存放社交网络,推荐系统等,专注于构建关系图谱;

3. 在分布数据库中CAP原理

3.1 CAP

  • C:Consistency(强一致性)
  • A:Availability(可用性)
  • P:Partition tolerance(分区容错性)

3.2 CAP 原理

  1. CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时
    较好的满足两个;
  2. 分区容错性是必须要实现的;
  3. 根据CAP原理,将NoSQL数据库分成了满足CA原则,满足CP原则和满足AP原则三大类:
    • CA,单点集群,满足一致性,可用性的系统,通常在扩展性上不太强大;(传统Oracle数据库)
    • CP,满足一致性,分区容错性的系统,通常性能不是特别高;(Redis,Mongodb)
    • AP,满足可用性,分区容错性的系统,通常可能对一致性要求低一些;(大多数网站架构的选择)

4. BASE

  • BASE 就是为了解决关系数据库强一致性引起的问题而引起的可用性降低,而提出的解决方案;
  • BASE
    • 基本可用(Basically Available)
    • 软状态(Soft state)
    • 最终一致(Eventually consistent)

5. 分布式和集群

  • 分布式:不同的多台服务器上面部署不同的服务模块(工程),它们之间通过Rpc/Rmi之间通信和调用,对外提供服务和组内协作;
  • 集群:不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问;

参考资料

posted @ 2017-11-08 10:40  小a的软件思考  阅读(2334)  评论(0编辑  收藏  举报