Skip to content

Co je to přechodná závislost v databázi

19 de Červen de 2021
Programmer 57235e293df78c5640e960a7

Transitivní závislost v databázi je nepřímý vztah mezi hodnotami ve stejné tabulce, který způsobuje funkční závislost. Chcete-li dosáhnout normalizačního standardu třetího normálního formuláře (3NF), musíte vyloučit jakoukoli přechodnou závislost. Ze své podstaty vyžaduje přechodná závislost tři nebo více atributů (nebo databázových sloupců), které mezi nimi mají funkční závislost, což znamená, že sloupec A v tabulce spoléhá na sloupec B prostřednictvím prostředního sloupce C. Podívejme se, jak to může fungovat.

Příklad tranzitivní závislosti

AUTORI

ID autora Autor Rezervovat Author_Nationality
Auth_001 Orson Scott Card Enderova hra Spojené státy
Auth_001 Orson Scott Card Děti mysli Spojené státy
Auth_002 Margaret Atwoodová Příběh služebnice Kanada

Ve výše uvedeném příkladu AUTORŮ:

  • Kniha → Autor: Tady Rezervovat atribut určuje Autor atribut. Pokud znáte název knihy, můžete zjistit jméno autora. Nicméně, Autor neurčuje Rezervovat, protože autor může napsat více knih. Například jen proto, že víme, že se jmenuje autor Orson Scott Card, stále neznáme název knihy.
  • Autor → Autor_Nationality: Stejně tak Autor atribut určuje Author_Nationality, ale ne naopak – to, že víme, že národnost autora je, neznamená, že můžeme autora určit.

Ale tato tabulka zavádí přechodnou závislost:

  • Kniha → Author_Nationality: Pokud známe název knihy, můžeme určit státní příslušnost autora ve sloupci Autor.

Vyhněte se přechodným závislostem

Abychom zajistili třetí normální formulář, odstraňte přechodnou závislost. Můžeme začít odebráním sloupce Kniha z tabulky Autoři a vytvořením samostatné tabulky Knihy:

KNIHY

Book_ID Rezervovat ID autora
Kniha_001 Enderova hra Auth_001
Kniha_001 Děti mysli Auth_001
Kniha_002 Příběh služebnice Auth_002

AUTORI

ID autora Autor Author_Nationality
Auth_001 Orson Scott Card Spojené státy
Auth_002 Margaret Atwoodová Kanada

Opravilo to? Podívejme se nyní na naše závislosti:

KNIHY stůl:

  • Book_ID → Book: The Rezervovat závisí na tom Book_ID.
  • V této tabulce neexistují žádné další závislosti, takže jsme v pořádku. Všimněte si, že cizí klíč, Autor_ID, propojí tuto tabulku s tabulkou AUTHORS prostřednictvím svého primárního klíče, ID autora. Vytvořili jsme vztah, abychom se vyhnuli tranzitivní závislosti, klíčovému designu relačních databází.

AUTHORS tabulka:

  • Autor_ID → Autor: The Autor závisí na tom ID autora.
  • Autor → Autor_Nationality: Národnost může určit autor.
  • ID autora → Autor_Nationality: Státní příslušnost lze určit z ID autora skrz Autor atribut. Stále máme přechodnou závislost.

Abychom normalizovali tato data, musíme přidat třetí tabulku:

ZEMĚ

Country_ID Země
Coun_001 Spojené státy
Coun_002 Kanada

AUTORI

ID autora Autor Country_ID
Auth_001 Orson Scott Card Coun_001
Auth_002 Margaret Atwoodová Coun_002

Nyní máme tři tabulky, které k propojení mezi tabulkami využívají cizí klíče:

  • Cizí klíč tabulky KNIHY, ID autora, propojí knihu s autorem v tabulce AUTHORS.
  • Cizí klíč tabulky AUTHORS, Country_ID, propojí autora se zemí v tabulce ZEMĚ.
  • Tabulka COUNTRIES nemá žádný cizí klíč, protože není nutné ji v tomto designu propojovat s jinou tabulkou.

Proč jsou tranzitivní závislosti špatným návrhem databáze

Jaká je hodnota vyhnutí se přechodným závislostem, které pomohou zajistit 3NF? Zvažme znovu naši první tabulku a podívejme se na problémy, které vytváří:

AUTORI

ID autora Autor Rezervovat Author_Nationality
Auth_001 Orson Scott Card Enderova hra Spojené státy
Auth_001 Orson Scott Card Děti mysli Spojené státy
Auth_002 Margaret Atwoodová Příběh služebnice Kanada

Tento druh designu může přispět k anomáliím a nesrovnalostem v datech, například:

  • Pokud jste odstranili dvě knihy Děti mysli a Enderova hra, úplně byste vymazali autora „Orson Scott Card“ a jeho národnost z databáze.
  • Nového autora nemůžete přidat do databáze, pokud nepřidáte také knihu. Co když autor ještě nepublikuje nebo neznáte název knihy, kterou vytvořil?
  • Pokud by „Orson Scott Card“ změnila své občanství, museli byste změnit jeho občanství ve všech záznamech, ve kterých se objevuje. Mít více záznamů se stejným autorem může mít za následek nepřesná data. Co když si osoba zadávající data neuvědomuje, že má někdo více záznamů, a změní data pouze v jednom záznamu?
  • Nemůžete odstranit knihu, jako je Příběh služebnice aniž by došlo k úplnému odstranění autora.

Často kladené otázky

  • Jaké jsou typy závislostí v systému správy databáze? Existují čtyři typy závislostí databáze: triviální funkční závislosti, úplné funkční závislosti, tranzitivní závislosti a vícehodnotové závislosti.
  • Jak se funkční závislost liší od tranzitivní závislosti? Ve správě databáze je závislost relací mezi dvěma nebo více atributy (sloupci). Zatímco funkční závislost je asociace mezi dvěma atributy stejného vztahu, k tranzitivní závislosti dochází, když nepřímý vztah způsobí funkční závislost.

Více od Lifewire

  • Co je databázový vztah?

  • Ruce webového designéra pomocí digitálního tabletu

    Plná funkční závislost v normalizaci databáze

  • Programátor databází pomocí notebooku u stolu v domácí kanceláři

    Uvedení databáze do třetí normální formy (3NF)

  • Obchodní lidé diskutovat o notebooku u stolu na schůzce

    Atribut databáze definuje vlastnosti tabulky

  • Podnikatel pomocí počítače v místnosti virtuálního serveru.

    Vložení databáze do první normální formy

  • Digitální ztvárnění počítačového kódu a spojovacích linek představujících databázi

    Glosář běžných termínů v databázi

  • Mladá žena se soustředí na svou práci před počítačem

    Co jsou to závislosti na databázi?

  • Ženská ruka drží ruku otevřenou s ilustrovaným síťovým připojením nad ním

    Vícehodnotová závislost při návrhu databáze

  • Stylizovaný vývojový diagram databáze

    Základy normalizace databáze

  • Správce databáze pracující u stolu

    Definování domény databáze

  • Detailní pohled z boku na blonďatou černošku v polovině 20. let, která dělá svůj projekt vývoje softwaru.  Sedí před stolním počítačem a usrkává kávu při práci na počítači.

    Co je Boyce-Codd normální forma (BCNF)?

  • Rozložení schématu databáze

    Co je schéma databáze?

  • Žena s výhledem na serverovnu

    Osobní vztahy v databázi

  • Servery v serverových rozvaděčích s překrytím diagramu virtuální sítě.

    Porozumění triviální funkční závislosti

  • Správce databáze pracující u stolu

    Determinanty a jejich role v databázi

  • Logo koutku

    Aplikace Nook pro Android

Záchranný drát

Následuj nás

  • Facebook

  • O nás
  • Inzerovat
  • Zásady ochrany osobních údajů
  • Zásady používání souborů cookie
  • Kariéra
  • Redakční pokyny
  • Kontakt
  • Podmínky použití
  • Ochrana osobních údajů v EU
  • Oznámení o ochraně osobních údajů v Kalifornii
  • DŮVĚRYHODNÉ

Vaše práva na soukromí

Lifewire a naši partneři třetích stran používají soubory cookie a zpracovávají osobní údaje, jako jsou jedinečné identifikátory, na základě vašeho souhlasu s ukládáním a / nebo přístupem k informacím v zařízení, zobrazováním personalizovaných reklam a pro měření obsahu, přehled publika a vývoj produktů. Chcete-li změnit nebo odvolat váš výběr souhlasu pro Lifewire.com, včetně vašeho práva vznést námitku, kde je použit oprávněný zájem, klikněte níže. Nastavení můžete kdykoli aktualizovat pomocí odkazu „Ochrana osobních údajů v EU“ v dolní části jakékoli stránky. Tyto volby budou globálně signalizovány našim partnerům a nebudou mít vliv na data procházení. Seznam partnerů (prodejců)

My a naši partneři zpracováváme údaje pro:

Aktivně pro identifikaci skenujte vlastnosti zařízení. Používejte přesná geolokační data. Ukládejte a / nebo přistupujte k informacím na zařízení. Vyberte přizpůsobený obsah. Vytvořte si osobní profil obsahu. Měření výkonu reklamy. Vyberte základní reklamy. Vytvořte si přizpůsobený profil reklam. Vyberte přizpůsobené reklamy. Aplikujte průzkum trhu a získejte přehled o publiku. Měření výkonu obsahu. Vyvíjejte a vylepšujte produkty. Seznam partnerů (prodejců)