数据库面试必备:事务与并发一致性解析

需积分: 14 3 下载量 58 浏览量 更新于2024-08-04 收藏 1.09MB PDF 举报
"数据库面试常用问题整理,涵盖事务、并发一致性问题、封锁、关系数据库设计理论、ER图和索引等核心知识点。" 在数据库领域,面试中常常会涉及一些基础且重要的概念,这些概念对于理解和设计高效、可靠的数据库系统至关重要。以下是对这些关键知识点的详细解释: 1. **事务**: - 事务是一组逻辑操作,它们被视为一个整体,必须全部成功或全部失败。事务的四个特性(ACID)是原子性、一致性、隔离性和持久性。 - **原子性(Atomicity)**:事务中的每个操作要么全部完成,要么全部不完成。如果事务在执行过程中出错,可以通过回滚日志撤销已完成的操作。 - **一致性(Consistency)**:事务执行前后,数据库的状态必须保持一致,所有事务对数据的读取结果应相同。 - **隔离性(Isolation)**:事务之间是相互隔离的,一个事务的修改在提交前对其他事务不可见。 - **持久性(Durability)**:一旦事务提交,其修改将永久保存,即使系统崩溃也能恢复。 2. **并发一致性问题**: - **丢失更新**:两个事务同时修改同一数据,后提交的事务覆盖了前者的修改。 - **读脏数据**:事务A修改数据后未提交,事务B读取到这个未提交的修改,如果事务A回滚,B的读取结果就会无效。 - **不可重复读**:事务A读取数据,事务B在此期间修改该数据,当A再次读取时,数据已改变。 - **幻影读**:事务A读取一组数据,事务B在该范围内插入新数据,A再次读取时,数据集有所增加。 解决并发一致性问题的方法包括不同级别的事务隔离级别,如读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。更高级别的隔离级别可以减少或消除上述问题,但可能会降低并发性能。 3. **封锁**: - 封锁是解决并发一致性问题的一种机制,通过锁定数据项防止并发冲突。有多种封锁类型,如共享锁(读锁)和排他锁(写锁)。 4. **关系数据库设计理论**: - 这涉及到数据库的规范化,如第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及BCNF(博科斯范式),旨在减少数据冗余和提高数据一致性。 5. **ER图(实体-关系图)**: - ER图用于表示实体、属性和实体之间的关系,是数据库设计阶段的重要工具,有助于理解数据模型和关系结构。 6. **索引**: - 索引是数据库为了加快查询速度而创建的数据结构,类似于书籍的目录。常见的索引类型有B树索引、哈希索引和全文索引等。 理解并掌握这些基本概念,对于应对数据库相关的面试问题以及实际工作中设计和优化数据库都是非常关键的。在面试中,深入讨论这些话题不仅可以展示你对数据库原理的理解,也能体现你解决问题的能力。