Pagkakaiba sa pagitan ng 3NF at BCNF

Pagkakaiba sa pagitan ng 3NF at BCNF
Pagkakaiba sa pagitan ng 3NF at BCNF

Video: Pagkakaiba sa pagitan ng 3NF at BCNF

Video: Pagkakaiba sa pagitan ng 3NF at BCNF
Video: Гибкий маркетинг - пошаговое руководство 2024, Hulyo
Anonim

3NF vs BCNF

Ang Normalization ay isang proseso na isinasagawa upang mabawasan ang mga redundancies na naroroon sa data sa mga relational na database. Ang prosesong ito ay pangunahing hahatiin ang malalaking talahanayan sa mas maliliit na talahanayan na may mas kaunting mga redundancy. Ang mga mas maliliit na talahanayan na ito ay magkakaugnay sa isa't isa sa pamamagitan ng mahusay na tinukoy na mga relasyon. Sa isang mahusay na na-normalize na database, ang anumang pagbabago o pagbabago sa data ay mangangailangan ng pagbabago lamang ng isang talahanayan. Ang Third Normal Form (3NF) ay ipinakilala noong 1971 ni Edgar F. Codd, na siya ring imbentor ng relational model at ang konsepto ng normalisasyon. Ang Boyce-Codd Normal Form (BCNF) ay ipinakilala noong 1974 nina Codd at Raymond F. Boyce.

Ano ang 3NF?

Ang 3NF ay ang Third normal form na ginagamit sa relational database normalization. Ayon sa kahulugan ng Codd, ang isang talahanayan ay sinasabing nasa 3NF, kung at kung lamang, ang talahanayang iyon ay nasa pangalawang normal na anyo (2NF), at ang bawat katangian sa talahanayan na hindi kabilang sa susi ng kandidato ay dapat na direktang nakadepende sa bawat susi ng kandidato ng talahanayang iyon. Noong 1982, gumawa si Carlo Zaniolo ng naiibang ipinahayag na kahulugan para sa 3NF. Ang mga talahanayan na sumusunod sa 3NF sa pangkalahatan ay hindi naglalaman ng mga anomalya na nangyayari kapag naglalagay, nagtatanggal o nag-a-update ng mga tala sa talahanayan.

Ano ang BCNF?

Ang BCNF (kilala rin bilang 3.5NF) ay isa pang normal na anyo na ginagamit sa relational database normalization. Ito ay ipinakilala upang makuha ang ilang mga anomalya na hindi natugunan ng 3NF. Ang isang talahanayan ay sinasabing nasa BCNF, kung at kung, para sa bawat isa sa mga dependency ng form A → B na hindi mahalaga, ang A ay isang super-key. Ang pagbubulok ng talahanayan na wala sa normal na anyo ng BCNF ay hindi ginagarantiyahan ang paggawa ng mga talahanayan sa anyo ng BCNF (habang pinapanatili ang mga dependency na nasa orihinal na talahanayan).

Ano ang pagkakaiba ng 3NF at BCNF?

Parehong 3NF at BCNF ay mga normal na anyo na ginagamit sa mga relational na database upang mabawasan ang mga redundancies sa mga talahanayan. Sa isang talahanayan na nasa normal na anyo ng BCNF, para sa bawat hindi walang kuwentang functional dependency ng form A → B, ang A ay isang super-key samantalang, ang isang talahanayan na sumusunod sa 3NF ay dapat nasa 2NF, at bawat hindi prime dapat direktang nakadepende ang attribute sa bawat candidate key ng table na iyon. Ang BCNF ay itinuturing na isang mas malakas na normal na anyo kaysa sa 3NF at ito ay binuo upang makuha ang ilan sa mga anomalya na hindi makuha ng 3NF. Ang pagkuha ng table na sumusunod sa BCNF form ay mangangailangan ng decomposing table na nasa 3NF. Ang agnas na ito ay magreresulta sa karagdagang mga operasyon ng pagsali (o mga produkto ng Cartesian) kapag nagsasagawa ng mga query. Ito ay magpapataas ng oras ng pagkalkula. Sa kabilang banda, ang mga talahanayan na sumusunod sa BCNF ay magkakaroon ng mas kaunting mga redundancy kaysa sa mga talahanayan na sumusunod lamang sa 3NF. Higit pa rito, kadalasan, posibleng makakuha ng table na sumusunod sa 3NF nang hindi nahahadlangan ang pag-iingat ng dependency at lossless na pagsali. Ngunit hindi ito palaging posible sa BCNF.

Inirerekumendang: