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_id | Emp_name | Emp_age | Emp_address |
101 | Raghu | 25 | Xyz kolonie, agra, 258996 |
102 | Rakesh | 28 | Byt 304, silnice xyz, štěstí, 568975 |
103 | Rahul | 45 | Dů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_id | Emp_name | Emp_age |
101 | Raghu | 25 |
102 | Rakesh | 28 |
103 | Rahul | 45 |
Tabulka 2: Zaměstnanecká_adresa (po 1NF)
Emp_id | Emp_houseno | Emp_city | Emp_pincode |
101 | Dům č. 564, Xyz kolonie | agra | 258996 |
102 | Byt 304, silnice xyz | štěstí | 568975 |
103 | Dům č. 123, nedaleko nemocnice | varanasi | 245687 |
- 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_id | Emp_years_of_ex perience | Emp_dept | Emp_projects |
101 | 3 | TO | abc, jkl |
102 | 2 | TO | bcd |
103 | 5 | Účty | Abc, cfg, xyz, hjk |
Tabulka: Emp_projects (Po 1NF)
Emp_id | Emp_years_of_ex perience | Emp_dept | Emp_projects |
101 | 3 | TO | abc |
101 | 3 | TO | jkl |
102 | 2 | TO | bcd |
103 | 5 | Účty | Abc |
103 | 5 | Účty | srov |
103 | 5 | Účty | xyz |
103 | 5 | Účty | hjk |
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_id | Emp_years_of_experienc e | Emp_dept |
101 | 3 | TO |
102 | 2 | TO |
103 | 5 | Účty |
Tabulka 2:
Emp_id | Emp_projects |
101 | abc |
101 | jkl |
102 | bcd |
103 | Abc |
103 | srov |
103 | xyz |
103 | hjk |
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