První normální forma (1NF) nevylučuje redundanci, ale spíše eliminuje opakující se skupiny. Místo toho, abyste měli v záznamu více sloupců stejného druhu dat (0NF nebo nenormalizovaná forma), odeberete opakované informace do samostatného vztahu a reprezentujete je jako řádky. To je to, co tvoří 1NF.
čísla v abecedě
Druhá normální forma
Druhá normální forma (2NF) je založena na konceptu plně funkční závislosti. Druhá normální forma se vztahuje na vztahy se složenými klíči, to znamená na vztahy s primárním klíčem složeným ze dvou nebo více atributů. Vztah s primárním klíčem s jedním atributem je automaticky minimálně 2NF. Vztah, který není v 2NF, může trpět anomáliemi aktualizace. Aby byl vztah v druhé normální formě, musí být v první normální formě a vztah nesmí obsahovat žádnou částečnou závislost. Relace je v 2NF, pokud nemá žádnou částečnou závislost, tj. žádný atribut, který není prvočíslem (atributy, které nejsou součástí žádného kandidátního klíče), není závislý na žádné správné podmnožině jakéhokoli kandidátského klíče tabulky. Jinými slovy,
Vztah, který je v první normální formě a každý atribut, který není primárním klíčem, je plně funkčně závislý na primárním klíči, potom je vztah ve druhé normální formě (2NF).
Poznámka - Pokud správná podmnožina kandidátského klíče určuje atribut, který není prvočíslem, je volán částečná závislost . The normalizace vztahů 1NF k 2NF zahrnuje odstranění dílčích závislostí . Pokud existuje částečná závislost, odstraníme částečně závislé atributy ze vztahu jejich umístěním do nového vztahu spolu s kopií jejich determinantu. Zvažte příklady uvedené níže.
Příklad-1: Zvažte tabulku následovně.
STUD_NO COURSE_NO COURSE_FEE 1 C1 1000 2 C2 1500 1 C4 2000 4 C3 1000 4 C1 1000 2 C5 2000>
{Všimněte si, že existuje mnoho kurzů se stejným kurzovným. } Zde nemůže COURSE_FEE sám rozhodnout o hodnotě COURSE_NO nebo STUD_NO; COURSE_FEE spolu s STUD_NO nemůže rozhodnout o hodnotě COURSE_NO; COURSE_FEE spolu s COURSE_NO nemůže rozhodnout o hodnotě STUD_NO; COURSE_FEE by tedy nebyl primární atribut, protože nepatří k jedinému kandidátnímu klíči {STUD_NO, COURSE_NO} ; Ale COURSE_NO -> COURSE_FEE, tj. COURSE_FEE závisí na COURSE_NO, což je správná podmnožina kandidátského klíče. Non-prime atribut COURSE_FEE je závislý na správné podmnožině kandidátního klíče, což je částečná závislost, takže tento vztah v 2NF není. Abychom převedli výše uvedený vztah na 2NF, musíme tabulku rozdělit do dvou tabulek, jako jsou: Tabulka 1: STUD_NO, COURSE_NO Tabulka 2: COURSE_NO, COURSE_FEE
Table 1 Table 2 STUD_NO COURSE_NO COURSE_NO COURSE_FEE 1 C1 C1 1000 2 C2 C2 1500 1 C4 C3 1000 4 C3 C4 2000 4 C1 C5 2000 2 C5>
Poznámka - 2NF se snaží omezit nadbytečná data, která se ukládají do paměti. Pokud například kurz C1 absolvuje 100 studentů, nemusíme jeho poplatek uložit jako 1000 pro všech 100 záznamů, místo toho jej můžeme uložit do druhé tabulky, protože poplatek za kurz za C1 je 1000.
Příklad-2: Zvažte následující funkční závislosti ve vztahu R (A, B, C, D )
AB ->C [A a B společně určují C] BC -> D [B a C společně určují D]>
Odpovědět:
Nejprve můžeme zkontrolovat, zda existují nějaké dílčí závislosti. Částečná závislost nastane, když atribut, který není prvočíslem (není součástí žádného kandidátního klíče), závisí pouze na části kandidátského klíče.
c# ukázkový kód
Kandidátské klíče pro vztah R lze určit nalezením uzávěru každého atributu:
AB určuje všechny klávesy.
Nyní se podívejme na částečné závislosti:
V tomto vztahu neexistují žádné částečné závislosti, protože každý atribut, který není prvočíslo (C a D), závisí na celém kandidátském klíči (klíčích), jehož je součástí (AB a BC, v tomto pořadí).
Proto je vztah R již ve 3. normální formě (3NF), protože splňuje podmínky 1. normální formy (1NF) a 2. normální formy (2NF) a nemá žádné tranzitivní závislosti.
Závěr
Závěrem lze říci, že 2NF je základní koncept normalizace databáze, který pomáhá odstranit dílčí závislosti ve vaší relační databázi. Dodržování pravidel 2NF pomáhá organizovat databázi tak, aby se zabránilo anomáliím a zajistila integritu dat, což usnadňuje ukládání a získávání dat.