1NF vs 2NF vs 3NF
Normalizavimas yra procesas, kuris atliekamas siekiant sumažinti atleidimų skaičių, esantį santykinėse duomenų bazėse esančiuose duomenyse. Šis procesas daugiausia padalins dideles lenteles į mažesnes lenteles su mažiau atleidimų. Šios mažesnės lentelės bus susijusios viena su kita per tiksliai apibrėžtus ryšius. Tinkamai normalizuotoje duomenų bazėje bet kokius duomenų pakeitimus ar modifikacijas reikės pakeisti tik viena lentele. Pirmąją normaliąją formą (1NF), antrąją normaliąją formą (2NF) ir trečiąją normaliąją formą (3NF) įvedė Edgaras F. Coddas, kuris taip pat yra reliacinio modelio ir normalizacijos koncepcijos išradėjas..
Kas yra 1NF?
1NF yra pirmoji normali forma, kurioje pateikiami minimalūs reikalavimai, keliami normalizuojant reliacinę duomenų bazę. 1NF atitinkanti lentelė garantuoja, kad ji iš tikrųjų atspindi santykį (t. Y. Joje nėra jokių įrašų, kurie kartojasi), tačiau nėra visuotinai priimto 1NF apibrėžimo. Viena svarbi savybė yra tai, kad 1NF atitinkančioje lentelėje negalėjo būti jokių atributų, kurie yra santykinai vertingi (t.y. visi atributai turėtų turėti atomines reikšmes)..
Kas yra 2NF?
2NF yra antroji įprasta forma, naudojama reliacinėse duomenų bazėse. Kad lentelė atitiktų 2NF, jos turėtų būti laikomasi 1NF, o bet kuris atributas, kuris nėra nė vieno kandidato rakto dalis (t. Y. Nepaprastieji atributai), turėtų visiškai priklausyti nuo bet kurio iš kandidato raktų lentelėje..
Kas yra 3NF?
3NF yra trečioji normalioji forma, naudojama reliacinių duomenų bazių normalizavimui. Pagal Codd apibrėžimą, lentelė yra 3NF, jei ir tik tada, jei ta lentelė yra antros normalios formos (2NF), o kiekvienas lentelės atributas, nepriklausantis kandidato raktui, turėtų tiesiogiai priklausyti. ant kiekvieno kandidato tos lentelės rakto. 1982 m. Carlo Zaniolo pateikė skirtingai išreikštą 3NF apibrėžimą. Lentelėse, kurios atitinka 3NF, paprastai nėra anomalijų, atsirandančių įdedant, ištrinant ar atnaujinant įrašus lentelėje.
Kuo skiriasi 1NF nuo 2NF ir 3NF?
1NF, 2NF ir 3NF yra normalios formos, naudojamos reliacinėse duomenų bazėse, siekiant sumažinti perteklių lentelėse. 3NF yra laikomas stipresne normaliąja forma nei 2NF, ir yra laikomas stipresne normaliąja forma nei 1NF. Taigi, norint gauti lentelę, atitinkančią 3NF formą, reikės suskaidyti 2NF esančią lentelę. Panašiai, norint gauti lentelę, atitinkančią 2NF, reikės suskaidyti lentelę, kuri yra 1NF. Tačiau jei 1NF atitinkančioje lentelėje yra kandidatų raktai, kuriuos sudaro tik vienas požymis (t. Y. Nesudėtiniai kandidato raktai), tokia lentelė automatiškai atitiktų 2NF. Skildami lentelėmis, atlikdami užklausas, turėsite papildomų prisijungimo operacijų (arba Dekarto gaminių). Tai padidins skaičiavimo laiką. Kita vertus, lentelėse, kurios atitinka stipresnes normalias formas, bus mažiau atleidimų nei lentelėse, kurios atitinka tik silpnesnes normalias formas.