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

Zahraniční klíč otevírá dveře do celého světa dat

Návrháři databáze vytvářejí při vytváření relačních databází široké využití klíčů. Mezi nejčastější z těchto klíčů patří primární klíče a cizí klíče. Cizí klíč v databázi je pole relační tabulky, které odpovídá sloupci primárního klíče jiné tabulky. Abychom pochopili, jak funguje cizí klíč, podívejme se blíže na myšlenku relační databáze.

Některé základy relačních databází

V relační databázi jsou data uložena v tabulkách obsahujících řádky a sloupce, což usnadňuje vyhledávání a manipulaci. Existuje nějaká vážná matematika za koncepcí relační databáze (relační algebra, navržená EF

Codd v IBM v roce 1970), ale to není téma tohoto článku.

Pro praktické účely (a pro nematematiky) relační databáze ukládají "související" data do řádků a sloupců. Dále - a tady je to zajímavé - většina databází je navržena tak, aby data v jedné tabulce měly přístup k datům v jiné tabulce. Tato schopnost vytvářet vztahy mezi tabulkami je skutečnou silou relační databáze.

Použití cizích klíčů

Většina tabulek, zejména ve velkých, složitých databázích, má primární klíče. Tabulky, které jsou určeny pro přístup k jiným tabulkám, musí mít také cizí klíč.

Chcete-li použít běžně citovanou databázi Northwinds, je zde výňatek z produktové tabulky:

Produktová tabulka databáze Northwind
ProductID Jméno výrobku ID kategorie QuantityPerU Jednotková cena
1 Chai 1 10 krabiček x 20 sáčků 18.00
2 Chang 1 24 - 12 oz lahví 19.00
3 Anýzový sirup 2 12 - 550 ml lahví 10.00
4 Šéfkuchař Anton Cajun koření 2 48 - 6 oz džbánů 22.00
5 Šéfkuchař Anton's Gumbo Mix 2 36 krabic 21,35
6 Grandma Boysenberry Spread 2 12 - 8 oz džbánů 25.00
7 Strýc Bob je organické sušené hrušky 7 12 - 1 lb pkgs. 30.00

Sloupec ProductID je primární klíč této tabulky. Každému produktu přidělí jedinečné ID.

Tato tabulka také obsahuje sloupec cizího klíče, identifikátor kategorie . Každý produkt v tabulce Produkt odkazuje na položku v tabulce Kategorie, která definuje kategorii produktu.

Poznamenejte si tento výňatek z tabulky kategorií databáze:

Tabulka výňatků z kategorií Northwind
ID kategorie Název Kategorie Popis
1 Nápoje Nealkoholické nápoje, kávy, čaje, piva a chobotnice
2 Koření Sladké a slané omáčky, koření, nádivky a koření
3 Konfekce Dezerty, bonbóny a sladké pečivo
5 Mléčné výrobky Sýry

Sloupec CategoryID je primární klíč tohoto sloupce. (Nemá žádný cizí klíč, protože není třeba přistupovat k jiné tabulce.) Každý cizí klíč v tabulce Produkt odkazuje na primární klíč v tabulce Kategorie. Například produkt Chai je přiřazen kategorii "nápoje", zatímco sirup z anýzu je v kategorii "Koření".

Tento druh propojení vytváří nesčetné množství způsobů využití a opětovného použití dat v relační databázi.