NoSQL 介绍

Posted by YinChangdao on December 30, 2017

NoSQL 介绍

关系型数据库

MySQL就是这类数据库的典型代表,它的语句支持对数据的筛选和排序,把多个对象的数据放在同一个表内。主要是为了方便发现和整理数据之间的关系,再通过对数据关系的分析得到一个统计意义的结论。这就决定了关系型数据库读写性能不是很高的特点。

非关系型数据库

所谓非关系型数据库就是不关心某个对象在全局下和别的对象之间的关系。只要能快速读写计算某个对象的数据。

NoSQL

Not Only SQL, 是对不同于传统的关系型数据库的数据库管理系统的统称。

CAP定理

CAP定理指出对于一个分布式计算系统来说,不可能同时满足以下三点:

  • 一致性(Consistency)(所有节点在同一时间具有相同的数据)
  • 可用性(Availability)(保证每个请求不管成功或者失败都有相应)
  • 分隔容忍(Partition tolerance)(系统中任意信息的丢失或者失败不会影响系统的继续运作)

CAP核心:一个分布式系统不可能同时很好的满足以上三个需求,最多只能同时较好的满足两个。

NoSQL 数据库分类

  • 类存储: 按列存储数据,方便存储结构化和半结构化数据,方便做数据压缩。 Hbase, Cassandra, Hypertable
  • 文档存储: 一般用类似 json 的格式存储,存储的内容是文档型的。这样有机会对某些字段建立索引,实现关系数据库的某些功能。 MongoDB, CouchDB.
  • key - value 存储: 通过 key 快速查询到其 value, 一般来说,存储不管 value 的格式,照单全收。 Tokyo Cabinet / Tyrant, Berkeley DB, MencacheDB, Redis.
  • 图存储: 图形关系的最佳存储。Neo4J, FlockDB.
  • 对象存储: 通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。db4o, Versant.
  • xml数据库: 高效的存储 XML 数据,并支持XML的内部查询语法,比如XQuery, Xpath等查询语法。 Berkeley DB XML, BaseX.

Couchbase Lite

由NoSQL初创公司Couchbase发布的一款名为 Couchbase Lite 的产品,一款基于 iOS 和 Android 设计的 NoSQL 数据库。