当前位置:   article > 正文

C++面试题汇总 数据库_c++软件开发工程师面试关于数据库部分的

c++软件开发工程师面试关于数据库部分的

数据库基础

数据库索引

  1. 数据库索引对数据库表一列或多列的值进行排序的一种结构, 是为了增加查询速度而对表字段附加的一种标识
  2. DB在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。
  3. 如果我们对某一字段增加索引,查询时就会先去索引列表一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增加查询的速度。

数据库事务

  • 数据库事务(Database Transaction),是指对单个逻辑工作单元执行的一系列操作要么完全地执行,要么完全地不执行
  • 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源
  • (操作) 通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠
  • (事务) 一个逻辑工作单元要成为事务,必须满足所谓的 ACID(原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability))属性。事务是数据库运行中的逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。

数据库事务隔离

  • 隔离性(Isolation)
    • 隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

      • 即要达到这么一种效果:对于任意两个并发的事务T1T2,在事务T1看来,
        • T2要么在T1开始之前就已经结束,
        • 要么在T1结束之后才开始,
        • 这样每个事务都感觉不到有其他事务在并发地执行。
    • 多个并发事务相互隔离,即一个事务不应该影响其它事务运行效果。

      • 这指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。
      • 由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。
    • 不同的隔离级别:

      • Read Uncommitted(读取未提交内容):最低的隔离级别,什么都不需要做,一个事务可以读到另一个事务未提交的结果。所有的并发事务问题都会发生。
      • Read Committed(读取提交内容):只有在事务提交后,其更新结果才会被其他事务看见。可以解决脏读问题
      • Repeated Read(可重复读):在一个事务中,对于同一份数据的读取结果总是相同的,无论是否有其他事务对这份数据进行操作,以及这个事务是否提交。可以解决脏读、不可重复读
      • Serialization(可串行化):事务串行化执行,隔离级别最高,牺牲了系统的并发性可以解决并发事务的所有问题

inner join, left join, right join,full join

  • inner join(内连接): 只返回两个表中联结字段相等的行
  • left join(左联接): 返回包括左表中的所有记录右表中联结字段相等的记录
  • right join(右联接): 返回包括右表中的所有记录左表中联结字段相等的记录
  • full join(外连接): 返回两个表中的行

数据库事务的一致性

  • 事务(Transaction)是由 一系列对系统中数据进行访问与更新的操作 所组成的一个程序执行逻辑单元

  • 事务是DBMS中最基础的单位,它不可分割。


  • 事务具有4个基本特征(ACID),分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration),简称ACID

  • 原子性(Atomicity)

    • 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响
  • 一致性(Consistency)

    • 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态
    • 拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管AB之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。
  • 隔离性(Isolation)

    • 隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离
      • 即要达到这么一种效果:对于任意两个并发的事务T1T2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/cp456/article/detail/61049
推荐阅读
相关标签
  

闽ICP备14008679号