Cheile străine permit administratorilor de baze de date să identifice cu ușurință diferitele conexiuni care există în cadrul unui sistem de gestionare a bazelor de date SQL.

SQL efectuează operații matematice pe date într-un sistem de gestionare a bazelor de date. Aceste baze de date conțin diferite tabele care fiecare stochează date pe o anumită entitate. Dacă aveți o bază de date de închirieri auto, o entitate (sau un tabel) din baza de date respectivă va fi clienți (care vor stoca toate datele personale ale fiecărui client).

Aceste tabele de baze de date conțin rânduri și coloane, unde fiecare rând găzduiește o înregistrare și fiecare coloană conține date specifice atributelor.

Într-un sistem de gestionare a bazelor de date, fiecare înregistrare (sau rând) ar trebui să fie unică.

Cheile primare

Deși se prevede că fiecare înregistrare dintr-un tabel ar trebui să fie distinctă, acest lucru nu este întotdeauna cazul. Continuând cu exemplul bazei de date de închirieri auto, dacă baza de date conține doi clienți care fiecare poartă numele „John Brown”, un John Brown ar putea fi de așteptat să înapoieze un Mercedes-Benz pe care el nu chirie.

instagram viewer

Crearea unei chei primare va atenua acest risc. Într-un sistem de gestionare a bazelor de date SQL, o cheie primară este un identificator unic care distinge o înregistrare de alta.

Prin urmare, fiecare înregistrare dintr-un sistem de gestionare a bazelor de date SQL ar trebui să aibă o cheie primară.

Utilizarea cheilor primare într-o bază de date

Pentru a include cheile primare într-un sistem de gestionare a bazelor de date care utilizează SQL, îl puteți adăuga pur și simplu ca un atribut normal atunci când creați un nou tabel. Deci, tabelul clienților va conține patru atribute (sau coloane):

  • CarOwnerID (care va stoca cheia principală)
  • Nume
  • Numele de familie
  • Numar de telefon

Legate de: Cum se creează un tabel în SQL

Acum, fiecare înregistrare de client care intră în baza de date va avea un număr unic de identificare, precum și un prenume, prenume și număr de telefon. Numărul de telefon nu este suficient de unic pentru a fi o cheie principală, deoarece, deși este unic pentru o persoană la un moment dat, o persoană își poate schimba cu ușurință numărul, ceea ce înseamnă că acum ar aparține altcuiva.

O înregistrare cu un exemplu de cheie primară

/ * creează o nouă înregistrare în tabelul clienților * /
INSERAȚI ÎN VALORI Clienților
('0004',
'Ioan',
'Maro',
'111-999-5555');

Codul SQL de mai sus va adăuga o nouă înregistrare la cea preexistentă Clienți masa. Tabelul de mai jos prezintă noul tabel al clienților cu cele două înregistrări John Brown.

Cheia străină

Acum aveți chei principale care diferențiază în mod unic un chiriaș de mașină de altul. Singura problemă este că, în baza de date, nu există o legătură reală între fiecare John Brown și mașina pe care o închiriază.

Prin urmare, există posibilitatea de a face o greșeală. Aici intră în joc cheile străine. Folosirea unei chei primare pentru a rezolva problema ambiguității proprietății este realizabilă numai dacă cheia primară se dublează ca cheie externă.

Ce este o cheie străină?

Într-un sistem de gestionare a bazelor de date SQL, o cheie străină este un identificator unic sau o combinație de identificatori unici care conectează două sau mai multe tabele într-o bază de date.

Dintre cele patru sisteme de gestionare a bazelor de date SQL existente, sistemul de gestionare a bazelor de date relaționale este cel mai popular. Când decideți care tabel dintr-o bază de date relațională ar trebui să aibă o cheie străină, trebuie mai întâi să identificați care tabel este subiectul și care este obiectul în relația lor.

Revenind la baza de date de închirieri auto, pentru a conecta fiecare client la mașina corectă, va trebui să înțelegeți că un client (subiectul) închiriază o mașină (obiectul). Prin urmare, cheia străină ar trebui să fie în tabelul mașinilor.

Codul SQL care generează un tabel cu o cheie străină este ușor diferit de normă.

Crearea unui tabel cu un exemplu de cheie străină

/ * creează un nou tabel de mașini în baza de date de închirieri auto * /
CREAȚI Masă Masini
(
LicenseNumber varchar (30) NU CHEIA PRIMARĂ NULĂ,
CarType varchar (30) NOT NULL,
CustomerID varchar (30) REFERINȚE CHEIE STRĂINE Clienți (CustomerID)
);

După cum puteți vedea în codul de mai sus, o cheie străină trebuie identificată în mod explicit ca atare, împreună cu o referință la cheia primară care este conectată la noul tabel.

Legate de: Foaia de trucuri pentru comenzile SQL esențiale pentru începători

Pentru a adăuga o înregistrare la noul tabel, va trebui să vă asigurați că valoarea din câmpul cu cheie străină se potrivește cu valoarea din câmpul cu cheie primară din tabelul original.

Adăugarea unei înregistrări cu un exemplu de cheie străină

