3 ms·
I've skimmed https://en.wikipedia.org/wiki/Database_normalization https://en.wikipedia.org/wiki/Database_normalization before and I'm trying to reconcile your c
by gugagore 6y ago
I've skimmed https://en.wikipedia.org/wiki/Database_normalization https://en.wikipedia.org/wiki/Database_normalization before and I'm trying to reconcile your clear explanation with what is there.
> Informally, a relational database relation is often described as "normalized" if it meets third normal form.
So then I look at https://en.wikipedia.org/wiki/Third_normal_form https://en.wikipedia.org/wiki/Third_normal_form , which has this fun:
> An approximation of Codd's definition of 3NF, paralleling the traditional pledge to give true evidence in a court of law, was given by Bill Kent: "[every] non-key [attribute] must provide a fact about the key, the whole key, and nothing but the key".[7] A common variation supplements this definition with the oath "so help me Codd".
I don't see how that relates to your normalization. It's possible the simple case of booleans was just for illustration, but if not, then it suggests to me that there should never be any boolean column in the normalized schema, since you can have an additional table containing the keys corresponding to e.g. `true` values.
Could anyone clarify?
- ben509 6y agoSo 2NF and 3NF are rules that aim to eliminate data redundancies. That's Kent's point: everything is a fact about a key. I'm talking about a more basic idea of expressing structures that are accessible through relational operations, so joins, intersections, unions, etc. That's known as 1NF[1] and, as you might expect, it's a pre-requisite to 2NF and 3NF. [1]: https://en.wikipedia.org/wiki/First_normal_form https://en.wikipedia.org/wiki/First_normal_form