Tranzitivna (prehodna) funkcionalna odvisnost lahko pri spreminjanju stolpca, ki ni primarni ključ, povzroči spremembo katerega koli drugega stolpca, ki prav tako ni primarni ključ. Če v našem primeru spremenimo vrednost v stolpcu naziv
to povzroči tudi spremembo v stolpcu opis
. Vendar pa se ta sprememba ne zgodi samodejno in zato pride do anomalije pri posodabljanju podatkov – en podatek spremenimo, drugi podatek, ki bi se tudi moral spremeniti, pa se ne spremeni. Spremenimo tabelo v tretjo normalno obliko.
Tabela podatkovne baze je v tretji normalni obliki, če:
Če želimo podatkovno bazo spremeniti v tretjo normalno obliko, moramo razdeliti prvo tabelo, ki je v drugi normalni obliki in vsebuje tranzitivno funkcionalno odvisnost (stolpca naziv
in opis
). To storimo takole:
clan_id | ime | priimek | naziv_id | naslov |
---|---|---|---|---|
1 | Marija | Kranjc | 2 | Celovška cesta 134 |
2 | Janez | Novak | 1 | Dunajska cesta 67 |
3 | Janez | Novak | 1 | Tržaška cesta 258 |
clan_id | izposojeno |
---|---|
1 | Moje pesmi, moje sanje |
2 | Boter |
2 | Kaznilnica odrešitve |
3 | Schindlerjev seznam |
3 | Pianist |
naziv_id | naziv | opis |
---|---|---|
1 | g. | gospod |
2 | ga. | gospa |
3 | gdč. | gospodična |
4 | dr. | doktor |
Uvedli smo nov stolpec naziv_id
, ki je tuji ključ v prvi tabeli in primarni ključ v tretji tabeli. Naziv in opis naziva (stolpca naziv
in opis
) pa smo preselili v tretjo tabelo. S tem smo odpravili tranzitivno funkcionalno odvisnost v prvi tabeli.