Normalizácia vs Denormalizácia
Relačné databázy sú tvorené vzťahmi (súvisiace tabuľky). Tabuľky sú tvorené stĺpcami. Ak sú tabuľky dva veľké (tj. Príliš veľa stĺpcov v jednej tabuľke), môžu sa vyskytnúť anomálie databázy. Ak sú tabuľky dve malé (tj. 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 nadbytočnosť, ktorá sa nachádza v údajových tabuľkách. Denormalizácia (opačná strana normalizácie) pridáva nadbytočné údaje alebo skupinové údaje.
Čo je normalizácia?
Normalizácia je proces, ktorý sa vykonáva s cieľom minimalizovať nadbytočnosť, ktorá sa nachádza v dátach v relačných databázach. Tento proces rozdelí hlavne veľké tabuľky na menšie tabuľky s menším počtom nadbytočností (nazývané „bežné formy“). Tieto menšie tabuľky budú navzájom súvisieť 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 zavedené Edgarom F. Coddom. Normálnu formu Boyce-Codd (BCNF) zaviedli v roku 1974 Codd a Raymond F. Boyce. Boli definované vyššie normálne formy (4NF, 5NF a 6NF), ktoré sa však používajú zriedka.
Tabuľka, ktorá je v súlade s 1NF, zaručuje, že skutočne predstavuje vzťah (tj. Neobsahuje žiadne opakujúce sa záznamy) a neobsahuje atribúty s relatívnou hodnotou (tj. 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 akýkoľvek atribút, ktorý nie je súčasťou žiadneho kandidátskeho kľúča (tj iné ako primárne 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 hovorí, že tabuľka je v 3NF, len ak je, že je v druhej normálnej podobe (2NF) a každý atribút v tabuľke, ktorý nepatrí ku kandidátovi, 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 obrátený proces normalizačného procesu. Denormalizácia funguje pridaním nadbytočných údajov alebo zoskupením údajov na optimalizáciu výkonu. Aj keď je pridanie nadbytočných údajov 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 normálnych databázach (dokonca vyladených na vyšší výkon) spôsobiť vysoké výkonnostné tresty. Je to tak preto, lebo spájanie niekoľkých vzťahov (ktoré sú výsledkami normalizácie) na získanie 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, ktoré redukujú 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 zabránilo anomáliám databáz. - Denormalizácia sa zvyčajne vykonáva s cieľom zlepšiť výkon čítania databázy, ale kvôli ďalším obmedzeniam používaným na denormalizáciu sa zápisy (tj. Operácie vkladania, aktualizovania a mazania) môžu spomaliť. Preto denormalizovaná databáza môže ponúknuť horší výkon zápisu ako normalizovaná databáza. - Často sa odporúča, aby ste „normalizovali, kým to nebolí, denormalizovali, kým to nezaberie“. |