Doporučená, 2024

Redakce Choice

Rozdíl mezi 3NF a BCNF

Normalizace je metoda, která odstraňuje redundanci z relace, čímž minimalizuje vkládání, mazání a aktualizaci anomálií, které zhoršují výkon databází. V tomto článku budeme rozlišovat dvě vyšší normální formy, tj. 3NF a BCNF. Základní rozdíl mezi 3NF a BCNF je ten, že 3NF eliminuje tranzitivní závislost od vztahu a tabulky, která má být v BCNF, triviální funkční závislost X-> Y v relaci musí platit, pouze pokud X je super klíč.

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í3NFBCNF
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ávislost3NF lze získat bez obětování všech závislostí.Závislosti nemusí být zachovány v BCNF.
RozkladBezeztrá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.

Při pozorování funkčních závislostí můžeme konstatovat, že AB je kandidátským klíčem pro relaci R, protože pomocí klávesy AB můžeme hledat hodnotu pro celý atribut v relaci R. Takže A se stává primárním atributem, protože společně tvoří kandidátský klíč. Atributy C, D, E, F se stanou atributy, které nejsou prvočíselné, protože žádný z nich není součástí kandidátského klíče.

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.

Tabulky R1 a R2 jsou nyní v 3NF, protože nemají žádné částečné a tranzitivní závislosti. Vztah R1 (A, B, C, D, E) má kandidátní klíč AB, zatímco vztah R2 (D, E)D jako svůj kandidátský klíč.

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.

Pozorováním vztahu R můžeme říci, že A a BF jsou kandidátské klíče relace R, protože samy mohou vyhledávat hodnotu všech atributů ve vztahu R. Takže A, B, F jsou prvořadé atributy, zatímco C a D jsou non-prvočíslo atributy. Ve výše uvedených funkčních závislostech není pozorována žádná tranzitivní závislost. Proto je tabulka R v 3NF.

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.

Tabulky R1 nd R2 jsou nyní v BCNF. Vztah R1 má dva kandidátní klíče A a B, triviální funkční závislost R1 tj. A-> BCD a B -> ACD, přidržení pro BCNF jako A a B jsou super klíče pro relaci. Relace R2D jako svůj kandidátský klíč a funkční závislost D -> F platí také pro BCNF, protože D je Super Key.

Klíčové rozdíly mezi 3NF a BCNF

  1. 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íč.
  2. 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.
  3. 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.

Top