Skip to content

Základy normalizace databáze

20 de Červen de 2021
database 157334670 5c29939d46e0fb0001edf766 f2f4c8e9293e4eef9607abf61d6a5446

Pokud už nějakou dobu pracujete s databázemi, je pravděpodobné, že jste slyšeli termín normalizace. Možná se vás někdo zeptal: „Je ta databáze normalizovaná?“ nebo „Je to v BCNF?“ Normalizace je často považována za luxus, na který mají čas jen akademici. Znát principy normalizace a aplikovat je na každodenní úlohy návrhu databáze však není tak složité a mohlo by to 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í organizace dat v databázi. Proces normalizace má dva cíle: eliminovat nadbytečná data (například ukládat stejná data do více než jedné tabulky) a zajistit, aby závislosti na datech měly smysl (pouze ukládání souvisejících dat do tabulky). Oba jsou hodné cíle, protože snižují velikost prostoru, který databáze zabírá, a zajišťují logické ukládání dat.

Normální formy

Komunita databáze vyvinula řadu pokynů pro zajištění normalizace databází. Ty se označují jako normální formy a jsou očí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 příležitostnými 4NF. Pátá normální forma je viděna velmi zřídka a v tomto článku o ní nebudeme hovořit. 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, abychom splnili praktické obchodní požadavky. Když však dojde ke změnám, je nutné vyhodnotit případné důsledky, které by ve vašem systému mohly mít, a zohlednit potenciální nesrovnalosti. To znamená, pojďme prozkoumat normální formy.

První normální forma (1NF)

První normální forma (1NF) stanoví základní pravidla pro organizovanou databázi:

  • Eliminujte duplicitní sloupce ze stejné tabulky.
  • Vytvořte samostatné tabulky pro každou skupinu souvisejících dat a každý řádek označte jedinečným sloupcem nebo sadou sloupců (primární klíč).

Druhá normální forma (2NF)

Druhá normální forma (2NF) se dále zabývá konceptem odstraňování duplicitních dat:

  • Splňte 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.
  • Vytvářejte vztahy mezi těmito novými tabulkami a jejich předchůdci pomocí cizích klíčů.

Třetí normální forma (3NF)

Třetí normální forma (3NF) jde o významný krok dále:

  • Splňte 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-Codd, označovaná také jako „třetí a poloviční (3,5) normální forma“, přidává ještě jeden požadavek:

  • Splňte všechny požadavky třetí normální formy.
  • Každý determinant musí být klíčem kandidáta.

Čtvrtý normální tvar (4NF)

Konečně čtvrtá normální forma (4NF) má jeden další požadavek:

  • Splňte všechny požadavky třetí normální formy.
  • Relace je v 4NF, pokud nemá žádné 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 normalizovat?

I když je normalizace databáze často dobrý nápad, není to absolutní požadavek. V některých případech je dobrým postupem úmyslné porušení pravidel normalizace. Pokud se chcete ujistit, že je vaše databáze normalizována, začněte tím, že se naučíte, jak dát databázi do prvního normálního formuláře.