Ieteicams, 2024

Redaktora Izvēle

Starpība starp 3NF un BCNF

Normalizācija ir metode, kas novērš redundanci no attiecības, tādējādi samazinot ievietošanas, dzēšanas un atjaunināšanas anomālijas, kas pasliktina datubāzu darbību. Šajā rakstā mēs diferencēsimies starp divām augstākām normālām formām, ti, 3NF un BCNF. Galvenā atšķirība starp 3NF un BCNF ir tā, ka 3NF novērš transitīvo atkarību no attiecības un tabulas, lai tā būtu BCNF, trivialai funkcionālajai atkarībai X-> Y attiecībās jābūt tikai tad, ja X ir super atslēga.

Apspriedīsim atšķirības starp 3NF un BCNF ar zemāk redzamo salīdzinājumu tabulu.

Salīdzinājuma diagramma

Salīdzinājuma pamats3NFBCNF
KoncepcijaNevienam ne-prime atribūtam jābūt atkarīgam no kandidāta atslēgas.Jebkurai triviālajai atkarībai attiecībās R sakot X-> Y, X ir jābūt relatīvajam R taustiņam.
Atkarība3NF var iegūt, nezaudējot visas atkarības.BCNF var nebūt saglabātas atkarības.
SadalīšanāsZaudējumus nesadalot var sasniegt 3NF.BCNF ir grūti sasniegt zaudējumus bez sadalīšanās.

3NF definīcija

Tabula vai saikne tiek uzskatīta par Trešajā normālā formā tikai tad, ja tabula jau ir 2NF un nav nekādas prime atribūta, kas tranzītam nav atkarīgs no attiecīga kandidāta atslēgas .

Tāpēc, pirms es risinu tabulas normalizācijas procesu 3NF, ļaujiet man apspriest kandidāta atslēgu. Kandidāta atslēga ir minimāla super atslēga, ti, super atslēga ar minimāliem atribūtiem, kas var definēt visus saiknes atribūtus. Tātad, normalizējot tabulu, vispirms jūs atpazīstat konkrētās attiecības kandidāta atslēgu. Atribūti, kas ir daļa no kandidāta atslēgas, ir primārie atribūti, un atribūti, kas nav kandidāta atslēgas daļa, ir ne-prime atribūti .

Tagad, ja mums ir attiecība R (A, B, C, D, E, F) un mums ir šādas funkciju atkarības attiecībā uz attiecību R.

Ievērojot funkcionālās atkarības, varam secināt, ka AB ir kandidāta atslēga attiecībām R, jo, izmantojot AB atslēgu, mēs varam meklēt visu atribūtu vērtību attiecībās R. Tātad, A, B kļūst par galvenajiem atribūtiem, kad tie kopā veido kandidāta atslēgu. Atribūti C, D, E, F kļūst par ne-prime atribūtiem, jo ​​neviena no tām nav kandidāta atslēgas daļa.

Tabula ir iekļauta 2NF, jo ne-prime atribūts ir daļēji atkarīgs no kandidāta atslēgas

Bet starp funkcionālajām atkarībām tiek novērota transitīva atkarība, jo atribūts F nav tieši atkarīgs no AB kandidāta. Tā vietā atribūts F ir atkarīgs no AB kandidāta atslēgas, izmantojot atribūtu D. Līdz atribūtam D ir kāda vērtība, ko mēs varam sasniegt, piešķirot F vērtību no kandidāta atslēgas AB. Gadījumā, ja atribūta D vērtība ir NULL, mēs nevaram atrast / meklēt F vērtību ar kandidāta atslēgas AB palīdzību. Tas ir iemesls, kāpēc 3NF pieprasa novērst transitīvo atkarību no attiecībām.

Tātad, lai atceltu šo transitīvo atkarību, mums ir jāsadala attiecības R. Kamēr dalot attiecības vienmēr novietojiet kandidāta atslēgu un visus atribūtus, kas ir atkarīgi no šī kandidāta atslēgas pirmajā sakarībā. Nākamajā sadalītajā sakarībā mēs novietosim atribūtu, kas izraisa transitīvu atkarību, kā arī atribūtus, kas no tā atkarīgi otrajā attiecībā.

Tagad tabulas R1 un R2 atrodas 3NF, jo tām nav daļēju un transitīvu atkarību. Saistībā ar R1 (A, B, C, D, E) ir kandidāta atslēga AB, bet attiecībā uz R2 (D, E), kā kandidāta atslēgu, ir D.

BCNF definīcija

BCNF tiek uzskatīts par spēcīgāku par 3NF. Attiecībai R jābūt BCNF jābūt 3NF . Un, ja nav triviāla funkcionālā atkarība A -> B, attiecībā pret R ir A, tad tai ir jābūt R attiecībai. Kā zināms, Super atslēga ir atslēga, kurai ir viens atribūts vai atribūtu kopums, kas nosaka visu attiecības atribūti.

Tagad pārejiet uz piemēru, lai labāk izprastu BCNF. Pieņemsim, pieņemsim, ka mums ir attiecības R (A, B, C, D, F), kurām ir šādas funkcionālās atkarības.

Ievērojot attiecību R, mēs varam teikt, ka A un BF ir R attiecības pretendentu atslēgas, jo tās vienatnē R var meklēt visu atribūtu vērtību. Tātad, A, B, F ir galvenie atribūti, bet C un D ir ne-prime atribūti. Iepriekš minētajās funkcionālajās atkarībās nav novērota transitīva atkarība. Tādējādi tabula R ir 3NF.

Bet viena funkcionālā atkarība, ti, D -> F, pārkāpj BCNF definīciju, saskaņā ar kuru, ja pastāv D -> F, tad D ir super atslēga, kas šeit nav. Tāpēc mēs sadalīsim attiecību R.

Tagad tabulas R1 nd R2 atrodas BCNF. Saistībai R1 ir divas kandidātu atslēgas A un B, R1 nenozīmīga funkcionālā atkarība, ti, A-> BCD un B -> ACD, turiet BCNF, jo A un B ir super atslēgas attiecībām. Relācijai R2 ir D kā tās kandidāta atslēga, un funkcionālā atkarība D -> F arī pieder BCNF, jo D ir Super Key.

Galvenās atšķirības starp 3NF un BCNF

  1. 3NF norāda, ka nevienam no primārajam atribūtam nav jābūt tranzītam atkarīgam no attiecības pretendenta atslēgas. No otras puses, BCNF norāda, ka gadījumā, ja attiecībai ir triviāla funkcionālā atkarība X - Y; tad X jābūt super atslēgai.
  2. 3NF var iegūt, nezaudējot atkarības atkarību. Tomēr BCNF iegūšanas laikā atkarību nevar saglabāt.
  3. 3NF var sasniegt, nezaudējot nekādu informāciju no vecās tabulas, bet, iegūstot BCNF, mēs varam zaudēt informāciju no vecās tabulas.

Secinājums:

BCNF ir daudz ierobežojošāks nekā 3NF, kas palīdz normalizēt tabulu. Saistībā ar 3NF ir atstāta minimālā atlaišana, ko tālāk atceļ BCNF.

Top