MySQL ACID和范式

事务正确执行的4要素:

事务是数据库中的执行基本单元

ACID分别是原子性/一致性/隔离性/持久性

原子性:一个事务要么全部执行成功,要么全部回滚;

一致性:在事务执行前后不会破坏数据的完整性;例如从账号A转到账号B ¥100,相应的A-100,B+100,总额不会变,事务前后保持一致;

隔离性:完成前不会被其他事务看到当前执行的事务;例如未提交前,其他事务查询到的balance仍是当前事务执行前的balance;

持久性:事务提交之后则永久性更新了数据,无法回滚;

例子:

start transaction;

update account set balance = balance - 20 where name = 'erika';

update account set balance = balance + 30 where name = 'erika';

commit;

隔离级别


范式 

超关键字:一个实体集中可以唯一的标识实体的属性或者属性组,可能有多余的属性

候选关键字:一个实体集中可以唯一的标识实体的属性或者属性组,没有多余的属性

主关键字:当作表行唯一标识的候选关键字

函数依赖:A依赖B(AB为属性或者属性组,记B->A),则根据B可以决定A

完全依赖:B中没有多余的属性

部分依赖:B中有多余的属性

传递依赖:A依赖B,B依赖C,则A依赖C,B->A, C->B, 则C->A


1NF: 数据库表的每一项都是不可再分的原子数据项

2NF:首先1NF, 且非主属性完全依赖于主属性

3NF:首先2NF,且属性不依赖于其他非主属性

BCNF:首先1NF,且所有属性都不部分依赖于主属性也不传递依赖于主属性

猜你喜欢

转载自blog.csdn.net/weixin_42129080/article/details/80532431