Sila zahraničných kľúčov v relatívnych databázach

Cudzí kľúč otvára dvere do celého sveta údajov

Návrhári databázy širšie využívajú kľúče pri vývoji relačných databáz. Medzi najčastejšie tieto kľúče patria primárne kľúče a cudzie kľúče. Cudzí kľúč databázy je pole v relačnej tabuľke, ktorá zodpovedá stĺpci primárneho kľúča inej tabuľky. Aby sme pochopili, ako funguje cudzí kľúč, podrobnejšie sa pozrieme na myšlienku relačnej databázy.

Niektoré základy relatívnych databáz

V relačnej databáze sú dáta uložené v tabuľkách obsahujúcich riadky a stĺpce, takže je ľahké vyhľadávať a manipulovať. Existuje niekoľko vážnych matematikov za koncepciou relačnej databázy (relačná algebra, navrhovaná EF

Codd v IBM v roku 1970), ale to nie je téma tohto článku.

Pre praktické účely (a nema matematikov) relačná databáza ukladá "súvisiace" dáta do riadkov a stĺpcov. Ďalej - a tu je to zaujímavé - väčšina databáz je navrhnutá tak, aby údaje v jednej tabuľke mohli získať prístup k údajom v inej tabuľke. Táto schopnosť vytvárať vzťahy medzi tabuľkami je skutočná sila relačnej databázy.

Použitie cudzích kľúčov

Väčšina tabuliek, najmä tých vo veľkých, komplexných databázach, má primárne kľúče. Tabuľky, ktoré sú navrhnuté na prístup do iných tabuliek, musia mať aj cudzí kľúč.

Ak chcete použiť bežne citovanú databázu Northwinds, nájdete tu výňatok z tabuľky produktu:

Výpis z tabuľky produktov v databáze Northwind
Identifikačné číslo produktu Meno Produktu CategoryID QuantityPerU Jednotková cena
1 chai 1 10 krabičiek x 20 vreciek 18.00
2 chang 1 24 - 12 oz fľaše 19.00
3 Anízový sirup 2 12 - 550 ml fľaše 10.00
4 Šéfkuchár Anton Cajun 2 48 - 6 oz pohárov 22.00
5 Šéfkuchár Anton Gumbo Mix 2 36 krabičiek 21,35
6 Babička Boysenberry Spread 2 12 - 8 oz pohárov 25.00
7 Organické sušené hrušky strýka Boba 7 12 - 1 lb pkgs. 30.00

Stĺpec ProductID je primárny kľúč tejto tabuľky. Každému produktu pridelí jedinečné ID.

Táto tabuľka obsahuje aj stĺpec cudzieho kľúča, identifikátor kategórie . Každý produkt v tabuľke produktu odkazuje na položku v tabuľke kategórií, ktorá definuje túto kategóriu produktu.

Všimnite si tento výňatok z tabuľky kategórií databázy:

Tabuľkový výpis kategórií databázy Northwind
CategoryID Meno kategórie popis
1 nápoje Nealkoholické nápoje, kávy, čaje, pivo a čokoláda
2 korenie Sladké a slané omáčky, korenie, nátierky a koreniny
3 cukroví Dezerty, cukríky a sladké chrumky
5 Mliečne výrobky syry

Názov stĺpca CategoryID je primárny kľúč tohto stĺpca. (Nemá žiadny cudzí kľúč, pretože nemá prístup k inej tabuľke.) Každý cudzí kľúč v tabuľke produktu odkazuje na primárny kľúč v tabuľke kategórií. Napríklad výrobok Chai má priradenú kategóriu "nápoje", zatiaľ čo anízový sirup je v kategórii "Korenie".

Tento druh prepojenia vytvára nespočetné množstvo spôsobov využitia a opätovného použitia údajov v relačnej databáze.