Viides normaalimuoto

Viides normaalimuoto (5NF) on  yksi relaatiotietokantarelaation mahdollisista normaalimuodoista .

Määritelmä

Viidennen normaalimuodon määrittelemiseksi on ensin otettava käyttöön käsite yhteysriippuvuus , joka puolestaan ​​perustuu häviöttömän hajoamisen käsitteeseen .

Häviötön hajoaminen

Relation R hajottaminen [1] on R : n korvaaminen joukolla relaatioita { R 1 , R 2 ,… , R n } siten, että jokainen niistä on R :n projektio ja jokainen R :n attribuutti sisältyy ainakin yksi hajoamisennusteista.

Esimerkiksi relaatiolle R , jolla on attribuutit { a , b , c }, on seuraavat päähajotusvaihtoehdot :

Tarkastellaan nyt relaatiota R' , joka on NATURAL JOIN -operaation tulos, jota sovelletaan R :n hajotuksen tuloksena saatuihin suhteisiin .

Hajoamista kutsutaan häviöttömäksi hajotukseksi , jos R' on täsmälleen sama kuin R .

Epävirallisesti sanottuna häviöttömässä hajotuksessa relaatio "jaetaan" projektiorelaatioiksi siten, että tuloksena saatujen projektioiden avulla voidaan "koota" alkuperäinen relaatio käyttämällä luonnollista liitosoperaatiota.

Jokainen hajoaminen ei ole häviötöntä hajoamista. Havainnollistetaan tätä yllä annetulla relaatiolla R attribuuttien { a , b , c } avulla. Olkoon suhteella R muoto:

R
a b c
Moskova Venäjä iso alkukirjain
Tomsk Venäjä ei pääkaupunki
Berliini Saksa iso alkukirjain

Hajotus R 1 = { a }, R 2 = { b , c } on muodossa:

R1_ _
a
Moskova
Tomsk
Berliini
R2_ _
b c
Venäjä iso alkukirjain
Venäjä ei pääkaupunki
Saksa iso alkukirjain

Näiden suhteiden yhteystoiminnan tulos:

R ' = R1 LUONNOLLINEN LIITOS R2
a b c
Moskova Venäjä iso alkukirjain
Moskova Venäjä ei pääkaupunki
Moskova Saksa iso alkukirjain
Tomsk Venäjä iso alkukirjain
Tomsk Venäjä ei pääkaupunki
Tomsk Saksa iso alkukirjain
Berliini Venäjä iso alkukirjain
Berliini Venäjä ei pääkaupunki
Berliini Saksa iso alkukirjain

On selvää, että R' ei ole sama kuin R , mikä tarkoittaa, että tällainen hajottaminen ei ole häviötön hajoaminen. Tarkastellaan nyt hajotusta R 1 = { a , b }, R 2 = { a , c }:

R1_ _
a b
Moskova Venäjä
Tomsk Venäjä
Berliini Saksa
R2_ _
a c
Moskova iso alkukirjain
Tomsk ei pääkaupunki
Berliini iso alkukirjain

Tällainen hajoaminen on häviötön hajoaminen, kuten lukija voi itse todeta.

Joissakin tapauksissa relaatiota ei voida hajottaa ilman häviötä. On myös esimerkkejä suhteista, joita ei voida hajottaa häviöttömästi kahteen projektioon, mutta jotka voidaan hajottaa häviöttömästi kolmeen tai useampaan projektioon [2] .

Yhteysriippuvuus

Olkoon R  relaatiomuuttuja ja A , B , …, Z  sen attribuuttien joukon osajoukkoja.

Jos minkä tahansa kelvollisen arvon R hajottaminen suhteiksi, jotka koostuvat attribuuttijoukoista A , B , ..., Z , on häviötön hajoaminen, relaatiomuuttujan R sanotaan tyydyttävän liitosriippuvuuden *{A, B, . . . , Z} [3] .

Toisin sanoen relaatiomuuttuja R täyttää liitosriippuvuuden *{A, B, . . . , Z} jos ja vain jos mikä tahansa relaatiomuuttujan R sallittu arvo vastaa sen projektioiden liittoa attribuuttijoukon osajoukkojen A , B , …, Z yli.

Aivan kuten toiminnallinen riippuvuus on moniarvoisen riippuvuuden erikoistapaus , moniarvoinen riippuvuus on liitosriippuvuuden erikoistapaus . Join-riippuvuus on moniarvoisen ja toiminnallisen riippuvuuden käsitteiden äärimmäinen yleistys, eli se on yleisin riippuvuuden muoto relaatioattribuuttien välillä.

