Sunteți pe pagina 1din 34

Sarcina

S se elaboreze proiectul care prezint descrierea aplicaiei de creare, manipulare , interogare a unei
baze de date de tip Fabrica de Ciocolate.
Informaia despre evidenta produselor produse de fabric este nregistrat ntr-o baz de date.
Evidenta produselor produse de aceast fabric cere respectarea urmtoarelor cerine:
a) Fabrica produce diferite tipuri de ciocolata care este specificat.
b) Fiecare produs este identificat prin: id, denumire, tipul, pre i descriere.
c) Fiecare magazin este identificat prin: id, denumire, adres, contact i tip.
d) Fiecare tip de ciocolata este identificat prin: id, tip, volum i cantitate de cacao.
e) Fiecare magazin poate comanda de la fabrica o anumit cantitate de producie. Pentru fiecare
comand sunt inute urmtoarele evidene: id-ul magazinului care a comandat, id-ul produsului
comandat, cantitatea, data cnd a fost comandat produsul, data cnd produsul va fi primit
(aproximativ).
Aplicaie respectiv folosind meniuri, rapoarte formulare i subprograme, realizeaz, la solicitarea
utilizatorului, urmtoarele funcionaliti:
a) Ce produse a comandat magazinul X n perioada D.
b) Lista produselor, care sunt comandate la data D.
c) Lista produselor, care aparin unui anumit tip X.
d) Cte produse au fost comandate n perioada D.
e) Ce produse au fost comandate n perioada D.
f) Ce tip de ciocolata este cel mai popular.
g) Ce tip de ciocolata nu este popular.

Introducere
Auzim adesea vorbindu-se despre Era informaiilor sau societate informaional sau tehnologia
informaiei ns de multe ori cuvntul "informaie" este folosit fr a nelege clar sensul acestui cuvnt,
diferena dintre date, informaii, cunotine. n general, coninutul gndirii umane opereaz cu urmtoarele
concepte:
1. Date constau n material brut, fapte, simboluri, numere, cuvinte, poze fr un neles de sine
stttor, neintegrate ntrun context, fr relaii cu alte date sau obiecte. Ele se pot obine n urma
unor experimente, sondaje etc.
2. Informaii prin prelucrarea datelor i gsirea relaiilor dintre acestea se obin informaii care au
un neles i sunt integrate ntr-un context. Datele organizate i prezentate ntr-un mod sistematic
pentru a sublinia sensul acestor date devin informaii. Pe scurt informaiile sunt date prelucrate.
Informaiile se prezint sub form de rapoarte, statistici, diagrame etc.
3. Cunotinele - colecii de date, informaii, adevruri i principii nvate, acumulate de-a lungul
timpului. Informaiile despre un subiect reinute i nelese i care pot fi folosite n luarea de
decizii, formeaz judeci i opinii devin cunotine. Cu alte cuvinte, cunotinele apar n
momentul utilizrii informaiei .
Sistemele de baze de date sunt o component esenial a vieii de zi cu zi n societatea modern.In
cursul unei zile, majoritatea persoanelor desfasoara activitati care implica interaciunea cu o baza de date:
depunerea sau extragerea unor sume de bani din banca, rezervarea biletelor de tren sau avion, cautarea unei
referinte ntr-o biblioteca computerizata, cumpararea unor produse etc.
Bazele de date pot avea dimensiuni (numar de inregistrari) extrem de variate, de la cateva zeci de
nregistrari (de exemplu, baza de date pentru o agenda cu numere de telefon) sau pot ajunge la zeci de
milioane de inregistrari (de exemplu, baza de date de plata pentru plata taxelor si a impozitelor).
In sensul cel mai larg, o baza de date (database) este o colectie de date corelate din punct de vedere
logic, care reflect un anumit aspect al lumii reale i este destinat unui anumit grup de utilizatori. n acest
sens, bazele de date pot fi create i meninute manual (de exemplu, fiele de eviden a crilor dintr-o
bibliotec, aa cum erau folosite cu ani n urm) sau computerizat, aa cum este majoritatea bazelor de date
folosite n momentul de fa. O definiie ntr-un sens mai restrns a unei baze de date este urmtoarea:
O baz de date (database) este o colecie de date creat i meninut computerizat, care permite
operaii de introducere, tergere, actualizare i interogare a datelor.

Cuprins:
1. Tema: Model Entitate-Relaie........................................................................................................................4
2. Proiectarea Bazei de Date..............................................................................................................................7
2.1. Culegerea Datelor....................................................................................................................................8
2.2. Proiectarea Conceptual. Crearea Modelului Conceptual ER (Diagrama Entitate-Relaie)...................9
2.3. Crearea Modelului Relaional...............................................................................................................11
2.4. Proiectarea Logic.................................................................................................................................13
2.5. Normalizarea Bazei de Date..................................................................................................................14
2.6. Schema Bazei de Date...........................................................................................................................15
2.6. Rafinarea Proiectrii..............................................................................................................................16
3. Alegerea SGBD............................................................................................................................................18
4. Proiectarea Fizic.........................................................................................................................................19
5. Tranzaciile Principale ale Sistemului..........................................................................................................22
6. Protecia bazei de date..................................................................................................................................23
7. Elaborarea proiectului..................................................................................................................................24
8. Descrierea Datelor de Ieire.........................................................................................................................27
9. Crearea Bazei de Date..................................................................................................................................28
9.1. Crearea Tabelelor..................................................................................................................................32
9.2. Modificarea Structurii Tabelelor...........................................................................................................33

1. Tema: Model Entitate-Relaie


O baza de date poate fi definita ca o multime de date ce modeleaza un univers. Acest univers este
format din obiecte legate intre ele. Obiectele de acelasi tip constituie o entitate, iar legatura intre doua
entitati defineste o relatie (asociere). Entitatile si relatiile au anumite caracteristici (atribute).
Procesul de descriere a entitatilor si a asocierilor este numit modelare si este realizat cu ajutorul unui
model de date. Modelarea unei baze de date permite trecerea de la perceptia unor fapte din lumea reala la
reprezentarea lor prin date.
Diagrama entitate-relatie (E-R) reprezinta un model neformalizat pentru reprezentarea unor
fenomene din lumea reala. Diagrama este deseori utilizata pentru reprezentarea grafica a modelului
relational. Practic, se construieste diagrama E-R careia i se asociaza modelul relational si acestuia i se
adreseaza cererile. n felul acesta se imbina simplitatea descriptiva a diagramei E-R cu puterea limbajului de
manipulare a datelor al modelului relational.
Vom analiza notiunile de entitate, relatie, atribut, introduse de Peter Chen in 1976 si vom arata cum
se poate construi o diagrama entitate-relatie.
Prin entitate se intelege un obiect concret sau abstract reprezentat prin proprietatile sale. De exemplu,
consideram o institutie formata dimn mai multe departamente, in care lucraza salariati. Salariati sunt asociati
la anumite proiecte, executtnd in cadrul acestor proiecte diferite sarcini.
Observatii privind entitatile:
entitatile devin tabele in modelele relationale.
in general, entitatile se scriu cu litere mari, iar valoarea entitatii se scrie cu litere mici.
entitatile sunt substantive, dar nu orice substantiv este o entitate. Trebuie ignorate substantivele
nerelevante, ca de exemplu, numar de ore lucrate, salarii etc.
pentru fiecare entitate este obligatoriu sa se dea o descriere detaliata. De exemplu, un SALARIAT
este orice angajat permanent, functionar care lucreaza jumatate de timp sau pensionar, dar
persoanele care au fost angajate numai pentru un anumit contract nu apartin acestei entitati.
nu pot exista doua entitati cu acelasi nume, sau o entitate cu doua nume diferite.
cheia primara identifica unic o entitate si face distinctie intre valori diferite ale entitati. De
exemplu, codul salariatului este o cheie primara pentru entitatea SALARIAT, dar numele
salariatului nu este o cheie primara deoarece pot exista doi salariati cu acelasi nume.
Cheia primara trebuie sa fie unica si cunoscuta la orice moment. Cheia primara trebuie sa satisfaca
urmatoarele conditii:
- sa fie controlata de administratorul bazei de date;
- sa nu contina informatii descriptive;
- sa fie scurta, simpla, fara ambiguitati;
- sa fie stabila, deoarece schimbarea ei poate conduce la confuzii;
- sa fie familiara utilizatorului astfel incat acesta sa o poata folosi cu usurinta in filtrarile sale.
Relatia (asociere) reprezinta o legatura intre doua sau mai multe entitati. De exemplu, 'atasat_la',
reprezinta o relatie care leaga entitatile SALARIAT si PROIECT. O valoare a unei relatii este o comunicare
intre valorile entitatilor care le leaga. Existenta unei asocieri este subordonata existentei entitatilor care le
leaga.
Observatii privind relatiile:
n modelul relational, relatiile devin tabele speciale sau coloane speciale care refera chei primare.
relatiile sunt verbe, dar nu orice verb este o relatie.

pot exista relatii diferite cu acelasi nume. n acest caz le diferentiaza entitatile care sunt asociate
prin relatia respectiva.
pentru fiecare relatie este important sa se dea o descriere detaliata.
cardinalitatea relatiei, adica numarul de tupluri apartinand unei relatii, este raspunsul la intrebari
de tipul.

Atributul reprezinta o proprietate a unei entitati sau a unei relatii. Trebuie facuta distinctie intre tipul
atributului care devine coloana in modelele relationale si valoarea acestuia, care devine valoare in coloane.
Fiecarui atribut trebuie sa i se de-a o descriere completa (caracteristici), respectiv pentru fiecare atribut
trebuie specificat numele, tipul atributului (integer, float, char, etc), valorile posibile, valorile implicite,
regulile de validare.
O diagrama consta din urmatoarele componente majore:
dreptunghiuri, care reprezinta entitatile;
arce neorientate, prin care sunt reprezentate relatiile dintre entitati;
atributele care reprezinta chei primare trebuie subliniate;
cardinalitatea minima este indicata in paranteze, iar cardinalitatea maxima se scrie fara paranteze.
Nu trebuie specificate toate atributele. Daca se da o descriere completa, un dictionar relevant pentru
fiecare entitate, atribut, relatie, exista unelte CASE care pot genera automat din informatiile date, diagrame
entitate-relatie.
Vom descrie cateva cazuri speciale de entitati, relatii, atribute si modul lor de reprezentare in cadrul
diagramei entitate-relatie.
O entitate dependenta nu poate exista de sine statatoare. De exemplu, SARCINA depinde de
PROIECT. Cheia primara a unei entitati dependente include cheia primara a sursei (nr_proiect) si cel putin o
descriere a entitatii (nr_sarcina). Entitatea dependenta se deseneaza prin dreptunghiuri cu linii mai subtiri.
O subentitate este o submultime a unei entitati, numita superentitate. De exemplu, SALARIAT
reprezinta o superentitate pentru PROGRAMATOR, iar PROGRAMATOR este o subentitate pentru
SALARIAT (Fig. 3.5-2). Subentitatea se deseneaza prin dreptunghiuri incluse in superentitate.
Cheile primare, atributele si relatiile unei superentitati sunt valabile pentru orice subentitate.
Afirmatia reciproca este falsa. De exemplu, un programator poate avea ca atribute limbajele de programare
cunoscute si nivelul de cunoastere a acestora, dar aceste atribute nu sunt semnificative pentru un agent
teritorial. Cheia primara a subentitatii PROGRAMATOR este 'cod_salariat' care este cheia primara a
superentitatii SALARIAT.
Exista totdeauna o relatie intre o subentitate si o superentitate numita ISA, care are cardinalitatea
maxima 1:1 si minima 1:0.
O relatie poate fi reprezentata ca un atribut, sau putem folosi reatii in loc de atribute. Cand un atribut
al unei entitati reprezinta cheia primara a unei alte entitati, atunci el refera o relatie.
Uneori este dificil sa separi entitate de relatie. Daca exista o incertitudine, se cerceteaza cheia
primara. Daca aceasta cheie combina cheile primare a doua entitati, atunci se defineste o relatie.
Exista atribute optionale, a caror valoare este uneori necunoscuta, uneori neaplicabila. Aceste atribute
trebuie introduse la subentitati. De exemplu, comisionul pentru deplasare si zona de lucru sunt atribute
specifice unui agent teritorial si trebuie introduse la subentitatea AGEN_TERITORIAL.
Valorile efective ale entitatilor, reatiilor si atributelor depind de momentul analizei, se pot schimba in
timp.
Pentru obtinerea diagramei entitate-relatie sunt parcurse urmatoarele etape:
5

