Cizí klíče umožňují správcům databází snadno identifikovat různá připojení, která existují v systému správy databáze SQL.

SQL provádí matematické operace s daty v systému správy databáze. Tyto databáze obsahují různé tabulky, v nichž každá ukládá data na konkrétní entitu. Pokud máte databázi půjčoven automobilů, budou entitou (nebo tabulkou) v této databázi zákazníci (kteří budou ukládat všechny osobní údaje o každém zákazníkovi).

Tyto databázové tabulky obsahují řádky a sloupce, kde každý řádek hostí záznam a každý sloupec obsahuje data specifická pro atribut.

V systému správy databáze by měl být každý záznam (nebo řádek) jedinečný.

Primární klíče

Ačkoli je stanoveno, že každý záznam v tabulce by měl být odlišný, není tomu tak vždy. Pokračujeme příkladem databáze půjčoven automobilů, pokud databáze obsahuje dva zákazníky, z nichž každý mít jméno „John Brown“, dalo by se očekávat, že John Brown vrátí Mercedes-Benz, který neudělal pronajmout si.

Vytvoření primárního klíče toto riziko zmírní. V systému správy databáze SQL je primárním klíčem jedinečný identifikátor, který odlišuje jeden záznam od druhého.

instagram viewer

Každý záznam v systému správy databáze SQL by proto měl mít primární klíč.

Použití primárních klíčů v databázi

Chcete-li do systému pro správu databází pomocí SQL zahrnout primární klíče, můžete jej při vytváření nové tabulky jednoduše přidat jako normální atribut. Tabulka zákazníků tedy bude obsahovat čtyři atributy (nebo sloupce):

  • CarOwnerID (který uloží primární klíč)
  • Jméno
  • Příjmení
  • Telefonní číslo

Příbuzný: Jak vytvořit tabulku v SQL

Nyní každý záznam zákazníka, který vstoupí do databáze, bude mít jedinečné identifikační číslo a také křestní jméno, příjmení a telefonní číslo. Telefonní číslo není dostatečně jedinečné, aby mohlo být primárním klíčem, protože i když je jedinečné pouze pro jednu osobu najednou, může osoba snadno změnit své číslo, což znamená, že by teď patřilo někomu jinému.

Záznam s příkladem primárního klíče

/ * vytvoří nový záznam v tabulce zákazníků * /
VLOŽTE HODNOTY ZÁKAZNÍKŮ
('0004',
'John',
'Hnědý',
'111-999-5555');

Výše uvedený kód SQL přidá nový záznam k již existujícímu Zákazníci stůl. V tabulce níže je uvedena nová tabulka zákazníků se dvěma záznamy Johna Browna.

Cizí klíč

Nyní máte primární klíče, které jednoznačně odlišují jednoho pronajímatele automobilu od druhého. Jediným problémem je, že v databázi neexistuje skutečné spojení mezi každým Johnem Brownem a autem, které si pronajímá.

Proto stále existuje možnost udělat chybu. Zde vstupují do hry cizí klíče. Použití primárního klíče k vyřešení problému dvojznačnosti vlastnictví je dosažitelné pouze v případě, že se primární klíč zdvojnásobí jako cizí klíč.

Co je cizí klíč?

V systému správy databáze SQL je cizí klíč jedinečný identifikátor nebo kombinace jedinečných identifikátorů, které spojují dvě nebo více tabulek v databázi.

Ze čtyř existujících systémů pro správu databází SQL je nejoblíbenější systém správy relačních databází. Při rozhodování o tom, která tabulka v relační databázi by měla mít cizí klíč, byste měli nejprve určit, která tabulka je předmětem a která je objektem v jejich vztahu.

Když se vrátíme do databáze půjčoven automobilů, budete muset každého zákazníka spojit se správným vozem, abyste pochopili, že zákazník (subjekt) si pronajímá auto (objekt). Cizí klíč by proto měl být v tabulce automobilů.

Kód SQL, který generuje tabulku s cizím klíčem, se mírně liší od normy.

Vytvoření tabulky s příkladem cizího klíče

/ * vytvoří novou tabulku automobilů v databázi půjčoven aut * /
VYTVOŘIT TABULKU Auta
(
LicenseNumber varchar (30) NOT NULL PRIMARY KEY,
CarType varchar (30) NOT NULL,
CustomerID varchar (30) ZAHRANIČNÍ KLÍČOVÉ REFERENCE Zákazníci (CustomerID)
);

Jak vidíte v kódu výše, cizí klíč musí být výslovně identifikován jako takový, spolu s odkazem na primární klíč, který je připojen k nové tabulce.

Příbuzný: Základní podváděcí příkazy SQL pro začátečníky

Chcete-li přidat záznam do nové tabulky, musíte zajistit, aby se hodnota v poli cizího klíče shodovala s hodnotou v poli primárního klíče původní tabulky.

Přidání záznamu s příkladem cizího klíče

/ * vytvoří nový rekord v tabulce automobilů * /
VLOŽTE HODNOTY DO AUTA
('100012',
'Mercedes-Benz',
'0004');

