数据库ACID,SQL和NoSQL

时间:2021-03-08 22:08:29

数据库中的事务(transaction)有ACID4个基本特性,可以类比交易:

1,A(Atomicity)原子性

事务里的事情要么全部做完,要么执行过程中失败,此时回滚。

2,C(Consistency)一致性

数据库要处于一致的状态。

例如:现有完整性约束 A+B=10,若一个事务改变了A,那么B也得必须改变

3,I(Isolation)独立性

并发的事务之间不会相互影响。

如果一个事务要访问的数据正在被另一个事务修改,只要另一个事务未提交,它所访问的数据就不受未提交数据的影响。

4,D(Durability)持久性

事务一旦提交,所做的修改就会永久保存在数据库上

SQL(Structured Query Language,结构化查询语言)和NoSQL(Not Only SQL,泛指非关系型数据库)的一些区别:

首先,两者最重要的区别是NoSQL不使用SQL作为查询语言,数据存储不需要固定的表格模式,

避免使用SQL的join操作,水平可扩展。

SQL数据库的典型代表:SQL Server,Oracle,My SQL

NoSQL数据库的典型代表:MongoDB,Redis

1. SQL数据存在特定结构的表中,NoSQL灵活,存储方式可以是JSON,哈希表等方式

2. SQL中必须定义好表和字段结构后才能添加数据;NoSQL无需先定义表,可以在任何时候任何地方添加

3.需要关联外部数据的时候,SQL往往需要外键,再建一张表;NoSQL可以把外部数据直接放在原数据集中

4.SQL中可使用join将多个关系数据表中的数据一次查询出来,NoSQL不支持该用法

5.SQL数据耦合性强,不能删除外部已使用的数据;NoSQL没有数据耦合的概念,可以任意删除

6.NoSQL中也没有事务的概念,每一个操作都是原子级的