A külföldi kulcsok ereje a relációs adatbázisokban

Egy idegen kulcs megnyitja az ajtót egy egész adatvilághoz

Az adatbázis-tervezők a relációs adatbázisok fejlesztésekor széles körben használják a kulcsokat. Ezek közül a leggyakoribbak közül az elsődleges kulcsok és a külföldi kulcsok. Az adatbázis idegen kulcs egy olyan relációs táblázatban szereplő mező, amely megfelel egy másik táblázat elsődleges kulcs oszlopának. Ahhoz, hogy megértsük, hogyan működik egy idegen kulcs, nézzük közelebb a relációs adatbázis gondolatát.

A relációs adatbázisok alapjai

Egy relációs adatbázisban az adatokat a sorokban és oszlopokban található táblákban tárolják, megkönnyítve a keresést és manipulálást. A relációs adatbázis fogalma mögött van egy komoly matematika (relációs algebra, amelyet az EF

Codd az IBM-ben 1970-ben), de ez nem a cikk témája.

Gyakorlati célokra (és nem matematikusoknál) egy relációs adatbázis tárolja a "kapcsolódó" adatokat sorokban és oszlopokban. Továbbá - és itt érdekes - a legtöbb adatbázis úgy van megtervezve, hogy az egyik táblázatban lévő adatok hozzáférjenek az adatokhoz egy másik táblázatban. Ez a képesség, hogy kapcsolatot teremtsen a táblák között, egy relációs adatbázis valódi ereje.

Külföldi kulcsok használata

A legtöbb táblázat, különösen a nagy, összetett adatbázisokban, elsődleges kulcsokkal rendelkezik. A táblák eléréséhez tervezett tábláknak külföldi kulcsmal is rendelkezniük kell.

Az általánosan idézett Northwinds adatbázis használatához itt található egy kivonat a terméktáblázatban:

A Northwind adatbázis terméktáblázata
Termék azonosító Termék név kategóriaazonosító QuantityPerU Egységár
1 Chai 1 10 doboz x 20 zsák 18.00
2 Chang 1 24 - 12 oz-es palackok 19.00
3 Ánizs szirup 2 12 - 550 ml-es palackokat 10.00
4 Anton's Cajun Fűszeres séf 2 48 - 6 oz tégelyek 22.00
5 Chef Anton's Gumbo Mix 2 36 doboz 21.35
6 A nagymama's Boysenberry Spread 2 12 - 8 oz tégelyek 25.00
7 Bob bácsi szerves száraz körte 7 12 - 1 lb pkgs. 30.00

A termékazonosító oszlop a táblázat elsődleges kulcsa. Minden termékhez egyedi azonosítót rendel.

Ez a táblázat egy idegen kulcs oszlopot is tartalmaz, a CategoryID . A terméktáblában szereplő minden termék a Kategóriák táblázatban szereplő bejegyzéshez kapcsolódik, amely meghatározza a termék kategóriáját.

Vegye figyelembe ezt a részletet az adatbázis Kategóriák táblázatából:

Northwind adatbázis kategóriáinak táblázata
kategóriaazonosító Kategória név Leírás
1 italok Üdítőitalok, kávék, teák, sörök és ales
2 Fűszerek Édes és sós szószok, ízek, elterjedések és ízesítők
3 édességek Desszertek, édességek és édességek
5 Tejtermékek sajtok

Az oszlop CategoryID az oszlop elsődleges kulcsa. (Nem rendelkezik idegen kulcsmal, mert nem kell hozzáférnie egy másik táblához.) A Terméktábla minden külföldi kulcsa a Kategóriák táblázatban található elsődleges kulcsra mutat. Például a Chai termékhez egy "Ital" kategóriába tartozik, míg az Aniseed Scirocco a Fűszerek kategóriában található.

Ez a fajta összekapcsolás számtalan módot hoz létre az adatok felhasználására és újrafelhasználására relációs adatbázisban.