Ang layunin ng Boyce-Codd Normal Form ay pataasin ang integridad ng data sa pamamagitan ng pag-aayos ng mga column at table ng relational database upang makamit ang normalization ng database. Nangyayari ang normalization ng database kapag may mga naitatag na ugnayan sa pagitan ng mga talahanayan at kapag ang mga talahanayan ay may tinukoy na mga panuntunan upang gawing mas flexible ang database at upang mapanatili ang data.
Ang mga layunin ng pag-normalize ng database ay alisin ang mga redundant na data at upang matiyak na may katuturan ang mga dependency ng data. Ang isang database ay na-normalize kapag ang parehong data ay hindi nakaimbak sa higit sa isang talahanayan at kapag ang kaugnay na data lamang ang nakaimbak sa isang talahanayan.
Origin of Boyce-Codd Normal Form
Ang pagsunod sa isang serye ng mga alituntunin ay tiyaking na-normalize ang mga database. Ang mga alituntuning ito ay tinutukoy bilang mga normal na anyo at binibilang mula isa hanggang lima. Ang isang relational database ay inilalarawan bilang normalized kung ito ay nakakatugon sa unang tatlong anyo: 1NF, 2NF, at 3NF.
BCNF ay ginawa bilang extension sa ikatlong normal na anyo, o 3NF, noong 1974 nina Raymond Boyce at Edgar Codd. Ang mga lalaki ay nagtatrabaho upang lumikha ng mga schema ng database na nagpapaliit ng mga redundancies na may layuning bawasan ang oras ng pag-compute. Ang ikatlong normal na form ay nag-aalis ng mga column na hindi nakadepende sa pangunahing key bilang karagdagan sa pagtugon sa mga alituntunin sa una at pangalawang normal na mga form. Ang BCNF, na kung minsan ay tinutukoy bilang 3.5NF, ay nakakatugon sa lahat ng mga kinakailangan ng 3NF at nangangailangan na ang mga key ng kandidato ay walang anumang dependency sa iba pang mga katangian sa isang talahanayan.
Sa panahon ng paglikha ng BCNF, si Boyce ay isa sa mga pangunahing developer ng Structured English Query Language, na kalaunan ay na-standardize bilang SQL, na nagpahusay sa pagkuha ng data sa pamamagitan ng paggamit ng relational na modelo ni Codd. Sa modelong ito, sinabi ni Codd na ang pagiging kumplikado ng istruktura ng mga database ay maaaring mabawasan, na nangangahulugang ang mga query ay maaaring maging mas malakas at flexible.
Gamit ang kanyang mga relational database insight, tinukoy ni Codd ang mga alituntunin ng 1NF, 2NF, at 3NF. Nakipagtulungan siya kay Boyce para tukuyin ang BCNF.
Candidate Keys at BCNF
Ang candidate key ay isang column o kumbinasyon ng mga column sa isang table na bumubuo ng natatanging key sa database. Ang kumbinasyon ng mga katangian ay kinikilala ang isang database record nang hindi nagre-refer sa anumang iba pang data. Ang bawat talahanayan ay maaaring maglaman ng maramihang mga susi ng kandidato, alinman sa mga ito ay maaaring maging kwalipikado bilang pangunahing susi. Ang talahanayan ay naglalaman lamang ng isang pangunahing key.
Ang mga susi ng kandidato ay dapat na natatangi.
Ang isang relasyon ay nasa BCNF kung ang bawat determinant ay isang susi ng kandidato. Isaalang-alang ang isang talahanayan ng database na nag-iimbak ng impormasyon ng empleyado at may mga katangiang,,, at.
Sa talahanayang ito, tinutukoy ng field ang first_name at last_name. Katulad nito, tinutukoy ng tuple (,) ang.
Employee Id | Pangalan | Apelyido | Pamagat |
13133 | Emily | Smith | Manager |
13134 | Jim | Smith | Associate |
13135 | Emily | Jones | Associate |
Ang candidate key para sa database na ito ay ang dahil ito lang ang value na hindi magagamit ng isa pang row.
FAQ
Ano ang mga kinakailangan para sa Boyce-Codd Normal Form?
Ang isang talahanayan ay nakakatugon sa mga kinakailangan ng Boyce-Codd Normal Form (BCNF) kung ang lahat ng determinant ay mga susi ng kandidato at ang kaugnayan ay nasa Third Normal Form (3NF). Natutugunan ng 3NF ang mga panuntunan para sa First Normal Form (1NF) at Second Normal Form (2NF), at lahat ng column ay nakadepende sa primary key.
Ano ang pagkakaiba ng Fourth Normal Form at Boyce-Codd Normal Form?
Ang Fourth Normal Form (4NF) ay isang level pagkatapos ng Boyce-Codd Normal Form (BCNF) sa normalization ng database. Natutugunan ng 4NF ang mga kinakailangan sa 3NF tulad ng ginagawa ng BCNF. Gayunpaman, ang mga talahanayan ng 4NF ay walang mga multivalued na dependency, o maraming-sa-isang relasyon, habang ang mga talahanayan ng BCNF ay maaaring may mga dependency na ito.