Skip to content

Co je to databázový vztah?

4 de Srpen de 2021
database relationship eb40478e1d9b4b73aec6452586c8927f

Vztah je vytvořen mezi dvěma databázovými tabulkami, když jedna tabulka používá cizí klíč, který odkazuje na primární klíč jiné tabulky. Toto je základní koncept pojmu relační databáze.

Jak funguje cizí klíč k navázání vztahu

Primární klíč jednoznačně identifikuje každý záznam v tabulce. Jedná se o typ kandidátního klíče, který je obvykle prvním sloupcem v tabulce a který může být automaticky generován databází, aby se zajistilo, že je jedinečný. Cizí klíč je další kandidátský klíč (nikoli primární klíč) používaný k propojení záznamu s daty v jiné tabulce. Zvažte například tyto dvě tabulky, které identifikují, který učitel učí který kurz. Zde je primárním klíčem tabulky Courses Course_ID. Jeho cizí klíč je Teacher_ID:

Course_ID Název kurzu Učitel_ID
Kurz_001 Biologie Učitel_001
Kurz_002 Matematika Učitel_002
Kurz_003 Angličtina Učitel_003

Vidíte, že cizí klíč v Kurzech odpovídá primárnímu klíči v Učitelích:

Učitel_ID Jméno učitele
Učitel_001 Carmen
Učitel_002 Rozrazil
Učitel_003 Jorge
Můžeme říci, že cizí klíč Teacher_ID pomohl navázat vztah mezi tabulkami Kurzy a Učitelé.

Typy databázových vztahů

Pomocí cizích klíčů nebo jiných kandidátských klíčů můžete implementovat tři typy vztahů mezi tabulkami:

Jeden na jednoho

Tento typ vztahu umožňuje pouze jeden záznam na každé straně vztahu. Primární klíč se týká pouze jednoho záznamu (nebo žádného) v jiné tabulce. Například v manželství má každý z manželů pouze jednoho dalšího manžela. Tento druh vztahu lze implementovat do jediné tabulky, a proto nepoužívá cizí klíč.

Jeden na mnoho

Vztah jedna k mnoha umožňuje, aby jeden záznam v jedné tabulce souvisel s více záznamy v jiné tabulce. Zvažte podnikání s databází, která má tabulky Zákazníci a Objednávky. Jeden zákazník může zakoupit více objednávek, ale jednu objednávku nelze propojit s více zákazníky. Tabulka Objednávky by proto obsahovala cizí klíč, který by odpovídal primárnímu klíči tabulky Zákazníci, zatímco tabulka Zákazníci by neměla žádný cizí klíč směřující do tabulky Objednávky.

Mnoho-k-mnoha

Jedná se o složitý vztah, ve kterém lze mnoho záznamů v tabulce propojit s mnoha záznamy v jiné tabulce. Naše firma například pravděpodobně potřebuje tabulky Zákazníci a Objednávky a pravděpodobně také potřebuje tabulku Produkty. Opět platí, že vztah mezi tabulkou Zákazníci a Objednávky je individuální, ale vezměte v úvahu vztah mezi tabulkou Objednávky a Produkty. Objednávka může obsahovat více produktů a produkt může být propojen s více objednávkami, protože několik zákazníků může odeslat objednávku, která obsahuje některé stejné produkty. Tento druh vztahu vyžaduje minimálně tři tabulky.

Proč jsou databázové vztahy důležité?

Vytváření konzistentních vztahů mezi databázovými tabulkami pomáhá zajistit integritu dat a přispívá k normalizaci databáze. Co kdybychom například nepropojili žádné tabulky pomocí cizího klíče a místo toho spojili data v tabulkách Kurzy a Učitelé, takto:

Učitel_ID Jméno učitele Kurs
Učitel_001 Carmen Biologie, matematika
Učitel_002 Rozrazil Matematika
Učitel_003 Jorge Angličtina

