数据库分为:关系型数据库和非关系型数据库两种

关系型数据库包括SQLite、Oracle、Mysql等

  • 特性:
    1、关系型数据库,是指采用了关系模型来组织数据的数据库;
    2、关系型数据库的最大特点就是事务的一致性
    3、简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

优点
1、容易理解:关系模型相对网状、层次等其他模型来说更容易理解;
2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;
3、易于维护:丰富的完整性大大减低了数据冗余和数据不一致的概率;
4、支持SQL,可用于复杂的查询。
缺点
1、为了维护一致性所付出的巨大代价就是其读写性能比较差;
2、固定的表结构;
3、高并发读写需求;
4、海量数据的高效率读写;

非关系型数据库包括MongoDb、redis、HBase等

  • 特性:
    1、使用键值对存储数据;
    2、分布式;
    3、一般不支持ACID特性;
    4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。

优点
1、无需经过sql层的解析,读写性能很高;
2、基于键值对,数据没有耦合性,容易扩展;
3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。

缺点
1、不提供sql支持,学习和使用成本较高;
2、无事务处理,附加功能bi和报表等支持也不好;

数据库的ACID

事务是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。

事务必须满足四大特征:原子性,一致性,隔离性,持久性/持续性

原子性(atomicity):一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性(表示事务内操作不可分割。要么都成功、要么都是失败)

一致性(consistency):数据库总是从一个一致性的状态转换到另一个一致性的状态(要么都成功、要么都是失败.后面的失败了要对前面的操作进行回滚)
隔离性(isolation):通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的(一个事务开始后,不能后其他事务干扰)
持久性(durability):一旦事务提交,则其所做的修改会永久保存到数据库。(表示事务开始了,就不能终止,此时即使系统崩溃,修改的数据也不会丢失。)

Logo

更多推荐