Ce sunt cheile străine în bazele de date SQL?

Ce sunt cheile străine în bazele de date SQL?

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 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 au fiecare numele John Brown, un John Brown ar putea fi de așteptat să returneze un Mercedes-Benz pe care nu l-a închiriat.



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.

cum se convertește imaginea în vector în ilustrator

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 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
  • Nume
  • Număr 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ă

/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'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ă

/* creates a new cars table in the car rental database */
CREATE TABLE Cars
(
LicenseNumber varchar(30) NOT NULL PRIMARY KEY,
CarType varchar(30) NOT NULL,
CustomerID varchar(30) FOREIGN KEY REFERENCES Customers(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.

cum se adaugă un contact pe WhatsApp

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ă

/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('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 descoperi că aceasta spune 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

/* creates a CarRental table in the car rental database */
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar(30) NOT NULL FOREIGN KEY REFERENCES Cars(LicenseNumber),
CustomerID varchar(30) NOT NULL FOREIGN KEY REFERENCES Customers(CustomerID),
PRIMARY KEY (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ă.

câte fotografii pot păstra 32 GB

Chei primare străine

Da, ieșesc cheile primare străine. 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 cheie principală în tabelul respectiv (deoarece nu are sens să creezi un nou număr de identificare pentru Fred acum că este supervizor).

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 și 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 vă interoga bazele de date SQL.

Acțiune Acțiune Tweet 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(21 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 ușor de înțeles de către orice novice în tehnologie. Este pasionată de scriere, dezvoltarea de software-uri interesante și călătoria 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!

Faceți clic aici pentru a vă abona