由于我在 1-2 年的经验中,我应该对这个面试问题说些什么......
规范化的类型有哪些?我应该说所有的正常形式还是什么?
面试的问题太宽泛了——它可能会填满一本小书。我只想记住关于前 3 个范式的几个关键点(4 个和 5 个用于额外的学分)。 这是对它们的一些不错的总结。
如果我在采访你并提出这个问题,我最想听听大多数 db 设计者至少为 3NF 努力,但由于 X 原因应该能够偏离这一点。知道何时偏离规范化以及为什么比了解定义更重要和更有说服力。
了解范式的正式定义并能够给出一些真实世界的例子将是这个问题的一个很好的答案。
FWIW,我认为这是一个愚蠢的问题,除非直接从一所大学面试人,那里除了理论之外没有太多要求。他们在教授规范化时教给我的第一件事是“我们现在将解释这些 [规范化] 步骤,但请记住,一旦你理解了它,你就不会以规范形式思考,因为 3NF 会自然而然地出现”。他们是对的。
更好的面试问题是“这个模式有什么问题?” 和“为以下数据设计一个模式......”。因为它们展示了对基本原理的应用和实践知识。