Výše uvedený kód vytvoří nový záznam v novém Auta tabulka s následujícím výsledkem.

Tabulka automobilů

Z výše uvedené tabulky můžete určit cizího klíče v záznamu správného Johna Browna, který si pronajímá Mercedes-Benz.

Advance Foreign Keys

Existují dva další způsoby, jak použít cizí klíč v databázi.

Pokud se podíváte zpět na výše uvedenou definici cizího klíče, zjistíte, že říká, že cizím klíčem může být jedinečný identifikátor nebo kombinace jedinečných identifikátorů.

Když se vrátíme k příkladu databáze půjčoven automobilů, uvidíte, že vytvoření nového záznamu (stejného vozu) pokaždé, když si zákazník toto auto pronajme, poruší účel Auta stůl. Pokud jsou vozy na prodej a jsou prodány jedinému zákazníkovi jednou, je stávající databáze dokonalá; ale vzhledem k tomu, že auta jsou půjčovny, existuje lepší způsob, jak tato data reprezentovat.

Složené klíče

Složený klíč má dva nebo více jedinečných identifikátorů. V relační databázi budou případy, kdy použití jediného cizího klíče nebude dostatečně představovat vztahy, které v dané databázi existují.

V příkladu pronájmu automobilu je nejpraktičtějším přístupem vytvoření nové tabulky, ve které jsou uloženy podrobnosti o pronájmu. Aby byly informace v tabulce pronájmu automobilu užitečné, musí se připojit k tabulkám automobilů i zákazníků.

Vytvoření tabulky pomocí složených cizích klíčů

/ * vytvoří tabulku CarRental v databázi autopůjčoven * /
VYTVOŘIT TABULKU CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar (30) NOT NULL ZAHRANIČNÍ KLÍČOVÉ REFERENCE Auta (LicenseNumber),
CustomerID varchar (30) NOT NULL ZAHRANIČNÍ KLÍČOVÉ REFERENCE Zákazníci (CustomerID),
PRIMÁRNÍ KLÍČ (DateRented, LicenseNumber, CustomerID)
);

Výše uvedený kód zobrazuje důležitý bod; ačkoli tabulka v databázi SQL může mít více než jeden cizí klíč, může mít pouze jeden primární klíč. Je to proto, že by měl existovat pouze jeden jedinečný způsob identifikace záznamu.

Je nutné kombinovat všechny tři atributy v tabulce, abyste měli jedinečný klíč. Zákazník si může ve stejný den pronajmout více než jedno auto (tzv Zákaznické identifikační číslo a Datum výpůjčky není dobrá kombinace) více aut si může ve stejný den také pronajmout stejné auto (takže Číslo licence a Datum výpůjčky není dobrá kombinace).

Vytvoření složeného klíče však říká, který zákazník, jaké auto a v který den je vynikajícím jedinečným klíčem. Tento jedinečný klíč představuje složený cizí klíč i složený primární klíč.

Zahraniční primární klíče

Ano, cizí primární klíče se opouštějí. Ačkoli neexistuje žádný oficiální název, cizí klíč může být také primárním klíčem ve stejné tabulce. K tomu dojde, když vytvoříte novou tabulku, která obsahuje specializovaná data o existující entitě (nebo záznam v jiné tabulce).

Řekněme Fred (který pracuje v půjčovně aut) je v databázi společnosti pod tabulkou zaměstnanců. Po několika letech se stává supervizorem a přidává se k tabulce supervizorů.

Fred je stále zaměstnancem a bude mít stále stejné identifikační číslo. Takže Fredovo ID zaměstnance je nyní v tabulce supervizora jako cizí klíč, který se také stane primárním zadejte v této tabulce (protože nemá smysl vytvářet nové identifikační číslo pro Freda, když je nyní nadřízeným).

Nyní můžete identifikovat cizí klíče v databázích SQL

Cizí klíče spojují různé tabulky v databázi SQL. Z tohoto článku můžete vidět, co je cizí klíč, jak funguje a proč je důležité mít je v databázi. Rozumíte také základním a ještě složitějším formám cizích klíčů.

Pokud si myslíte, že cizí klíče jsou zajímavé, budete mít polní den, kdy začnete používat operace projektu a výběru k dotazování na vaše databáze SQL.

E-mailem
Naučte se používat operace projektu a výběru v SQL

Seznamte se s relačními databázemi SQL pochopením operací Projekt a Výběr na těchto příkladech.

Přečtěte si další

Související témata
  • Programování
  • Programování
  • SQL
  • databáze
O autorovi
Kadeisha Kean (14 článků publikováno)

Kadeisha Kean je vývojář softwaru a technický / technologický autor. Má výraznou schopnost zjednodušit některé z nejsložitějších technologických konceptů; výroba materiálu, kterému snadno porozumí každý technologický nováček. Nadšeně se věnuje psaní, vývoji zajímavého softwaru a cestování po světě (prostřednictvím dokumentů).

Více od Kadeisha Kean

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Ještě jeden krok…!

V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.

.