
Pojďme diskutovat o rozdílech mezi 3NF a BCNF pomocí srovnávací tabulky uvedené níže.
Srovnávací graf
Základ pro porovnání | 3NF | BCNF |
---|---|---|
Pojem | Žádný atribut non-prime nesmí být přechodně závislý na klíči Kandidát. | Pro jakoukoliv triviální závislost ve vztahu R říci X-> Y, X by měl být super klíč vztahu R. |
Závislost | 3NF lze získat bez obětování všech závislostí. | Závislosti nemusí být zachovány v BCNF. |
Rozklad | Bezeztrátového rozkladu lze dosáhnout v 3NF. | V BCNF je těžké dosáhnout bezeztrátového rozkladu. |
Definice 3NF
Tabulku nebo relaci považujeme za třetí normální formu pouze v případě, že tabulka je již v 2NF a neexistuje přechodný atribut, který by nebyl závislý na kandidátském klíči relace.
Předtím, než se budu zabývat procesem normalizace tabulky v 3NF, dovolte mi, abych projednal kandidátský klíč. Klíč kandidáta je minimální super klíč, tj. Super klíč s minimálními atributy, které mohou definovat všechny atributy vztahu. Takže v procesu normalizace vašeho stolu nejprve rozpoznáte kandidátský klíč daného vztahu. Atributy, které jsou součástí kandidátského klíče, jsou prvořadé atributy a atributy, které nejsou součástí kandidátského klíče, jsou atributy, které nejsou prvočíselné .
Nyní, když máme vztah R (A, B, C, D, E, F) a máme následující závislosti funkcí pro vztah R.

Tabulka je v 2NF, protože žádný atribut non-prime není částečně závislý na kandidátském klíči
Mezi poskytovanými funkčními závislostmi je však pozorována tranzitivní závislost, protože atribut F není přímo závislý na kandidátském klíči AB . Namísto toho je atribut F přechodně závislý na kandidátském klíči AB přes atribut D. Dokud atribut D má nějakou hodnotu, můžeme dosáhnout na hodnotu atributu F, z kandidátského klíče AB. V případě, že hodnota atributu D je NULL, nemůžeme nikdy najít / vyhledat hodnotu F pomocí kandidátského klíče AB. To je důvod, proč 3NF požaduje odstranění tranzitivní závislosti od vztahů.
Abychom odstranili tuto tranzitivní závislost, musíme rozdělit vztah R. Při dělení vztahu vždy umístěte kandidátský klíč a všechny atributy, které závisí na kandidátském klíči v prvním vztahu. V dalším děleném vztahu umístíme atribut, který způsobuje tranzitivní závislost, a také atributy, které na něm závisejí ve druhém vztahu.

Definice BCNF
BCNF je považován za silnější než 3NF. Vztah R v BCNF musí být v 3NF . A všude, kde netriviální funkční závislost A -> B platí ve vztahu R, pak musí být A superkey vztahu R. Jak víme, Super klíč je klíč, který má jeden atribut nebo sadu atributů, které určují celý atributy vztahu.
Nyní přejdeme k příkladu, abychom lépe porozuměli BCNF. Předpokládejme, že máme vztah R (A, B, C, D, F), který má následující funkční závislosti.

Ale jedna funkční závislost, tj. D -> F, porušuje definici BCNF, podle které, pokud existuje D -> F, pak D by měl být super klíč, který zde není. Takže rozdělíme vztah R.

Klíčové rozdíly mezi 3NF a BCNF
- 3NF uvádí, že žádný atribut non-prime nesmí být tranzitivně závislý na kandidátském klíči vztahu. Na druhé straně, BCNF říká, že jestliže triviální funkční závislost X -> Y existuje pro vztah; pak X musí být super klíč.
- 3NF lze získat bez obětování závislosti vztahu. Při získávání BCNF však nemusí být zachována závislost.
- 3NF lze dosáhnout bez ztráty jakýchkoliv informací ze staré tabulky, zatímco při získávání BCNF můžeme ztratit některé informace ze staré tabulky.
Závěr:
BCNF je mnohem restriktivnější než 3NF, které pomáhají při normalizaci tabulky více. Vztah v 3NF má minimální redundanci vlevo, která je dále odstraněna BCNF.