GeeksforGeeks

Ensimmäinen normaalimuoto (First Normal Form, 1NF) ei poista redundanssia, vaan pikemminkin se, että se poistaa toistuvat ryhmät.

Sen sijaan, että tietueessa olisi useita sarakkeita samantyyppistä tietoa, (0NF tai Epänormaalimuoto) poistat toistuvat tiedot erilliseen relaatioon ja esittelet ne riveinä. Tämä muodostaa 1NF:n.

Toinen normaalimuoto (2NF):
Toinen normaalimuoto (2NF) perustuu täyden toiminnallisen riippuvuuden käsitteeseen. Toista normaalimuotoa sovelletaan relaatioihin, joilla on yhdistelmäavaimia, eli relaatioihin, joiden ensisijainen avain koostuu kahdesta tai useammasta attribuutista. Relaatio, jolla on yhden attribuutin pääavain, on automaattisesti vähintään 2NF:ssä. Relaatio, joka ei ole 2NF:ssä, voi kärsiä päivityspoikkeamista.

Ollakseen toisessa normaalimuodossa relaation täytyy olla ensimmäisessä normaalimuodossa eikä relaatio saa sisältää mitään osittaista riippuvuutta. Relaatio on 2NF:ssä, jos sillä ei ole osittaista riippuvuutta, eli yksikään ei-alkuinen attribuutti (attribuutit, jotka eivät kuulu mihinkään ehdokasavaimeen) ei ole riippuvainen mistään taulun ehdokasavaimen oikeasta osajoukosta.

Muulla sanoen

Relaatio, joka on ensimmäisessä normaalimuodossa ja jonka jokainen ei-primääriavaimen attribuutti on täysin toiminnallisesti riippuvainen primääriavaimesta, on toisessa normaalimuodossa (Second Normal Form, 2NF).

Huomautus – Jos ehdokasavaimen oikea osajoukko määrittää ei-alkuavainattribuutin, sitä kutsutaan osittaisriippuvuudeksi.

1NF-relaatioiden normalisointi 2NF:ksi sisältää osittaisriippuvuuksien poistamisen. Jos osittainen riippuvuus on olemassa, poistamme osittain riippuvaisen attribuutin (attribuutit) relaatiosta sijoittamalla ne uuteen relaatioon yhdessä niiden determinantin kopion kanssa.

Tarkastellaan alla olevia esimerkkejä.

Esimerkki-1:
Tarkastellaan alla olevaa taulukkoa.

STUD_NO COURSE_NO COURSE_FEE1 C1 10002 C2 15001 C4 20004 C3 10004 C1 10002 C5 2000

{Huomaa, että on monia kursseja, joilla on sama kurssimaksu. }

Tässä,
KURSSIMAKSU ei voi yksinään päättää KURSSI_NO:n tai OPISKELIJAN_NO:n arvoa;
KURSSIMAKSU yhdessä OPISKELIJAN_NO:n kanssa ei voi päättää KURSSIN_NO:n arvoa;
KURSSIMAKSU yhdessä KURSSIN_NO:n kanssa ei voi päättää OPISKELIJAN_NO:n arvoa;
Siten
COURSE_FEE olisi attribuutti, joka ei ole ensisijainen, koska se ei kuulu yhteen ainoaan ehdokasavaimeen {STUD_NO, COURSE_NO} ;
Mutta, COURSE_NO -> COURSE_FEE, i.e., COURSE_FEE on riippuvainen COURSE_NO:sta, joka on oikea ehdokasavaimen osajoukko. Ei-prime-attribuutti COURSE_FEE on riippuvainen ehdokasavaimen oikeasta osajoukosta, mikä on osittainen riippuvuus, joten tämä relaatio ei ole 2NF:ssä.

Muttaaksemme yllä olevan relaation 2NF:ksi,
pitää jakaa taulukko kahteen taulukkoon, kuten :
Taulukko 1: STUD_NO, COURSE_NO
Taulukko 2: COURSE_NO, COURSE_FEE

 Table 1 Table 2STUD_NO COURSE_NO COURSE_NO COURSE_FEE 1 C1 C1 10002 C2 C2 15001 C4 C3 10004 C3 C4 20004 C1 C5 2000 2 C5 

Huomautus – 2NF:llä pyritään vähentämään muistiin tallentuvaa redundanttia tietoa. Jos esimerkiksi kurssille C1 osallistuu 100 opiskelijaa, meidän ei tarvitse tallentaa kurssimaksua 1000 kaikille 100 tietueelle, vaan voimme tallentaa sen kerran toiseen taulukkoon, koska kurssimaksu C1:lle on 1000.

Esimerkki-2:
Harkitse seuraavia toiminnallisia riippuvuuksia relaatiossa R (A, B, C, D )

AB -> C BC -> D 

Yllä olevassa relaatiossa AB on ainoa ehdokasavain eikä osittaisriippuvuutta ole, ts. mikä tahansa AB:n sopiva osajoukko ei määrittele yhtään muuta kuin priimusattribuuttia.

Artikkeli Tunnisteet :

DBMS

Practice Tags :

Vastaa

Sähköpostiosoitettasi ei julkaista.