identificarea entitatilor din cadrul sistemului analizat;


identifiarea relatiilor (asocierilor) dintre entitati si stabilirea cardinalitatii acestora;
identificarea atributelor aferente entitatilor si asocierilor dintre entitati;
stabilirea atributelor de identificare a entitatilor, adica stabilirea cheilor.

Relatiile reflecta legaturi naturale care exista intre componentele sistemului. Aceeasi realitate poate fi
insa perceputa diferit, de diferiti analisti, pentru un acelasi sistem putand fi obtinute modele structurale
distincte.
Exista si alte moduri grafice de prezentatre a diagramelor entitate-relatie. De exemplu, relatiile sunt
reprezentate prin romburi, entitatile prin dreptunghiuri, iar atributele prin elipse.

2. Proiectarea Bazei de Date


In compartimentul dat vor fii descrise fiecare pas a proiectari bazei de date in conformitate cu
cuprinsul. Deasemenea vor fi prezentate rapoarte grafice si toate elementele necesare pentru informatizare.
Societatea contemporan, caracterizat prin afluxul fr precedent de informaie de diferite tipuri i
pe diverse canale, necesit strategii i instrumente din ce in ce mai complexe pentru stocare, procesare i,
mai ales, interpretare. In acest context, se pune problema transformrii informaiei n date i organizarea
acestora ntr-o asemenea manier nct n orice moment s poat fi extrase, cu promptitudine i exactitate,
datele favorabile realizrii unui scop specific.Datele sunt fapte culese din lumea real. Ele sunt preluate din
msurtori i observaii i constituie orice mesaj primit de un receptor sub o anumit form. O percepie a
lumii reale poate fi privit ca o serie de obiecte sau fenomene distincte sau interdependente.
Datele n sine nu au nici un fel de semnificaie. Mai mult dect att, nefiind altceva dect o niruire
de litere i cifre, ele pot primi diverse interpretri, cele mai multe dintre ele fiind, de obicei, greite. Datele
se refera la numere, fapte, diferite documente etc. Informaiile se refer la date organizate, date care au fost
filtrate i ordonate dup anumite criterii. Dorina oricrui utilizator este obinerea de informaie i nu
manipularea unor date seci. Un model de date corect alctuit ofer posibilitatea transformrii informaiilor n
date i a acestora napoi n informaii fr a denatura sensul lor iniial. A obine informaie nseamn, de fapt,
a introduce datele disponibile ntr-un anumit context conferindu-le n acest fel o anume semnificaie. Ceea
ce se nmagazineaz ntr-o baz de date, aa cum am artat, sunt datele care au o natur static n sensul c
ele rmn n aceeai stare pn n momentul modificrii lor de ctre administratorul bazei de date prin
intermediul unui proces manual sau automat. Pentru ca datele s poat fi transformate n informaie ele
trebuie organizate astfel nct s poat fi prelucrate efectiv. Pentru a determina n cazul unei aplicaii modul
de organizare a datelor, trebuie determinate acele caracteristici ale datelor care permit extragerea esenei
nelesului lor. O mulime formal i consistent de reguli definete un model de date.Pentru o aplicaie
particular a unui model de date, numele obiectelor bazei de date mpreun cu proprietile lor i asocierile
dintre ele se numete schem.
Un ansamblu de date organizat dup anumite criterii reprezint o colecie de date.O colecie de
obiecte care au identitate proprie i sunt caracterizate de o condiie de apartenen se numete
mulime.Procesul de definire i structurare a datelor n colecii, gruparea lor precum i stabilirea elementelor
de legtur dintre componentele coleciei i ntre colecii reprezint organizarea datelor.
Este o idee bun s v notai scopul bazei de date pe o hrtie: destina ia acesteia, modul cum dori i s
o utilizai i cine o va utiliza. Pentru o baz de date mic pentru o afacere de familie, de exemplu, se poate
nota ceva simplu, cum ar fi "Baza de date a clienilor pstreaz o list a informa iilor despre clien i n scopul
producerii de liste de coresponden i de rapoarte." Dac baza de date este mai complex sau este utilizat
de mai multe persoane, cum se ntmpl de obicei ntr-o conjunctur corporativ, scopul se poate ntinde pe
mai multe paragrafe i trebuie s includ cnd i de ctre cine va fi utilizat baza de date. Ideea principal
este s se descrie riguros misiunea bazei de date, care s fie consultat n cadrul procesului de proiectare. O
astfel de instruciune v ajut s v concentrai asupra obiectivelor atunci cnd luai decizii.
Dezvoltarea sistemelor de baze de date comport mai multe etape, care pot fi prezentate succint
astfel:
1. Analiza i definirea sistemului: definirea scopului sistemului de baze de date, a utilizatorilor i a
aplicaiilor acestuia.
2. Proiectarea sistemului: n aceast etap se realizeaz proiectul logic i proiectul fizic al
sistemului, pentru un anumit SGBD ales.
3. Implementarea: este etapa n care se scriu definiiile obiectelor bazei de date (tabele, vederi, etc.)
i se implementeaz aplicaiile software.
7

4. Incarcarea(sau conversia) datelor : popularea bazei de date,fie prin incarcarea directa a datelor,fie
prin conversia unor date existente sub diferite alte forme.
5. Conversia aplicatiilor:toate aplicatiile software existente in sistemele informatice precedente ale
organizatiei se convertesc in noul sistem.
6. Testarea i validarea: noul sistem de baze de date este testat i validat ct mai riguros posibil.
7. Operarea:sistemul de baze de date este pus la dispozitia utilizatorilor sai cu toate aplicatiile
realizate in cadrul sistemului informatic al organizatiei.
8. Monitorizarea si intretinerea: pe tot parcursul etapei de operare sistemul de baze de date trebuie
sa fie in mod permanent monitorizat si intretinut pentru a sigura consistenta si securitatea datelor
si pentru a permite atat cresterea continutului de date cat si dezvoltarea de noi aplicatii
software.Pot fi necesare la anumite intervale de timp,revizii si reorganizari ale sistemului de baze
de date.
n general, se consider c etapa de proiectare a unei baze de date se pot diviza, la rndul ei, n mai
multe faze:
a) Proiectarea conceptual a bazei de date.
b) Alegerea unui SGBD.
c) Proiectarea logic a bazei de date.
d) Proiectarea fizic a bazei de date.

2.1. Culegerea Datelor


Inainte de a se proiecta efectiv o baz de date, este necesar s se cunoasc ce rezultate se ateapt
utilizatorii poteniali s obin de la baza de date respectiv i ce informaii primare sunt disponibile pentru
aceasta. De asemenea, este necesar s se cunoasc ce aplicaii se vor efectua (aplicaii de gestiune a
stocurilor, aplicaii contabile, aplicaii de urmrire a consumurilor, aplicaii de salarizare, etc.).
In general,in acesta faza de colectare si analiza a cerintelor se desfasoara urmatoarele activitati:

Identificarea grupurilor de utilizatori potentiali si a aplicatiilor. De regula, persoana cea mai


avizata din cadrul fiecarui grup de utilizatori este cooptata ca participant in activitatile ulterioare
de colectare si analiza a cerintelor.
Revederea documentatiei existente privind aplicatiile dorite. In afara de documentatiile
aplicatiilor dorite se studiaza si alte documentatii (diagramele de organizare a
intreprinderii,formularele existente de introducere a datelor,rapoartele utilizate in controlul
activitatii respective,etc.)pentru a se decide daca aceste aspect influenteaza cerintele bazei de
date.
Analiza mediului de operare si cerintelor de prelucrare a datelor. Aceasta activitate include
analiza fluxului de informatii in cadrul sistemului ,precum si analiza tipurilor de tranzactii si a
frecventei de lansare a acestora.Deosebit de importanta este si stabilirea volumului si frecventei
datelor actualizate precum si a volumului datelor returnate de interogari si a frecventei acestora.
Chestionare si interviuri. Se colecteaza raspunsuri scrise de la utilizatorii potentiali la diferite
seturi de intrebari si se organizeaza interviuri cu persoanele care reprezinte diferitele grupuri de
utilizatori.In felul acesta,proiectantii pot intelege care sunt prioritatile de proiectare a bazei de
date,importanta diferitelor aplicatii si performantele dorite de la acestea.

Toate aceste activiti ofer informaii slab structurate, n general n limbaj natural, pe baza crora se pot
construi diagrame, tabele, grafice, etc., manual sau folosind diferite instrumente software de proiectare.
Aceast faz este puternic consumatoare de timp, dar este crucial pentru succesul sistemului informatic.

Nr.
ord
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Denumirea datelor
Denumirea Produsului
Pretul Produsului
Volumul
Cantitatea de cacao
Descrierea Produsului
Denumirea Magazinului
Strada Magazinului
Orasul Magazinului
Tara Magazinului
Telefonul Magazinului
Faxul Magazinului
Emailul Magazinului
Tipul Magazinului
Cantitate
Data Comenzii
Data Primirii
Denumirea Tipului Ciocolatei

Tip/Lungime
CHAR(20)
INT
INT
INT
TEXT
CHAR(20)
CHAR(20)
CHAR(20)
CHAR(20)
INT
INT
CHAR(50)
CHAR(20)
INT
DATE
DATE
CHAR(20)

Restricii
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NULL
NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL

2.2. Proiectarea Conceptual. Crearea Modelului Conceptual ER (Diagrama EntitateRelaie)


