Normalizace databáze
Pokud pracujete s databázemi na nějakou dobu, pravděpodobně jste slyšeli termín normalizace. Možná vás někdo požádal "Je normalizována tato databáze?" nebo "Je to v BCNF ?" Normalizace se často odkládá jako luxus, který mají pouze akademici čas. Ovšem znalost principů normalizace a jejich uplatnění na každodenní práci s databázovými úlohami není opravdu komplikovaná a mohla by drasticky zlepšit výkon vašeho DBMS.
V tomto článku představíme koncept normalizace a krátce se podíváme na nejběžnější normální formy.
Co je normalizace?
Normalizace je proces efektivního uspořádání dat v databázi. Existují dva cíle normalizačního procesu: odstranění redundantních dat (například ukládání stejných dat do více tabulek) a zajištění závislostí dat smysluplné (pouze ukládání souvisejících údajů do tabulky). Obě tyto cíle jsou hodné, protože snižují množství prostoru, který databáze spotřebovává, a zajišťují, že jsou data logicky uložena.
Normální formuláře
Databázová komunita vytvořila řadu pokynů pro zajištění normalizace databází. Tito jsou označováni jako normální formy a jsou číslovány z jedné (nejnižší formy normalizace, označované jako první normální forma nebo 1NF) přes pět (pátá normální forma nebo 5NF). V praktických aplikacích často uvidíte 1NF, 2NF a 3NF spolu s občasným 4NF. Pátá normální forma je velmi zřídka vidět a nebude v tomto článku diskutována.
Než začneme diskutovat o normálních formách, je důležité zdůraznit, že jsou pouze pokyny a pokyny. Občas se stává nutností, aby se od nich odklonily, aby splnily praktické obchodní požadavky. Pokud však dochází ke změnám, je nesmírně důležité vyhodnotit všechny možné důsledky, které by mohly mít ve vašem systému, a zohlednit možné nesrovnalosti. To znamená, prozkoumejte normální formy.
První normální formulář (1NF)
První normální forma (1NF) nastavuje velmi základní pravidla pro organizovanou databázi:
- Odstraňte duplicitní sloupce ze stejné tabulky.
- Vytvoření samostatných tabulek pro každou skupinu souvisejících dat a identifikaci každého řádku s jedinečným sloupcem nebo sadou sloupců ( primární klíč ).
Druhý normální formulář (2NF)
Druhá normální forma (2NF) se dále zabývá pojmem odstranění duplicitních dat :
- Splňte všechny požadavky prvního normálního formuláře.
- Odebrat podmnožiny dat, které se vztahují k více řádkům tabulky, a umístit je do samostatných tabulek.
- Vytvořte vztahy mezi těmito novými tabulkami a jejich předchůdci pomocí cizích klíčů .
Třetí normální formulář (3NF)
Třetí normální forma (3NF) jde o jeden velký krok dále:
- Splňte všechny požadavky druhého normálního formuláře.
- Odstraňte sloupce, které nejsou závislé na primárním klíči.
Boyce-Codd normální forma (BCNF nebo 3.5NF)
Boyce-Codd Normal Form, také nazývaný jako "třetí a půl (3.5) normální forma", přidává ještě jeden požadavek:
- Splňte všechny požadavky třetího normálního formuláře.
- Každý determinant musí být kandidátským klíčem.
Čtvrtá normální forma (4NF)
Konečně čtvrtá normální forma (4NF) má jednu další požadavek:
- Splňte všechny požadavky třetího normálního formuláře.
- Vztah je v 4NF, pokud nemá žádné vícenásobné závislosti .
Pamatujte si, že tyto normalizační pokyny jsou kumulativní. Pro databázi, která má být v 2NF, musí nejprve splnit všechna kritéria databáze 1NF.
Mám normalizovat?
Zatímco normalizace databáze je často dobrý nápad, není to absolutní požadavek. Ve skutečnosti existují případy, kdy úmyslné porušení pravidel normalizace je správnou praxí. Pro více informací o tomto tématu si přečtěte: Mám normalizovat databázi?
Pokud chcete zajistit, aby byla vaše databáze normalizována, začněte s učením, jak dát svou databázi do první normální formy .