Cuprins:
Definiție - Ce înseamnă cheia externă?
O cheie străină este o coloană sau un grup de coloane dintr-o tabelă de baze de date relaționale care oferă o legătură între datele din două tabele. Acționează ca o referință încrucișată între tabele, deoarece face referire la cheia primară a altei tabele, stabilind astfel o legătură între ele.
Majoritatea tabelelor dintr-un sistem de baze de date relaționale aderă la conceptul de cheie străină. În baze de date complexe și depozite de date, datele dintr-un domeniu trebuie adăugate pe mai multe tabele, menținând astfel o relație între ele. Conceptul de integritate referențială este derivat din teoria cheilor străine.
Cheile externe și punerea lor în aplicare sunt mai complexe decât tastele primare.
Techopedia explică cheia străină
Pentru orice coloană care acționează ca o cheie străină, ar trebui să existe o valoare corespunzătoare în tabelul de legături. Trebuie să aveți grijă specială atunci când introduceți date și eliminați datele din coloana de cheie străină, deoarece o ștergere sau o inserare neglijentă ar putea distruge relația dintre cele două tabele.
De exemplu, dacă există două tabele, client și comandă, între ele se poate crea o relație prin introducerea unei chei străine în tabelul de comenzi care se referă la ID-ul clientului în tabelul de clienți. Coloana de identificare a clientului există atât în tabelele de clienți, cât și în cele de comandă. ID-ul clientului din tabelul de comenzi devine cheia străină, referindu-se la cheia principală din tabelul clienților. Pentru a introduce o intrare în tabelul de ordine, constrângerea cheii externe trebuie să fie satisfăcută. O încercare de a introduce un ID de client care nu este prezent în tabelul de clienți eșuează, menținând astfel integritatea referențială a tabelei.
Unele acțiuni referențiale asociate unei acțiuni cheie străină includ următoarele:
- Cascadă: Când ștergerea rândurilor din tabelul părinte, coloanele de chei străine potrivite din tabelul copil sunt, de asemenea, șterse, creând o ștergere în cascadă.
- Set Null: Când un rând de referință din tabelul părinte este șters sau actualizat, valorile cheie străine din rândul de referință sunt setate pe null pentru a menține integritatea referențială.
- Declanșatoare: acțiunile referențiale sunt în mod normal implementate ca declanșatori. În multe feluri, acțiunile cheie străine sunt similare cu declanșatoarele definite de utilizator. Pentru a asigura o execuție corectă, acțiunile referențiale ordonate sunt uneori înlocuite cu declanșatoarele lor echivalente definite de utilizator.
- Set Default: Această acțiune referențială este similară cu „set null”. Valorile cheii străine din tabelul copil sunt setate la valoarea coloanei implicite atunci când rândul de referință din tabelul părinte este șters sau actualizat.
- Restricție: Aceasta este acțiunea referențială normală asociată cu o cheie străină. O valoare din tabelul părinte nu poate fi ștearsă sau actualizată atât timp cât este menționată de o cheie străină într-un alt tabel.
- Fără acțiune: Această acțiune referențială este similară în funcție de acțiunea „restricționează”, cu excepția faptului că o verificare fără acțiune este efectuată numai după încercarea de a modifica tabelul.