n faza de proiectare conceptuala a bazelor de date se proiecteaza schema conceptuala si schemele
externe ale bazei de date.
Desi nu este obligatoriu, aceasta faza se poate mentine independenta de SGBD si produce un model
de date de nivel nalt, care va fi implementat dupa transpunerea lui ntr-un model de date specific. Chiar
daca proiectantii pot porni direct cu scheme conceptuale specifice unui anumit SGBD (care se mai numesc si
scheme logice), este totusi recomandabil sa se realizeze mai nti schema conceptuala de nivel nalt
independenta de SGBD, deoarece aceasta este o descriere stabila si inavuabila a bazei de date. Alegerea unui
SGBD si deciziile ulterioare de proiectare se pot schimba fara ca aceasta sa se schimbe.
Proiectul conceptual de nivel nalt se realizeaza pe baza cerintelor definite n prima etapa de
proiectare si se reprezinta, n general printr-o diagrama Entitate-Asociere (extinsa).
Modelul Entitate-Asociere (Entity-Relationship Model) este un model conceptual de nivel nalt al
unei baze de date, care defineste multimile de entitati si asocierile dintre ele, dar nu impune nici un mod
specific de structurare si prelucrare a datelor.
Elementele esentiale ale modelului Entitate-Asociere sunt entitatile (entities) si asocierile dintre
acestea (relationships).
O entitate (entity) este "orice poate fi identificat n mod distinctiv"; o entitate se refera la un aspect al
realitatii obiective care poate fi deosebit de restul universului si poate reprezenta un obiect fizic, o activitate,
un concept, etc. Orice entitate este descrisa prin atributele sale. Un atribut (attribute ) este o proprietate care
descrie un anumit aspect al unei entitati.
Toate entitatile similare, care pot fi descrise prin aceleasi atribute, apartin unui acelasi tip de entitate
(entity type), iar colectia tuturor entitatilor de acelasi tip dintr-o baza de date constitue o multime de entitati
(entities set). n general, n modelul E-A se foloseste aceeasi denumire att 2 pentru un tip de entitate ct si
pentru multimea entitatilor de acel tip.
9

De exemplu, tipul de entitate angajat (al unei institutii) reprezinta orice persoana angajata a
institutiei, care are o anumita functie si primeste un anumit salariu. Acest tip de entitate poate fi descris prin
mai multe atribute, dintre care o parte sunt atribute de identificare a persoanei (Nume, Prenume,
DataNasterii, Adresa), iar altele sunt atribute legate de activitatea acesteia n institutia respectiva
(Functie,Salariu).
n proiectarea bazelor de date se considera doua categorii de entitati: entitati normale (puternice,
obisnuite -regular entities) si entitati slabe (dependente -weak entities). Entitatile normale au o existenta
proprie n cadrul modelului, n timp ce entitatile slabe nu pot exista dect daca exista o entitate normala
(puternica) cu care sunt asociate. De exemplu, o entitate dependent poate sa reprezinte o persoana care
depinde de un angajat al unei institutii (adica se afla n ntretinerea acestuia). O entitate angajat este o
entitate puternica, deoarece ea exista n mod mod normal n modelul activitatii institutiei, n timp ce o
entitate dependent este o entitate slaba: nu se va nregistra o astfel de persoana dect daca parintele
(sustinatorul) acesteia este angajat n acea institutie.
O asociere (relationship ) este o corespondenta ntre entitati din doua sau mai multe multimi de
entitati. Gradul unei asocieri este dat de numarul de multimi de entitati asociate. Asocierile pot fi binare (de
gradul 2, ntre 2 multimi de entitati) sau multiple (ntre k multimi de entitati, k> 2).
Asocierile binare sunt, la rndul lor, de trei categorii, dupa numarul elementelor din fiecare dintre
cele doua multimi puse n corespondenta de asocierea respectiva. Fiind date doua multimi de entitati, E1 si
E2, se definesc urmatoarele categorii de asocieri binare:
Asocierea unul-la-unul (one-to-one) este asocierea prin care unui element (entitate) din
multimea E1 i corespunde un singur element din multimea E2, si reciproc; se noteaza cu 1:1.
Asocierea unul-la-multe (one-to-many) este asocierea prin care unui element din multimea E1
i corespund unul sau mai multe elemente din multimea E2, dar unui element din E2 i
corespunde un singur element n multimea E1; se noteaza cu 1:N.
Asocierea multe-la-multe (many-to-many) este asocierea prin care unui element din multimea
E1 i corespund unul sau mai multe elemente din multimea E2, si reciproc; se noteaza cu M:N.
O asociere ntre doua sau mai multe multimi de entitati este, n acelasi timp, o asociere ntre tipurile
de entitati corespunzatoare.
Diagrama Entitate-Asociere (Entity-Relationship Diagram) reprezinta modelul Entitate-Asociere
prin multimile de entitati si asocierile dintre acestea.
Exista numeroase variante de notatii pentru redarea diagramei E-A. Una dintre cele mai folosite
notatii reprezinta un tip de entitate (precum si multimea de entitati de acel tip) printr-un dreptunghi, iar
atributele tipului de entitate prin elipse conectate printr-o linie continua la acesta (Fig. 2.1). Pentru entitatile
puternice se utilizeaza un dreptunghi ncadrat cu o linie simpla, iar pentru entitatile slabe se utilizeaza un
dreptunghi ncadrat cu linie dubla. O asociere (tip de asociere) dintre doua sau mai multe tipuri de entitati se
reprezinta printr-un romb conectat prin link-uri (linii continue, formate din unul sau mai multe segmente) la
tipurile de entitati asociate. O asociere poate sa aiba sau nu un nume; daca are un nume, acesta poate fi
nscris n rombul respectiv sau n vecinatatea acestuia. Categoria asocierii se noteaza prin nscrierea
multiplicitatii pe fiecare link care conduce la un tip de entitate. Este posibil ca o asociere sa prezinte ea
nsasi atribute, si aceste atribute se reprezinta prin elipse conectate la asocierea respectiva.
Modelul Entitate-Asociere Extins (Enhanced Entity-Relationship Model) permite definirea de
subtipuri ale unui tip de entitati, care mostenesc atribute de la tipul de entitate pe care il extind (si care, n
acest context, se numeste supertip) si au n plus atribute specifice semnificatiei lor. Prin definirea tipurilor si
a subtipurilor de entitati se pot crea ierarhii de tipuri de entitati pe mai multe niveluri. Modelul Entitate-

10

Asociere Extins se reprezinta printr-o diagrama E-A extinsa, n care legatura ntre un supertip de entitati si
subtipurile acestuia se reprezinta printr-o linie pe care se plaseaza un semicerc ndreptat catre supertip.
Asocierile dintre multimile de entitati se stabilesc n functie de modul n care se desfasoara
activitatea modelata. De exemplu, daca n ntreprinderea respectiva fiecare angajat lucreaza ntr-o singura
sectie, atunci ntre multimile de entitati SECTII-ANGAJATI exista o asociere 1:N. O multime de entitati
slabe se afla, de regula, n asociere N:1 cu multimea de entitati puternice de care depinde. In exemplul dat,
ntre multimea DEPENDENTI si multimea de entitati ANGAJATI exista o asociere N:1. O multime de
entitati de un subtip dat este, de regula, n asociere 1:1 cu multimea de entitati de supertipul acesteia. Pentru
exemplul de mai sus, un angajat poate fi un (singur) inginer; iar un inginer este chiar un angajat, deci
asocierea ntre multimile de entitati ANGAJATI si INGINERI exista o asociere cu raportul de cardinalitate
1:1.

2.3. Crearea Modelului Relaional


Modelul relaional este cel mai folosit model de date folosit astzi n ntreaga lume, fiind un model
de tip entitate-relaie bazat pe elaborarea unui model conceptual. Modelul relaional al unei baze de date
permite extinderea bazelor de date la nivelul calculatoarelor personale nemaifiind obligatorie utilizarea
echipamentelor costisitoare cerute de minicalculatoare sau de calculatoarele de tip mainfraime.
Modelul a fost dezvoltat de ctre Dr. E. F. Codd de la San Jose Research Laboratories ce aparineau
firmei IBM n anul 1970. Cele mai importante caracteristici ale modelului relaional sunt simplitatea,
suportul teoretic solid, precum i cele trei elemente componente de baz.
Un astfel de model este simplu deoarece el poate fi descris cu ajutorul unui numr mic de concepte
care se refer la relaii (structuri de date bidimensionale ce au proprieti speciale), rnduri (datele aflate n
cadrul relaiilor), coloane (cmpurile datelor din rndurile corespunztoare) i chei (mecanismul de
identificare i asociere a rndurilor aflate n unul sau mai multe tabele).
Modelul relaional are un suport teoretic foarte solid deoarece se bazeaz pe teoria matematic a
seturilor, ceea ce nseamn faptul c toate operaiile sunt ncheiate cu succes, iar rezultatele operaiilor sunt
predictibile.
Cele trei componente ale modelului relaional sunt:
componenta de structur a datelor (relaii cu proprieti speciale);
componenta de manipulare a datelor (operaii predefinite prin care tehnologia relaional folosete
un optimizator inteligent pentru a gsi calea de acces la date);
componenta de integritate a datelor (reguli necesare proteciei datelor la efectuarea unor operaii
incorecte).
Principalul avantaj al modelului relaional este acela c nu este necesar utilizarea att a pointerilor ct i
a datelor n cadrul tabelelor, folosind n schimb relaii pentru a accesa valori corespondente din mai multe
tabele.
O relaie const dintr-o asociere ntre nregistrrile aflate n dou tabele ce au aceleai valori ale
atributelor. Deoarece tabelele relaionale nu conin pointeri, datele aflate n astfel de tabele sunt
independente de metodele folosite de ctre sistemul de gestiune al datelor n lucrul cu nregistrrile tabelelor.
Intensia modelului relaional este o schem relaional cu una sau mai multe scheme de relaie. Fiecare
schem de relaie are propriul nume i propriile atribute.
Extensia modelului relaional este un tabel ce nu permite nregistrri duplicat. Fiecare schem de relaie
introduce un tabel n schema relaional. Modelul de date relaional folosete tabele bidimensionale ce
11

reprezint entitile i const din rnduri i coloane. O coloan reprezint un atribut al unei entiti ce mai
poart i denumirea de cmp sau proprietate. Un rnd reprezint un tuplu care este o instan a unui tip de
entitate sau de relaie sau orice altceva din baza de date. De obicei una dintre coloanele tabelului este numit
cheie primar i are o valoare unic (Brown, The Relational Model).
Simplitatea modelului bazei de date relaionale const din simplitatea conceptelor cu care opereaz:
structuri simple i abstracte de date, independena fizic de date, cadrul puternic, general i realist oferit
aplicaiilor .a.m.d.
Modelul relaional ofer o interfa flexibil ce este prevzut cu cele mai potrivite componente necesare
oricrui utilizator la toate nivelele, oferind o mare independen a datelor (produsul obinut este relativ
independent de implementarea intern).
Baza de date relaional const din unul sau mai multe relaii sau tabele. Principalele concepte ale
modelului relaional sunt:
1. Atributul este o coloan ce are un nume propriu i unic ntr-o relaie (cmp). Fiecare relaie
conine o list de atribute (sau coloane) definite pe un anumit domeniu.
2. Domeniul reprezint setul posibil de valori pe care l poate avea unul sau mai multe atribute.
Utilizatorul poate defini domeniul de definiie, dar numai n anumite produse i poate defini
propriile domenii.
3. Tuplu un rnd din cadrul unei relaii (nregistrare). Un rnd dintr-un tabel reprezint asocierea
dintre seturile de valori. Fiecare relaie conine un set de tupluri (sau rnduri).
4. Intensia structura unei relaii mpreun cu specificaiile i constrngerile de domeniu aplicate.
Se modific rar.
5. Extensia starea relaiei (valorile din cadrul unei relaii se pot modifica). Reprezint coninutul
curent al bazei de date ce corespunde schemei bazei de date i se modific frecvent.
6. Gradul numrul de atribute dintr-o relaie.
7. Cardinalitatea numrul de tupluri dintr-o relaie.
8. Baza de date relaional reprezint o colecie de relaii ce pot fi modificate (tabele). O astfel de
colecie este descris sub forma unui set de scheme de relaii din cadrul bazei de date, numite
scheme relaionale ale bazei de date. Relaiile sunt alctuite din dou pri:
- instana un tabel cu rnduri i coloane;
- schema specific numele relaiei mpreun cu numele i tipul fiecrei coloane.
Termenul de relaie este folosit n sensul su matematic acceptat: Se d o schem de relaie R = r(A 1,
..., An) pe un set de domenii {D 1, D2..., Dn}. O relaie n-ar r reprezint un subset al produsului cartezian al
acestor domenii: D1 x D2 x ... x Dn.
Proprietile unei relaii sunt:
- relaiile sunt alctuite din rnduri i coloane;
- ntr-o relaie nu are importan ordinea de apariie a rndurilor sau coloanelor;
- ntre tabele nu exist o asociere explicit (nici una vizibil cuiva care acceseaz datele);
- fiecare nregistrare poate fi identificat n mod unic;
- fiecare rnd din cadrul unui tabel are acelai set de coloane;
- fiecare coloan are un singur tip de dat (nu sunt acceptate redefiniri pentru diferite valori).
Datorit acestor proprieti i a fundamentului matematic, modelul relaional permite proiectanilor
concentrarea mai nti asupra semanticii datelor i a relaiilor dintre ele i abia apoi asupra implementarii
fizice a semanticii respective pentru a se adapta ct mai bine cerinelor i specificaiilor impuse.

12

2.4. Proiectarea Logic


Proiectarea logic reprezint procesul de constituire a unui model al informaiilor utilizat la
modelarea unui domeniu de interes bazat pe un anumit model specific de date (de exemplu, modelul
relaional), dar independent de orice alte consideraii fizice.
Proiectarea logic a bazei de date ajut n continuare la definirea i achiziionarea cerinelor.
Proiectarea logic a bazei de date presupune descrierea fiecrui element de informaie i a relaiilor dintre
aceste elemente de informaie. Un model logic poate determina dac proiectul conine toate informaiile ce
trebuie s fie extrase i reflect relaiile necesare care se pun n concordan cu regulile domeniului de
interes. Modelul logic al bazei de date descrie dimensiunea, forma sistemelor necesare bazei de date i arat
necesitile informaionale i operaionale ale domeniului de interes.
Fleming von Halle, n lucrarea Handbook of Relational Database Design, propune urmtorii pai
ce trebuie urmai pentru crearea unui model logic:
1. definirea tabelelor n funcie de cerinele specifice domeniului pe care l modeleaz (aa cum
s-a stabilit n modelul conceptual);
2. determinarea relaiilor dintre tabele;
3. determinarea coninutului (coloanelor) fiecrui tabel;
4. normalizarea tabelelor pn, la cel puin, forma normal trei;
5. determinarea cheilor primare;
6. determinarea valorilor specifice fiecrei coloane.
Un tabel relaional reprezint o colecie de rnduri, n care fiecare rnd are aceleai coloane. Se
recomand acordarea numelor tabelelor conform regulilor stabilite, inndu-se cont de normele de abreviere
i de sinonime.
O coloan relaional reprezint o dat din cadrul unui tabel. Numele unei coloane trebuie s fie unic
n cadrul tabelului i poate fi identic cu atributul pe care l reprezint.
Pasul Definirea regulilor entitii este mprit n pai mai mici prin care este posibil s se stabileasc
reguli ale entitilor, a relaiilor dintre ele, precum i a atributelor lor.
Oferirea de suport pentru relaiile regulilor de domeniu nseamn pstrarea celor mai apropiate
legturi dintre cheile primare i cele externe, ceea ce este cunoscut sub denumirea de integritate referenial.
Ultimul pas, Definirea regulilor atributelor se refer la inserarea i actualizarea operaiilor, cum ar fi:
- introducerea de constrngeri opionale sau obligatorii (sunt permise valorile NULL);
- domeniul de valori, sau valorile discrete;
- valorile implicite;
- constrngerea de unicitate a atributelor.
Dup ncheierea definiiilor tabelelor este obligatorie reluarea discuiilor cu beneficiarul bazei de date
pentru a revedea ntreaga activitate desfurat.
Pe parcursul desfurrii acestor discuii:
- trebuie s se obin asigurarea c n baza de date sunt reprezentate cele mai importante entiti;
- trebuie s se obin asigurarea c denumirile tabelelor i descrierile acestora sunt potrivite i uor
de neles;
- trebuie s se obin asigurarea c denumirile cmpurilor sunt potrivite i uor de neles;
- trebuie s se fac verificarea c toate cmpurile aparin tabelelor corespunztoare.

13

2.5. Normalizarea Bazei de Date


Cnd proiectm o baz de date, dorina noastr este de a reprezenta ct mai corecte informaiile i s diminum ct mai mult posibilitatea de a ajunge la
informaii eronate (dac nu putem elimina de tot acest neajuns). Pentru a ajunge la aceast performan, trebuie s folosim normalizarea.
Normalizare: O tehnic de generare a unor relaii co proprietiile dorite, n scopul memorrii corecte a datelor unei ntreprinderi.
Procesul de normalizare prima dat a fost introdus de E. F. Codd (1972). Iniial s-au propul trei forme normale, numerotate de al unu la trei. Mai trziu
s-a inclus nc o form normal, numit Boyce-Codd, dup numele celor care l-au introdus: R. Boyce i E. F. Codd.
Formele normale cele mai folosite sunt: forma normal 3 i forma normal Boyce-Codd. Exist i forme normale mai tari - forma normal 4 (4NF) i
forma normal 5 (5NF) - dar aceste se folosesc foarte rar.
Procesul de normalizare este o metod formal de identificare a relaiilor bazate pe chei primare (sau chei candidat n cazul BCNF) i dependenele
funcionale cu atributele asociate. Normalizarea d posibilitatea proiectantului bazei de date, pentru a efectua o seria de teste pe baza de date, toate aceste teste
ducnd la prevenirea posibilitii de a aprea anomalii la actualizarea bazei de date.
Pentru a ilustra procesul de normalizare, vom folosii exemple din sistemul informatic Asociacie de locatari.
den_prod
Dor
Corona
Corona
Schogetten

pret_prod
22 lei
32 lei
40 lei
45 lei

volum
100
120
120
200

cacao
60%
85%
90%
70%

den_mag
Linela
Uni Market
Metro
Nr.1

adresa_mag
bl. Dacia 29/7
bl. Dacia 14/8
bl. Dacia 7
bl. Dacia 5/12

contact_mag
079123456
089654321
789145236
022236541

tip_mag
SuperMarket
Market 24/7
Market
MegaMarket

tip_ciocolata
Ciocolata cu lapte
Ciocolata cu lapte
Ciocolata neagra
Ciocolata cu lapte

data_comenzii
02.03.2016
03.04.2015
05.11.2016
06.01.2017

Produse:
id_produs
A0001
A0002
A0003
A0004

den_produs
Dor
Corona
Corona
Schogetten

pret_produs
22 lei
32 lei
40 lei
45 lei

volum
100
120
120
200

cantitate_de_cacao
60%
85%
90%
70%

id_tip
B0001
B0001
B0002
B0001

desc_produs

Magazine
id_magazin
C0001
C0002
C0003
C0004

den_magazin
Linela
Uni Market
Metro
Nr.1

strada_magazin
bl. Dacia 29/7
bl. Dacia 14/8
bl. Dacia 7
bl. Dacia 5/12

oras_magazin
Chisinau
Orhei
Chsinau
Chisinau

tara_magazin
Moldova
Romania
Moldova
Ucraina
14

tel_magazin
079123456
089654321
789145236
022236541

fax_magazin
441619998888
123456789123

email_magazin
email@email.com
email@email.ru

tip_magazin
SuperMarket
Market 24/7
Market
MegaMarket

ArticolComandat
NumarComanda
D0001
D0001
D0001
D0001
D0002
D0002
D0003
D0004

NumarArticol
1
2
3
4
1
2
3
1

id_produs
A0001
A0002
A0003
A0004
A0002
A0003
A0004
A0002

Cantitate
10
15
20
5
45
65
89
42

Comenzi
NumarComanda
D0001
D0002
D0003
D0004

DataComanda
02.03.2016
03.04.2015
05.11.2016
06.01.2017

DataPrimirii
02.04.2016
03.05.2015
05.12.2016
06.02.2017

Tipuri
id_tip
B0001
B0002

den_tip
Ciocolata cu lapte
Ciocolata neagra

15

id_magazin
C0001
C0002
C0003
C0004

2.6. Schema Bazei de Date

16

2.6. Rafinarea Proiectrii


Din momentul n care avei tabelele, cmpurile i relaiile de care avei nevoie, trebuie s crea i i s
populai tabelele cu date eantion i s ncercai s lucrai cu informaiile: crend interogri, adugnd
nregistrri noi i aa mai departe. Acest lucru ajut la evidenierea problemelor poteniale de exemplu,
este posibil s avei nevoie s adugai o coloan pe care ai uitat s o inserai n timpul fazei de proiectare,
sau este posibil s avei un tabel care s trebuiasc separat n dou tabele pentru a elimina duplicarea.
Vedei dac se poate utiliza baza de date pentru a obine rspunsurile dorite. Crea i schi e
neprelucrate ale formularelor i rapoartelor, i vedei dac v arat datele pe care le a tepta i. Cuta i dubluri
inutile de date i, dac le gsii, modificai proiectarea pentru a le elimina.
Pe msur ce testai baza de date iniial, probabil vei descoperi c se pot face mbunt iri. Cteva
lucruri care trebuie verificate:
Ai uitat vreo coloan? Dac da, apar informaiile n tabelele existente? Dac informa iile sunt
despre altceva, este posibil s fie nevoie s creai un alt tabel. Creai o coloan pentru fiecare
element informaional care trebuie urmrit. Dac informaiile nu se poate calcula de pe o alt
coloan, probabil avei nevoie de o coloan nou pentru asta.
Sunt inutile unele coloane, pentru c se pot calcula din cmpuri deja existente? Dac un element
informaional se poate calcula dintr-o alt coloana deja existent ca, de exemplu, pre ul redus
calculat din preul de vnzare este mai bine, n general, s se procedeze aa i s se evite
crearea unei coloane noi.
Introducei n mod repetat informaii dublate n unul din tabele? Dac da, probabil c trebuie
mprit tabelul n dou tabele ntre care s existe o relaie de tipul unu-la-mai-muli.
Avei tabele cu multe cmpuri, un numr limitat de nregistrri i multe cmpuri goale n
nregistrrile individuale? Dac da, gndii-v la reproiectarea tabelului astfel nct s aib mai
puine cmpuri i mai multe nregistrri.
A fost mprit fiecare element informaional n cele mai mici pr i utile? Dac trebuie efectuate
operaii de raportare, sortare, cutare sau calculare pentru un element informaional, punei acel
element n propria sa coloan.
Conine fiecare coloan date despre subiectul tabelului? Dac o coloan nu conine informaii
despre subiectul tabelului, aceasta aparine unui alt tabel.
Sunt toate relaiile dintre tabele reprezentate prin cmpuri comune sau printr-un al treilea tabel?
Relaiile unu-la-unu i unu-la-mai-muli necesit coloane comune. Relaiile mai-muli-la-maimuli necesit un al treilea tabel.

