码迷,mamicode.com
首页 > 数据库 > 详细

数据库原理

时间:2020-04-11 20:56:43      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:acid   范式   产生   tran   zab   nbsp   UNC   ali   一致性   

一、数据库三大范式:

  1、列不可再分。
  2、属性依赖于主键。
  3、属性直接依赖于主键,不依赖其他属性。

二、数据库事务的四大特性:(ACID)
  1、原子性:一个事务的所有操作要么全部完成,要么全部失败回滚。
  2、一致性:事务提交前后,数据库整体保持一致性状态。如A、B之间转账后,总金额不变。
  3、隔离性:并发事务间不能互相干扰,应保持隔离。
  4、持久性:事务成功提交后,对数据库的改变应该是永久性的。

三、事务不隔离产生的问题:
  1、脏读:一个事务读取了另一个事务还没有提交的数据。
  2、不可重复读:一个事务读取时,另一个事务修改并提交了数据。(update、delete)
  3、幻读:一个事务读取时,另一个事务新增并提交了数据。(insert)

四、数据库事务隔离级别:
  1、Serializable(串行化):可避免脏读、不可重复读、幻读。
  2、Repeatable read(可重复读):可避免脏读、不可重复读。
  3、Read committed(读已提交):可避免脏读。
  4、Read uncommitted(读未提交):最低级别,无法保证。

mysql默认事务隔离级别为:Repeatable read(可重复读)

sqlserver默认事务隔离级别为:Read committed(读已提交)

spring的@Transaction默认使用数据库的隔离级别

 

数据库原理

标签:acid   范式   产生   tran   zab   nbsp   UNC   ali   一致性   

原文地址:https://www.cnblogs.com/ruowei/p/12681765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!