数据库四大特性与事务

本文介绍了数据库的四大特性——原子性、隔离性、一致性、持久性,以及事务的起源和概念。阐述了事务在确保数据库操作正确性中的重要角色,并以银行转账为例解释了事务的必要性。同时,对事务的生命周期状态进行了说明,包括活动、部分提交、失败、中止和提交等阶段。
摘要由CSDN通过智能技术生成

原本地址: https://amos-x.com/index.php/amos/archives/db-transaction/

前言

数据库的四大特性是什么,为神马要满足这些特性,事务是怎么被创造并用来满足这些特性,了解数据库本质的一些概念,有助于更好的理解数据库。

当然,这也是面试中常见的基础问题,下面就来想来详细分析一下

正文

一 事务的起源

对于大部分程序员来说,他们的任务就是把现实世界的业务场景映射到数据库世界。那么就会碰到一个问题,比如典型的银行存款问题,假设银行为了保存用户的信息,建立了一个account表:

CREATE TABLE account (
    id INT NOT NULL AUTO_INCREMENT COMMENT '自增id',
    name VARCHAR(100) COMMENT '客户名称',
    balance INT COMMENT '余额',
    PRIMARY KEY (id)
) Engine=InnoDB CHARSET=utf8;

假设A和B他们都到银行开一个账户,他们在现实世界中拥有的资产就会体现在数据库世界的account表中。比如现在A有11元,B只2元,那么现实中的这个情况映射到数据库的account表就是这样:

+----+--------+---------+
| id | name   | balance |
+----+--------+---------+
|  1 | A      |      11 |
|  2 | B      |       2 |
+----+--------+---------+

这里A与B在银行里的资产的值,就是此时此刻现实世界的一个状态,随着时间流逝,A与B在银行间进行存取转账等操作,他们的余额就会发生变动,每一个操作就想相当于一次状态转换

那么对应数据库也就要进行进行变动来反映现实世界的映射,但是却不是那么容易,比如假设B急需用钱买彩票,找A借5元,然后A就去ATM,向B转账了5元,然后按下确定后,就走了。对于数据库的世界来说,就是在A的记录的余额上减去5元,B的余额加上5元,翻译成sql就是:

UPDATE accou
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值