前言

学习自用..网上大把资料,主要为了贴上自己理解.老实说标题和内容真难对的上..以后再修改下..2020年7月23日已改

事务的ACID

事务的atomicity,

每项事务 的全部操作,要么做了就成功,要么就失败了全部回滚,而不会存在中间状态.回滚通过undo log来实现,(为什么要有这个概念的,,有什么数据库的原子性的反例吗),(undolog可见性TODO)

consistency一致性

数据库的状态要是一致的,(Q:这里说的状态一致是什么呢),A:数据库的状态的一致指的是完整性约束,完整性约束说的是数据库不能有不规范的数据,(TODO,这里的完整性约束),很多地方写道:数据库的AID就是为了保证这个C的.(数据库概论第九章一致性的定义:数据库从一个状态转移到另一个一致性状态,这里的一致性指的是符合完整性约束)

这个具体定义太迷了...可以参考[如何理解数据库事务中的一致性的概念? - 知乎 https://www.zhihu.com/question/31346392],我也不再深挖了...

isolation隔离性

隔离性好理解,每个事务之间互不影响,即一个数据库操作的结果不能被另一个事务干扰而导致结果错误,而隔离性的反例就是四种并发问题,貌似除了严格的锁协议,都会多多少少有隔离性问题

durability持久性

标准定义是:提交的会一直存在数据库中,不会丢失,,数据存在内存中是易失的,断电则没了,为了保证持久性,就要刷到硬盘中,,

持久性用用write ahead logging来保证,有一项即是在提交前先把redo log刷入磁盘来保证,提交的数据会被持久化到硬盘中

存数据的硬盘坏了的丢失导致丢失当然是不算的,但是这里说的是数据库的持久性,(网上说持久性是保证了可靠性而不是可用性是什么意思呢)

写redo log的话,(redo log应该是增量写入吧?),对比直接修改数据库,可以把随机写的性能优化成顺序写

(另外备份是持久性的一个手段吗)

范式

网上说是为了建立冗余较小、结构合理的数据库,为什么能保证呢?

1NF,列不可分

2NF,主键相关

3NF,直接相关,没有传递依赖

参考

  1. https://zhuanlan.zhihu.com/p/128546246
  2. 跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现 - 阿丸的文章 - 知乎 https://zhuanlan.zhihu.com/p/129860691

数据库事务和范式理解相关推荐

  1. 数据库事务一致性的理解

    一致性的定义 百度百科-一致性: 一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的. 百度百科-事务一致性: 一个或多个事务执行后,原来一致的数据和数据库仍然是一致的.它主 ...

  2. Spring Boot中声明式数据库事务使用与理解

    JDBC的数据库事务 传统JDBC的数据库事务的一个示例如下代码所示,该示例仅为一个insertUser方法的数据库事务过程.可以看到,如果还存在很多其他的数据库事务需要,则需要编写很多类似于如下的代 ...

  3. 数据库事务(个人理解)

    事务的定义 数据库事务:指的是对数据库进行读写的一系列操作序列 系统中的事务:处理一系列业务处理的执行逻辑单元,该单元里的一系列类操作要不全部成功要不全部失败 事务的四大特性 原子性:一次事务要么全部 ...

  4. 数据库基础之范式理解

    关系型数据库三范式,可以理解成: 1.第一范式:每个键值独立 反义:值不独立 2.第二范式:只能依赖主键全部 反义:依赖部分主键 3.第三范式:唯一依赖主键 反义:依赖了其它键,包含依赖主键和其他键+ ...

  5. 有关数据库事务的一些理解-原生的Java的JDBC事务

    2019独角兽企业重金招聘Python工程师标准>>> 1.DriverManager 2.Connection(setAutoCommit.commit.close) 3.1.Pr ...

  6. 多表关系、数据库设计的范式、数据库的备份和还原、多表查询、事务、DCL(了解)

    文章目录 多表关系 数据库设计的范式 数据库的备份和还原 多表查询 多表查询的分类:内连接查询 隐式内连接:使用where条件消除无用数据 显式内连接 多表查询的分类:外连接查询 左外连接 右外连接 ...

  7. 并发事务正确性的准则 可串行化_从0到1理解数据库事务(上):并发问题与隔离级别...

    最近准备写一篇关于Spanner事务的分享,所以先分享一些基础知识,涉及ACID.隔离级别.MVCC.锁,由于太长,只好拆分成上下两篇: 上:并发问题与隔离级别 主要讲事务所要解决的问题.思路,先理解 ...

  8. 支持串行隔离级别_从0到1理解数据库事务(上):并发问题与隔离级别

    最近准备写一篇关于Spanner事务的分享,所以先分享一些基础知识,涉及ACID.隔离级别.MVCC.锁,由于太长,只好拆分成上下两篇: 上:并发问题与隔离级别 主要讲事务所要解决的问题.思路,先理解 ...

  9. 【数据库】范式理解:1NF,2NF,3NF,BCNF,4NF详析

    数据库入门(一)范式理解:1NF,2NF,3NF,BCNF,4NF详析 引言 范式种类 第一范式(1NF) 符合1NF的关系中的每个属性都不可再分 存在问题 第二范式(2NF) 在1NF基础上消除了非 ...

最新文章

  1. zyUpload+struct2完成文件上传
  2. python的数字比较好_说说 Python3 中的数字处理
  3. 爬虫学习round02
  4. 大数据系列(hadoop) 集群环境搭建二
  5. Django引入静态文件
  6. 25 矩阵——QR分解、Householder 矩阵、镜面反射
  7. 哲学家就餐问题python_哲学家就餐问题的一种Python解决方案
  8. 什么是Android Instant Apps?
  9. 知乎80万高赞的window10壁纸
  10. linux curse库函数,curse
  11. 跨考不容易,各专业跨考建议注意事项!
  12. web前端移动端项目测试的几种方法
  13. android字体不统一,Android下EditText中的字体不统一问题
  14. html原生轮播图的实现,使用原生js实现点击切换图片(轮播图)效果
  15. ERP 系统,编译和学习
  16. Virtual Villagers 攻略
  17. 计算机辅助地理教学的利和弊,浅谈多媒体在高效地理课堂中的利和弊.doc
  18. Latex 页面调整常用参数
  19. iSumsoft PDF Password Refixer 破解pdf的密码,忘记pdf文件的密码了,可以通过该软件进行破解,pdf找回密码
  20. 小虎电商浏览器:多多打单怎么手工打单

热门文章

  1. 美图公司FinOps探索的那些事儿~
  2. (附源码)计算机毕业设计ssm高校请假管理系统
  3. 账号密码登录和注册业务逻辑
  4. 又一重磅利好,海南撒10亿基金发展区块链技术
  5. 【Java并发编程 】同步——volatile 关键字
  6. 618投影仪怎么选?看看极米NEW Z6X、极米Z6X Pro与极米H3S
  7. 内网异地备份_服务器数据全自动异地备份解决方案
  8. 不惧年龄,无限可能,32岁也能成功转行IT行业
  9. 静态网网页设计成品下载
  10. Centos系统下搭建Smokeping 方法