Produse:
id_produs
A0001
A0002
A0003
A0004
A0005
A0006
A0007
A0008
A0009
A0010
A0011
A0012

den_produs
Kit Kat
Snickers
Bounty
Milka
Korona
Schegotten
Kit Kat duo
Snickers double
Bounty double
Milka double
Dor
ChdS

pret_produs
12 lei
11 lei
13 lei
15 lei
12 lei
13 lei
20 lei
12 lei
13 lei
10 lei
11 lei
6 lei

volum
100
50
40
100
90
30
120
200
110
80
60
10

cantitate_de_cacao
6%
3.5%
0%
5%
8%
9%
12%
13%
10%
5%
3%
6%

id_tip
B0001
B0002
B0003
B0004
B0004
B0003
B0004
B0004
B0003
B0002
B0001
B0002

desc_produs

Magazine
id_mag den_ma
azin
gazin
C0001 Linela
C0002
C0003

Uni
Market
Metro

C0004

Nr.1

C0005

Green
Hills
Fidesco

C0006

strada_ma
gazin
bl. Dacia
29/7
bl. Dacia
14/8
bl. Dacia 7

oras_ma
gazin
Chisinau

tara_ma
gazin
Moldova

Orhei

Romania

Chsinau

Moldova

bl. Dacia
5/12
bl. Dacia
19/13
bl. Dacia
8/1

Chisinau

Ucraina

Orhei

Moldova

Orhei

Moldova

tel_mag
azin
079123
456
089654
321
789145
236
022236
541
056897
851
154589
453

fax_mag
azin
4416199
98888
1234567
89123
2153548
96974
5456468
89984

email_mag
azin
email@ema
il.com
email@ema
il.ru

tip_mag
azin
SuperM
arket
Market
24/7
Market

email@ema
il.md

MegaM
arket
Market

email@ema
il.ro

Market
24/7

ArticolComandat
NumarComanda
D0001
D0001
D0001
D0001
D0001
D0002
D0002
D0003
D0004
D0005

NumarArticol
1
2
3
4
5
1
2
3
1
1

id_produs
A0001
A0002
A0003
A0004
A0005
A0002
A0003
A0004
A0002
A0006

Cantitate
10
15
20
5
12
45
65
89
42
102

Comenzi
NumarComanda
D0001
D0002
D0003
D0004
D0005

DataComanda
02.03.2016
03.04.2015
05.11.2016
06.01.2017
15.02.2017

Tipuri
id_tip
B0001
B0002

den_tip
Ciocolata cu lapte
Ciocolata neagra

DataPrimirii
02.04.2016
03.05.2015
05.12.2016
06.02.2017
16.03.2017

id_magazin
C0001
C0002
C0003
C0004
C0005

3. Alegerea SGBD
Sistemele de gestiune a bazelor de date (n englez: "database management system"), abreviat
SGBD, reprezint totalitatea programelor utilizate pentru crearea, interogarea i ntreinerea unei baze de
date. Include dou categorii de module: module care sunt comune cu cele ale sistemelor de operare ale
calculatoarelor i module cu funcii specifice bazei de date. Subsistemele monitor con in programele de
control al perifericelor i sistemul de gestiune a fiierelor. Subsistemele externe sunt alctuite din procesorul
de definiie i programul de administrare. Alturi de acestea exist programe de descriere a bazei de date i
cereri de prelucrare.ntre utilizator i sistem exist dou interfee: definirea bazei de date i utilizarea bazei
de date. Definirea unei baze de date se execut sub controlul procesorului de definiie (PD), capabil s
prelucreze programe de descriere, formulate folosind limbaje specializate cunoscute sub denumirea de
limbaje de definiie a datelor (LDD).
Pentru a crea o aplicaie cu baze de date trebuie ales cel mai potrivit tip de sistem de gestiune al bazei
de date. Acesta trebuie ales n aa fel nct s corespund att necesitilor actuale ct i celor viitoare. n
acest scop trebuie fcut o apreciere asupra caracteristicilor sistemului raportate la cerinele bazei de date i
a aplicaiei (aplicaiilor) create pe baza acesteia.
Aceast faz urmeaz dup faza de modelare conceptual i nainte de faza proiectrii fizice i const
din:
1. Stabilirea costului, care se bazeaz pe:
a) costul de achiziie a programelor;
b) costul mentenanei;
c) costul de achiziie a componentelor hardware;
d) costul de creare a bazei de date sau a conversiei acesteia;
e) costul legat de personal;
f) costul de pregtire a personalului;
g) costul de operare.
2. Modelul de date depinde de:
a) structura i utilizarea datelor;
b) familiarizarea cu sistemul;
c) disponibilitatea serviciilor oferite de ctre productor, a programelor de comunicare, a
programelor de introducere a datelor, a instrumentelor de proiectare i monitorizare etc.
SQL (de la numele englez Structured Query Language - limbaj de interogare structurat - care se
pronun [es kiuel]) este un limbaj de programare specific pentru manipularea datelor n sistemele de
manipulare a bazelor de date relaionale (RDBMS), iar la origine este un limbaj bazat pe algebra rela ional.
Acesta are ca scop inserarea datelor, interogaii, actualizare i tergere, modificarea i crearea schemelor,
precum i controlul accesului la date. A devenit un standard n domeniu (standardizat ANSI-ISO), fiind cel
mai popular limbaj utilizat pentru creearea, modificarea, regsirea i manipularea datelor de ctre SGBDurile (Sistemele de Gestiune a Bazelor de Date) relaionale. Pe lng versiunile standardizate ale limbajului,
exist o mulime de dialecte i variante, unele proprietare, fiind specifice anumitor SGBD-uri i de asemenea
coninnd extensii pentru a suporta SBD-urile (Sistemele de Baze de Date) obiectuale (obiectualrelaionale).
SQL permite att accesul la coninutul bazelor de date, ct i la structura acestora.

4. Proiectarea Fizic
Proiectarea fizic reprezint procesul de descriere a implementrii bazei de date pe mediile secundare
de stocare. Sunt descrise structurile de stocare i metodele de acces utilizate pentru a obine un acces eficient
la date.
Proiectul fizic al bazei de date efectueaz i o rafinare a modelului logic; acesta transpune modelul
logic ntr-un sistem relaional de gestiune a bazelor de date. n aceast faz este obligatorie examinarea
modului n care utilizatorul acceseaz baza de date. Se recomand separarea modelului logic de modelul
fizic astfel nct modificrile s poat fi documentate n conformitate cu modelul fizic pentru a corespunde
constrngerilor. n acest fel, modelul logic rmne independent de tehnologie, innd cont doar de cerinele
specifice domeniului pe care l modeleaz.
Acest pas din cadrul procesului de proiectare implic determinarea urmtoarelor categorii de
informaii:
datele folosite n mod curent;
coloanele ce urmeaz a fi indexate pentru a obine un acces mai rapid la date;
spaiul necesar precum i cel prevzut pentru creterea dimensiunilor bazei de date;
dac denormalizarea bazei de date va duce la creterea performanelor acesteia;
cereri de funcionalitate:
o procesarea secvenial a tuplurilor;
o tuplurile ce ndeplinesc o anumit condiie impus prin intermediul unei valori;
o tuplurile inserate sau eliminate;
obiective de performan:
o evitarea pierderii inutile de spaiu;
o primirea ntr-un timp ct mai scurt a rspunsului.
O baz de date relaional const din dou pri importante:
dicionarul de date care descrie datele;
fiierele de date ce conin datele fizice.
Fleming von Halle, n lucrarea sa Handbook of Relational Database Design, propune paii necesari
crerii modelului fizic, aa cum se poate observa din figura 6.19:
O structur de stocare reprezint o implementare a tabelelor i coloanelor n cadrul unui sistem
specific de gestiune a bazelor de date. Opiunile tipice de implementare presupun luarea unor decizii
referitoare la:
transformarea tabelelor n fiiere;
spaiul liber;
transferul tabelelor n bazele de date;
blocri;
ordinea coloanelor.
Aceste consideraii pot diferi considerabil de la un sistem de gestiune a bazelor de date la altul.
Pasul Analizarea evenimentelor existente n baza de date este mprit n apte subpai, dup cum
urmeaz:
revizuirea evenimentelor nlnuite prin modelul logic;
alctuirea unei liste de prioriti a evenimentelor pentru a nelege importana acestora;
identificarea regulilor care se aplic celor mai importante evenimente;
identificarea criteriilor de cutare pe baza crora se acceseaz tabelul, n cazul fiecrui eveniment
sau tabel accesat;

identificarea cerinelor de sortare pe baza crora se acceseaz tabelul, n cazul fiecrui eveniment
sau tabel accesat;
identificarea coloanelor destinaie pe baza crora se acceseaz tabelul, n cazul fiecrui
eveniment sau tabel accesat;
estimarea numrului de rnduri cutate raportate la numrul total de rnduri din tabel pe baza
crora se acceseaz tabelul, n cazul fiecrui eveniment sau tabel accesat;

O cale de acces reprezint o procedur logic pe baza creia un sistem de gestiune a bazelor de date
poate selecta anumite rnduri, poate obine coloanele cerute, prelucrnd acele coloane i rnduri n maniera
corespunztoare.
Opiunile de reglare invizibil sunt acele opiuni care sunt transparente utilizatorilor i
programatorilor. n cele mai multe sisteme de gestiune a bazelor de date opiunile invizibile pe care le poate
regla proiectantul se refer la scanri, ordinea rndurilor n tabele, indexarea coloanelor.
O structur vizibil de date este acea structur palpabil utilizatorilor sau programatorilor. Reglarea
unei structuri vizibile de date const din modificarea structurii datelor astfel nct acestea s-ar putea s nu
mai corespund modelului logic. Cele mai obinuite modaliti de reglare a structurilor vizibile de date sunt:
stocarea coloanelor ce reprezint copii exacte ale altor coloane;
stocarea coloanelor cu ajutorul crora se efectueaz calcule pe baza unei formule;
stocarea coloanelor ce se obin prin deducie (cu ajutorul unei reguli).

