Sunteți pe pagina 1din 4

Concepte generale de proiectare a bazelor de date

Factorul principal pentru succesul unei aplicaţii de baze de date este


proiectarea propriu-zisă a bazei de date. O temelie a aplicaţiei reprezintă modul
în care se organizează datele individuale în tabele şi modul de creare de relaţii
între tabelele unei baze de date.
Cel mai important lucru care trebuie făcut când se începe o nouă aplicaţie
este proiectarea cu grijă a structurii tabelelor. O bază de date structurată
necorespunzător poate conduce la imposibilitatea implementării aplicaţiei.
În ceea ce priveşte avantajele, un set de tabele bine concepute, pe lângă
faptul că permite atingerea obiectivului aplicaţiei, oferă flexibilitatea de a
răspunde la probleme care nu au fost luate în calcul, dar şi scrierea rapidă a
aplicaţiei.
În general, structura datelor asigură succesul sau determină eşecul unei
aplicaţii mai mult decât orice altă caracteristică individuală.
SQL Server, ca o bază de date relaţională este axat pe conceptul definirii
relaţiilor între tabelele din baza de date cu ajutorul câmpurilor cheie.
Odată cu stabilirea câmpurilor ce trebuie înglobate în baza de date,
următorul pas îl constituie împărţirea lor în tabele. Singura metodă de a stabili ce
câmpuri trebuie incluse în fiecare tabel este prin intermediul analizei dependenţei
funcţionale.
Dependenţa funcţională defineşte relaţia dintre un atribut sau un grup de
atribute ale unui tabel şi un alt atribut sau grup de atribute ale altuia (atributele se
referă la câmpuri). Dependenţele funcţionale într-o bază de date formează
restricţiile valide ale acelei baze de date.
Respectarea unor restricţii privind dependenţele funcţionale posibile,
aferente tabelelor dintr-o bază de date se numeşte normalizare.
Pentru a fi sigur că tabelele sunt normalizate trebuie verificat dacă
respectă cel puţin primele trei regului ale datelor normalizate:
- Prima Formă Normală: elimină câmpurile care se repetă şi valorile
neatomizate. O valoare atomică înseamnă că acel câmp reprezintă un
singur lucru, nu o concatenare de valori. Prima formă normală
înlocuieşte câmpurile care se repetă cu un singur câmp.
- A Doua Formă Normală: impune ca fiecare coloană să fie dependentă
de fiecare parte a cheii primare.
- A Treia Formă Normală: impune ca toate câmpurile non-primare să
depindă numai de câmpurile primare
Regulile de normalizare nu sunt legi; ele sunt simple linii directoare
care ajută la evitarea creării unor structuri de date care limitează flexibilitatea
aplicaţiei sau îi reduc eficienţa.
Chei primare, chei externe, integritate referenţială

Principalul scop în crearea unei baze de date bune constă în atingerea


