A harmadik normálforma ( eng. Third normal form ; rövidítve 3NF ) egy relációs adatbázisban a reláció egyik lehetséges normálformája . A 3NF-et eredetileg E. F. Codd fogalmazta meg 1971 -ben .
Az R relációs változó akkor és csak akkor van a 3NF-ben, ha a következő feltételek igazak:
Magyarázatok a definícióhoz:
Az R reláció nem kulcs attribútuma olyan attribútum, amely nem tartozik R egyik jelölt kulcsához sem .
Egy Z attribútumkészlet funkcionális függése egy X attribútumkészlettől (írva X → Z , ejtsd: "x határozza meg z-t") tranzitív , ha van olyan Y attribútumkészlet , hogy X → Y és Y → Z. Ugyanakkor az X , Y és Z halmazok egyike sem részhalmaza a másiknak, vagyis az X → Z , X → Y és Y → Z funkcionális függőségek nem triviálisak , és nincs Y funkcionális függőség sem. → X.
A 3NF Codd-éval egyenértékű, de másképpen megfogalmazott definícióját Carlo Zaniolo adta meg 1982 -ben . Eszerint egy relációs változó akkor és csak akkor van a 3NF-ben, ha minden X → A funkcionális függősége teljesíti az alábbi feltételek legalább egyikét:
Zaniolo definíciója egyértelműen meghatározza a különbséget a 3NF és a szigorúbb Boyce-Codd normálforma (BCNF) között: a BCNF kiküszöböli a harmadik feltételt (" A kulcsattribútum").
A Codd-féle 3NF definíció emlékezetes és hagyományosan leíró összefoglalását Bill Kent adta : minden nem kulcs attribútum "információt kell nyújtson a kulcsról, a teljes kulcsról, és semmi másról, csak a kulcsról" [1] .
A nem kulcsjellemzők "teljes kulcsától" való függés feltétele biztosítja, hogy a reláció második normál formában legyen; és a feltétele annak, hogy "semmitől, csak a kulcstól" függjenek, az, hogy harmadik normál formában legyenek.
Chris Date Kent összefoglalójáról a 3NF "intuitívan vonzó jellemzőjeként" beszél, és megjegyzi, hogy egy kis módosítással a szigorúbb Boyce-Codd normálforma definíciójaként is szolgálhat : "minden attribútumnak információt kell szolgáltatnia egy kulcsról. , egy teljes kulcs, és semmi más, csak a kulcs. A 3NF definíció Kent-féle változata kevésbé szigorú, mint a Data formuláció Boyce-Codd normál formájú változata, mivel az előbbi csak azt mondja ki, hogy a nem kulcsjellemzők kulcsoktól függenek. Az elsődleges attribútumoknak (amelyek kulcsok vagy azok részei) egyáltalán nem kell funkcionálisan függőknek lenniük; mindegyik információt nyújt a kulcsról úgy, hogy megadja magát a kulcsot vagy annak egy részét. Itt meg kell jegyezni, hogy ez a szabály csak nem kulcs attribútumokra érvényes, mivel az összes attribútumra történő alkalmazása teljesen letiltja az összes összetett alternatív kulcsot, mivel egy ilyen kulcs minden eleme megsérti a "teljes kulcs" feltételt.
Tekintsük példaként az R1 relációs változót:
Munkavállaló | Osztály | telefon |
---|---|---|
Grishin | Könyvelés | 11-22-33 |
Vasziljev | Könyvelés | 11-22-33 |
Petrov | Kínálat | 44-55-66 |
Minden alkalmazott kizárólag egy osztályhoz tartozik; minden osztálynak egyetlen telefonja van. Az Employee attribútum az elsődleges kulcs. Az alkalmazottaknak nincs személyes telefonjuk, és az alkalmazott telefonszáma kizárólag az osztálytól függ.
A példában a következő funkcionális függőségek léteznek: Alkalmazott → Osztály , Osztály → Telefon , Alkalmazott → Telefon .
Az R1 relációs változó a második normál formában van, mert mindegyik attribútumnak van egy redukálhatatlan funkcionális függősége a potenciális kulcsfontosságú alkalmazotttól .
A Munkavállaló → Telefon kapcsolat tranzitív, így a kapcsolat nincs harmadik normál formában.
Az R1 felosztása két relációs változót eredményez, amelyek a 3NF-ben vannak:
Osztály | telefon |
---|---|
Könyvelés | 11-22-33 |
Kínálat | 44-55-66 |
Munkavállaló | Osztály |
---|---|
Grishin | Könyvelés |
Vasziljev | Könyvelés |
Petrov | Kínálat |
Az R1 kezdeti relációt szükség esetén könnyen megkaphatjuk az R2 és R3 relációk összekapcsolásának művelete eredményeként.
normál formák | |
---|---|