Battling to determine the variations together. I understand we are saying 2NF is "the entire key" and 3NF "nothing the answerInch.
Referencing this excellent answer by Smashery: Can someone please give an example of 1NF, 2NF and 3NF in plain english?
The example employed for 3NF is exactly like 2NF - its a area which is founded on just one key attribute. How's the example for 3NF not the same as the main one for 2NF?
Guess that some relation satisifies a non-trivial functional dependency from the form A->B, where B is really a nonprime attribute.
2NF is violated if your isn't a superkey but is really a proper subset of the candidate key
3NF is violated if your isn't a superkey
You've spotted the 2NF requirement is simply a special situation (although not really stand out) from the 3NF requirement. 2NF by itself is not so important. The key problem is whether or not A is really a superkey, not whether A just is actually some a part of an applicant key.
Because you request very specific question a good answer for existing so question here's a reason of this (and essentially I'll say what dportas already stated in the answer, however in more words).
The good examples of design that's not in 2NF and never in 3NF won't be the same.
Yes, the dependency in the two cases is on one area.
However, in non 2NF example:
- dependency is around the area of the primary key
during non 3NF example (that is in 2NF):
- dependency is on the area that's not an element of the primary key (as well as observe that for the reason that example it does satisfy 2NF this really is to exhibit that even when you look for 2NF it's also wise to look for 3NF)
In the two cases to normalize you'd create additional table which may not exhibit update anomalies (illustration of update anomaly: in 2NF example, what goes on should you update
IT101|2009-2, although not for
IT101|2009-1? You receive sporadic=meaningless=useless data).
So, should you commit to memory the important thing, the entire key and absolutely nothing the answer, which provides coverage for both 2NF and 3NF, that will work for you personally used when normalizing. The excellence between 2NF and 3NF might appear subtle for you (question if within the additional dependency the attribute(s) which the information depends are members of candidate key or otherwise) - and, well, it's - so just accept it.
You've accomplished the next NF when you will find no relations between your key along with other posts that do not rely on it.
Unsure my professor might have stated that they like this but this really is what it's.
If you are "within the area". Overlook the definitions. Search for "guidelinesInch. The first is DRY : Don't Repeat Yourself.
Should you follow that principle, you already master all you need for NF.
Here's a good example. Your table has got the following schema:
PERSONS : id, name, age, car make, car model
Age and title are based on the individual entry (=> id) however the model is dependent towards the vehicle and never the individual.
Then, you'd split it in 2 tables:
PERSONS : id, name, age, car_models_id (references CAR_MODELS.id) CAR_MODELS : id, name, car_makes_id (references CAR_MAKES.id) CAR_MAKES : id, name
You could have replication in 2FN although not in 3FN any longer.
Normalization is about non-replication, consistency, and from another perspective foreign secrets and JOINs.
The greater stabilized the greater for data although not for performance nor understanding whether it will get really too complicated.