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

MySQL事务

时间:2018-09-21 19:47:21      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:必须   属性   3nf   范式   aci   主键   事物   插入   不可重复读   

MySQL存储原理:
mysql的存储过程是函数经过编译并存储在数据库中的一段SQL语句集合,相当于一个函数编译执行的过程,只是函数不需要有返回值,直接存储编译后的数据


一、数据库的基本要素(ACID):
1.原子性:事务操作是不可分割的,要么完成,要么不执行
2.一致性:多个事务并行执行,执行结果必须按照某一顺序执行相同
3.隔离性:多个事务执行互相不干扰,执行中结果对其他事务必须透明
4.持久性:执行成功的事务,对数据库改变必须是永久的,不能应为某些原因(掉电)消失


二、数据库事物隔离级别:
读未提交(read-uncommitted)
读提交(read-committed)
可重复读(repeatable-read)
串行化(serializable)


三、数据库设计三范式:
1NF:属性不可再分,即字段不能再分(最基本的数据单元)
2NF:满足1NF,且非主键字段必须完全依赖主键
3NF:满足2NF,且非主键字段必须直接依赖主键,不能间接依赖


四、事物并发问题:
1.脏读:事务A读取了事务B更新的数据,当B事务回滚,A事务读取到的数据都为脏数据
2.不可重复读:事务A多次读取同一数据,事务B在事务A多次读取中修改了数据,导致事务A读取的数据不一致
3.幻读:事务A在针对表中数据进行修改,涉及表中全部数据行,同时事务B也修改了表中的某一行数据(插入一行新数据),那么事务A就会发现表中还有没有修改的数据行,产生了幻读(读提交可解决)

MySQL事务

标签:必须   属性   3nf   范式   aci   主键   事物   插入   不可重复读   

原文地址:http://blog.51cto.com/10412806/2178836

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