Normaliseerimise ja denormaliseerimise erinevus

Normaliseerimine vs denormaliseerimine

Suhteandmebaasid koosneb suhetest (seotud tabelid). Lauad koosnevad veergudest. Kui tabelid on kaks suurt (st. Ühes tabelis on liiga palju veerge), võivad tekkida andmebaasi kõrvalekalded. Kui tabelid on kaks väikest (st andmebaas koosneb paljudest väiksematest tabelitest), oleks see päringutele ebaefektiivne. Normaliseerimine ja denormaliseerimine on kaks protsessi, mida kasutatakse andmebaasi jõudluse optimeerimiseks. Normaliseerimine viib andmetabelites esinevate koondamiste miinimumini. Denormaliseerimine (normaliseerimise tagasikäik) lisab koondatud või rühma andmeid.

Mis on normaliseerimine?

Normaliseerimine on protsess, mis viiakse läbi selleks, et minimeerida koondamisi, mis esinevad relatsiooniandmebaasides sisalduvates andmetes. Selle protsessi käigus jagatakse suured tabelid peamiselt väiksemateks koondatud tabeliteks väiksemateks tabeliteks (nn “tavalised vormid”). Need väiksemad tabelid on omavahel täpselt määratletud suhete kaudu seotud. Hästi normaliseeritud andmebaasis nõuab andmete muutmine või muutmine ainult ühte tabelit. Esimese normaalvormi (1NF), teise normaalvormi (2NF) ja kolmanda normaalvormi (3NF) tutvustas Edgar F. Codd. Boyce-Coddi normaalvormi (BCNF) tutvustasid 1974. aastal Codd ja Raymond F. Boyce. Kõrgemad normaalsed vormid (4NF, 5NF ja 6NF) on määratletud, kuid neid kasutatakse harva.

Tabel, mis vastab 1NF-le, kinnitab, et see esindab tegelikult seost (st see ei sisalda ühtegi korduvat kirjet) ega sisalda atribuute, mis oleksid relatsiooniliselt väärtustatud (st kõik atribuudid peaksid omama aatomiväärtusi). Et tabel vastaks 2NF-ile, peaks see vastama ka 1NF-le ja iga atribuut, mis ei kuulu ühegi kandidaatvõtme alla (s.o mitte peamised atribuudid), peaks täielikult sõltuma mis tahes tabelis pakutavast võtmest. Coddi definitsiooni kohaselt öeldakse, et tabel on 3NF-s ainult siis ja ainult siis, kui see tabel on teisel tavalisel kujul (2NF) ja iga tabeli atribuut, mis ei kuulu kandidaatvõtmesse, peaks otseselt sõltuma igast selle tabeli kandidaatide võti. BCNF (tuntud ka kui 3.5NF) fikseerib mõned kõrvalekalded, mida 3NF ei käsitle.

Mis on denormaliseerimine?

Denormaliseerimine on normaliseerimisprotsessi vastupidine protsess. Denormaliseerimine toimivuse optimeerimiseks lisab koondatud andmed või grupeerib andmed. Kuigi koondatud andmete lisamine kõlab vastupidiselt, on denormaliseerimine mõnikord väga oluline protsess relatsiooniandmebaasi tarkvara mõne puuduse kõrvaldamiseks, mis võib normaliseeritud andmebaasidega (isegi suurema jõudluse jaoks häälestatud) põhjustada suuri jõudluskaristusi. Selle põhjuseks on asjaolu, et mitme suhte (mis on normaliseerimise tulemus) ühendamine päringu tulemuse saamiseks võib mõnikord olla aeglane, sõltuvalt andmebaasisüsteemide tegelikust füüsilisest rakendamisest.

Mis vahe on normaliseerimisel ja denormaliseerimisel??

- Normaliseerimine ja denormaliseerimine on kaks protsessi, mis on täiesti vastupidised.

- Normaliseerimine on protsess, kus suuremad tabelid jagatakse väiksemateks, vähendades üleliigseid andmeid, samas kui normaliseerimine on üleliigsete andmete lisamise protsess toimivuse optimeerimiseks..

- Normaliseerimine viiakse läbi andmebaaside anomaaliate vältimiseks.

- Denormaliseerimine viiakse tavaliselt läbi andmebaasi lugemistulemuste parandamiseks, kuid denormaliseerimiseks kasutatavate täiendavate piirangute tõttu võib kirjutamine (st sisestamise, värskendamise ja kustutamise toimingud) muutuda aeglasemaks. Seetõttu võib denormaliseeritud andmebaas pakkuda halvemat kirjutamisjõudlust kui normaliseeritud andmebaas.

- Sageli soovitatakse teil normaliseerida, kuni see valutab, denormaliseerida, kuni see töötab..