Mala by som normalizovať svoju databázu?

Normalizácia v reálnom svete

Normalizácia databázy je jednou z posvätných kráv vývoja aplikácií. Každý študijný program, ktorý ste si prebrali alebo knihu, ktorú ste čítali, pravdepodobne hlási dôležitosť normalizácie databáz .

Je načase napadnúť túto truismus. Niekedy je v poriadku denormalizovať databázu!

Kedy by ste mali normalizovať?

Normalizácia databázy chráni integritu vašich údajov. Je to skvelý nápad v mnohých prípadoch a mali by ste začať s akýmkoľvek návrhom databázy s normalizáciou v mysli. Ak môžete normalizovať databázu, choďte na to! V skutočnosti je tu niekoľko praktických rád, ako normalizovať databázu na tejto stránke:

Podstatné je, že by ste mali normalizovať vašu databázu, ak nemáte naozaj dobrý dôvod, aby ste to neurobili. Normalizácia je obvykle zvuková prax. Znižuje redundantné informácie, optimalizuje výkonnosť a znižuje pravdepodobnosť, že budete mať problémy s integritou údajov, ktoré sú výsledkom toho, že rovnaké dáta sú uložené v rôznych rohoch vašej databázy.

Niektoré dôvody na to, aby ste normalizovali

To znamená, že existuje niekoľko dobrých dôvodov, prečo normalizovať databázu. Poďme sa pozrieť na niekoľko:

  1. Spojenia sú drahé . Normalizácia databázy často zahŕňa vytváranie veľa tabuliek. V skutočnosti môžete ľahko skončiť s tým, čo si myslíte, že by mal byť jednoduchý dotaz, ktorý zahŕňa päť alebo desať tabuliek. Ak ste sa niekedy pokúsili robiť päť-stôl pripojiť, viete, že to funguje v zásade, ale jeho starostlivo pomalý v praxi. Ak vytvárate webovú aplikáciu, ktorá sa opiera o rozsiahle tabuľky, môžete zistiť, že "ak táto databáza nebola normalizovaná!" Keď počujete túto myšlienku vo vašej hlave, je to vhodná doba zvážte denormalizáciu. Ak môžete všetky údaje, ktoré sa používajú v tomto dopyte, prilepiť do jednej tabuľky bez toho, aby ste skutočne ohrozili vašu integritu údajov, prejdite na to! Buďte rebelom a denormalizujte svoju databázu. Nebudete sa pozerať späť!
  2. Normalizovaný dizajn je náročný . Ak pracujete s komplexnou databázovou schémou , pravdepodobne zistíte, že narazíte na hlavu proti stolu nad zložitosťou normalizácie. Ako jednoduché pravidlo, ak strávite celý deň a snažíte sa zistiť, ako sa presťahovať do štvrtej normálnej formy, môžete normalizovať príliš ďaleko. Choďte späť a opýtajte sa, či je naozaj stojí za to pokračovať.
  1. Rýchle a špinavé by mali byť rýchle a špinavé . Ak práve vyvíjate prototyp, jednoducho robte čo robí rýchlo. Naozaj. Je to v poriadku. Rýchly vývoj aplikácií je niekedy dôležitejší než elegantný dizajn. Nezabudnite vrátiť sa a pozorne sa pozrieť na svoj dizajn, akonáhle ste pripravení prejsť za prototypovú fázu. Cena, ktorú zaplatíte za rýchly a špinavý návrh databázy, je, že budete musieť vyhodiť ho a začať znovu, keď je čas stavať na výrobu.
  2. Ak používate databázu NoSQL , tradičná normalizácia nie je žiadúca. Namiesto toho vytvorte databázu pomocou modelu BASE, ktorý je oveľa viac odpúšťajúci. To je užitočné pri ukladaní neštruktúrovaných údajov, ako sú e-maily, obrázky alebo videá.

Niektoré slová upozornenia

Normalizácia databázy je vo všeobecnosti dobrý nápad. Mali by ste sa snažiť dodržiavať zásady normalizácie, keď to bude rozumné urobiť. Ak však všetky ukazovatele poukazujú na to, že normalizácia je príliš zložitá na implementáciu, zvážte prístup, ktorý bude robiť prácu, pričom bude stále chrániť vaše dáta.

Nakoniec - ak sa rozhodnete odchýliť od pravidiel normalizácie, buďte mimoriadne ostražití toho, ako presadzujete integritu databázy. Ak uložíte nadbytočné informácie, nastavte triggery a iné ovládacie prvky, aby ste sa uistili, že informácie zostanú v súlade.