5. Tranzaciile Principale ale Sistemului


Atunci cnd se proiecteaz o baz de date, se cunosc n mare parte i ce tipuri de aplicaii se vor
executa. Un aspect important n proiectarea bazelor de date este specificarea caracteristicilor funcionale ale
acestor aplicaii ct mai devreme n cursul procesului de proiectare, astfel nct schema bazei de date s
includ toate informaiile necesare cu privire la aceste aplicaii. n plus, cunoaterea importanei relative a
diferitelor tranzacii executate de aplicaiile bazei de date, precum i a frecvenei de invocare a acestora,
permite luarea unor decizii n etapa de proiectare fizic a bazei de date.
Una din tehnicile cele mai obisnuite de specificare a tranzactiilor la nivel conceptual si independent
de sistemul de de gestiune este de identifica intrarile si iesirile lor su comportarea functional.Tranzactiile
sunt grupate in trei categorii:tranzactii de interogare,trnzactii de actualizare si tranzactii mixte,care executa
atat interogari cat si actualizari.
Pentru dezvoltarea ulterioara ulterioara in bune conditii a proiectului unui sitem de baze de date,atat
proiectarea schemei conceptual
Dup implementarea sistemului de baze de date vor mai fi identificate i implementate noi tranzacii.
Totui, cele mai importante tranzacii sunt cel mai adesea cunoscute nainte de implementarea sistemului.
Dac operaiile de acces la baza de date ale unei tranzacii sunt numai operaii de citire, acea tranzacie se
numete tranzacie de citire (read-only transaction) i controlul concurenei unor astfel de tranzacii este
mult mai simplu.
In cele ce urmeaz se va studia cazul general, al tranzaciilor de citire i scriere (read-write
transactions) care efectueaz att regsiri de date (prin operaii de citire) ct i actualizri (prin operaii de
scriere), i care necesit tehnici de control al concurenei mult mai complexe.Operaiile efectuate de o
tranzacie i nregistrate de administratorul de refacere (recovery manager), pentru a asigura cele patru
proprieti importante ale tranzaciilor (ACID), sunt urmtoarele:
1. begin - aceast operaie marcheaz nceputul execuiei unei tranzacii.
2. read sau write - sunt operaii de citire sau scriere a articolelor n baza de date, executate n cadrul
unei tranzacii.
3. end - aceast operaie marcheaz terminarea operaiilor de scriere sau citire din baza de date,
ceea ce nseamn c tranzacia se poate termina; totui, este posibil s fie necesare unele operaii
de verificare nainte de validarea (commit) tranzaciei.
4. commit - aceast operaie semnaleaz terminarea cu succes a tranzaciei, validarea tuturor
modificrilor efectuate n baza de date i vizibilitatea modificrilor efectuate pentru alte
tranzacii; din acest moment, modificrile efectuate nu mai pot fi anulate, nici pierdute printr-o
defectare ulterioar a sistemului (bineneles, dac mecanismul de refacere al SGBD-ului
funcioneaz corect).
5. rollback (sau abort) - aceast operaie semnaleaz faptul c tranzacia a fost abandonat i c
orice efect pe care tranzacia l-a avut asupra bazei de date trebuie s fie anulat (printr-o rulare
napoi a operaiilor).
6. undo - aceast operaie este similar operaiei rollback, dar se aplic unei singure operaii, nu
unei ntregi tranzacii.
7. redo - aceast operaie specific faptul c unele operaii ale unei tranzacii trebuie s fie executate
din nou pentru a se putea valida ntreaga tranzacie.

6. Protecia bazei de date


Prin protecia i securitatea datelor se nelege totalitatea mijloacelor, metodelor i a mecanismelor
destinate prevenirii distrugerii, modificrii sau folosirii neautorizate a informaiei protejate.
Referitor la protecia i securitatea datelor, n literatura de specialitate se definesc urmtoarele
concepte de baz:
securitatea datelor totalitatea msurilor de protecie mpotriva distrugerii accidentale sau
intenionate, a modificrii neautorizate sau a divulgrii acestora;
caracterul secret este un concept ce se aplic la un individ sau organizaie i const n dreptul
acestora de a decide ce informaii se pot folosi n comun i n ce condiii ;
confidenialitatea se aplic la date i se refer la statutul acordat, acesta reprezentnd nivelul
sau gradul de protecie ce trebuie acordat informaiei respective;
integritatea se refer la restricia ca sensul datelor s nu difere fa de cel nscris pe documentul
surs, impunnd totodat ca datele s nu fie alterate accidental sau voit.
Noiunile de mai sus sunt strns legate ntre ele, msurile pariale se suprapun i se acoper reciproc.
Securitatea i protecia datelor din baza de date constituie un domeniu foarte vast, care prezint dou
aspecte principale: pe de o parte, elementele legale i etice privind drepturile de acces la anumite informaii,
iar pe de alt parte, elementele legate de organizarea sistemelor informatice din punct de vedere al
posibilitilor de acces la datele stocate.
Unele informaii care exist n baza de date sunt strict private i nu pot fi accesate legal de ctre
persoane neautorizate. Diferite reglementri guvernamentale sau legi existente n majoritatea rilor stabilesc
ce informaii privind activitatea instituiilor sau a persoanelor pot fi fcute publice i n ce condiii.
La nivelul sistemelor informatice se pot diferenia aspecte de securitate la nivel fizic (hardware), la
nivelul sistemului de operare i la nivelul sistemului de gestiune al bazei de date.
n principal, de problemele de protecie i securitate este responsabil administratorul bazei de date,
care are un cont privilegiat n sistemul de gestiune (numit n general cont de sistem - system account) care
prevede capabiliti foarte puternice, pe care alte conturi sau utilizatori nu le au. Prin intermediul contului de
sistem administratorul bazei de date poate efectua mai multe operaii: crearea conturilor, acordarea sau
retragerea privilegiilor, etc.
Orice persoan care dorete s se conecteze (log in) la o baz de date trebuie s dein un cont
(account, user) i o parol (password). Sistemul de gestiune verific contul i parola i autentific acel
utilizator, dac acestea sunt corecte. Programele de aplicaii sunt considerate de asemenea utilizatori i se
conecteaz pe un anumit cont i trebuie s furnizeze parola acestuia.
O alt tehnic de protecie i securitate a datelor este criptarea datelor (Data Encryption), prin care
datele importante sunt codate folosind diferii algoritmi de codare, mai ales atunci cnd sunt transmise prin
intermediul reelelor de comunicaie. Interpretarea datelor criptate este dificil dac nu este cunoscut cheia
(cifrul) de codare. n felul acesta numai utilizatorii autorizai care dein cheile de decriptare pot interpreta cu
uurin aceste date.
O alt tehinc se securizare a bazei de date pentru aplicaiile web ar fi instalarea unui firewall, acesta
fiind un calculator pe care este instalat un software special care permite accesarea calculatorului pe care este
stocat baza de date numai de ctre anumite calculatoare.
Deci, prin securitatea bazei de date se nelege o multitudine de msuri destinate proteciei
informaiilor coninute n baza de date mpotriva unor alterri, distrugeri sau divulgri neautorizate.

7. Elaborarea proiectului
n general n literatura specific bazelor de date se opereaz cu urmtoarele concepte:
Datele constau n material brut, evenimente primare, fapte, simboluri, numere, iruri de caractere,
imagini, animaii etc. fr un neles de sine stttor, neintegrate ntr-un context. Ele se pot obine n
urma unor experimente, sondaje pot fi colectate din diverse locuri, nedefinite sau neomogene.
Informaiile se obin prin prelucrarea datelor i gsirea relaiilor dintre acestea, au un neles i sunt
integrate ntr-un context. Datele organizate i prezentate ntr-un mod sistematic pentru a sublinia
sensul lor devin informaii. Altfel spus, informaiile sunt date prelucrate capabile de a produce
cunotine noi, se refer la obiecte , procese, fenomene, locuri, situaii etc. Informaiile trebuie s fie
clare, concise.
Cunotinele sunt colecii de date, informaii, adevruri i principii nvate, acumulate de-a lungul
timpului. Informaiile despre un subiect reinute i nelese, folosite n luarea de decizii, i care
formeaz judeci i opinii devin cunotine. Cu alte cuvinte, cunotinele apar n momentul utilizrii
informaiei.
Pentru obinerea informaiilor se desfoar un set de activiti cunoscute sub numele de proces
informaional ce cuprinde:
o identificarea surselor de informaie i culegerea datelor;
o pregtirea datelor ce presupune: codificare, clasificare, conversie, selectare;
o prelucrarea datelor;
o stocarea datelor n vederea utilizrii lor;
o extragerea rezultatelor prelucrrii datelor/raportarea informaiilor ctre beneficiarii.
Totalitatea resurselor materiale, umane i financiare utilizate n cadrul unui proces informaional
avnd ca scop asigurarea legturii dintre sistemul decizional i cel operaional i obinerea
informaiilor poart denumirea de sistem informaional. Sistemul informaional este deci
reprezentat de totalitatea metodelor, procedurilor i mijloacelor, folosite n procesul informaional i
poate fi definit ca un ansamblu organizat i integrat de operaii de culegere, transmitere, prelucrare,
sistematizare, analiz i pstrare, difuzare i valorificare a informaiilor.
Dac n cadrul procesului informaional prelucrarea datelor se face cu ajutorul calculatorului atunci
sistemul informaional se numete sistem informatic.
Colecia de date reprezint un ansamblu de date care se refer la acelai fenomen, obiect sau
situaie. n cadrul componentelor coleciei se pot stabili relaii care s faciliteze prelucrarea datelor i
obinerea informaiilor.
Structura de date reprezint o colecie de date pe care s-au stabilit anumite relaii i un mecanism
de selecie i identificare a componentelor sale. Accesul la componentele structurii de date este un
element foarte important n regsirea informaiei i poate fi de dou feluri:
o secvenial : presupune parcurgerea tuturor datelor situate naintea celei care urmeaz a fi
prelucrat
o direct : presupune existena unui mecanism care s determine direct poziia datei ce urmeaz
a fi prelucrat.
Structurile de date pot fi omogene sau neomogene, n funcie de tipul datelor coninute n structur.
n funcie de posibilitatea de a-i modifica structura se ntlnesc structuri de date dinamice sau
statice. Operaiile care pot fi executate asupra unei structuri de date sunt dependente de mediul de
programare utilizat. n general asupra unei structuri de date pot fi executate operaii precum: creare,
populare, consultate, actualizare, sortare, scindare, concatenare, duplicare, tergere.
Baza de date reprezint un ansamblu de date integrat, ntre care exist relaii logice i o descriere a
acestor date, proiectat pentru a satisface necesitile informaionale ale unei organiza ii. Descrierea
structurii poart numele de dicionar de date sau metadate i creeaz o interdependen ntre datele
propriu-zise i programe.

