Skip to main content

Průvodce pro pochopení databázových závislostí

UdQ 225: Donald Trump (Červen 2026)

UdQ 225: Donald Trump (Červen 2026)
Anonim

Závislost je omezení, které se vztahuje nebo definuje vztah mezi atributy. Objeví se v databázi, pokud informace uložené ve stejné tabulce databáze jednoznačně určují další informace uložené ve stejné tabulce. Můžete to také popsat jako vztah, kdy znalost hodnoty jednoho atributu (nebo souboru atributů) stačí k tomu, abyste v téže tabulce informovali o hodnotě jiného atributu (nebo souboru atributů).

Závislosti databází často zaměňují studenty i profesionály v databázi. Naštěstí nejsou tak složité, jak se mohou zdát. Nejlépe je lze vysvětlit pomocí několika příkladů. Zde zkoumáme běžné typy závislostí na databázi.

Databázové závislosti a funkční závislost

Řekněme, že existuje závislost mezi atributy v tabulce, je stejná jako tvrzení, že mezi těmito atributy existuje funkční závislost. Pokud existuje závislost v databázi tak, že atribut B závisí na atributu A, zapíšete to takto:

A -> B

Například v tabulce s vlastnostmi zaměstnanců, včetně čísla sociálního zabezpečení (SSN) a jména, lze říci, že název je závislý na SSN (nebo SSN -> name), protože jméno zaměstnance může být jednoznačně určeno SSN. Reverzní příkaz (název -> SSN) však není pravdivý, protože více než jeden zaměstnanec může mít stejný název, ale vždy má různé SSN.

Triviální funkční závislost

Funktivní závislost triviální nastane, když popisujete funkční závislost atributu na kolekci atributů, který obsahuje původní atribut. Například {A, B} -> B je triviální funkční závislost, jak je {name, SSN} -> SSN. Tento typ funkční závislosti se nazývá triviální, protože může být odvozen od zdravého rozumu. Je zřejmé, že pokud už znáte hodnotu B, potom hodnota B může být tímto vědomím jednoznačně určena.

Plně funkční závislost

Plná funkční závislost nastane, když již splňujete požadavky na funkční závislost a soubor atributů na levé straně výkazu funkční závislosti nemůže být dále redukován. Například jméno {SSN, age} -> je funkční závislost, ale není to plná funkční závislost, protože můžete odstranit věk z levé strany výkazu bez ovlivnění vztahu závislosti.

Přechodné závislost

Přechodné závislosti se vyskytují, když existuje nepřímý vztah, který způsobuje funkční závislost. Například A -> C je přechodná závislost, když je pravdivá pouze proto, že A -> B a B -> C jsou pravdivé.

Vícehodnotových závislostí

Vícenásobné závislosti se vyskytují, když přítomnost jednoho nebo více řádků v tabulce znamená přítomnost jednoho nebo více dalších řádků v téže tabulce. Například si představte automobilovou společnost, která vyrábí řadu modelů automobilů, ale vždy udělá červenou i modrou barvu každého modelu. Pokud máte tabulku, která obsahuje název modelu, barvu a rok každého automobilu, který společnost vyrábí, existuje v této tabulce vícehodnotová závislost. Pokud je řádek pro určitý název modelu a rok modrý, musí být podobný řádek odpovídající červené verzi stejného vozidla.

Význam závislostí

Závislosti databází jsou důležité pro pochopení, protože poskytují základní stavební bloky použité v normalizaci databáze, což je proces efektivního uspořádání dat v databázi. Například:

  • Pro tabulku, která má být ve druhé normální podobě (2NF), v tabulce, která je funkčně závislá na podmnožině kandidátského klíče, nesmí existovat žádný atribut nonprime.
  • Pro tabulku, která má být ve třetí normální podobě (3NF), musí mít každý nonprrime atribut nepřetržitou funkční závislost na každém kandidátském klíči.
  • Aby byla tabulka ve formátu Boyce-Codd Normal (BCNF), každá funkční závislost (kromě triviálních závislostí) musí být na superklíč.
  • Pro tabulku, která má být ve čtvrté normální podobě (4NF), nesmí mít žádné závislosti na více hodnotách.