3

Mostly if you see the internet only up to 3rd or 4th normal forms are discussed, if you read there are up to 7 normal forms so why aren't they discussed by people on the internet you hardly find any example related to them whether on YouTube or any any other place.

philipxy
  • 14,867
  • 6
  • 39
  • 83
Tayyab Kazmi
  • 376
  • 4
  • 19

1 Answers1

3

Mostly a combination of 1. ignorance of benefits and 2. limitations of DBMSs.

One could blame the limitations on the ignorance--of designers & implementers but maybe mostly of users, leading to no market, leading to limitations. Ignorance includes not just the benefits of normalization but of integrity constraints.

Normalization to higher NFs replaces a base table by components that are projections of it that natural join back to it. Put another way, normalization replaces a table that has a row membership criterion of the form ... AND ... by a table per .... Problem ANDs tend to be intuitively obvious so initial table designs are mostly already in 5NF.

All base tables can be normalized to 5NF. But 5NF designs can require checking that natural joining components & taking projections gives back the components. Sometimes that requires joining but it can involve less. Received wisdom that 3NF is adequate ignorantly wrongly assumes 3NF relations are only ever so slightly away from 5NF.

The DBMS limitation issue is that declarative constraints (or SQL triggers & atomicity) necessary for 5NF integrity are not usually easily available. But even so, if people only want to use the declarative constraints typically available (SQL PK, UNIQUE, NOT NULL, FK, CHECK & indexes) then they ought to normalize to 5NF and then consciously denormalize. In denormalizing they choose to avoid the cost of maintaining 5NF. But for proper integrity their code then has to pay the cost of dealing with the consequent update anomalies. Arguments against 5NF criticize the former cost but ignore the latter cost.

PS Normal forms are just different conditions that have been found with helpful properties. Also different axioms and algorithms. The normal forms on the continuum from 1NF to 6NF are those dealing with problematic FDs (functional dependencies) and JDs (join dependencies). They can be ordered so that if a relation value or variable satisfies a form then it satisfies the forms before but not necessarily after. Currently: 1NF (Codd 1970), 2NF (Codd 1971), 3NF (Codd 1971), EKNF (Zaniolo 1982), BCNF (Codd 1974), 4NF (Fagin 1977), ETNF (Darwen, Date, Fagin 2012), RFNF aka KCNF (Vincent 1995), SKNF (Vincent 1997), 5NF aka PJ/NF (Fagin 1979), Overstrong PJ/NF (Fagin 1979), 6NF (Date, Darwen, Lorentzos 2003).

philipxy
  • 14,867
  • 6
  • 39
  • 83
  • Thanks for the exhaustive list of normal forms. I was not aware of overstrong PJ/NF, in which paper is it defined? To my knowledge, Edgar Codd defined 1NF (1970), 2NF (1971), 3NF (1971), BCNF (1974), Ronald Fagin defined 4NF (1977), 5NF (1979), Carlo Zaniolo defined EKNF (1982), Millist Vincent defined RFNF (1995) and SKNF (1997), and Christoper Date defined 6NF (2003). – Géry Ogam Jul 13 '21 at 10:58
  • 1
    Overstrong PJ/NF is from Fagin's PJ/NF paper. You left out ETNF which is Darwen, Fagin & Date (2012); the paper called it RFNF except in a footnote added on publication saying they just realized that RFNF was taken & saying to use ETNF instead. ["1NF" has many meanings.](https://stackoverflow.com/a/40640962/3404097) All involve replacing some table with parameterized structure by some table(s) with a column per parameter. Codd's original was, no relation-valued attributes. But it turns out that's not so important. And all the 1NFs are orthogonal to higher NFs. (Still important to good design.) – philipxy Jul 14 '21 at 13:37
  • You are right about Overstrong PJ/NF. My bad, I forgot to list ETNF. But I have checked Darwen, Fagin, and Date’s paper and they do call it ETNF everywhere (abstract, body, and conclusion). RFNF is actually the name they give to Vincent’s KCNF. Yes I meant 1NF in Codd’s original sense i.e. without relation-valued attributes, not the other wrong senses that you list in your other answer (3, 4, 5, 6). ‘But it turns out that's not so important.’ Why is 1NF not so important? – Géry Ogam Jul 14 '21 at 18:59
  • "no relation-valued attributes" is "not so important" because relation-valued attributes don't turn out to be a problem. (See Date's justification for relation-valued attributes & for considering "is in 1NF" to be "is a relation".) A RFNF/ETNF footnote is in Date's 2012 normalization book & may have been in some preprint or early publication of the paper. Vincent defines both KCNF & RFNF then shows they describe the same condition. – philipxy Jul 15 '21 at 06:07
  • Do you have a link to Date’s justification? – Géry Ogam Jul 15 '21 at 08:47