O cheie externă leagă înregistrările dintr-un tabel de înregistrările dintr-un alt tabel. Un tabel de comenzi are un câmp customer_id. Acest câmp este o cheie externă care indică cheia primară a tabelului de clienți. Legătura asigură că fiecare comandă aparține unui client real. Fără ea, comenzile ar putea face referire la clienți care nu există. Baza de date impune relația.
Cheile externe fac mai mult decât să documenteze relațiile. Ele impun integritatea referențială. Dacă încercați să inserați o comandă cu un customer_id care nu există în tabelul customer, baza de date o respinge. Dacă încercați să ștergeți un client care are comenzi, baza de date fie blochează ștergerea, fie o execută în cascadă, în funcție de regulă. Această impunere previne înregistrările orfane și datele inconsistente. Cheile externe ajută, de asemenea, la performanța interogărilor. Baza de date poate utiliza relația pentru a optimiza joncțiunile. Nu toate bazele de date impun chei externe. Unele baze de date NoSQL lasă integritatea referențială aplicației. Acest lucru oferă dezvoltatorilor mai multă flexibilitate, dar și mai multă responsabilitate. Aplicația trebuie să se asigure că referințele sunt valide. Dacă eșuează, datele devin inconsistente. Cheile externe reprezintă o constrângere. Constrângerile sunt incomode până când previn un dezastru.
Reguli de cheie externă
- Restricționare — blocarea ștergerii dacă există referințe
- Cascadă — șterge sau actualizează automat înregistrările de referință
- Set null — setează cheia externă la null la ștergere
- Nicio acțiune — permiteți operațiunea și verificați mai târziu
O cheie externă este o legătură și o garanție. Legătura conectează tabelele. Garanția le menține consistența.
Comments
No comments yet. Be the first to share a thought.
Leave a comment