答案 0 :(得分:11)
这取决于使用数据库的应用程序类型。
对于OLTP应用程序(主要是数据输入,包含许多INSERT,UPDATE和DELETES以及SELECT),规范化通常是一件好事。
对于OLAP和报告应用,规范化没有帮助。 SELECT查询将针对非规范化模式运行得更快,这可以通过视图实现。
您可能还会在这些非常受欢迎的类似问题中找到一些有用的信息:
Should I normalize my DB or not?
In terms of databases, is “Normalize for correctness, denormalize for performance” a right mantra?
What is the resource impact from normalizing a database?
答案 1 :(得分:6)
NoSQL不是灵丹妙药:它只是一种技术,可以更好地适应某些情况。对于关系形状的数据,RDBMS不会很快消失。
答案 2 :(得分:2)
是的,对于交易系统总是正常化,或者你可能会遇到重大问题。对于将用于报告/ OLAP非规范化的数据库,该模式可能非常有用。
答案 3 :(得分:1)
经验法则“JOIN的处理能力昂贵”。我使用的是为大型或小型项目创建数据库。包含用户名,地址等数据的表应该始终进行规范化,因为最近访问的是如何使用所教授的示例进行教学。现在近年来,web2.0数据,应用程序,移动服务等实际上已经采用了不同类型的数据,其中存储器代码丰富甚至更低,它可以节省处理能力以使它们全部保持在同一“表”上正常化。