Documente Academic
Documente Profesional
Documente Cultură
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
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
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.
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.
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
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.
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
13
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
16
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).
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
Nume
George Washington
John Adams
Thomas Jefferson
AnNastere
1732
1735
1743
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)
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)
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: