Sunteți pe pagina 1din 138

Proiect cofinanat din Fondul Social European prin Programul Operaional Sectorial Dezvoltarea Resurselor Umane 2007-2013 Investete

n oameni!

Formarea profesional a cadrelor didactice din nvmntul preuniversitar pentru noi oportuniti de dezvoltare n carier

BAZE DE DATE I UTILIZAREA ACESTORA


Adriana OLTEANU Radu Nicolae PIETRARU Ana Magdalena ANGHEL

Program de conversie profesional la nivel postuniversitar pentru cadrele didactice din nvmntul preuniversitar Specializarea TEHNOLOGIA INFORMAIEI I COMUNICRII Forma de nvmnt ID - semestrul II

2011

2011

Acest manual a fost elaborat n cadrul "Proiectului pentru nvmntul Rural", proiect co-finanat de ctre Banca Mondial, Guvernul Romniei i comunitile locale. Nici o parte a acestei lucrri nu poate fi reprodus fr acordul scris al Ministerului Educaiei, Cercetrii, Tineretului i Sportului.

ISBN 973-0-04103-2

Baze de date i utilizarea acestora

BAZE DE DATE I UTILIZAREA ACESTORA


Cuprins
INTRODUCERE UNITATEA DE INVARE NR. 1 - Problematica organizrii informaiilor n mediul electronic Obiectivele unitii de nvare nr. 1 1.1. Introducere 1.2. Ce este o baz de date? 1.3. Clasificarea sistemelor de baze de date 1.3.1. Clasificare dup modelul de date 1.3.2. Clasificare dup numrul de utilizatori 1.3.3. Clasificare este cea dup numrul de staii pe care este stocat baza de date 1.4. Securitatea i protecia datelor in bazele de date Lucrare de verificare a cunotinelor Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Bibliografie UNITATEA DE INVARE NR. 2 Sistemul de baze de date. Concepte i arhitectur Obiectivele unitii de nvare nr. 2 2.1. Componentele unui sistem de baze de date 2.1.1.Hardware 2.1.2.Software 2.1.3.Utilizatorii 2.1.4. Date persistente 2.2. Arhitectura intern a sistemlor de baze de date. Modele de date, scheme i instane 2.3. Independena datelor 2.4.Limbaje SGBD 2.5.Interfee SGBD Interfee bazate pe meniuri Interfee grafice 14 14 14 15 16 16 17 2 2 3 5 5 7 8 Pagina vi

8 10 11 12

19 20 21

Baze de date i utilizarea acestora

Interfee bazate pe forme Interfee n limbaj natural Interfee specializate aferente cererilor repetate Interfee pentru administratorii bazelor de date 2.6. Exemple de SGBD Lucrare de verificare a cunotinelor Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Biblliografie UNITATEA DE INVARE NR. 3 Proiectarea bazelor de date Obiectivele unitii de nvare nr. 3 3.1. Ce este proiectarea? 3.2. Modelul entitate-relaie. Obiectele bazelor de date relaionale Tabel (relaie) Cmp (atribut) nregistrare (nuplu) 3.3. Construcia schemelor relaie 3.3.1. Relaia unul-la-unul (1-1 sau one to one) 3.3.2. Relaia unul-la-multe (1-N sau one to many) 3.3.3. Relaia multe-la-multe (M-N sau many to many) 3.3.4. Relaia unar 3.4. Diagrama entitate-relaie 3.5. Constrngeri de integritate 3.5.1. Constrngerile de domeniu 3.5.2. Constrngerile referitoare la n-upluri (nregistrrile din tabel)Cheia primar 3.5.3. Constrngeri ntre relaii 3.6. Dependene funcionale 3.7. Normalizare. Forme normale. 3.7.1. Forma normal de ordin 1 (FN1) 3.7.2. Forma normal de ordin 2 (FN2) 3.7.3. Forma normal de ordin 3 (FN3) 3.7.4. Forma normal Boyce-Codd (FNBC) 3.8. Structuri de indeci n tabelele de date 3.8.1. Indexul primar 3.8.2. Indexul secundar 3.8.3. Indexul de grup 3.8.4. Indexul multinivel ii 28 29 32 22 24 25 27

34 34 35 36 37 38 39 40 41 41 44 44 45 46 46 47 48 50 51 52 53

Baze de date i utilizarea acestora

Lucrri de verificare a cunotinelor Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Biblliografie UNITATEA DE INVARE NR. 4 Un limbaj pentru bazele de date relaionale (SQL) Obiectivele unitii de nvare nr. 4 4.1. Introducere 4.1.1. Deschiderea i nchiderea aplicaiei Microsoft Access 4.1.2. Crearea unei baze de date noi 4.1.3. nchiderea unei baze de date 4.2. Tipuri de date MICROSOFT Access 4.3. Operatorii logici 4.4. Limbajul standard SQL 4.4.1. Scurt istoric al limbajului SQL 4.4.2. Crearea unei tabele 4.4.3. Salvarea unei tabele 4.4.4. tergerea unei tabele 4.4.5.Modificarea structurii unei tabele 4.5.Modificarea datelor n SQL 4.5.1. Inserarea de noi linii ntr-o tabel 4.5.2. tergerea unor linii dintr-o tabel 4.5.3. Modificarea unor linii dintr-o tabel 4.6. Limbajul de cereri n SQL 4.6.1. Cereri simple Expresii aritmetice Alias de coloan Constante (literali) 4.6.2. Clauza DISTINCT 4.6.3.Clauza ORDER BY 4.6.4. Clauza WHERE Operatorul BETWEEN Operatorul IN Operatorul IS NULL Operatorul LIKE 4.6.5. Funcii de grup 4.6.6. Clauza GROUP BY 4.6.7. Clauza HAVING 4.6.8. Cereri coninnd mai multe tabele Lucrri de verificare a cunotinelor

55 56 57

61 62 62 63 63 64 66 68 68 69 72 73 74 74 74 75 77 79 79

84 85 86

90 92 93 94 99 iii

Baze de date i utilizarea acestora

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Biblliografie UNITATEA DE INVARE NR. 5 Construirea interfeelor cu ajutorul formularelor n Microsoft Access Obiectivele unitii de nvare nr. 5 5.1. Ce este un formular? 5.2. Lucrul cu formularele 5.2.1. Deschiderea unui formular 5.2.2. Crearea unui formular 5.2.3. Utilizarea unui formular pentru a introduce i a modifica date n tabel 5.2.4. Parcurgerea nregistrrilor utiliznd formularele 5.2.5. Adugarea i modificarea textului n antet i subsol 5.2.6. tergerea unui formular 5.3. Salvarea i nchiderea unui formular Lucrare de verificare a cunotinelor Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Bibliografie UNITATEA DE INVARE NR. 6 Rapoarte n Microsoft Access Obiectivele unitii de nvare nr. 6 6.1. Ce este un raport? 6.2. Lucrul cu rapoarte 6.2.1. Deschiderea unui raport 6.2.2. Crearea unui raport 6.2.3. Adugarea i modificarea textului n antet i subsol 6.2.4. tergerea unui raport 6.3. Salvarea i nchiderea unui raport Lucrare de verificare a cunotinelor Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Biblliografie

101

102

104 105 105 105 105 109 110 110 112 112 113 114 114

116 117 117 117 117 123 125 125 125 127 127

iv

Introducere

BAZE DE DATE I UTILIZAREA ACESTORA


INTRODUCERE
Stimate cursant, nc de la nceput doresc s i urez bun venit la studiul cursului destinat studierii bazelor de date i utilizrii acestora. Acest curs se adreseaz att cursanilor cu un grad mai mare de familiarizare cu universul gestionrii datelor, ct i cursanilor nceptori. Acest curs este un curs introductiv n proiectarea i utilizarea bazelor de date. Exist totui anumite cunotine legate de utilizarea calculatorului necesare parcurgerii acestui curs, cum ar fi: cunoaterea modalitii de organizare i manipulare a informaiei n format electronic, operaii de baz privind sistemul de operare Microsoft Windows i utilizarea tastaturii PC standard i a mouse-ului. Manualul de fa este organizat n 6 uniti de nvare, fiecare dintre aceste uniti coninnd o parte de prezentare teoretic a subiectului tratat, o parte de exemple, teste de autoevaluare i rezolvrile acestora, precum i lucrri de verificare a cunotinelor. Cele 6 uniti de nvare sunt prezentate gradat, ncepnd cu noiuni introductive despre baze de date, clasificarea lor, pn la concepte ale bazelor de date, proiectarea bazelor de date, folosirea limbajului de interogare a bazelor de date. La finalul manualului vom studia mpreun construirea interfeelor i realizarea rapoartelor n mediul Microsoft Access. La nceputul fiecrei uniti de nvare vor fi detaliate obiectivele propuse n respectiva unitate. n cadrul fiecrei uniti de nvare exist cte o lucrare de verificare, care cuprinde mai multe ntrebri. Lucrrile de verificare sunt poziionate la sfritul fiecrei uniti de nvare, rezolvarea problemelor propuse din lucrrile de verificare fiind asemntoare cu cea din exemple din cadrul unitii de nvare respective. n cadrul fiecrei uniti de nvare exist teste de autoevaluare, acestea fiind necesare pentru a fixa cunotinele dobndite n fiecare capitol i pentru a permite evaluarea continu a cursantului. Rspunsurile la testele de evaluare se vor completa n spaiile speciale din cadrul manualului. De-a lungul modulului Baze de date i utilizarea acestora exist 22 de teste de autoevaluare, care cuprind 28 de ntrebri i 6 lucrri de verificare a cunotinelor, care cuprind 43 de probleme. Problemele din testele de autoevaluare sunt punctate cu 0,5 puncte, fiind considerate evaluare pe parcurs, iar cele din lucrrile de verificare

Introducere

sunt punctate cu 2 puncte, aceste puncte fiind considerate evaluare final, astfel: -n unitatea 1 sunt 4 ntrebri n testele de autoevaluare, deci se obin 2 puncte i 2 ntrebri la lucrarea de verificare unde se obin 4 puncte. -n unitatea 2 sunt 7 ntrebri n testele de autoevaluare, deci se obin 3,5 puncte i 1 ntrebare la lucrarea de verificare unde se obin 2 puncte. -n unitatea 3 sunt 7 ntrebri n testele de autoevaluare, deci se obin 3,5 puncte i 6 ntrebri la lucrarea de verificare unde se obin 12 puncte. -n unitatea 4 sunt 4 ntrebri n testele de autoevaluare, deci se obin 2 puncte i 27 ntrebri la lucrarea de verificare unde se obin 54 puncte. -n unitatea 5 sunt 3 ntrebri n testele de autoevaluare, deci se obin 1,5 puncte i 3 ntrebri la lucrarea de verificare unde se obin 6 puncte. -n unitatea 6 sunt 3 ntrebri n testele de autoevaluare, deci se obin 1,5 puncte i 4 ntrebri la lucrarea de verificare unde se obin 8 puncte. nsumate punctele obinute de cursani de-a lungul semestrului sunt 100. Lucrrile de verificare vor fi transmise tutorelui modulului ntr-un fiier separat. Bibliografia minimal a acestui modul este: Crstoiu, Dorin, Baze de date relaionale, Editura Printech, 1999 Rdulescu, Florin, Baze de date n Internet, Editura Printech, 2000 Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii i 75 de simulri, Editura Andreco, 2003 Browne, Allen, Balter Alison, Bazele Access 95, Editura Teora, 1999 Pribeanu, Costin, Baze de date i aplicaii, Editura MatrixRom, 2000 Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic, 1994 Bibliografia este prezentat i la sfritul fiecrei uniti de nvare n cazul n care nu vei reui s rezolvai problemele propuse trebuie recitite zonele de text care apar nainte de lucrarea de verificare. n sperana c nu vor exista probleme v urm: Spor la treab! Autorii vi

Problematica organizrii informaiilor n mediul electronic

Unitatea de nvare Nr. 1


PROBLEMATICA ORGANIZRII INFORMAIILOR N MEDIUL ELECTRONIC

Cuprins Obiectivele unitii de nvare nr. 1 1.1. Introducere 1.2. Ce este o baz de date? 1.3. Clasificarea sistemelor de baze de date 1.3.1. Clasificare dup modelul de date 1.3.2. Clasificare dup numrul de utilizatori 1.3.3. Clasificare este cea dup numrul de staii pe care este stocat baza de date 1.4. Securitatea i protecia datelor in bazele de date Lucrare de verificare a cunotinelor Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Biblliografie

Pagina 2 2 3 5 5 7 8

8 10 11 12

Problematica organizrii informaiilor n mediul electronic

OBIECTIVELE unitii de nvare nr. 1 Principalele obiective ale unitii de nvare nr. 1 sunt: Dup studiul unitii de nvare nr. 1 vei fi capabil s demonstrezi c ai dobndit cunotine suficiente pentru a nelege: de ce sunt importante n viaa de zi cu zi bazele de date n ce companii se folosesc bazele de date ce categorii de operaii se pot realiza asupra datelor din baza de date ce reprezint efectiv o baz de date ce avantaje i ofer utilizarea bazelor de date clasificarea bazelor de date care sunt caracteristicile fiecrui model de baze de date de ce este important protecia i securizarea datelor din baza de date diferite moduri de protejare a datelor

1.1. Introducere
n ultimii ani, dezvoltarea sistemelor de baze de date reprezint unul dintre cele mai importante aspecte n domeniul tehnologiei informaiei, avnd un impact decisiv asupra modului de organizare i funcionare a numeroaselor instituii i servicii. Acestea sunt companiile de comunicaie, intreprinderile de comer, serviciile bancare, serviciile de transport, asigurrile, universitile etc. Acestea sunt dependente de funcionarea corect i nentrerupt a sistemelor de baze de date. Sistemele de baze de date sunt o component important a vieii de zi cu zi n societatea modern. Zilnic, majoritatea persoanelor desfoar activiti care implic interaciunea cu o baz de date: depunerea sau extragerea unei sume de bani din banc, rezervarea biletelor de tren sau de avion, cutarea unei cri ntr-o bibliotec computerizat, gestiunea angajailor dintr-o firm, cumprarea unor produse etc. Bazele de date pot avea mrimi (numr de nregistrri) i complexiti extrem de variate, de la cteva zeci de nregistrri (de exemplu, baza de date pentru o agend de telefon a unei persoane) 2

Problematica organizrii informaiilor n mediul electronic

sau pot ajunge la milioane de nregistrri (de exemplu, baza de date pentru crile dintr-o bibliotec, baza de date cu stocarea angajailor unei firme sau baza de date unde se pstreaz informaii despre situaia studenilor etc). Marea majoritate a sistemelor de baze de date existente n momentul de fa sunt relaionale i exist un numr mare de astfel de sisteme comerciale care pot fi achiziionate i folosite pentru propriile dezvoltri. Modelul relaional de baze de date a fost introdus n anul 1970 de ctre E.F.Codd. o Utilizatorii unei baze de date au posibilitatea s efectueze mai multe categorii de operaii asupra datelor stocate aici: Introducerea de noi date (insert) tergerea unor date existente n baza de date(delete) Actualizarea datelor stocate(update) Interogarea bazei de date (query) pentru regsirea anumitor informaii, selectate dup un criteriu ales. Test de autoevaluare 1. De ce sunt importante bazele de date?

1. 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 contextul 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. 3

Problematica organizrii informaiilor n mediul electronic

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.

Problematica organizrii informaiilor n mediul electronic

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.

Test de autoevaluare 2. Dai o definiie a bazelor de date?

1. 3. Clasificarea sistemelor de baze de date


Se pot lua n considerare mai multe criterii de clasificare ale sistemelor de baze de date. 1.3.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 condus 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 5

Problematica organizrii informaiilor n mediul electronic

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 6

Problematica organizrii informaiilor n mediul electronic

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 realiza aplicaiile necesare. 1.3.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 7

Problematica organizrii informaiilor n mediul electronic

redus de sisteme monoutilizator, adic suport accesul doar al unui utilizator (la un moment dat). 1.3.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. Test de autoevaluare 3. Facei o clasificare a bazelor de date?

1.4. Securitatea i protecia datelor in bazele de date


Prin protecia i securitatea datelor se nelege totalitatea mijloacelor, metodelor i a mecanismelor destinate prevenirii distrugerii, modificrii sau folosirii neautorizate a informaiei protejate. Referitor la protecia i securitatea datelor, n literatura de specialitate se definesc urmtoarele concepte de baz: Securitatea datelor totalitatea msurilor de protecie mpotriva distrugerii accidentale sau intenionate, a modificrii neautorizate sau a divulgrii acestora Caracterul secret este un concept ce se aplic la un individ sau organizaie i const n dreptul acestora de a decide ce informaii se pot folosi n comun i n ce condiii Confidenialitatea se aplic la date i se refer la statutul acordat, acesta reprezentnd nivelul sau gradul de protecie ce trebuie acordat informaiei respective

Problematica organizrii informaiilor n mediul electronic

Integritatea se refer la restricia ca sensul datelor s nu difere fa de cel nscris pe documentul surs, impunnd totodat ca datele s nu fie alterate accidental sau voit.

Noiunile de mai sus sunt strns legate ntre ele, msurile pariale se suprapun i se acoper reciproc. Securitatea i protecia datelor din baza de date constituie un domeniu foarte vast, care prezint dou aspecte principale: pe de o parte, elementele legale i etice privind drepturile de acces la anumite informaii, iar pe de alt parte, elementele legate de organizarea sistemelor informatice din punct de vedere al posibilitilor de acces la datele stocate. Unele informaii care exist n baza de date sunt strict private i nu pot fi accesate legal de ctre persoane neautorizate. Diferite reglementri guvernamentale sau legi existente n majoritatea rilor stabilesc ce informaii privind activitatea instituiilor sau a persoanelor pot fi fcute publice i n ce condiii. La nivelul sistemelor informatice se pot diferenia aspecte de securitate la nivel fizic (hardware), la nivelul sistemului de operare i la nivelul sistemului de gestiune al bazei de date. n principal, de problemele de protecie i securitate este responsabil administratorul bazei de date, care are un cont privilegiat n sistemul de gestiune (numit n general cont de sistem - system account) care prevede capabiliti foarte puternice, pe care alte conturi sau utilizatori nu le au. Prin intermediul contului de sistem administratorul bazei de date poate efectua mai multe operaii: crearea conturilor, acordarea sau retragerea privilegiilor, etc. Orice persoan care dorete s se conecteze (log in) la o baz de date trebuie s dein un cont (account, user) i o parol (password). Sistemul de gestiune verific contul i parola i autentific acel utilizator, dac acestea sunt corecte. Programele de aplicaii sunt considerate de asemenea utilizatori i se conecteaz pe un anumit cont i trebuie s furnizeze parola acestuia. O alt tehnic de protecie i securitate a datelor este criptarea datelor (Data Encryption), prin care datele importante sunt codate folosind diferii algoritmi de codare, mai ales atunci cnd sunt transmise prin intermediul reelelor de comunicaie. Interpretarea datelor criptate este dificil dac nu este cunoscut cheia (cifrul) de codare. n felul acesta numai utilizatorii autorizai care dein cheile de decriptare pot interpreta cu uurin aceste date.

Problematica organizrii informaiilor n mediul electronic

O alt tehinc se securizare a bazei de date pentru aplicaiile web ar fi instalarea unui firewall, acesta fiind un calculator pe care este instalat un software special care permite accesarea calculatorului pe care este stocat baza de date numai de ctre anumite calculatoare. Deci, prin securitatea bazei de date se nelege o multitudine de msuri destinate proteciei informaiilor coninute n baza de date mpotriva unor alterri, distrugeri sau divulgri neautorizate. Test de autoevaluare 4. Specificai anumite tehnici de protecie a bazelor de date.

Lucrare de verificare a cunotinelor 1. Spunei cteva avantaje ale faptului c datele se pstreaz i se manipuleaz mai bine stocate n format electronic.

2. Descriei n cteva cuvinte de ce este important s protejm datele.

10

Problematica organizrii informaiilor n mediul electronic

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare ntrebarea 1. Bazele de date sunt importante deoarece n cursul unei zile majoritatea persoanelor desfoar activiti care implic interaciunea cu o baz de date: depunerea sau extragerea unei sume de bani din banc, rezervarea biletelor de tren sau de avion, cutarea unei cri ntr-o bibliotec computerizat, gestiunea angajailor dintr-o firm, cumprarea unor produse etc. ntrebarea 2. O baz de date este o colecie centralizat de date n scopul optimizrii prelucrrii acestora n contextul unui set dat de aplicaii. Operaiile care se pot realiza asupra datelor dintr-o baz de date sunt de inserare a unor date noi, de modificare a datelor existente, de tergere a datelor sau de crearea a unor interogri pentru regsirea unor informaii dup un anumit criteriu. ntrebarea 3. O scurt clasificare a bazelor de date este urmtoarea: Clasificare dup modelul de date o Model de date relaional o Model de date orientat obiect o Model de date obiect-relaional o Model de date ierarhic o Model de date reea Clasificare dup numrul de utlizatori o Baze de date multiutilizator o Baze de date monoutlizator Clasificare dup numrul de staii pe care este stocat baza de date o Sisteme de baze de date centralizate o Sisteme de baze de date distribuite ntrebarea 4. Securitatea i protecia datelor din baza de date prezint dou aspecte principale: pe de o parte, elementele legale i etice privind drepturile de acces la anumite informaii, iar pe de alt parte, elementele legate de organizarea sistemelor informatice din punct de vedere al posibilitilor de acces la datele stocate. Dou din tehnicile de securizare i protecie a datelor din baza de date sunt: crearea de conturi de utlizatori cu anumite drepturi pentru fiecare utilizator n parte de ctre administratorul bazei de date i criptarea datelor. Mai exist i alte tehnici n funcie de tipul aplicaiei. 11

Problematica organizrii informaiilor n mediul electronic

Bibliografie:
Crstoiu, Dorin, Baze de date relaionale, Editura Printech, 1999 Rdulescu, Florin, Baze de date n Internet, Editura Printech, 2000 Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii i 75 de simulri, Editura Andreco, 2003 Browne, Allen, Balter Alison, Bazele Access 95, Editura Teora, 1999 Pribeanu, Costin, Baze de date i aplicaii, Editura MatrixRom, 2000 Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic, 1994

12

Sistemul de baze de date concepte i arhitectur

Unitatea de nvare Nr. 2


SISTEMUL DE BAZE DE DATE CONCEPTE I ARHITECTUR
Cuprins Obiectivele unitii de nvare nr. 2 2.1. Componentele unui sistem de baze de date 2.1.1.Hardware 2.1.2.Software 2.1.3.Utilizatorii 2.1.4. Date persistente 2.2. Arhitectura intern a sistemlor de baze de date. Modele de date, scheme i instane 2.3. Independena datelor 2.4.Limbaje SGBD 2.5.Interfee SGBD Interfee bazate pe meniuri Interfee grafice Interfee bazate pe forme Interfee n limbaj natural Interfee specializate aferente cererilor repetate Interfee pentru administratorii bazelor de date 2.6. Exemple de SGBD Lucrare de verificare a cunotinelor Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Biblliografie Pagina 14 14 14 15 16 16 17

19 20 21

22 24 25 27

13

Sistemul de baze de date concepte i arhitectur

n unitatea de nvare nr. 1 am realizat o scurt introducere n acest amplu domeniu al bazelor de date. Am adus n discuie unde se folosesc bazele de date, am prezentat o clasificare a sistemelor de baze de date i am dorit s subliniez importana securizrii bazelor de date i a proteciei datelor stocate n bazele de date n aceast unitate de nvare vom descrie mai n detaliu ce este un sistem de baze de date i n ce const el. OBIECTIVELE unitii de nvare nr. 2 Principalele obiective ale unitii de nvare nr. 2 sunt: Dup studiul unitii de nvare nr. 2 vei fi capabil s demonstrezi c ai dobndit cunotine suficiente pentru a nelege: ce este un sistem de baze de date care sunt componentele unui sistem de baze de date care sunt tipurile de utilizatori de baze de date care este arhitectura intern a unui sistem de baze de date care este independena fizic i cea logic a datelor din baza de date care sunt limbajele pentru sistemele de gestiune a bazelor de date care sunt interfeele corespunztoare fiecrui tip de utilizator cteva exemple de sisteme de baze de date

2.1. Componentele unui sistem de baze de date Un sistem de baze de date (Database System) reprezint un ansamblu de componente care asigur crearea, utilizarea i ntreinerea uneia sau mai multor baze de date. Componentele unui sistem de baze de date sunt: hardware, software, utilizatori, date persistente. 2.1.1. Hardware. Calculatoarele pe care sunt instalate de obicei sistemele de baze de date sunt PC standard, dar i calculatoare multiprocesor foarte puternice. Performanele generale de operare ale calculatorului (numrul i viteza procesoarelor, dimensiunea i viteza de operare a memoriei etc) influeneaz n mod

14

Sistemul de baze de date concepte i arhitectur

corespunztor perfomanele sistemului de baze de date. Cea mai important caracteristic a calculatorului pe care funcioneaz sistemul de baze de date este capacitatea harddisk-ului, utilizat pentru memorarea datelor din baza de date. Deoarece ntr-un sistem de baze de date este necesar accesul rapid la oricare dintre nregistrrile de date, pentru memorarea acestora se folosesc discurile magnetice (harddiskuri). Benzile magnetice (care ofer acces secvenial la nregistrrile de date) se folosesc pentru duplicarea (backup), salvarea i restaurarea datelor. 2.1.2. Software ntre baza de date (colecia de date memorate fizic n fiiere pe harddisk-uri) i utilizatorii sistemului exist un nivel software, numit sistem de gestiune a bazei de date (SGBD)-(DataBase Management System). O baz de date computerizat poate fi generat i meninut fie cu ajutorul unui grup de programe de aplicaie specifice acestui scop, fie cu acest SGBD.

Utilizator

Aplicatie

SGBD

Baza de date

Figura 2.1. Componente ale sistemului de baze de date

Sistemul de gestiune al bazei de date (SGBD) este un interpretor de cereri, el recepionnd de la utilizatori anumite cereri de acces la baza de date, le interpreteaz, execut operaiile respective i returneaz rezultatul ctre utilizatori. De fapt, SGBD este un sistem de programe general ce faciliteaz procesul definirii, construciei i manipulrii datelor pentru diverse aplicaii. Definirea bazei de date presupune specificarea tipurilor de date ce vor fi stocate n baza de date, precum i descrierea detaliat a fiecrui tip de dat. Construcia bazei de date reprezint procesul stocrii datelor nsi prin mediul controlat prin SGBD. Prin manipulare se neleg o serie de funcii ce faciliteaz implementarea cererilor pentru gsirea datelor specificate, adugarea de noi date ce reflect modificarea contextului, generearea de rapoarte pe baza coninutului bazei de date. n concluzie, pachetul software ce asigur manipularea 15

Sistemul de baze de date concepte i arhitectur

datelor, mpreun cu datele nsi (coninutul bazei de date) formeaz ceea ce se numete sistemul de baze de date (DataBase System). Un SGBD ofer utilizatorilor o viziune a datelor stocate n baza de date, nemaifiind necesar cunoaterea organizrii particulare a sistemului, asigur o protecie a datelor fa de accese neautorizate i de anumite defecte de funcionare. 2.1.3. Utilizatorii Utilizatorii unui sistem de baze de date se mpart n cteva categorii: Programatorii de aplicaii sunt cei care dezvolt aplicaiile de baze de date n anumite medii de programare. Aplicaiile pot fi aplicaii desktop (stand alone) i aplicaii client-server. Aplicaiile desktop sunt aplicaiile care se instaleaz i ruleaz pe un anumit calculator. Acestea sunt aplicaii implementate n medii de programare cum ar fi: Visual Basic, Visual C, Java, C++, Delphi etc, iar aplicaiile clientserver sunt aplicaii care se instaleaz pe un calculator numit server i ruleaz de pe orice calculator aflat n acea reea. Aceste aplicaii sunt aplicaii web implementate n limbajul de scripturi php sau asp, cu interfaa dezvoltat n html. Pentru ca aceste aplicaii s funcioneze trebuie instalat i un server de web, cum ar fi Apache sau IIS i pe fiecare calculator de unde va fi accesat aplicaia, precum i un browser de web: Internet Explorer, Netscape, Modzilla etc. Utilizatorii obinuii sunt acei utilizatori care acceseaz baza de date prin intermediul unei aplicaii de baze de date. Aceti utilizatori au drepturi limitate asupra accesului la datele din baza de date, ei neavnd cunotine aprofundate asupra structurii i a datelor din acea baz de date. Administratorul bazei de date (DataBase Administrator) care este o persoan autorizat, care are ca sarcin administrarea resurselor, autorizarea accesului la baza de date, a coordonrii i monitorizrii utilizatorilor acelei baze de date. Administratorul bazei de date efectueaz i operaii periodice de salvare a datelor (backup) i de refacere a lor atunci cnd este necesar.

2.1.4. Date persistente Datele memorate ntr-o baz de date sunt date persistente, adic date care rmn memorate pe suport magnetic, independent de execuia programelor de aplicaii. Datele persistente ale unei baze de date se introduc, se terg sau se actualizeaz n funcie de date de intrare provenite de la 16

Sistemul de baze de date concepte i arhitectur

tastatur. Iniial datele de intare sunt date nepersistente, ele devenind persistente dup ce au fost validate de SGBD. Datele de ieire ale unui sistem de baze de date sunt tot date nepersistenete, ele provenind din operaii de interogare a bazei de date i puse la dispoziie utilizatorului sunt form de raport, afiare etc. Test de autoevaluare 3. 1. Enumerai pe scurt componentele unui sistem de baze de date .

2.2. Arhitectura intern a sistemlor de baze de date


Arhitectura intern a unui sistem de baze de date propus prin standardul ANSI/X3/SPARC (1975) conine trei niveluri funcionale ce vor fi descrise mai jos. Una din caracteristicile fundamentale a bazelor de date este dat de faptul c produce cteva niveluri de abstractizare a datelor, prin ascunderea detaliilor legate de stocarea datelor, detalii ce nu sunt utile utilizatorilor bazei de date. Se definete modelul datelor ca un set de concepte ce poate fi utilizat n descriereea structurii datelor. Prin structura bazei de date se nelege tipul datelor, legtura dintre ele, restriciile ce trebuie ndeplinite de date. Cele mai multe baze de date includ un set de operaii ce specific modul de acces la date. O structur de date asociat unei baze de date poate fi reprezentat pe trei niveluri, avnd ca scop separarea aplicaiilor utilizatorului de baza de date fizic. Schema bazei de date pe cele trei niveluri poate fi vzut astfel: Nivelul intern constituit din schema intern ce descrie structura de stocare fizic a datelor n baza de date, utiliznd un model al datelor fizice. La acest nivel se descriu detaliile complete ale stocrii, precum i modul de acces la date. Nivelul conceptual sau schema conceptual descrie structura ntregii baze de date pentru o comunitate de utilizatori. La nivelul conceptual se face o descriere complet a bazei de date, ascunznd detaliile legate de stocarea fizic, concentrndu-se asupra descrierii entitilor, tipurilor de date, relaiilor dintre ele, precum i a restriciilor asociate. Poate fi utilizat cu bune rezultate, la

17

Sistemul de baze de date concepte i arhitectur

model de nivel nalt sau un model specific de implementare. Nivelul extern sau nivelul vizual (utilizator) include o colecie de scheme externe ce descriu baza de date prin prisma diferiilor utilizatori. Fiecare grup de utilizatori descrie baza de date prin prisma propriilor interese. Exist tendina la acest nivel ca grupuri de utilizatori s ascund detalii de care nu sunt interesate. i la acest nivel se pot folosi modele de implemetare sau modele de nivel nalt.

Desigur c n multe SGBD nu se poate face o distincie net ntre cele trei nivele. Cu toate acestea se poate remarca la majoritatea SGBD un nivel conceptual puternic ce suplinete aparent de cele mai multe ori celelalte niveluri. De asemenea, se remarc o contopire mai ales la dezvoltarea aplicaiilor a nivelului conceptual i extern. Se remarc faptul c arhitectura pe trei niveluri reprezint numai o descriere a datelor la nivel fizic. Grupurile de utilizatori se refer numai la schema extern, deci SGBD este cel ce va trebui s transforme schema extern n schem conceptual. De la modelul conceptual cererile sunt adresate modelului intern pentru a fi procesate i aplicate datelor stocate. Procesul transferului cererilor i rezultatelor ntre nivele este numit cartografiere (mapping). Acest proces este mare consumator de timp pentru care multe SGBD nu posed nivel extern.
Vedere grup utilizator 1 Vedere grup utilizator n

Nivel extern

Nivel conceptual

Schema conceptuala

Nivel intern

Schema interna

Date memorate

Figura 2.2. Arhitectura intern a unui sistem de baze de date

18

Sistemul de baze de date concepte i arhitectur

Test de autoevaluare 2. Ce reprezint structura unei baze de date?

3. De ce este important mprirea unui sistem de baze de date pe 3 niveluri?

2.3. Independena datelor


Aceast organizare pe trei niveluri a sistemelor de baze de date este important pentru c explic conceptul de independen a datelor, prin posibilitatea modificrii sistemului bazei de date la orice nivel fr a influena nivelurile superioare. Independena datelor se poate defini n dou moduri, aferente nivelurilor conceptual i intern. Prin independena logic se nelege capacitatea schimbrii schemei conceptuale fr a atrage dup sine schimbri n schema extern sau n programele de aplicaie. Este posibil schimbarea schemei conceptuale prin expandarea bazei de date ca urmare a adugrii de noi tipuri de nregistrri sau a datelor insi, sau prin reducerea bazei de date ca urmare a reducerii nregistrrilor. Schema conceptual dup aceste operaii se refer la schema conceptual a datelor existente. Un exemplu de expandare al bazei de date este cel de adugare a unei noi coloane la un tabel. Independena fizic este reprezentat prin capacitatea de schimbare a schemei interne fr schimbarea schemei conceptuale sau externe. Schimbarea schemei conceptuale poate surveni ca urmare a reorganizrii fizice a unor fiiere, prin crearea de noi structuri de acces menite s asigure accesul eficient la date. Dac sistemul conine SGBD pe mai multe niveluri, catalogul trebuie s reflecte modul n care diverse cereri se implementeaz la fiecare nivel. Motivele prezentate mai sus pledeaz pentru utilizarea arhitecturii pe trei nivele. Test de autoevaluare 4. Care este diferena dintre independena fizic i independena logic a datelor din baza de date?

19

Sistemul de baze de date concepte i arhitectur

2.4. Limbaje SGBD


SGBD trebuie s ofere limbajele corespunztoare tuturor categoriilor de utilizatori. Dup proiectarea bazei de date i alegerea SGBD, este foart important construirea schemei interne i conceptuale a bazei de date. Cum n cele mai multe situaii, nu exist o separaie net ntre cele dou nivele, un limbaj numit Data Definition Language (DDL) este utilizat de administratorul bazei de date i de proiectantul bazei de date n definirea ambelor scheme. Un compilator DDL proceseaz instruciunile pentru identificarea descrierilor despre construcie i memoreaz aceasta n catalogul SGBD. n SGBD cu o clar separaie ntre nivelul conceptual i cel intern, DDL este utilizat pentru specificarea schemei conceptuale. Un alt limbaj numit Storage Definition Language (SDL) este utilizat pentru specificarea schemei interne. Legtura ntre cele dou nivele de implementare este asigurat de unul din cele dou. n general, fr specificare explicit, referirea la definirea bazei de date presupune utilizarea DDL. Pentru o arhitectur pe trei nivele, este necesar un al treilea nivel numit View Definition Language (VDL) destinat utilizatorilor i legturii acestora cu nivelul conceptual. Multe sisteme de baze de date realizeaz aceasta printr-un DDL ce accept i declaraii specifice nivelului extern. Instruciunile n limbaj DDL pot fi nglobate ntr-un limbaj general de programare sau pot fi compilate separat. Odat schema compilat i baza de date populat cu date, utilizatorul are o serie de faciliti pentru manipularea datelor. Operaiile tipice includ cutarea, inserarea, tergerea i modificare datelor. Pentru aceasta SGBD dispune de Data Manipulation Language (DML). La rndul su, DML poate fi mprit n dou componente: un DML de nivel nalt un DML de nivel sczut Seciunea DML de nivel nalt sau neprocedural este utilizat pentru specificarea operaiilor complexe n baza de date ntr-o form concis. n general, operaiile utiliznd aceast seciune sunt realizate fie ntr-o form interactiv de la terminal, fie prin utilizarea unui limbaj de programare universal. Seciunea DML de nivel sczut sau procedural este realizat utiliznd un limbaj de programare general. Cu aceast seciune se realizeaz operaiile tipice, cum sunt refacerea unei nregistrri individuale, procesarea separat a nregistrrilor bazei de date. Din motivul c opereaz asupra nregistrrilor individuale, aceast prelucrare se mai numete i nregistrare cu nregistrare. O comand pentru DML de nivel nalt specific o cerere de acces la date, dar nu specific modul n care se realizeaz acasta. Din 20

Sistemul de baze de date concepte i arhitectur

acest motiv acest limbaj se numete declarativ. Oricum, comenzile DML fie de nivel nalt, fie de nivel sczut sunt implementate ntr-un limbaj de programare general, limbaj numit i limbaj gazd, iar DML este numit limbaj de date. DML de nivel nalt utlizat ntr-o manier interactiv formeaz ceea ce se numete query language. Test de autoevaluare 5. Dai exemple de limbaje de sisteme de gestiune a bazelor de date.

2.5. Interfee SGBD


SGBD trebuie s ofere interfee corespunztoare tuturor categoriilor de utilizatori. Aceste interfee au ca scop facilitarea legturii ntre utilizatori i sistemul de baze de date. Principalele tipuri de interfee oferite de SGBD sunt: Interfee bazate pe meniuri. Acestea ofer utilizatorului o list de opiuni, numite meniuri care i ajut la formularea cererilor. Nu este necesar memorarea unor comenzi deoarece o comand specific este format pas cu pas prin compunerea opiunilor indicate prin meniu. Interfee grafice. Aceste interfee afieaz utilizatorului o diagram. Utilizatorul poate formula cererea prin manipularea acestei diagrame. n cele mai multe cazuril, interfeele grafice sunt combinate cu meniuri. Interfee bazate pe forme. Aceste interfee sunt acelea prin intermediul crora utilizatorul poate completa formele cu noile date pe care le dorete s le insereze, sau folosete aceste forme pentru a cere SGBD s obin datele de interes. Interfee n limbaj natural. Aceste interfee accept cereri scrise n limba englez sau alte limbi de circulaie internaional. O interfa n limbaj natural conine uzual o schem proprie similar cu schema conceptual a bazelor de date. Interpretarea cererilor se face pe baza unui set standard de cuvinte cheie ce sunt interpretate pe baza schemei interne. Dac interpretarea se realizeaz cu succes, programul de interfa genereaz cererea de nivel nalt corespunztoare celei n limbaj natural, ce va fi transmis ctre SGBD. 21

Sistemul de baze de date concepte i arhitectur

Interfee specializate aferente cererilor repetate. Aceste interfee sunt destinate unei anumite categorii de utilizatori, de exemplu utilizatorii care se ocup de operaiile dintr-o banc. Uzual, un mic set de comenzi prescurtate sunt implementate pentru a scurta timpul necesar introducerii comenzii, sau chiar utilizarea de chei funcionale. Aceste interfee implementeaz un limbaj numit i limbaj de comand. Interfee pentru administratorii bazelor de date. Acestea sunt utilizate n implementarea comenzilor privilegiate ce sunt folosite de administratorii bazelor de date. Astfel de comenzi includ crearea de conturi, setarea parametrilor sistemului, autorizarea intrrii ntr-un anumit cont, reorganizarea structurii de stocare a datelor din baza de date, precum i o serie de faciliti legate de administrarea bazei de date, cum sunt: accesul la tabele i nregistrri, faciliti de acces la cmpuri ale tabelelor de date.

Test de autoevaluare 6. Ce sunt interfeele sistemelor de gestiune a bazelor de date?

2.6. Exemple de SGBD


n momentul de fa, pe pia exist o ofert foarte mare de sisteme de gestiune a bazelor de date, de la sisteme care se pot folosi gratuit (fr licen sau cu licen public), pn la sisteme de nalt performan, a cror utilizare necesit cumprarea de licene. Pentru aceste sisteme exist pe site-urile productorilor versiuni de test numite trial version, pentru care nu se pltete licen, durata folosirii respectivului produs fiind limitat la un numr de zile (30, 60 zile, n funcie de productor). Microsoft SQL Server este sistemul de gestiune a bazelor de date relaionale multi-utilizator dezvoltat de firma Microsoft pentru sistemele de operare Windows. Au existat mai multe versiuni, cea actual fiind SQLServer 2000 (SQL Sever 2003 fiind nc n faza de testare). n toate versiunile, acest sistem de baze de date suport standardul SQL2, cu implementarea perfomant a trsturilor avansate de stocare i prelucrare a datelor. Exist o interfa grafic pentru interaciunea cu utilizatorul, pentru folosirea tuturor opiunilor: de export/ import date, de creare i manipulare a tabelelor, pentru popularea cu date a tabelelor, de 22

Sistemul de baze de date concepte i arhitectur

creare a interogrilor, a procedurilor stocate, a triggerelor etc. Pentru a obine gratuit o versiune de test, accesai adresa http://www.microsoft.com. Microsoft Access este unul din cele mai cunoscute sisteme de gestiune a bazelor de date relaionale pe platforme de calculatoare personale. Microsoft Access dispune de un sistem de control al bazei de date (database engine) i o intefa grafic pentru interaciunea cu utlizatorul. Aplicaiile de baze de date n MS Access se pot dezvolta cu mult uurin datorit generatoarelor de aplicaii (wizards) care permit proiectarea vizual a bazelor de date, a formularelor (forms) pentru interfeele grafice i a rapoartelor (reports). MS Access este folosit n special pentru aplicaii personale sau pentru mici afaceri i licena acestuia se cumpr odat cu cumprarea licenei produsului Microsoft Office. Acest sistem este cel folosit de noi n capitolele urmtoare. Sistemul Oracle este un sistem de gestiune al bazelor de date multi-utilizator foarte puternic, cu implementri pe toate platformele (Windows, Linux, Unix), care ofer att performane de execuie ridicate, ct i un grad mare de protecie i securitate a datelor. n toate versiunile, Oracle ofer implementarea complet a caracteristicilor modelului relaional, conform standardului SQL2, iar ultimele versiuni (Oracle8i, Oracle9i etc) sunt sisteme de gestiune obiect-relaionale distribuite, implementnd extensiile orientate obiect prevzute n standardul SQL3 i oferind posibilitatea de dezvoltare a bazelor de date distribuite. De la adresa http://www.oracle.com se poate obine o versiune a sistemului de gestiune Oracle, dar i a diferitelor instrumente de dezvoltare a aplicaiilor de baze de date. Termenii licenei permit utilizarea gratuit a acestor sisteme n scopuri necomerciale pe o perioad nelimitat, pentru utliizarea n scopuri comerciale trebuie pltite licenele corespunztoare. MySQL este un sistem de gestiune a bazelor de date relaionale cu implementri pentru sistemele de operare Linux, Unix, Windows. Acest sistem se poate utiliza gratuit, fiind open source. Ultima versiune i documentaia sistemului de gestiune a bazelor de date MySQL se poate descrca de la adresa http://www.mysql.com. Acest sistem este compatibil cu standardul SQL2, dar unele prevederi ale standardului fiind implementate parial. Visual FOX PRO este un limbaj de programare complet, care accept un mediu interactiv i un mediu compilat la rulare. Visual FOX PRO este compatibil cu toate versiunile anterioare de FoxPro. Stilul de proiectare a interfeei FoxPro a fost ntotdeauna orientat ctre flexibilitate i uurin n utilizare. Pe de alt parte, fora i viteza brut au reprezentat dintotdeauna punctul forte al lui FoxPro. Nici un produs creat de celelalte companii axate pe baze de date, care au fcut trecerea la modelul orientat obiect nu a 23

Sistemul de baze de date concepte i arhitectur

putut rivaliza cu FoxPro n ce privete viteza de execuie a funciilor specifice bazelor de date . i acest mediu conine vrjitori (Wizard) pentru gestionarea mai multor taskuri. IBM DB2 este un sistem de gestiune al bazelor de date al firmei IBM. Acest sistem asigur integritatea datelor, ofer o securitate sporit pentru date, are o interfa grafic pentru gestionarea bazei de date. Dispune, ca i Microsoft SQL Sever i Oracle de posibilitatea crerii de proceduri stocate, acestea fiind nite proceduri care ruleaz pe server i asigur o vitez mai mare de rspuns. Are mai multe versiuni n funcie de dorinele i necesitile utilizatorilor. Mai multe informaii despre DB2 le gsii dac accesai www.db2mag.com, i pentru a v comanda un CD sau pentru a v descrca versiunea de evaluarea a acestui sistem accesai www.ibm.com. Test de autoevaluare 7. Dai exemple de sisteme de gestiune a bazelor de date.

Lucrare de verificare a cunotinelor Accesai paginile de web ale fiecrui sistem de gestiune a bazelor de date i precizai cteva avantaje i cteva dezavantaje ale fiecruia.

24

Sistemul de baze de date concepte i arhitectur

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare ntrebarea 1. Componentele unui sistem de baze de date sunt: componenta hardware, componenta software, utilizatorii i datele persistente care sunt stocate n baza de date. ntrebarea 2. Prin structura bazei de date se nelege alegerea tipului de date, legturile dintre ele, restriciile ce trebuie ndeplinite de date. ntrebarea 3. Organizare pe trei niveluri a unui sistem de baze de date este important pentru c explic conceptul de independen a datelor, prin posibilitatea modificrii sistemului bazei de date la orice nivel fr a influena nivelurile superioare. Independena datelor se poate defini n dou moduri, moduri ce sunt aferente nivelurilor conceptual i intern. ntrebarea 4. Prin independena logic se nelege capacitatea schimbrii schemei conceptuale fr a atrage dup sine schimbri n schema extern sau n programele de aplicaie. Independena fizic este reprezentat prin capacitatea de schimbare a schemei interne fr schimbarea schemei conceptuale sau externe. ntrebarea 5. SGBD trebuie s ofere limbajele corespunztoare tuturor categoriilor de utilizatori. Astfel: un limbaj numit Data Definition Language (DDL) este utilizat de administratorul bazei de date i de proiectantul bazei de date n definirea schemelor interne i conceptuale a bazei de date. un alt limbaj numit Storage Definition Language (SDL) este utilizat pentru specificarea schemei interne. un alt nivel numit View Definition Language (VDL) este destinat utilizatorilor i legturii acestora cu nivelul conceptual ntrebarea 6. Interfeele au ca scop facilitarea legturii ntre utilizatori i sistemul de baze de date.

25

Sistemul de baze de date concepte i arhitectur

ntrebarea 7. Cteva dintre cele mai importante sisteme de gestiune a bazelor de date sunt: Microsoft SQL Server, Oracle, MySQL, IBM DB2, Microsoft Access, Visual FOX PRO etc.

Bibliografie:
Crstoiu, Dorin, Baze de date relaionale, Editura Printech, 1999 Rdulescu, Florin, Baze de date n Internet, Editura Printech, 2000 Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii i 75 de simulri, Editura Andreco, 2003 Browne, Allen, Balter Alison, Bazele Access 95, Editura Teora, 1999 Pribeanu, Costin, Baze de date i aplicaii, Editura MatrixRom, 2000 Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic, 1994

26

Proiectarea bazelor de date

Unitatea de nvare Nr. 3


PROIECTAREA BAZELOR DE DATE
Cuprins Obiectivele unitii de nvare nr. 3 3.1. Ce este proiectarea? 3.2. Modelul entitate-relaie. Obiectele bazelor de date relaionale Tabel (relaie) Cmp (atribut) nregistrare (nuplu) 3.3. Construcia schemelor relaie 3.3.1. Relaia unul-la-unul (1-1 sau one to one) 3.3.2. Relaia unul-la-multe (1-N sau one to many) 3.3.3. Relaia multe-la-multe (M-N sau many to many) 3.3.4. Relaia unar 3.4. Diagrama entitate-relaie 3.5. Constrngeri de integritate 3.5.1. Constrngerile de domeniu 3.5.2. Constrngerile referitoare la n-upluri (nregistrrile din tabel)-Cheia primar 3.5.3. Constrngeri ntre relaii 3.6. Dependene funcionale 3.7. Normalizare. Forme normale. 3.7.1. Forma normal de ordin 1 (FN1) 3.7.2. Forma normal de ordin 2 (FN2) 3.7.3. Forma normal de ordin 3 (FN3) 3.7.4. Forma normal Boyce-Codd (FNBC) 3.8. Structuri de indeci n tabelele de date 3.8.1. Indexul primar 3.8.2. Indexul secundar 3.8.3. Indexul de grup 3.8.4. Indexul multinivel Lucrri de verificare a cunotinelor Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Biblliografie Pagina 28 29 32

34 34 35 36 37 38 39 40 41 41 44 44 45 46 46 47 48 50 51 52 53 55 56 57

27

Proiectarea bazelor de date

nc de la nceput doresc s v felicit pentru parcurgerea cu succes a primelor dou uniti de nvare i s v urez bun venit la studiul acestei noi uniti de nvare. n primele dou uniti de nvare am realizat o scurt introducere n acest amplu domeniu al bazelor de date i am descris mai n detaliu ce este un sistem de baze de date i n ce const el. Aceast unitate de nvare nr. 3 este foarte important pentru c dac se dorete crearea unei aplicaii de baze de date este necesar ca un prim pas proiectarea corect a bazei de date.

OBIECTIVELE unitii de nvare nr. 3

Principalele obiective ale unitii de nvare nr. 3 sunt: Dup studiul unitii de nvare nr. 3 vei fi capabil s demonstrezi c ai dobndit cunotine suficiente pentru a nelege: 28 de ce este foarte important o proiectare corect a bazele de date care sunt etapele care trebuie parcurse pentru o proiectare ct mai corect a bazei de date ce reprezint modelul entitate-relaie care sunt obiectele din baza de date cum se construiesc schemele relaie s descrii toate categoriile de relaii care pot aprea ntr-o proiectare de baz de date s construieti o diagrama entitate-relaie s nelegi de ce trebuie s existe constrngeri asupra tabelelor cte tipuri de constrngeri exist i rolul lor ce este dependena funcional ce reprezint procesul de normalizare a tabelelor tipurile i ce reprezint fiecare form normal la ce sunt folosii indecii n tabelele de date tipurile de indeci i o scurt descriere a lor

Proiectarea bazelor de date

3.1. Ce este proiectarea?


Proiectarea unei baze de date const din proiectarea logic i fizice a acesteia, pentru a corespunde cerinelor utilizatorilor pentru un anumit set de aplicaii. n general, vom considera c proiectarea corect a unei baze de date trebuie s parcurg urmtoarele etape: Analiza cererilor i strngerea de informaii referitoare la aplicaie. Proiectarea conceptual a bazei de date. Alegerea unui sistem de gestiune al bazelor de date. Proiectarea logic a bazei de date. Proiectarea fizic a bazei de date. Implementarea bazei de date i a aplicaiei.

nainte de a se proiecta efectiv o baz de date, este necesar s se cunoasc ce rezultate se ateapt potenialii utilizatori s obin de la baza de date respectiv i documentarea asupra informaiilor ce sunt disponibile pentru aceasta. De asemenea, este necesar i definirea ct mai exact a aplicaiei (De ex.: aplicaie de gestiune a stocurilor, a crilor ntr-o bibliotec, aplicaie contabil, aplicaie folosit la salarizare, aplicaie referitoare la gestiunea studenilor, a profesorilor, a cursurilor, a notelor dintr-o instituie de nvmnt etc.). Avnd cerinele formulate precis i concis se poate trece la elaborarea schemei conceptuale utiliznd un model de nivel nalt. Schema conceptual reprezint o descriere concis a datelor utilizatorului, incluznd descrierea detaliat a tipurilor de date, a relaiilor i restriciilor acestora. Deoarece pn la acest moment nu se includ detalii de implementare, rezultatele pot fi comunicate utilizatorilor, chiar dac sunt nespecializai n domeniu, i analizate de acetia pentru eliminarea eventualelor conflicte care pot aprea. Urmtoarea etap este cea de construcie a bazei de date innd cont de detaliile actuale, cu ajutorul unui sistem de gestiune a bazelor de date (SGBD). Aceast etap nglobeaz etapele de alegere a unui SGBD, de proiectarea logic a bazei de date i cea de proiectarea fizic a bazei de date. Alegerea SGBD se face n funcie de complexitatea aplicaiei, de capacitatea de stocare a datelor, de posibilitatea 29

Proiectarea bazelor de date

refacerii datelor, de numrul de utilizatori care vor folosi aplicaia, dar i de costurile de achiziie ale sistemului, de costurile de ntreinere etc. Urmtoarea faz, cea de proiectare logic poate fi realizat n dou sub-faze: transpunerea schemei conceptuale n modelul de date al sistemului SGBD ales, dar independent de sistemul de gestiune propriu-zis, sau rafinarea schemei conceptuale i a schemelor externe obinute anterior, astfel nct s se utilizeze mai multe din facilitile oferite de sistemul SGBD ales (modul de generare a cheilor primare, definirea constrngerilor, etc.). Aceste dou sub-faze se pot realiza mpreun, folosind unul din instrumentele de proiectare oferite de sistemul SGBD ales. Rezultatul acestei faze de proiectare l constituie, aadar, schema conceptual i schemele externe ale bazei de date, dependente de sistemul SGBD ales i de modelul de date al acestuia. 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. Ultima etap este cea de implementare efectiv a bazei de date i a aplicaiei. Aici se creaz pe baza modelului definit obiectele bazei de date, se populeaz cu date baza de date, se verific constrngerile, se creaz interfeele cu utlizatorul i rapoartele neceare cu datele extrase din baza de date.

30

Proiectarea bazelor de date

Exemplu: Pe parcursul manualului vom proiecta i realiza o aplicaie simplificat pentru gestiunea informaiilor referitoare la notele obinute de studenii dintr-o universitate la anumite materii. Baza de date se va numi Universitate. Pe parcursul acestui capitol aceasta va fi rafinat la modelul entitate-relaie, un model conceptual de nivel nalt. Acest model asigur perceperea de ctre utilizatori fr s prezinte detaliile de stocare a datelor pstrate n calculator. n faza preliminar, dup analiza cerinelor se cunosc urmtoarele informaii : aceast universitate are n componen mai multe faculti. Fiecare facultate avnd asociat un cod, o denumire, o adres. studenii au stocate n baza de date informaiile personale ale fiecruia (cnp, nume, prenume, iniiala tatlui, data naterii etc), dar i informaii legate de starea actual a lor (grupa n care se afl, facultatea de care aparine etc.) n aceast baz de date stocm i materiile studiate n facultile din acea universitate. Se consider materii diferite acele materii care au aceeai denumire, dar profesor diferit. vom stoca i notele obinute de fiecare student la materia la care a fost evaluat prin examen.

Test de autoevaluare 1. Care sunt etapele ce trebuie parcurse pentru o proiectare corect a bazei de date?

31

Proiectarea bazelor de date

3.2. Modelul entitate-relaie. Obiectele bazelor de date relaionale


Modelul entitate-relaie este cel mai utilizat model conceptual de nivel nalt, care reprezint schema conceptual a bazei de date cu ajutorul entitilor i a relaiilor dintre acestea. Acest model a fost introdus n anul 1976 de P.S.Chen. Elementele de baz folosite n cadrul acestui model sunt conceptele de entitate i cel de relaie. O entitate este un obiect al lumii reale, cu o existen independent i poate reprezenta un obiect fizic, o activitate, un concept. O entitate este un obiect cu existen fizic , de exemplu: persoan particular, automobil, companie, activitate, curs universitar. Orice entitate are o serie de proprieti numite atribute, ce descriu entitatea respectiv. Cu toate c nu reprezint acelai lucru, pentru denumirea de entitate se mai folosete i denumirea de tabel al bazei de date, iar pentru atribute cmpurile tabelului. Scurte definiii a noiunilor pe care le-am folosit i le vom folosi n continuare sunt : Tabel (entitate) este o colecie de informaii logice relaionale tratat ca o unitate nregistrare (n-uplu). O tabel este compus din nregistrri sau rnduri. Fiecare nregistrare este tratat ca o simpl unitate. Fiecare nregistrare este legat de nregistrri ale altei tabele. Cmpuri (atribute). nregistrrile sunt constituite din cmpuri (coloane) . Un cmp este o particul atomic a bazei de date ce reprezint cea mai mic cantitate de informaie care poate fi manipulat. Toate nregistrrile dintr-o tabel au aceleai cmpuri.

De exemplu, pentru baza de date Universitate pe care dorim s o crem, o entitate reprezint o Facultate cu atributele Cod Facultate, Denumire, Adresa, Nume Decan. O alt entitate ar fi Materii, descrise de atributele Cod Materie, Denumire, An, Nume Profesor. Atributelor li se asociaz valori care au ca scop identificarea entitii. Aceast atribuire de valori pentru fiecare atribut formeaz o nregistrare a tabelului respectiv. 32

Proiectarea bazelor de date

Unele atribute pot fi divizate n mai multe pri cu semnificaie independent. Un astfel de atribut este un atribut complex. Un exemplu este cel al atributului Adres care poate fi divizat in mai multe atribute : Oras, Cod Postal, Strad, Numar, Bloc etc sau al atributului Nume Decan care poate fi divizat n Nume i Prenume. Atributele care nu sunt compuse se numesc atribute atomice. Valoarea atributelor complexe se formeaz prin concatenarea valorilor atributelor atomice. Multe atribute au valoare unic pentru o entitate particular i sunt numite atribute cu o singur valoare. De exemplu CNP-ul unei persoane. Exist atribute ce pot lua mai multe valori dintr-un set dat, cum ar fi gradele didactice ale profesorilor universitari, culorile etc. Aceste atribute sunt atribute cu mai multe valori. Atributele derivate sunt atributele ce se pot determina din alte atribute, cum ar fi vrsta unei persoane se poate calcula din data curent minus data naterii persoanei respective. n anumite situaii, o entitate poate s nu aib valori pentru toate atributele asociate ei, n acest caz folosindu-se o valoare special numit atributul null. Un exemplu ar fi lipsa din atributul Adres a numelui blocului sau a scrii, etc. Exemplu: Revenind la exemplu nostru, s ne definim toate entitile din baza de date Universitate. Entitile ar putea fi urmtoarele : Facultate cu atributele: CodFac, Denumire, Adresa, Nume Decan Studenti cu atributele: CodStud, An, Grupa, Media, Bursa StudPersonal cu atributele: CNP, Nume, Init, Prenume, Data Nasterii, Loc Naterii, Tata, Mama, Adresa Materii cu atributele: Cod Materie, Denumire, An, Nume Profesor Note cu atributele Nota, Data

33

Proiectarea bazelor de date

Test de autoevaluare 2. Care sunt obiectele bazei de date? Dai scurte definiii pentru fiecare obiect i specificai ce termeni se mai folosesc pentru fiecare dintre ele.

3.3. 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. 3.3.1. 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.
r1 E11 r2 E12 E13 r3 E22 E23 E21

E1

E2

Figura 3.1. Relaia unul-la-unul 34

Proiectarea bazelor de date

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. 3.3.2. Relaia unul-la-multe (1-N sau one to many) Aceast relaie este o relaie prin care unui element din
E11 E12 E13 r7 r1 r2 E21 E22 E23 E24 E25 E26 E27

E1

E2

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. Figura 3.2. 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.

35

Proiectarea bazelor de date

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. 3.3.3. 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.

E11 E12 E13 E14

r1 r2

r7

E21 E22 E23 E24 E25 E26 E27

E1

E2

Figura 3.3. Relaia multe-la-multe 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, Nume Profesor

36

Proiectarea bazelor de date

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. 3.3.4. 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.
E11 r1 E12 E13 E14 E1

Figura 3.4. Relaia unar Exemplul clasic al acestei relaii unare este cazul managerului unei companii, care la rndul su este tot un angajat al acelei companii. Relaiile unare se modeleaz la fel ca i relaiile binare. Test de autoevaluare 3. Dai exemple de relaii ntre tabelele unei baze de date.

Paii care trebuie urmai pentru crearea relaiilor ntre tabele n mediul Microsoft Access sunt descrii n capitolul 6.

37

Proiectarea bazelor de date

3.4. 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 slab

Entitate tip

Atribut
Atribut

Tipul relaiilor
Tip relatie

Exemplu: n continuare, se exemplific dezvoltarea conceptual de nivel nalt al bazei de date Universitate. modelului

Denumire

Adresa

NumeDecan

Facultate 1 Nume CNP 1 Prenume StudPersonal 1 N Studeni M Note N Materii An Data Profesor An Denumire Nota

DataNast

Tata

CodFac

38

Proiectarea bazelor de date

Test de autoevaluare g 4. Explicai de ce este important construcia diagramei entitaterelaie.

3.5. Constrngeri de integritate


Constrngerile de integritate sunt reguli care se definesc la proiectarea unei baze de date i care trebuie s fie respectate de-a lungul existenei acesteia. Entitiile unei baze de date reflect realitatea modelat i de aceea valorile pe care le conin trebuie s respecte anumite reguli, care s corespund celor din realitate. Vom folosi n continuare pentru termenul de entitate denumirea tabel. Constrngerile se pot clasifica astfel: n cadrul tabelei sau ntre tabele.

Constrngerile din cadrul unei tabele sunt reguli care se impun n cadrul unei singure tabele i asigur integritatea datelor acesteia. Ele sunt de 3 categorii: constrngeri de domeniu. Aceste constrngeri sunt condiii care se impun valorilor atributelor i asigur integritatea domeniilor atributelor. constngeri de nuplu (de nregistrare din tabel). Aceste constrngeri sunt condiii care se impun nuplurilor unei entiti (nregistrrilor din tabel) i asigur identificarea corect a nuplurilor prin intermediul cheilor primare. constrngeri impuse de dependene de date (dependene funcionale). Acestea sunt constrngeri prin care valorile unor atribute ale unei entiti (cmpuri ale tabelei) determin valorile altor atribute ale aceleiai entiti.

Constrngerile ntre tabele sunt reguli care se impun ntre dou sau mai multe relaii. Cele mai importante sunt constrngerile de integritate referenial, care se realizeaz prin 39

Proiectarea bazelor de date

intermediul cheilor strine i asigur asocierea corect a tabelelor. 3.5.1. Constrngerile de domeniu Constrngerile de domeniu sunt condiii impuse valorilor atributelor pentru ca acestea s corespund semnificaiei pe care o au n realitatea modelat. n reprezentarea unei entiti printr-un tabel, valorile atributelor sunt reprezentate pe coloane. Din aceast cauz aceste constrngeri se mai numesc i constrngeri de coloan. Vom descrie 3 tipuri de constrngeri de coloan: Constrngerea NOT NULL. Valoarea NULL este o valoare particular, care nu reprezint valoarea 0, ci lips de informaie. Aceast valoare NULL poate aprea cnd nu se cunosc respectivele informaii, ca de exemplu, n aplicaia proiectat de noi, n tabela StudPersonal nu se cunoate numele tatlui (aceast informaie nu este esenial). Nu orice atribut poate lua valoarea NULL, ca exemplu, numele unui student, pentru ca nu ar avea sens nregistrarea unui student al crui nume nu se cunoate. n astfel de situaii la definirea relaiilor se impune atributului constrngerea NOT NULL, nsemnnd c acest atribut nu poate lua valoare NULL n orice nregistrare din tabel Constrngerea DEFAULT. Aceast constrngere este folosit pentru stabilirea unei valori implicite (DEFAULT) pentru un atribut al entitii. n cazul n care la inserarea unui nuplu (nregistrri) nu se specific valoarea unui atribut (cmp), atunci acesta primete valoarea implicit (dac a fost definit) sau valoarea NULL (dac nu a fost definit o valoare implicit pentru atributul respectiv, dar sunt admise valori NULL). Dac nu a fost definit o valoare implicit i nici nu sunt admise valori NULL se genereaz o eroare. Constrngerea CHECK. Constrngerea CHECK este dup cum i spune i numele o constrngere de verificare. n limbajul SQL, care va fi prezentat ntr-un capitol viitor, domeniile n care pot lua valori atributele se pot stabili ca tipuri de date predefinite. Pentru fiecare atribut se pot aduga constrngeri de verificare la definirea tabelului.

40

Proiectarea bazelor de date

3.5.2. Constrngerile referitoare la n-upluri (nregistrrile din tabel)-Cheia primar O entitate este definit ca o mulime de n-upluri. Deci, n-uplurile entitii trebuie s fie distincte, acest lucru nsemnnd c ntr-o entitate nu pot exista dou sau mai multe n-upluri care c conin acceai combinaie de valori pentru fiecare atribut. O cheie primar a unei entiti (tabele) este o submulime de atribute ale entitii care are urmtoarele proprieti: este unic, adic orice combinaie de valori ale atributelor acestei chei este unic pentru orice stare a relaiei este stabil, adic informaia corespunztoare ei nu se modific niciodat prin operaii de actualizare a datelor nu se admit valori NULL pentru nici unul din atributele cheii respective

n concluzie, o cheie primar reprezint unul sau mai multe cmpuri ale tabelei care identific unic fiecare nregistrare din tabela respectiv. 3.5.3. Constrngeri ntre tabele Relaiile dintre tipurile de entiti definite n modelul conceptual al unei baze de date se realizeaz n modelul relaional prin intermediul cheilor strine. O cheie strin este o submulime de atribute ale unei entiti E1 care refer entitatea E2 i ndeplinete urmtoarele condiii: atributele cheii strine din E1 sunt definite pe domenii compatibile cu cele ale atributelor cheii din entitatea E2, i cheia din entitatea E2 este cheie primar n aceast relaie. Aceast cheie strin determin o asociere ntre cmpurile unor tabele cu cele ale altei tabele i creeaz abilitatea de realizare a unirii tabelelor respective prin intermediul operaiilor JOIN. Integritatea referenial este proprietatea bazei de date care garanteaz c oricare valoare a unei chei strine se regsete printre valorile cheii corespunztoare din relaia referit, sau cheia strin are valoarea NULL (dac atributele acesteia nu sunt supuse constrngerii NOT NULL).

41

Proiectarea bazelor de date

Exemplu: Revenind la baza de date proiectat de noi, numit Universitate vom defini cheile primare i cele strine din cadrul fiecrei tabele. Cheile primare vor fi subliniate pentru o mai clar interpretare. Pentru tabela Faculate vom presupune c cod facultii (CodFac) este unic pentru fiecare facultate din cadrul universitii respective. n concluzie, tabela Facultate va avea urmtoarea structur : Facultate (CodFac, Denumire, Adresa, Nume Decan) Pentru tabela StudPersonal dispunem de mai multe opiuni n alegerea cheii primare. Ea poate fi reprezentat de CNP acesta fiind teoretic unic fiecrei persoane. Din pcate s-au ntlnit cazuri n care dou persoane au acelai CNP i pentru a evita un posibil conflict, adugm la tabela un alt atribut numit CodStud i va fi un numr unic pentru fiecare nregistrare din tabela StudPersonal. n concluzie tabela StudPersonal va avea urmtoarea structur: StudPersonal (CodStud, CNP, Nume, Init, Prenume, DataNasterii, LocNat, Tata, Mama, Adresa) Pentru nceput la tabela Studenti iniial ar trebui introdus cmpul CodFac. Acesta va reprezenta o cheie strin a aceste tabele i va face legtura direct ntre tabela Studenti i tabela Facultate. Tabela Studenti va avea urmtoarea structur: Studenti(CodFac, CodStud, An, Grupa, Media, Bursa). Vom stabili cheia primar a acestei tabele. n acest caz, cheia primar trebuie s fie o cheie compus din atributele CodFac i CodStud pentru a identifica unic fiecare nregistrare din tabel. Dac am fi ales numai cmpul CodFac nu ar fi fost bine deoarece la o facultate corespund mai muli studeni i atunci ar aprea CodFac acelai pentru mai multe nregistrri i nu ar fi indeplinite condiiile pentru ca un cmp s fie cheie primar. La fel s-ar fi ntmplat i dac am fi optat pentru cmpul CodStud deoarece acest cod este un numr unic pentru fiecare student dintr-o facultate, acelai cod putnd fi asociat i pentru un alt student de la o alt facultate. n concluzie, tabela Studenti va avea urmtoarea structur: Studenti(CodFac, CodStud, An, Grupa, Media, Bursa)

42

Proiectarea bazelor de date

Pentru tabela Materii vom presupune c codul materiei (CodMaterie) este unic pentru fiecare disciplin din cadrul universitii respective. n concluzie, tabela Materii va avea urmtoarea structur : Materii (CodMaterie, Denumire, An, Nume Profesor) n tabela Note, care are iniial dou atribute Nota i Data trebuie introduse mai multe cmpuri. Unul ar fi cmpul CodStud, care va reprezenta o cheie strin i va face legtura cu tabela Studenti pentru a cunoate n orice moment crui student i aparine nota respectiv. Un alt cmp care ar trebui introdus este cmpul CodMaterie, care va reprezenta o cheie strin i va face legtura cu tabela Materii pentru a cunoate n orice moment ce not i-a fost acordat studentului respectiv. Tabela Studenti va avea urmtoarea structur: Studenti(CodStud, CodMaterie, Nota, Data). Vom stabili cheia primar a acestei tabele. n acest caz, cheia primar ar putea fi o cheie compus din atributele CodStud, CodMaterie i Data pentru a identifica unic fiecare nregistrare din tabel. Cmpul Data trebuie introdus n cheia primar deoarece un student poate s participe la un examen de mai multe ori.(fie c a fost absent, fie c nu a obinut not de trecere, fie c dorete o mrire a notei respective). Cum este greu de manipulat o astefl de cheie primar, propunem introducerea unui alt cmp n tabela numit CodNota, care va fi unic pentru fiecare nregistrare din tabel. Astfel, n concluzie, tabela Note va avea urmtoarea structur: Note (CodNota, CodStud, CodMaterie, Nota, Data).

Test de autoevaluare 5. Ce sunt constrngerile? Dai exemple de tipuri de constrngere.

43

Proiectarea bazelor de date

3.6. Dependene funcionale


Dependena funcional definete relaia dintre un atribut sau un grup de atribute ale unui tabel i un alt atribut sau grup de atribute ale altuia. Dup cum am specificat, atributele se refr la cmpurie tabelei. Prin urmare trebuie s vedei ce cmpuri depind de alte cmpuri. n orice tabel pot exista dou categorii de dependene funcionale: Dependene funcionale determinate de cheile tabelei; astfel de dependene funcionale nu produc redundana datelor i nici anomalii de actualizare a relaiei Dependene funcionale n care atributul determinat nu este o cheie a tabelei; astfel de dependene funcionale produc redundana datelor i anomalii de actualizare a tabelei.

Constrngerile de cheie sunt constrngeri implicite, coninute n definiia relaiei i sunt verificate i impuse automat de sistemul de gestiune; proiectantul bazei de date nu trebuie s prevad nimic suplimentar pentru ca aceste constrngeri s fie satisfcute de orice stare a relaiei. n schimb, dependenele funcionale n care atributul determinant nu este o cheie a relaiei sunt constrngeri explicite, care nu sunt verificate i nici impuse de sistemul de gestiune. Verificarea i impunerea acestor dependene funcionale se poate face numai procedural, prin triggere, proceduri stocate sau funcii impuse n programele de aplicaie.

3.7. Normalizare. Forme normale.


La proiectarea bazelor de date relaionale se stabilesc entitile din realitatea modelat. Modul n care se pot stabili entitile unei baze de date nu este unic i de accea este necesar s existe criterii de evaluare a calitii entitilor, astfel nct acestea s asigure integritatea datelor. n acest capitol se trateaz procesul normalizrii i primele trei forme normale pentru o tabel. Procesul de normalizare propus de E.F. Codd n 1970 urmrete execuia asupra unei tabele a unor serii de teste pentru a cerceta apartenena la forma normal. Codd propune trei forme normale (3NF), cea mai bun definiie fiind dat mai trziu de Boyce i Codd, fiind cunoscut sub numele de forma normal Boyce-Codd. 44

Proiectarea bazelor de date

Normalizarea datelor poate fi privit ca un proces n timpul cruia schemele tabel nesatisfctoare sunt descompuse prin mprirea atributelor n tabele cu atribute mai puine ce posed proprietile dorite. n fond, unul din obiectivele procesului de normalizare este asigurarea faptului c tabela posed o bun construcie asigurnd posibiliti de modificare cu eliminarea anomaliilor care pot aprea. Forma normal ofer proiectantului bazei de date : un schelet formal pentru analiza relaiilor bazat pe chei i pe dependena funcional ntre atribute serie de teste ce pot elimina tabelele individuale astfel nct baza de date relaional poate fi normalizat n orice grad. Cnd un test nu este trecut, tabela va fi descompus n tabele ce trec testele de normalitate

3.7.1. Forma normal de ordin 1 (FN1) Forma normal de ordin 1 este considerat ca fiind parte a definiiei formale a unei tabele. Ea nu permite atribute cu mai multe valori, atribute compuse sau combinaii ale lor. Aceasta stabilete ca domeniul atributelor trebuie s includ numai valori atomice i valoarea oricrui atribut ntr-un nuplu este o valoare unic n domeniul atributului respectiv. Deci, FN1 nu permite un set de valori, un nuplu de valori sau o combinaie a acestora ca valoare a unui atribut pentru un nuplu. Cu alte cuvinte, FN1 nu permite tabele n tabele sau tabele ca atribute ale nuplurilor. Valorile permise de FN1 sunt atomice sau indivizibile, pentru un domeniu specificat de valori. Exemplu: Considerm c n tabela Materii (CodMaterie, Denumire, An, NumeProfesor), unde cheia primar este CodMaterie este introdus o nregistrare de tipul:

CodMaterie

Denumire

An

NumeProfesor

Analiz matematic

O.Stanil, P.Flondor, M.Olteanu

45

Proiectarea bazelor de date

Aceast nregistrare reprezint o disciplin care este predat de trei profesori diferii. Acest nuplu (nregistrare) nu ndeplinete FN1, deoarece la atributul NumeProfesor nu sunt valori atomice, ci un set de valori. Pentru a rezolva aceast problem vom introduce mai multe nregistrri, care vor ndeplini cerinele FN1, considernd trei materii diferite astfel: CodMaterie 1 2 3 Denumire Analiz matematic Analiz matematic Analiz matematic An 1 1 1 NumeProfesor O.Stanil P.Flondor M.Olteanu

3.7.2. Forma normal de ordin 2 (FN2) A doua form normal impune ca fiecare atribut (coloan) s fie dependent de fiecare parte a cheii principale. Mai exact, o tabel ndeplinete FN2 dac ndeplinete FN1 i conine numai atribute care dau informaii despre cheia tabelei. Exemplu: Considernd c n tabela Materii (CodMaterie, Denumire, An, NumeProfesor), unde cheia primar este CodMaterie c ar mai exita i alte cmpuri cum ar fi: Nume Student, Nota, Data Examinrii. Acea structur nu ar fi proiectat bine, nendeplinind FN2. Pentru a soluiona aceast problem trebuie mprit acea tabel n mai multe, astfel: Studenti(CodStud, Nume, .) Materii (CodMaterie, Denumire, An, NumeProfesor), Note(Nota, Data, CodStud, Cod Materie) 3.7.3. Forma normal de ordin 3 (FN3) Pentru a ajunge la a treia form normal, tabelul trebuie s fie deja n prima i a doua form normal. Pentru a fi n a treia form normal, trebuie ca toate cmpurile non-primare s depind numai de cmpurile primare. Dei nu face parte n mod riguros din normalizare, de obicei nu este recomandabil s includei cmpuri care pot fi derivate din alte cmpuri situate n acelai tabel sau n tabelele aflate n relaie.

46

Proiectarea bazelor de date

Exemplu: S considerm baza de date Universitate, mai exact tabela StudPersonal, care are structura: StudPersonal (CodStud, CNP, Nume, Init, Prenume, DataNasterii, LocNat, Tata, Mama, Adresa) Nu are rost s stocm un alt cmp numit Vrsta, care se poate calcula din DataNasterii. 3.7.4. Forma normal Boyce-Codd (FNBC) Forma normal Boyce-Codd este o form strict FN3, nelegnd prin aceasta c fiecare tabel FNBC este n acelai timp o tabel FN3, cu toate c o tabel FN3 nu este n mod necesar i o tabel FNBC. Cele dou forme sunt asemntoare, ambele impunnd condiia ca atributul care determin funcional alte atribute s fie o cheie a tabelei. Forma normal Boyce-Codd este mai restrictiv dect FN3, deoarece n FNBC se impune aceast condiie tuturor atributelor, prime sau neprime, pe cnd n FN3 condiia se impune numai atributelor neprime. Atributele prime sunt atributele care aparin unei chei, iar celelalte se numesc atribute neprime. Orice tabel format din dou atribute este FNBC, FN2 i FN3. Aceast tabel compus din dou atribute este FN2, deoarece, fie cheia este format din ambele atribute i atunci nu exist atribute neprime, fie cheia este format dintr-unul din atribute, iar dependena funcional a celuilalt atribut (care este atribut neprim) fa de cheie este total. Aceast tabel compus din dou atribute este FN3 deoarece este FN2 i nu poate exista nici un atribut neprim care s determine funcional un alt atribut neprim, deoarece o tabel cu dou atribute nu poate avea dect cel mult un atribut neprim. Test de autoevaluare 6. Ce reprezint procesul de normalizare i specificai formele normale.

47

Proiectarea bazelor de date

S-ar putea s v simii copleii de aceste reguli. De fapt, pe msur ce vei dobndi experien, vei ncepe s creai fiiere normalizate de la bun nceput.

3.8. Structuri de indeci n tabelele de date


Un index reprezint o cale rapid de localizare a nregistrrilor dintr-o tabel, prin gruparea tuturor nregistrrilor pentru un anumit atribut sau grup de atribute. Indexarea este utilizat n dou scopuri principale: - accelerarea cutrilor n baza de date - asigurarea unicitii nregistrrilor Vom privi o relaie ca o colecie de date (o mulime) n care nu sunt admise elemente duplicat. n cazul unei mulimi reprezentate printr-o colecie neordonat de elemente, timpul de cutare a unui element crete proporional cu numrul de elemente ale mulimii, deoarece n cazul cel mai ru trebuie parcurse toate elementele mulimii pentru a gsi elementul dorit. Timpul de cutare a unui element poate fi micorat considerabil dac elementele mulimii sunt ordonate. Un exemplu este cel utilizat uzual n cri. ntr-o carte gsim la sfrit termenii importani aranjai n ordine alfabetic. La fiecare termen din aceast list este furnizat un numr de pagin n care apare i este explicat termenul. Utiliznd aceast list se gsete imediat un termen cutat. Fr o astfel de list, neexistnd o ordine de ghidare a cutrii, singura alternativ este explorarea complet a ntregului material pentru a gsi termenul dorit. n general, operaiile de cutare, inserare i tergere a elementelor ntr-o mulime (tabel) se execut mai rapid dac elementele mulimii (nregistrrile) sunt reprezentate printr-o colecie ordonat. n tehnologia bazelor de date, ordonarea coleciilor de date se face prin indexarea datelor. Indexul unei tabele este o structur de date adiional memorat n baza de date care permite accesul rapid la nregistrrile tabelei prin ordonarea acestora. De fapt, indexul poate fi gndit ca o tabel cu dou atribute: primul atribut conine valorile atributelor tabelei bazei de date pentru care se creaz indexul, iar al doilea conine un pointer la locaia nuplurilor corespunztoare. Valorile sunt aranjate fie n ordine descendent cheii de indexare, fie n ordine ascendent.

48

Proiectarea bazelor de date

O reprezentare generic a structurii de index este:


Index Criteriu

Tabela de date

Acces

Criteriu

Figura 3.1. O structur generic de index Indecii se clasific dup tipul de cmp sau dup nivel i dup modul de organizare a tabelei. O clasificare a acestora este urmtoarea: 1. Indexul primar este un index asociat unei tabele ordonate dup cmpul cheie al tabelei, iar n structura de index se utilizeaz cmpul cheie. 2. Indexul secundar este un index construit tot pe baza unui cmp cheie, dar tabela nu este ordonat dup cmpul cheie. 3. Indexul de grup (cluster) este un index construit dup cmpuri ce nu sunt cmpuri cheie (criteriu de acces este diferit de cmpul cheie), iar tabela poate fi ordonat sau nu relativ la criteriul de acces. 4. Indexul multinivel (se mai numesc i indeci de blocuri) se aplic oricror tabele. Principiul de baz este de a construi niveluri de indexare pn cnd structura adiional de date corespunde indexului de cel mai mare nivel poate fi memorat ntr-un singur bloc. Aceti indeci se construiesc n dou forme: bazai pe arbori B i bazai pe arbori B+.

49

Proiectarea bazelor de date

3.8.1. Indexul primar Un index primar este un fiier ordonat cu nregistrri de lungime fix avnd dou cmpuri. Primul cmp al indexului este de acelai tip cu un cmp cheie ordonat al tabelei de date, iar al doilea cmp este un pointer ctre un bloc (o adres a unui bloc). Cmpul cheie de ordonare se mai numete i cheie primar a tabelei de date. Asociaia celor dou cmpuri formeaz intrarea index sau nregistrarea index pentru fiecare bloc al tabelei de date. Cum tabela de date este ordonat dup valorile cmpului index, n fiierul index valoarea primului cmp este dat de valoarea cmpului index de la prima nregistrare a blocului. Al doilea cmp, cel ce semnific un pointer este de tip ntreg i indic adresa blocului. Volumul datelor n index este mai mic datorit faptului c n index avem o singur intrare pentru un bloc, ct i datorit faptului c un index este similar cu o tabel, dar are numai dou cmpuri. Ca efect, cutarea ntr-un fiier index este mult mai rapid dect ntr-o tabel de date, putnd fi utilizate metode de cutare binare.

<k> reprezint cheia de ancorare bloc <p> reprezint pointerul la bloc Figura 3.2. Indexul primar

50

Proiectarea bazelor de date

3.8.2. Indexul secundar Metoda de indexare secundar se aplic la tabele neordonate, indiferent dac valorile cmpului dup care se face indexarea n tabela de date sunt sau nu distincte. Indexul secundar este un fiier ordonat cu dou cmpuri ca i la ali indeci, n care primul cmp este identic cu cel al tabelei de date, iar al doilea cmp este un pointer. Cmpul pentru care indexul este construit se numete i cmp de indexare. n concluzie, orice cmp al unei tabele poate fi cmp de indexare secundar.

<k> reprezint cheia de ancorare bloc <p> reprezint pointerul la bloc Figura 3.3. Indexul secundar

51

Proiectarea bazelor de date

3.8.3. Indexul de grup Astfel de indeci sunt folosii cnd nregistrrile tabelei de date sunt ordonate fizic dup un cmp care nu este cheie (noncheie), deci un cmp ce nu are valori distincte la fiecare nregistrare. Un astfel de cmp identific un grup de nregistrri (clustering field). n aceast situaie se poate crea un index ce faciliteaz gsirea nregistrrilor ce aparin unui cmp. Un index de grup este deci un fiier ordonat cu dou cmpuri, primul cmp coninnd aceeai informaie cu cea a cmpului noncheie de ordonare, al doilea fiind destinat unui pointer ctre un bloc de date. n acest mod, fiierul index conine cte o intrare pentru fiecare valoare distinct a cmpului de ordonare. Al doilea cmp al nregistrrii index conine un pointer ctre blocul n care apare pentru prima oar valoarea cmpului de ordonare din primul cmp al indexului.

<k> reprezint cheia de ancorare bloc <p> reprezint pointerul la bloc Figura 3.4. Indexul de grup

52

Proiectarea bazelor de date

3.8.4. Indexul multinivel Metodele de indexare descrise pn acum opereaz cu un fiier index ordonat. Asupra fiierului index se aplic metode de cutare binar pentru localizarea nregistrrilor cu valoarea specificat n cmpul index. Pentru un index multinivel, fiierul index este vzut ca un nou fiier la care se construiete un nou index i aa mai departe. Primul fiier index conine cte o valoare distinct pentru fiecare cheie de indexare. Se poate crea un index primar pentru primul nivel, nivel numit i nivel secund al indexului multinivel. Cum al doilea nivel este un index primar se poate folosi metoda de ancorare a blocurilor, aa c al doilea nivel are cte o intrare pentru fiecare bloc al primului nivel, ntruct este n esen un index primar.

<k> reprezint cheia de ancorare bloc <p> reprezint pointerul la bloc Figura 3.5. Indexul cu dou niveluri Test de autoevaluare 7. Ce sunt indecii? Dai cteva exemple de indeci.

53

Proiectarea bazelor de date

n imaginea alturat este prezentat baza de date, dup ce s-a realizat proiectarea ei, crearea tabelelor i a relaiilor dintre ele i dup ce s-au impus constrngerile.

Cmpurile scrise ngroat sunt cheile primare din cadrul fiecrei tabele. Liniile dintre tabele arat relaiile care le-am creat prin proiectare ntre fiecare dou tabele. La capetele liniilor sunt dou cmpuri: cmpul scris nengroat reprezint cheia strin a tabelei i dup cum spune i definiia, face legtura cu cheia primar a celeilalte tabele.

54

Proiectarea bazelor de date

Lucrare de verificare a cunotinelor 1. Propun pe lng aplicaia pe care am proiectat-o i realizat-o mpreun s ncercai s aplicai aceleai etape i pentru o alt dou aplicaie descris mai jos. Aplicaie pentru gestiunea angajailor dintr-o companie. Se dau mai jos cerinele pentru construcia unei baze de date aferente unei companii, baza de date numit COMPANIE, ce are ca scop ilustrarea procesului descris. n faza preliminar se cunoate faptul c compania are un numr de angajai organizai pe departamente i urmrete realizarea unor proiecte. Pentru simplitate, se presupune c dup analiza cerinelor s-a decis urmtoarea descriere, ca elemente primare, pentru baza de date: Compania este organizat n departamente, fiecare departament are un nume, un numr de cod, un numr de angajai. Compania poate avea mai multe sedii Un departament este implicat n mai multe proiecte, fiecare din ele are un nume, un numor de cod i o singur locaie Se pstreaz pentru fiecare angajat numele, CNP, adresa salariul, sex, data naterii. Fiecare angajat este afiliat la un departament, ns poate lucra la mai multe proiecte ce nu sunt neaprat coordonate de acelai departament. Trebuie stocat i numrul de ore alocate sptmnal pentru fiecare proiect. De asemenea, fiecare angajat are un ef direct Lista persoanelor din ntreinerea fiecrui angajat este important ntruct este utlizat a calculul impozitului, lista coninnd numele, sexul i data naterii fiecrui ntreinut.

2. Dai exemple de entiti care ar putea exista pentru baza de date Companie. Scriei entitile propuse de voi alturi de atributele asociate fiecreia din ele. 3. Dai exemple de relaii care ar putea exista pentru baza de date Companie. Descriei relaiile dintre toate entitile. 4. Realizai diagrama entitate-relaie asociat bazei de date Companie. 5. Definii cheile primare i strine asociate fiecrui tabel din baza de date Companie i scriei structura final pentru fiecare tabel. 6. Explicai dac tabelele din baza de date Companie sunt normalizate. Dai exemple cum sunt ndeplinite fiecare form normal.

55

Proiectarea bazelor de date

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare ntrebarea 1. O proiectare corect a unei baze de date trebuie s parcurg urmtoarele etape: Analiza cererilor i strngerea de informaii referitoare la aplicaie. Proiectarea conceptual a bazei de date. Alegerea unui sistem de gestiune al bazelor de date. Proiectarea logic a bazei de date. Proiectarea fizic a bazei de date. Implementarea aplicaiei. ntrebarea 2. Obiectele bazei de date sunt urmtoarele: Tabel (entitate) este o colecie de informaii logice relaionale tratat ca o unitate nregistrare (n-uplu). O tabel este compus din nregistrri sau rnduri. Fiecare nregistrare este tratat ca o simpl unitate. Fiecare nregistrare este legat de nregistrri ale altei tabele. Cmpuri (atribute). nregistrrile sunt constituite din cmpuri (coloane) . Un cmp este o particul atomic a bazei de date ce reprezint cea mai mic cantitate de informaie care poate fi manipulat. Toate nregistrrile dintr-o tabel au aceleai cmpuri. ntrebarea 3. Relaiile ntre tabele pot fi de mai multe tipuri: relaie unar (n cadrul aceleai tabele), relaia unul-la-unul, relaia unul-la-multe i relaia multe-la-multe (aceste 3 tipuri de relaii fiind relaii ntre dou tabele. ntrebarea 4. Construirea diagramei entitate-relaie este important pentru o vizualizare ct mai clar a ansamblului de obiecte din baza de date. ntrebarea 5. Constrngerile sunt reguli care se definesc la proiectarea unei baze de date i care trebuie s fie respectate de-a lungul existenei acesteia.

56

Proiectarea bazelor de date

Constrngerile sunt de mai multe feluri: n cadrul tabelei o Constrngeri de domeniu o Constrngeri de nuplu o Constrngeri impuse de dependene de date ntre tabele o Constngeri de integritate referenial ntrebarea 6. Procesul de normalizare propus de Codd (1972) urmrete execuia asupra unei tabele a unor serii de teste pentru a cerceta apartenena la forma normal. Codd propune trei forme normale (1NF, 2NF, 3NF), cea mai bun definiie fiind dat mai trziu de Boyce i Codd, fiind cunoscut sub numele de forma normal Boyce-Codd. ntrebarea 7. Indexul unei tabele este o structur de date adiional memorat n baza de date care permite accesul rapid la nregistrrile tabelei prin ordonarea acestora. Indecii sunt de mai multe tipuri: Index primar Index secundar Index de grup Index multinivel Indicaii la lucrarea de verificare Problemele propuse n lucrarea de verificare se fac dup modelele de exemple prezentate n unitatea de nvare sau dup tipicul acestora, astfel: -problema 1 ca exemplul de la pagina 31 -problema 2 ca exemplul de la pagina 33 -problema 3 ca exemplul de la pagina 34-37 -problema 4 ca exemplul de la pagina 38 -problema 5 ca exemplul de la pagina 42 -problema 6 ca exemplul de la pagina 45-47

Bibliografie:
Crstoiu, Dorin, Baze de date relaionale, Editura Printech, 1999 Rdulescu, Florin, Baze de date n Internet, Editura Printech, 2000 Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii i 75 de simulri, Editura Andreco, 2003 57

Proiectarea bazelor de date

Browne, Allen, Balter Alison, Bazele Access 95, Editura Teora, 1999 Pribeanu, Costin, Baze de date i aplicaii, Editura MatrixRom, 2000 Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic, 1994

58

Un limbaj pentru baze de date relaionale

Unitatea de nvare Nr. 4


UN LIMBAJ PENTRU BAZELE DE DATE RELAIONALE (SQL)
Cuprins Obiectivele unitii de nvare nr. 4 4.1. Introducere 4.1.1. Deschiderea i nchiderea aplicaiei Microsoft Access 4.1.2. Crearea unei baze de date noi 4.1.3. nchiderea unei baze de date 4.2. Tipuri de date MICROSOFT Access 4.3. Operatorii logici 4.4. Limbajul standard SQL 4.4.1. Scurt istoric al limbajului SQL 4.4.2. Crearea unei tabele 4.4.3. Salvarea unei tabele 4.4.4. tergerea unei tabele 4.4.5.Modificarea structurii unei tabele 4.5.Modificarea datelor n SQL 4.5.1. Inserarea de noi linii ntr-o tabel 4.5.2. tergerea unor linii dintr-o tabel 4.5.3. Modificarea unor linii dintr-o tabel 4.6. Limbajul de cereri n SQL 4.6.1. Cereri simple Expresii aritmetice Alias de coloan Constante (literali) 4.6.2. Clauza DISTINCT 4.6.3.Clauza ORDER BY 4.6.4. Clauza WHERE Operatorul BETWEEN Operatorul IN Operatorul IS NULL Operatorul LIKE 4.6.5. Funcii de grup 4.6.6. Clauza GROUP BY 4.6.7. Clauza HAVING 4.6.8. Cereri coninnd mai multe tabele Lucrri de verificare a cunotinelor Pagina 61 62 62 63 63 64 66 68 68 69 72 73 74 74 74 75 77 79 79

84 85 86

90 92 93 94 99 59

Un limbaj pentru baze de date relaionale

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Biblliografie

101

102

60

Un limbaj pentru baze de date relaionale

nc de la nceput doresc s v felicit pentru parcurgerea cu succes a primelor trei uniti de nvare i s v urez bun venit la studiul acestei noi uniti de nvare. n primele trei uniti de nvare am realizat o scurt introducere n acest amplu domeniu al bazelor de date, am descris mai n detaliu ce este un sistem de baze de date i n ce const el, dar am nvat i cum se creaz, analizeaz i se proiecteaz corect o baz de date. n aceast unitate de nvare nr. 4 vom studia cum se creaz, se manipuleaz i se terge o baz de date i datele stocate n ea. OBIECTIVELE unitii de nvare nr. 4

Principalele obiective ale unitii de nvare nr. 4 sunt: Dup studiul unitii de nvare nr. 4 vei fi capabil s demonstrezi c ai dobndit cunotine suficiente pentru a nelege: cum se folosete sistemul de baze de date Microsoft Access cum se creeaz i cum se nchide o baz de date Access care sunt tipurile de date disponibile n Access care sunt operatorii folosii n algebra relaional ce este limbajul SQL i care sunt operaiile care se pot efectua n acest limbaj cum se face o interogare ctre baza de date cu ajutorul limbajului SQL cum se face grafic o interogare n Microsoft Access care sunt tipurile de cereri SQL cum se creaz o tabel, cum se modific tabela i informaiile din tabel, cum se insereaz date n tabel, cum se terg datele dintr-o tabel i cum se terge o tabel

61

Un limbaj pentru baze de date relaionale

4.1. Introducere
Pe parcursul acestui capitol vom face referire la baza de date analizat i proiectat n capitolele anterioare. Aceast baz de date se numete Universitate i conine urmtoarele tabele: Facultate(CodFac, Denumire, Adresa, NumeDecan) Studenti(CodStud, CodFac, An, Grupa, Media, Bursa) StudPers(CodStud, CNP, Nume, Init, Prenume, DataNasterii, LocNast, Tata, Mama, Adresa) Materii(CodMaterie, Denumire, An, NumeProfesor) Note(CodNota, CodStud, CodMatrie, Nota, Data) Observaie: Cmpurile subliniate sunt chei primare n fiecare tabel. n acest capitol vor fi prezentate o serie de exemple pentru nelegerea mai exact a limbajului de interogri SQL. Toate exemplele au fost dezvoltate in sistemul de baze de date Microsoft Access. 4.1.1. Deschiderea i nchiderea aplicaiei Microsoft Access Pentru a deschide aceast aplicaie folosim meniul StartPrograms-Microsoft Access.

62

Un limbaj pentru baze de date relaionale

n momentul apsrii Microsoft Access, pe ecranul monitorului apare imaginea specific acestei aplicaii, ce conine: o bar de meniu, o bar de instrumente i o fereastr cu toate tipurile de obiecte care pot fi utilizate n acest program (Tables, Queries, Forms, Reports, etc).

Pentru a nchide aceast aplicaie se va alege opiunea Exit din meniul File sau printr-un clic pe butonul din dreapta sus a ferestrei: . 4.1.2. Crearea unei baze de date noi O baz de date nou se poate deschide folosind opiunea New din meniul File, sau printr-un clic pe simbolul instrumente. din bara de

4.1.3. nchiderea unei baze de date Pentru a nchide o baz de date, fr a nchide i aplicaia Access ce este necesar pentru utilizri ulterioare, se utilizeaz comanda urmtoare:

63

Un limbaj pentru baze de date relaionale

sau se apas pe butonul baza de date.

din colul din dreapa sus al ferestrei cu

O baz de date conine unul sau mai multe tabele. Teste de autoevaluare 1. Deschidei i nchidei aplicaia Microsoft Access. Explicai n cteva cuvinte.

4.2. Tipuri de date MICROSOFT Access


Vom vorbi n continuare despre crearea de tabele n mediul Microsoft Access i despre alocarea unui tip de date corespunztor pentru cmpurile din tabele. Tabelele reprezint obiectele din cadrul bazei de date n care se stocheaz datele. Un tabel este constituit din cmpuri, care sunt coloane ale acelui tabel i crora li se atribuie cte un nume, fiecare avnd un tip de date i o dimensiune bine precizat. Aceast abordare structurat a datelor asigur bazelor de date puterea i viteza de lucru de care au nevoie. Vom alege personal numele fiecrui cmp, tipul i proprietile acestora, n funcie de dorine. nelegerea corect a tipurilor de cmpuri disponibile i a proprietilor acestora ne ofer posibilitatea crerii unor structuri bune i eficiente pentru stocarea i gestionarea datelor. Microsoft Access permite folosirea numelor pentru cmpuri cu o lungime de pn la 64 de caractere inclusiv spaiile nglobate. Este indicat ca numele s fie scurt, fr spaii i denumirea lui s fie ct mai sugestiv. Trebuie precizat tipul de date pe care l conine fiecare cmp. Aceste tipuri de date disponibile n Access sunt: Text Majoritatea cmpurilor folosite n baza de date sunt de tipul text. Pe lng cmpurile care au tipul evident text, cum ar fi: 64

Un limbaj pentru baze de date relaionale

Nume, Adresa, cmpurile text se mai pot folosi i pentru numerele care nu au funcie matematic. De exemplu, se folosesc cmpurile text pentru stocarea numerelor de telefon, a codului potal etc. Dimensiunea prestabilit a unui cmp text n Access este de 50 caractere, dar putem alege orice dimensiunea ntre 1 i 255. Memo Dimensiunea unui cmp de tipul Memo este de 64KB (kilooctei), asta nsemnnd c putem stoca aproximativ 16 pagini de text scris la un rnd pentru fiecare nregistrare. Cmpurile memo constau numai din text. Pot fi incluse secvene de salt la nceput de rnd sau salt la rnd nou, dar nu se accept opiuni de formatare a textului sau indentarea unui paragraf. Numr Tipul numr (Number) include mai multe tipuri care difer prin modul de stocare i viteza de rspuns. Acestea sunt: 1. tipul Byte (Octet), care accept numai valori ntregi pozitive pn la 255 tipul Integer (ntreg), care acoper domeniul numerelor ntregi de la -32768 la 32768 tipul Long Integer (ntreg lung), care reprezint numerele ntregi pn dincolo de limitele de plus i minus 2 miliarde tipul Single, care acoper domeniul numerelor fracionare cu pn la 7 cifre semnificative tipul Double, care acoper domeniul numerelor fracionare cu pn la 14 cifre semnificative tipul ReplicationID (IdentificatorDuplicare), care este reprezentat pe 16 octei i a fost creat cu scopul de a asigura un identificator unic global (GUID: Globally Unique Identifier) pentru bazele de date n cazul crora trebuie realizat sincronizarea unor mari cantiti de date suplimentare, de la mai multe situri.

2.

3.

4.

5.

6.

Dat calendaristic/Or. Microsoft Access stocheaz intern datele calendaristice sub forma unor numere n virgul mobil pe 8 octei, ora fiind reprezentat ca o fraciune dintr-o zi. n general este suficient n majoritatea situaiilor opiunea Short Date (Forma scurt a datei), dei s-ar putea s dorim ca anul s fie reprezentat pe formatul de 4 cifre. Valut . 65

Un limbaj pentru baze de date relaionale

Tipul valut (Currency) acoper valorile n dolari ntregi pn la 15 cifre i valorile zecimale pn la sutimi de cent. Ca reprezentare intern, tipul valut este un numr n virgul fix. Acest format asigur o precizie sporit calculelor financiare, dar este mai lent dect tipurile de numere ntregi sau n virgul mobil. Numr cu incrementare automat n Microsoft Access, datele de tip numr cu incrementare automat (AutoNumber) pot fi secveniale sau aleatoare. Microsoft Access permite stabilirea dimensiunii unui numr cu incrementare automat, prestabilit fiind ntreg lung. Numerele cu incrementare automat sunt atribuite chiar n momentul n care ncepem s adugm o nregistrare nou. n cazul tergerii unei nregistrri existente, nu exist nici o posibilitate de creare a unei alte nregistrri cu acelai numr. Da/Nu Tipul Da/Nu (Yes/No) stocheaz numai valori true sau false (adevrat sau fals). O astfel de valoare poate fi afiat n una din formele True/False, Yes/No sau On/Off.

Obiect OLE Tipul de cmp OLE este destinat pstrrii datelor provenite de la alte programe, care s-au nregistrat ele nsele ca servere OLE n Windows.Aceasta permite bazei de date s stocheze documentele create de programe de prelucrare a textelor, seturi de foi de calcul, ilustraii, sunete, videoclipuri, etc. Program wizard de cutare Programul wizard de cutare (Lookup Wizard) nu este ctui de puin un alt tip de cmp. El reprezint o metod convenabil de crearea a unui cmp care ndeplinete funcia de cutare ntr-un alt tabel. Vom reveni la limbajul SQL. Vom prezenta ca o introducere pentru limbajul SQL, operatorii logici pe care i vom folosi la interogri.

4.3. Operatorii logici


Majoritatea operaiilor algebrei relaionale implic folosirea operatorilor logici, operatori care de obicei ntorc un rezultat boolean rezultat care are valoarea true (adevrat) sau false (fals). Spunem de obicei deoarece dac adugm valoarea null la modelul relaional, lucrurile se complic puin. Null adaug o a treia valoare la setul de valori boolene. Aceast valoare este prezentat pe larg n capitolul anterior. n concluzie, n algebra relaional se folosesc trei valori: true, false, null. 66

Un limbaj pentru baze de date relaionale

Operatorii logici folosii n algebra relaional sunt: AND, OR, XOR. Tabelele de adevr pentru operatorii logici standard sunt: TRUE FALSE NULL AND TRUE FALSE NULL OR TRUE FALSE NULL TRUE TRUE NULL TRUE NULL FALSE NULL NULL NULL TRUE FALSE NULL FALSE FALSE NULL NULL NULL NULL TRUE FALSE NULL

TRUE XOR TRUE FALSE NULL

FALSE NULL

FALSE TRUE NULL TRUE FALSE NULL NULL NULL NULL

Dup cum se vede, null op orice, unde op este un operator logic, ntoarce valoarea null. Ali operatori (=,) sunt prezentai mai jos: TRUE = TRUE FALSE NULL TRUE FALSE NULL TRUE FALSE NULL FALSE TRUE NULL NULL NULL NULL TRUE FALSE NULL FALSE NULL

FALSE TRUE NULL TRUE FALSE NULL NULL NULL NULL

67

Un limbaj pentru baze de date relaionale

SQL ne mai pune la dispoziie nc 2 operatori unari- IS NULL i IS NOT NULL pentru manipularea valorilor nule. IS NULL IS NOT NULL <valoare> TRUE FALSE NULL FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE

<valoare> reprezint orice n afar de valoarea nul.

4.4. Limbajul standard SQL


4.4.1. 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: 68 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

Un limbaj pentru baze de date relaionale

n acest mediu exist dou moduri pentru crearea interogrilor: modul de scriere efectiv a cererilor n partea de Queries sau un mod grafic mult mai prietenos utilizatorului numit Design View. Vom prezenta interogrile i n primul mod: SQL VIEW, dar i n modul grafic. Teste de autoevaluare 2. Care sunt operatorii algebrei relaionale?

3. Ce reprezint prescurtarea SQL?

4.4.2. Crearea unei tabele Comanda de creare de noi tabele n baza de date curent n limbajul SQL standard este CREATE TABLE. Sintaxa urmtoarea: simplificat pentru aceast comand este

CREATE TABLE nume_tabela ( coloana_1 descriere_1, coloana_2 descriere_2, ., coloana_n descriere_n, [alte_descrieri] ) unde coloana_x este numele coloanei, iar descriere_x conine tipul valorilor acelei coloane i alte elemente de descriere pentru ea. n descrierea unei coloane se poate specifica, pe lng tipul valorilor sale i alte constrngeri de integritate ca: NOT NULL indic faptul c valorile aferente coloanei respective nu pot avea valori de tip null, care nu nseamn zero, ci lips de informaie. PRIMARY KEY indic faptul c coloana specificat cu aceast constrngere va fi cheie primar pentru acest tabel. FOREIGN KEY necesit ca fiecare valoare din coloan s existe ntr-o coloan corespondent dintr-o tabel referit. Constrngerea FOREIGN KEY poate face referire doar la 69

Un limbaj pentru baze de date relaionale

coloane care sunt PRIMARY KEY sau UNIQUE n tabela referit. DEFAULT indic o valoare implicit care l ia un cmp al unei tabele.

Interogrile prezentate mai departe vor fi fcute n modul SQL VIEW. Pentru a intra n acest mod ne poziionm pe obiectul Queries i apsm butonul . Va aprea o fereastr pentru alegerea tipului de creare a interogrii. Facem opiunea Design View i vom face opiunea View SQL View din noul meniu sau apsm clic dreapta de la mouse pe fereastra Query i facem opiunea SQL View. Exemplu: Crearea tabelelor cu structura prezentat la nceputul capitolului. create table Facultate( CodFac integer primary key, Denumire text(50), Adresa text(50), NumeDecan text(20)); create table StudPersonal( CodStud integer primary key, CNP integer, Nume Text(25), Init text(3). Prenume text(20), DataNasterii date, LocNast text(50), Tata text(30), Mama text(30), Adresa text(50)); create table Studenti( CodStud integer primary key, CodFac integer, An byte, Grupa text(6), Media double, Bursa integer); create table Materii( CodMaterie integer primary key, Denumire text(30), An byte, NumeProfesor text(50));

70

Un limbaj pentru baze de date relaionale

create table Note ( CodNota integer autonumber primary key, CodStud integer, CodMaterie integer, Nota byte, Data date); Dup rularea acestor fraze SQL vor aprea la obiectul Tables cele 5 tabele noi create. 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 nostru CodFac), se apas clic dreapta i se face opiunea Primary Key.

