Rozdiel medzi normalizáciou a denormalizáciou

Rozdiel medzi normalizáciou a denormalizáciou
Rozdiel medzi normalizáciou a denormalizáciou

Video: Rozdiel medzi normalizáciou a denormalizáciou

Video: Rozdiel medzi normalizáciou a denormalizáciou
Video: ESSAYS AND LITERARY REPORTAGE (Creative Non-Fiction) 2024, Júl
Anonim

Normalizácia vs denormalizácia

Relačné databázy sú tvorené vzťahmi (súvisiacimi tabuľkami). Tabuľky sa skladajú zo stĺpcov. Ak sú tabuľky dve veľké (t. j. príliš veľa stĺpcov v jednej tabuľke), môžu sa vyskytnúť anomálie databázy. Ak sú tabuľky dve malé (t. j. databáza sa skladá z mnohých menších tabuliek), bolo by to pre dotazovanie neefektívne. Normalizácia a denormalizácia sú dva procesy, ktoré sa používajú na optimalizáciu výkonu databázy. Normalizácia minimalizuje redundancie, ktoré sú prítomné v dátových tabuľkách. Denormalizácia (obrátená k normalizácii) pridáva nadbytočné údaje alebo skupinové údaje.

Čo je normalizácia?

Normalizácia je proces, ktorý sa vykonáva s cieľom minimalizovať redundancie, ktoré sú prítomné v údajoch v relačných databázach. Tento proces rozdelí hlavne veľké tabuľky na menšie tabuľky s menším počtom redundancií (nazývané „normálne formy“). Tieto menšie tabuľky budú navzájom prepojené prostredníctvom dobre definovaných vzťahov. V dobre normalizovanej databáze bude akákoľvek zmena alebo úprava údajov vyžadovať úpravu iba jednej tabuľky. Prvá normálna forma (1NF), druhá normálna forma (2NF) a tretia normálna forma (3NF) boli predstavené Edgarom F. Coddom. Normálna forma Boyce-Codd (BCNF) bola predstavená v roku 1974 Coddom a Raymondom F. Boyce. Vyššie normálne formy (4NF, 5NF a 6NF) boli definované, ale používajú sa zriedka.

Tabuľka, ktorá je v súlade s 1NF, zaisťuje, že skutočne predstavuje vzťah (t.j. neobsahuje žiadne opakujúce sa záznamy) a neobsahuje žiadne atribúty, ktoré sú relačné (t.j.e. všetky atribúty by mali mať atómové hodnoty). Aby bola tabuľka v súlade s 2NF, mala by byť v súlade s 1NF a každý atribút, ktorý nie je súčasťou žiadneho kandidátskeho kľúča (t. j. neprime atribúty), by mal plne závisieť od ktoréhokoľvek z kandidátskych kľúčov v tabuľke. Podľa Coddovej definície sa tabuľka nachádza v 3NF vtedy a len vtedy, ak je táto tabuľka v druhej normálnej forme (2NF) a každý atribút v tabuľke, ktorý nepatrí do kandidátskeho kľúča, by mal priamo závisieť od každého kandidátsky kľúč tejto tabuľky. BCNF (tiež známy ako 3.5NF) zachytáva niektoré anomálie, ktoré 3NF nerieši.

Čo je denormalizácia?

Denormalizácia je opačný proces ako proces normalizácie. Denormalizácia funguje pridaním redundantných údajov alebo zoskupením údajov na optimalizáciu výkonu. Aj keď pridávanie nadbytočných údajov znie kontraproduktívne, niekedy je denormalizácia veľmi dôležitým procesom na prekonanie niektorých nedostatkov v softvéri relačných databáz, ktoré môžu pri normalizovaných databázach (dokonca vyladených na vyšší výkon) spôsobiť vysoké sankcie za výkon. Je to preto, že spájanie niekoľkých vzťahov (ktoré sú výsledkom normalizácie) na vytvorenie výsledku dopytu môže byť niekedy pomalé v závislosti od skutočnej fyzickej implementácie databázových systémov.

Aký je rozdiel medzi normalizáciou a denormalizáciou?

– Normalizácia a denormalizácia sú dva procesy, ktoré sú úplne opačné.

– Normalizácia je proces rozdelenia väčších tabuliek na menšie, čím sa znížia nadbytočné údaje, zatiaľ čo denormalizácia je proces pridávania nadbytočných údajov na optimalizáciu výkonu.

– Normalizácia sa vykonáva, aby sa predišlo anomáliám databáz.

– Denormalizácia sa zvyčajne vykonáva s cieľom zlepšiť výkon čítania databázy, ale v dôsledku dodatočných obmedzení používaných na denormalizáciu sa zápisy (t. j. operácie vkladania, aktualizácie a odstraňovania) môžu spomaliť. Denormalizovaná databáza preto môže ponúknuť horší výkon zápisu ako normalizovaná databáza.

– Často sa odporúča, aby ste „normalizovali, kým to nebolelo, denormalizovali, kým to nebude fungovať“.

Odporúča: