Saj*_*Saj 12 database database-administration
在面试中,我会问一些基本的数据库设计问题。在数据库设计方面,规范化(何时-为什么)是我关注的问题之一。我网站上涉及同步服务器的一些场景以及它们考虑相关问题的内容/原因/方式;安全问题等等。
谢谢你。
Bre*_*zar 15
这是我针对高级数据库管理员的 10 大面试问题,这是Tom LaRock 针对初级 DBA 的 10 大问题。
我注意到其他人建议候选人应该对服务器进行故障排除。如果采用这种方法,请使用带有快照的虚拟机。以特定方式设置具有某些配置或性能问题的服务器,拍摄它的快照,然后在每次采访后您可以回滚到快照。
如果您这样做,请将任务限制为您实际让他们执行的任务类型。不要问生产 DBA 关于规范化,也不要问开发 DBA 为什么一个节点不会加入集群。
生产 DBA 任务可能是:
开发任务可能是:
使用 AdventureWorks 架构。很可能他们最近没有玩过它,但至少很容易解释。
小智 9
在我的软件团队中,作为面试的一部分,我们测试了对数据库的理解。
我们展示了一个非常糟糕的设计(想想 CRM 类型的应用程序),并要求他们在大约 30 分钟的思考时间后改进设计。
然后我们会根据他们谈论的内容向他们提出更多问题。
我们正在探索了解
我们作为一个团队,然后考虑了我们认为对这些类型问题的初级/高级/架构师类型的答案。
所以对于 - 性能 v 规范化 -
会首先看到问题并能够讨论原因(初级)
会推荐 4/5 NF,但了解性能问题,他们是否会非规范化并了解如何阐明问题(高级)
他们会推荐不同类型的设计,例如 Star Schema 并讨论多层次的含义吗(建筑师)
会看到需要引用完整性来强制执行数据关系并能够讨论这个问题,但不会看到关键选择和设计的问题(初级)
将讨论与数据量和数据类型有关的问题 v 在数据中寻找自然键,并能够讨论他们为什么要查看这些 - 以及随后的参照完整性问题(高级)
可以争论与 Keys 和 Integrity 有关的各种观点,并能够为快速设计提出各种实际模型(架构师)
你得到了图片。
如果你想让我添加更多,然后发表评论,并详细说明我们对其余部分的看法,但只包括前两个,让你了解我们的想法。
关键是要考虑 1. 问题 2. 我们作为一个团队已经考虑过我们认为对这些类型问题的初级/高级/架构师类型的答案。
我强调团队作为候选人,团队必须对进入的人的技能充满信心,如果他们提出了他们认为不同级别的答案,那么进入的人有望更好地适应团队。它还使团队能够影响候选人的选择。他们还提名一个人参加问题小组。对团队的支持有很大帮助。
您可以构建一个虚构的数据库,其中存在一些规范化问题和潜在的安全故障,但总体上看起来非常典型,就像员工数据库一样。然后,您可以先向受访者提出一些简单的问题,例如他们将如何通过联接获取数据库中的某些数据,然后逐步回答有关规范化和安全问题的更难的问题。