71

Un limbaj pentru baze de date relaionale

Se salveaz tabela cu un nume dat de utlizator. 4.4.3. 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:

72

Un limbaj pentru baze de date relaionale

4.4.4. 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.

73

Un limbaj pentru baze de date relaionale

4.4.5. Modificarea structurii unei tabele Modificarea structurii unei tabele n limbajul SQL standard se face cu comanda ALTER TABLE. Aceast comand este folosit pentru a aduga coloane la tabele de baz din baza de date sau pentru a terge anumite constrngeri. O nou coloan adaugat prin aceast comand va avea valoarea null n toate nregistrrile care existau n tabel. Sintaxa acestei comenzi este: ALTER TABLE nume_tabela ADD coloana_n descriere_n [DROP constrangere] Exemplu: Adugarea cmpului Ora de tip integer tabelei Note se face astfel: alter table Note add Ora integer; Modificarea structurii 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 modificare i facem opiunea Design. Va aprea o fereastr cu structura tabelei. Se vor face modificrile dorite i apoi se salveaz tabelul.

4.5. Modificri ale datelor n SQL


4.5.1. Inserarea de noi linii ntr-o tabel Comanda INSERT care permite inserarea de noi linii ntr-o tabel are urmtoarea sintax simplificat n limbajul SQL standard: INSERT INTO nume_tabela [(nume_coloana, )] VALUES (valoarea_coloana_1, valoare_coloana_2,) Aceast comand ne permite inserarea manual de noi nregistrri. Dac este prezent lista de coloane (nume_coloana, ) nseamn c se dau doar valori pentru aceste coloane, pentru celelalte asignndu-se valori de null. Exemplu: Introducerea unor nregistrri in tabela Facultate se face astfel: insert into Facultate values (1,Electrotehnica,Noul Local,), (2,Energetica,Noul Local,), 74

Un limbaj pentru baze de date relaionale

(3,Automatica,Noul Local,Dumitru Popescu), (4,Electronica,Leu,), (5,Aeronave,Polizu,), (6,Mecanica,Noul Local,), (7,Transporturi,Noul Local,); Dup rularea aceste fraze SQL, tabela Facultate va arta astfel:

Dac un cmp de tip integer nu conine nici o valoare se va scrie NULL, iar dac este de tip text se va lsa spaiu. Inserarea datelor ntr-un tabel 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 n care dorim s introducem date i facem opiunea Open. Va aprea o fereastr cu datele deja existente n tabel. Se vor face inserrile de date dorite i apoi se salveaz tabelul. 4.5.2. tergerea unor linii dintr-o tabel Sintaxa simplificat a comenzii SQL n limbajul standard care terge liniile dintr-o tabel este urmtoarea: DELETE FROM nume_tabela [WHERE conditie] [LIMIT numar_linii] Efectul acestei comenzi este de tergere a liniilor care ndeplinesc condiia din clauza WHERE. LIMIT se folosete pentru a specifica numrul maxim de linii care se pot terge cu acea comand. n cazul n care clauza WHERE lipsete, toate liniile tabelei vor fi eliminate. Exemplu: tergerea studenilor din tabela Studenti care au media mai mic de 7.

75

Un limbaj pentru baze de date relaionale

delete from Studenti where medie<7; nainte:

Dup rularea acestei interogri se va terge nregistrarea a4-a, aceasta ndeplinind condiia media<7. tergerea datelor dintr-o tabel 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 din care dorim s tergem anumite date i facem opiunea Open. Va aprea o fereastr cu datele existente n tabela respectiv. Pentru a terge o nregistrare ne poziionm n partea stng a nregistrrii dorite pentru tergere, apsm clic dreapta al mouse-ului i facem opiunea Delete Record. Va aprea un mesaj de confirmare:

Se va apsa butonul Yes dac se dorete ntr-adevr tergerea nregistrrii respective sau sa apas butonul No dac se dorete revenirea asupra operaiei de tergere.

76

Un limbaj pentru baze de date relaionale

4.5.3. Modificarea unor linii dintr-o tabel Sintaxa simplificat a comenzii SQL n limbajul standard care modific liniile dintr-o tabel este urmtoarea: UPDATE nume_tabela SET colana1=valoare1, coloana2=valoare2, . [WHERE conditie] [LIMIT numar_linii] 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. Exemplu: 1. Modificarea numelui studentului cu CNP=333333, din Cornel n Vasilescu. update StudPersonal set nume=Vasilescu where CNP=333333; Tabela StudPers nainte:

Tabela StudPers dup:

77

Un limbaj pentru baze de date relaionale

2. Mrirea tuturor burselor studenilor cu 10%. update Studenti set bursa=bursa*1,1; Tabela Studenti nainte:

Tabela Studenti dup:

Modificarea datelor dintr-un tabel 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 modificare i facem opiunea Open. Va aprea o fereastr cu datele deja existente n tabel. Se vor face modificrile asupra datelor dorite i apoi se salveaz tabelul.

Teste de autoevaluare 4. Care sunt operaiile care se pot efectua n cadrul unei baze de date?

78

Un limbaj pentru baze de date relaionale

4.6. 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. 4.6.1. 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. Exemplu: 1. Selectarea tuturor informaiilor din tabela Facultati. select * from Facultate;

Aceast interogare se face n modul grafic astfel: ne poziionm n partea de Queries i facem opiunea pentru crearea manual de interogri sau pentru utilizarea wizardului. Vom exemplifica realizarea unei interogri n Design View, acest lucru fiind posibil apsnd dublu clic pe opiunea .

79

Un limbaj pentru baze de date relaionale

Va aprea o fereastr n care sunt afiate toate tabelele din baza de date.

Vom alege acele tabele necesare pentru interogare. De exemplu, vom realiza o interogare care dup rulare mi va afia toate nregistrrile din tabela Facultate. Vom alege tabela Facultate i n partea de jos alegem ce cmpuri doresc s fie afiate dup rularea interogrii. Caracterul * reprezint toate cmpurile dintr-o tabel.

80

Un limbaj pentru baze de date relaionale

Pentru rularea efectiv a interogrii se apas butonul Run . Rezultatele obinute n urma rulrii vor aprea ntr-o fereastr astfel:

Pentru orice tip de interogare paii care trebuie urmai de utilizatori sunt aceeai. Cei prezentai mai sus. 2. Selectarea tuturor informaiilor din tabela Studenti. select * from Studenti;

n cazul n care se doresc regsite doar o parte a coloanelor unei tabele acestea sunt enumerate n clauza SELECT. Exemplu: Selectarea anului i a mediei din tabela Studenti. select An, Media from Studenti;

81

Un limbaj pentru baze de date relaionale

n clauza SELECT pot fi prezente, pe lng nume de coloane, o serie de alte construcii, cum ar fi: a. Expresii aritmetice Operatorii care pot fi utilizai sunt cei uzuali: +,-,*,/ paranteze. De remarcat c o expresie care conine o valoare nul se evalueaz la NULL. Exemplu: Afiarea mediei, bursa, a bursei+1 i a (bursei+1)*100 din tabela Studenti. select Media, bursa, bursa+1,(bursa +1)*100 from Studenti;

b. Alias de colan n cazul n care clauza SELECT conine expresii, numele coloanelor din rezultat sunt date de acestea. Dac se dorete ca n rezultat coloana respectiv s aib alt nume, acesta se poate specifica cu AS nume_nou. Exemplu: Afiarea numelui studentului cu denumirea Nume_Student, a prenumelui cu denumirea Prenume_Student din tabela StudPersonal. select nume as Nume_Student, prenume as Prenume_Student from StudPersonal;

82

Un limbaj pentru baze de date relaionale

Dac se dorete ca aliasul s conin spaii el trebuie pus ntre apostrofi: select CNP, nume as Nume Student, prenume as Prenume Student from StudPersonal;

c. Constante (literali) Dac n lista SELECT se gsesc i constante atunci pe acele coloane toate liniile rezultatului vor conine valorile respective: Exemplu: Selectarea numelui studentului, textul este nscut la data de i DataNasterii din tabela StudPersonal. select nume, este nascut la date de, DataNasterii from StudPersonal;

83

Un limbaj pentru baze de date relaionale

4.6.2. Clauza DISTINCT n cazul cererilor de pn acum din fiecare linie a tabelei rezult o linie a rezultatului, chiar dac uneori unele linii sunt identice, ca n cazul urmtor: Exemplu: Afiarea codului numeric al facultii pentru care exist studeni n tabela Studenti; select CodFac from Studenti;

Pentru a elimina liniile duplicat ale unui rezultat se folosete clauza DISTINCT care apare ntre cuvntul cheie SELECT i lista de elemente ale rezultatului. select distinct CodFac from Studenti;

84

Un limbaj pentru baze de date relaionale

4.6.3. Clauza ORDER BY Ordinea n care apar liniile unui rezultat este dat de modul n care un sistem de gestiune stocheaz i regsete informaia n tabele. Din aceast cauz n limbajul SQL exist posibilitatea de a sorta liniile unui rezultat n funcie de necesitile utilizatorului. Criteriile de sortare se definesc cu ajutorul clauzei ORDER BY. Aceasta este n mod normal ultima clauz care apare ntr-o cerere i poate conine nume de coloane, aliasuri de coloane sau numrul de ordine al coloanei n rezultat. Cnd sunt specificate mai multe criterii ele se aplic de la stnga la dreapta. Exemplu: Afiarea CNP, nume, prenume, data naterii StudPersonal ordonai dup nume i prenume. din tabela

select CNP, Nume, Prenume, DataNasterii from StudPersonal order by nume, prenume;

Dup cum se poate observa ordinea de sortare implicit este cea ascendent (cresctoare): Pentru numere - de la valoarea cea mai mic la cea mai mare Pentru iruri de caractere - ordinea este cea lexicografic, din dicionar Pentru date calendaristice - de la cea mai veche dat la cea mai nou

Inversarea ordinii implicite se poate face pentru fiecare criteriu de sortare n parte folosind cuvntul cheie DESC (descendent) plasat dup criteriul respectiv.

85

Un limbaj pentru baze de date relaionale