integrităţii, performanţei şi scalabilităţii. Toate acestea se pot realiza prin
proiectarea logică şi fizică a bazei de date.
Proiectarea fizică se ocupă de modul în care baza de date profită de
structura hardware pe care o să fie pusă, precum şi de modul în care această
structură hardware va fi configurată pentru a asigura maximum de performanţă.
Proiectarea logică încorporează chestiuni cum ar fi tehnicile de modelare
a datelor prin tabele, indecşi, reguli şi alte componente ale bazei de date. În
cadrul proiectării logice un rol important îl are crearea de chei primare şi chei
străine pentru baza de date. SQL Server foloseşte aceste chei pentru a asigura
în cadrul bazei de date menţinerea consistenţei, a domeniului, a referinţei şi a
integrităţii definite de utilizator.
O cheie primară este o regulă SQL Server care se aplică uneia sau mai
multor coloane şi care garantează unicitatea fiecărei înregistrări din tabelă. Nu
este necesar, dar fiecare tabel din baza de date ar trebui să aibă o astfel de
cheie primară. Relaţiile sunt componente importante în cadrul unui model
relaţional, şi fiecare rând trebuie să fie unic pentru a se putea crea relaţii între
tabele. O cheie primară constă în una sau mai multe coloane care identifică în
mod unic fiecare rând din tabelă. Un tabel poate avea mai multe coloane care
identifică în mod unic un rând în cadrul tabelei, însă poate avea doar o singură
cheie primară. În momentul în care creăm o cheie primară, SQL Server creează
intern un index unic asociat coloanei (coloanelor) selectate şi inserează un rând
cu numele cheii şi alte date statistice în tabelele de sistem sysobjects şi
sysindexes. Aceasta forţează integritatea la nivel de înregistrare, forţând fiecare
rând să fie unic. Toate coloanele definite ca chei primare trebuie să fie definite
astfel încât să nu permită valori nule (NOT NULL). Datorită faptului că în
momentul în care creăm o cheie primară se creează un index intern, trebuie să
specificăm dacă indexul creat va fi clustered ( sortează rândurile existente în
tabel pe baza valorilor din cadrul uneia sau mai multor coloane ) sau not
clustered (este păstrat separat de tabel iar datele existente nu sunt modificate).
De aceea putem avea mai mult de un index non clustered pentru un tabel. SQL
Server creează un index clustered de la sine, doar dacă nu există unul în tabel.
Dacă cheia primară este compusă din mai multe coloane, o coloană poate avea
valori duplicate, dar valoarea cheii luată ca ansamblu de coloane trebuie să fie
unică.
Odată stabilite cheile primare, tabelele din baza de date pot fi normalizate.
Relaţiile dintre tabele pot fi identificate pe baza partajării aceleiaşi chei
primare. Dacă un tabel împrumută propria cheie primară altui tabel, coloana din
al doilea tabel se numeşte cheie externă. Tuturor valorilor cheii externe trebuie
să le corespundă o valoare a cheii primare (se numeşte integritate referenţială),
însă valoarea cheii externe poate fi şi nulă.
În general, integritatea referenţială defineşte operaţiile permise între
tabele conectate prin relaţii. Premisa de bază este că valorii unei chei externe din
tabelul părinte trebuie să îi corespundă o cheie de căutare sau o cheie primară
într-un alt tabel.

Tipuri de date în Microsoft SQL Server

În Microsoft SQL Server, fiecare coloană, variabilă locală, expresie sau


parametru are asociat un tip de date. Se pot defini, de asemenea, şi tipuri de
date utilizator care sunt combinaţii ale tipurilor de date predefinite.
Tipurile de date predefinite în Microsoft SQL Server sunt următoarele:
- Întregi
- bit – date întregi cu valoare 0 sau 1
- int – numere întregi cuprinse între -2^31 şi 2^31 – 1
- smallint – numere întregi cuprinse între -2^15 şi 2^15 – 1
- tinyint – întregi între 0 şi 255
- Decimal şi Numeric
- decimal – numere reale cu precizie fixă între -10^38 şi 10^38 – 1
- numeric – sinonim cu decimal
- Money şi SmallMoney
- money – valori monetare cuprinse între -2^63 şi 2^63-1 cu
precizie de 10.000 din unitatea monetară
- smallmoney – valori monetare cuprinse între –214.748,3648 şi
214.748,3648 cu precizie de 10.000 din unitatea monetară
- Numere aproximative
- float – numere în virgulă mobilă cuprinse între –1,79E+308 şi
1,79E+308
- real – numere în virgulă mobilă cuprinse între –3,40E+38 şi
3,40E+38
- Datetime şi smalldatetime
- datetime – data şi ora pornind de la 1 Ianuarie 1753 până la 31
Decembrie 9999, cu precizia de 3.33 milisecunde.
- smalldatetime - data şi ora pornind de la 1 Ianuarie 1900 până la 6
Iunie 2079, cu precizia de 1 minut.
- Numerice
- cursor – o referinţă către un cursor
- timestamp – un număr unic în toată baza de date
- uniqueidentifier - un identificator unic, global.
- Şiruri de caractere
- char – data de tip caracter non-Unicode de lungime fixă de până la
8000 de caractere.
- varchar - data de tip caracter non-Unicode de lungime variabilă de
până la 8000 de caractere.
- text - data de tip caracter non-Unicode de lungime variabilă de
până la 2^31-1 de caractere.
- Şiruri de caractere Unicode
- nchar – data de tip caracter Unicode de lungime fixă de până la 4000
de caractere.
- nvarchar - data de tip caracter Unicode de lungime variabilă de până
la 4000 de caractere.
- ntext - data de tip caracter Unicode de lungime variabilă de
până la 2^30-1 de caractere.
- Şiruri binare
- binary – data de tip binar de lungime fixă de până la 8000 de biţi.
- varbinary - data de tip binar de lungime variabilă de până la 8000 de
biţi.
- image - data de tip binar de lungime variabilă de până la 2^31-1
de biţi.

S-ar putea să vă placă și