数据库原理

Posted ruowei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库原理相关的知识,希望对你有一定的参考价值。

一、数据库三大范式:

  1、列不可再分。
  2、属性依赖于主键。
  3、属性直接依赖于主键,不依赖其他属性。

二、数据库事务的四大特性:(ACID)
  1、原子性:一个事务的所有操作要么全部完成,要么全部失败回滚。
  2、一致性:事务提交前后,数据库整体保持一致性状态。如A、B之间转账后,总金额不变。
  3、隔离性:并发事务间不能互相干扰,应保持隔离。
  4、持久性:事务成功提交后,对数据库的改变应该是永久性的。

三、事务不隔离产生的问题:
  1、脏读:一个事务读取了另一个事务还没有提交的数据。
  2、不可重复读:一个事务读取时,另一个事务修改并提交了数据。(update、delete)
  3、幻读:一个事务读取时,另一个事务新增并提交了数据。(insert)

四、数据库事务隔离级别:
  1、Serializable(串行化):可避免脏读、不可重复读、幻读。
  2、Repeatable read(可重复读):可避免脏读、不可重复读。
  3、Read committed(读已提交):可避免脏读。
  4、Read uncommitted(读未提交):最低级别,无法保证。

mysql默认事务隔离级别为:Repeatable read(可重复读)

sqlserver默认事务隔离级别为:Read committed(读已提交)

spring的@Transaction默认使用数据库的隔离级别

 

以上是关于数据库原理的主要内容,如果未能解决你的问题,请参考以下文章

JDBC的工作原理是啥?

Vue的双向数据绑定原理

连接池的基本原理? 以及使用连接池的好处?

大数据技术之HBase原理分析

Spring事务传播原理及数据库事务操作原理

Spring事务传播原理及数据库事务操作原理