数据库事务和范式理解
前言
学习自用..网上大把资料,主要为了贴上自己理解.老实说标题和内容真难对的上..以后再修改下..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,直接相关,没有传递依赖
参考
- https://zhuanlan.zhihu.com/p/128546246
- 跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现 - 阿丸的文章 - 知乎 https://zhuanlan.zhihu.com/p/129860691
数据库事务和范式理解相关推荐
- 数据库事务一致性的理解
一致性的定义 百度百科-一致性: 一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的. 百度百科-事务一致性: 一个或多个事务执行后,原来一致的数据和数据库仍然是一致的.它主 ...
- Spring Boot中声明式数据库事务使用与理解
JDBC的数据库事务 传统JDBC的数据库事务的一个示例如下代码所示,该示例仅为一个insertUser方法的数据库事务过程.可以看到,如果还存在很多其他的数据库事务需要,则需要编写很多类似于如下的代 ...
- 数据库事务(个人理解)
事务的定义 数据库事务:指的是对数据库进行读写的一系列操作序列 系统中的事务:处理一系列业务处理的执行逻辑单元,该单元里的一系列类操作要不全部成功要不全部失败 事务的四大特性 原子性:一次事务要么全部 ...
- 数据库基础之范式理解
关系型数据库三范式,可以理解成: 1.第一范式:每个键值独立 反义:值不独立 2.第二范式:只能依赖主键全部 反义:依赖部分主键 3.第三范式:唯一依赖主键 反义:依赖了其它键,包含依赖主键和其他键+ ...
- 有关数据库事务的一些理解-原生的Java的JDBC事务
2019独角兽企业重金招聘Python工程师标准>>> 1.DriverManager 2.Connection(setAutoCommit.commit.close) 3.1.Pr ...
- 多表关系、数据库设计的范式、数据库的备份和还原、多表查询、事务、DCL(了解)
文章目录 多表关系 数据库设计的范式 数据库的备份和还原 多表查询 多表查询的分类:内连接查询 隐式内连接:使用where条件消除无用数据 显式内连接 多表查询的分类:外连接查询 左外连接 右外连接 ...
- 并发事务正确性的准则 可串行化_从0到1理解数据库事务(上):并发问题与隔离级别...
最近准备写一篇关于Spanner事务的分享,所以先分享一些基础知识,涉及ACID.隔离级别.MVCC.锁,由于太长,只好拆分成上下两篇: 上:并发问题与隔离级别 主要讲事务所要解决的问题.思路,先理解 ...
- 支持串行隔离级别_从0到1理解数据库事务(上):并发问题与隔离级别
最近准备写一篇关于Spanner事务的分享,所以先分享一些基础知识,涉及ACID.隔离级别.MVCC.锁,由于太长,只好拆分成上下两篇: 上:并发问题与隔离级别 主要讲事务所要解决的问题.思路,先理解 ...
- 【数据库】范式理解:1NF,2NF,3NF,BCNF,4NF详析
数据库入门(一)范式理解:1NF,2NF,3NF,BCNF,4NF详析 引言 范式种类 第一范式(1NF) 符合1NF的关系中的每个属性都不可再分 存在问题 第二范式(2NF) 在1NF基础上消除了非 ...
最新文章
- zyUpload+struct2完成文件上传
- python的数字比较好_说说 Python3 中的数字处理
- 爬虫学习round02
- 大数据系列(hadoop) 集群环境搭建二
- Django引入静态文件
- 25 矩阵——QR分解、Householder 矩阵、镜面反射
- 哲学家就餐问题python_哲学家就餐问题的一种Python解决方案
- 什么是Android Instant Apps?
- 知乎80万高赞的window10壁纸
- linux curse库函数,curse
- 跨考不容易,各专业跨考建议注意事项!
- web前端移动端项目测试的几种方法
- android字体不统一,Android下EditText中的字体不统一问题
- html原生轮播图的实现,使用原生js实现点击切换图片(轮播图)效果
- ERP 系统,编译和学习
- Virtual Villagers 攻略
- 计算机辅助地理教学的利和弊,浅谈多媒体在高效地理课堂中的利和弊.doc
- Latex 页面调整常用参数
- iSumsoft PDF Password Refixer 破解pdf的密码,忘记pdf文件的密码了,可以通过该软件进行破解,pdf找回密码
- 小虎电商浏览器:多多打单怎么手工打单