Erinevus normaliseerimise ja denormaliseerimise vahel

Erinevus normaliseerimise ja denormaliseerimise vahel
Erinevus normaliseerimise ja denormaliseerimise vahel

Video: Erinevus normaliseerimise ja denormaliseerimise vahel

Video: Erinevus normaliseerimise ja denormaliseerimise vahel
Video: Märjamaa Gümnaasiumi Õpetajate päev 2019 - Reportaaž 2024, November
Anonim

Normaliseerimine vs denormaliseerimine

Relatsiooniandmebaasid koosnevad relatsioonidest (seotud tabelitest). Tabelid koosnevad veergudest. Kui tabelid on kaks suurt (st ühes tabelis 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äringute tegemiseks ebaefektiivne. Normaliseerimine ja denormaliseerimine on kaks protsessi, mida kasutatakse andmebaasi jõudluse optimeerimiseks. Normaliseerimine minimeerib andmetabelites esinevad liiasused. Denormaliseerimine (normaliseerimise vastupidine) lisab üleliigsed andmed või rühmaandmed.

Mis on normaliseerimine?

Normaliseerimine on protsess, mis viiakse läbi relatsiooniandmebaaside andmetes esinevate liiasuste minimeerimiseks. See protsess jagab peamiselt suured tabelid väiksemateks tabeliteks, millel on vähem koondamist (nn tavavormid). Need väiksemad tabelid on omavahel seotud hästi määratletud suhete kaudu. Hästi normaliseeritud andmebaasis nõuab igasugune andmete muutmine või muutmine ainult ühe tabeli muutmist. 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 normaalvormid (4NF, 5NF ja 6NF) on määratletud, kuid neid kasutatakse harva.

Tabel, mis vastab standardile 1NF, tagab, et see tegelikult esindab seost (st ei sisalda korduvaid kirjeid) ega sisalda relatsiooniväärtusega atribuute (st.e. kõigil atribuutidel peavad olema aatomiväärtused). Et tabel järgiks 2NF-i, peab see olema vastavuses 1NF-iga ja kõik atribuudid, mis ei ole ühegi kandidaatvõtme osa (st mitte-algatavad atribuudid), peaksid täielikult sõltuma tabelis olevatest kandidaatvõtmetest. Vastav alt Coddi definitsioonile öeldakse, et tabel on 3NF-s, siis ja ainult siis, kui see tabel on teisel normaalkujul (2NF) ja iga tabeli atribuut, mis ei kuulu kandidaatvõtmesse, peaks otseselt sõltuma igast selle tabeli kandidaadivõti. BCNF (tuntud ka kui 3.5NF) fikseerib mõned kõrvalekalded, mida 3NF ei käsitle.

Mis on denormaliseerimine?

Denormaliseerimine on normaliseerimisprotsessi pöördprotsess. Denormaliseerimine toimib toimivuse optimeerimiseks liigsete andmete lisamise või andmete rühmitamise teel. Kuigi üleliigsete andmete lisamine kõlab ebaproduktiivsena, on mõnikord denormaliseerimine väga oluline protsess, et ületada mõned relatsiooniandmebaasi tarkvara puudused, mis võivad normaliseeritud andmebaaside puhul (isegi suurema jõudluse jaoks häälestatud) kaasa tuua tõsiseid jõudlustrahve. Selle põhjuseks on asjaolu, et mitme relatsiooni (mis on normaliseerimise tulemused) ühendamine päringule tulemuse saamiseks võib mõnikord olla aeglane, sõltuv alt andmebaasisüsteemide tegelikust füüsilisest teostusest.

Mis vahe on normaliseerimisel ja denormaliseerimisel?

– Normaliseerimine ja denormaliseerimine on kaks protsessi, mis on täiesti vastandlikud.

– Normaliseerimine on suuremate tabelite jagamine väiksemateks, vähendades üleliigseid andmeid, samas kui denormaliseerimine on üleliigsete andmete lisamise protsess jõudluse optimeerimiseks.

– Andmebaaside anomaaliate vältimiseks viiakse läbi normaliseerimine.

– Denormaliseerimine toimub tavaliselt andmebaasi lugemise jõudluse parandamiseks, kuid denormaliseerimiseks kasutatavate täiendavate piirangute tõttu võib kirjutamine (st sisestamise, värskendamise ja kustutamise toimingud) aeglasemaks muutuda. Seetõttu võib denormaliseeritud andmebaas pakkuda halvemat kirjutamisjõudlust kui normaliseeritud andmebaas.

– Tihti soovitatakse teil "normaliseerida, kuni see valutab, denormaliseerida, kuni see töötab".

Soovitan: