Rozdíl mezi 3NF a BCNF

Autor: Laura McKinney
Datum Vytvoření: 1 Duben 2021
Datum Aktualizace: 17 Smět 2024
Anonim
Rozdíl mezi 3NF a BCNF - Technologie
Rozdíl mezi 3NF a BCNF - Technologie

Obsah


Normalizace je metoda, která odstraňuje nadbytek od vztahu, čímž se minimalizují anomálie vkládání, mazání a aktualizace, které snižují výkon databází. V tomto článku budeme rozlišovat mezi dvěma vyššími normálními formami, tj. 3NF a BCNF. Základní rozdíl mezi 3NF a BCNF je ten 3NF eliminuje tranzitivní závislost ze vztahu a tabulky, která má být v BCNF, musí triviální funkční závislost X-> Y ve vztahu držet, pouze pokud X je superklíč.

Pojďme diskutovat o rozdílech mezi 3NF a BCNF pomocí srovnávací tabulky níže.

  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. Závěr

Srovnávací tabulka

Základ pro srovnání3NFBCNF
PojemŽádný nepřiměřený atribut nesmí být tranzitně závislý na klíči kandidáta.Pro jakoukoli triviální závislost ve vztahu R řekněte X-> Y, X by mělo být super klíčem vztahu R.
Závislost3NF lze získat bez obětování všech závislostí.Závislosti nemusí být v BCNF zachovány.
RozkladBezeztrátového rozkladu lze dosáhnout ve 3NF.V BCNF je obtížné dosáhnout bezztrátového rozkladu.


Definice 3NF

Tabulka nebo vztah se považuje za Třetí normální formulář pouze pokud je tabulka již v 2NF a není nepřiměřený atribut tranzitivně v závislosti na klíč kandidáta vztahu.

Než se tedy zabývám procesem normalizace tabulky v 3NF, dovolte mi diskutovat o kandidátském klíči. A Kandidátský klíč je minimální super klíč tj. super klíč s minimálními atributy, které mohou definovat všechny atributy relace. Takže v procesu normalizace tabulky nejprve rozpoznáte klíč kandidáta daného vztahu. Atributy, které jsou součástí kandidátního klíče, jsou hlavní atributya atributy, které nejsou součástí klíče kandidáta, jsou non-prvořadé atributy.


Nyní, když máme vztah R (A, B, C, D, E, F) a máme následující funkční závislosti pro vztah R.

Při pozorování funkčních závislostí můžeme dojít k závěru AB je kandidátský klíč pro relaci R, protože pomocí klíče AB můžeme prohledat hodnotu všech atributů ve vztahu R. So A, B se stává hlavní atributy když společně vytvářejí kandidátní klíč. Atributy C, D, E, F se stává nepřiměřený atributy, protože žádný z nich není součástí kandidátního klíče.

Tabulka je ve 2NF, protože žádný nepřiměřený atribut je částečně závislý na kandidátském klíči

Mezi poskytnutými funkčními závislostmi jako atributem je však pozorována přechodná závislost F není přímo závislý na klíči kandidáta AB. Místo toho atribut F je tranzitivně v závislosti na klíči kandidáta AB prostřednictvím atributu D. Dokud atribut D má nějakou hodnotu, kterou můžeme dosáhnout k hodnotě atributu F, z kandidátního klíče AB. V případě, že hodnota atributu D je NULL, nemůžeme nikdy najít / prohledat hodnotu F pomocí kandidátního klíče AB. To je důvod, proč 3NF požaduje odstranění přechodné závislosti ze 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 tomto kandidátním klíči, do prvního vztahu. V další dělené relaci umístíme atribut, který způsobuje tranzitivní závislost, a také atributy, které na něm závisejí, do druhého vztahu.

Nyní jsou tabulky R1 a R2 v 3NF, protože nezůstaly žádné dílčí a přechodné závislosti. Vztah R1 (A, B, C, D, E) má klíč kandidáta AB zatímco, vztah R2 (D, E)D jako jeho kandidátský klíč.

Definice BCNF

BCNF je považován za silnější než 3NF. Vztah R, který má být v BCNF, musí být v 3NF. A kdekoli netriviální funkční závislost A -> B platí tedy ve vztahu R; A musí být 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é mají následující funkční závislosti.

Sledováním vztahu R to můžeme říci A a BF jsou klíče kandidáta vztahu R, protože oni sami mohou prohledávat hodnotu pro všechny atributy ve vztahu R. So A, B, F jsou primární atributy, zatímco, C a D jsou nepřiměřený atributy. Ve výše uvedených funkčních závislostech není pozorována žádná přechodná závislost. Tabulka R je tedy ve 3NF.

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

Nyní jsou tabulky R1 a R2 v BCNF. Vztah R1 má dvě kandidát klíče A a B, triviální funkční závislost R1, tj. A-> BCD a B -> ACD, platí pro BCNF, protože A a B jsou super klíče pro vztah. Vztah R2D jako jeho klíč kandidáta a funkční závislost D -> F platí také pro BCNF, protože D je Super Key.

  1. 3NF uvádí, že žádný nepřiměřený atribut nesmí být tranzitně závislý na kandidátském klíči vztahu. Na druhou stranu BCNF uvádí, že pokud existuje triviální funkční závislost X -> Y pro vztah; pak X musí být super klíč.
  2. 3NF lze získat bez obětování závislosti vztahu. Závislost však nemusí být zachována při získávání BCNF.
  3. 3NF lze dosáhnout bez ztráty jakékoli informace 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, což pomáhá při normalizaci tabulky více. V relaci v 3NF zbývá minimální redundance, která je dále odstraněna BCNF.