Sisteme de gestiune a bazelor de date reprezint un pachet de programe care permite definirea,
crearea, ntreinerea i accesul controlat la baza de date.

Baza de date poate fi privit ca o colecie de fiiere interconectate care conin nucleul de date
necesare unui sistem informatic. Astfel, poate fi considerat drept un model al unor aspecte ale realitii unei
companii, modelat prin intermediul datelor. Diferitele obiecte din cadrul realitii ce prezint interes sunt
denumite entiti. Pentru aceste obiecte sunt achiziionate i memorate date referitoare la diferite
caracteristici ale entitii numite atribute. ntre entitile identificate se stabilesc relaii.
Baza de date se constituie ca un ansamblu intercorelat de colecii de date, prin care se realizeaz
reprezentarea unei realiti.
O baza de date trebuie s asigure:
abstractizarea datelor (baza de date fiind un model al realitii),
integrarea datelor (baza de date este un ansamblu de colecii de date intercorelate, cu
redundan controlat),
integritatea datelor (se refer la corectitudinea datelor ncrcate i manipulate astfel nct s
se respecte restriciile de integritate),
securitatea datelor (limitarea accesului la baza de date),
partajarea datelor (datele pot fi accesate de mai muli utilizatori, eventual n acelai timp),
independena datelor (organizarea datelor s fie transparent pentru utilizatori, modificrile n
baza de date s nu afecteze programele de aplicaii).
Scopul utilizrii bazelor de date este acela de a furniza utilizatorilor o vedere abstact i general a
datelor. Prin urmare cnd se proiecteaz o baz de date trebuie s se obin o descriere abstract i general a
cerinelor informaionale ale organizaiei. Astfel noiunea de modelare va aborda concepte precum:
entitate cum ar fi: Elev, Clasa, Disciplin etc.
atribut ce descriu proprietile entitilor; Exemplu entitatea Elev poate avea atribute
precum: Nume, Prenume, Data_nasterii, Adres etc
relaiile care se stabilesc ntre entiti; Exemplu ntre entitile Elev i Clasa se poate stabili
o relaie prin faptul c fiecare elev este repartizat la o clas.
Standardele n vigoare privind proiectarea bazelor de date i abstractizarea datelor descriu existena a
trei niveluri de abstractizare a datelor ce formeaz o arhitectur pe trei niveluri cuprinznd:
nivelul extern care se refer la vederile utilizatorilor asupra bazei de date.
nivelul conceptual, vederea general a bazei de date. Acest nivel descrie ce date sunt stocate
n baza de date i care sunt relaiile dintre ele. Acent nivel descrie: toate entitile, atributele i
relaiile dintre ele, constrngerile asupra datelor, informaii semantice asupra datelor,
informaii privind securitatea datelor.
nivelul intern, reperezentarea fizic a bazei de date pe calculator. Acest nivel descrie cum
sunt stocate date n baza de date.
Descrierea general a unei baze de date se numete schema bazei de date. Dat fiind arhitectura pe
trei niveluri, exist trei tipuri de scheme, corespunztoare celor trei niveluri: schema extern, schema
conceptual i schema intern.
O baz de date are mai multe scheme externe corespunztoare tuturor vederilor utilizatorilor. Schema
conceptual descrie toate articolele de date i relaiile dintre acestea, mpreun cu constrngerile de
integritate, exist o singur schem conceptual. La nivelul intern schema intern reprezint o descriere a
modelului intern.

Sistemul de gestiune a bazelor de date permite implementarea celor trei tipuri de scheme, prin
utilizarea unui limbaj de definire a datelor. Acest limbaj este ns prea inferior pentru a putea descrie
necesitile unui sistem informaional al unei organizaii. Din acest motiv au fost introduse i utilizate
modelele de date.

Un model de date reprezint un ansamblu de concepte necesare descrierii datelor, relaiilor dintre
acestea i constrngerilor. Cu alte cuvinte un model de date conine:
un set de reguli care descriu modul de constituire a bazelor de date;
un set de operaii permise asupra datelor din bazele de date;
un set de reguli care garanteaz integritatea datelor .
Exist modele de date bazate pe obiecte, modele de date bazate pe nregistrri, modele de date fizice.
Primele dou descriu datele la nivel conceptual i extern, iar ultimul model descrie datele la nivel intern.
1. Modele bazate pe obiecte:
Modelul entitate relaie
Modelul semantic
Modelul funcional
Modelul oriectat spre obiecte
2. Modele bazate pe nregistrri:
Modelul de date relaional
Modelul de date n reea
Modelul de date ierarhic
3. Modele fizice, decriu cum sunt stocate datele pe calculator:
Modelul unificator
Memoria cadru

8. Descrierea Datelor de Ieire


Datele operaionale sunt date din bazele de date, distincte de datele de intrare, ieire sau alte tipuri
de date. O baz de date este o colecie de date operaionale folosite de ctre aplicaiile sistem ale unei
instituii (Muzeu, Bibliotec, Intreprindere, etc.)
Datele de intrare sunt informaii introduse n sistem din lumea exterioar, de obicei prin terminale.
Datele de ieire se refer la mesajele i rapoartele extrase din sistem (tiprite sau afiate pe ecran).
Entitile de baz sunt elementele constitutive ale unei baze de date (expl. materialul arheologic,
materialul bibliografic, materialul grafic, etc.). ntre aceste entiti exist ntotdeauna asociaii sau relaii ce
le leag ntr-o baz de date comun.
Relaiile dintre entiti sunt la rndul lor pri ale datelor operaionale, chiar mai importante dect
entitile asociate. O relaie poate fi asociat la una, dou sau trei entiti, iar o entitate poate fi asociat la
oricte relaii.

9. Crearea Bazei de Date


O baza de date relationale stocheaza datele n tabele, iar fiecare tabel stocheaza in coloane informatii
despre un anumit tip de element.
In continuare puteti vedea un tabel caracteristic dintr-o baza de date relationala care prezinta
personalitati istorice ale Americii.
PersoanaID
001
002
003

Nume
George Washington
John Adams
Thomas Jefferson

AnNastere
1732
1735
1743

Primul rnd al tabelului atribuie nume pentru fiecare coloana.


Fiecare rnd al tabelului, altul dect primul rnd, descrie o singura personalitate. De exemplu, al
doilea rnd descrie o personalitati pe nume George Washington.
Fiecare coloana, descrie un anumit atribut al personalitatii De exemplu, a doua coloana contine
numele personalitatilor, iar a treia coloana contine anii n care s-au nascut acestia.
Pentru a se putea face referire, mai usor, la un anumit rnd al tabelului, se obisnuieste ca fiecare tabel sa
contina o coloana care identifica n mod unic fiecare rnd. Aceasta coloana se numeste "cheia primara" a
tabelului. In exemplul prezentat, coloana numita "PersoanaID" serveste drept cheie primara.
Daca nici o coloana nu contine o valoare unica pentru fiecare rnd, se pot combina valorile mai
multor coloane pentru a crea o "cheie primara compusa".
O baza de date relationala se numeste astfel datorita capacitatii sale de a stabili relatii ntre date din
mai multe tabele.
Urmatorul exemplu prezinta doua tabele si o relatie ntre acestea.
PersoanaID
001
002
003
Meserie
Arhitect
General
Filozof

Nume
George Washington
John Adams
Thomas Jefferson
PersoanaID
003
001
002

AnNastere
1732
1735
1743

Al doilea tabel contine informatii despre meseriile caracteristice ale persoanelor prezentate in
exemplul anterior. Mai precis, tabelul identifica persoana cu o anumita meserie. Numele meseriei serveste
drept cheie primara a tabelului, care mai contine, n afara de aceasta, o singura coloana.
Coloana respectiva stocheaza atributul "PersoanaID" din primul tabel, al persoanei care cunoaste
meseria descrisa de un anumit rnd. De exemplu, angajatul cu numarul 003 este arhitect.
Retineti ca "PersoanaID" este att cheia primara a tabelului original, dar si o coloana din noul tabel.
Coloana "PersoanaID" a noului tabel se numeste "cheie externa"; desi nu este cheia primara a noului tabel,
este cheia primara a unui alt tabel.
Aplicatia software care gazduieste o baza de date se numeste "sistem de gestiune a bazelor de date"
(SGBD). Exista multe sisteme de gestiune a bazelor de date, printre cele mai populare asemenea sisteme se
numara: DB2 , Interbase , MySQL , Oracle , Postgresql , SQL Server , Sybase .
MySQL este cel mai popular sistem de gestiune a bazelor de date destinat utilizarii cu PHP, n mare
masura deoarece este gratuit. Totusi, prin intermediul PHP este posibil accesul la aproape orice SGBD
modern.

Bazele de date relationale nteleg SQL (Structured Query Language), un limbaj relativ simplu, folosit
pentru solicitarea datelor. In ciuda simplitatii sale, SQL este un limbaj foarte puternic, care poate obtine
accesul la date stocate n mai multe tabele, poate filtra datele dorite si poate sorta, rezuma si afisa rezultatele.
n general, bazele de date relationale si stocheaza datele ntr-un singur fisier sau catalog. Aceasta
caracteristica de organizare faciliteaza administrarea datelor, deoarece executarea copiei de siguranta,
respectiv restaurarea unui singur fisier sau catalog se realizeaza mai usor.
Sistemele de gestiune a bazelor de date relationale necesita mai multe cicluri de procesor pentru a
satisface o cerere de date dect cele necesare pentru accesul la un fisier normal, dar ofera protectie sporita a
datelor, iar pentru accesul la distanta usureaza traficul deoarece majoritatea operatiilor sunt efectuate de
programul SQL, astfel singurele date transmise in retea ar fi rezultatul cerut.
Cand creati un tabel intr-o baza de date, este important sa tineti cont de "cheia primara" si sa va
bazati pe aceasta. Coloanele dintr-un tabel trebuie sa se bazeze pe cheia primara n totalitatea sa.
O alta operatie importanta este specificarea unui tip de date pentru fiecare coloana. Majoritatea
bazelor de date relationale accepta urmatoarele tipuri de date generale:
Caracter
ntreg
Zecimal
Data si ora
Binar
Tabelul urmator rezuma tipurile de date cele mai frecvent utilizate, acceptate de MySQL si de
majoritatea bazelor de date relationale. MySQL accepta multe alte tipuri de date, dar acestea sunt cele mai
folosite.
Tip de date
BLOB
CHAR(m)

Principalele tipuri de date din MySQL


Descriere
- Date binare arbitrare, cu o lungime maxima de 65535
octeti
- Un sir de caractere de lungime fixa, cu un maxim de m
caractere, unde m este mai mic dect 256. Pentru

DATE
DECIMAL
DECIMAL(m,d)
DOUBLE
DOUBLE (m, d)
FLOAT(m,d)
INTEGER
INTEGER
UNSIGNED
NUMERIC
NUMERIC (m, d)
REAL
REAL(m, d)
SMALLINT
SMALLINT
UNSIGNED

TIME
TIMESTAMP
TIMESTAMP(m)

VARCHAR(m)

obtinerea lungimii dorite, se insereaza spatii finale


