Normalizácia databázy
Ak pracujete s databázou na chvíľu, je pravdepodobné, že ste počuli termín normalizácia. Možno sa vás niekto spýtal "Je táto databáza normalizovaná?" alebo "Je to v BCNF ?" Normalizácia sa často odstraňuje ako luxus, ktorý majú iba akademici čas. Avšak vedomosť princípov normalizácie a ich uplatnenie na vaše denné úlohy týkajúce sa dizajnu databázy naozaj nie je všetko komplikované a mohlo by drasticky zlepšiť výkonnosť vášho DBMS.
V tomto článku predstavíme koncept normalizácie a krátky pohľad na najbežnejšie normálne formy.
Čo je normalizácia?
Normalizácia je proces efektívnej organizácie údajov v databáze. Existujú dva ciele procesu normalizácie: odstránenie redundantných údajov (napríklad ukladanie rovnakých údajov vo viac ako jednej tabuľke) a zabezpečenie závislostí údajov zmysluplné (iba ukladanie súvisiacich údajov do tabuľky). Obe tieto ciele sú cenné, pretože znižujú množstvo miesta, ktoré databáza spotrebúva, a zabezpečuje logické uloženie údajov.
Normálne formuláre
Databázová komunita vytvorila rad usmernení na zabezpečenie normalizácie databáz. Tieto sa označujú ako normálne formy a sú očíslované od jednej (najnižšej formy normalizácie, označovanej ako prvá normálna forma alebo 1NF) cez päť (piaty normálny tvar alebo 5NF). V praktických aplikáciách často uvidíte 1NF, 2NF a 3NF spolu s príležitostným 4NF. Piata normálna forma je veľmi zriedka vidieť a nebudú diskutované v tomto článku.
Predtým, než začneme diskutovať o bežných formách, je dôležité poukázať na to, že sú iba usmerneniami a usmerneniami. Príležitostne sa stáva, že je potrebné od nich odchýliť, aby spĺňali praktické obchodné požiadavky. Ak sa však uskutočnia zmeny, je mimoriadne dôležité posúdiť akékoľvek možné dôsledky, ktoré by mohli mať vo vašom systéme, a zohľadniť prípadné nezrovnalosti. To je povedané, skúmme bežné formy.
Prvý normálny formulár (1NF)
Prvý normálny formulár (1NF) určuje základné pravidlá pre organizovanú databázu:
- Odstráňte duplicitné stĺpce z rovnakej tabuľky.
- Vytvorte samostatné tabuľky pre každú skupinu súvisiacich údajov a identifikujte každý riadok jedinečným stĺpcom alebo skupinou stĺpcov ( primárny kľúč ).
Druhý normálny formulár (2NF)
Druhá normálna forma (2NF) ďalej rieši koncept odstránenia duplicitných údajov :
- Splňte všetky požiadavky prvého normálneho formulára.
- Odstráňte podmnožiny údajov, ktoré platia pre viaceré riadky tabuľky, a umiestnite ich do samostatných tabuliek.
- Vytvárajte vzťahy medzi týmito novými tabuľkami a ich predchodcami pomocou cudzích kľúčov .
Tretí normálny formulár (3NF)
Tretia normálna forma (3NF) ide o ďalší veľký krok:
- Zoznámte sa so všetkými požiadavkami druhého bežného formulára.
- Odstráňte stĺpce, ktoré nie sú závislé od primárneho kľúča.
Boyce-Codd normálna forma (BCNF alebo 3.5NF)
Normálna forma Boyce-Codd, označovaná aj ako "tretia a polovica (3.5) normálna forma", pridáva ešte jednu požiadavku:
- Spĺňajte všetky požiadavky tretej normálnej formy.
- Každý determinant musí byť kandidátsky kľúč.
Štvrtá normálna forma (4NF)
Napokon štvrtá normálna forma (4NF) má jednu ďalšiu požiadavku:
- Spĺňajte všetky požiadavky tretej normálnej formy.
- Vzťah je v 4NF, ak nemá žiadne viachodnotové závislosti .
Pamätajte si, že tieto normalizačné usmernenia sú kumulatívne. Aby bola databáza v 2NF, musí najprv spĺňať všetky kritériá databázy 1NF.
Mala by som normalizovať?
Zatiaľ čo normalizácia databázy je často dobrý nápad, nie je to absolútna požiadavka. V skutočnosti existujú prípady, kedy úmyselné porušenie pravidiel normalizácie je dobrým postupom. Ak chcete získať ďalšie informácie o tejto téme, prečítajte si Ak mám normalizovať databázu?
Ak chcete zaistiť, aby bola vaša databáza normalizovaná, začnite sa učiť, ako dať svoju databázu do prvej normálnej formy .