开发者

What is the level of database normalization that is "practically" enough?

I am designing a database and I reached (as per my little knowledge) the Third Normal Form (3NF)

Some of开发者_如何学JAVA my colleagues told me about a Sixth Normal Form!! I was wondering how to know if the level of normalization of database is enough.


In my experience, it's pretty rare to hear anyone talk about going beyond 3NF for real-world production applications. That should be sufficient for nearly all cases.


Normally 3NF good enough, but it really depends on your requirements. Be practical in your design.


I usually optimize my DBs up to 3 NF. Usually, it is enough.


Practically - it depends on your needs. For small and quick applications, you are happy with 1NF.. even 0NF, since you don't care.

As much as application grows, you need datastructure optimizations.

If you are trying to-do some upfront desing keep 3NF as major.


Aim to be in 5NF unless you find good reasons to deviate from that. 6NF should only be applied in special cases because in most cases in most DBMSs you won't be able to implement all important dependencies under 6NF.


I would provide either of two answers to that question:

  1. That depends on the size of your project.
  2. For the most part, with 3NF you are okay, and it's enough.

Moving beyond, would mean that your project is more complex and/or larger, and may or may not lead to the need of de-normalize your DB.


Just for reference, here's a list of possible forms you may reach:

  • Unnormalized form or UNF
  • First Normal Form or 1NF
  • Second Normal Form or 2NF
  • Third Normal Form or 3NF
  • Elementary key normal form or EKNF
  • Boyce Codd Normal Form or BCNF
  • Fourth normal form or 4NF
  • Essential tuple normal form or ETNF
  • Fifth normal form or 5NF
  • Domain-key normal form or DKNF
  • Sixth normal form or 6NF

Source: https://www.geeksforgeeks.org/types-of-normal-forms-in-dbms/

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