Tento návrh je nepružný a porušuje první princip normalizace databáze, First Normal Form, který uvádí, že každá buňka tabulky by měla obsahovat jeden, diskrétní kus dat. Nebo jsme se možná rozhodli přidat druhý záznam pro Carmen, abychom prosadili 1NF:

Učitel_ID Jméno učitele Kurs
Učitel_001 Carmen Biologie
Učitel_001 Carmen Matematika
Učitel_002 Rozrazil Matematika
Učitel_003 Jorge Angličtina

Toto je stále slabý návrh, který zavádí zbytečnou duplikaci a čemu se říká anomálie vkládání dat, což znamená, že by mohl přispět k nekonzistentním datům. Pokud má například učitel více záznamů, co když je třeba některá data upravit, ale osoba provádějící úpravu dat si neuvědomuje, že existuje více záznamů? Tabulka by pak obsahovala různá data pro stejnou osobu, bez jakéhokoli jasného způsobu, jak je identifikovat nebo se jim vyhnout. Rozdělení této tabulky na dvě tabulky, Učitelé a Kurzy, vytvoří správný vztah mezi daty, a proto pomůže zajistit konzistenci a přesnost dat. Více od Lifewire

  • Podnikatelé mluví, diskutují o datech na notebooku v zasedací místnosti

    Úvod do databázových vztahů

  • Architekt při pohledu na databázi v počítači

    Definice relace databáze

  • Žena s výhledem na serverovnu

    Vztahy One-to-Many v databázi

  • Programátor databáze pomocí přenosného počítače u stolu v domácí kanceláři

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

  • Ruce webdesignéra pomocí digitálního tabletu

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

  • Počítačový analytik vytváří databázi na notebooku

    Fakta vs. Tabulky kót v databázi

  • Muž pomocí přenosného počítače

    Co je to tranzitivní závislost v databázi

  • Karty sociálního zabezpečení

    Co je primární klíč?

  • Diagram vztahů mezi entitami

    Definice diagramu vztahů mezi entitami

  • Binární kód na obrazovce notebooku.

    5 nejlepších databázových tipů pro začátečníky

  • Podnikatel pomocí počítače ve virtuální serverové místnosti.

    Uvedení databáze do první normální formy

  • 1s a 0s představující databázi

    Co je databáze?

  • Obchodní lidé diskutovat přes notebook u stolu na schůzce

    Atribut databáze definuje vlastnosti tabulky

  • Dva muži při pohledu na obrazovku počítače

    Síla cizích klíčů v relačních databázích

  • Obrázek červené tužky nastiňující databázové vztahy

    Vytváření databázových vztahů v Accessu

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

    Glosář společných databázových podmínek

Lifewire

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ů EU
  • Kalifornie Zásady ochrany osobních údajů
  • DŮVĚRYHODNÉ

Vaše práva na ochranu osobních údajů

Společnost 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 na 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 své možnosti souhlasu pro Lifewire.com, včetně vašeho práva vznést námitku v případě použití oprávněného zájmu, klikněte níže. Svá nastavení můžete kdykoli aktualizovat pomocí odkazu „Ochrana osobních údajů EU“ v dolní části jakékoli stránky. Tyto možnosti budou globálně signalizovány našim partnerům a nebudou mít vliv na údaje o prohlížení. Seznam partnerů (prodejců)

My a naši partneři zpracováváme údaje za účelem:

Aktivně skenujte charakteristiky zařízení pro identifikaci. Použijte přesná data o geolokaci. Ukládejte a/nebo přistupujte k informacím na zařízení. Vyberte personalizovaný obsah. Vytvořte si přizpůsobený profil obsahu. Změřte výkon reklam. Vyberte základní reklamy. Vytvořte si přizpůsobený reklamní profil. Vyberte personalizované reklamy. Aplikujte průzkum trhu a generujte poznatky o publiku. Měření výkonu obsahu. Vyvíjet a zlepšovat produkty. Seznam partnerů (prodejců)