Skirtumas tarp normalizavimo ir denormalizavimo

Skirtumas tarp normalizavimo ir denormalizavimo
Skirtumas tarp normalizavimo ir denormalizavimo

Video: Skirtumas tarp normalizavimo ir denormalizavimo

Video: Skirtumas tarp normalizavimo ir denormalizavimo
Video: Dainora Eigminienė. literatūra ir istorija yra pamatas formuojantis mokinio asmenybei 2024, Lapkritis
Anonim

Normalizavimas prieš denormalizavimą

Reliacines duomenų bazes sudaro ryšiai (susijusios lentelės). Lentelės sudarytos iš stulpelių. Jei lentelės yra dvi didelės (t. y. per daug stulpelių vienoje lentelėje), gali atsirasti duomenų bazės anomalijų. Jei lentelės yra dvi mažos (t. y. duomenų bazė sudaryta iš daug mažesnių lentelių), užklausų pateikimas būtų neefektyvus. Normalizavimas ir denormalizavimas yra du procesai, naudojami duomenų bazės našumui optimizuoti. Normalizavimas sumažina perteklinius perteklius duomenų lentelėse. Denormalizavimas (normalizavimo atvirkštinis) prideda perteklinius duomenis arba grupės duomenis.

Kas yra normalizavimas?

Normalizavimas yra procesas, kuris atliekamas siekiant sumažinti reliacinių duomenų bazių duomenų perteklių. Šis procesas daugiausia suskirstys dideles lenteles į mažesnes lenteles su mažiau perteklinių (vadinamų „įprastų formų“). Šios mažesnės lentelės bus susietos viena su kita per gerai apibrėžtus ryšius. Gerai normalizuotoje duomenų bazėje bet kokiems duomenų pakeitimams ar modifikacijoms reikės modifikuoti tik vieną lentelę. Pirmąją normaliąją formą (1NF), antrąją normalią formą (2NF) ir trečiąją normaliąją formą (3NF) pristatė Edgaras F. Coddas. Boyce-Codd normalią formą (BCNF) 1974 metais pristatė Coddas ir Raymondas F. Boyce. Buvo apibrėžtos aukštesnės normalios formos (4NF, 5NF ir 6NF), tačiau jos naudojamos retai.

Lentelė, atitinkanti 1NF, užtikrina, kad ji iš tikrųjų atspindi ryšį (t. y. joje nėra jokių pasikartojančių įrašų) ir joje nėra jokių reliacinės vertės atributų (t.e. visi atributai turi turėti atomines reikšmes). Kad lentelė atitiktų 2NF, ji turėtų atitikti 1NF, o bet koks atributas, kuris nėra jokio kandidato rakto dalis (t. y. ne pirminiai atributai), turėtų visiškai priklausyti nuo bet kurio lentelėje pateikto rakto. Pagal Codd apibrėžimą, lentelė yra 3NF, tada ir tik tada, kai ta lentelė yra antrosios normalios formos (2NF), o kiekvienas lentelės atributas, nepriklausantis kandidato raktui, turėtų tiesiogiai priklausyti nuo kiekvieno tos lentelės kandidato raktas. BCNF (taip pat žinomas kaip 3.5NF) užfiksuoja kai kurias anomalijas, kurių nesprendžia 3NF.

Kas yra denormalizacija?

Denormalizavimas yra atvirkštinis normalizavimo procesas. Denormalizacija veikia pridedant perteklinių duomenų arba sugrupuojant duomenis, kad būtų optimizuotas našumas. Nors perteklinių duomenų pridėjimas skamba neproduktyviai, kartais denormalizavimas yra labai svarbus procesas siekiant pašalinti kai kuriuos reliacinės duomenų bazės programinės įrangos trūkumus, dėl kurių gali būti taikomos didelės nuobaudos dėl normalizuotų duomenų bazių (net pritaikytų didesniam našumui). Taip yra todėl, kad kelių santykių (kurie yra normalizavimo rezultatai) sujungimas, kad būtų gautas rezultatas į užklausą, kartais gali būti lėtas, priklausomai nuo faktinio fizinio duomenų bazių sistemų įgyvendinimo.

Kuo skiriasi normalizavimas ir denormalizavimas?

– Normalizavimas ir denormalizavimas yra du visiškai priešingi procesai.

– Normalizavimas – tai didesnių lentelių padalijimas į mažesnes, sumažinant perteklinius duomenis, o denormalizavimas – tai perteklinių duomenų pridėjimo procesas, siekiant optimizuoti našumą.

– Normalizavimas atliekamas siekiant išvengti duomenų bazių anomalijų.

– Denormalizacija dažniausiai atliekama siekiant pagerinti duomenų bazės skaitymo našumą, tačiau dėl papildomų denormalizavimui naudojamų apribojimų rašymas (t. y. įterpimo, atnaujinimo ir trynimo operacijos) gali sulėtėti. Todėl denormalizuota duomenų bazė gali pasiūlyti prastesnį rašymo našumą nei normalizuota duomenų bazė.

– Dažnai rekomenduojama „normalizuoti, kol skauda, denormalizuoti, kol pradės veikti“.

Rekomenduojamas: