
Apspriedīsim atšķirības starp 3NF un BCNF ar zemāk redzamo salīdzinājumu tabulu.
Salīdzinājuma diagramma
Salīdzinājuma pamats | 3NF | BCNF |
---|---|---|
Koncepcija | Nevienam 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ība | 3NF var iegūt, nezaudējot visas atkarības. | BCNF var nebūt saglabātas atkarības. |
Sadalīšanās | Zaudē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.

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ā.

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.

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.

Galvenās atšķirības starp 3NF un BCNF
- 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.
- 3NF var iegūt, nezaudējot atkarības atkarību. Tomēr BCNF iegūšanas laikā atkarību nevar saglabāt.
- 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.