Mám normalizovat databázi?

Normalizace v reálném světě

Normalizace databáze je jednou z posvátných krav rozvoje aplikací. Každá bakalářská výuka, kterou jste si přečetli, pravděpodobně hlásí důležitost normalizace databází .

Je načase napadnout tu truismus. Někdy je správné denormalizovat databázi!

Kdy byste měl normalizovat?

Normalizace databáze chrání integritu dat. V mnoha případech je to skvělý nápad a měli byste začít s jakýmkoli návrhem databáze s normalizací. Pokud můžete normalizovat databázi, jděte na to! Ve skutečnosti je zde několik praktických rad, jak normalizovat svou databázi na této stránce:

Důležité je, že byste měli normalizovat databázi, pokud nemáte opravdu dobrý důvod, abyste tak neučinili. Normalizace je obvykle zvuková praxe. Snižuje redundantní informace, optimalizuje výkon a snižuje pravděpodobnost, že budete mít problémy s integritou dat, které jsou výsledkem toho, že stejné údaje jsou uloženy v různých rozích databáze.

Některé důvody nemají normalizovat

To znamená, že existují některé dobré důvody k normalizaci databáze. Podívejme se na několik:

  1. Spojení je drahé . Normalizace databáze často zahrnuje vytvoření mnoha tabulek. Ve skutečnosti můžete snadno skončit s tím, co si myslíte, že by se jednalo o jednoduchý dotaz, který pokrývá pět nebo deset tabulek. Pokud jste se někdy pokoušeli udělat pět stolu, víte, že funguje v zásadě, ale v praxi je to poměrně pomalé. Pokud vytváříte webovou aplikaci, která závisí na dotazech více odkazů na velké tabulky, můžete si myslet, že "pokud tato databáze nebyla normalizována!" Když slyšíte tu myšlenku v hlavě, je to vhodné zvažte normalizaci. Pokud můžete všechny údaje používané tímto dotazem držet do jediné tabulky, aniž byste skutečně ohrozili integritu dat, jděte na to! Být rebel a denormalizovat svou databázi. Neohlédnete se zpátky!
  2. Normalizovaný návrh je obtížný . Pokud pracujete s komplexním databázovým schématem , pravděpodobně zjistíte, že narazíte na hlavu proti stolu nad složitostí normalizace. Jako jednoduché pravidlo, pokud strávíte celý den a snažíte se zjistit, jak se dostat k čtvrté normální formě, můžete normalizovat příliš daleko. Vraťte se a zeptejte se sami sebe, zda je opravdu stojí za to pokračovat.
  1. Rychlé a špinavé by měly být rychlé a špinavé . Pokud právě vyvíjíte prototyp, udělejte to, co funguje rychle. Opravdu. To je v pořádku. Rychlý vývoj aplikací je někdy důležitější než elegantní design. Nezapomeňte se vrátit a pečlivě se podívejte na svůj design, jakmile budete připraveni přesunout se za fázi prototypování. Cena, kterou zaplatíte za rychlou a špinavou databázi, je, že budete možná muset vyhodit a začít znovu, když je čas stavět na výrobu.
  2. Pokud používáte databázi NoSQL , tradiční normalizace není žádoucí. Namísto toho vytvořte databázi pomocí modelu BASE, který je mnohem více odpouštějící. To je užitečné, když ukládáte nestrukturované údaje, jako jsou e-maily, obrázky nebo videa.

Některé slova opatrnosti

Normalizace databáze je obecně dobrý nápad. Měli byste se snažit dodržovat zásady normalizace, pokud to bude rozumné. Pokud však všechny ukazatele poukazují na to, že normalizace je příliš složitá k implementaci, zvážit přístup, který vám pomůže dosáhnout úlohy při ochraně vašich dat.

Konečně - pokud se rozhodnete odchýlit se od pravidel normalizace, buďte mimořádně opatrní, jak vynucujete integritu databáze. Pokud ukládáte nadbytečné informace, spusťte spouštěče a další ovládací prvky a ujistěte se, že informace zůstanou konzistentní.