logo

Otrā parastā forma (2NF)

Pirmā parastā forma (1NF) nenovērš dublēšanos, bet drīzāk tā novērš atkārtotas grupas. Tā vietā, lai ierakstā būtu vairākas viena veida datu kolonnas (0NF vai Unnormalized forma), jūs noņemat atkārtoto informāciju atsevišķā relācijā un attēlojat tās kā rindas. Tas ir tas, kas veido 1NF.

Otrā parastā forma

Otrā parastā forma (2NF) ir balstīta uz pilnībā funkcionālas atkarības koncepciju. Otrā parastā forma attiecas uz attiecībām ar saliktajām atslēgām, tas ir, attiecībām ar primāro atslēgu, kas sastāv no diviem vai vairākiem atribūtiem. Attiecība ar viena atribūta primāro atslēgu automātiski ir vismaz 2NF. Atjaunināšanas anomāliju dēļ var rasties attiecības, kas nav iekļautas 2NF. Lai relācija būtu otrajā normālā formā, tai jābūt pirmajā normālā formā, un relācija nedrīkst saturēt daļēju atkarību. Relācija ir 2NF, ja tai nav daļējas atkarības, t.i., neviens atribūts, kas nav galvenais atribūts (atribūti, kas nav nevienas kandidātatslēgas daļa) nav atkarīgs no jebkuras tabulas kandidātatslēgas pareizas apakškopas. Citiem vārdiem sakot,

Relācija, kas ir pirmajā parastajā formā un katrs atribūts, kas nav primārā atslēga, ir pilnībā funkcionāli atkarīga no primārās atslēgas, tad relācija ir otrajā normālā formā (2NF).



Piezīme - Ja atbilstošā kandidāta atslēgas apakškopa nosaka atribūtu, kas nav primārais, tas tiek izsaukts daļēja atkarība . The normalizēšana 1NF attiecības ar 2NF ietver daļēju atkarību likvidēšana . Ja pastāv daļēja atkarība, mēs no relācijas noņemam daļēji atkarīgo(-os) atribūtu(-us), ievietojot tos jaunā relācijā kopā ar to determinanta kopiju. Apsveriet tālāk sniegtos piemērus.

1. piemērs: Apsveriet tālāk sniegto tabulu.

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

{Ņemiet vērā, ka daudziem kursiem ir vienāda maksa par kursu. } Šeit COURSE_FEE nevar vien noteikt COURSE_NO vai STUD_NO vērtību; COURSE_FEE kopā ar STUD_NO nevar noteikt COURSE_NO vērtību; COURSE_FEE kopā ar COURSE_NO nevar noteikt STUD_NO vērtību; Tādējādi COURSE_FEE nebūtu primārais atribūts, jo tas nepieder pie vienīgās kandidāta atslēgas {STUD_NO, COURSE_NO} ; Bet, COURSE_NO -> COURSE_FEE, t.i., COURSE_FEE ir atkarīgs no COURSE_NO, kas ir pareiza kandidāta atslēgas apakškopa. Atribūts COURSE_FEE, kas nav galvenais atribūts, ir atkarīgs no atbilstošas ​​kandidāta atslēgas apakškopas, kas ir daļēja atkarība, tāpēc šī sakarība nav 2NF. Lai pārvērstu iepriekš minēto attiecību par 2NF, mums ir jāsadala tabula divās tabulās, piemēram: 1. tabula: STUD_NO, COURSE_NO 2. tabula: 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>

Piezīme - 2NF mēģina samazināt atmiņā saglabāto lieko datu apjomu. Piemēram, ja ir 100 studenti, kas apgūst C1 kursu, mums nav jāsaglabā tā maksa kā 1000 par visiem 100 ierakstiem, tā vietā, kad mēs varam to saglabāt otrajā tabulā, jo kursa maksa par C1 ir 1000.

2. piemērs: Apsveriet šādas funkcionālās atkarības attiecībā uz R (A, B, C, D )

AB ->C [A un B kopā nosaka C] BC -> D [B un C kopā nosaka D]>

Atbilde:

Pirmkārt, mēs varam pārbaudīt, vai nav daļējas atkarības. Daļēja atkarība rodas, ja atribūts, kas nav galvenais atribūts (nav nevienas kandidātatslēgas daļa) ir atkarīgs tikai no kandidātatslēgas daļas.

Relācijas R kandidātatslēgas var noteikt, atrodot katra atribūta slēgšanu:

AB nosaka katru taustiņu.

Tagad pārbaudīsim daļējas atkarības:

Šajā saistībā nav daļēju atkarību, jo katrs atribūts, kas nav galvenais atribūts (C un D) ir atkarīgs no visas kandidātatslēgas(-ām), kurā(-ās) tā ir daļa (attiecīgi AB un BC).

Tāpēc relācija R jau ir 3. parastajā formā (3NF), jo tā atbilst 1. parastās formas (1NF) un 2. parastās formas (2NF) nosacījumiem un tai nav nekādu pārejošu atkarību.

Secinājums

Noslēgumā jāsaka, ka 2NF ir datu bāzes normalizācijas pamatjēdziens, kas palīdz noņemt daļējas atkarības no jūsu relāciju datu bāzes. 2NF noteikumu ievērošana palīdz sakārtot datu bāzi, lai izvairītos no anomālijām un nodrošinātu datu integritāti, atvieglojot datu uzglabāšanu un izgūšanu.