logo

Toinen normaalimuoto (2NF)

First Normal Form (1NF) ei poista redundanssia, vaan pikemminkin se eliminoi toistuvia ryhmiä. Sen sijaan, että tietueessa olisi useita samantyyppisiä tietoja sisältäviä sarakkeita (0NF tai Unnormalized-muoto), poistat toistuvat tiedot erilliseen suhteeseen ja esität ne riveinä. Tämä muodostaa 1NF:n.

Toinen normaali muoto

Toinen normaalimuoto (2NF) perustuu täysin toimivan riippuvuuden käsitteeseen. Toinen normaalimuoto koskee suhteita yhdistelmäavaimiin, toisin sanoen suhteisiin kahdesta tai useammasta attribuutista koostuvaan ensisijaiseen avaimeen. Relaatio yhden attribuutin primaariavaimella on automaattisesti vähintään 2NF:ssä. Suhde, joka ei ole 2NF:ssä, voi kärsiä päivitysvirheistä. Jotta relaatio olisi toisessa normaalimuodossa, sen on oltava ensimmäisessä normaalimuodossa eikä relaatio saa sisältää osittaista riippuvuutta. Relaatio on 2NF:ssä, jos sillä ei ole osittaista riippuvuutta, eli mikään ei-prime-attribuutti (attribuutit, jotka eivät ole osa mitään ehdokasavainta) ei ole riippuvainen taulukon minkä tahansa ehdokasavaimen oikeasta osajoukosta. Toisin sanoen,

Relaatio, joka on ensimmäisessä normaalimuodossa ja jokaisella ei-ensisijaisen avaimen attribuutilla, on täysin toiminnallisesti riippuvainen ensisijaisesta avaimesta, silloin relaatio on toisessa normaalimuodossa (2NF).



Huomautus - Jos ehdokasavaimen oikea osajoukko määrittää ei-prime-attribuutin, sitä kutsutaan osittainen riippuvuus . The normalisointi 1NF-suhteista 2NF:ään liittyy osittaisten riippuvuuksien poistaminen . Jos osittainen riippuvuus on olemassa, poistamme suhteesta osittain riippuvaiset attribuutit asettamalla ne uuteen suhteeseen yhdessä niiden determinantin kopion kanssa. Harkitse alla olevia esimerkkejä.

Esimerkki-1: Harkitse alla olevaa taulukkoa.

STUD_NO COURSE_NO COURSE_FEE 1 C1 1000 2 C2 1500 1 C4 2000 4 C3 1000 4 C1 1000 2 C5 2000>

{Huomaa, että monella kurssilla on sama kurssimaksu. } Tässä COURSE_FEE ei voi yksin päättää arvoa COURSE_NO tai STUD_NO; COURSE_FEE yhdessä STUD_NO:n kanssa ei voi päättää kurssin COURSE_NO arvoa; COURSE_FEE yhdessä COURSE_NO:n kanssa ei voi päättää STUD_NO:n arvoa; Näin ollen COURSE_FEE ei ole prime-attribuutti, koska se ei kuulu ainoaan ehdokasavaimeen {STUD_NO, COURSE_NO}; Mutta COURSE_NO -> COURSE_FEE, eli KURSSIMAKSUS on riippuvainen COURSE_NO:sta, joka on ehdokasavaimen oikea osajoukko. Ei-prime-attribuutti COURSE_FEE on riippuvainen ehdokasavaimen oikeasta osajoukosta, joka on osittainen riippuvuus, joten tämä relaatio ei ole 2NF:ssä. Muuntaaksesi yllä olevan suhteen 2NF:ksi, meidän on jaettava taulukko kahteen taulukkoon, kuten: Taulukko 1: STUD_NO, COURSE_NO Taulukko 2: COURSE_NO, COURSE_FEE

   Table 1     Table 2  STUD_NO COURSE_NO COURSE_NO COURSE_FEE  1 C1 C1 1000 2 C2 C2 1500 1 C4 C3 1000 4 C3 C4 2000 4 C1 C5 2000  2 C5>

Huomautus - 2NF yrittää vähentää redundanttien tietojen tallentumista muistiin. Esimerkiksi, jos C1-kurssilla on 100 opiskelijaa, meidän ei tarvitse tallentaa sen Maksua 1000:na kaikille 100 tietueelle, vaan kun voimme tallentaa sen toiseen taulukkoon, koska C1-kurssimaksu on 1000.

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

AB ->C [A ja B yhdessä määrittävät C] BC -> D [B ja C yhdessä määrittävät D]>

Vastaus:

Ensin voimme tarkistaa, onko osittaisia ​​riippuvuuksia. Osittainen riippuvuus ilmenee, kun ei-prime-attribuutti (ei osa ehdokasavainta) riippuu vain osasta ehdokasavainta.

Relaation R ehdokasavaimet voidaan määrittää etsimällä kunkin attribuutin sulkeminen:

AB määrittää jokaisen avaimen.

Tarkastetaan nyt osittaisia ​​riippuvuuksia:

Tässä suhteessa ei ole osittaisia ​​riippuvuuksia, koska kukin ei-prime-attribuutti (C ja D) riippuu kaikista ehdokasavaimista, joihin se on osa (AB ja BC, vastaavasti).

Siksi relaatio R on jo 3. normaalimuodossa (3NF), koska se täyttää 1. normaalimuodon (1NF) ja 2. normaalimuodon (2NF) ehdot eikä sillä ole transitiivisia riippuvuuksia.

Johtopäätös

Yhteenvetona voidaan todeta, että 2NF on tietokannan normalisoinnin peruskäsite, joka auttaa poistamaan osittaisia ​​riippuvuuksia relaatiotietokannastasi. 2NF-sääntöjen noudattaminen auttaa järjestämään tietokantasi poikkeavuuksien välttämiseksi ja varmistamaan tietojen eheyden, mikä helpottaa tietojen tallentamista ja hakemista.