- O data n format an-luna-zi; de exemplu 2008-10-15
- Un numar zecimal, reprezentat sub forma de sir cu "m"
cifre, din care "d" se afla la dreapta punctului zecimal.
Daca "m" si "d" sunt omise, n mod prestabilit se vor
utiliza valorile 10 si 0
- Un numar cu virgula mobila, cu dubla precizie, avnd o
latime de afisare egala cu "m" si un numar de "d" cifre
dupa virgula.
- Un numar cu virgula mobila, cu simpla precizie, avnd o
latime de afisare egala cu "m" si un numar de "d" cifre
dupa virgula
- Un ntreg pe 32 de biti. Daca se specifica atributul
UNSIGNED, domeniul de valori este cuprins ntre 0 si
4294967295; n caz contrar, domeniul este cuprins ntre
valorile -2147483648 si 2147483647
- Similar cu DECIMAL
- Similar cu DOUBLE
- Un ntreg pe 16 biti. Daca se specifica atributul
UNSIGNED, domeniul de valori este cuprins ntre 0 si
65535; n caz contrar, domeniul este cuprins ntre valorile
32768 si 32767
- Ora n format ora-minut-secunda; de exemplu, 08-20-00.
O valoare de tip data si ora, n format an-luna-zi oraminut-secunda; de exemplu, 1976-01-05 00:00:00.
Aceasta reprezentare este similara celei returnate de
functiile UNIX. Pt. stocare valoarea este transformata din
timpul curent in UTC si transformata invers la solicitarea
datei.
- Un sir caracter de lungime variabila, cu un maximum de
"m" caractere, unde m este mai mic dect 256 pentru
versiuni MySQL anterioare 5.0.3, iar pt. cele mai noi limita
este 65 535 bytes. Spatiile finale au fost eliminate

Iata cateva indicatii pentru selectarea tipurilor de date:


Alegeti BLOB ca tip pentru datele pe care nu trebuie sa le manipulati si la care nu veti obtine
acces prin intermediul limbajului SQL.
Alegeti un tip data sau ora adecvat pentru coloanele care contin date calendaristice sau ore.
Alegeti un tip numeric pentru coloanele folosite pentru numere sau n calcule.
o Pentru cantitati foarte mari sau foarte mici, alegeti DOUBLE ca tip de date.
o Pentru coloane care contin numere fara parte zecimala de dimensiuni medii, alegeti
SMALLINT sau INTEGER ca tip de date.
o Pentru alte coloane care contin date numerice, alegeti DECIMAL ca tip de date.
Alegeti CHAR sau VARCHAR ca tip pentru celelalte coloane, chiar si pentru cele care contin
cifre, cum ar fi un cod postal.
Dupa atata teorie, sa trecem la lucruri mai practice.

La nceput, o baza de date nu contine tabele. Pentru a crea o baza de date si apoi un tabel ntr-o baza
de date, folositi un sub-limbaj SQL special, cunoscut sub numele de Data Definition Language (DDL).
Puteti emite comenzi DDL si alte comenzi SQL prin intermediul unui interpretor SQL sau prin
intermediul PHP. Pentru inceput va fi prezentat modul de emitere a comenzilor SQL folosind un interpretor
SQL. In lectiile urmatoare va fi prezentat modul de emitere a comenzilor SQL utiliznd PHP.
Dupa ce aveti instalat MySQL, deschideti iterpretorul "MySQL Command Line Client" (asemanator
cu, "Command Promt") in care scrieti comenzile SQL (n general, SQL nu este sensibil la diferenta ntre
majuscule si minuscule. Deci, puteti scrie comensile cum preferati, cu majuscule sau minuscule).
Ca regula, dupa scrierea comenzilor, la sfarsit trebue sa fie caracterul "punct si virgula" (;)
Pentru a crea o baza de date, folositi urmatoarea comanda:
CREATE DATABASE nume_db;
Unde "nume_db" este numele bazei de date care va fi creata.
Inainte de a crea un tabel sau a lucra cu alte comenzi intr-o baza de date, trebuie sa intrati in baza de
date existenta, acest lucru se face folosind comanda:
USE nume_db;
Unde "nume_db" este numele bazei de date. Cu aceeasi comanda "USE nume_db" se schimba si
baza de date in care vrem sa lucram.
Pentru a crea un tabel ntr-o baza de date, emiteti comanda "CREATE TABLE", care are urmatoarea
forma:
CREATE TABLE tabel (coloana tip, coloana tip, );
Unde "tabel" este numele tabelului, "coloana" este numele unei coloane, "tip" este tipul datelor
incluse n coloana, se poate specifica un numar nedefinit de coloane.
De exemplu, comanda urmatoare creeaza un tabel numit "carte", care contine coloanele "carteid",
"titlu" si "pret":
CREATE TABLE carte (carteid CHAR(10), titlu VARCHAR(255), pret decimal(5,2));
n afara tipului de date, intre paranteze, puteti specifica si alte atribute optionale ale unei coloane:
NOT NULL - Fiecare rnd trebuie sa contina o valoare a coloanei asociate; valorile nule nu sunt
permise.
DEFAULT valoare - Daca nu este data o valoare a coloanei asociate, se va presupune valoarea
specificata.
AUTO INCREMENT - MySQL va repartiza n mod automat un numar de serie ca valoare a
coloanei asociate.
PRIMARY KEY - Coloana asociata este cheia primara a tabelului care o contine.

Iata un exemplu ceva mai complicat de creare a unui tabel, care foloseste unele din aceste atribute
optionale:
CREATE TABLE carte (carteid CHAR(10) PRIMARY KEY,
titlu VARCHAR(255) NOT NULL,
pret DECIMAL(5,2) DEFAULT 50.00);
Stergerea unui tabel sau a unei coloane este un act irevocabil, datele fiind definitiv sterse.
Pentru a sterge un tabel, scrieti urmatoarea comanda:
DROP TABLE tabel;
Unde "tabel" este numele tabelului care va fi sters.
Dupa crearea unui tabel, l puteti modifica prin emiterea unei comenzi "ALTER TABLE", care are
mai multe forme.
Urmatoarea forma a comenzii va permite sa stergeti o coloana din tabel:
ALTER TABLE tabel DROP coloana;
Unde "tabel" este numele tabelului care va fi modificat, iar "coloana" este numele coloanei care va fi
stearsa.
O alta forma a comenzii va permite sa adaugati o noua coloana n tabel:
ALTER TABLE tabel ADD coloana tip [optiuni];
Unde "tabel" este numele tabelului care va fi modificat, "coloana" este numele coloanei care va fi
adaugata, "tip" este tipul noii coloane, iar "[optiuni]" constituie toate optiunile dorite, precum PRIMARY
KEY.
De exemplu, pentru a adauga coloana "pretnou" la tabelul "carte", scrieti comanda:
ALTER TABLE carte ADD pretnou DECIMAL(5,2) DEFAULT 50.00;
Pentru a vedea toate bazele de date create in MySQL, folositi urmatoarea comanda:
SHOW DATABASES;
Pentru a vedea toate tabelele dintr-o baza de date din MySQL, folositi urmatoarea comanda:
SHOW TABLES;
Pentru a vedea toate coloanele dintr-un tabel, si atributele acestora, folositi urmatoarea comanda:

SHOW COLUMNS FROM tabel;

9.1. Crearea Tabelelor


CREATE TABLE Produse (
id_produs INT NOT NULL,
den_produs CHAR(20) NOT NULL,
pret_produs INT NOT NULL,
volumul INT NOT NULL,
cantitate_de_ INT NOT NULL,
id_tip INT NOT NULL,
desc_produs TEXT NULL,
);
CREATE TABLE Magazine (
id_magazin INT NOT NULL,
den_magazin varCHAR(20) NOT NULL,
strada_magazin varCHAR(20) NOT NULL,
oras_magazin varCHAR(20) NOT NULL,
tara_magazin varCHAR(20) NOT NULL,
tel_magazin INT NOT NULL,
fax_magazin INT NULL,
email_magazin varCHAR(50) NULL,
tip_magazin varCHAR(20) NOT NULL
);
CREATE TABLE ArticolComandat (
NumarArticol INT NOT NULL,
NumarComanda INT NOT NULL,
id_produs INT NOT NULL,
cantitate INT NOT NULL
);
CREATE TABLE Comenzi (
NumarComanda INT NOT NULL,
DataComanda DATE NOT NULL,
DataPrimirii DATE NOT NULL,
id_magazin INT NOT NULL
);
CREATE TABLE Tipuri (
id_tip INT NOT NULL,
den_tip varCHAR(20) NOT NULL
);

9.2. Modificarea Structurii Tabelelor


Alter table Produse add constraint PK_produs primary key clustered (id_produs);
Alter table Magazine add constraint PK_magazine primary key clustered (id_magazin);
Alter table ArticolComandat add constraint PK_articolcomandat primary key clustered (NumarComanda);
Alter table Comenzi add constraint PK_comenzi primary key clustered (NumarComanda);
Alter table Tipuri add constraint PK_tipuri primary key clustered (id_tip);
Alter table Produse ADD
Constraint FK_Produse_id_tip foreign key (id_tip) references Tipuri(id_tip);
Alter table Comenzi ADD
Constraint FK_Comenzi_magazine foreign key (id_magazin) references Magazine(id_magazin);
Alter table ArticolComandat ADD
Constraint FK_Produse_id_produs foreign key (id_produs) references Produse(id_produs);
Alter table ArticolComandat ADD
Constraint FK_nrcomanda foreign key (NumarComanda) references Comenzi(NumarComanda);
insert into Tipuri(id_tip,den_tip) values(0001,'Ciocolata cu lapte');
insert into Tipuri(id_tip,den_tip) values(0002,'Ciocolata neagra');
insert into Produse(id_produs,den_produs,pret_produs,volumul,cantitate_de_,id_tip) values(0001,'Kit
Kat',12,100,6,0001);
insert into Produse(id_produs,den_produs,pret_produs,volumul,cantitate_de_,id_tip)
values(0002,'Snickers',11,50,4,0002);
insert into Produse(id_produs,den_produs,pret_produs,volumul,cantitate_de_,id_tip)
values(0003,'Bounty',13,40,0,0002);
insert into Produse(id_produs,den_produs,pret_produs,volumul,cantitate_de_,id_tip)
values(0004,'Milka',15,100,5,0002);
insert into Produse(id_produs,den_produs,pret_produs,volumul,cantitate_de_,id_tip)
values(0005,'Korona',12,90,8,0002),(0006,'Schegotten',13,30,9,0001),(0007,'Kit kat duo',20,99,50,0002);
insert into Magazine values(0001,'Linela','bl. Dacia 29/7',' Chisinau','Moldova', '079123456', '441619',
'email@email.com', 'SuperMarket');
insert into Magazine values(0002, 'Uni Market', 'bl. Dacia 14/8', 'Orhei', 'Romania', '089654321', null,
'email@email.ru', 'Market 24/7' );
insert into Magazine values( 0003, 'Metro', 'l. Dacia 7', 'Chsinau', 'Moldova', '789145236', '123456', null,
'Market');

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