GeeksforGeeks

První normální forma (1NF) neodstraňuje nadbytečnost, ale spíše to, že odstraňuje opakující se skupiny.

Místo toho, abyste měli v záznamu více sloupců stejného druhu dat (0NF nebo nenormalizovaná forma), odstraníte opakující se informace do samostatného vztahu a reprezentujete je jako řádky. To představuje 1NF.

Druhá normální forma (2NF):
Druhá normální forma (2NF) je založena na konceptu úplné funkční závislosti. Druhá normální forma platí pro relace se složenými klíči, tj. relace s primárním klíčem složeným ze dvou nebo více atributů. Relace s primárním klíčem s jedním atributem je automaticky alespoň v 2NF. Relace, která není ve 2NF, může trpět anomáliemi aktualizace.

Aby byl vztah ve 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ý neprimární atribut (atributy, které nejsou součástí žádného kandidátního klíče) není závislý na žádné správné podmnožině žádného kandidátního klíče tabulky.

Jinými slovy,

relace, 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, pak je relace v druhé normální formě (2NF).

Poznámka – Pokud vlastní podmnožina kandidátního klíče určuje atribut, který není primární, nazývá se to částečná závislost.

Normalizace 1NF relací na 2NF zahrnuje odstranění částečných závislostí. Pokud částečná závislost existuje, odstraníme z relace částečně závislý atribut (atributy) tak, že je umístíme do nové relace spolu s kopií jejich determinantu.

Podívejte se na příklady uvedené níže.

Příklad-1:
Podívejte se na následující tabulku.

STUD_NO COURSE_NO COURSE_FEE1 C1 10002 C2 15001 C4 20004 C3 10004 C1 10002 C5 2000

{Všimněte si, že existuje mnoho kurzů, které mají stejné kurzovné. }

Zde,
COURSE_FEE nemůže samo o sobě rozhodovat o hodnotě COURSE_NO nebo STUD_NO;
COURSE_FEE spolu se STUD_NO nemůže rozhodovat o hodnotě COURSE_NO;
COURSE_FEE spolu s COURSE_NO nemůže rozhodovat o hodnotě STUD_NO;
Tedy
COURSE_FEE by byl neprimární atribut, protože nepatří k jedinému kandidátskému klíči {STUD_NO, COURSE_NO} ;
ale COURSE_NO -> COURSE_FEE, tj.e., COURSE_FEE je závislé na COURSE_NO, které je vlastní podmnožinou klíče kandidáta. Neprimární atribut COURSE_FEE je závislý na vlastní podmnožině klíče kandidáta, což je částečná závislost, a proto tento vztah není v 2NF.

Chceme-li výše uvedený vztah převést do 2NF,
musíme tabulku rozdělit na dvě tabulky, například :
Tabulka 1: STUD_NO, COURSE_NO
Tabulka 2: COURSE_NO, COURSE_FEE

 Table 1 Table 2STUD_NO COURSE_NO COURSE_NO COURSE_FEE 1 C1 C1 10002 C2 C2 15001 C4 C3 10004 C3 C4 20004 C1 C5 2000 2 C5 

Poznámka – 2NF se snaží omezit redundantní data ukládaná do paměti. Například pokud kurz C1 navštěvuje 100 studentů, nemusíme pro všech 100 záznamů ukládat jeho poplatek jako 1000, místo toho jej můžeme jednou uložit do druhé tabulky, protože poplatek za kurz C1 je 1000.

Příklad-2:
Uvažujte následující funkční závislosti ve vztahu R (A, B, C, D )

AB -> C BC -> D 

V uvedeném vztahu je AB jediným kandidátním klíčem a neexistuje žádná částečná závislost, tj. žádná správná podmnožina AB neurčuje žádný neprimární atribut.

Article Tags :

DBMS

Značky pro praxi :

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.