On tärkeää ymmärtää, että liitosriippuvuutta ei määritellä relaatiomuuttujan tietylle arvolle tietyllä hetkellä, vaan kaikille mahdollisille arvoille. Siksi yhteysriippuvuuden käsitettä ei määritellä suhteelle (tietylle arvolle), vaan relaatiomuuttujalle . Liitosriippuvuutta ei määritetä mekaanisesti nykyisistä arvoista, vaan se seuraa ulkopuolisesta tiedosta relaatiomuuttujassa mahdollisesti olevien tietojen luonteesta ja malleista. Sama koskee moniarvoisia ja toiminnallisia riippuvuuksia.

Liitosriippuvuus *{A, B,…, Z} on triviaali , jos ja vain jos ainakin yksi osajoukoista A , B , …, Z on kaikkien relaatioattribuuttien joukko (sisältää kaikki attribuutit). Muuten yhteysriippuvuus ei ole triviaali .

Määritelmän lausunto

Relaatio on viidennessä normaalimuodossa (toisin sanoen projektitiivis-konnektiivisessa normaalimuodossa) silloin ja vain, jos jokainen ei-triviaalinen yhteysriippuvuus siinä määräytyy tämän suhteen potentiaaliavaimen (-avaimien) avulla [2] .

Liitosriippuvuus *{A, B,…, Z} määritellään ehdokasavaimella, jos ja vain jos kukin attribuuttijoukon osajoukoista A , B , …, Z on suhteen [2] superavain .

Ehto "kukin attribuuttijoukon osajoukoista A , B , ..., Z on suhteen superavain" voidaan vastaavasti muotoilla seuraavasti: "kukin osajoukoista A , B , ... , Z attribuuttijoukko sisältää jonkin suhteen mahdollisen avaimen ".

5NF:n ominaisuudet

Mikä tahansa suhde 5NF:ssä on automaattisesti myös 4NF:ssä ja siten kaikissa muissa normaaleissa muodoissa. 5NF on lopullinen normaalimuoto (ainakin projektio- ja liitosoperaatioiden yhteydessä).

Ronald Feigin vuonna 1979 osoitti, että mikä tahansa relaatiomuuttuja voidaan jakaa ilman häviötä vastaavaksi relaatiomuuttujien joukoksi 5NF:ssä, eli 5NF on aina saavutettavissa. Christopher Date kuitenkinhuomauttaa, että menettely sen määrittämiseksi, että jokin relaatiomuuttuja on 4NF:ssä eikä 5NF:ssä, ja näin ollen on mahdollisuus sen edulliseen hajoamiseen, ei ole vielä täysin selvä. Tämä johtuu siitä, että kaikkien liitosriippuvuuksien määrittäminen relaatiolle voi olla erittäin vaikeaa, ja suhteen voidaan sanoa olevan 5NF:ssä vain, jos kaikki sen ehdokasavaimet ja kaikki sen liitosriippuvuudet tunnetaan.

On hyvin harvinaista, että 4NF:ssä oleva relaatio ei vastaa 5NF:ää. Nämä ovat tilanteita, joissa todellisia sääntöjä, jotka rajoittavat sallittuja attribuuttien yhdistelmiä, ei ilmaistu millään tavalla relaatiorakenteessa (katso esimerkki alla). Tällöin, jos suhdetta ei vähennetä arvoon 5NF, tiedon loogisen eheyden varmistamisen taakka siirtyy osittain datan lisäämisestä, poistamisesta ja muuttamisesta vastaavalle sovellukselle. Tässä tapauksessa on olemassa virheiden riski. Viides normaalimuoto sulkee pois tällaisten poikkeavuuksien esiintymisen.

Esimerkki

Oletetaan, että meidän on tallennettava tietoja useiden myyjien valikoimasta, jotka myyvät usean yrityksen tuotteita (yritysten tuotevalikoima voi mennä päällekkäin):

Valikoima (myyjät, yritykset, tavarat)
Myyntimies Kiinteä Tuote
Ivanov Sarvet ja kaviot Pölynimuri
Ivanov Sarvet ja kaviot leipälaatikko
Petrov Bezenchuk&Co Lopper
Petrov Bezenchuk&Co Pölynimuri
Petrov Bezenchuk&Co leipälaatikko
Petrov Bezenchuk&Co Sateenvarjo
Sidorov Bezenchuk&Co Pölynimuri
Sidorov Bezenchuk&Co Teleskooppi
Sidorov Sarvet ja kaviot Pölynimuri
Sidorov Sarvet ja kaviot Lamppu
Sidorov Hercules Ripustin

