Cudzie kľúče umožňujú správcom databáz ľahko identifikovať rôzne spojenia, ktoré existujú v systéme správy databázy SQL.

SQL vykonáva matematické operácie s údajmi v systéme správy databáz. Tieto databázy obsahujú rôzne tabuľky, v ktorých každá uchováva údaje o konkrétnej entite. Ak máte databázu požičovní automobilov, subjektom (alebo tabuľkou) v tejto databáze budú zákazníci (ktorá bude ukladať všetky osobné údaje o každom zákazníkovi).

Tieto databázové tabuľky obsahujú riadky a stĺpce, kde každý riadok hostí záznam a každý stĺpec obsahuje údaje špecifické pre atribút.

V systéme správy databázy by mal byť každý záznam (alebo riadok) jedinečný.

Primárne kľúče

Aj keď je ustanovené, že každý záznam v tabuľke by mal byť odlišný, nie je to tak vždy. Pokračujeme príkladom databázy požičovní automobilov, ak databáza obsahuje dvoch zákazníkov mať meno „John Brown“, dalo by sa očakávať, že John Brown vráti Mercedes-Benz, ktorý však nemal nájom.

Vytvorenie primárneho kľúča toto riziko zmierni. V systéme správy databázy SQL je primárnym kľúčom jedinečný identifikátor, ktorý odlišuje jeden záznam od druhého.

instagram viewer

Preto by každý záznam v systéme na správu databázy SQL mal mať primárny kľúč.

Používanie primárnych kľúčov v databáze

Ak chcete zahrnúť primárne kľúče do systému správy databáz pomocou jazyka SQL, môžete ho jednoducho pridať ako normálny atribút pri vytváraní novej tabuľky. Tabuľka zákazníkov bude teda obsahovať štyri atribúty (alebo stĺpce):

  • CarOwnerID (ktorý uloží primárny kľúč)
  • Krstné meno
  • Priezvisko
  • Telefónne číslo

Súvisiace: Ako vytvoriť tabuľku v SQL

Teraz bude mať každý záznam zákazníka, ktorý vstúpi do databázy, jedinečné identifikačné číslo, ako aj meno, priezvisko a telefónne číslo. Telefónne číslo nie je dostatočne jedinečné na to, aby slúžilo ako primárny kľúč, pretože aj keď je jedinečné iba pre jednu osobu, môže človek ľahko zmeniť svoje číslo, čo znamená, že by teraz patrilo niekomu inému.

Záznam s príkladom primárneho kľúča

/ * vytvorí nový záznam v tabuľke zákazníkov * /
VLOŽTE DO HODNOTY zákazníkov
('0004',
„John“,
„Hnedá“,
'111-999-5555');

Vyššie uvedený kód SQL pridá nový záznam k už existujúcemu Zákazníci stôl. V nasledujúcej tabuľke je uvedená nová tabuľka zákazníkov s dvoma záznamami Johna Browna.

Cudzí kľúč

Teraz máte primárne kľúče, ktoré jedinečne odlišujú jedného požičiavateľa auta od druhého. Jediným problémom je, že v databáze neexistuje skutočné spojenie medzi každým Johnom Brownom a autom, ktoré si prenajíma.

Preto stále existuje možnosť urobiť chybu. To je miesto, kde prichádzajú do úvahy cudzie kľúče. Použitie primárneho kľúča na riešenie problému dvojznačnosti vlastníctva je dosiahnuteľné, iba ak sa primárny kľúč zdvojnásobí ako cudzí kľúč.

Čo je cudzí kľúč?

V systéme správy databázy SQL je cudzím kľúčom jedinečný identifikátor alebo kombinácia jedinečných identifikátorov, ktoré spájajú dve alebo viac tabuliek v databáze.

Spomedzi štyroch existujúcich systémov na správu databáz SQL je najpopulárnejší systém správy relačných databáz. Pri rozhodovaní o tom, ktorá tabuľka v relačnej databáze by mala mať cudzí kľúč, by ste mali najskôr určiť, ktorá tabuľka je predmetom a ktorý je objektom v ich vzťahu.

Keď sa vrátime do databázy požičovní automobilov, aby ste každého zákazníka pripojili k správnemu automobilu, musíte pochopiť, že zákazník (subjekt) si prenajíma auto (objekt). Cudzí kľúč by preto mal byť v tabuľke automobilov.

Kód SQL, ktorý generuje tabuľku s cudzím kľúčom, sa mierne líši od normy.

Vytvorenie tabuľky s príkladom cudzieho kľúča

/ * vytvorí novú tabuľku automobilov v databáze požičovní automobilov * /
VYTVORIŤ TABUĽKU Autá
(
LicenseNumber varchar (30) NOT NULL PRIMARY KEY,
CarType varchar (30) NIE JE NULL,
CustomerID varchar (30) ZAHRANIČNÉ KĽÚČOVÉ REFERENCIE Zákazníci (CustomerID)
);

Ako vidíte v kóde vyššie, cudzí kľúč musí byť výslovne identifikovaný ako taký, spolu s odkazom na primárny kľúč, ktorý je pripojený k novej tabuľke.

Súvisiace: Cheat Sheet pre základné príkazy SQL pre začiatočníkov

Ak chcete pridať záznam do novej tabuľky, musíte sa ubezpečiť, že hodnota v poli cudzieho kľúča sa zhoduje s hodnotou v poli primárneho kľúča pôvodnej tabuľky.

Pridanie záznamu s cudzím kľúčom Príklad

/ * vytvára nový rekord v tabuľke automobilov * /
VLOŽTE DO HODNOTY automobilov
('100012',
„Mercedes-Benz“,
'0004');