O problem important este tratarea valorilor nule (NULL) de clauza ORDER BY. Aceste valori sunt considerate a fi mai mici dect orice alt valoare, deci vor apare primele pentru sortarea implicit i ultimele pentru sortarea descendent. Exemplu: Afiarea n ordine ascendent a rezultatului dup valoarea bursei i o sortare descendent dup codul studentului n tabela Studeni. select CodStud, Bursa from Studenti order by Bursa, CodStud desc;

4.6.4. Clauza WHERE Pn acum, n afara cazurilor n care se utilizeaz DISTINCT, din fiecare linie a tabelei rezult o linie a rezultatului. Prin folosirea clauzei WHERE se poate specifica o condiie care indic liniile din tabela care vor avea asociat cte o linie din rezultat. Exemplu: Afiarea media i valoarea bursei pentru studenii de la facultatea cu codul 3 din tabela Studenti. select Media, Bursa from Studenti where CodFac=3;

86

Un limbaj pentru baze de date relaionale

Operatorii care se pot folosi sunt cei obinuii: Egal: = Mai mic, mai mic sau egal: <, Mai mare, mai mare sau egal: >, Diferit: , != De asemenea se pot folosi paranteze i conectori logici: AND sau && (pentru i) OR sau || (pentru sau) NOT sau ! (pentru negare, inversarea condiiei)

Exemplu: Afiarea codului facultii, media, grupa, anul i valoarea bursei pentru studenii care au bursa egal cu 4400000 i media mai mare sau egal cu 9 sau sunt la facultatea cu codul 3. select CodFac, Media, Grupa, An, Bursa from Studenti where (Bursa=4400000 and media>=9) or CodFac=3;

Pe lng operatorii de mai sus care sunt prezeni n majoritatea limbajelor de programare exist ns n SQL patru operatori specifici. Acetia au fost introdui pentru a simplifica anumite categorii de cereri sau pentru a specifica condiionri care nu pot fi exprimate prin operatori obinuii. Aceti operatori sunt: a. Operatorul BETWEEN

Sintaxa: between valoare_initiala and valoare_finala Operatorul between indic o plaj de valori incluznd valorile din capetele acestuia, cele indicate. Este un operator derivat, astfel de condiii putnd fi scrise folosind >=, AND,<= i a fost introdus pentru ca cererile s fie mai apropiate de exprimarea n limba englez.

87

Un limbaj pentru baze de date relaionale

Exemplu: Afiarea codului facultii, media, grupa pentru studenii care au media cuprins ntre 8 i 9 inclusiv. select CodFac, Media, Grupa from Studenti where media between 8 and 9;

b.

Operatorul IN

Sintaxa: IN (v1,v2,...vk) Operatorul IN indic apartenena la o mulime de valori (v1,v2,...vk). Este de asemenea un operator derivat, dar este foarte util pentru simplificarea scrierii cererilor n cazul n care mulimea conine un numr mare de valori. Exemplu: Afiarea codului facultii, codul studentului, grupa, bursa pentru studenii care au codul facultaii 1 sau 3. select CodFac, CodStud, Grupa, Bursa from Studenti where CodFac in (1,3);

c.

Operatorul IS NULL

Operatorul IS NULL a fost introdus pentru a se putea testa dac o valoare a unei expresii este nul, deoarece valorile nule nu pot fi detectate cu operatori de comparaie obinuii.

88

Un limbaj pentru baze de date relaionale

Exemplu: Afiarea codului facultii, codul studentului, grupa pentru studenii care nu au bursa. select CodFac, CodStud, Grupa from Studenti where bursa is null;

Pentru negarea acestui operator s-a fcut fcut i o excepie de la sintaxa standard a expresiilor. Astfel n loc de not is null, sintaxa SQL prevede forma IS NOT NULL. Exemplu: Afiarea codului facultii, codul studentului, grupa pentru studenii care au bursa. select CodFac, CodStud, Grupa from Studenti where bursa is not null;

d.

Operatorul LIKE

Sintaxa: LIKE sablon Operatorul LIKE a fost introdus pentru a se putea testa potrivirea valorii unei expresii cu un ablon. ablonul poate conine caractere care vor fi cutate aa cum sunt i caracterele speciale: % nsemnnd orice ir de caractere (inclusiv unul vid) _ nsemnnd orice caracter De exemplu 'I_S%L' este un ablon pentru un ir de cel puin 4 caractere care ncepe cu litera I, are al treilea caracter S i 89

Un limbaj pentru baze de date relaionale

ultimul caracter este L. Cu acest ablon se potrivesc de exemplu irurile: INSTABIL, IXSTL, IOSL. Operatorul se poate folosi inclusiv pentru expresii de alt tip dect irurile de caractere, valoarea acestora fiind nti convertit la ir de caractere i apoi verificat potrivirea cu ablonul. Exemplu: 1. Afiarea codul studentului, numelui, prenumelui, data naterii pentru studenii care au numele format din 5 litere din tabela StudPeronal. select CodStud, Nume, Prenume, DataNasterii from StudPersonal where nume like_____; 2. Afiarea codul studentului, numelui, prenumelui, data naterii pentru studenii care au prenumele care ncepe cu litera A din tabela StudPeronal. select CodStud, Nume, Prenume, DataNasterii from StudPersonal where Prenume like A%; 4.6.5. Funcii de grup. Clauzele GROUP BY i HAVING Exist multe cazuri n care se dorete obinerea de date statistice din informaiile coninute n baza de date. Pentru aceasta se folosesc funciile de grup, care pe baza nregistrrilor din ntreaga tabel sau a celor care fac parte dintr-un grup - n cazul existenei clauzei GROUP BY - calculeaz valoarea statistic respectiv. Principalele funcii de grup sunt: a. Funcia COUNT (numrare) avnd mai multe forme: COUNT(*) ntoarce numrul de nregistrri din grup COUNT(expr) ntoarce numrul de valori nenule pentru expresia argument COUNT(DISTINCT expr) ntoarce numrul de valori distincte pentru expresia argument b. Funcia AVG (medie) AVG(expr) ntoarce media aritmetic a valorilor unei expresii c. Funcia MIN (valoarea minim) MIN(expr) ntoarce valoarea minim a unei expresii 90

Un limbaj pentru baze de date relaionale

d. Funcia MAX (valoarea maxim) MAX(expr) ntoarce valoarea maxim a unei expresii Funciile Min i MAX se pot aplica i irurilor de caractere, n acest caz se folosete ordinea lexicografic. e. Funcia SUM (suma valorilor) SUM(expr) ntoarce suma valorilor unei expresii sau NULL n cazul n care n grupul pentru care se calculeaz suma este vid. Valorile nule nu sunt luate n considerare la calcularea sumei. Aa cum am menionat, n cazul n care cererea nu conine clauza GROUP BY valoarea funciilor este calculat pentru ntreaga tabel specificat n clauza FROM. Exemplu: Afiarea valorii minime, maxime i media pe coloana media, suma pe coloana bursa i numrul de nregistrri din tabela Studenti. select min(Media), max(Media), avg(Media), sum(Bursa), count(*) from Studenti;

Funciile de grup se pot folosi i n conjuncie cu celelalte clauze discutate anterior. Exemplu: Afiarea mediei mediilor studenilor de la facultatea cu codul 3. select avg(Media) from Studenti where CodFac=3;

91

Un limbaj pentru baze de date relaionale

4.6.6. Clauza GROUP BY Clauza GROUP BY se folosete pentru a grupa nregistrrile pe baza unor criterii n scopul calculrii de valori statistice pentru fiecare grup n parte. n acest caz rezultatul cererii va conine cte o linie pentru fiecare grup identificat. Sintaxa: GROUP BY coloana1 [, coloana2] Exemplu: 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. select Bursa,count(*),sum(Bursa) from Studenti group by Bursa;

n cazul n care n GROUP BY apar mai multe coloane, un grup va fi construit din toate nregistrrile care au valori comune pe toate coloanele specificate. Exemplu: select CodFac,Bursa,sum(Bursa) from Studenti where CodFac in (2, 3) group by CodFac,Bursa;

92

Un limbaj pentru baze de date relaionale

Atenie: n cazul folosirii funciilor de grup n clauza SELECT nu pot apare alturi de acestea dect valori care sunt constante pentru fiecare grup n parte- n principal numele coloanelor dup care s-a fcut gruparea. De exemplu, cererile urmtoare sunt greite: select CodFac,max(Media), avg(Media) from Studenti; select CodStud, Bursa, sum(Bursa) from Studenti group by CodFac; 4.6.7. Clauza HAVING Dac WHERE introduce o condiie de filtrare a nregistrrilor, HAVING face acelai lucru pentru grupuri: doar grupurile care ndeplinesc condiia coninut n aceast clauz vor avea o linie n rezultatul cererii. Condiia specificat prin HAVING este o expresie logic incluznd funcii de grup sau constante la nivel de grup. Exemplu: O cerere n dou variante: fr i apoi cu o clauz HAVING care elimin o parte din grupuri. select CodFac, count(*) as NumarStudenti, avg(Media) as MediaFacultatii from Studenti group by CodFac;

select CodFac, count(*) as NumarStudenti, avg(Media) as MediaFacultatii from Studenti group by CodFac having avg(Media)>8;

93

Un limbaj pentru baze de date relaionale

4.6.8. Cereri coninnd mai multe tabele Operaia prin care se obine un rezultat pe baza datelor din mai multe tabele se numete JOIN. Pentru a se putea efectua un JOIN este n general necesar ca tabelele s aib coloane comune, cum este cazul CodFac care se gsete att n tabela Studenti, ct i n tabela Facultate. n cazul n care clauza FROM sunt specificate mai multe tabele toate celelalte clauze sunt evaluate pornind de la produsul cartezian al tabelelor. Acesta este obinut (teoretic) prin concatenarea fiecrei linii a unei tabele cu fiecare dintre liniile celorlalte tabele. De exemplu, n tabelele de mai sus, produsul cartezian va conine 7X7=49 lini, deoarece sunt 7 linii n tabela Studenti i 7 linii n tabela Facultate. Pentru eliminarea liniilor inconsistente cum este concatenarea nregistrrii unui student al facultii 1 cu nregistrrea facultii 2 este necesar ca n clauza WHERE s existe aanumita condiie de join. n cazul existenei de coloane comune ntre tabele, aceasta este o condiie de egalitate a valorilor acelor coloane. Exemplu: 1. Afiarea numelui i prenumelui studentului (din tabela StudPers) i a grupei din care face parte, anul i media (informaii aflate n tabela Studenti). select Nume,Prenume,Grupa,An,Media from Studenti,StudPersonal where Studenti.CodStud=StudPersonal.CodStud;

94

Un limbaj pentru baze de date relaionale

Condiia de JOIN este Studenti.CodStud=StudPersonal.CodStud, unde construcia tabela.coloana a fost folosit deoarece cmpul CodStud este n ambele tabele cu acelai nume. 2. 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). select Denumire,Nume,Prenume,Grupa,An,Media from Facultate,Studenti,StudPersonal where Studenti.CodStud=StudPersonal.CodStud and Facultate.CodFac=Studenti.CodFac;

2. 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. Vom folosi aliai pentru numele tabelelor. select Denumire,Nume,Prenume,Grupa,An,Media from Facultate F,Studenti S,StudPersonal P where S.CodStud=P.CodStud and F.CodFac=S.CodFac order by Denumire;

F, S, P sunt aliaii tabelelor (nu este obligatorie folosirea cuvntului cheie as). Folosirea numelui de tabel sau a aliasului ca prefix pentru un nume de coloan este obligatorie doar n cazul n care pot aprea confuzii.(coloane cu acelai nume n mai multe tabele), dar nu va fi semnalat eroare dac se folosesc i pentru celelalte coloane.

95

Un limbaj pentru baze de date relaionale

3. Afiarea numelui studenilor care au nota la materia cu numele Analiz. select Nume, Denumire, Nota from Studenti S, Materii M, Note N where S.CodStud=N.CodStud and M.CodMaterie=N.CodMaterie and M.Denumire=Analiza;

Pentru acest exemplu vom utiliza i modul grafic care va genera rezultatul de mai sus. Pasul 1: Ne poziionm pe obiectul Queries i se va deschide urmtoarea fereastr.

Pasul 2: Apsm dublu clic pe opiunea Create query in Design view i se va deschide fereastra care conine toate tabelele din baza noastr de date:

96

Un limbaj pentru baze de date relaionale

Pasul 3: Alegem tabelele care ne sunt necesare pentru interogare. n cazul nostru StudPersonal, Materii i Note, apsnd pe rnd butonul Add.

Pasul 4: Se aleg pentru fiecare tabel cmpurile care trebuie afiate i se seteaz un criteriu dac acesta exist.

97

Un limbaj pentru baze de date relaionale

Pasul 5: Se apas ! (Run) i se va afia rezultatul frazei SQL.

98

Un limbaj pentru baze de date relaionale

Lucrarea de verificare a cunotinelor 1 1.Creai baza de date Universitate. 2.Creai baza de date Companie Lucrarea de verificare a cunotinelor 2 1. Creai tabelele din baza de date Universitate n modul grafic. 2. Creai tabelele din baza de date Companie. Structura bazei de date Companie este cea proiectat n capitolul anterior. Lucrarea de verificare a cunotinelor 3 1. Creai n baza de date Universitate o tabel suplimetar numit Test cu un cmp numit testare cu tipul de date text (n modul grafic). 2. Modificai structura tabelei Test adugnd un cmp numit Nou cu tipul de date asociat Integer (n modul grafic). 3. tergei tabela Test din baza de date Universitate (n modul grafic). Lucrarea de verificare a cunotinelor 4 Introducei date n tabelele din baza de date Companie, folosind modul grafic, dar i modul SQL view. Lucrarea de verificare a cunotinelor 5 Realizai n modul SQL View i n modul grafic urmtoarele interogri: 1. tergei din baza de date Universitate materia care este predat de profesorul M.Olteanu. 2. tergei din baza de date Universitate toi studenii care s-au nscut n oraul Constana. 3. tergei dintr-un tabel al bazei de date Companie, 2 nregistrri, dup un criteriu ales de Dvs. Lucrarea de verificare a cunotinelor 6 Realizai n modul SQL View i n modul grafic urmtoarele interogri: 1. Modificai n baza de date Universitate Adresa la faculti cu denumirea Splaiul Independenei. 2. Modificai anul de studiu al tuturor studenilor care au media

99

Un limbaj pentru baze de date relaionale

>5, acetia fiind considerai promovai n anul de studiu curent. 3. Modificai un tabel al bazei de date Companie, dup un criteriu ales de Dvs. Lucrarea de verificare a cunotinelor 7 Realizai n modul SQL View i n modul grafic urmtoarea interogare: 1. Afiai toate datele stocate n tabela StudPers. Lucrarea de verificare a cunotinelor 8 Realizai n modul SQL View i n modul grafic urmtoarele interogri: 1. Afiai notele i data efecturii testrii pentru toate nregistrrile din tabela Note. 2. Afiai numele facultii i adresa din tabela Facultati folosind aliaii de coloan Nume facultate i Adres facultate. 3. Afiai cmpurile nume facultate, nume decan i ntre acestea textul are decanul din tabela Facultate. Lucrarea de verificare a cunotinelor 9 Realizai n modul SQL View i n modul grafic urmtoarele interogri: 1. Afiai notele distincte care exist salvate n baza de date. 2. Afiai n ordine ascendent n funcie de data naterii toi studenii din tabelul StudPers. 3. Afiai n ordine descendent toate nregistrrile din tabela Note, ordonai dup ID-ul facultii. 4. Afiai toate materiile din anul 1. 5. Afiai toi studenii care sunt nscui n Bucureti sau n judeul Teleorman. 6. Afiai toate grupele cu studenii care au media ntre 7 i 9 sau aparin de facultile care au codul facultii 1 sau 2. 7. Afiai toate numele studenilor care ncepe cu A i prenumele cu I. Lucrarea de verificare a cunotinelor 10 Realizai n modul SQL View i n modul grafic urmtoarele interogri: 1. Afiai numrul de faculti din universitate. 2. Afiai care este cea mai mic i cea mai mare not obinut de studenii de la facultatea cu id-ul 3. 3. Afiai nota obinut de studentul cu numele Ionescu la materia Analiz. 4. Afiai grupele care exist n fiecare facultate grupate pe ani. 100

Un limbaj pentru baze de date relaionale

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare ntrebarea 2. Operatorii din algebra relaionl sunt AND, OR, XOR, =, , IS NULL, IS NOT NULL. n limbajul standard SQL mai exist i sunt folosii i ali operatori ca: BETWEEN, IN etc. ntrebarea 3. Termenul SQL reprezint o prescurtare a Structured Query Language. El a fost 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. ntrebarea 4. Operaii de baz care se pot efectua n cadrul unei baze de date sunt: 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 Indicaii la problemele propuse Problemele propuse n lucrrile de verificare se fac dup modelele de exemple prezentate n unitatea de nvare sau dup tipicul acestora.

101

Un limbaj pentru baze de date relaionale

Bibliografie:
Crstoiu, Dorin, Baze de date relaionale, Editura Printech, 1999 Rdulescu, Florin, Baze de date n Internet, Editura Printech, 2000 Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii i 75 de simulri, Editura Andreco, 2003 Browne, Allen, Balter Alison, Bazele Access 95, Editura Teora, 1999 Pribeanu, Costin, Baze de date i aplicaii, Editura MatrixRom, 2000 Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic, 1994

102

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

Unitatea de nvare Nr. 5


CONSTRUIREA INTERFEELOR CU AJUTORUL FORMULARELOR N MICROSOFT ACCESS
Cuprins Obiectivele unitii de nvare nr. 5 5.1. Ce este un formular? 5.2. Lucrul cu formularele 5.2.1. Deschiderea unui formular 5.2.2. Crearea unui formular 5.2.4. Utilizarea unui formular pentru a introduce i a modifica date n tabel 5.2.4. Parcurgerea nregistrrilor utiliznd formularele 5.2.5. Adugarea i modificarea textului n antet i subsol 5.2.6. tergerea unui formular 5.3. Salvarea i nchiderea unui formular Lucrare de verificare a cunotinelor Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Bibliografie Pagina 104 105 105 105 105 109 110 110 112 112 113 114 114

103

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

nc de la nceput doresc s v felicit pentru parcurgerea cu succes a primelor patru uniti de nvare i s v urez bun venit la studiul acestei noi uniti de nvare. n primele patru uniti de nvare am realizat o scurt introducere n acest amplu domeniu al bazelor de date, am descris mai n detaliu ce este un sistem de baze de date i n ce const el, am studiat i cum se creaz, analizeaz i se proiecteaz corect o baz de date, dar am studiat i cum se gestioneaz datele stocate n baza de date. n aceast unitate de nvare nr. 5 vom studia cum se creaz, se manipuleaz i se terge un formular pentru introducerea datelor n baza de date. OBIECTIVELE unitii de nvare nr. 5

Principalele obiective ale unitii de nvare nr. 5 sunt: Dup studiul unitii de nvare nr. 5 vei fi capabil s demonstrezi c ai dobndit cunotine suficiente pentru a nelege: ce este un formular la ce se folosesc formularele din Access cum se creeaz un formular pentru o tabel a bazei de date Access

cum se utilizeaz un formular pentru introducerea datelor ntr-o tabel i pentru modificarea datelor ntr-o tabel cum se salveaz un formular cum se terge un formular

104

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

5.1. Ce este un formular?


Formularele (Forms) reprezint ferestrele primare folosite pentru introducerea i afiarea datelor n Access. Formularele v permit s prezentai datele ntr-o form care l scutete pe utilizator de preocuprile legate de modul de stocare al acestora. Se pot crea formulare diferite pentru utilizri diferite: introducerea unor intregistrri noi, editarea celor existente, numai pentru afiare sau formulare care funcioneaz pur i simplu ca nite casete de dialog.

