技术面试时,总是不知道如何正确地回答问题?
自己平时很努力地学习,但是一上场脑子就一片空白?
觉得自己回答得还可以,但是技术面试却没有通过?
下面以数据库技术面试为背景,来看看技术面试的套路和应答策略。
技术面试问题大致分为基础类、易混淆类和疑难类。
提问目的:
- 考察面试者对基本概念的掌握
- 一般作为开场热身问题,,问一两个问题后进入下一阶段
应答策略:
- 用自己的语言,尽可能完整地描述概念
- 可以加入自己的理解,如果能举例说明加分
- 先扣题,直接回答概念,相当于回答what
- 然后再从1~2个方面扩展,可以从why/where/who/when/how几个方面做扩展
问题举例
Q: 什么是数据库和数据库管理系统?
A:
回答举例:
上边的内容可以参考:
【如此简单!数据库入门系列】之初识数据库 – 数据库基本概念
【如此简单!数据库入门系列】之学霸数据库 – 数据库基本原理
大家可以按照这个思路试着回答以下问题:
Q: 如何理解字段、记录和表?
Q: 事务是什么?请简述ACID属性。
Q: 如何理解DML、DCL和DDL?
Q: 什么是主键和外键?有什么作用?
Q: 什么是索引?有什么作用?
Q: 什么是存储过程?
Q: 什么是约束?有什么作用?
问题总结
要想回答好此类问题,需要大家在平时学习基本概念的时候,多用自己的话复述,多进行发散思考。
提问目的:
- 考察面试者对易混淆概念的掌握情况
- 区分知识点是真的理解,还是死记硬背
应答策略:
- 先分别解释基本概念
- 再回答相同点和不同点
- 最后举例说明,或者讲自己遇到的问题和解决思路,可加分
问题举例
回答举例:
- (概念)主键是指…
- (概念)唯一约束是指…
- (相同点)虽然两者都确保了数据的唯一性
- (不同点)但主键不仅要求唯一,还要求非空,而唯一约束可以允许空值
- (扩展,举例)在XX项目中遇到一个问题,当时将xx列作为唯一约束而不是主键,因为…
类似问题还有:
Q: 怎么理解外键和参照完整性?有什么区别?
Q: NULL、零和空字符串分别代表什么?
Q: 内连接和外连接有什么区别?
Q: 索引和约束的作用有什么不同?
问题总结
要想回答好此类问题,平时不仅要掌握单个知识点,还要对有关联的两个知识点进行对比分析。
提问目的:
- 通常以连环问题的形式出现,由浅入深
- 考察面试者对疑难问题的掌握程度
- 判定面试者专业知识水平
- 考察面试者解决问题能力
应答策略:
- 紧扣题目,适当发散
- 请求面试官协助
- 加入自己的理解,可加分
- 举例说明,或结合自己的项目讲解,可加分
- 不会时,可以讲解决问题的大致思路,比如,如何搜集资料,如何寻求帮助以及如何总结提高
问题举例
回答举例:
- (扣题)简述原子性(Atomicity)、一致性(Consistency)和隔离性(Isolation)和持久性(Durability)基本概念
- (扩展,共性与个性)不同的数据库实现了不同的级别,但大多数遵循四种隔离级别(ANSI SQL标准)
- (扣题,级别顺序)隔离级别由低到高:读未提交(Read Uncommitted)-> 读已提交(Read Committed)-> 可重复读(Repeatable Read)-> 串行化(Serializable)
- (扩展,级别影响)隔离级别越高,对并发性能影响越大,更高的隔离级别意味着更多的锁和更少的并行执行
- (扩展,选择原则)选择适当的隔离级别时,需要在数据一致性和系统性能之间进行权衡
- (扣题)读未提交不推荐使用,除非为了追求性能而能容忍脏读问题,例如XXX
- (扣题)读已提交适用于性能高但一致性不高的场景,能容忍不可重复读和幻读问题,例如XXX
- (扣题)可重复读适用于对一致性要求更高的场景,解决了不可重复读问题,但仍存在幻读问题,例如XXX
- (扣题)串行化适用于对一致性有严格要求的场景,降低了性能要求,保证不会出现任何一致性问题
…
再比如:
- (扣题)数据库范式是数据库设计的一种规范,用于衡量表的结构合理性
- (扣题)第一范式(1NF): 要求表中每列都是不可分割的最小单元,核心原则是消除重复
- (扣题)第二范式(2NF): 在1NF基础上,要求表中的所有非主键列完全依赖于主键,注意是完全依赖,而不是依赖于主键的一部分
- (扣题)第三范式(3NF): 在2NF基础上,要求表中的所有非主键列只依赖于主键,不依赖于其他非主键列
- (扣题+扩展)第一范式是数据库设计的基础,几乎所有的数据库设计场景都应遵循第一范式,例如在线商店,产品表、客户表和订单表的每列都是不可分割的
- (扣题)在线商店也满足第二范式,产品表、客户表和订单表都有自己的主键,避免数据冗余和更新异常
- (扣题)第三范式的例子有,大型金融系统,通常需要严格的一致性和完整性
- (扩展,总结规律)由此可见,一致性和完整性要求越高的场景,约需要遵循更高的范式
类似的问题还有:
Q: SQL中的Join操作有什么用途?分别有哪几种Join类型?分别适用于哪些场景?请分别举例说明。(如果是面试数据库内核开发,还可以追问))讲讲Join的基本原理 …
Q: 什么是索引?有什么作用?还有哪些数据库优化方法?…
问题总结
要想回答好此类问题,在掌握单个知识点基础上,要从纵向和横向挖掘多个知识点之间的关系。
为什么不把答案都写出来?
答案大家可以自己去想,思考答案的过程本身就是学习的过程。更重要的是掌握方法!
为什么不把问题列全?
其实,自己出题也是一种有效的学习方式,还记得这里提到的问答题笔记吗?
最后,以一张图总结这三类问题的关系。基础类对应点,易混类对应线,疑难类对应面。
到此这篇数据库基础知识面试(数据库基础知识面试常见问题)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!如果喜欢这篇文章,请不要忘记关注、点赞和收藏哦!你的鼓励将是我创作的最大动力!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/81197.html