/ * creează un nou record în tabelul mașinilor * /
INSERAȚI ÎN VALORILE Mașinilor
('100012',
„Mercedes-Benz”,
'0004');

Codul de mai sus creează o nouă înregistrare în noul Mașini tabel, producând următorul rezultat.

Masa Masini

Din tabelul de mai sus, puteți identifica corect John Brown care închiriază un Mercedes-Benz cu cheia străină din înregistrare.

Chei străine avansate

Există două alte modalități de a utiliza o cheie străină într-o bază de date.

Dacă vă uitați înapoi la definiția unei chei străine de mai sus, veți constata că o cheie străină poate fi un identificator unic sau o combinație de identificatori unici.

Revenind la exemplul bazei de date de închirieri auto, veți vedea că crearea unui nou record (al aceleiași mașini) de fiecare dată când un client închiriază mașina respectivă, învinge scopul Mașini masa. Dacă mașinile sunt de vânzare și sunt vândute unui singur client o singură dată, baza de date existentă este perfectă; dar având în vedere că mașinile sunt închiriate, există o modalitate mai bună de a reprezenta aceste date.

Taste compozite

O cheie compusă are doi sau mai mulți identificatori unici. Într-o bază de date relațională, vor exista cazuri în care utilizarea unei singure chei străine nu va reprezenta suficient relațiile care există în baza de date respectivă.

În exemplul de închiriere auto, cea mai practică abordare este crearea unui nou tabel care să stocheze detaliile chiriei. Pentru ca informațiile din tabelul de închirieri auto să fie utile, trebuie să se conecteze atât la masă, cât și la tabelele clienților.

Crearea unui tabel cu chei străine compozite

/ * creează un tabel CarRental în baza de date de închirieri auto * /
CREAȚI MESAJ CarRental
(
DateRented DATE NOT NULL,
Număr licență varchar (30) REFERINȚE CHEIE EXTERNE NULL Automobile (Număr licență),
CustomerID varchar (30) REFERINȚE CHEIE EXTERNE NULL Clienți (CustomerID),
CHEIE PRIMARĂ (DateRented, LicenseNumber, CustomerID)
);

Codul de mai sus descrie un punct important; deși un tabel dintr-o bază de date SQL poate avea mai multe chei străine, nu poate avea decât o singură cheie primară. Acest lucru se datorează faptului că ar trebui să existe un singur mod unic de a identifica o înregistrare.

Este necesar să combinați toate cele trei atribute din tabel pentru a avea o cheie unică. Un client poate închiria mai multe mașini în aceeași zi (deci Număr de înregistrare client și DateRented nu este o combinație bună) mai mulți clienți pot închiria aceeași mașină în aceeași zi (deci Numărul de licență și DateRented nu este o combinație bună).

Cu toate acestea, crearea unei chei compozite care să indice ce client, ce mașină și în ce zi face o cheie excelentă. Această cheie unică reprezintă atât o cheie externă compusă, cât și o cheie primară compusă.

Chei primare străine

Da, cheile străine primare ies. Deși nu există un nume oficial pentru aceasta, o cheie străină poate fi, de asemenea, o cheie principală în același tabel. Acest lucru se întâmplă atunci când creați un nou tabel care conține date specializate despre o entitate existentă (sau înregistrați într-un alt tabel).

Spuneți că Fred (care lucrează la compania de închirieri auto) se află în baza de date a companiei, sub tabelul angajaților. După câțiva ani, devine supraveghetor și se adaugă la masa supraveghetorului.

Fred este încă angajat și va avea în continuare același număr de identificare. Așadar, codul de angajat al lui Fred se află acum în tabelul supervizorului ca cheie străină, care va deveni, de asemenea, o primă cheia din acel tabel (deoarece nu are sens să creezi un nou număr de identificare pentru Fred acum că este supraveghetor).

Acum puteți identifica cheile străine în bazele de date SQL

Cheile străine conectează diferite tabele într-o bază de date SQL. Din acest articol, puteți vedea ce este o cheie străină, cum funcționează și de ce este important să le aveți într-o bază de date. Înțelegeți, de asemenea, formele de bază și chiar mai complexe ale cheilor străine.

Dacă credeți că cheile străine sunt interesante, veți avea o zi de câmp când veți începe să utilizați operațiunile de proiect și selecție pentru a interoga bazele de date SQL.

E-mail
Aflați cum să utilizați operațiunile de proiect și selecție în SQL

Faceți cunoștință cu bazele de date relaționale SQL înțelegând operațiunile de proiect și selecție cu aceste exemple.

Citiți în continuare

Subiecte asemănătoare
  • Programare
  • Programare
  • SQL
  • Bază de date
Despre autor
Kadeisha Kean (14 articole publicate)

Kadeisha Kean este un dezvoltator de software complet și scriitor tehnic / tehnologic. Are capacitatea distinctă de a simplifica unele dintre cele mai complexe concepte tehnologice; producând materiale care pot fi înțelese cu ușurință de orice novice în tehnologie. Este pasionată de scris, dezvoltând software-uri interesante și călătorind prin lume (prin documentare).

Mai multe de la Kadeisha Kean

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Încă un pas…!

Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.

.