数据库事务

数据库事务

开发中注解使用spring的import org.springframework.transaction.annotation.Transactional;
对于数据库事务的理解:将一系列的sql执行语句放在一起,确保所有的语句同时执行成功。如若执行过程存在失败,数据库会处在一个混乱的状态;
Ex:mooc数据库中,一个业务是学生购买课程,购买课程的业务步骤包括更新teacher表,记录老师的收入,同时在student_course表中加入一条购买记录,更新student表的剩余余额。以上的全部业务步骤都需要执行。

事务特性
Atomicity(原子性):最小工作单位,全部提交或者全部失败
Consistency(一致性):从一个一致性状态转换到另一个一致性状态,执行前后必须处于一致性状态
Isolation(隔离性):事务所做的修改在提交之前对其他的事务时不可见的 数据库提供了多种隔离级别
Durability(持久性):事务一旦提交,修改永久保存在数据库

事务的隔离性
脏读:一个事务处理过程里读取了另一个未提交的事务中的数据
不可重复读:对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了
虚读(幻读):事务非独立运行时发生的一种现象

不可重复读和幻读的区别:不可重复读是读取到了另一事务的更新;而幻读是读取到了另一事务的插入(MySQL中无法测试到幻读);

四种隔离级别
① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
② Repeatable read (可重复读):可避免脏读、不可重复读的发生。(MySQL数据库默认)
③ Read committed (读已提交):可避免脏读的发生。(Oracle数据库默认)
④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。
级别越低,性能越好。

事务并发执行 数据库需要同步

Spring框架执行一个数据库事务时,
一配置数据源DataSource,(配置语句定义了数据库的URL地址,访问账户及访问密码)
二声明事务管理TransactionManager类,需要传入之前已声明的DataSource数据源
三定义可以执行的事务的DAO类

Begin
Rollback
commit

数据库仓库

数据仓库主题:在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念,每一个主题基本对应一个宏观的分析领域。从逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。“销售分析”就是一个分析领域,因此这个数据仓库应用的主题就是“销售分析”。

数据仓库主题域:是对某个主题进行分析后确定的主题的边界。大多数数据仓库的设计过程中都有一个主题域的选择过程,其选择由最终用户和数据仓库的设计人员共同完成。

ETL(数据仓库技术)用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值