
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
数据库技术是许多软件开发程序员都在学习的一个编程开发技术,下面我们就通过案例分析来了解一下,数据库架构开发基础知识分享。
1.简介
1.1.事务是什么
事务(Transaction)是由一条或多条操作数据库的SQL语句组成的一个不可分割的工作单元,这些操作要么都完成,要么都回滚。一个事务往往对应一个完整的业务。
2.事务四大特性(ACID)
2.1.原子性(atomicity)
事务是个完整体,不可再分(就像化学中的原子不可再分),要求所有DML语句操作必须同时成功或同时失败。
2.2.一致性(consistency)
事务前后的数据要保持一致。如:A有10元钱,B有20元钱。B转10元给A,完成转账后A+B的钱还是30元。
2.3.隔离性(isolation)
不同的事务之间互相隔离。
2.4.持久性(durability)
事务结束后,内存数据持久化的磁盘中。
3.并发问题
3.1.两种数据丢失
一种是指两个事务同时操作同一个数据时,当一个事务回滚时,把已经提交的二个事务的更新数据覆盖了,二个事务就造成了数据丢失。
二种是指当两个事务同时操作同一个数据时,一个事务将修改结果成功提交后,对二个事务已经提交的修改结果进行了覆盖,对二个事务造成了数据丢失。
3.2.脏读
脏读是指一个事务读取了另一个未提交事务的数据。
如:事务A读取了事务B未提交的数据,假如事务B未正确执行,回滚,则事务A读取到的就是脏数据。
问题关键点:读了「未提交」事务的数据。
3.3.不可重复读
不可重复读是指一个事务对同一行数据重复读取两次,但得到的结果内容不同。
如:一个事务执行过程中,另一事务提交并修改了当前事务正在读取的数据
问题关键点:同一个事务多次「读条件相同」的数据,其他事务还可以「修改该条件下」的数据。
3.4.幻读
幻读是同一个事务的相同的两次查询的结果数不一致。
如:一个事务执行过程中,另一个事务新增或删除了数据,导致两次相同的查询结果条数不同。
问题关键点:同一个事务多次「读条件相同的数据」,其他事务还可以「新增或删除该条件下」的数据。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。