Vyššie uvedený kód vytvorí nový záznam v novom Autá tabuľka, ktorá prinesie nasledujúci výsledok.

Tabuľka automobilov

Z tabuľky vyššie identifikujete správneho Johna Browna, ktorý si prenajíma Mercedes-Benz, podľa cudzieho kľúča v zázname.

Predbežné zahraničné kľúče

Existujú dva ďalšie spôsoby použitia cudzieho kľúča v databáze.

Ak sa pozriete späť na vyššie uvedenú definíciu cudzieho kľúča, zistíte, že hovorí, že cudzím kľúčom môže byť jedinečný identifikátor alebo kombinácia jedinečných identifikátorov.

Keď sa vrátime k príkladu databázy požičovní automobilov, uvidíte, že vytvorenie nového záznamu (toho istého automobilu) zakaždým, keď si zákazník prenajme dané auto, je v rozpore s účelom Autá stôl. Ak sú autá na predaj a raz sa predajú jednému zákazníkovi, existujúca databáza je dokonalá; ale vzhľadom na to, že tieto autá sú požičiavané, existuje lepší spôsob, ako tieto údaje znázorniť.

Kompozitné kľúče

Zložený kľúč má dva alebo viac jedinečných identifikátorov. V relačnej databáze existujú prípady, keď použitie jedného cudzieho kľúča nebude dostatočne reprezentovať vzťahy, ktoré v tejto databáze existujú.

V príklade prenájmu automobilov je najpraktickejším prístupom vytvorenie novej tabuľky, ktorá obsahuje podrobnosti o prenájme. Aby informácie v tabuľke požičiavania automobilov boli užitočné, musia sa pripojiť k tabuľkám automobilov aj zákazníkov.

Vytvorenie tabuľky pomocou zložených cudzích kľúčov

/ * vytvorí tabuľku CarRental v databáze požičovní automobilov * /
VYTVORIŤ TABUĽKU Autopožičovňa
(
DateRented DATE NOT NULL,
LicenseNumber varchar (30) NIE JE NULL ZAHRANIČNÉ KĽÚČOVÉ ODKAZY Automobily (LicenseNumber),
CustomerID varchar (30) NIE JE NULL ZAHRANIČNÉ KĽÚČOVÉ ODKAZY Zákazníci (CustomerID),
PRIMÁRNY KLÍČ (DateRented, LicenseNumber, CustomerID)
);

Vyššie uvedený kód zobrazuje dôležitý bod; hoci tabuľka v databáze SQL môže mať viac ako jeden cudzí kľúč, môže mať iba jeden primárny kľúč. Je to tak preto, lebo by mal existovať iba jeden jedinečný spôsob identifikácie záznamu.

Je potrebné kombinovať všetky tri atribúty v tabuľke, aby ste mali jedinečný kľúč. Zákazník si môže v ten istý deň prenajať viac ako jedno auto (tzv CustomerID a Dátum prenájmu nie je dobrá kombinácia), môže si v ten istý deň požičať to isté auto aj viac zákazníkov (teda Číslo licencie a Dátum prenájmu nie je dobrá kombinácia).

Vytvorenie zloženého kľúča však hovorí, ktorý zákazník, aké auto a v ktorý deň je vynikajúcim jedinečným kľúčom. Tento jedinečný kľúč predstavuje zložený cudzí kľúč aj zložený primárny kľúč.

Zahraničné primárne kľúče

Áno, zahraničné primárne kľúče sa ukončia. Hoci neexistuje žiadny oficiálny názov, cudzí kľúč môže byť tiež primárnym kľúčom v tej istej tabuľke. To sa stane, keď vytvoríte novú tabuľku, ktorá obsahuje špecializované údaje o existujúcej entite (alebo záznam v inej tabuľke).

Say Fred (ktorý pracuje v požičovni automobilov) je v databáze spoločnosti pod tabuľkou zamestnancov. Po niekoľkých rokoch sa stáva supervízorom a pridáva sa na tabuľku supervízorov.

Fred je stále zamestnancom a bude mať stále rovnaké identifikačné číslo. Takže Fredovo ID zamestnanca je teraz v tabuľke supervízora ako cudzí kľúč, ktorý sa tiež stane primárnym zadajte v tejto tabuľke (pretože nemá zmysel vytvárať nové identifikačné číslo pre Freda, keď je teraz nadriadeným).

Teraz môžete identifikovať cudzie kľúče v databázach SQL

Cudzie kľúče spájajú rôzne tabuľky v rámci databázy SQL. Z tohto článku uvidíte, čo je cudzí kľúč, ako funguje a prečo je dôležité mať ich v databáze. Rozumiete tiež základným a ešte zložitejším formám cudzích kľúčov.

Ak si myslíte, že cudzie kľúče sú zaujímavé, budete mať poľný deň, keď začnete používať operácie projektu a výberu na dopytovanie svojich databáz SQL.

Email
Naučte sa, ako používať operácie projektu a výberu v SQL

Zoznámte sa s operáciami Projekt a Výber na týchto príkladoch a oboznámte sa s relačnými databázami SQL.

Prečítajte si Ďalej

Súvisiace témy
  • Programovanie
  • Programovanie
  • SQL
  • databázy
O autorovi
Kadeisha Kean (14 publikovaných článkov)

Kadeisha Kean je softwarová vývojárka a autorka technických / technologických noviniek. Má výraznú schopnosť zjednodušovať niektoré z najkomplexnejších technologických konceptov; výroba materiálu, ktorý ľahko pochopí každý technologický nováčik. Venuje sa písaniu, vývoju zaujímavého softvéru a cestovaniu po svete (prostredníctvom dokumentárnych filmov).

Viac od Kadeisha Keana

Prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Ešte jeden krok…!

V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.

.