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.

88jiliapp