Hoewel Second Normal Form (2NF)-relaties minder redundantie hebben dan die in 1NF, kunnen ze nog steeds last hebben van update-afwijkingen. Als we slechts één tupel bijwerken en de andere niet, verkeert de database in een inconsistente staat. Deze update-afwijking wordt veroorzaakt door een transitieve afhankelijkheid. We moeten dergelijke afhankelijkheden wegnemen door over te gaan naar de Derde Normaalvorm (3NF).
instantiëren van Java
Derde normaalvorm (3NF)
Een relatie bevindt zich in de derde normaalvorm als er geen transitieve afhankelijkheid bestaat voor niet-prime-attributen, net zoals deze zich in de tweede normaalvorm bevindt. Er is sprake van een relatie in 3NF als ten minste één van de volgende voorwaarden geldt in elke niet-triviale functieafhankelijkheid X –> Y.
- X is een supersleutel.
- Y is een hoofdattribuut (elk element van Y maakt deel uit van een kandidaatsleutel).
Met andere woorden,
Een relatie die zich in de eerste en tweede normaalvorm bevindt en waarin geen niet-primaire sleutelattribuut transitief afhankelijk is van de primaire sleutel, bevindt zich in de derde normaalvorm (3NF).
Opmerking:
Als A->B En B->C zijn dan twee FD's A->C heet transitieve afhankelijkheid. De normalisatie van 2NF-relaties met 3NF impliceert het verwijderen van transitieve afhankelijkheden. Als er sprake is van een transitieve afhankelijkheid, verwijderen we de transitief afhankelijke attribuut(en) uit de relatie door de attribuut(en) in een nieuwe relatie te plaatsen, samen met een kopie van de determinant. Beschouw de onderstaande voorbeelden.
Voorbeeld 1:
Met betrekking tot STUDENT gegeven in Tabel 4,

Java iteratie kaart
FD-set: {STUD_NO -> STUD_NAME, STUD_NO -> STUD_STATE, STUD_STATE -> STUD_COUNTRY, STUD_NO -> STUD_AGE} Kandidaatsleutel: {STUD_NO} Voor deze relatie in tabel 4 zijn STUD_NO -> STUD_STATE en STUD_STATE -> STUD_COUNTRY waar. STUD_COUNTRY is dus transitief afhankelijk van STUD_NO. Het schendt de derde normaalvorm. Om het in de derde normaalvorm te converteren, zullen we de relatie STUDENT (STUD_NO, STUD_NAME, STUD_PHONE, STUD_STATE, STUD_COUNTRY_STUD_AGE) ontleden als:
STUDENT (STUD_NO, STUD_NAME, STUD_PHONE, STUD_STATE, STUD_AGE) STATE_COUNTRY (STATE, COUNTRY)>
Voorbeeld 2:
Beschouw relatie R(A, B, C, D, E)
A ->BC, CD -> E, B -> D, E -> A>
Alle mogelijke kandidaatsleutels in de bovenstaande relatie zijn {A, E, CD, BC}. Alle attributen bevinden zich aan de rechterkant van alle functionele afhankelijkheden zijn priemgetallen.
Opmerking:
Er wordt rekening gehouden met de derde normaalvorm (3NF). adequaat voor normaal relationeel databaseontwerp, omdat de meeste 3NF-tabellen vrij zijn van anomalieën bij het invoegen, bijwerken en verwijderen. Bovendien, 3NF zorgt altijd voor behoud van functionele afhankelijkheid en verliesvrij .
Conclusie
Concluderend: een cruciale fase in de normalisatie van databases is de derde normale vorm (3NF). Het behandelt transitieve afhankelijkheden en verbetert de gegevensintegriteit door middel van een effectieve informatieorganisatie. 3NF zorgt ervoor dat niet-sleuteleigenschappen alleen afhankelijk zijn van de hoofdsleutel , het elimineren van overtolligheid en het helpen creëren van een goed georganiseerde en genormaliseerde organisatie relationeel databasemodel .