数据库中的事务

1.事务:业务动作无法通过一条独立的SQL完成;(事务这个概念是被抽象出来的);
2.事务四大特性:

  • 一致性:最重要的;就是数据A和数据B之间有一定的约束;(俩个角色保证事务的一致性:应用程序的编写者+DB的实现者);
  • 原子性:由DB的实现者保证;
  • 持久性:由DB的实现者保证;
  • 隔离性:由DB的实现者保证;(串行执行,隔离性最强,并发性最弱)

3.四种隔离级别

  • 读未提交:读未提交的数据(脏读)
  • 读已提交:可以读到同时并发的B事务中已经提交的修改(不可重复读)
  • 可重复读:(幻读:A事务在执行过程中,可以同时读到并发的B事务中的提交修改和删除的数据);
  • 序列化(可串行化):
  • 不可重复读:事务A首先读取了一条数据,然后执行逻辑的时候,事务B将这条数据改变了,然后事务A再次读取的时候,发现数据不匹配了,就是所谓的不可重复读了。也就是说,当前事务先进行了一次数据读取,然后再次读取到的数据是别的事务修改成功的数据,导致两次读取到的数据不匹配,也就照应了不可重复读的语义。幻读:事务A首先根据条件索引得到N条数据,然后事务B改变了这N条数据之外的M条或者增添了M条符合事务A搜索条件的数据,导致事务A再次搜索发现有N+M条数据了,就产生了幻读。也就是说,当前事务读第一次取到的数据比后来读取到数据条目少

4.设计数据库的几个原则

  • 1.减少冗余性;
  • 2.数据类型合理;
  • 3.表之间的关系 —— 三大关系范式(1.字段足够独立,2.字段和主键之间有直接关系,3.字段和全部主键有关系(一般指示联合主键));
  • 4.善用索引;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值