views:

235

answers:

3

Is database normalization still "the thing?"

When I studied databases course we were taught all levels of normalization and were said that we must always do it.

Now, with all the NoSQL movement, it seems normalization is no longer the thing to do?

Please share your thoughts!

Thanks, Boda Cydo.

+4  A: 

NoSql is not a silver bullet: it is simply a technology that may provide a far better fit for for certain circumstances. For relationally-shaped data, the RDBMS is not going away any time soon.

davek
+6  A: 

It depends on what type of application(s) are using the database.

For OLTP apps (principally data entry, with many INSERTs, UPDATEs and DELETES, along with SELECTs), normalized is generally a good thing.

For OLAP and reporting apps, normalization is not helpful. SELECT queries will run much more quickly against a denormalized schema, which could be achieved with views.

You might also find some helpful information in these very popular similar questions:

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?

DOK
Thanks for the insightful response! Just one question - what is OLTP?
bodacydo
OnLine Transaction Processing. It refers to apps where users are performing data entry, or CRUD (create, read, update, delete). In these apps, there are calls to the database to INSERT, UPDATE and DELETE data, in addition to SELECT.Contrast that to OnLine Analytical Processing and reporting, where most of the database interaction is SELECTs, and there are very few INSERTs, UPDATEs or DELETEs.
DOK
A: 

yes, for a transactional system always normalise, or chances are you're going to have major headaches further down the road. For a database that will be used for reporting/OLAP denormalising the schema can be very helpful.

Si Downes