Rozdiel medzi normalizáciou a denormalizáciou

Normalizácia vs denormalizácia

Relačné databázy sa skladajú zo vzťahov (súvisiace tabuľky). Tabuľky sa skladajú zo stĺpcov. Ak sú tabuľky dva 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 pozostáva z mnohých menších tabuliek), bolo by to neefektívne pre dopytovanie. Normalizácia a denormalizácia sú dva procesy, ktoré sa používajú na optimalizáciu výkonu databázy. Normalizácia minimalizuje prepúšťania, ktoré sú uvedené v tabuľkách s údajmi. Denormalizácia (obrátenie normalizácie) pridáva nadbytočné údaje alebo údaje o skupinách.

Čo je normalizácia?

Normalizácia je proces, ktorý sa vykonáva s cieľom minimalizovať prepúšťanie, ktoré sa vyskytuje 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 prepustených pracovníkov (nazývané „normálne formuláre“). 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 zmena údajov vyžadovať úpravu iba jednej tabuľky. Prvú normálnu formu (1NF), druhú normálnu formu (2NF) a tretiu normálnu formu (3NF) uviedla Edgar F. Codd. Boyce-Codd Normal Form (BCNF) bol predstavený v roku 1974 Coddom a Raymondom F. Boyceom. 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 záznamy, ktoré sa opakujú), a neobsahuje žiadne atribúty, ktoré sú relačne ohodnotené (t. J. Všetky atribúty by mali mať atómové hodnoty). Aby tabuľka bola v súlade s 2NF, mala by byť v súlade s 1NF a akýkoľvek atribút, ktorý nie je súčasťou žiadneho kľúča kandidáta (t. J. Non-prvoradé atribúty), by mal úplne závisieť od ktoréhokoľvek z kandidátskych kľúčov v tabuľke. Podľa definície Codda sa uvádza, že tabuľka je v 3NF, iba vtedy, ak je táto tabuľka v druhej normálnej podobe (2NF) a každý atribút v tabuľke, ktorý nepatrí do kandidátskeho kľúča, by mal priamo závisieť od každej kandidátsky kľúč tejto tabuľky. BCNF (známy tiež ako 3.5NF) zachytáva niektoré anomálie, ktoré 3NF nerieši.

Čo je denormalizácia?

Denormalizácia je opačný proces normalizačného procesu. Denormalizácia funguje pridaním redundantných údajov alebo zoskupením údajov na optimalizáciu výkonu. Aj keď pridávanie redundantných zvukov údajov je 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 spôsobiť normalizované databázy vysoké pokuty (dokonca vyladené na vyšší výkon). Dôvodom je skutočnosť, že spojenie viacerých vzťahov (ktoré sú výsledkom normalizácie) na vytvorenie výsledku dotazu, 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 tabuľky, ktoré redukujú redundantné údaje, zatiaľ čo denormalizácia je proces pridávania redundantných údajov na optimalizáciu výkonu..

- Normalizácia sa vykonáva, aby sa zabránilo anomáliám databáz.

- Denormalizácia sa zvyčajne vykonáva na zlepšenie výkonnosti čítania databázy, ale v dôsledku ďalších obmedzení používaných na denormalizáciu sa zápisy (t. J. Operácie vkladania, aktualizácie a mazania) môžu spomaliť. Preto denormalizovaná databáza môže ponúkať horší výkon zápisu ako normalizovaná databáza.

- Často sa odporúča, aby ste „normalizovali, kým to neublíži, denormalizovali, kým to nebude fungovať“..