Ce este o schemă de bază de date?

Cuprins:

Ce este o schemă de bază de date?
Ce este o schemă de bază de date?
Anonim

O schemă de bază de date este o colecție de metadate care descrie relațiile dintre obiecte și informații dintr-o bază de date. O modalitate ușoară de a imagina o schemă este să o gândim ca pe o cutie care conține tabele, proceduri stocate, vizualizări și active de date aferente. O schemă definește infrastructura acestei casete.

Linia de bază

La nivelul său de bază, o schemă servește drept container pentru materialele de date. Cu toate acestea, diferiți furnizori de baze de date își structurează schemele în moduri diferite. Oracle, de exemplu, tratează fiecare schemă ca pe un cont de utilizator. Pentru a crea o nouă schemă, un administrator al bazei de date creează un nou utilizator al bazei de date cu numele de schemă dorit.

De ce contează schemele

Deoarece schemele constituie o caracteristică structurală de bază a unei baze de date, majoritatea mediilor de baze de date aplică permisiuni de acces la obiecte la nivel de schemă.

De exemplu, o bază de date a unei companii poate conține o serie de utilizatori. Fiecare utilizator are o schemă, dar accesul la diferite scheme este acordat individual și cu granularitatea permisiunilor, utilizatorilor din afara schemei de acasă.

Majoritatea instrumentelor de gestionare a bazelor de date nu listează scheme; în schimb, listează baze de date și utilizatori.

Image
Image

De exemplu, o companie creează conturi de utilizator (scheme) pentru Bob și Jane. De asemenea, creează conturi pentru departamente precum HR și Marketing. Apoi, îi oferă unui analist din fiecare departament acces la contul de schemă al departamentului său.

Analistul de resurse umane creează tabele și vizualizări în cadrul schemei de resurse umane și îi acordă acces lui Bob pentru a citi (dar nu a scrie în) un tabel de resurse umane care listează numele și numerele de identificare a angajaților. De asemenea, analistul de resurse umane poate acorda acces lui Jane pentru a citi și a scrie într-un tabel de resurse umane care listează numerele de telefon ale angajaților.

Prin acordarea accesului în acest fel, numai rolurile și utilizatorii potriviți pot citi, scrie sau modifica datele dintr-un material de date autonom în baza de date mai mare.

Fiecare motor de baze de date consideră schemele ca metodă de bază de segregare a datelor într-un mediu cu mai mulți utilizatori.

Motoare de baze de date diferite tratează utilizatorii și schemele în mod diferit. Consultați documentația pentru motorul bazei de date pentru a descoperi sintaxa și modelele logice din jurul utilizatorilor, schemele și permisiunile acordate.

Crearea schemelor

O schemă este definită în mod formal utilizând limbajul de interogare structurat (SQL). De exemplu, în Oracle, creați o schemă creând contul de utilizator care o deține:

CREAȚI UTILIZATOR bob

IDENTIFICAT DE temporary_parola

Exemplu DEFAULT TABLESPACE

QUOTA 10M ON exemplu

TEMPORARY TABLESPACE temp

QUOTA 5M ON system

PROFILE app_user

PASSWORD EXPIRE;

Alților utilizatori li se acordă acces la noi scheme în virtutea numelui lor de utilizator sau a unuia sau mai multor roluri la care a fost adăugat contul de utilizator.

Scheme vs. Modele de date

La fel ca un model de date, o schemă nu este structurată intrinsec pentru a face nimic. În schimb, este o infrastructură care acceptă permisiunile de segmentare într-o bază de date.

Un model de date este o colecție de tabele și vizualizări unite pe anumite chei. Aceste date, împreună, servesc unui scop de afaceri. Este acceptabil să aplicați un model de date la o schemă - pentru modele de date mari și complexe, asocierea acestora cu scheme face pentru administrarea inteligentă a bazei de date. Dar nu este logic necesar să folosiți o schemă pentru un model de date sau să tratați un model de date ca pe o schemă.

Image
Image

De exemplu, departamentul de resurse umane ar putea include în schema sa un model de date pentru evaluările performanței angajaților. În loc să creeze o schemă pentru aceste revizuiri, modelul de date poate sta în schema HR (împreună cu alte modele de date) și poate rămâne distinct din punct de vedere logic prin prefixele tabelului și numele de vizualizare pentru obiectele din modelul de date.

Modelul de date poate câștiga un nume informal, cum ar fi recenzii de performanță, iar apoi toate tabelele și vizualizările ar putea avea prefixul pr_ Tabelul de înregistrare a angajaților poate fi referit ca hr.pr_employee fără a fi necesară o nouă schemă pentru evaluările de performanță.

Întrebări frecvente

    Care este diferența dintre o schemă de bază de date și o stare a bazei de date?

    O schemă de bază de date descrie baza de date. O stare de bază de date se referă la conținutul unei baze de date la un moment dat și poate fi considerată o extensie a schemei bazei de date.

    Ce este o schemă relațională a unei baze de date?

    O schemă relațională conturează relațiile dintre tabele și elementele care sunt asociate unele cu altele. O schemă poate fi o ilustrație grafică sau o diagramă sau poate fi scrisă în cod SQL.

Recomandat: