Az ötödik normálforma (5NF) a relációs adatbázis -reláció egyik lehetséges normál formája .
Az ötödik normálforma meghatározásához először be kell vezetni a kapcsolatfüggés fogalmát , amely viszont a veszteségmentes dekompozíció fogalmán alapul .
Az R reláció [1] dekompozíciója az R helyettesítése { R 1 , R 2 ,… , R n } relációk halmazával úgy, hogy mindegyik R vetülete , és R minden attribútuma legalább a dekompozíciós vetületek egyike.
Például egy { a , b , c } attribútumú R relációhoz a következő fő lebontási lehetőségek állnak rendelkezésre:
Tekintsük most az R' relációt, amely az R dekompozíciója eredményeként kapott relációkra alkalmazott NATURAL JOIN művelet eredménye .
A dekompozíciót veszteségmentes dekompozíciónak nevezzük , ha R' pontosan megegyezik R -vel .
Informálisan szólva, veszteségmentes dekompozícióval a relációt vetületi relációkra „bontjuk” oly módon, hogy a kapott vetületek segítségével a természetes összekapcsolási művelettel „összeállíthassuk” az eredeti relációt.
Nem minden dekompozíció veszteségmentes lebontás. Illusztráljuk ezt a fent megadott { a , b , c } attribútumú R relációval. Legyen az R reláció alakja:
a | b | c |
---|---|---|
Moszkva | Oroszország | főváros |
Tomszk | Oroszország | nem a főváros |
Berlin | Németország | főváros |
Az R 1 = { a }, R 2 = { b , c } bontás alakja:
a |
---|
Moszkva |
Tomszk |
Berlin |
b | c |
---|---|
Oroszország | főváros |
Oroszország | nem a főváros |
Németország | főváros |
Ezen relációk kapcsolódási műveletének eredménye:
a | b | c |
---|---|---|
Moszkva | Oroszország | főváros |
Moszkva | Oroszország | nem a főváros |
Moszkva | Németország | főváros |
Tomszk | Oroszország | főváros |
Tomszk | Oroszország | nem a főváros |
Tomszk | Németország | főváros |
Berlin | Oroszország | főváros |
Berlin | Oroszország | nem a főváros |
Berlin | Németország | főváros |
Nyilvánvaló, hogy R' nem esik egybe R -vel , ami azt jelenti, hogy egy ilyen felbontás nem veszteségmentes lebontás. Tekintsük most az R 1 = { a , b }, R 2 = { a , c } dekompozíciót:
a | b |
---|---|
Moszkva | Oroszország |
Tomszk | Oroszország |
Berlin | Németország |
a | c |
---|---|
Moszkva | főváros |
Tomszk | nem a főváros |
Berlin | főváros |
Az ilyen dekompozíció veszteségmentes bontás, amint azt az olvasó maga is láthatja.
Egyes esetekben egy reláció egyáltalán nem bontható fel veszteség nélkül. Vannak példák olyan összefüggésekre is, amelyek nem bonthatók fel veszteségmentesen két vetületre, de amelyek veszteségmentesen bonthatók három vagy több vetületre [2] .
Legyen R egy relációs változó, és A , B , …, Z az attribútumok halmazának néhány részhalmaza.
Ha bármely érvényes R érték felbontása A , B , ..., Z attribútumkészletekből álló relációkra veszteségmentes dekompozíció, akkor az R relációs változó kielégíti a *{A, B, összekapcsolási függőséget. . . , Z} [3] .
Más szavakkal, az R relációs változó kielégíti a *{A, B, kapcsolási függőséget. . . , Z} akkor és csak akkor, ha az R relációs változó bármely megengedhető értéke ekvivalens az attribútumkészlet A , B , …, Z részhalmazaira vonatkozó vetületeinek uniójával .
Ahogy a funkcionális függőség a többértékű függőség speciális esete , a többértékű függőség az összekapcsolási függőség speciális esete . Az összekapcsolási függőség a többértékű és a funkcionális függőség fogalmának szélsőséges általánosítása, vagyis a relációs attribútumok közötti függőség legáltalánosabb formája.
Fontos megérteni, hogy az összekapcsolási függőség nem a relációs változó egy adott értékére van meghatározva egy adott időpontban, hanem az összes lehetséges értékre. Ezért a kapcsolatfüggőség fogalma nem egy relációra (egy adott értékre) van definiálva, hanem egy relációs változóra . A kapcsolódási függőséget nem mechanikusan határozzuk meg az aktuális értékekből, hanem a relációs változóban esetlegesen előforduló adatok természetének és mintázatainak külső ismeretéből következik. Ugyanez vonatkozik a többértékű és funkcionális függőségekre is.
Egy *{A, B,…, Z} összekapcsolási függőség akkor és csak akkor triviális , ha az A , B , …, Z részhalmazok legalább egyike az összes relációs attribútum halmaza (az összes attribútumot tartalmazza). Ellenkező esetben a kapcsolatfüggőség nem triviális .
Egy reláció akkor és csak akkor van ötödik normálformában (más szóval projektív-konnektív normálformában), ha minden benne lévő nem triviális kapcsolatfüggést ennek a relációnak a potenciálkulcsa (i) határozzák meg [2] .
A *{A, B,…, Z} összekapcsolási függőséget akkor és csak akkor határozzuk meg egy kulcsjelölt kulcs (ok), ha az A , B , …, Z attribútumkészlet részhalmazok mindegyike a [2] reláció szuperkulcsa .
Az "az attribútumkészlet A , B , ..., Z részhalmazainak mindegyike a reláció szuperkulcsa" feltételt ekvivalensen a következőképpen lehet megfogalmazni: "az A , B , ..., Z részhalmazok mindegyike Az attribútumkészlet tartalmazza a reláció néhány lehetséges kulcsát ".
Bármilyen reláció az 5NF-ben automatikusan a 4NF-ben is, tehát minden más normál formában is. Az 5NF a végső normál forma (legalábbis a vetítési és összekapcsolási műveletek kontextusában).
Ronald Feigin 1979-ben kimutatta, hogy bármely relációs változó veszteség nélkül felbontható az 5NF-ben ekvivalens relációs változók halmazára, vagyis az 5NF mindig elérhető. Christopher Date azonbanmegjegyzi, hogy még mindig nem teljesen világos az eljárás annak meghatározására, hogy valamilyen relációs változó a 4NF-ben van-e, és nem az 5NF-ben, és így lehetőség van további előnyös lebontására. Ennek az az oka, hogy egy reláció összes összekapcsolási függőségének meghatározása nagyon nehéz lehet, és egy relációról csak akkor mondható el, hogy az 5NF-ben van, ha az összes jelölt kulcsa és az összes csatlakozási függősége ismert.
Nagyon ritka, hogy egy reláció, amely a 4NF-ben van, nem felel meg az 5NF-nek. Ezek olyan helyzetek, amikor a tényleges szabályok, amelyek korlátozzák az attribútumok megengedett kombinációit, semmilyen módon nem fejeződnek ki a reláció szerkezetében (lásd az alábbi példát). Ebben az esetben, ha a kapcsolat nem redukálódik 5NF-re, az adatok logikai integritásának biztosításának terhe részben az adatfelvételért, törlésért, módosításért felelős alkalmazásra hárul. Ebben az esetben fennáll a hibák veszélye. Az ötödik normál forma kizárja az ilyen rendellenességek előfordulását.
Tegyük fel, hogy több, több cég termékeit értékesítő eladó választékáról kell adatokat tárolnunk (a cégek termékpalettája átfedheti egymást):
Eladó | Cég | Termék |
---|---|---|
Ivanov | Szarvak és paták | Porszívó |
Ivanov | Szarvak és paták | kenyérdoboz |
Petrov | Bezenchuk&Co | Lopper |
Petrov | Bezenchuk&Co | Porszívó |
Petrov | Bezenchuk&Co | kenyérdoboz |
Petrov | Bezenchuk&Co | Esernyő |
Sidorov | Bezenchuk&Co | Porszívó |
Sidorov | Bezenchuk&Co | Távcső |
Sidorov | Szarvak és paták | Porszívó |
Sidorov | Szarvak és paták | Lámpa |
Sidorov | Herkules | Akasztó |
Ha nincsenek további feltételek, akkor ez az összefüggés, amely a 4. normálformában van, helyes, és tükrözi az összes szükséges korlátozást.
Most tegyük fel, hogy figyelembe kell vennünk a következő megkötést: minden eladónak van egy korlátozott listája a cégekről és egy korlátozott listája az áruk típusainak a választékában, és a cégek által előállított áruk listájáról kínál árukat a cégek listájáról .
Ez azt jelenti, hogy az eladónak nincs joga semmilyen cég termékeivel kereskedni. Ha P eladónak joga van az F cég áruival kereskedni , és ha P eladónak joga van a T típusú árukkal kereskedni , akkor P eladó választéka tartalmazza az F cég T típusú áruit , feltéve, hogy F cég árut gyárt . T típusú .
Ilyen korlátozást okozhat például az a tény, hogy az eladó árutípusainak listáját korlátozzák az általa birtokolt engedélyek, vagy az értékesítéshez szükséges ismeretek és képesítések, valamint az egyes eladók cégjegyzéke. társasági szerződések határozzák meg.
A vizsgált példában különösen azt feltételezzük, hogy Ivanov eladónak csak a Roga és Kopyta cég áruival, az eladó Petrovnak csak a Bezenchuk & Co cég áruival, az eladónak pedig Sidorovnak van joga kereskedni. nem jogosult kenyeres edényekkel , foszlókkal stb. kereskedni.
A fent javasolt összefüggés nem zárhatja ki azokat a helyzeteket, amelyekben ez a korlát megsérül. Semmi sem akadályozza meg az olyan áruk kereskedelmére vonatkozó adatok megadását, amelyeket ez a cég egyáltalán nem gyárt, vagy olyan cég áruinak kereskedelmére vonatkozó adatokat, amelyeket ez az eladó nem szolgál ki, vagy olyan termék kereskedelmére vonatkozó adatokat, amelyeket ez az eladó nem gyárt. joguk van eladni.
A reláció nem az 5NF-ben van, mivel van egy nem triviális kapcsolatfüggősége *{{Értékesítő, Vállalat}, {Vállalat, Termék}, {Eladó, Termék}}, hanem az {értékesítő, vállalat}, {vállalat, termék} részhalmazai }, {Salesperson , Product} nem az eredeti reláció szuperkulcsai.
Ebben az esetben, hogy 5NF-re csökkentsük, a relációt három részre kell osztani: {Eladó, Vállalat}, {Vállalat, Termék}, {Eladó, Termék}.
Eladó | Termék |
---|---|
Ivanov | Porszívó |
Ivanov | kenyérdoboz |
Petrov | Lopper |
Petrov | Porszívó |
Petrov | kenyérdoboz |
Petrov | Esernyő |
Sidorov | Távcső |
Sidorov | Porszívó |
Sidorov | Lámpa |
Sidorov | Akasztó |
Eladó | Cég |
---|---|
Ivanov | Szarvak és paták |
Petrov | Bezenchuk&Co |
Sidorov | Bezenchuk&Co |
Sidorov | Szarvak és paták |
Sidorov | Herkules |
Cég | Termék |
---|---|
Szarvak és paták | Porszívó |
Szarvak és paták | kenyérdoboz |
Szarvak és paták | Lámpa |
Bezenchuk&Co | Lopper |
Bezenchuk&Co | Porszívó |
Bezenchuk&Co | kenyérdoboz |
Bezenchuk&Co | Esernyő |
Bezenchuk&Co | Távcső |
Herkules | Akasztó |
normál formák | |
---|---|