5.2. Lucrul cu formularele


5.2.1. Deschiderea unui formular Dac exist deja creat un formular, acesta se poate deschide prin apsarea dublu clic pe respectivul formular din obiectul Forms. Toate formularele create ntr-o baz de date se vor gsi n obiectul Forms. 5.2.2. Crearea unui formular Pentru a crea un formular nou vom alege obiectul Forms din fereastra Database i se apeleaz meniul Insert cu opiunea Forms. Va aprea o fereastr cu mai multe tipuri de programe wizard pentru formulare:

Design View (modul proiectare) permite crearea tuturor elementelor manual Form Wizard ofer posibilitatea controlrii fiecrei etape a procesului 105

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

AutoForm: Columnar (Configurare automat a formularului: aezare n coloan) creaz un formular cu controalele aliniate unul sub cellalt (configuraie corespunztoare pentru un formular principal) AutoForm: Tabular (Configurare automat a formularului: aezare tabelar) creaz un formular cu controalele aliniate unul lng cellalt (configuraie corespunztoare pentru un subformular) AutoForm: DataSheet (Configurare automat a formularului: modul DataSheet) creaz un formular avnd modul de afiare prestabilit DataSheet (configuraie corespunztoare pentru afiarea numrului maxim posibil de nregistrri deodat) Chart Wizard (program pentru reprezentri grafice) creaz un grafic. Pentru a obine un grafic tiprit, se folosete un raport n loc de formular PivotTable Wizard (program pentru tabele pivot) creaz un formular pentru afiarea datelor din Excel.

Sub lista programelor wizard se afl o caset cu list derulant n care trebuie s selectai tabelul sau interogarea care va servi ca surs de date pentru formular. n cazul unui formular caset de dialog, caseta pentru precizarea sursei de date poate fi lsat necompletat. Exemplu: Vom exemplifica crearea unui formular nou pentru introducerea datelor n tabela Facultate, folosind opiunea Create by using wizard, urmnd paii necesari pentru a crea formularul dorit. Pas 1: Se alege tabela creia dorii s i creai formularul i se apas butonul Next.

106

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

Pas 2: n aceast etap se alege modul n care s fie afiate atributele n formular i se apas Next

Pas 3: n aceast etap se pot alege din stilurile predefinite, stilul pe care l dorii s l conin formularul.

107

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

Pas 4: Aceasta este etapa final, n care v alagei numele dorit penrtu formular i dac dorii s introducei date n tabel cu ajutorul formularului.

108

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

Pentru a salva un formular se face opiunea Save din meniul File. 5.2.3. Utilizarea unui formular pentru a introduce i a modifica date n tabel Avnd deschis forma, putei introduce i modifica date n tabela corespunztoare formularului.

Pentru a introduce date n tabel cu ajutorul formularului . Acesta ne va poziiona pe o nou trebuie apsat butonul nregistrare i vom putea introduce noile date. Ne vom poziiona cu cursorul n cmpurile de editare i vom introduce datele corespunztoare noii nregistrri. Pentru a modifica date n tabel cu ajutorul formularului trebuie s ne poziionm pe nregistrarea dorit cu ajutorul mouse-ului i apoi se modific datele dorite. Exemplu: De exemplu, dorim ca la nregistrarea de mai sus s completm numele decanului. Pentru aceasta ne poziionm pe respectiva nregistrare i apoi n dreptul atributului NumeDecan introducem numele dorit. Dup realizarea modificrilor, prin nchiderea formularului, modificrile vor fi actualizate n tabel.

109

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

5.2.4. Parcurgerea nregistrrilor utiliznd formularele Cu ajutorul formularelor putem parcurge toate nregistrrile unei tabele. Acest lucru l putem realiza cu ajutorul butoanelor existente n partea de jos a formularului.

Butonul se folosete pentru poziionarea pe prima nregistrare a tabelei Butonul se folosete nregistrarea anterioar Butonul urmtoare pentru rentoarcerea la

se folosete pentru trecerea la nregistrarea

Butonul se folosete pentru poziionarea pe ultima nregistrare a tabelei Butonul nou. se folosete pentru a aduga o nregistrare

5.2.5. Adugarea i modificarea textului n antet i subsol Pentru a putea face modificri n cadrul unui formular, mai exact dac dorim adugarea unui text sau a unei imagini n antetul sau subsolului unui formular este necesar s deschidem formularul n modul Design al formularului apsnd butonul sau fcnd opiunea Design View, care apare la apsarea clic dreapta pe respectivul formular.

110

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

Pe ecran va aprea constructorul de formulare n care putei modifica ceea ce dorii. Va aprea i o bar de instrumente corespunztoare constructorului de formulare, prin intermediul creia putem realiza diferite modificri n formular.

Exemplu: De exemplu, dorim s scriem n antet Formular pentru introducerea datelor . Pentru asta va trebui s facem loc n partea antetului csuei de text, trgnd efectiv cu mouse-ul antetul i apoi n spaiul creat introducem textul dorit. Pentru a introduce un text trebuie apsat butonul de pe bara de instrumente. Dup apsarea acestui buton selectai locul unde dorim poziionarea textului i apoi vom introduce textul.

Dup introducerea textului se salveaz forma pentru a vedea modificrile fcute asupra ei. Forma final a formularului este:

111

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

Asemntor se poate modifica i subsolul formularului, sau putem introduce imagini n formulare folosind comanda InsertPicture. 5.2.6. tergerea unui formular Putem terge un formular prin mai multe metode. Primul pas pentru orice metod este selectarea formularului dorit pentru tergere i apoi fie apsm butonul Delete din tastatur, fie apsnd butonul existent n parte de sus a ferestrei, fie apsnd clic dreapta i fcnd opiunea Delete. Pe ecran va aprea o caset de dialog n care se cere confirmarea tergerii formularului.

Apsnd butonul Yes se confirm tergerea formularului, iar apsnd No se renun la operaia de tergere.

5.3. Salvarea i nchiderea unui formular


Pentru salvarea formularului sau a oricrei modificri fcute asupra lui, se apas butonul Save existent pe bara de instrumente a aplicaiei, sau fcnd opiunea Save din meniu. Pentru nchiderea formularului sau se apas butonul din partea dreapt a ecranului sau fcnd opiunea Close din meniu.

112

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

Lucrare de verificare a cunotinelor 1. Creai un formular pentru introducerea datelor personale despre studeni pentru baza de date Universitate cu titlul Date personale studeni i salvai-l cu numele Personal. 2. Introducei dou nregistrri n tabela StudPersonal cu ajutorul formularului creat la exerciiul 1. 3. Modificai o nregistrare care deja exist n tabela StudPersonal cu ajutorul formularului creat la exerciiul 1 i apoi nchidei formularul.

Teste de autoevaluare 1. Ce este un formular?

2. Care sunt operaiile care se pot realiza asupra unor formulare?

3. Descriei tipurile de programe wizard disponibile pentru crearea de formulare.

113

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare ntrebarea 1. Formularele (Forms) reprezint ferestrele primare folosite pentru introducerea i afiarea datelor n Access. ntrebarea 2. Operaiile care se pot efectua asupra unor formulare sunt de creare, de modificare, de salvare i de tergere. ntrebarea 3. Rspunsul la aceast ntrebare este mai amplu i este descris cu amnuntul la nceputul acestui capitol.

Indicaii la problemele propuse Problemele propuse sunt aezate dup un exemplu. Fiecare problem propus se face dup modelul de exemplu prezentat naintea ei sau dup tipicul acesteia.

Bibliografie:
Crstoiu, Dorin, Baze de date relaionale, Editura Printech, 1999 Rdulescu, Florin, Baze de date n Internet, Editura Printech, 2000 Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii i 75 de simulri, Editura Andreco, 2003 Browne, Allen, Balter Alison, Bazele Access 95, Editura Teora, 1999 Pribeanu, Costin, Baze de date i aplicaii, Editura MatrixRom, 2000 Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic, 1994

114

Rapoarte n MICROSOFT Access

Unitatea de nvare Nr. 6


RAPOARTE N MICROSOFT ACCESS
Cuprins Obiectivele unitii de nvare nr. 6 6.1. Ce este un raport? 6.2. Lucrul cu rapoarte 6.2.1. Deschiderea unui raport 6.2.2. Crearea unui raport 6.2.3. Adugarea i modificarea textului n antet i subsol 6.2.5. tergerea unui raport 6.3. Salvarea i nchiderea unui raport Lucrare de verificare a cunotinelor Rspunsuri i comentarii la ntrebrile din testele de autoevaluare Biblliografie Pagina 116 117 117 117 117 123 125 125 125 127 127

115

Rapoarte n MICROSOFT Access

nc de la nceput doresc s v felicit pentru parcurgerea cu succes a primelor cinci uniti de nvare i s v urez bun venit la studiul acestei noi uniti de nvare. n primele cinci uniti de nvare am realizat o scurt introducere n acest amplu domeniu al bazelor de date, am descris mai n detaliu ce este un sistem de baze de date i n ce const el, am nvat i cum se creaz, analizeaz i se proiecteaz corect o baz de date, dar am studiat i cum se gestioneaz datele stocate n baza de date. n unitatea de nvare anterioar am nvat cum se creaz, se manipuleaz i se terge un formular pentru introducerea datelor n baza de date. n aceast unitate de nvare vom studia ce sunt rapoartele, cum se creaz i cum se manipuleaz ele.

OBIECTIVELE unitii de nvare nr. 6

Principalele obiective ale unitii de nvare nr. 6 sunt: Dup studiul unitii de nvare nr. 6 vei fi capabil s demonstrezi c ai dobndit cunotine suficiente pentru a nelege: la ce se folosesc rapoartele din Access cum se creeaz un raport de date stocate n Access

cum se salveaz un raport cum se terge un raport

116

Rapoarte n MICROSOFT Access

6.1. Ce este un raport?


n timp ce formularul este proiectat pentru lucrul pe ecran (dei i el poate fi tiprit), raportul este proiectat n primul rnd pentru tiprire ( cu toate c i el poate fi afiat pe ecran). Pe lng aceast deosebire de destinaie, exist i o diferen conceptual major ntre formular i raport. Formularul este proiectat pentru accesul aleator la date. Dup ce obine accesul la o anumit nregistrare, utilizatorul poate trece la sfritul formularului pentru a aduga o nregistrare nou sau se poziioneaz la nceputul formularului pentru cutarea unei alte nregistrri. n concluzie, formularul se bazeaz pe un set dinamic de date, date care trebuie actualizate cu toate modificrile efectuate de ali utlizatori n timpul utilizrii formularului. Pe de alt parte, raportul nu modific niciodat datele, fiind necesar parcurgerea secvenial a nregistrrilor pentru a genera subtotaluri i rezumate. n locul unui set dinamic de date, Microsost Access folosete o copie protejat la scriere a datelor care este citit n secven, numit snapshot. Un raport trebuie creat pentru orice intenionm s tiprim cu regularitate, fie c este vorba de un listing simplu, o list de etichete potale, o colecie de grafice sau un rezumat sau o analiz financiar complex. Raportul ne ofer de asemenea posibilitatea prelucrrii datelor n scopul obinerii unor rezultate sintetice: totaluri, subtotaluri etc. Datele pot fi grupate pe un numr de pn la zece niveluri diferite, fiecare cu propriile sale informaii sintetice.

6.2. Lucrul cu rapoarte


6.2.1. Deschiderea unui raport Dac exist deja creat un raport, acesta se poate deschide prin apsarea dublu clic pe respectivul raport din obiectul Reports. Toate rapoartele create ntr-o baz de date se vor gsi n obiectul Reports. 6.2.2. Crearea unui raport Pentru a crea un raport nou vom alege obiectul Reports din fereastra Database i se apas dublu clic pe opiunea . pentru crearea de rapoarte cu ajutorul Wizard-ului. Va trebui s parcurgem paii necesari pentru a crea raportul dorit.

117

Rapoarte n MICROSOFT Access

Exemplu: Vom exemplifica crearea unui raport nou pentru afiarea datelor n tabela Facultate, folosind opiunea Create report by using wizard, urmnd paii necesari pentru a crea raportul dorit. Pas 1: Se alege tabela (sau tabelele) cre conine cmpurile care trebuie s fie coninute n raport i se apas Next. Mai exact, putem crea un raport care s conin numai anumite cmpuri dintr-o tabel i alte cmpuri din alte tabele, acest lucru fcnduse alegnd tabela corespunztoare i selectnd cmpurile dorite. Selectarea cmpurilor dintr-o tabel se face astfel: se poziioneaz pe respectivul cmp i se apas butonul . Dac dorim ca toate cmpurile dintr-o tabel s apar n raport se apas butonul . Pentru deselectrarea cmpurilor . ne , iar poziionm pe cmpul respectiv i se apas butonul pentru desectarea tututror cmpurilor se apas butonul

Observaie: Pentru a putea genera rapoarte cu date din mai multe tabele, trebuie nainte create relaiile ntre tabele. Pentru a crea aceste relaii dintre tabele se face opiunea Tools din meniu i se alege Relations. Va aprea o fereastr pentru alegerea tabelelor ntre care dorim crearea de relaii.

118

Rapoarte n MICROSOFT Access

Pentru a crea relaii ntre toate tabelele ne poziionm pe fiecare dintre ele i apsm butonul Add. Va aprea o fereastr n care sunt afiate toate tabelele ntre care vom crea relaii (pe care le-am ales noi din lista de tabele existente n baza de date).

Pentru a crea efectiv relaiile, se poziionm pe un cmp al unei tabele i inem clicul de la mouse apsat pn la cmpul corespunztor relaiei. Va aprea o fereastr pentru confirmarea crerii relaiei.

119

Rapoarte n MICROSOFT Access

Dup ce au fost create toate relaiilor, structura bazei de date ca arta astfel:

Revenim la crearea raportului despre notele studenilor de la fiecare facultate de la fiecare materie. Pas2: n aceast etap se alege modul n care vor fi afiate atributele n raport i se apas Next.

120

Rapoarte n MICROSOFT Access

Pas3: La acest pas se pot grupa rezultatele care vor fi afiate n raport dup anumite cmpuri folosind sgeile i apoi se apas Next.

Pasul 4 i pasul 5 reprezint alegerea modului de afiare a informaiilor n raport.

121

Rapoarte n MICROSOFT Access

Pasul 6: Se alege dintr-o list predefinite de stiluri un mod de afiare a raportului.

Pasul 7: Se denumete raportul cu un nume ales de utilizator i se apas Next.

122

Rapoarte n MICROSOFT Access

Pasul 8: Se apas butonul Finish. V vom prezenta mai jos un raport creat.

6.2.3. Adugarea i modificarea textului n antet i subsol Pentru a aduga un text sau o imagine n antetul sau subsolului unui raport este necesar s deschidem raportul n modul Design al raportului apsnd butonul sau fcnd opiunea Design View, care apare la apsarea clic dreapta pe respectivul formular. Pe ecran va aprea constructorul de rapoarte n care putem modifica ceea ce dorim. Pe ecran va aprea i o bar de instrumente corespunztoare constructorului de rapoarte, prin intermediul creia putem realiza diferite modificri n raport..

123

Rapoarte n MICROSOFT Access

De exemplu, dorim s scriem n antet Antet pentru raport . Pentru asta va trebui s facem loc n partea antetului csuei de text, tragnd efectiv cu mouse-ul antetul i apoi n spaiul creat introducem textul dorit. Pentru a introduce un text trebuie apsat butonul de pe bara de instrumente. Dup apsarea acestui buton selectai locul unde dorim poziionarea textului i apoi vom introduce textul.

Dup introducerea textului se salveaz raportul i pentru a vedea modificrile fcute asupra ei deschidem raportul apsnd butonul Open. Asemntor se poate modifica i subsolul raportului, sau putem introduce imagini n rapoarte cu ajutorul comenzii InsertPicture. 124

Rapoarte n MICROSOFT Access

6.2.4. tergerea unui raport Putem terge un raport prin mai multe metode. Primul pas pentru orice metod este selectarea rapoertului dorit pentru tergere i apoi fie apsm butonul Delete din tastatur, fie apsnd butonul existent n parte de sus a ferestrei, fie apsnd clic dreapta i fcnd opiunea Delete. Pe ecran va aprea o caset de dialog n care se cere confirmarea tergerii raportului.

Apsnd butonul Yes se confirm tergerea raportului, iar apsnd No se renun la operaia de tergere.

6.3. Salvarea i nchiderea unui raport


Pentru salvarea raportului sau a oricrei modificri fcute asupra lui, se apas butonul Save existent pe bara de instrumente a aplicaiei, sau fcnd opiunea Save din meniu. Pentru nchiderea raportului sau se apas butonul din partea dreapt a ecranului sau fcnd opiunea Close din meniu.

Lucrare de verificare a cunotinelor 1. Creai un raport cu toate informaiile stocate n baza de date despre faculti. 2. Creai un raport care s conin urmtoarele informaii: nume studentului, denumirea materiei la care a susinut examen, nota obinut la acea testare i data testrii. 3. Modificai structura raportului de la exerciiul 2, mai exact introducei n antet titlul: Informaii despre promovabilitatea studenilor. 4. Explicai dac se pot tipri rapoartele i explicai cum.

125

Rapoarte n MICROSOFT Access

Teste de autoevaluare 1. Care sunt diferenele ntre un raport i un formular?

2. Se poate crea un raport cu informaii din mai multe tabele?

3. Se poate modifica structura unui raport dup generarea lui? Explicai.

126

Rapoarte n MICROSOFT Access

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare ntrebarea 1. Diferenele dintre un formular i un raport sunt majore: n timp ce formularul este proiectat pentru lucrul pe ecran (dei i el poate fi tiprit), raportul este proiectat n primul rnd pentru tiprire (cu toate c i el poate fi afiat pe ecran), iar o diferen important ar fi aceea c formularul este proiectat pentru acces la date (deci el poate modifica date), pe cnd un raport nu modific date, ci doar le afieaz pe ecran. ntrebarea 2. Da. ntrebarea 3. Da.

Indicaii la problemele propuse Problemele propuse sunt aezate dup un exemplu i se fac dup modelul de exemplu prezentat naintea lor.

Bibliografie:
Crstoiu, Dorin, Baze de date relaionale, Editura Printech, 1999 Rdulescu, Florin, Baze de date n Internet, Editura Printech, 2000 Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura Tehnic, 2004 Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii i 75 de simulri, Editura Andreco, 2003 Browne, Allen, Balter Alison, Bazele Access 95, Editura Teora, 1999 Pribeanu, Costin, Baze de date i aplicaii, Editura MatrixRom, 2000 Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic, 1994

127

Rapoarte n MICROSOFT Access

V felicitm pentru parcurgerea cu succes a manualului de baze de date i v dorim baft n realizarea proiectelor dumneavoatr viitoare n acest amplu domeniu.

128

Proiect cofinanat din Fondul Social European prin Programul Operaional Sectorial Dezvoltarea Resurselor Umane 2007-2013 Investete n oameni!

Formarea profesional a cadrelor didactice din nvmntul preuniversitar pentru noi oportuniti de dezvoltare n carier

Unitatea de Management al Proiectelor cu Finanare Extern Str. Spiru Haret nr. 12, Etaj 2, Sector 1, Cod potal 010176, Bucureti Tel: 021 305 59 99 Fax: 021 305 59 89 http://conversii.pmu.ro e-mail: conversii@pmu.ro

IS

BN

97

8-

60

6-

51

5-

13

0-

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