Documente Academic
Documente Profesional
Documente Cultură
BD 1
BD 1
A EFECTUAT: A VERIFICAT:
st.grupei I-1535 profesorul
Mihailenco Mihail V. Bulat
Chiinu 2017
Cuprins
Sarcina ...................................................................................................................................................... 3
ntroducere ............................................................................................................................................ 4
Tema .......................................................................................................................................................... 6
Proiectarea conceptuala ....................................................................................................................................... 6
Proiectarea logica .....................................................................................................................................................7
Concluzie............................................................................................................................................... 15
Bibliografie .......................................................................................................................................... 18
2
Sarcina
S se elaboreze proiectul care prezint descrierea aplicaiei de creare, manipulare ,
interogare a unei baze de date de tip Jucarii.
Aceasta baz de date conine toate informaiile despre jucarii inclusive despre
magazine,producatori,jucarii.Aceste i sunt tabelele pe care le-am folosit n crearea Bazei de
Date.
3
ntroducere
Anumite principii ghideaz procesul de proiectare al unei baze de date. Primul principiu
este acela c informaiile dublur (numite i date redundante) au o influen negativ, deoarece
consum spaiu i sporesc probabilitatea producerii de erori i inconsistene. Al doilea principiu
l reprezint importana corectitudinii i caracterului complet al informaiilor. Dac baza de date
conine informaii incorecte, orice rapoarte care extrag informaii din baza de date vor conine,
de asemenea, informaii incorecte. Drept urmare, orice decizie luat bazndu-v pe aceste
rapoarte va fi greit informat.
O proiectare bun a unei baze de date este, dup cum urmeaz, una care:
mparte informaiile n tabele pe baza subiectelor, pentru a reduce datele redundante.
Furnizeaz programului Access informaiile necesare pentru a asocia informaiile din
tabele dup necesiti.
Asist i asigur acurateea i integritatea informaiilor.
Adapteaz necesitile de procesare a datelor i cele de raportare.
Avantajele sistemelor de gestiune a bazelor de date fa de sistemele clasice, cu fiiere sunt
urmtoarele:
1. Controlul redundanei datelor Risipa de spaiu care se face prin stocarea acelorai
informaii n mai multe fiiere este mult diminuat prin utilizarea bazelor de date, dar nu
complet eliminat datorit altor cereri de mbuntire a performanelor.
2. Coerena datelor Dac un articol de date e nmagazinat de mai multe ori trebuie s se
garanteze c toate copiile acestuia vor fi actualizate dac se reactualizeaz o valoare a sa
(valoarea articolului e aceeai pentru toate copiile sale).
3. Mai multe informaii de la aceeai cantitate de date Se pot obine prin integrarea fiierelor
ce conin informaii diferite despre aceleai date.
4. Partajarea datelor Datele pot fi utilizate de ctre mai muli utilizatori n acelai timp. De
asemenea se pot face modificri sau adugiri la baza de date existent fr a fi necesar
definirea repetat a tuturor cerinelor referitoare la acestea.
5. Integritatea crescut a datelor Se refer la validitatea i coerena datelor nmagazinate i
se exprim prin constrngeri (reguli de coeren). Constrngerile se pot aplica articolelor
de date din cadrul unei singure nregistrri sau relaiilor dintre nregistrri.
6. Securitatea crescut Se realizeaz prin atribuirea unor nume de utilizatori i parole ce
permit identificarea persoanelor autorizate s foloseasc baza de date i impun
modalitatea de utilizare a acestor date.
4
7. Aplicarea standardelor Se refer la formatul datelor, conveniile privind denumirile,
documentarea, procedurile de reactualizare, regulile de acces.
8. Reducerea costurilor Prin realizarea integrrii se aloc fonduri centralizat i nu separat
fiecrui departament.
9. Rezolvarea conflictelor Fiecare utilizator va avea propriile cerine ce pot intra n conflict
cu ale altora. Administratorul bazei de date poate lua decizii ce duc la utilizarea optim a
resurselor.
10. Creterea accesibilitii datelor i a capacitii de rspuns Se realizeaz prin intermediul
utilizrii limbajelor de programare din generaia a IV-a
Proiectarea unei baze de date consta din proiectarea schemei conceptuale (logice) si fizice a
acesteia, astfel nct sa raspunda cerintelor utilizatorilor pentru un anumit set de aplicatii. n
general, se considera ca proiectarea unei baze de date se poate diviza n urmatoarele faze:
Colectarea si analiza cerintelor.
Proiectarea conceptuala a bazei de date.
Alegerea unui SGBD.
Proiectarea logica a bazei de date.
Proiectarea fizica a bazei de date.
Cele cinci faze de proiectare enumerate mai sus nu se desfasoara strict ntr-o singura
secventa. n multe cazuri este necesara modificarea proiectului dintr-o faza initiala ntr-una din
fazele ulterioare, pentru a se obtine rezultatele dorite. Aceste bucle de reactie ntre faze (sau n
interiorul unei faze) sunt, n general, frecvente n cursul proiectarii unei baze de date. nainte de a
se proiecta efectiv o baza de date, este necesar sa se cunoasca ce rezultate se asteapta utilizatorii
potentiali sa obtina de la baza de date respectiva si ce informatii primare sunt disponibile pentru
aceasta. De asemenea, este necesar sa se cunoasca ce aplicatii se vor efectua (aplicatii de
gestiune a stocurilor, aplicatii contabile, salarizare, etc.)
5
Tema
Proiectarea conceptuala
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. 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
6
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
Proiectarea logica
n faza de proiectare logica a unei baze de date se realizeaza schema conceptuala globala si
schemele conceptuale (vederile) externe pentru sistemul SGBD ales, pornind de la schema
conceptuala si schemele externe de nivel nalt independente de SGBD, proiectate n faza 34
precedenta. Aceasta faza de proiectare logica poate fi realizata n doua sub-faze: transpunerea
schemei conceptuale n modelul de date al sistemului SGBD ales, dar independent de sistemul de
gestiune propriu-zis si rafinarea schemei conceptuale si a schemelor externe obtinute anterior,
astfel nct sa se utilizeze unele (sau ct mai multe) din facilitatile oferite de sistemul SGBD ales
(modul de generare a cheilor primare, definirea constrngerilor, etc.). Aceste doua sub-faze se
pot realiza mpreuna, folosind unul din instrumentele de proiectare oferite de sistemul SGBD
ales. Rezultatul acestei faze de proiectare l constituie, asadar, schema conceptuala si schemele
externe ale bazei de date, dependente de sistemul SGBD ales si de modelul de date al acestuia.
Pentru transpunerea modelului Entitate-Asociere (reprezentat prin diagrama E-A) n model
relational se parcurg n principal doua etape: proiectarea relatiilor si proiectarea asocierilor.
Proiectarea relatiilor. n Fig. 2.2 este data schema conceptuala a bazei de date relationale
corespunzatoare diagramei E-A din Fig. 2.1, dezvoltata n SQL Server. n SQL Server relatiile si
asocierile ntre ele sunt reprezentate vizual n diagrama de asocieri (Relationships), care este
7
corespondentul relational al diagramei E-A. Multimile de entitati puternice (normale) din
diagrama E-A devin relatii, cu atributele date de atributele entitatilor. n astfel de relatii cheia
primara se defineste fie ca o cheie naturala (combinatie de atribute care definesc n mod unic un
tuplu al relatiei), fie ca o cheie primara artificiala. n exemplul prezentat, n fiecare din relatiile
care corespund multimilor de entitati puternice s-a adaugat cte o cheie primara artificiala
(IdAngajat,IdSectie,IdProiect,etc.). Multimile de entitati slabe din diagrama E-A devin, de
regula, relatii aflate n asociere N:1 cu relatia corespunzatoare multimii de entitati de care acestea
depind. Pentru realizarea acestei asocieri, n relatia dependenta se adauga o cheie straina care
refera cheia primara a relatiei referite (puternice). Cheia primara a unei relatiei dependente poate
fi o combinatie formata din atributul cheie straina si alte atribute care asigura posibilitatea de
identificare unica a unui tuplu, sau poate fi o cheie artificiala. Cheia primara a relatiei
DEPENDENTI este compusa din atributul cheie straina (IdAngajat, care refera cheia primara a
relatiei ANGAJATI) si atributele Nume si Prenume (ale persoanei dependente). Multimile de
entitati care sunt subtipuri ale unui tip de entitate dat devin relatii aflate n asociere 1:1 cu relatia
corespunzatoare multimii de entitati de tipul respectiv (supertip). Pentru realizarea acestei
asocieri. n relatia corespunzatoare subtipului de entitati se defineste o cheie straina care refera
cheia primara din relatia corespunzatoare supertipului de entitati; aceasta cheie straina este n
acelasi timp si cheie primara n relatia corespunzatoare subtipului de entitati. n exemplul
prezentat, asocierile ANGAJATI-INGINERI si ANGAJATI-SECRETARE sunt asocieri 1:1. n
relatia INGINERI atributul IdAngajat este cheie straina care refera cheia primara cu acelasi
nume din relatia ANGAJATI si este n acelasi timp si cheie primara; la fel, n relatia
SECRETARE atributul IdAngajat este cheie straina care refera cheia primara cu acelasi nume
din relatia ANGAJATI si este n acelasi timp si cheie primara. Proiectarea asocierilor. Asocierea
binara N:1 dintre doua multimi de entitati puternice din diagrama E-A se realizeaza n modelul
relational prin intermediul unei chei straine n prima relatie (cea cu multiplicitatea N a asocierii)
care refera cheia primara (sau o cheie candidata) din relatia referita (cea cu multiplicitatea 1 a
asocierii). De exemplu, asocierea N:1 ntre relatiile ANGAJATISECTII se realizeaza prin cheia
straina IdSectie adaugata relatiei ANGAJATI, care refera cheia primara cu acelasi nume a
relatiei SECTII. Asocierea binara M:N dintre doua multimi de entitati din diagrama E-A se
realizeaza n modelul relational prin intermediul unei noi relatii, numita relatie de asociere.
Aceasta noua relatie se afla n asociere M:1, respectiv N:1 cu fiecare din cele doua relatii date
prin intermediul a doua chei straine care refera cheile primare (sau chei candidate) din relatiile
date. De exemplu, pentru a reprezenta asocierea M:N dintre relatiile COMPONENTEPRODUSE
se adauga o noua relatie numita COMPOZITII, care contine cheile straine IdComponenta si
IdProdus, care refera cheile primare cu acelasi nume din relatiile COMPONENTE, respectiv
8
PRODUSE. Cheia primara a unei relatii de asociere poate fi o cheie artificiala sau poate fi
compusa din cheile straine care refera cele doua relatii asociate, eventua l mpreuna cu alte
atribute ale relatiei, care caracterizeaza asocierea respectiva. Asa cum se poate vedea n Fig. 2.2,
cheia primara a relatiei COMPOZITII este formata din cele doua chei straine pe care le contine.
Asocierea binara 1:1 ntre doua multimi de entitati puternice se poate transpune n modelul
relational n doua moduri: fie prin intermediul unei chei straine (ca un caz particular al unei
asocieri N:1), fie printr-o relatie de asociere (ca un caz particular al unei asocieri M:N).
Asocierea binara 1:1 dintre o multime de entitati de un subtip si multimea de entitati supertip din
diagrama Entitate-Asociere este tot o asociere binara cu raportul de cardinalitate1:1 ntre relatiile
corespunzatoare n modelul relational. Acest tip de asociere se realizeaza prin definirea n relatia
corespunzatoare subtipului de entitati a unei chei straine care refera cheia primara din relatia
corespunzatoare supertipului de entitati; aceasta cheie straina este n acelasi timp si cheie primara
n relatia corespunzatoare subtipului de entitati. Acest mod de definire a fost 56 folosit pentru
asocierea dintre tabelele INGINERI, SECRETAREsi tabelul ANGAJATI. Asocierea multipla
M:N:P:. dintre mai mult de doua multimi de entitati din diagrama E-A se realizeaza n mod
asemanator cu asocierea binara, prin intermediul unei noi relatii care se afla n asociere M:1,
N:1, P:1, etc, cu fiecare din relatiile date. Aceasta asociere este realizata prin intermediul mai
multor chei straine, fiecare cheie straina referind cheia primara (sau o cheie candidata) dintr-una
din relatiile date. De exemplu, relatia ACHIZITII realizeaza asocierea ntre relatiile
COMPONENTE, FURNIZORI, ANGAJATI. Ea contine trei chei straine (IdComponenta,
IdFurnizor, IdAchizitor) care refera relatiile COMPONENTE, FURNIZORI, respectiv
ANGAJATI, iar cheia primara este cheia artificiala IdAchizitie.
Proiectarea fizic
Proiectarea fizic a bazei de date reprezint procesul de alegere a structurilor de memorare i de
acces la fiierele bazei de date, pentru a obine performane ct mai bune pentru aplicaia
proiectat. Ca parametrii generali de alegere a opiunilor proiectului fizic al unei baze de date
relaionale se pot enumera:
timpul de rspuns, utilizarea spaiului de memorare, capacitatea tranzacional.
Deciziile de proiectare fizic se pot lua numai dup o analiz a aplicaiilor care se vor executa i
n principal, a interogrilor i tranzaciilor pe care acestea le vor lansa. n urma analizei se pot
sintetiza informaii care s dea imaginea de ansamblu a utilizrii atributelor relaiilor bazei de
date: care atribute sunt actualizate cel mai frecvent, care atribute sunt folosite cel mai frecvent n
selecii ale interogrilor, etc. Aceste informaii se folosesc pentru stabilirea indecilor secundari
ai relaiilor.
Elaborarea proiectului
Elaborarea proiectului const n executarea urmtorilor pai:
13
Proiectarea BD;
Crearea BD;
Culegerea textului MC Word
Crearea tabelelor
CREATE DATABASE Jucarii1
USE Jucarii1
GO
Create table Principal
(
id_jucarie int not null,
id_magazin int not null,
id_producator int not null,
);
Create table Jucarii
(
id_jucarie int not null,
denumire_jucarie char(50)not null,
tip_jucarie char(20) not null,
pret_jucarie int not null,
);
Create table Magazine
(
id_magazin int not null,
proprietar char(30) not null,
Adresa char(30) not null,
nr_telefon int not null,
);
Create table Producator
(
id_producator int not null,
producator char(30) not null,
Brand char(30) not null,
adresa_web char(30) not null,
Telefon int not null,
Declararea PRIMARY KEY
ALTER TABLE Principal WITH NOCHECK ADD CONSTRAINT PK_Principal PRIMARY
KEY CLUSTERED(id_jucarie,id_magazin,id_producator);
ALTER TABLE Jucarii WITH NOCHECK ADD CONSTRAINT PK_Jucarii PRIMARY KEY
CLUSTERED(id_jucarie);
ALTER TABLE Magazine WITH NOCHECK ADD CONSTRAINT PK_Magazine PRIMARY
KEY CLUSTERED(id_magazin);
ALTER TABLE Producator WITH NOCHECK ADD CONSTRAINT PK_Producator
PRIMARY KEY CLUSTERED(id_producator);
Declararea FOREIGN KEY
ALTER TABLE Principal ADD CONSTRAINT FK_Principal_Jucarii FOREIGN
KEY(id_jucarie)REFERENCES Jucarii(id_jucarie);
ALTER TABLE Principal ADD CONSTRAINT FK_Principal_Magazine FOREIGN
KEY(id_magazin)REFERENCES Magazine(id_magazin);
ALTER TABLE Principal ADD CONSTRAINT FK_Principal_Producator FOREIGN
KEY(id_producator)REFERENCES Producator(id_producator);
14
Inserarea datelor
------------------------------------------
---Inserarea datelor in tabelul Principal
------------------------------------------
INSERT INTO Principal (id_jucarie,id_magazin,id_producator)
VALUES (1574,1920,5555);
INSERT INTO Principal (id_jucarie,id_magazin,id_producator)
VALUES (1575,1921,6666);
INSERT INTO Principal (id_jucarie,id_magazin,id_producator)
VALUES (1576,1922,7777);
INSERT INTO Principal (id_jucarie,id_magazin,id_producator)
VALUES (1577,1923,8888);
INSERT INTO Principal (id_jucarie,id_magazin,id_producator)
VALUES (1578,1924,9999);
------------------------------------------
---Inserarea datelor in tabelul Jucarii
------------------------------------------
INSERT INTO Jucarii
(id_jucarie,denumire_jucarie,tip_jucarie,pret_jucarie)
VALUES (1574,'Ninjago','LEGO',150);
INSERT INTO Jucarii
(id_jucarie,denumire_jucarie,tip_jucarie,pret_jucarie)
VALUES (1575,'Kitty Club','Figurina',120);
INSERT INTO Jucarii
(id_jucarie,denumire_jucarie,tip_jucarie,pret_jucarie)
VALUES (1576,'My Little Pony','Figurina',170);
INSERT INTO Jucarii
(id_jucarie,denumire_jucarie,tip_jucarie,pret_jucarie)
VALUES (1577,'Dinozaur','Robot',130);
INSERT INTO Jucarii
(id_jucarie,denumire_jucarie,tip_jucarie,pret_jucarie)
VALUES (1578,'2D','Puzzle',200);
------------------------------------------
---Inserarea datelor in tabelul Magazine
------------------------------------------
INSERT INTO Magazine (id_magazin,proprietar,Adresa,nr_telefon)
VALUES (1920,'Ion Verde','Sarmizegetusa 31',068342215);
INSERT INTO Magazine (id_magazin,proprietar,Adresa,nr_telefon)
VALUES (1921,'Curechi Alexandru','Blvd Decebal 70',069141415);
INSERT INTO Magazine (id_magazin,proprietar,Adresa,nr_telefon)
VALUES (1922,'Negru Valeriu','Cuza Voda 32',060131211);
INSERT INTO Magazine (id_magazin,proprietar,Adresa,nr_telefon)
VALUES (1923,'Rosie Ion','Burebista 19',061111213);
INSERT INTO Magazine (id_magazin,proprietar,Adresa,nr_telefon)
VALUES (1924,'Balica Igor','Stefan cel Mare 11',062342115);
------------------------------------------
---Inserarea datelor in tabelul Producator
------------------------------------------
INSERT INTO Producator
(id_producator,producator,Brand,adresa_web,telefon)
VALUES (5555,'Juno','Romanesc','juno.ru',068284812);
15
INSERT INTO Producator
(id_producator,producator,Brand,adresa_web,telefon)
VALUES (6666,'Noriel','Romanesc','noriel.ro',069324356);
INSERT INTO Producator
(id_producator,producator,Brand,adresa_web,telefon)
VALUES (7777,'DToys','Romanesc','dtoys.ro',079373285);
INSERT INTO Producator
(id_producator,producator,Brand,adresa_web,telefon)
VALUES (8888,'Plastor','Romanesc','plastor.ro',069342231);
INSERT INTO Producator
(id_producator,producator,Brand,adresa_web,telefon)
VALUES (999,'Flaro','Romanesc','flaro.ro',068224351);
16
Concluzie
Adaptarea la noile cerinte ale tehnologiei informatiei si comunicatiilor impune eforturi
sustinute din partea proiectantilor si programatorilor de aplicatii, pentru asimilarea noutatilor si
integrarea lor n produsele software rezultate. Tehnologia SQL este una de mare actualitate n
dezvoltarea aplicatiilor cu baze de date de tip Internet.
Aceasta, deoarece avantajele majore aduse de stocarea si prelucrarea informatiei din
bazele de date sau multiplicat prin facilitatile de comunicatie si facilitatile orientate obiect
.Aplicatiile cu baze de date de tip Internet si anunta nca din denumire natura dubla, ca urmare a
coexistentei celor doua elemente(bazele de date si comunicatiile).
17
Bibliografie
Crstoiu, Dorin, Baze de date relaionale, Editura Printech, 1999
Rdulescu, Florin, Baze de date n Internet, Editura Printech, 2000
Pribeanu, Costin, Baze de date i aplicaii, Editura MatrixRom, 2000
Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004
http://www.umfcv.ro/files/0/3/03_Baze%20de%20date.pdf
http://www.seap.usv.ro/~sorinv/CursBD%20Cibernetica.pdf
18