数据库设计师 Alexey Makotkin 正呼吁对关系数据库理论中第五范式(5NF)的教学方式进行彻底改革。他在 kb.databasedesignbook.com 发表的文章中声称,包括维基百科在内的现有教育资源所使用的示例过于牵强且缺乏逻辑,无法帮助开发者真正理解这一概念。
Makhotkin 认为,数据库范式化过程中的“终极难题”往往被呈现得过于复杂。他指出,围绕 5NF 的困惑完全是“人为制造”的,其根源在于未能使用具有实际业务驱动力的真实案例。
在批评中,Makhotkin 针对维基百科上那个涉及推销员、品牌和产品类型的经典案例提出了质疑。他指出,在那个场景下,为了证明拆分表结构的合理性而采用的逻辑,在现实业务应用中根本站不住脚。
据消息来源,维基百科的模型依赖于这样一条规则:如果一名销售人员已经代理了某个品牌的某种产品类型,那么他必须代理其所代表的所有品牌中的同类产品。Makhotkin 指出:“这在业务逻辑上根本说不通,正因如此,你无法通过这个例子理解 5NF。”
他还批评了维基百科词条中的措辞,特别是其中声称销售人员“无法拒绝”某些产品的说法。Makhotkin 认为,这种规则会阻碍设计师处理正常的业务场景,例如销售人员可能只想选择销售某件产品的特定品牌。
更具逻辑性的设计方法
与其依赖这些令人困惑的场景,Makhotkin 提出了一套更结构化的建表设计流程。他建议工程师应当从业务需求出发,进而构建逻辑模型,最后再设计物理表结构。
他的研究还考察了其他几种常见的教学模型,例如“冰淇淋”模式和“音乐家”星型模式。他认为,通过遵循教科书式的策略,在完善的逻辑模型中保持范式化,设计人员在创建高效的模式时,实际上可能并不需要显式地调用 5NF。
通过关注“AB-BC-AC”三角形或“ABC+D”星型等模式,Makhotkin 相信开发者可以避开传统学术案例中那些构造拙劣的陷阱。