Jos lisäehtoja ei ole, tämä suhde, joka on 4. normaalimuodossa, on oikea ja heijastaa kaikkia tarvittavia rajoituksia.

Oletetaan nyt, että meidän on otettava huomioon seuraava rajoitus: jokaisella myyjällä on rajoitettu luettelo yrityksistä ja rajoitettu luettelo tavaratyypeistä valikoimassaan ja hän tarjoaa tavaroita yritysten luettelosta yritysten valmistamien tavaroiden luettelosta .

Eli myyjällä ei ole oikeutta käydä kauppaa minkään yrityksen tavaroilla. Jos myyjällä P on oikeus käydä kauppaa yrityksen F tavaroilla ja jos myyjällä P on oikeus käydä kauppaa tyypin T tavaroilla, niin myyjän P valikoima sisältää yrityksen F tyypin T tavarat edellyttäen , että yritys F valmistaa tavaroita tyyppiä T. _

Tällainen rajoitus voi johtua esimerkiksi siitä, että myyjän tavaratyyppiluetteloa rajoittavat hänen luvat tai niiden myyntiin tarvittavat tiedot ja pätevyys sekä kunkin myyjän yritysluettelo. määräytyy kumppanuussopimuksin.

Erityisesti tarkasteltavassa esimerkissä oletetaan, että myyjä Ivanovilla on oikeus käydä kauppaa vain Roga ja Kopyta -yhtiön tavaroilla, myyjä Petrovilla vain Bezenchuk & Co -yhtiön tavaroilla, mutta myyjällä Sidorovilla ei ole oikeutta käydä kauppaa leipälaatikoilla ja silppureilla jne.

Edellä ehdotettu suhde ei voi sulkea pois tilanteita, joissa tätä rajoitusta rikotaan. Mikään ei estä syöttämästä tietoja sellaisten tavaroiden kaupasta, joita tämä yritys ei tuota ollenkaan, tai tietoja sellaisen yrityksen tavaroiden kaupasta, joita tämä myyjä ei palvele, tai tietoja sellaisista tavaroista, joita tämä myyjä ei tarjoa. on oikeus myydä.

Relaatio ei ole 5NF:ssä, koska sillä on ei-triviaali yhteysriippuvuus *{{Myyjä, Yritys}, {Yritys, Tuote}, {Myyjä, Tuote}}, mutta osajoukot {Myyjä, Yritys}, {Yritys, tuote }, {Myyjä , Tuote} eivät ole alkuperäisen suhteen superavaimia.

Tässä tapauksessa 5NF:n pienentämiseksi suhde tulisi jakaa kolmeen osaan: {Myyjä, Yritys}, {Yritys, Tuote}, {Myyjä, Tuote}.

Myyjien tavarat
Myyntimies Tuote
Ivanov Pölynimuri
Ivanov leipälaatikko
Petrov Lopper
Petrov Pölynimuri
Petrov leipälaatikko
Petrov Sateenvarjo
Sidorov Teleskooppi
Sidorov Pölynimuri
Sidorov Lamppu
Sidorov Ripustin
Myyntiyritykset
Myyntimies Kiinteä
Ivanov Sarvet ja kaviot
Petrov Bezenchuk&Co
Sidorov Bezenchuk&Co
Sidorov Sarvet ja kaviot
Sidorov Hercules
Yrityksen tuotteet
Kiinteä Tuote
Sarvet ja kaviot Pölynimuri
Sarvet ja kaviot leipälaatikko
Sarvet ja kaviot Lamppu
Bezenchuk&Co Lopper
Bezenchuk&Co Pölynimuri
Bezenchuk&Co leipälaatikko
Bezenchuk&Co Sateenvarjo
Bezenchuk&Co Teleskooppi
Hercules Ripustin

Katso myös

Muistiinpanot

  1. Tarkkaan ottaen termiä "projektiohajottelu" tai "projektiopohjainen dekompositio" tulisi käyttää, koska alkuperäisen suhteen jakaminen tapahtuu projektiooperaation kautta. Teoreettisesti on olemassa muitakin muunnelmia, esimerkiksi pelkistys- (valinta)operaatioon perustuvia, mutta eksoottisia, minkä seurauksena hajottaminen, ellei toisin ole erikseen mainittu, ymmärretään projektiohajotukseksi.
  2. 1 2 3 Päivämäärä K. J. Johdatus tietokantajärjestelmiin. - 8. painos - M .: "Williams", 2005
  3. Lue "tähti A, B, ..., Z"

Kirjallisuus