Základy normalizace databáze
Pokud už nějakou dobu pracujete s databázemi, je pravděpodobné, že jste již slyšeli termín normalizace. Možná se vás někdo zeptal: "Je ta databáze normalizovaná?" nebo „Je to tam BCNF?" Normalizace je často považována za luxus, na který mají čas jen akademici. Znalost principů normalizace a jejich aplikace na vaše každodenní úlohy návrhu databáze však není až tak komplikovaná a mohla by výrazně zlepšit výkon vašeho DBMS.
V tomto článku si představíme pojem normalizace a krátce se podíváme na nejběžnější normální formy.
Co je normalizace?
Normalizace je proces efektivní organizace dat v databázi. Proces normalizace má dva cíle: odstranění nadbytečných dat (například ukládání stejných dat do více než jedné tabulky) a zajištění datové závislosti dávat smysl (pouze ukládat související data do tabulky). Oba tyto cíle jsou hodné cíle, protože snižují množství místa, které databáze spotřebovává, a zajišťují logické ukládání dat.
Normální formy
Databázová komunita vyvinula řadu pokynů pro zajištění normalizace databází. Ty se označují jako normální formy a jsou číslovány od jedné (nejnižší forma normalizace, označovaná jako první normální forma nebo 1NF) do pěti (pátá normální forma nebo 5NF). V praktických aplikacích často uvidíte 1NF, 2NF a 3NF spolu s občasnými 4NF. Pátá normální forma je k vidění velmi zřídka a v tomto článku se jí nebudeme věnovat.
Než začneme diskutovat o normálních formách, je důležité zdůraznit, že se jedná pouze o pokyny a pokyny. Občas je nutné se od nich odchýlit, aby byly splněny praktické obchodní požadavky. Když však dojde k odchylkám, je nutné vyhodnotit všechny možné důsledky, které by mohly mít na váš systém, a zohlednit potenciální nesrovnalosti. To znamená, že pojďme prozkoumat normální formy.
První normální forma (1NF)
První normální forma (1NF) stanoví základní pravidla pro organizovanou databázi:
- Odstraňte duplicitní sloupce ze stejné tabulky.
- Vytvořte samostatné tabulky pro každou skupinu souvisejících dat a identifikujte každý řádek jedinečným sloupcem nebo sadou sloupců ( primární klíč).
Druhá normální forma (2NF)
Druhá normální forma (2NF) dále řeší koncept odstranění duplicitních dat:
- Splňujte všechny požadavky první normální formy.
- Odeberte podmnožiny dat, které se vztahují na více řádků tabulky, a umístěte je do samostatných tabulek.
- Vytvořte vztahy mezi těmito novými tabulkami a jejich předchůdci pomocí cizí klíče.
Třetí normální forma (3NF)
Třetí normální forma (3NF) jde o jeden významný krok dále:
- Splňujte všechny požadavky druhé normální formy.
- Odeberte sloupce, které nejsou závislé na primárním klíči.
Boyce-Codd normální forma (BCNF nebo 3,5NF)
Normální forma Boyce-Codda, označovaná také jako „normální forma třetí a poloviny (3.5), přidává ještě jeden požadavek:
- Splň všechny požadavky třetí normální formy.
- Každý determinant musí být a kandidátský klíč.
Čtvrtá normální forma (4NF)
Konečně čtvrtá normální forma (4NF) má jeden další požadavek:
- Splň všechny požadavky třetí normální formy.
- Vztah je v 4NF, pokud má ne vícehodnotové závislosti.
Pamatujte, že tyto normalizační pokyny jsou kumulativní. Aby byla databáze v 2NF, musí nejprve splňovat všechna kritéria databáze 1NF.
Mám se normalizovat?
I když je normalizace databáze často dobrý nápad, není to tak absolutní požadavek. Existují případy, kdy je úmyslné porušování normalizačních pravidel dobrou praxí.
Chcete-li zajistit, aby byla vaše databáze normalizována, začněte tím, že se naučíte, jak do databáze vložit První normální forma.