面试 数据库
2020-03-30 18:55
591 查看
面试 数据库
数据库事务和事务隔离
事务是指作为单个逻辑工作单元执行的一系列操作,可以被看作一个单元的一系列SQL语句的集合。要么完全地执行,要么完全地不执行。如果不对数据库进行并发控制,可能会产生 脏读、非重复读、幻像读、丢失修改的异常情况。
同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。
数据库的三大范式
- 属性不可分:要求数据库表的每一列都是不可分割的原子数据项。
- 确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关
- 确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
数据库事物的一致性
1)原子性(Atomicity)
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,[删删删]因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。
2)一致性(Consistency)
一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。
拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。
3)隔离性(Isolation)
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
4)持久性(Durability)
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
索引
数据库索引是为了增加查询速度而对表字段附加的一种标识,是对数据库表中一列或多列的值进行排序的一种结构,能明显增加查询的速度。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 面试汇总:数据库建立索引为什么为加快查询速度?
- 数据库基础(面试常见题)
- 面试复习重点——数据结构、操作系统、计算机网络、数据库。
- 关于数据库方面的面试技巧:如何从建表展现自己能力
- java面试之数据库面试知识点
- Java面试中常问的数据库方面问题
- 数据库面试常问的一些基本概念
- 程序员常见面试之 数据库 知识点小结(二)
- 【java面试系列之数据库篇】数据库存储引擎、索引、事务、视图、优化
- 走向面试之数据库基础:二、SQL进阶之case、子查询、分页、join与视图
- java面试-数据库三大范式
- 数据库经典面试问题-leetcode习题
- 数据库面试题目(mysql、nosql)
- .NET面试准备之数据库备份
- 24 个必须掌握的数据库面试问题!
- 数据库常见笔试面试问题
- 面试知识,数据库索引优化
- Mysql优化技巧(数据库设计、命名规范、索引优化、面试、SQL面试,Java面试)
- 数据库面试常问的一些基本概念
- Android -- 面试 -- 数据库升级策略