Kolmas normaalimuoto

Kolmas normaalimuoto ( eng.  Third normaalimuoto ; lyhennettynä 3NF ) on yksi relaatiotietokannan mahdollisista normaalimuodoista . 3NF:n muotoili alun perin E. F. Codd vuonna 1971 .

Määritelmä

Relaatiomuuttuja R on arvossa 3NF, jos ja vain, jos seuraavat ehdot ovat totta:

Selitykset määritelmälle:

Relaation R ei- avainattribuutti on attribuutti, joka ei kuulu mihinkään R  :n ehdokasavaimeen .

 Attribuuttijoukon Z toiminnallinen riippuvuus attribuuttijoukosta X (kirjoitettu X → Z , lausutaan "x määrittää z:n") on transitiivinen , jos on olemassa attribuuttijoukko Y siten, että X → Y ja Y → Z. Samanaikaisesti mikään joukoista X , Y ja Z ei ole toisen osajoukko, eli funktionaaliset riippuvuudet X → Z , X → Y ja Y → Z eivät ole triviaaleja , eikä myöskään toiminnallista riippuvuutta Y ole olemassa. → X.

Carlo Zaniolo antoi vuonna 1982 määritelmän 3NF:stä, joka vastaa Coddia, mutta muotoiltiin eri tavalla . Sen mukaan relaatiomuuttuja on 3NF:ssä silloin ja vain, jos jokainen sen toiminnallinen riippuvuus X → A täyttää vähintään yhden seuraavista ehdoista:

Zaniolon määritelmä määrittelee selvästi eron 3NF:n ja tiukemman Boyce-Coddin normaalimuodon (BCNF) välillä: BCNF eliminoi kolmannen ehdon (" A  on avainattribuutti").

"Ei mitään muuta kuin avain"

Bill Kent antoi mieleenpainuvan ja perinteisesti kuvaavan yhteenvedon Coddin 3NF-määritelmästä : jokaisen ei-avainattribuutin "pitäisi tarjota tietoa avaimesta, koko avaimesta ja vain avaimesta" [1] .

Ei-avainattribuuttien "täydestä avaimesta" riippuvuuden ehto varmistaa, että relaatio on toisessa normaalimuodossa; ja edellytys sille, että he ovat riippuvaisia ​​"muista kuin avaimesta", on, että ne ovat kolmannessa normaalimuodossa.

Chris Date puhuu Kentin yhteenvedosta 3NF:n "intuitiivisesti houkuttelevana ominaisuutena" ja huomauttaa, että se voi pienellä muutoksella toimia myös tiukemman Boyce-Coddin normaalimuodon määritelmänä : "Jokaisen attribuutin on annettava tietoa avaimesta , täysi avain, eikä mitään muuta kuin avain. Kentin versio 3NF-määrittelystä on vähemmän tiukka kuin Boyce-Coddin normaalimuotoinen versio Datan formulaatiosta, koska edellinen sanoo vain, että ei-avainattribuutit riippuvat avaimista. Ensisijaisten attribuuttien (jotka ovat avaimia tai niiden osia) ei tarvitse olla toiminnallisesti riippuvaisia ​​ollenkaan; jokainen niistä tarjoaa tietoa avaimesta antamalla itse avaimen tai osan siitä. Tässä on huomattava, että tämä sääntö pätee vain ei-avainmääritteille, koska sen soveltaminen kaikkiin attribuutteihin poistaa kokonaan käytöstä kaikki monimutkaiset vaihtoehtoiset avaimet, koska tällaisen avaimen jokainen elementti rikkoo "täysi avain" -ehtoa.

Esimerkki

Tarkastellaan esimerkkinä relaatiomuuttujaa R1:

R1
Työntekijä osasto Puhelin
Grishin Kirjanpito 11-22-33
Vasiljev Kirjanpito 11-22-33
Petrov Toimittaa 44-55-66

Jokainen työntekijä kuuluu yksinomaan yhteen osastoon; jokaisella osastolla on yksi puhelin. Työntekijä - attribuutti on ensisijainen avain. Työntekijöillä ei ole henkilökohtaisia ​​puhelimia, ja työntekijän puhelinnumero riippuu vain osastosta.

Esimerkissä on olemassa seuraavat toiminnalliset riippuvuudet: Työntekijä → Osasto , Osasto → Puhelin , Työntekijä → Puhelin .

Relaatiomuuttuja R1 on toisessa normaalimuodossa, koska jokaisella attribuutilla on redusoitumaton toiminnallinen riippuvuus mahdollisesta avaintyöntekijästä .

Suhde Työntekijä → Puhelin on transitiivinen, joten suhde ei ole kolmannessa normaalimuodossa.

R1:n jakaminen johtaa kahteen relaatiomuuttujaan, jotka ovat 3NF:ssä:

R2
osasto Puhelin
Kirjanpito 11-22-33
Toimittaa 44-55-66
R3
Työntekijä osasto
Grishin Kirjanpito
Vasiljev Kirjanpito
Petrov Toimittaa

Alkurelaatio R1 saadaan tarvittaessa helposti relaatioiden R2 ja R3 yhdistämisoperaation tuloksena.

Katso myös

Muistiinpanot

  1. Kent, William. "A Simple Guide to Five Normal Forms in Relational Database Theory" Arkistoitu 2. helmikuuta 2007, Wayback Machine , Communications of the ACM 26 (2), helmikuu. 1983, s. 120-125.

Kirjallisuus