Puterea cheilor externe în baze de date relaționale

O cheie străină deschide ușa unei întregi lumi de date

Designerii de baze de date folosesc la scară largă cheile atunci când elaborează baze de date relaționale. Printre cele mai frecvente dintre aceste chei se numără cheile primare și cheile străine. O cheie externă de bază de date este un câmp într-o tabelă relațională care se potrivește cu coloana cheii primare a altui tabel. Pentru a înțelege cum funcționează o cheie străină, să examinăm mai atent ideea unei baze de date relaționale.

Unele baze ale bazelor de date relaționale

Într-o bază de date relațională, datele sunt stocate în tabele care conțin rânduri și coloane, facilitând căutarea și manipularea. Există câteva matematice serioase în spatele conceptului de bază de date relațională (algebra relațională, propusă de EF

Codd la IBM în 1970), dar asta nu este subiectul acestui articol.

Pentru scopuri practice (și non-matematicieni), o bază de date relațională stochează date "înrudite" în rânduri și coloane. Mai departe - și aici devine interesant - majoritatea bazelor de date sunt proiectate astfel încât datele dintr-un tabel să poată accesa datele dintr-un alt tabel. Această capacitate de a crea relații între tabele este puterea reală a unei baze de date relaționale.

Utilizarea cheilor externe

Cele mai multe tabele, în special cele din baze de date complexe, au chei primare. Tabelele care sunt concepute pentru a accesa alte tabele trebuie să aibă, de asemenea, o cheie străină.

Pentru a utiliza baza de date Northwinds frecvent citată, iată un extras din tabelul de produse:

Baza de date a tabelului de produse de la Northwind
ProductID Numele produsului categoryID QuantityPerU Preț unitar
1 chai 1 10 cutii x 20 de saci 18.00
2 Chang 1 Flacoane de 24 - 12 oz 19.00
3 Sirop de anason 2 Sticle de 12 - 550 ml 10.00
4 Șeful lui Anton Cajun condimentează 2 Borcane de 48 - 6 oz 22.00
5 Cheful lui Anton's Gumbo Mix 2 36 cutii 21.35
6 Bunica lui Boysenberry Spread 2 Borcane de 12 - 8 oz 25.00
7 Peretele uscat organic al unchiului Bob 7 12 - 1 lb pkgs. 30.00

Coloana ProductID este cheia primară a acestui tabel. Acesta atribuie un ID unic fiecărui produs.

Acest tabel conține, de asemenea, o coloană de chei străine, CategoryID . Fiecare produs din tabelul Produsul face trimitere la o înregistrare din tabelul Categorii care definește categoria produsului respectiv.

Rețineți acest extras din tabelul de categorii din baza de date:

Baza de date a tabelului de baze de date Northwind
categoryID Numele categoriei Descriere
1 băuturi Bauturi racoritoare, cafele, ceaiuri, bere si ales
2 condimentele Sosuri dulci și savuroase, adăpostite, tartinuri și condimente
3 confecţiilor Deserturi, bomboane și dulciuri
5 Lactate brânzeturi

Codul de coloană din coloană este cheia primară a acestei coloane. (Nu are cheie străină deoarece nu are nevoie să acceseze altă tabelă.) Fiecare cheie străină din tabelul Produs se leagă de o cheie primară din tabelul Categorii. De exemplu, produsul Chai are o categorie "Băuturi", în timp ce Siropul de Anason este în categoria "Condimente".

Acest tip de legare creează o multitudine de moduri de utilizare și reutilizare a datelor într-o bază de date relațională.