数据库规范化仍然是必要的吗?

时间:2010-01-31 19:49:58

标签: database database-normalization

数据库规范化仍然是“那件事吗?”

当我在数据库课程中学习时,我们被教授了所有级别的规范化,并且我们必须始终这样做。

现在,随着所有NoSQL运动,似乎规范化不再是要做的事情了吗?

4 个答案:

答案 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?

How to convince someone to normalize a database?

Is it really better to use normalized tables?

答案 1 :(得分:6)

NoSQL不是灵丹妙药:它只是一种技术,可以更好地适应某些情况。对于关系形状的数据,RDBMS不会很快消失。

答案 2 :(得分:2)

是的,对于交易系统总是正常化,或者你可能会遇到重大问题。对于将用于报告/ OLAP非规范化的数据库,该模式可能非常有用。

答案 3 :(得分:1)

经验法则“JOIN的处理能力昂贵”。我使用的是为大型或小型项目创建数据库。包含用户名,地址等数据的表应该始终进行规范化,因为最近访问的是如何使用所教授的示例进行教学。现在近年来,web2.0数据,应用程序,移动服务等实际上已经采用了不同类型的数据,其中存储器代码丰富甚至更低,它可以节省处理能力以使它们全部保持在同一“表”上正常化。