Gestiunea Bazelor de Date
Baze de date
1.Conceptul de sistem de gestiune a bazelor de date
Sistemele de gestiune a bazalor de date (SGBD) sunt sisteme informatice specializate n stocarea i prelucrarea unui volum mare de date, numrul prelucrrilor fiind relativ mic.
Termenul de baz de date se va referi la datele de prelucrat, la modul de organizare a acestora pe suportul fizic de memorare, iar termenul de gestiune va semnifica totalitatea operaiilor ce se aplic asupra datelor din baza de date.
Un SGBD trebuie s asigure urmtoarele funcii:
definirea crearea bazei de date;
introducerea (adugarea) datelor n baza de date;
modificarea unor date deja existente n baza de date;
tergerea datelor din baza de date;
consultarea bazei de date interogare/extragerea datelor.
n plus un SGBD mai asigur i alte servicii:
suport pentru limbaj de programare;
interfa ct mai atractiv pentru comunicare cu utilizatorul;
tehnici avansate de memorare, organizare, accesare a datelor din baza de date;
utilitare ncorporate: sistem de gestiune a fiierelor, liste, tabele etc.;
help pentru ajutarea utilizatorului n lucrul cu baza de date.
Apariia i rspndirea reelelor de calculatoare a dus la dezvoltarea SGBD-urilor n direcia multiuser: mai muli utilizatori folosesc simultan aceeai baz de date.
Principalul avantaj al reelelor a fost eficiena mult sporit de utilizare a resurselor sistemelor de calcul: la o baz de date aflat pe un server central au acces simultan mai muli utilizatori, situai la distan de server, de unde rezult o bun utilizare a resurselor server-ului i o economie de memorie datorat memorrii unice a bazei de date.
Un SGBD este dotat cu un limbaj neprocedural de interogare a bazei de date SQL care permite accesul rapid i comod la datele stocate n baza de date.
n arhitectura unui sistem de baze de date SGBD ocup locul central.
Un SGBD este un ansamblu complex de programe care asigur interfaa ntre o baz de date i utilizatorii acesteia. SGBD este componenta software a unui sistem de baze de datecare interacioneaz cu toate celelalte componente ale acestuia asigurnd legtura i interdependena ntre ele.
Activitile asigurate de SGBD
Un SGBD trebuie s asigure urmtoarele activiti:
definirea i descrierea structurii bazei de date se realizeaz printr-un limbaj propriu, limbaj de definire a datelor (LDD), conform unui anumit model de date;
ncrcarea datelor n baza de date se realizeaz prin comenzi n limbaj propriu, limbaj de manipulare a datelor (LMD);
accesul la date se realizeaz prin comenzi specifice din limbajul de manipulare a datelor. Accesul la date se refer la operaiile de interogare i actualizare.
Interogarea este complex i presupune vizualizarea, consultarea, editarea de situaii de ieire (rapoarte, liste, regsiri punctuale).
Actualizarea presupune 3 operaiuni: adugare, modificare efectuate prin respectarea restriciilor de integritate ale BD i tergere;
ntreinerea bazei de date se realizeaz prin utilitare proprii ale SGBD;
reorganizarea bazei de date se face prin faciliti privind actualizarea structurii de date i modificarea strategiei de acces. Se execut de ctre administratorul bazei de date;
securitatea datelor se refer la asigurarea confidenialitii datelor prin autorizarea i controlul accesului la date, criptarea datelor.
Obiectivele unui SGBD
Un SGBD are rolul de a furniza suportul software complet pentru dezvoltarea de aplicaii informatice cu baze de date.
El trebuie s asigure:
minimizarea costului de prelucrare a datelor,
reducerea timpului de rspuns,
flexibilitatea aplicaiilor i
protecia datelor.
Pentru satisfacerea performanelor enumerate, SGBD trebuie s asigure un minim de obiective.
1. Asigurarea independenei datelor trebuie privit din dou puncte de vedere:
independena logic se refer la posibilitatea adgrii de noi tipuri de nregistrri de date sau extinderea structurii conceptuale, fr a determina rescrierea programelor de aplicaie;
independena fizic modificarea tehnicilor fizice de memorare fr a determina rescrierea programelor de aplicaie.
2. Asigurarea redundanei minime i controlate a datelor stocarea informaiilor n bazele de date se face astfel nct datele s nu fie multiplicate. Totui, pentru a mbunti performanele legate de timpul de rspuns, se accept o anumit redundan a datelor, controlat, pentru a asigura coerena bazei de date i eficiena utilizrii resurselor hardware.
3. Asigurarea facilitilor de utilizare a datelor presupune ca SGBD-ul s aib anumite componente specializate pentru:
folosirea datelor de ctre mai muli utilizatori n diferite aplicaii datele de la o aplicaie trebuie s poat fi utilizate i n alte aplicaii.
accesul ct mai simplu al utilizatorilor la date fr ca ei s fie nevoii s cunoasc structura ntregii baze de date; aceast sarcin cade n seama administratorului bazei de date.
existena unor limbaje performante de regsire a datelor care permit exprimarea interactiv a unor cereri de regsire a datelor.
sistemul de gestiune trebuie s ofere posibilitatea unui acces multicriterial la informaiile din baza de date spre deosebire de sistemul clasic de prelucrare pe fiiere unde exist un singur criteriu de adresare, cel care a stat la baza organizrii fiierului.
4. Asigurarea securitii datelor mpotriva accesului neautorizat.
5. Asigurarea coerenei i integritii datelor mpotriva unor tergeri intenionate sau neintenionate se realizeaz prin intermediul unor proceduri de validare, a unor protocoale de control concurent i a unor proceduri de refacere a bazei de date.
6. Asigurarea partajabilitii datelor se refer pe de o parte la asigurarea accesului mai multor utilizatori la aceleai date i de asemenea la posibilitatea dezvoltrii unor aplicaii fr a se modifica structura bazei de date.
7. Asigurarea legturilor ntre date corespund asocierilor care se pot realiza ntre obiectele unei aplicaii informatice. Orice SGBD trebuie s permit definirea i descrierea structurii de date, precum i a legturilor dintre acestea, conform unui model de date (de exemplu modelul relaional).
8. Administrarea i controlul datelor sunt asigurate de SGBD, n sensul c datele pot fi folosite de mai muli utilizatori n acelai timp, iar utilizatorii pot avea cerine diferite i care pot fi incompatibile. SGBD trebuie s rezolve probleme legate de concuren la date, problem care apare mai ales n lucrul n mediu de reea de calculatoare.
Funciile unui SGBD
Evideniem urmtoarele funcii ale unui SGBD.
funcia de descriere a datelor se face cu ajutorul LDD, realizndu-se descrierea atributelor din cadrul structurii BD, legturile dintre entitile BD, se definesc eventualele criterii de validare a datelor, metode de acces la date, integritatea datelor. Concretizarea acestei funcii este schema BD.
funcia de manipulare este cea mai complex i realizeaz actualizarea i regsirea datelor.
funcia de utilizare asigur mulimea interfeelor necesare pentru comunicare a tuturor utilizatorilor cu BD.
Categorii de utilizatori:
neinformaticieni beneficiarii informaiei, nu trebuie s cunoasc structura BD, nu trebuie s programeze aplicaii ci doar s le foloseasc prin intermediul unei interfee suficient de prietenoase.
informaticieni creaz structura BD i realizeaz procedurile complexe de exploatare a BD;
administratorul bazei de date utilizator special, cu rol hotrtor n funcionarea optim a ntregului sistem.
funcia de administrare administratorul este cel care realizeaz schema conceptual a bazei de date, iar n perioada de exploatare a BD autorizeaz accesul la date, reface baza n caz de incident.
funcia de protecie a bazei de date ansamblul de msuri necesare pentru asigurarea integritii (semantic, acces concurent, salvare/restaurare) i securitii datelor (autorizare acces, utilizare viziuni, criptare).
2.Ce este o Baz de Date?
n sensul larg, o baz de date (database) este o colecie 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 (un exemplu ar fi fiele de eviden a crilor dintr-o bibliotec, aa cum erau folosite cu ani n urm) sau computerizat aa cum sunt majoritatea bazelor de date n momentul de fa. O definiie ntr-un sens mai restrns a unei baze de date este urmtoarea:
O baz de date este o colecie de date centralizate, creat i meninut computerizat, n scopul prelucrrii datelor n contextual unui set de aplicaii. Prelucrarea datelor se refer la operaiile de introducere, tergere, actualizare i interogare a datelor.
Simple colecii de fie (documente pe hrtie) sau fiiere de date care conin date, dar nu permit operaii de interogare nu sunt considerate baze de date. De exemplu, datele memorate n fiiere pe disc ntr-o aplicaie de calcul tabelar (Microsoft Excel) sau
documentele memorate de un editor de texte (ca Microsoft Word) nu sunt considerate baze de date.
Orice baz de date are urmtoarele proprieti implicite:
Baza de date este o colecie logic coerent de date ce are cel puin un neles
Baza de date este destinat, construit i populat de date despre un domeniu bine precizat. Ea are un grup de utilizatori i se adreseaz unui anumit grup de aplicaii
O baz de date reprezint cteva aspecte ale lumii reale crend orizontul propriu. Schimbrile orizontului sunt reflectate n baza de date. Fa de vechile metode de nregistrare a datelor privind diferite activiti pe fie (documente scrise) sau chiar n fiiere pe disc, sistemele de baze de date ofer avantaje considerabile, ceea ce explic extinsa utilizare a acestora. Cteva dintre avantajele oferite sunt:
Controlul centralizat al datelor, putnd fi desemnat o
persoan ca responsabil cu administrarea bazei de date
Vitez mare de regsire i actualizare a informaiilor
Sunt compacte: volumul ocupat de sistemele de baze de date este mult mai redus dect documetele scrise
Flexibilitatea ce const n posibilitatea modificrii structurii bazei de date fr a fi necesar modificarea programelor de aplicaie
Redundan sczut a datelor memorate, care se obine prin partajarea datelor ntre mai muli utilizatori i aplicaii.
n sistemele de baze de date, mai multe aplicaii pot folosi date comune, memorate o singur dat. De exemplu, o aplicaie pentru gestionarea personalului dintr-o universitate i o aplicaie pentru gestionarea rezultatelor la examene din aceeai universitate care folosete o singur baz de date, pot folosi aceleai informaii referitoare la structurarea facultilor.
Posibilitatea introducerii standardelor privind modul de stocare a datelor, ceea ce permite interschimbarea datelor ntre organizaii
Meninerea integritii datelor prin politica de securitate (drepturi de acces difereniate n funcie de rolul utilizatorilor), prin gestionarea tranzaciilor i prin refacerea datelor n caz de funcionare defectuoas a diferitelor componente hardware sau software.
Independena datelor fa de suportul hardware utilizat. Sistemul de gestiunea a bazelor de date ofer o vizualizare a datelor, care nu se modific atunci cnd se schimb
suportul de memorare fizic, ceea ce asigur imunitatea structurii bazei de date i a aplicaiilor la modificri ale sistemului hardware utilizat.
Clasificarea sistemelor de baze de date
Se pot lua n considerare mai multe criterii de clasificare ale
sistemelor de baze de date.
2.1. Clasificare dup modelul de date.
Majoritatea sistemelor de baze de date actuale sunt realizate n modelul de date relaional sau n modelul de date orientat obiect. Dezvoltarea continu a acestor modele a condos ctre o nou categorie de baze de date numite obiect-relaionale,care combin caracteristicile modelului relaional cu caracteristicile modelului orientat obiect.
Modelul de date relaional (Relational Model) se bazeaz pe noiunea de relaie din matematic, care corespunde unei entiti de acelai tip i are o reprezentare uor de neles i de manipulat, ce const dintr-un tabel bidimensional, compus din linii
i coloane. Fiecare linie din tabel reprezint o entitate i este compus din mulimea valorilor atributelor entitii respective,fiecare atribut corespunznd unei coloane a tabelului.Modelul de date relaional a fost propus de cercettorul E.F.Codd de la compania IBM, care a publicat n 1970 lucrarea Un model relaional de date pentru bnci mari de date partajate. Alte lucrri ale lui Codd, ca i ale altor cercettori ca R. Boyce,J.D. Ullman etc au perfecionat modelul de date relaional i au permis dezvoltarea sistemelor de baze de date. Chiar dac noiunile de relaie i tabel difer n esena lor,
relaia reprezentnd o mulime de entiti i tabelul o reprezentare vizual a acesteia, cele dou denumiri se pot folosi, n general pentru acelai scop. Pe baza acestor noiuni, se poate sintetiza esena modelului relaional prin urmtoarele caracteristici:
Datele sunt percepute de utilizatori ca tabele
Operatorii relaionali care pot fi folosii pentru prelucrarea datelor genereaz un tabel rezultat din tabelele operanzi
Asocierea dintre tabele se realizeaz prin intermediul egalitii valorilor unor atribute comune, ceea ce permite rezolvarea oricrei interogri. Pe lng avantajul unui model de date precis i simplu, sistemele de baze de date relaionale mai beneficiaz i de un
limbaj de programare recunoscut i acceptat, limbajul SQL (Structured Query Language), pentru care au fost emise mai multe standarde de ctre Organizaia Internaional de Standardizare (International Standardization Office-ISO). Majoritatea sistemelor
de gestiune a bazelor de date relaionale actuale implementeaz versiunea din anul 1992 a standardului pentru limbajul SQL, denumit SQL 92 sau SQL2.
Modelul de date orientat obiect (Object Model) este un concept unificator n tiina calculatoarelor, fiind aplicabil n programare, n proiectarea hardware, a interfeelor, a bazelor de date etc. Sistemele de baze de date orientate obiect se bazeaz pe limbaje de programare orientate obiect cu capaciti de persisten, n care datele sunt independente de timpul de via al programelor care le creeaz sau acceseaz, prin memorare pe suport magnetic (disc). Exist i unele domenii, n special cele care manipuleaz tipuri de date complexe, cum ar fi proiectarea asistat de calculator, sisteme de informaii geografice, medicin etc, n care modelul relaional s-a dovedit a fi insuficient de expresiv i cu performane de execuie reduse. Caracteristicile importante ale modelului orientat obiect sunt: abstractizarea, motenirea, ncapsularea, modularizarea. n programarea orientat obiect, programele sunt organizate ca i colecii de obiecte cooperante, fiecare obiect fiind o instan a unei clase. Fiecare clas reprezint abstractizarea unui tip de entitate din realitatea modelat, iar clasele sunt membre ale unei ierarhii de clase, corelate ntre ele prin relaii de motenire. Orice obiect este ncapsulat, ceea ce nseamn c reprezentarea lui (adic structura intern a acelui obiect) nu este
vizibil utilizatorilor, care au acces doar la funciile (metodele) pe care acel obiect este capabil s le execute. Clasele i obiectele unui program orientat obiect sunt grupate n module, care pot fi compilate separat i ntre care exist granie bine definite i documentate, ceea ce reduce complexitatea de manevrare a datelor. Din perspectiva realizrii bazelor de date, o alt proprietate a modelului obiect, persistena, este aceea care asigur memorarea transparent pe suport magnetic a obiectelor care alctuiesc o baz de date orientat obiect.
Modelul de date obiect-relaional (Object-Relational Model) reprezint extinderea modelului relaional cu caracteristici ale modelului obiect, extindere necesar pentru realizarea bazelor de date care definesc i prelucreaz tipuri de date complexe. n esen, modelul obiect-relaional pstreaz structurarea datelor n relaii (reprezentate ca tabele), dar adaug posibilitatea definirii unor noi tipuri de date, pentru domeniile de valori ale atributelor. Tipurile de date definite de utilizator pot fi extinse prin mecanismul de motenire i pentru fiecare tip sau subtip se pot defini metode pe care le pot executa obiectele de acel tip. De asemenea mai sunt nc n funciune baze de date modele mai vechi: modelul ierarhic i modelul reea.
n modelul de date ierarhic (Hierarchical Model) o baz de date se reprezint printr-o structur ierarhic de nregistrri de date (records) conectate prin legturi (links). Modelul ierarhic a fost primul model folosit pentru dezvoltatea bazelor de date.
Schema conceptual a unei baze de date n modelul ierarhic se reprezint printr-un numr oarecare de scheme ierarhice. O schem ierarhic este un arbore direcionat, reprezentat pe mai multe niveluri, n care nodurile sunt tipurile de nregistri, iar arcele sunt tipurile de legturi. Fiecare nod (cu excepia nodului rdcin) are o singur legtur ctre un nod de pe un nivel superior (nodul printe) i fiecare nod (cu excepia nodurilor frunz) are una sau mai multe legturi ctre noduri de pe nivelul imediat inferior (noduri fii).
Modelul de date reea (Network Model) folosete o structur de graf pentru definirea schemei conceptuale a bazei de date; nodurile grafului sunt tipuri de entiti (nregistrri, records), iar muchiile grafului reprezint n mod explicit asocierile (legturile, links) dintre tipurile de entiti.
La fel ca i modelul ierarhic, dezavantajul principal al modelului reea este acela c fiecare interogare trebuie s fie prevazut nc din faza de proiectare, prin memorarea explicit a legturilor ntre tipurile de entiti. n plus, complexitatea reprezentrii datelor n modelul reea este deosebit de ridicat, iar programatorii trebuie s o cunosasc pentru a putea realize aplicaiile necesare.
2.2. Clasificare dup numrul de utilizatori.
Majoritatea sistemelor de baze de date sunt sisteme multiutilizator, adic permit accesul concurent (n acelai timp) a mai multor utilizatori la aceeai baz de date. Exist i un numr redus de sisteme monoutilizator, adic suport accesul doar al
unui utilizator (la un moment dat).
2.3. Clasificare dup numrul de staii pe care este stocat baza de date
O alt clasificare este cea dup numrul de staii pe care este stocat baza de date
Exist dou categorii de sisteme de baze de date: centralizate i distribuite.
Un sistem de baze de date centralizat (Centralized Database System) este un sistem de baze de date n care datele i sistemul de gestiune sunt stocate pe un singur calculator.
Un sistem de baze de date distribuit (Distributed Database System) poate avea att datele, ct i sistemul de gestiune, distribuite pe mai multe calculatoare interconectate printr-o reea de comunicaie.
3.Descrierea aplicatiei
In aceasta aplicatie am incercat sa descriu situatia unor studenti de la diferite specializari.Aplicatia cuprinde 4 tabele cu urmatoarea structura:
1.tablul Facultate(CodFac integer primary key,Denumire text(50),Adresa text(50),NumeDecan text(20));
2. tablul StudPersonal(CodStud integer primary key,CNP integer,NumeText(25),Prenume text(20),DataNasterii date,LocNast text(50),Tata text(30),Mama text(30),Adresa text(50));
3. tablul Studenti(CodStud integer primary key,CodFac integer,An byte,Grupa text(6),
Media double,Bursa integer);
4. tablul Materii(CodMaterie integer primary key,Denumire text(30),An byte,
NumeProfesor text(50));
5. tablul Note (CodNota integer autonumber primary key,CodStud integer,CodMaterie integer,Nota byte,Data date);
4.Interogari, formulare si rapoarte
INTEROGARI
1.Studentii a caror nume incep cu litera S.
Query1
codstud
cnp
nume
prenume
data_n
loc_n
tata
mama
45
2090289575555
sandu
andreea
02.09.1989
iasi
ion
mihaela
42
2040389577577
scurtu
mirela
03.04.1989
suceava
dragos
raluca
43
1090688586575
soescu
costel
06.09.1988
botosani
nicolae
ana
41
2011889330195
stanciuc
mihaela
18.01.1989
suceava
gheorghe
veronica
2.Afisati datele studentului Soescu (interogare parametrica,parametrul nume).
Query2
codstud
cnp
nume
prenume
data_n
loc_n
tata
mama
adresa
45
2090289575555
sandu
andreea
02.09.1989
iasi
ion
mihaela
iasi
3.Studentii nascuti in luna 01(interogare parametrica).
Query3
codstud
cnp
nume
prenume
data_n
loc_n
tata
mama
adresa
41
2011889330195
stanciuc
mihaela
18.01.1989
suceava
gheorghe
veronica
suceava
4.Studentii din Suceava care au bursa peste 1000000 lei.
Query4
codstud
codfac
an
grupa
media
bursa
cnp
nume
prenume
data_n
loc_n
tata
mama
adresa
41
1
1
1
8
1400000
2011889330195
stanciuc
mihaela
18.01.1989
suceava
gheorghe
veronica
suceava
42
2
1
2
9
1800000
2040389577577
scurtu
mirela
03.04.1989
suceava
dragos
raluca
suceava
43
3
2
3
8
1400000
1090688586575
soescu
costel
06.09.1988
botosani
nicolae
ana
suceava
5 Studentii cu varsta peste 18 ani.
Query5
codstud
cnp
prenume
nume
data_n
loc_n
tata
mama
adresa
varsta
41
2011889330195
mihaela
stanciuc
18.01.1989
suceava
gheorghe
veronica
suceava
19
42
2040389577577
mirela
scurtu
03.04.1989
suceava
dragos
raluca
suceava
19
43
1090688586575
costel
soescu
06.09.1988
botosani
nicolae
ana
suceava
20
44
2080488374855
marinela
onu
04.08.1988
suceava
vasile
maria
suceava
20
45
2090289575555
andreea
sandu
02.09.1989
iasi
ion
mihaela
iasi
19
6.Studentii de la facultatea SEAP.
Query6
codfac
denumire
adresa
nume decan
codstud
cnp
nume
prenume
1
SEAP
iasi
popescu ioan
41
2011889330195
stanciuc
mihaela
5
SEAP
iasi
ionescu ion
41
2011889330195
stanciuc
mihaela
1
SEAP
iasi
popescu ioan
42
2040389577577
scurtu
mirela
5
SEAP
iasi
ionescu ion
42
2040389577577
scurtu
mirela
1
SEAP
iasi
popescu ioan
43
1090688586575
soescu
costel
5
SEAP
iasi
ionescu ion
43
1090688586575
soescu
costel
1
SEAP
iasi
popescu ioan
44
2080488374855
onu
marinela
5
SEAP
iasi
ionescu ion
44
2080488374855
onu
marinela
1
SEAP
iasi
popescu ioan
45
2090289575555
sandu
andreea
5
SEAP
iasi
ionescu ion
45
2090289575555
sandu
andreea
7.Studentii care au avut peste media 8.
Query7
codstud
cnp
nume
prenume
codnota
codmaterie
nota
data
42
2040389577577
scurtu
mirela
32
22
9
03.07.2008
8.Ce nota are studentul X(interogare parametrica,prametrul nume)?
Query8
codnota
Note.codstud
codmaterie
nota
StudPersonal.codstud
Expr1005
nume
prenume
31
41
21
8
41
stanciuc
stanciuc
mihaela
9.Profesorul care preda la disciplina matematica(interogare parametrica,parametrul materie).
Query9
numeprofesor
macovei
10.Care sunt studentii nascuti in Iasi?
Query10
codstud
cnp
nume
prenume
data_n
loc_n
tata
mama
adresa
codfac
an
grupa
media
45
2090289575555
sandu
andreea
02.09.1989
iasi
ion
mihaela
iasi
5
1
1
7
Interogari in ACCSES:
1.Afisarea a toate campurile din tabelul StudPersonal.
Accses 1
codstud
cnp
nume
prenume
data_n
loc_n
init
tata
mama
adresa
41
2011889330195
stanciuc
mihaela
18.01.1989
suceava
gh
gheorghe
veronica
suceava
42
2040389577577
scurtu
mirela
03.04.1989
suceava
d
dragos
raluca
suceava
43
1090688586575
soescu
costel
06.09.1988
botosani
n
nicolae
ana
suceava
44
2080488374855
onu
marinela
04.08.1988
suceava
v
vasile
maria
suceava
45
2090289575555
sandu
andreea
02.09.1989
iasi
i
ion
mihaela
iasi
2. Afisarea a toate campurile din tabelul StudPersonal pentru care adresa este Suceava sau Iasi.
Accses 2
codstud
cnp
nume
prenume
data_n
loc_n
init
tata
mama
adresa
41
2011889330195
stanciuc
mihaela
18.01.1989
suceava
gh
gheorghe
veronica
suceava
42
2040389577577
scurtu
mirela
03.04.1989
suceava
d
dragos
raluca
suceava
43
1090688586575
soescu
costel
06.09.1988
botosani
n
nicolae
ana
suceava
44
2080488374855
onu
marinela
04.08.1988
suceava
v
vasile
maria
suceava
45
2090289575555
sandu
andreea
02.09.1989
iasi
i
ion
mihaela
iasi
3. Afiarea numelui facultii (din tabela Facultate), numelui i prenumelui studentului (din tabela StudPers) i a grupei din care face parte, anul i media (informaii aflate n tabela Studenti) grupate pe faculti.
Accses 3
Denumire
Nume
Prenume
Grupa
An
Media
Automatica
onu
marinela
4
3
7
Electrotehnica
scurtu
mirela
2
1
9
Mecanica
soescu
costel
3
2
8
SEAP
sandu
andreea
1
1
7
SEAP
stanciuc
mihaela
1
1
8
4.Afiarea numelui facultii (din tabela Facultate), a numelui i a prenumelui studentului (din tabela StudPers) i a grupei din care face parte, anul i media (informaii aflate n tabela Studenti).
Accses 4
Denumire
Nume
Prenume
Grupa
An
Media
SEAP
stanciuc
mihaela
1
1
8
Electrotehnica
scurtu
mirela
2
1
9
Mecanica
soescu
costel
3
2
8
Automatica
onu
marinela
4
3
7
SEAP
sandu
andreea
1
1
7
5.Afiarea numelui i prenumelui studentului (din tabela StudPers) i a grupei din care face parte, anul i media (informaii aflate n tabela Studenti).
Accses 5
Nume
Prenume
Grupa
An
Media
stanciuc
mihaela
1
1
8
scurtu
mirela
2
1
9
soescu
costel
3
2
8
onu
marinela
4
3
7
sandu
andreea
1
1
7
6 si7.O cerere n dou variante: fr i apoi cu o clauz HAVING care elimin o parte din grupuri.
Accses 6
CodFac
NumarStudenti
MediaFacultatii
1
1
8
2
1
9
3
1
8
4
1
7
5
1
7
Accses 7
CodFac
NumarStudenti
MediaFacultatii
2
1
9
8.Afiarea grupat a nregistrrilor din tabela Studenti dup valoarea coloanei bursa i obinerea unui rezultat coninnd valoarea bursei, numrul de studeni avnd acea burs i suma burselor din fiecare grup.
Accses 8
Bursa
Expr1001
Expr1002
0
2
0
1400000
2
2800000
1800000
1
1800000
9. Afiarea codului facultii, codul studentului, grupa, bursa pentru studenii care au codul facultaii 1 sau 3.
Accses 9
CodFac
CodStud
Grupa
Bursa
1
41
1
1400000
3
43
3
1400000
10.Afiarea codului facultii, media, grupa pentru studenii care au media cuprins ntre 8 i 9 inclusiv.
Accses 10
CodFac
Media
Grupa
1
8
1
2
9
2
3
8
3
FORMULARE
1.Formularul studenti cu subformularul note.
2.Forularul facultate cu subformularul materii
RAPOARTE
1.Raportul care sa contina campurile:codstud,cnp,nume,prenume,data_n,adresa.
2.Raportul care sa contina campurile:codmaterie,denumire,an,numeprofesor,codstud,cnp,nume si prenume.
3.Raportul care sa contina campurile:codstud,codfac,an grupa,media,bursa si denumire.
5. Diagrama entitate-relaie
Diagrama entitate-relaie este modelul entitate-relaie reprezentat. prin mulimile de entiti i relaii dintre acestea.
Exist mai multe variante de notaii pentreu redarea acestei diagrame, astfel:
Entitate tip Entitate tip puternic
Entitate tip Entitate tip slab
Atribut Atribut
Tipul relaiilor Tipul relaiilor
Exemplu:
n continuare, se exemplific dezvoltarea modelului conceptual de nivel nalt al bazei de date .
Facultate-denumireIntre facultate si studenti-relatii de tipul 1:N
-adresa
-numedecan
Studenti-codfac
-an
Studpersonal-cnpIntre studenti si studpersonal-relatii de tipul 1:1
-mama
-tata
-data_n
-prenume
-nume
Note-notaIntre studenti si note-relatii de tipul M:N
-data
Materii-denumireIntre note si materii-relatii de tipul M:N
-an
-profesor
Construcia schemelor relaie
n proiectarea bazelor de date se definesc relaii sau asocieri ntre mulimile de entiti componente, pentru a reprezenta anumite aspecte ale realitii pe care o modeleaz baza de date.
O relaie este o coresponden ntre entiti din una sau mai multe mulimi de entiti. Gradul unei relaii este dat de numrul de mulimi de entiti asociate. Relaiile pot fi binare (ntre 2 mulimi de entiti) sau multiple (ntre mai mult de 2 entiti).
Relaiile binare sunt mprite n trei categorii, dup numrul elementelor din fiecare din cele dou mulimi puse n coresponden de relaia respectiv.
Se consider 2 mulimi de entiti E1 i E2.
Relaia unul-la-unul (1-1 sau one to one)
Relaia unul-la-unul este cel mai simplu tip de relaie. Ea este relaia prin care unui element din mulimea E1 i corespunde un singur element din mulimea E2 i reciproc.
Relaia unul-la-unul
E1 E2
E11 - r1- E21
E12 r2- E22
E13 r3- E23
Aceast relaie unul-la-unul este foarte rar folosit n lumea real. Cel mai des, ea este folosit pentru a reduce numrul de atribute dintr-o entitate, pentru a nu depi numrul maxim de cmpuri asociate pentru o tabel, acesta fiind de circa 255. Se mai
poate folosi i n cazul n care dorim desprirea elementelor fixe, a informaiilor care se modific mai rar fa de cele care se modific destul de des.Un exemplu ar fi la aplicaia pe care o proiectm noi, mprirea informaiilor despre studeni n dou entiti: informaiile personale fiind stocate n tabelul StudPersonal i informaiile care se modific de la an la an n tabela Studenti. Pentru a realiza efectiv aceast relaie trebuie introdus atributul CodStud i n tabela StudPersonal. Astfel cele dou se
transform astfel:
Studenti cu atributele: CodStud, An, Grupa, Media, Bursa
StudPersonal cu atributele: CodStud, CNP, Nume, Init,
Prenume, Data Nasterii, Loc Naterii, Tata, Mama, Adresa
Informaiile stocate aa sunt i mai uor de manipulat.
Relaia unul-la-multe (1-N sau one to many)
Aceast relaie este o relaie prin care unui element din mulimea E1 i corespund unul sau mai multe elemente din mulimea E2, dar unui element din mulimea E2 i corespunde un singur element din mulimea E1.
. Relaia unul-la-multe
O atenie sporit trebuie s avem la specificarea prilor acestui tip de relaie. Un exemplu al acestui tip de relaie din cadrul aplicaiei pe care o proiectm noi este c ntr-o facultate sunt mai muli studeni, i se precizeaz c un student aparine unei singure faculti din cadrul aceleiai universiti.
E1 E2 E1 E2 E1 E2
E11 r1-E21 E12-r2-E23 E13-r7-E26
-E22 -E24
-E27 -E25
Pentru a realiza efectiv aceast relaie trebuie introdus atributul CodFac i n tabela Studenti. Astfel cele dou se transform astfel:
Facultate cu atributele: CodFac, Denumire, Adresa, Nume Decan
Studenti cu atributele: CodStud, CodFac, An, Grupa, Media, Bursa
Observaie: Dac se aduga atributul CodStud n tabela Facultate, se pstrau date redundante n aceast tabel, adic pentru fiecare student al facultii trebuiau pstrate informaii referitoare la facultate: denumirea ei, adresa, numele decanului, etc.
Relaia multe-la-multe (M-N sau many to many)
Aceast relaie este o relaie prin care unui element din mulimea E1 i corespund unul sau mai multe elemente din mulimea E2, i reciproc.
Relaia multe-la-multe
E1 E2 E1 E2 E1 E2 E1 E2
E11-r1-E21 E12-r3-E23E13-r4-E24E14-r5-E25
r2-E22 r5-E25 r6 -E26 r7-E27
Acest tip de relaie este foarte des ntlnit, dar nu poate fi implementat n bazele de date relaionale. De fapt, pentru modelarea acestei relaii se folosete o relaie suplimentar, de tip unul-la-multe pentru fiecare din relaiile iniiale.
Un exemplu al acestui tip de relaie din cadrul aplicaia pe care o proiectm noi este c un student particip la mai multe materii, cursuri, iar o materie este frecventat de mai muli
studeni. Pentru a soluiona aceast problem am introdus o tabel suplimetar numit Note, care va face legtura ntre tabelele Materii i Studeni. Tabelele iniiale se modific astfel:
Studenti cu atributele: CodStud, CodFac, An, Grupa,
Media, Bursa
Materii cu atributele: CodMaterie, Denumire, An, NumeProfesor
Note cu atributele: CodStud, CodMaterie, Nota, Data
Prin introducerea atributului Data n tabela Note s-a soluionat problema care apare atunci cnd un student trebuie s fie examinat de mai multe ori pn la promovarea materiei
respective.
Relaia unar
Toate relaiile prezentate anterior sunt relaii binare, avnd cte dou relaii implicate. Relaiile unare folosesc doar o singur relaie, aceasta fiind asociat cu ea nsi.
Relaia unar
E1 E1-E2-E3-E4-r1
Exemplul clasic al acestei relaii unare este cazul
managerului unei companii, care la rndul su este tot un angajat
al acelei companii.Relatiile unare se modeleaza la fel ca si relatiile binare.
6.Limbajul standard SQL
Scurt istoric al limbajului SQL
SQL a fost conceput ca un limbaj standard de descriere a datelor i acces la informaiile din bazele de date, ulterior dezvoltndu-se ca o adevrat tehnologie dedicat arhitecturilor client-server. Utilizat iniial de ctre firma IBM pentru produsul DB2,
limbajul de interogare al bazelor de date relaionale SQL a devenit la mijlocul deceniului trecut un standard n domeniu. De atunci i pn n prezent au fost dezvoltate un numr de 7 versiuni ale standardului SQL, trei dintre acestea aparinnd Institutului Naional American de Standarde (ANSI), celelalte fiind concepute de firme de prestigiu ca IBM, Microsoft, Borland, sau de ctre consoriile industriale SAG (The SQL Access Group) i X/Open, primul format din sute de firme ce comercializeaz software pentru baze de date, iar cel din urm orientat spre activiti de promovare a standardelor n domeniul sistemelor deschise. Din pcate, lipsa unui standard unic SQL are drept consecine creterea costurilor programelor de gestiune a bazelor de date i ngreuneaz ntreinerea arhitecturilor client/server. Termenul SQL reprezint o prescurtare a Structured Query
Language. Comenzile principale n cazul limbajului SQL se refer la cele cinci operaii de baz care se pot efectua ntr-un limbaj relaional:
Crearea/tergerea unei tabele
Inserarea de noi linii intr-o tabel
tergerea unor linii dintr-o tabel
Modificarea unor linii dintr-o tabel
Listarea selectiv a datelor din una sau mai multe tabele
Crearea unei tabele
Comanda de creare de noi tabele n baza de date curent n limbajul SQL standard este CREATE TABLE. Cea de-a doua metod de creare a tabelelor, mai exact metoda grafic este i cea mai des folosit de toi utilizatorii. Pentru a crea o tabel n modul Design se face opiunea:
.
Va aprea o fereastr n care trebuie completat denumirea cmpului, tipul de date asociat cmpului respective i dac exist observaii. Vom exemplifica dect crearea tabelei Facultate. Dup completarea denumirii cmpurilor n zona Field Name i a tipurilor de date n zona Data Type vom seta cheia primar. Acest lucru se face poziionndu-ne cu cursorul de la mouse pe partea din stnga cmpului corespunztor cheii primare (n cazul nostrum CodFac), se apas clic dreapta i se face opiunea Primary Key.
Se salveaz tabela cu un nume dat de utlizator.
Salvarea unei tabele
O tabel se salveaz cu opiunea Save din meniul File, sau printr-un clic pe simbolul din bara de instrumente. Va aprea un mesaj pentru confirmarea salvrii tabelei.
Aceeai pai trebuie urmai i pentru celelalte tabele.
n final, partea de obiecteTables va arta astfel:
tergerea unei tabele
tergerea unei tabele se face cu comanda DROP TABLE.
Sintaxa acestei comenzi n limbajul SQL standard este:
DROP TABLE nume_tabel
Exemplu:
tergerea tabelei Note se face astfel:
drop table Note;
tergerea unei tabele n modul grafic se face astfel: ne poziionm n obiectul Tables, unde sunt afiate toate tabelele din baza de date, apsm clic dreapta de la mouse pe tabelul dorit pentru tergere i facem opiunea Delete.
Va aprea un mesaj de confirmare:
Se va apsa butonul Yes dac se dorete ntr-adevr tergerea tabelei sau se apas butonul No dac se dorete revenirea asupra operaiei de tergere.
Modificarea unor linii dintr-o tabel
Efectul acestei comenzi este de actualizare a toturor liniilor care ndeplinesc condiia din clauza WHERE, sau a tuturor liniilor din tabel, n cazul n care lipsete aceast clauz. Noile valor sunt date de clauza SET.
Limbajul de cereri n SQL
Regsirea datelor din una sau mai multe tabele se face cu comanda SELECT. Sintaxa simplificat a acesteia este:
SELECT [DISTINCT] lista_rezultat
FROM tabela sau tabele
[WHERE conditie]
[GROUP BY coloana1, coloana2.]
[HAVING conditie_de_grup]
[ORDER BY coloana1 [ASC|DESC],]
Dup cum se observ doar clauzele SELECT i FROM sunt
obligatorii, celelalte reprezentnd opiuni.
Cereri simple
Cea mai simpl cerere este cea prin care se regsesc toate
informaiile dintr-o tabel. n acest caz, simbolul * plasat lng
clauza SELECT ine loc de lista tuturor coloanelor unei tabele.
Clauza FROM conine numele tabelei.
Bibliografie
Crstoiu, Dorin, Baze de date relaionale, Editura Printech,1999
Ionescu, Felicia, Baze de date relaionale i aplicaii,Editura Tehnic, 2004
Browne, Allen, Balter Alison, Bazele Access 95, EdituraTeora, 1999
Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic,1994
PAGE