Cheile de bază care facilitează gestionarea bazelor de date

Cheile bazei de date reprezintă cea mai ușoară cale de a crea o bază de date relațională eficientă

După cum probabil știți deja, bazele de date utilizează tabele pentru a organiza informații. (Dacă nu aveți o familiaritate de bază cu conceptele bazei de date, citiți ce este o bază de date? ) Fiecare tabel constă dintr-un număr de rânduri, fiecare dintre acestea corespunzând unei înregistrări de bază de date unică. Deci, cum bazele de date păstrează toate aceste înregistrări drepte? Este prin utilizarea cheilor.

Cheile primare

Primul tip de cheie pe care îl vom discuta este cheia primară . Fiecare tabelă de baze de date trebuie să aibă una sau mai multe coloane desemnate ca cheie primară . Valoarea pe care o păstrează această cheie trebuie să fie unică pentru fiecare înregistrare din baza de date.

De exemplu, presupunem că avem un tabel numit Angajați care conține informații despre personal pentru fiecare angajat al firmei noastre. Va trebui să selectăm o cheie primară adecvată care să identifice în mod unic fiecare angajat. Primul tău gând ar fi să folosești numele angajatului. Acest lucru nu ar funcționa foarte bine, deoarece este posibil să angajați doi angajați cu același nume. O alegere mai bună ar putea fi să utilizați un număr de identificare unic al angajatului pe care îl alocați fiecărui angajat atunci când sunt angajați. Unele organizații aleg să utilizeze numerele de securitate socială (sau identificatori guvernamentali similare) pentru această sarcină, deoarece fiecare angajat are deja unul și li se asigură unicitatea. Cu toate acestea, utilizarea numerelor de securitate socială în acest scop este extrem de controversată din cauza preocupărilor privind confidențialitatea. (Dacă lucrați pentru o organizație guvernamentală, utilizarea unui număr de securitate socială poate fi chiar ilegală în conformitate cu Legea privind confidențialitatea din 1974.) Din acest motiv, majoritatea organizațiilor s-au mutat la utilizarea identificatorilor unici (ID-ul angajatului, ID-ul studenților etc. .) care nu împărtășesc aceste preocupări privind confidențialitatea.

Odată ce decideți asupra unei chei primare și configurați baza de date, sistemul de gestionare a bazelor de date va impune unicitatea cheii.

Dacă încercați să inserați o înregistrare într-un tabel cu o cheie primară care duplică o înregistrare existentă, inserarea va eșua.

Cele mai multe baze de date sunt, de asemenea, capabile să genereze propriile lor chei primare. Microsoft Access, de exemplu, poate fi configurat să utilizeze tipul de date AutoNumber pentru a atribui un ID unic fiecărei înregistrări din tabel. În timp ce eficace, aceasta este o practică de proiectare proastă, deoarece vă lasă cu o valoare fără valoare în fiecare înregistrare din tabel. De ce să nu folosiți acel spațiu pentru a stoca ceva util?

Cheile externe

Alt tip este cheia externă , care este utilizată pentru a crea relații între tabele. Relațiile naturale există între tabelele celor mai multe structuri de baze de date. Revenind la baza de date a angajaților, imaginați-vă că am dorit să adăugăm o bază de date tabelă conținând informații departamentale. Această nouă tabelă ar putea fi numită Departamente și ar conține o cantitate mare de informații despre departament ca întreg. De asemenea, vrem să includem informații despre angajații din departament, dar ar fi redundant să avem aceleași informații în două tabele (angajați și departamente). În schimb, putem crea o relație între cele două tabele.

Să presupunem că tabelul Departamentelor utilizează coloana Denumire Departament ca cheie primară. Pentru a crea o relație între cele două tabele, adăugăm o nouă coloană în tabelul Angajații denumit Departament. Apoi, completați numele departamentului la care aparține fiecare angajat. De asemenea, informăm sistemul de gestionare a bazelor de date pe care coloana Departamentului din tabelul Employees este o cheie străină care face referire la tabelul Departamentele.

Baza de date va impune integritatea referențială, asigurând că toate valorile din coloana Departamente din tabelul Angajați au intrări corespunzătoare în tabelul Departamente.

Rețineți că nu există o constrângere de unicitate pentru o cheie străină. Putem (și, cel mai probabil, avem) mai mulți angajați care aparțin unui singur departament. În mod similar, nu există cerința ca o intrare în tabelul Departamentelor să aibă o intrare corespunzătoare în tabelul Angajați. Este posibil să avem un departament fără angajați.

Pentru mai multe despre acest subiect, citiți Crearea cheilor externe .