Co je první normální formulář?

Než pochopíme první normální formu, musíme mít znalosti o tom, co je normalizace a proč se to dělá? Normalizace obecně je technika organizace dat do databáze za účelem snížení anomálie vkládání, mazání a aktualizace a odstranění nadbytečnosti dat. Tento proces rozdělí větší tabulky na menší a propojí je navzájem prostřednictvím vztahů primárního a cizího klíče. Duplicitní a nenormalizovaná data nejen spotřebovávají další paměť, ale ztěžují správu tabulky při vkládání, mazání a aktualizaci tabulek se zvyšujícím se počtem dat. Proto je velmi důležité normalizovat tabulky před návrhem databáze jakékoli aplikace.

První normální formulář psaný jako 1NF nastavuje základní pravidla normalizace dat a je prvním formulářem používaným při normalizaci dat tabulek. Stanovuje určité základní principy normalizace dat, které musí každá tabulka splňovat. Některé ze zásad jsou uvedeny níže:

  • Každý sloupec by měl mít jednu atomovou (hodnoty, které nelze dále dělit).
  • Každý sloupec v tabulce nemá složené hodnoty a opakující se hodnoty, protože je obtížné prohledávat hodnoty pro sloupec s více hodnotami. Každý sloupec tedy musí mít jednu jedinečnou hodnotu.
  • Hodnoty uložené ve sloupci by měly být stejné domény jako v 1NF.
  • Všechny sloupce v tabulce by měly mít jedinečný název.
  • Tabulka musí mít jedinečný primární klíč, který se používá k odlišné identifikaci každého záznamu.

Jak funguje první normální formulář?

Podle výše uvedených hlavních principů 1NF

  • Pro sloupec, který lze dále rozdělit, by neměly být složené hodnoty. Pokud je v tabulce sloupec s hodnotou, kterou lze dále rozdělit, měla by se pro tento atribut vytvořit samostatná tabulka s různými sloupci v tabulce s jedinečný primární klíč. Například v tabulce Zaměstnanec pro zaměstnanec_adresu, kterou lze dále rozdělit, by měla existovat samostatná tabulka Employee_address mající Employee_id jako primární klíč a číslo domu, město a kód PIN jako různé sloupce.

Zaměstnanec stolu (před 1NF)

Emp_idEmp_nameEmp_ageEmp_address
101Raghu25Xyz kolonie, agra, 258996
102Rakesh28Byt 304, silnice xyz, štěstí, 568975
103Rahul45Dům č. 123, nedaleko nemocnice, varanasi, 245687

Protože Emp_address má tolik dat pro adresu, pro jednoho zaměstnance, aby byl v 1NF, výše uvedená tabulka může být rozložena do dvou níže uvedených tabulek:

Tabulka 1: Podrobnosti o zaměstnancích (po 1NF)

Emp_idEmp_nameEmp_age
101Raghu25
102Rakesh28
103Rahul45

Tabulka 2: Zaměstnanecká_adresa (po 1NF)

Emp_idEmp_housenoEmp_cityEmp_pincode
101Dům č. 564, Xyz kolonieagra258996
102Byt 304, silnice xyzštěstí568975
103Dům č. 123, nedaleko nemocnicevaranasi245687
    Pro sloupec, který je nedělitelný v 1NF, by měly existovat atomové hodnoty. Například v tabulce Zaměstnanec může existovat více projektů Emp_projects, které dosud zpracoval. Za účelem získání záznamů o všech projektech daného zaměstnance by měl existovat samostatný záznam pro každý projekt zaměstnance, který má jedinečnou hodnotu místo toho, aby byly projekty odděleny znakem „, “

Tabulka: Emp_projects (před 1NF)

Emp_idEmp_years_of_ex perienceEmp_deptEmp_projects
1013TOabc, jkl
1022TObcd
1035ÚčtyAbc, cfg, xyz, hjk

Tabulka: Emp_projects (Po 1NF)

Emp_idEmp_years_of_ex perienceEmp_deptEmp_projects
1013TOabc
1013TOjkl
1022TObcd
1035ÚčtyAbc
1035Účtysrov
1035Účtyxyz
1035Účtyhjk

Tabulka: Emp_projekty s více opakujícími se hodnotami ve výše uvedeném příkladu lze dále rozdělit do dvou tabulek, aby se snížilo opakování:
V tabulce by neměly být opakující se hodnoty. Opakované hodnoty spotřebovávají spoustu další paměti a také zpomalují vyhledávání a aktualizaci a údržba databáze je obtížná. Například ve výše uvedené tabulce Employee_Projects existuje spousta zbytečných opakujících se hodnot Emp_id, Emp_years_of_experience a Emp_dept, proto je třeba vytvořit novou tabulku, aby se snížilo opakování hodnot.

Stůl 1:

Emp_idEmp_years_of_experienc eEmp_dept
1013TO
1022TO
1035Účty

Tabulka 2:

Emp_idEmp_projects
101abc
101jkl
102bcd
103Abc
103srov
103xyz
103hjk

Výhody první normální formy

Níže jsou uvedeny některé z výhod první normální formy (1NF):

  • Jednou z hlavních výhod 1NF je to, že odstraní zbytečné opakující se hodnoty vytvořením samostatné tabulky, a proto nevytváří žádný problém při vkládání, mazání a aktualizaci hodnot v databázi.
  • Práce s tabulkami, které mají sloupce s více hodnotami oddělenými ', ', je velmi obtížné při hledání konkrétní hodnoty v databázi rozdělením všech hodnot sloupce a jejich opětovným převodem ve specifickém formátu, plýtváním spoustou času a paměti v tom. 1NF to usnadňuje vytvořením různých řádků pro různé hodnoty.
  • 1NF tvoří základ a je nejdůležitějším principem, který se dodržuje při vytváření databáze, a proto je nejdůležitějším normálním formulářem pro tabulky, aby se dále normalizovaly pomocí 2NF a 3NF.
  • 1NF je důležitý, protože vytváří funkční závislost mezi dvěma tabulkami pomocí primárního klíče a cizího klíče, který hraje klíčovou roli při práci s tabulkami databáze.
  • 1NF umožňuje uživatelům využívat databázové dotazy efektivně, protože odstraňuje dvojznačnost odstraněním nulových a více hodnot sloupce, což v budoucnu vytváří hlavní problémy při aktualizaci a extrahování databáze.

Závěr

Při práci s databázemi a vytváření tabulek pro jakoukoli aplikaci na začátku je velmi důležité normalizovat všechny tabulky, protože pomáhá eliminovat vkládání, mazání a aktualizaci anomálií. Normalizace také odstraní budoucí náklady a čas. Menší nulové hodnoty a méně redundantní data činí databázi kompaktnější. Prostřednictvím normalizace se vytváří více tabulek, které pomáhají při snadné a efektivní údržbě dat. Normalizací je samozřejmě lepší výkon vyhledávání a třídění zajištěn pomocí indexů a klíčů a 1NF v něm hraje zásadní roli.

Doporučené články

Toto je průvodce prvním normálním formulářem. Zde diskutujeme definici, práci a výhody první normální formy spolu s jejími příklady. Další informace naleznete také v následujících článcích -

  • Co je MySQL?
  • Co je MySQL Schema?
  • Operátory MySQL
  • MySQL Server