32
Baze de date

Gestiunea Bazelor de Date

Embed Size (px)

DESCRIPTION

Date

Citation preview

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 dateSe 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 estevizibil 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 aplicatieiIn 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 rapoarteINTEROGARI1.Studentii a caror nume incep cu litera S.

Query1

codstudcnpnumeprenumedata_nloc_ntatamama

452090289575555sanduandreea02.09.1989iasiionmihaela

422040389577577scurtumirela03.04.1989suceavadragosraluca

431090688586575soescucostel06.09.1988botosaninicolaeana

412011889330195stanciucmihaela18.01.1989suceavagheorgheveronica

2.Afisati datele studentului Soescu (interogare parametrica,parametrul nume).Query2

codstudcnpnumeprenumedata_nloc_ntatamamaadresa

452090289575555sanduandreea02.09.1989iasiionmihaelaiasi

3.Studentii nascuti in luna 01(interogare parametrica).Query3

codstudcnpnumeprenumedata_nloc_ntatamamaadresa

412011889330195stanciucmihaela18.01.1989suceavagheorgheveronicasuceava

4.Studentii din Suceava care au bursa peste 1000000 lei.

Query4

codstudcodfacangrupamediabursacnpnumeprenumedata_nloc_ntatamamaadresa

41111814000002011889330195stanciucmihaela18.01.1989suceavagheorgheveronicasuceava

42212918000002040389577577scurtumirela03.04.1989suceavadragosralucasuceava

43323814000001090688586575soescucostel06.09.1988botosaninicolaeanasuceava

5 Studentii cu varsta peste 18 ani.

Query5

codstudcnpprenumenumedata_nloc_ntatamamaadresavarsta

412011889330195mihaelastanciuc18.01.1989suceavagheorgheveronicasuceava19

422040389577577mirelascurtu03.04.1989suceavadragosralucasuceava19

431090688586575costelsoescu06.09.1988botosaninicolaeanasuceava20

442080488374855marinelaonu04.08.1988suceavavasilemariasuceava20

452090289575555andreeasandu02.09.1989iasiionmihaelaiasi19

6.Studentii de la facultatea SEAP.

Query6

codfacdenumireadresanume decancodstudcnpnumeprenume

1SEAPiasipopescu ioan412011889330195stanciucmihaela

5SEAPiasiionescu ion412011889330195stanciucmihaela

1SEAPiasipopescu ioan422040389577577scurtumirela

5SEAPiasiionescu ion422040389577577scurtumirela

1SEAPiasipopescu ioan431090688586575soescucostel

5SEAPiasiionescu ion431090688586575soescucostel

1SEAPiasipopescu ioan442080488374855onumarinela

5SEAPiasiionescu ion442080488374855onumarinela

1SEAPiasipopescu ioan452090289575555sanduandreea

5SEAPiasiionescu ion452090289575555sanduandreea

7.Studentii care au avut peste media 8.

Query7

codstudcnpnumeprenumecodnotacodmaterienotadata

422040389577577scurtumirela3222903.07.2008

8.Ce nota are studentul X(interogare parametrica,prametrul nume)?Query8

codnotaNote.codstudcodmaterienotaStudPersonal.codstudExpr1005numeprenume

314121841stanciucstanciucmihaela

9.Profesorul care preda la disciplina matematica(interogare parametrica,parametrul materie).Query9

numeprofesor

macovei

10.Care sunt studentii nascuti in Iasi?Query10

codstudcnpnumeprenumedata_nloc_ntatamamaadresacodfacangrupamedia

452090289575555sanduandreea02.09.1989iasiionmihaelaiasi5117

Interogari in ACCSES:1.Afisarea a toate campurile din tabelul StudPersonal.Accses 1

codstudcnpnumeprenumedata_nloc_ninittatamamaadresa

412011889330195stanciucmihaela18.01.1989suceavaghgheorgheveronicasuceava

422040389577577scurtumirela03.04.1989suceavaddragosralucasuceava

431090688586575soescucostel06.09.1988botosaninnicolaeanasuceava

442080488374855onumarinela04.08.1988suceavavvasilemariasuceava

452090289575555sanduandreea02.09.1989iasiiionmihaelaiasi

2. Afisarea a toate campurile din tabelul StudPersonal pentru care adresa este Suceava sau Iasi. Accses 2

codstudcnpnumeprenumedata_nloc_ninittatamamaadresa

412011889330195stanciucmihaela18.01.1989suceavaghgheorgheveronicasuceava

422040389577577scurtumirela03.04.1989suceavaddragosralucasuceava

431090688586575soescucostel06.09.1988botosaninnicolaeanasuceava

442080488374855onumarinela04.08.1988suceavavvasilemariasuceava

452090289575555sanduandreea02.09.1989iasiiionmihaelaiasi

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

DenumireNumePrenumeGrupaAnMedia

Automaticaonumarinela437

Electrotehnicascurtumirela219

Mecanicasoescucostel328

SEAPsanduandreea117

SEAPstanciucmihaela118

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

DenumireNumePrenumeGrupaAnMedia

SEAPstanciucmihaela118

Electrotehnicascurtumirela219

Mecanicasoescucostel328

Automaticaonumarinela437

SEAPsanduandreea117

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

NumePrenumeGrupaAnMedia

stanciucmihaela118

scurtumirela219

soescucostel328

onumarinela437

sanduandreea117

6 si7.O cerere n dou variante: fr i apoi cu o clauz HAVING care elimin o parte din grupuri.Accses 6

CodFacNumarStudentiMediaFacultatii

118

219

318

417

517

Accses 7

CodFacNumarStudentiMediaFacultatii

219

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

BursaExpr1001Expr1002

020

140000022800000

180000011800000

9. Afiarea codului facultii, codul studentului, grupa, bursa pentru studenii care au codul facultaii 1 sau 3.Accses 9

CodFacCodStudGrupaBursa

14111400000

34331400000

10.Afiarea codului facultii, media, grupa pentru studenii care au media cuprins ntre 8 i 9 inclusiv.

Accses 10

CodFacMediaGrupa

181

292

383

FORMULARE1.Formularul studenti cu subformularul note.2.Forularul facultate cu subformularul materiiRAPOARTE

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-relaieDiagrama 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

-numedecanStudenti-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 -dataMaterii-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-unulE1 E2E11 - r1- E21E12 r2- E22E13 r3- E23Aceast 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 E2E11 r1-E21 E12-r2-E23 E13-r7-E26

-E22 -E24-E27 -E25Pentru 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-multeE1 E2 E1 E2 E1 E2 E1 E2E11-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 unarE1 E1-E2-E3-E4-r1Exemplul 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 tabeleCrearea 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 tabelEfectul 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_rezultatFROM 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.

BibliografieCrstoiu, Dorin, Baze de date relaionale, Editura Printech,1999

Ionescu, Felicia, Baze de date relaionale i aplicaii,Editura Tehnic, 2004Browne, Allen, Balter Alison, Bazele Access 95, EdituraTeora, 1999

Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic,1994PAGE