在IT领域,数据库是至关重要的组成部分,特别是在存储、管理和检索数据方面。对于求职者来说,掌握数据库知识并能应对各种面试题是成功进入这个领域的关键。以下是一些关于"数据库面试题"的常见知识点,涵盖了数据库的基础概念、设计、优化以及SQL语言等方面。
一、数据库基础
1. 数据库定义:数据库是一个有组织地存储数据的系统,提供数据的创建、查询、更新和删除等操作,确保数据的一致性和安全性。
2. 关系型数据库:如MySQL、Oracle、SQL Server等,基于关系模型,使用表格来存储数据,支持SQL(结构化查询语言)进行操作。
3. 非关系型数据库(NoSQL):如MongoDB、Redis、Cassandra,适用于大数据、分布式和高并发场景,支持键值对、文档型、列族和图形等多种数据模型。
二、数据库设计
1. 第三范式(3NF):在关系型数据库设计中,确保数据表没有冗余和依赖,提高数据一致性。
2. 数据库范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)和第四范式(4NF),用于指导数据库表的规范化设计。
3. ER模型:实体-关系模型,用于数据库逻辑设计,表示实体、属性和关系。
三、数据库优化
1. 索引优化:通过创建索引来加快查询速度,但会占用额外的存储空间,增加写操作的复杂性。
2. 查询优化:合理使用JOIN、WHERE子句,避免全表扫描,使用EXPLAIN分析查询执行计划。
3. 表分区:将大表分为多个小表,分散I/O负载,提高查询效率。
四、SQL语言
1. DDL(Data Definition Language):用于定义数据库结构,如CREATE TABLE、ALTER TABLE、DROP TABLE等。
2. DML(Data Manipulation Language):用于操作数据,如INSERT、UPDATE、DELETE等。
3. DCL(Data Control Language):用于控制数据库访问权限,如GRANT、REVOKE等。
4. SQL查询语句:SELECT用于查询数据,支持WHERE子句过滤条件,GROUP BY进行分组,HAVING处理聚合后的条件,ORDER BY进行排序,LIMIT限制返回结果的数量。
五、数据库事务与并发控制
1. 事务:ACID特性,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
2. 锁机制:共享锁(读锁)、排他锁(写锁)用于控制并发操作。
3. 死锁:两个或更多事务相互等待对方释放资源导致的僵局,通过死锁检测和恢复策略解决。
六、数据库备份与恢复
1. 完全备份:备份整个数据库,恢复速度快,但备份和恢复时间较长。
2. 增量备份:只备份上次备份以来发生变化的数据,节省空间,恢复过程可能复杂。
3. 日志备份:备份事务日志,用于事务恢复和时间点恢复。
7. 分布式数据库
1. 分片:将数据分布在多个节点上,提高读写性能和容错性。
2. 数据复制:多个副本确保高可用性和故障切换。
3. CAP原理:一致性、可用性和分区容忍性,分布式数据库通常只能满足其中两项。
以上知识点涵盖了数据库面试中的常见问题,理解并熟练掌握这些概念和技术,将有助于你在面试中脱颖而出。