Ce este o schemă de bază de date?

O schemă de bază de date este o modalitate de a descrie structura și relațiile de informații care vor fi utilizate și păstrate într-o bază de date. Unele scheme sunt scrise într-un limbaj care poate fi interpretat de software-ul de gestionare a bazelor de date (DBMS), în timp ce altele sunt diagrame complet abstracte. Elementele primare ale unei scheme de baze de date sunt entitățile și tabele. O entitate este un model de date pentru un obiect dintr-o bază de date, în timp ce un tabel este o secvență stocată de valori sau alte entități. La fel ca un plan, o schemă bine concepută poate fi folosită pentru a vedea exact cum este construită arhitectura unei baze de date.

Schemele bazelor de date sunt uneori necesare pentru a arăta în mod explicit cum este stocată datele și cum se leagă cu restul bazei de date. O entitate este o reprezentare a unei colecții de date. Ca orice structură de date, poate avea un număr de câmpuri. Cu toate acestea, entitățile au de obicei un câmp de identificare unic. Aceasta se numește cheia primară.

O cheie primară este un link către un tabel. Cheia trebuie să fie unică printre toate celelalte elemente din tabel. Un exemplu ar fi un număr de client pentru o bază de date care urmărește achizițiile din magazin. Fiecare entitate poate avea o singură cheie primară.

De asemenea, entitățile pot avea orice număr de chei străine. O cheie externă este cel mai adesea cheia primară a unei alte entități dintr-un alt tabel. În exemplul de mai sus, o cheie străină ar putea fi un număr de comandă pentru acel client.

În bazele de date relaționale, cheile primare și străine sunt folosite pentru a exprima conceptul foarte important de relații unu-la-mulți. În exemplul dat, un client poate avea multe comenzi și numere de comandă diferite. Reversul nu este adevărat, deoarece comanda poate avea un singur client. Relațiile unu-la-mulți fac parte din motivul pentru care este necesară o schemă de bază de date.

Un alt tip de relație se numește multi-la-mulți. Aceasta este o instanță în care o entitate nu numai că are multe relații cu un singur tip, ci poate fi inclusă în mai multe tipuri de un alt tip. Un exemplu în acest sens este modul în care orice număr de clienți poate comanda același produs. În același timp, un client poate comanda orice număr de produse. Această relație multi-la-mulți este comună, dar necesită modelare specială a datelor pentru a funcționa în cadrul schemei bazei de date.
Deși există unele convenții standard care sunt urmate atunci când se creează o schemă de bază de date, există și multe modalități de a reprezenta modelele de date. Modul exact în care este reprezentat fiecare obiect de schemă într-un design abstract este la latitudinea modelatorului de date. În unele situații, un sistem DBMS va fi capabil să accepte o schemă de bază de date care este scrisă într-un mod specific și să implementeze de fapt o parte din proiectare automat.