数据库分类与数据库基本原则(ACID、CAP、BASE)

分布式系统中ACID和CAP有什么区别 - 知乎 (zhihu.com)

关系型数据库遵循ACID规则 && NoSQL 数据库BASE CAP - 玲汐 - 博客园 (cnblogs.com)

分布式系统设计时,遵循CAP原则_alpha_2017的博客-CSDN博客

1、数据库与数据库规则

1.1 数据库

1)关系型数据库SQL:

​ 传统的SQL数据库的事务通常都是支持ACID的强事务机制

  • 关系型数据库:

    - 高度组织化结构化数据
    - 结构化查询语言(SQL) (SQL)
    - 数据和关系都存储在单独的表中。
    - 数据操纵语言,数据定义语言
    - 严格的一致性
    - 基础事务

2)非关系型数据库NoSQL:

​ NoSQL系统通常注重性能和扩展性,而非事务机制(事务就是强一致性的体现)。NoSQL系统仅提供对行级别的原子性保证,也就是说同时对同一个Key下的数据进行的两个操作,在实际执行的时候是会串行的执行,保证了每一个Key-Value对不会被破坏。

  • NoSQL的优点/缺点

    优点:

    • - 高可扩展性
    • - 分布式计算
    • - 低成本
    • - 架构的灵活性,半结构化数据
    • - 没有复杂的关系

    缺点:

    • - 没有标准化
    • - 有限的查询功能(到目前为止)
    • - 最终一致是不直观的程序

NoSQL 数据库分类:

类型 部分代表 特点
列存储 Hbase
Cassandra
Hypertable
顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。
文档存储 MongoDB
CouchDB
文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。
key-value存储 Tokyo Cabinet / Tyrant
Berkeley DB
MemcacheDBRedis
可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)
图存储 Neo4J
FlockDB
图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。
对象存储 db4o
Versant
通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。
xml数据库 Berkeley DB XML
BaseX
高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。

你可能感兴趣的:(Redis,数据库,数据库,nosql,database)