100% au considerat acest document util (1 vot)
785 vizualizări75 pagini

PCLP

Încărcat de

Vladimir Bleoanca
Drepturi de autor
© Attribution Non-Commercial (BY-NC)
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca RTF, PDF, TXT sau citiți online pe Scribd
100% au considerat acest document util (1 vot)
785 vizualizări75 pagini

PCLP

Încărcat de

Vladimir Bleoanca
Drepturi de autor
© Attribution Non-Commercial (BY-NC)
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca RTF, PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 75

CURS 1 1. INTRODUCERE - SISTEME DE BAZE DE DATE Sistemele de baze de date sunt o component esenial a vieii de zi cu zi n societatea modern.

n cursul unei zile, majoritatea persoanelor desfoar activiti care implic interaciunea cu o baz de date: depunerea sau extragerea unor sume de bani din banc, rezervarea biletelor de tren sau avion, cutarea unei referine ntr-o bibliotec computerizat, cumprarea unor produse etc. Bazele de date pot avea dimensiuni (numr de nregistrri) extrem de variate, de la cteva zeci de nregistrri (de exemplu, baza de date pentru o agend cu numere de telefon) sau pot ajunge la zeci de milioane de nregistrri (de exemplu, baza de date de plat pentru plata taxelor i a impozitelor). Utilizatorii unei baze de date au posibilitatea s efectueze mai multe categorii de operaii asupra datelor memorate: Introducerea de noi date (insert); tergerea unora din datele existente (delete); Actualizarea datelor memorate (update); Interogarea bazei de date (query) pentru a regsi anumite informaii, selectate dup un criteriu ales. n sensul cel mai 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 (de exemplu, fiele de eviden a crilor dintr-o bibliotec, aa cum erau folosite cu ani n urm) sau computerizat, aa cum este majoritatea bazelor de date folosite n momentul de fa. O definiie ntr-un sens mai restrns a unei baze de date este urmtoarea: O baz de date (database) este o colecie de date creat i meninut computerizat, care permite operaii de introducere, tergere, actualizare i interogare a datelor. Simple colecii de fie (documente pe hrtie) sau fiiere de date, care conin nregistrri de date, dar nu permit operaii de interogare, nu sunt considerate baze de date. De exempu, datele memorate n fiiere pe disc de un instrument de calcul tabelar (ca Microsoft Excel) sau documentele memorate de un editor de text (ca Microsoft Word) nu sunt considerate baze de date. 1.1. COMPONENTELE UNUI SISTEM DE BAZE DE DATE

Un sistem de baze de date (Database System) este un sistem computerizat de meninere a evidenei unei anumite activiti, folosind baze de date. Componentele unui sistem de baze de date sunt: hardware, software, utilizatori, date persistente. Hardware. Sistemele de baze de date sunt instalate, de regul, pe calculatoare de uz general, de la calculatoare PC standard, pn la staii multiprocesor puternice. Bineneles, performanele generale de operare ale calculatorului (numrul i viteza procesoarelor, dimensiunea i viteza de operare a memoriei principale etc.) influeneaz n mod corespunztor performanele sistemului de baze de date. Dar, ceea ce intereseaz n mod deosebit n utilizarea unui calculator pentru un sistem de baze de date, este volumul (capacitatea) memoriei secundare, utilizat pentru memorarea coleciei de date persistente ale bazei de date. Dat fiind c ntr-un sistem de baze de date este necesar accesul rapid la oricare din nregistrrile de date, pentru memorarea acestora se folosesc discurile magnetice (hard-discuri). Benzile magnetice (care ofer acces secvenial la nregistrrile de date) sunt utilizate numai pentru duplicarea (back-up) i salvarea/restaurarea datelor. Software. ntre baza de date (colecia de date memorate fizic n fiiere pe harddiscuri) i utilizatorii sistemului exist un nivel software, numit Sistem de Gestiune a Bazei de Date (SGBD) - (Database Management System -DBMS) (fig. 1).

Fig.1. Componente ale unui sistem de baze de date. Sistemul de gestiune a bazei de date - SGBD - (Database Management System - DBMS) recepioneaz cererile utilizatorilor de acces la baza de date (pentru operaii de introducere, tergere, modificare sau interogare), le interpreteaz, execut operaiile corespunztoare i returneaz rezultatul ctre utilizatori. Sistemul SGBD ofer utilizatorilor o viziune (vedere - view) a bazei de date la un nivel nalt i i elibereaz de necesitatea de a cunoate organizarea particular a sistemului (driverele de disc, structura nregistrrilor de date, etc.). Mai mult, sistemul de gestiune asigur protecia datelor fa de accese neautorizate sau defecte de funcionare, asigurnd integritatea bazei de date.

Pe lng SGBD, care este cea mai important component software a unui sistem de baze de date, mai exist i alte componente: sistemul de operare, care asigur controlul execuiei programelor, biblioteci i instrumente software (toolset-uri) pentru proiectarea, dezvoltarea sau exploatarea sistemelor de baze de date i a aplicaiilor de baze de date. O aplicaie de baze de date (Database Application) este un program care ofer o anumit utilizare a unei baze de date. De exemplu, programul care permite meninerea i urmrirea activitii angajailor unei ntreprinderi (ncadrare, calificare, salarizare, etc.) folosind informaiile despre angajai memorate ntr-o baz de date reprezint o aplicaie de baze de date. Utilizatorii unui sistem de baze de date se pot mpri n cteva categorii: programatorii de aplicaii, utilizatorii finali i administratorul bazei de date. Programatorii de aplicaii sunt cei care scriu (dezvolt) aplicaiile de baze de date, folosind limbaje de programare de nivel nalt (Cobol, PL/1, Fortran, C, C+ +, Java, Basic) i biblioteci care permit ncorporarea operaiilor de acces la baza de date. Aplicaiile rezultate pot fi aplicaii cu execuie independent (batch-processing) sau pot fi aplicaii interactive (on-line) folosite de utilizatorii finali ai sistemului pentru a accesa (ntr-un mod mai eficient i mai sigur) baza de date. Utilizatorii finali sunt acei utilizatori care acceseaz baza de date prin intermediul unui program de aplicaie care le confer drepturi limitate de acces la date pentru anumite operaii de prelucrare. Utilizatorii finali sunt persoane cu pregtire tehnic minimal, care efectueaz un volum mare de operaii asupra bazei de date, dar nu trebuie s cunoasc mai mult dect posibilitile oferite de programul pe care l utilizeaz. De exemplu, utilizatorii finali ai unui sistem de rezervare a bietelor de avion sunt agenii de vnzri, care folosesc programul adecvat (scris de programatorii de aplicaii), fr a fi necesar s cunoasc ntreaga structur a bazei de date. Administratorul bazei de date (Database Administrator) este o persoan (sau un grup de persoane) cu nalt calificare tehnic care are ca sarcin meninerea funcionalitii bazei de date prin stabilirea drepturilor de acces ale diferitelor categorii de utilizatori, prin efectuarea operaiilor periodice de salvare a datelor (backup), prin monitorizarea performanelor sistemului i refacerea datelor atunci cnd este necesar. 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 folosind date de intrare (provenite de la tastatur, din citirea

unor fiiere de date sau din recepionarea unor mesaje). Datele de intrare sunt, n general, date nepersistente; ele sunt generate de utilizatori i sunt memorate (devenind date persistente) numai dup ce au fost validate (acceptate) de ctre SGBD. Datele de ieire ale unui sistem de baze de date sunt, de asemenea, date nepersistente; ele provin din operaii de interogare a bazei de date i sunt puse la dispoziia utilizatorului (sub form de afiri, rapoarte tiprite, etc). Aceste tipuri de utilizatori asigur exploatarea unei baze de date dup ce aceasta a fost proiectat i realizat. Activitatea de proiectare a unei baze de date implic i alte categorii de personal cu nalt calificare tehnic (proiectani, programatori) sau administrativ (administrator de date). Proiectanii bazelor de date au responsabilitatea de a analiza realitatea reprezentat (modelat) de baza de date respectiv, de a identifica datele ce necesit s fie memorate, pentru a asigura meninerea evidenei activitii dorite. Aspecte privind proiectarea bazelor de date vor fi studiate n capitolele urmtoare. Orice SGBD suport dou categorii de limbaje conceptuale: limbaje de descriere a datelor i limbaje de manipulare a datelor. Limbajele de descriere a datelor - LDD - (Data Description Languages - DDL) permit definirea conceptual a datelor, fr referire la modul de memorare fizic a acestora. Limbajele de manipulare a datelor - LMD - (Data Manipulation Languages DML) permit specificarea operaiilor de introducere, actualizare, tergere i interogare a datelor.

1.2 ARHITECTURA INTERN A SISTEMELOR DE BAZE DE DATE Arhitectura intern a unui sistem de baze de date propus prin standardul ANSI/X3/SPARC (1975) conine trei niveluri funcionale: nivelul extern, nivelul conceptual i nivelul intern (fig. 2). Nivelul extern este o colecie de scheme externe, care sunt vederi ale diferitelor grupuri de utilizatori, existnd cte o vedere individual a datelor pentru fiecare grup; nivelul conceptual conine schema conceptual (logic) a bazei de date, iar nivelul intern conine schema intern (fizic) a bazei de date. O schem extern (vedere utilizator) (external schema, users view) conine o subschem conceptual a bazei de date, mai precis descrierea datelor care sunt folosite de acel grup de utilizatori. Schema conceptual a bazei de date (conceptual schema) corespunde unei reprezentri unice (pentru toi utilizatorii) i abstracte a datelor, descriind ce

date sunt stocate n baza de date i care sunt asocierile dintre acestea. Schema intern (fizic) a bazei de date (internal schema) specific modul de reprezentare a datelor pe suportul fizic. Un sistem de baze de date suport o schem intern, o schem conceptual i mai multe scheme externe; toate aceste scheme sunt descrieri diferite ale aceleiai colecii de date, care exist doar n nivelul intern.

Fig. 2. Arhitectura intern a unui sistem de baze de date.

Toate aceste reprezentri ale datelor sunt gestionate de ctre SGBD care asigur, de asemenea, i cele dou corespondene (mappings): ntre schemele externe i schema conceptual i ntre schema conceptual i schema intern. Unele sisteme SGBD nu separ complet cele trei niveluri funcionale ale bazelor de date, existnd posibilitatea de a specifica detalii ale schemei interne sau ale schemelor externe n cadrul schemei conceptuale.

1.3 AVANTAJELE OFERITE DE SISTEMELE DE BAZE 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 prezentate n continuare. Compactitate ridicat: volumul ocupat de sistemele de baze de date este mult mai redus dect volumul ocupat de documente scrise sau de fiiere necorelate. Vitez mare de regsire i actualizare a informaiilor. Redundan sczut a datelor memorate, care se obine prin partajarea datelor ntre mai muli utilizatori i aplicaii. n stocarea pe fie sau n fiiere a datelor, fiecare aplicaie coninea propriile seturi de date. n sistemele de baze de date, mai multe aplicaii pot folosi date comune, memorate o singur dat. De exemplu, o aplicaie de personal i o aplicaie de rezultate la examene dintr-o universitate care exploateaz o singur baz de date, pot folosi aceleai informaii referitoare la structurarea facultilor i a seciilor. Posibilitatea de introducere a standardelor privind modul de stocare a

datelor, ceea ce permite interschimbul informaiilor ntre diferite organizaii. Meninerea integritii datelor prin politica de securitate (drepturi de acces difereniate n funcie de rolul utilizatorilor), prin gestionarea tranzaciilor i prin refacerea datelor n caz de funcionare defectuoas a diferitelor componente hardware sau software. Independena datelor fa de suportul hardware utilizat. Sistemele de gestiune a bazelor de date ofer o vedere (view) extern 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.

1.4 CLASIFICAREA SISTEMELOR DE BAZE DE DATE Se pot lua n consideraie mai multe criterii de clasificare ale sistemelor de baze de date. Clasificare dup modelul de date. Majoritatea sistemelor de baze de date actuale sunt realizate n modelul de date relaional sau n modelul de date 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 cele ale modelului obiect. De asemenea, mai sunt nc n funciune baze de date n modele mai vechi (modelul ierarhic sau modelul reea). Modelele de date utilizate de sistemele SGBD vor fi prezentate n seciunea urmtoare. 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. Un numr redus de sisteme de baze de date sunt de tip monoutilizator, adic suport accesul doar al unui singur utilizator (la un moment dat). Clasificare 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 o singur staie (calculator). Un sistem centralizat poate suporta unul sau mai muli utilizatori, dar, n orice situaie, datele i sistemul de gestiune rezid n ntregime pe o singur staie. Un sistem de baze de date distribuit (Distributed Database System) poate avea att datele, ct i sistemul de gestiune, distribuite n mai multe staii

interconectate printr-o reea de comunicaie. Sistemele de baze de date pot fi reprezentate din punct de vedere al funcionrii lor printr-o arhitectur de tip client-server. ntr-un sistem centralizat (fig.3) exist un singur server, care este chiar sistemul SGBD, care rspunde cererilor unui singur client (n sistemele monoutilizator, fig.3, a) sau mai multor clieni (n sistemele multi-utilizator, fig.3, b), care acceseaz baza de date respectiv. Clienii sunt programe de aplicaii oferite de furnizorul sistemului de gestiune sau dezvoltate de programatori. Aplicaiile client pot fi executate pe staii diferite, conectate printr-o reea de comunicaie cu staia pe care ruleaz serverul. Aceast arhitectur permite o prelucrare distribuit a datelor i, mai mult, o configurare a sistemului adaptat cerinelor de calcul particulare. Astfel, serverul bazei de date poate fi un sistem puternic, echipat corespunztor (cu volum mare de memorie secundar), n timp ce fiecare client este o staie personal, cu putere de calcul adecvat aplicaiei executate.

Fig. 1.3. Sisteme de baze de date centralizate: a- monoutilizator; bmultiutilizator.

Sistemele de baze de date distribuite pot fi reprezentate ntr-un mod asemntor din perspectiva structurrii client-server (fig. 4). O baz de date distribuit este o colecie de date care aparin din punct de vedere logic aceluiai sistem, dar care pot s fie, din punct de vedere fizic, memorate n mai multe staii de calcul (locaii - sites) conectate printr-o reea de comunicaie. Sistemul software care gestioneaz o astfel de baz de date se numete Sistem de Gestiune a Bazei de Date Distribuite - SGBDD - (Distributed Database Management System - DDBMS). Aplicaiile client ruleaz pe alte staii din reea i solicit servicii de la sistemul de gestiune distribuit.

Fig. 4. Sistem de baze de date distribuit. Exist numeroase avantaje ale sistemelor de baze de date distribuite (creterea capacitii de stocare i prelucrare a datelor, creterea disponibilitii i a partajrii datelor, etc.), dar i o cretere considerabil a

complexitii acestora. Cea mai important cerin pe care trebuie s o ndeplineasc sistemele de gestiune a bazelor de date distribuite este de a asigura administrarea transparent a datelor. Transparena se refer la capacitatea unui sistem distribuit de a ascunde detaliile de implementare, astfel nct utilizatorii s poat accesa datele pe baza unui model de nivel nalt, fr a fi necesar cunoaterea exact a modului de amplasare, replicare sau comunicare a datelor. Sistemele de gestiune a bazelor de date distribuite comerciale nu ofer n momentul de fa un nivel suficient de transparen a localizrii datelor, dar dezvoltarea continu a acestora va putea s asigure n viitor aceast cerin.

CURS 2

1.5 MODELAREA DATELOR Un model este o abstractizare a unui sistem, care capteaz cele mai importante trsturi caracteristice ale sistemului (concepte), relevante din punct de vedere al scopului pentru care se definete modelul respectiv. Tehnica de identificare a trsturilor caracteristice eseniale ale unui sistem se numete abstractizare. Un model de date stabilete regulile de organizare i interpretare a unei colecii de date. n proiectarea bazelor de date se folosesc, de regul, mai multe modele de date, care se pot clasifica n dou categorii: modele conceptuale de nivel nalt i modele specializate. Un model conceptual de nivel nalt al datelor conine o descriere concis a coleciilor de date care modeleaz activitatea dorit (numit schem conceptual de nivel nalt), fr s detalieze modul de reprezentare sau de prelucrare a datelor. Modelele specializate de date (cum sunt: modelul ierarhic, modelul reea, modelul relaional, etc.) impun anumite structuri speciale de reprezentare a mulimilor de entiti i a asocierilor dintre acestea, structuri pe baza crora sunt dezvoltate sistemele de gestiune a bazelor de date. ntr-un astfel de

model de date, o baz de date este reprezentat printr-o schem conceptual (logic) specific. Trecerea de la modelul conceptual de nivel nalt la un model de date specific reprezint etapa de proiectare logic a bazei de date care asigur corespondena dintre schema conceptual de nivel nalt a bazei de date i schema conceptual specific modelului de date respectiv. 1.5.1 Modele conceptuale de nivel nalt

Cel mai utilizat model conceptual de nivel nalt este modelul Entitate-Asociere (E-A) care reprezint schema conceptual de nivel nalt a bazei de date prin mulimi de entiti i asocieri dintre acestea. Dezvoltarea acestui model, astfel nct s permit extinderea tipurilor de entiti, este cunosut sub numele de model Entitate-Asociere Extins (E-AE). Proiectarea modelului E-A sau al modelului E-AE este, de regul, una din primele etape n proiectarea bazelor de date, etap numit proiectarea schemei conceptuale. 1.5.1.1 Modelul Entitate-Asociere

Modelul Entitate-Asociere (Entity-Relationship Model), introdus n 1976 de P.S. Chen [Chen76], este un model conceptual de nivel nalt al unei baze de date, care definete mulimile de entiti i asocierile dintre ele, dar nu impune nici un mod specific de structurare i prelucrare (gestiune) a datelor. Elementele eseniale ale modelului Entitate-Asociere folosit n proiectarea bazelor de date sunt entitile (entities) i asocierile dintre acestea (relationships). O entitate (entity) este orice poate fi identificat n mod distinctiv"; o entitate se refer la un aspect al realitii obiective care poate fi deosebit de restul universului i poate reprezenta un obiect fizic, o activitate, un concept, etc. Orice entitate este descris prin atributele sale. Un atribut (attribute) este o proprietate care descrie un anumit aspect al unei entiti. Atributele prin care este descris o entitate se aleg pe baza criteriului relevanei relativ la domeniul de interes pentru care se definete modelul respectiv, astfel nct s asigure diferenierea acelei entiti fa de restul universului. Toate entitile similare, care pot fi descrise prin aceleai atribute, aparin unui acelai tip de entitate (entity type), iar colecia tuturor entitilor de acelai tip dintr-o baz de date constituie o mulime de entiti (entities set). n general,

n modelul E-A se folosete aceeai denumire att pentru un tip de entitate ct i pentru mulimea entitilor de acel tip. De exemplu, tipul de entitate angajat (al unei instituii) reprezint orice persoan angajat a instituiei, care are o anumit funcie i primete un anumit salariu. Acest tip de entitate poate fi descris prin mai multe atribute, dintre care o parte sunt atribute de identificare a persoanei (Nume,Prenume,DataNasterii,Adresa), iar altele sunt atribute legate de activitatea acesteia n instituia respectiv (Functie,Salariu). Prin analogie cu modelul obiect, se poate spune c un tip de entitate corespunde unei clase, o entitate este o instan a unui tip de entitate i corespunde unui obiect, iar mulimea entitilor de un tip dat corespunde mulimii obiectelor (instanelor) unei clase. n proiectarea bazelor de date se consider dou categorii de entiti: entiti normale (puternice, obinuite - regular entities) i entiti slabe (dependente weak entities). Entitile normale au o existen proprie n cadrul modelului, n timp ce entitile slabe nu pot exista dect dac exist o entitate normal (puternic) cu care sunt asociate. De exemplu, o entitate dependent poate s reprezinte o persoan care depinde de un angajat al unei instituii (adic se afl n ntreinerea acestuia). O entitate angajat este o entitate puternic, deoarece ea exist n mod normal n modelul activitii instituiei, n timp ce o entitate dependent este o entitate slab: nu se va nregistra o astfel de persoan dect dac printele (susintorul) acesteia este angajat n acea instituie. n proiectarea bazelor de date se definesc asocieri ntre mulimile de entiti componente, pentru a reprezenta anumite aspecte ale realitii pe care baza de date o modeleaz. O asociere (relationship) este o coresponden ntre entiti din dou sau mai multe mulimi de entiti. Gradul unei asocieri este dat de numrul de mulimi de entiti asociate. Asocierile pot fi binare (de gradul 2, ntre 2 mulimi de entiti) sau multiple (ntre k mulimi de entiti, k > 2). Asocierile binare sunt, la rndul lor, de trei categorii, dup numrul elementelor din fiecare dintre cele dou mulimi puse n coresponden de asocierea respectiv (fig. 1). Fiind date dou mulimi de entiti, E1 i E2, se definesc urmtoarele categorii de asocieri binare: Asocierea unul-la-unul (one-to-one) este asocierea prin care unui element (entitate) din mulimea E1 i corespunde un singur element din mulimea E2, i reciproc; se noteaz cu 1:1.

Asocierea unul-la-multe (one-to-many) este asocierea prin care unui element din mulimea E1 i corespund unul sau mai multe elemente din mulimea E2, dar unui element din E2 i corespunde un singur element n mulimea E1; se noteaz cu 1:N. Asocierea multe-la-multe (many-to-many) este asocierea prin care unui element din mulimea E1 i corespund unul sau mai multe elemente din mulimea E2 i reciproc; se noteaz cu M:N.

Cardinalitatea (multiplicitatea) unei asocieri fa de o mulime de entiti (cardinality, multiplicity) este numrul maxim de elemente din acea mulime care pot fi asociate cu un element din alt mulime a asocierii.

Fig. 1. Categorii de asocieri ntre dou mulimi de entiti: a - asociere 1:1; b asociere 1:N; c- asociere M:N. De exemplu, asocierea 1:N dintre mulimile E1 i E2 prezint multiplicitatea 1 fa de mulimea E1 i multiplicitatea N (se nelege o valoare oarecare N > 1) fa de mulimea E2. Raportul dintre valorile cardinalitilor unei asocieri binare fa de cele dou mulimi de entiti se numete raport de cardinalitate (cardinality ratio). Se poate observa c cele trei categorii de asocieri descrise mai sus difer ntre ele prin raportul de cardinalitate. Asocierile multiple (k-are, k > 2) prezint cte un raport de cardinalitate pentru fiecare pereche de mulimi de entiti pe care le asociaz. O asociere ntre dou sau mai multe mulimi de entiti este, n acelai timp, o asociere ntre tipurile de entiti corespunztoare. Diagrama Entitate-Asociere (Entity-Relationship Diagram) reprezint modelul Entitate-Asociere prin mulimile de entiti i asocierile dintre acestea. Exist numeroase variante de notaii pentru redarea diagramei E-A. Una dintre cele mai folosite notaii reprezint un tip de entitate (precum i mulimea de entiti de acel tip) printr-un dreptunghi, iar atributele tipului de entitate prin elipse conectate printr-o linie continu la acesta (fig. 2). Pentru entitile

puternice se utilizeaz un dreptunghi ncadrat cu o linie simpl, iar pentru entitile slabe se utilizeaz un dreptunghi ncadrat cu linie dubl.

Fig. 2. Notaiile diagramei Entitate-Asociere (E-A).

O asociere (tip de asociere) dintre dou sau mai multe tipuri de entiti se reprezint printr-un romb conectat prin link-uri (linii continue, formate din unul sau mai multe segmente) la tipurile de entiti asociate. O asociere poate s aib sau nu un nume; dac are un nume, acesta poate fi nscris n rombul respectiv sau n vecintatea acestuia. Categoria asocierii se noteaz prin nscrierea multiplicitii pe fiecare link care conduce la un tip de entitate. Este posibil ca o asociere s prezinte ea nsi atribute, i aceste atribute se reprezint prin elipse conectate la asocierea respectiv. Exemplul 1. n continuare se exemplific dezvoltarea modelului conceptual de nivel nalt al unei baze de date a unei instituii i diagrama E-A corespunzatoare, definind cteva tipuri de entiti i asocierile ntre acestea. Diagrama E-A a acestui mic model de baz de date este prezentat n figura. 3.

Fig. 3. Exemplu de diagram E-A.

Tipul de entitate secie reprezint o unitate de organizare a instituiei i este un tip de entitate puternic (de sine stttoare). Acest tip se caracterizeaz prin mai multe atribute, de exemplu, un numr al seciei, numele seciei i bugetul alocat. Mulimea de entiti care grupeaz toate entitile de acest tip se poate denumi SECTIE sau SECTII (oricare variant poate fi folosit) i este caracterizat prin aceleai atribute care caracterizeaz tipul entitii: SECTIE(Numar,Nume,Buget) Tipul de entitate angajat reprezint o persoan angajat n instituie i este de asemenea un tip de entitate puternic. Acest tip de entitate, ca i mulimea de entiti care grupeaz toate entitile de acest tip, se poate defini astfel ANGAJAT(Nume,Prenume,DataNasterii,Adresa,Functie,Salariu) Tipul de entitate proiect reprezint o activitate a instituiei, i este de

asemenea un tip de entitate puternic, care poate fi caracterizat prin numele proiectului, data nceperii, termen de realizare, bugetul proiectului: PROIECT(Nume,DataInceperii,Termen,Buget) Tipul de entitate dependent reprezint o persoan care depinde de un angajat al instituiei (adic se afl n ntreinerea acestuia). Acest tip de entitate este un tip de entitate slab: nu se va nregistra o astfel de persoan dect dac ntreintorul acesteia este angajat n acea instituie. Acest tip se poate defini astfel: DEPENDENT(Nume,Prenume,DataNasterii,GradRudenie) Asocierea SECTIE-ANGAJAT este o asociere 1:N, dac se consider c o secie cuprinde mai muli angajai, iar un angajat aparine unei singure secii. Asocierea ANGAJAT-PROIECT este o asociere M:N, dac se consider c la fiecare proiect lucreaz mai muli angajai, i fiecare angajat poate lucra la mai multe proiecte. Asocierea ANGAJAT-DEPENDENT este o asociere de tipul 1:N, deoarece un angajat poate ntreine mai multe persoane (fii, prini etc.), iar o persoan dependent este n ntreinerea unui singur susintor. Raportul de cardinalitate al unei asocieri este stabilit de proiectant astfel nct s reflecte ct mai corect modul de organizare a activitii modelate. De exemplu, asocierea ANGAJATI-PROIECTE are raportul de cardinalitate M:N dac n instituia respectiv se admite ca un angajat s lucreze la mai multe proiecte; dac s-ar impune ca un angajat s lucreze la un singur proiect, atunci asocierea respectiv ar avea raportul de cardinalitate N:1. n ambele situaii se admite c la un proiect lucreaz mai muli angajai. Sunt de remarcat cteva caracteristici generale ale modelului E-A: a) Modul de stabilire a tipurilor de entiti i a asocierilor dintre acestea nu este unic, deoarece grania dintre entiti i asocieri nu este, n general, una bine precizat. Aceeai funcionalitate se poate obine printr-o varietate de diagrame E-A, depinznd de felul n care proiectantul dezvolt modelul conceptual. O asociere poate fi considerat i ca un tip de entitate. De exemplu, pentru baza de date a unei faculti (coli) se definesc tipurile (mulimile) de entiti: STUDENTI(Nume,Prenume,Adresa,...) DISCIPLINE(Denumire,Credite,...) ntre aceste mulimi de entiti se poate defini asocierea STUDENTI-DISCIPLINE, cu raportul de cardinalitate M:N. Aceast asociere reprezint (n general)

studierea unor discipline de ctre studeni, cu atribute ca: Nota (examenului la disciplina respectiv), DataExamen, etc. Dar, la fel de bine, este posibil s se defineasc tipul de entitate NOTE, aflat n asociere N:1 cu fiecare din tipurile de entiti STUDENTI i DISCIPLINE (fig.8).

Fig. 4. Diferite moduri de definire a tipurilor de entiti i a asocierilor: a- asociere M:N ntre mulimile de entiti STUDENTI i DISCIPLINE; b - mulimea de entiti EXAMENE este asociat cu raportul de cardinalitate N:1 cu fiecare din mulimile de entiti STUDENTI i DISCIPLINE.

b) n modelul E-A, tipul de entitate (i mulimea de entiti corespunztoare) semnific un substantiv, n timp ce o asociere semnific un verb. Bineneles, nu este obligatoriu ca numele dat unei asocieri s fie un verb (i, de cele mai multe ori, nici nu este), dar o asociere reprezint o interaciune ntre tipurile de entiti (i mulimile de entiti corespunztoare), care poate fi exprimat printr-un verb. De exemplu, n diagrama E-A din figura 4, asocierea SECTIEANGAJAT poate fi exprimat prin verbul cuprinde, asocierea ANGAJATIDEPENDENTI poate fi exprimat prin verbul ntreine, asocierea ANGAJATIPROIECTE poate fi exprimat prin verbul lucreaz etc. c) Modelul E-A nu precizeaz modul cum sunt realizate asocierile ntre mulimile de entiti. Acest aspect depinde de modelul de date specializat utilizat pentru definirea bazei de date. De exemplu, n modelele ierarhic i reea, asocierile sunt realizate explicit, prin pointeri de la o entitate la entitile asociate, n timp ce n modelul relaional asocierea se realizeaz prin egalitatea valorilor unor atribute comune ale entitilor (chei). 1.5.1.2 Modelul Entitate-Asociere Extins

Modelul Entitate-Asociere Extins (Enhanced Entity-Relationship Model) permite definirea de subtipuri ale unui tip de entiti, care motenesc atribute de la tipul de entitate pe care il extind (i care, n acest context, se numete supertip) i au n plus atribute specifice semnificaiei lor. Prin definirea tipurilor i a subtipurilor de entiti se pot crea ierarhii de tipuri de entiti pe mai multe niveluri. Modelul E-A prezentat n capitolul precedent este suficient pentru modelarea

aplicaiilor de baze de date tradiionale, adic bazele de date utilizate pentru activiti financiare i industriale, n care se folosesc tipuri de date simple. Odat cu dezvoltarea sistemelor de baze de date, domeniile n care acestea se folosesc au devenit tot mai numeroase, ca, de exemplu: telecomunicaiile, proiectarea tehnologic, sistemele de informaii geografice, seviciul Web, etc. Tipurile de entiti definite n astfel de baze de date sunt mult mai complexe i pentru reprezentarea lor ct mai intuitiv i mai compact au fost propuse mai multe concepte noi, care au fost introduse n modelul E-A extins. Modelul E-A extins se reprezint printr-o diagram E-A extins. Ierarhiile de tipuri se pot crea prin specializare sau generalizare. Specializarea (specialization) este un proces de abstractizare a datelor prin care, pornind de la un tip de entitate dat, se definesc unul sau mai multe subtipuri, difereniate ntre ele n funcie de rolul specific pe care l au n modelul de date. De exemplu, pornind de la tipul de entitate ANGAJAT se definesc prin specializare subtipurile SECRETARA, TEHNICIAN, INGINER, pentru a diferenia funciile pe care angajaii le pot avea n ntreprinderea respectiv (fig. 5). Litera d din marcajul de specializare a tipurilor indic o constrngere de disjuncie impus specializrii, care va fi descris mai jos. Subtipurile de entiti motenesc atribute ale tipului iniial i fiecare dintre ele are atribute suplimentare, specifice rolului lor. De exemplu, atributele (Nume,Prenume,DataNasterii,Adresa,Salariu) ale tipului de entitate ANGAJAT sunt motenite de fiecare din subtipurile acestuia. Atributul Functie nu este motenit, deoarece specializarea subtipurilor s-a efectuat dup acest atribut. Ca atribute specifice, subtipul SECRETARA are atributul VitezaRedactare, care este o msur a calificrii, subtipul TEHNICIAN are atributul Calificare, care reprezint gradul de calificare, iar subtipul INGINER are atributul Specialitate, care este o precizare a domeniului in care lucreaz (mecanic, electric, etc.). Generalizarea (generalization) este procesul de abstractizare invers specializrii, prin care se creaz un supertip de entitate pornind de la mai multe tipuri de entiti. Pentru definirea unei generalizri, se identific atributele comune ale mai multor tipuri de entiti i aceste atribute vor caracteriza supertipul de entitate, iar atributele care difer de acestea rmn specifice fiecrui tip. De exemplu, dac au fost definite tipurile de entiti: AUTOMOBIL (NrInregistrare, Marca, VitezaMaxima, Pret, NumarPasageri) i CAMION(NrInregistrare,Marca,VitezaMaxima,Pret,Tonaj), se poate defini un supertip al acestor tipuri: VEHICUL(NrInregistrare,Marca, VitezaMaxima,Pret). Acest tip va cuprinde toate atributele comune, iar tipurile iniiale, AUTOMOBIL i CAMION, devin subtipuri ale tipului VEHICUL, fiecare coninnd atributele

specifice (NumarPasageri pentru tipul AUTOMOBIL i Tonaj pentru tipul CAMION). Rezultatul obinut prin generalizare este, ca i n cazul specializrii, o ierarhie de tipuri de entiti; ceea ce difer este modul n care se definesc nivelurile ierarhiei.

Fig.5. Diagrama E-A extins cu ierarhie de tipuri de entiti.

Motenirea atributelor. Proprietatea principal a ierarhiilor de tipuri de entiti create prin specializare sau generalizare este motenirea atributelor: atributele tipurilor de entiti de nivel ridicat (supertipuri) sunt motenite de tipurile de entiti de nivel sczut (subtipuri). Motenirea dintre un subtip de entiti i supertipul acestuia se reprezint n diagrama E-A extins printr-o legtur (link) ntre subtip i supertipul de entitate corespunztor pe care este plasat un semicerc orientat ctre subtip (aa cum se poate vedea n figura 1.9). Este evident asemnarea dintre ierarhiile de tipuri de entiti din modelul E-A extins i ierarhiile de clase din modelul obiect-orientat, dar modelul E-A extins este un model de date mult mai general (de nivel inalt), care poate fi transpus n diferite modele de date specializate, inclusiv modelul obiect-orientat. Aceste transpuneri se fac n funcie de suportul oferit de modelul specializat respectiv pentru reprezentarea entitilor, asocierilor, motenirilor, etc.

1.5.1.3 Modelul de date ierarhic n modelul ierarhic (Hierarchical Model) o baz de date se reprezint printr-o structur ierarhic de nregistrri de date (records) conectate prin legturi (links). Modelul de date ierarhic a fost primul model folosit pentru dezvoltarea bazelor de date. Cea mai cunoscut realizare de SGBD ierarhic este sistemul IMS (Information Management System) dezvoltat de firma IBM n cadrul programului de cercetri Apollo, n perioada anilor 1960. O nregistrare de date n modelul ierarhic este o instan a unui tip de

nregistrare (record type) i const dintr-o colecie de cmpuri (fields), fiecare cmp coninnd valoarea unui atribut. Un tip de nregistrare corespunde unui tip de entitate, iar o nregistrare corespunde unei entiti din modelul E-A. Un tip de legtur n modelul ierarhic este un tip de asociere cu raportul de cardinalitate 1:N (de tip printe-fiu) ntre dou tipuri de nregistrri. Tipul de nregistrare din partea cu multiplicitatea 1 a asocierii este numit tip de nregistrare printe, iar tipul din partea cu multiplicitatea N a asocierii este numit tip de nregistrare fiu. Schema conceptual a unei baze de date n modelul ierarhic se reprezint printr-un numr oarecare de scheme ierarhice (fig. 6). O schem ierarhic este un arbore direcionat, reprezentat pe mai multe niveluri, n care nodurile sunt tipurile de nregistrri, 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). Se poate stabili o coresponden ntre o schem conceptual ierarhic i o diagram E-A: tipurile de nregistrri corespund tipurilor de entiti, iar tipurile de legturi corespund tipurilor de asocieri. (fig. 6, a i b). n modelul ierarhic nu sunt admise dect legturi de tipul printe-fiu, care corespund asocierilor 1:1 i asocierilor 1:N din modelul E-A. Asocierile M:N din modelul E-A nu se pot reprezenta n mod direct n modelul ierarhic, ci numai prin multiplicarea nregistrrilor de tip fiu, atunci cnd sunt referite de mai multe nregistrri de tip printe. Acest lucru conduce la o mare redundan a datelor. Corespunztor schemei ierarhice a unei baze de date se pot reprezenta mai muli arbori de instaniere a datelor, care sunt, de asemenea, arbori direcionai (fig. 6, c). Fiecare arbore de instaniere contine ierarhii pe mai multe niveluri de nregistrri ntre care exist legturi de tipul printe-fiu.

Fig. 6. Baz de date ierarhic: a - diagrama E-A; b - schema conceptual a bazei de date ierarhice; c - arbori de instaniere a datelor.

Corespunztor schemei ierarhice a unei baze de date se pot reprezenta mai muli arbori de instaniere a datelor, care sunt, de asemenea, arbori direcionai (fig6, c). Fiecare arbore de instaniere contine ierarhii pe mai multe niveluri de nregistrri ntre care exist legturi de tipul printe-fiu.

Avantajele modelul ierarhic sunt simplitatea i eficiena de calcul, dar n momentul de fa, pentru realizarea bazelor de date sunt preferate modele de date mai puternice (modelul relaional, modelul obiect-orientat). 1.5.1.4 Modelul de date reea

Modelul 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. Aprut dup modelul ierarhic, modelul reea de reprezentare a bazelor de date a fost standardizat n 1971, de o comisie DBTG (Database Task Group). Modelul reea a avut mai multe implementri ca sisteme de gestiune comerciale: IDS II (Honeywell), UNISYS (Burroughs), IDMS (Computer Associates). Deosebirea fa de modelul ierarhic const n aceea c n modelul reea asocierile M:N se reprezint fr duplicarea nregistrrilor, fiecare nregistrare putnd fi referit de mai multe nregistrri, ceea ce elimin redundana. La fel ca i la modelul ierarhic, dezavantajul principal al modelului reea este acela c fiecare interogare trebuie s fie prevzut 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 cunoasc pentru a putea realiza aplicaiile necesare. n momentul de fa modelul de date reea este foarte rar utilizat pentru baze de date de uz general (care implic operaii de interogare), dar exist unele domenii n care structurarea ca graf a datelor permite o parcurgere eficient a acestora. De exemplu, majoritatea bazelor de date grafice folosite n modelarea scenelor tridimensionale din realitatea virtual sunt baze de date reea [Ion96a]. 1.5.1.5 Modelul de date relaional

Modelul relaional (Relational Model) se bazeaz pe noiunea de relaie (relation) din matematic, care corespunde unei mulimi de entiti de acelai tip. Modelul de date relaional a fost propus de cercettorul E.F. Codd de la compania IBM, care a publicat n anul 1970 lucrarea "Un model Relaional de Date pentru Bnci Mari de Date Partajate" [Codd70]. Alte lucrri ale lui Codd,

ca i ale altor cercettori (C.J. Date, P. Chen, R. Boyce, J.D. Ullman, R. Fagin, W.W. Armstrong, M. Stonebraker, etc.) au perfecionat modelul de date relaional i au permis dezvoltarea fr precedent a sistemelor de gestiune a bazelor de date, datorit simplitii i a fundamentrii matematice a modelului. Primul Sistem de Gestiune a Bazelor de Date Relaionale (SGBDR) a fost prototipul System R, dezvoltat la compania IBM n anii 1970, dup care numeroase companii au realizat sisteme de gestiune relaionale (Oracle, Microsoft, Ingres, Sybase, etc.) iar aplicaiile de baze de date relaionale au cptat o amploare deosebit. Pe lng avantajul unui model de date precis i simplu, sistemele de baze de date relaionale mai beneficiaz i de un limbaj de programare unanim recunoscut i acceptat, limbajul SQL (Structured Query Language), pentru care au fost emise mai multe standarde de ctre ISO (International Standardization Office). Majoritatea SGBD-urilor relaionale actuale implementeaz versiunea SQL92 (sau SQL2). 1.5.1.6 Modelul de date obiect-orientat

Modelul obiect (Object Model) este un concept unificator n tiina calculatoarelor, fiind aplicabil n programare, n proiectarea hardware-ului, a interfeelor, a bazelor de date, etc. Sistemele de baze de date obiect- orientate se bazeaz pe limbaje de programare obiect-orientate cu capaciti de persisten, n care datele sunt independente de timpul de via al programelor care le creeaz, prin memorare pe suport magnetic (disc). Orict de folositor este modelul de date relaional pentru realizarea bazelor de date, exist unele domenii (n special acele domenii n care se manevreaz tipuri de date complexe), n care modelul relaional s-a dovedit a fi insuficient de expresiv i cu performane de execuie reduse. Domenii ca: proiectarea asistat de calculator, sisteme de informaii geografice, medicin (i altele) au impulsionat cercetri pentru gsirea unor modele mai performante, dintre care modelul obiect-orientat i modelul obiect-relaional au cunoscut i cunosc n continuare o dezvoltare semnificativ. Caracteristicile importante ale modelului obiect (abstractizarea, motenirea, ncapsularea, modularitatea) sunt intens dezbtute i analizate mai ales din perspectiva proiectrii i programrii obiect-orientate [Booch87], [Con00]. Din perspectiva realizrii bazelor de date, o alt proprietate a modelul obiect, persistena, este aceea care asigur memorarea transparent pe suport magnetic a obiectelor care alctuiesc o baz de date obiect-orientat. Pentru dezvoltarea unui sistem de gestiune a bazelor de date obiect- orientate

(SGBDOO) se poate aborda una din urmtoarele strategii: Extinderea unui limbaj de programare obiect-orientat cu capaciti de administrare a obiectelor persistente. Sistemul GemStone este un astfel de SGBDOO, dezvoltat prin extinderea limbajelor C++ i Java. Extinderea unui limbaj de programare relaional cu capaciti de orientare spre obiecte. Un astfel de limbaj este limbajul ODL (Object Query Language) (sau Object SQL), specificat prin standardul propus de consoriul Object Database Management Group, din care fac parte principalii productori de sisteme de baze de date obiect-orientate. Exist mai multe astfel de sisteme, cum sunt: Ontos, Versant, O2.

Dezvoltarea unui limbaj obiect-orientat pentru baze de date complet nou, care s asigure crearea i interogarea obiectelor persistente. Exist i astfel de produse, ca de exemplu sistemul SIM (Semantic Information Manager).

Dintre avantajele cele mai importante ale sistemelor de baze de date dezvoltate n modelul obiect se evideniaz capacitatea acestora de a defini i manevra tipuri de date complexe (clase), care se pot extinde prin mecanismul de motenire, ceea ce contribuie la creterea performanelor n aplicaiile de baze de date avansate. Exist, bineneles, i dezavantaje ale sistemelor de baze de date obiectorientate, care le fac s aib o utilizare limitat, mult mai redus dect cea a sistemelor de baze de date relaionale (sub 5% din piaa sistemelor de baze de date). Principalul dezavantaj l constitue complexitatea de dezvoltare a bazei de date i a aplicaiilor, datorit faptului c proiectanii i programatorii trebuie s prevad n structura obiectelor toate asocierile (legturile) necesare tuturor interogrilor. Cu ct interogrile sunt mai complexe, cu att sunt necesare mai multe asocieri ntre obiecte i deci se complic structura acestora. La acest dezavantaj se adaug i altele, cum ar fi lipsa unui standard de limbaj de interogare care s fie unanim (sau ct mai larg) acceptat. 1.5.1.7 Modelul de date obiect-relaional

Modelul 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. n general, dezvoltarea sistemelor de gestiune a bazelor de date obiectrelaionale (SGBDOR) se realizeaz prin extinderea sistemelor relaionale, de cele mai multe ori n mod gradat, adugndu-se de la o versiune la alta ct mai multe caracteristici posibile ale modelului obiect i pstrnd n continuare toate caracteristicile modelului relaional. O astfel de abordare asigur rularea n continuare a aplicaiilor relaionale existente n noile versiuni de sisteme SGBDOR, ceea ce permite productorilor s-i pstreze clienii i domeniile de utilizare. Mai muli dintre principalii productori de sisteme de gestiune (Oracle, Informix i IBM) au extins n acest mod sistemele lor relaionale pentru a deveni sisteme obiect-relaionale. Este o tendin fireasc, dat fiind c prin aceasta se pstreaz toat experiena i rezultatele obinute cu sistemele relaionale i se pot dezvolta i aplicaii complexe, obiect-relaionale. Standardele limbajelor de programare pentru sistemele de gestiune obiectrelaionale sunt extensii ale standardului SQL (ca de exemplu, versiunea din anul 1999, denumit SQL3). 1.5.1.8 Complexitatea datelor i a interogrilor

M. Stonebraker a oferit o reprezentare n patru cadrane a universului bazelor de date (fig. 7) deosebit de simpl i de interesant, bazat numai pe complexitatea datelor i a interogrilor. Propus n anul 1996, aceast clasificare nu include modelele prerelaionale (modelul ierarhic i modelul reea), considerate depite n aceast faz de dezvoltare a bazelor de date. Pe abscisa diagramei este reprezentat capacitatea de definire a tipurilor de date complexe, iar pe ordonat este reprezentat capacitatea de interogare a bazelor de date. n cadranul din stnga jos sunt acele aplicaii care prelucreaz tipuri de date simple i nu necesit interogarea datelor. Astfel de tipuri de aplicaii (cum sunt procesoarele de texte Word, Framemaker) folosesc direct sistemul de fiiere al sistemului de operare pentru memorarea datelor persistente.

Fig. 7. Clasificarea sistemelor de gestiune a bazelor de date.

n cadranul din stnga sus sunt sistemele de gestiune a bazelor de date relaionale (SGBDR), care prelucreaz tipuri simple de date, dar permit interogri complexe. n cadranul din dreapta jos sunt sistemele de gestiune a bazelor de date obiect-orientate (SGBDOO), care prelucreaz tipuri de date complexe, dar n care rezolvarea interogrilor este destul de dificil, dat fiind c pentru fiecare interogare trebuie s fie prevzute legturile necesare n structura obiectelor. n cadranul din dreapta sus sunt reprezentate sistemele obiect-relaionale (SGBDOR), care permit prelucrarea datelor complexe i rezolvarea interogrilor complexe. Modelul obiect-relaional este, evident, cel mai complet, deoarece admite att tipuri de date definite de utilizator ct i interogri complexe. n aceeai lucrare, Stonebraker denumete sistemele de gestiune a bazelor de date obiect-relaionale ca fiind sisteme de baze de date universale. n momentul de fa este evident tendina productorilor de sisteme de gestiune a bazelor de date de a trece la sisteme obiect-relaionale i, n general, aceast trecere se realizeaz prin adugarea treptat a caracteristicilor modelului obiect n sistemele de gestiune relaionale. Oferta de sisteme de gestiune a bazelor de date este deosebit de generoas, pe o scar extins de performane i costuri, de la sisteme care se pot folosi gratuit (fr licen sau cu licen public), pn la sisteme cu nalte performane, a cror utilizare necesit plata licenelor respective. Chiar i pentru astfel de sisteme exist versiuni de test (trial versions) care pot fi obinute gratuit prin Internet, astfel nct pot fi folosite pentru a nelege i a executa exemplele propuse n aceast lucrare. Sistemul Oracle este un sistem de gestiune a bazelor de date multi-utilizator puternic, cu implementri pe toate platformele (Windows, Unix, Linux), care ofer att performane de execuie ridicate, ct i un grad nalt 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 i Oracle 10g) sunt sisteme de gestiune obiectrelaionale distribuite, implementnd extensiile obiect-orientate prevzute n standardul SQL3 i oferind posibilitatea de dezvoltare a bazelor de date distribuite. Sistemele de gestiune Oracle, ca i diferite instrumente de dezvoltare a aplicaiilor de baze de date (Oracle Application Server, JDeveloper, Oracle Forms etc.), se pot obine de la adresa http://www.oracle.com i termenii licenei permit utilizarea acestor sisteme n scopuri necomerciale pe o perioad nelimitat; pentru utilizarea n scopuri comerciale trebuie s fie pltite licenele corespunztoare SQL Server este sistemul de gestiune a bazelor de date relaionale dezvoltat de

firma Microsoft pentru sistemele de operare Windows. Au existat mai multe versiuni, versiunea actual (2007) fiind SQL Server 2005. n toate versiunile sistemul SQL Server suport complet standardul SQL2, cu implementarea performant a trsturilor avansate de stocare i prelucrare a datelor (integritate referenial, subinterogri, triggere, gestiunea tranzaciilor, etc). De la adresa http://www.microsoft.com/sql se poate obine gratuit o versiune de test a sistemului SQL Server sau se poate cumpra o versiune complet. n plus, pachetul de dezvoltare .NET SDK (.NET Software Development Kit), care se poate obine gratuit de la adresa http://msdn.microsoft.com/downloads conine o versiune mai simpl de server de baze de date numit Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) care poate fi folosit pentru dezvoltarea i execuia exemplelor prezentate n lucrare. Microsoft Access este unul din cele mai cunoscute sisteme de gestiune a bazelor de date relaionale pe platforme de calculatoare personale. MS Access dispune de un sistem de control al bazei de date (database engine) i o interfa grafic pentru interaciunea cu utilizatorul. 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 i a formularelor (forms) pentru interfeele grafice. MS Access este folosit n special pentru aplicaii personale sau pentru mici afaceri i licena acestuia se poate cumpra odat cu licena produsului Microsoft Office. MySQL este un sistem de gestiune a bazelor de date relaionale cu implementri pentru sistemele de operare Windows, Linux, Unix. La adresa http://www.mysql.com se gsete ultima versiune i documentaia sistemului de gestiune a bazelor de date MySQL care se poate utiliza gratuit (este open source). Acest sistem este compatibil cu standardul SQL2, dar unele prevederi ale standardului sunt implementate parial. Versiunea actual 2007) este versiunea 5.0 care ofera vederi, proceduri stocate, triggere (caracteristici care lipseau in versiunile precedente).

CURS 3 Sistemul de gestiune a bazelor de date Microsoft Acces

Pentru crearea unei baze de date, pentru actualizarea coninutului acesteia,

pentru consultarea i prelucrarea datelor stocate aici este utilizat un sistem specializat de programe cunoscut sub denumirea de Sistem de Gestiune a Bazelor de Date (SGBD). SGBD reprezint ansamblul de programe care asigur interfaa ntre baza de date i utilizatorii acesteia. Un SGBD trebuie s asigure urmtoarele funcii elementare: definirea bazei de date; ncrcarea bazei de date; introducerea datelor n baza de date; accesul la date (interogare, actualizare); modificarea unor date existente n baza de date; tergerea unor date; extragerea informaiilor stocate n baza de date; protejarea datelor; etc. Exemple de SGBD: Access, Oracle, Fox, dBase

1. Microsoft Acces - Prezentare general

Microsoft Access face parte din pachetul de programe Microsoft Office Professional Principalele caracteristici ale sistemului de gestiune a bazelor de date Access sunt: sistemul de gestiune a bazelor de date este relaional i lucreaz sub sistemul de operare Windows; este deschis comunicrii cu alte sisteme de gestiune a bazelor de date cum ar fi Foxpro sau Paradox; este compatibil cu tehnologia ActiveX care permite realizarea aplicaiilor client/server; permite realizarea de aplicaii complexe prin utilizarea limbajului Visual Basic; permite comunicarea cu SQL Server, alt produs Microsoft care

gestioneaz baze de date; permite accesul la baze de date din mediul Internet, fiind un instrument util pentru publicarea informaiilor n paginile Web; cerine hardware pentru instalare: computer Pentium cu 32 MB RAM, 200 MB spaiu pe HDD, CD-ROM, monitor SVGA. este prevzut cu ajutor (help), apelabil contextual sau la cerere;

conine instrumente tip wizard care permit utilizatorului crearea facil a unor obiecte; accept nume lungi n definirea fiierelor;

permite crearea de comenzi rapide (shortcuts) n vederea accesrii obiectelor Access; permite crearea de grupuri de obiecte definite de utilizator n cadrul bazei de date; permite setarea proprietilor iniiale ale bazei de date cum ar fi titlul aplicaiei, ataarea de pictograme (icons), precum i forma de afiare iniial; ofer posibilitatea crerii unei cpii a bazei de date i prin utilizarea aplicaiei Briefcase, realizarea sincronizrii ntre diferitele cpii ale bazei de date; permite utilizarea instrumentului asistent (wizard) n vederea crerii a mai mult de 20 de tipuri comune de aplicaii; permite utilizarea de adrese i legturi Internet;

conine exemple de baze de date care contribuie la o mai bun nelegere a modului de construire a tabelelor, formularelor, rapoartelor, interogrilor, relaiilor dintre tabele. Baza de date Northwind are un numr mare de nregistrri i poate fi folosit pentru a crea propriile rapoarte, formulare, interogri. permite vizualizarea legturilor dintre tabelele bazei de date prin intermediul unei interfee grafice fereastra Relationships; are integrat facilitatea de Office Assistant (ajutor animat);

permite comunicarea cu celelalte aplicaii incluse n pachetul Microsoft Office: Word, Excel, FrontPage, etc. prin operaii de import/export. suport dou limbaje standard de interogare: SQL (Structured Query Language) i QBE (Query By Example)

2. Arhitectura aplicaiilor Microsoft Access O baz de date ACCESS poate fi definit ca o colecie de obiecte: tabele (table), cereri de interogare (query), formulare (form), rapoarte (report), pagini Web (pages), comenzi macro (macro) i module (module).

Fig. 1. Aplicaia Microsoft Access Trebuie subliniat diferena major care exist ntre Microsoft Access i alte sisteme de gestiune a bazelor de date. Astfel, n Visual FoxPro, prin baze de date (database) se neleg doar acele fiiere n care sunt stocate datele. Tabele (Table) este un obiect definit de utilizator n care sunt stocate datele (expresia modelului relaional). Formularul (Form) este un obiect care permite introducerea datelor, afiarea acestora sau controlul ntregii aplicaii. Interogarea (Query) este un obiect care permite vizualizarea informaiilor obinute prin prelucrarea datelor din una sau mai multe tabele (permit extragerea din baza de date a acelor date de care utilizatorul are nevoie). Raportul (Report) este un obiect care permite formatarea i tiprirea informaiilor obinute n urma consultrii bazei de date sub form de documente. Pagina Web de accesare a datelor (Pages) reprezint un obiect care include un fiier HTML i alte fiiere suport n vederea furnizrii accesului la date prin intermediul browser-elor Internet. Comanda Macro (Macro) reprezint un obiect care conine o definiie structurat a uneia sau mai multor aciuni pe care Access le realizeaz ca rspuns la un anumit eveniment. Modulul (Module) reprezint un obiect care conine proceduri definite de utilizator i scrise n limbajul de programare Visual Basic. n figura 2. sunt prezentate legturile ce exist ntre diferitele obiecte ce compun o aplicaie realizat n Access. Astfel, n cadrul tabelelor sunt stocate

datele introduse iniial de utilizator sau extrase cu ajutorul cererilor de interogare i sunt afiate sub form de rapoarte sau sunt modificate cu ajutorul formularelor sau paginilor Web de accesare a datelor. Cererile de interogare pot folosi funcii Visual Basic n vederea realizrii unor calcule definite de utilizator.

Fig. 2. Legturi ntre obiectele Microsoft Access

3. Proiectarea structurii bazei de date

Prima faz n proiectarea bazei de date trebuie s fie analiza obiectivului urmrit. Pentru a realiza acest lucru trebuie s rspundei la urmtoarele ntrebri: Ce informaii vei stoca? Cine le va folosi? De ce fel de ieiri avei nevoie? Atunci cnd proiectai o baz de date trebuie s urmai o serie de pai: 1. Determinai scopul bazei de date. Acest lucru v ajut s stabilii ce fel de date vrei s stocai n baza de date pe care o vei crea (ex. gestiunea personalului, evidena stocurilor). 2. Determinai tabelele de care avei nevoie. Odat ce avei un scop clar stabilit, putei mpri informaiile n subiecte separate, ca se exemplu Angajai, Clieni, sau Comenzi. Fiecare subiect va fi un tabel n baza de date. Numele tabelului trebuie s fie sugestiv pentru informaiile pe care le va conine. 3. Determinai cmpurile de care o s avei nevoie n tabele. Hotri ce fel de informaii vor fi stocate n cadrul tabelelor. Fiecare categorie de informaii dintrun tabel poart denumirea de cmp (field) i fiecare cmp va fi afiat pe o

coloan n tabel. De exemplu, un tabel cu denumirea Angajai poate s aib urmtoarele cmpuri: Nume, Prenume, Data angajrii, Salar_brut, Impozit. 4. Determinai relaiile dintre tabele. Analizai cu atenie tabelele i stabilii legturile care exist ntre datele coninute n tabele diferite. n cazul n care nu putei stabili relaii ntre tabele, introducei tabele sau cmpuri de legtur. 5. mbuntirea proiectului. Analizai proiectul pentru a gsi eventuale erori. Creai tabelele i adugai cteva nregistrri de prob. Vedei dac putei obine din tabele rezultatele de care avei nevoie, facei modificri dac este nevoie.

4. Crearea unei baze de date

Exist dou posibiliti de creare a bazelor de date: a) crearea unei baze de date vide, n care construirea obiectelor se face de la zero; b) crearea unei baze de date folosind Database Wizard.

Pentru a construi o baz de date nou se execut urmtoarele operaii: 1. n fereastra principal (vezi fig.3.) se selecteaz Blank Access database i se activeaz butonul OK. 2. n caseta de dialog cu titlul File New Database (fig.4) se execut urmtorii pai: se selecteaz lista Save in (prin clic pe butonul ). n urma acestei operaii apare lista unitilor de disc disponibile i a elementelor de pe Desktop. se selecteaz unitatea de disc unde va fi salvata noua baz de date. n interiorul ferestrei va aprea o list cu directoarele (folderele) disponibile. se selecteaz folderul unde va fi stocat baza de date; se introduce numele bazei de date n lista File Name; se activeaz butonul Create.

Fig. 3. Fereastra Microsoft Access.

La rularea programului Microsoft Access, va aprea pe ecran fereastra din figura de mai sus care pune la dispoziie urmtoarele opiuni: 1. Crearea unei baze de date fr coninut; 2. Crearea unei baze de date cu ajutorul aplicaiei Database Wizard; 3. Deschiderea unei baze de date existente. Csua din partea de jos a ferestrei indic cele mai recent utilizate baze de date. Daca baza dorit nu se afla printre acestea, executnd clic pe More Files se poate naviga prin structura de directoare n cutarea fiierului dorit.

Fig. 4. Fereastra File New Database

O baz de date nou se mai poate crea i folosind meniul sistem Access , alegnd opiunea New din meniul File, urmat de introducerea numelui corespunztor bazei de date ce urmeaz a fi creat. Crearea unei baze de date folosind asistenii Database Wizard este mult mai simpl i rapid dar prezint dezavantajul de a nu fi aa de flexibil. Un wizard este un instrument complex (program specializat) cu ajutorul cruia se realizeaz n mod automat o baz de date sau anumite obiecte (tabele, formulare, rapoarte, interogri, pagini web pentru prezentarea datelor) lund n considerare preferinele utilizatorului. Wizardul prezint o serie de casete de dialog pentru fiecare etapa. La fiecare pas utilizatorul trebuie s aleag o serie de opiuni din grupul de opiuni posibile pentru a trece la urmtorul pas. Database Wizard creeaz o aplicaie la cheie, genernd toate tabelele, formularele i rapoartele necesare pentru realizarea unei anumite funcii. Wizardul ofer posibilitatea de a alege din mai multe baze de date predefinite, destinate fie utilizrii n scop personal, fie utilizrii n cadrul unei firme. Pentru a vedea lista acestor baze de date selectai opiunea New din meniul File i apoi executai clic pe categoria Databases din fereastra de dialog New. Utilizarea Database Wizard: 1. Lansarea n execuie a instrumentului Database Wizard: Lansai n execuie programul Access. Din fereastra de dialog (fig.3) care apare pe ecran selectai opiunea: Access database wizards, pages and

projects i executai clic pe OK. Pe ecran va aprea urmtoarea caset de dialog:

Fig. 5. Fereastra New

Se selecteaz o baz de date i se execut clic pe butonul OK. 2. Cea de-a doua fereastr a wizardului este o fereastr de dialog File (fig.4). Wizardul i acord noii baze de date un nume care poate fi schimbat. 3. Pentru a merge mai departe se alege butonul Create, iar pentru a anula operaia se execut clic pe butonul Cancel. 4. Wizardul afieaz o fereastr n care descrie tipul de informaii pe care baza de date le conine. De exemplu, BD Asset Tracking include date referitoare la active, amortizare, ntreinere, angajai, departamente i vnztori. BD Contact Management conine informaii de contact i date referitoare la convorbiri. Dac executai clic pe butonul Finish wizard-ul va nchide fereastra Database Wizard i va deschide noua aplicaie; dac executai clic pe cancel, wizard-ul va terge tot ce ai realizat pn n acest moment i se va nchide. Dac dorii s mergei mai departe, executai clic pe butonul (soft) Next.

5. Fiecare tabel din noua aplicaie conine anumite cmpuri prestabilite. Se pot aduga sau terge cmpuri prin intermediul ferestre de dialog din imagine:

6. Urmtoarea fereastr de dialog v permite s alegei stilul de afiare al ecranelor dintr-o list de valori predefinite.

7. n urmtoarea caset de dialog se selecteaz unul din stilurile predefinite de

raport.

8. Prin intermediul ferestrei de mai jos se poate schimba titlul bazei de date si se poate adaug o imagine care s apar pe rapoartele construite.

9. n ultima caset de dialog a wizard-ului lsai selectat opiunea Yes, Start the Database, confirmnd astfel c dorii s vedei baza de date. Cea de-a doua opiune Display Help on using Database deschide o fereastr Help. Pentru a finaliza aplicaia executai clic pe butonul Finish. Access va genera i va deschide noua baz de date.

5. Deschiderea unei baze de date existente

n cazul n care se urmrete consultarea, modificarea sau actualizarea unei baze de date creat anterior, aceasta va trebui, mai nti, s fie deschis prin intermediul opiunii Open An Existing File (din fereastra de dialog care apare pe ecran la intrarea n aplicaia Ms. Access). O baz de date mai poate fi deschis i folosind meniul sistem Access, alegnd opiunea Open din meniul File.

6. Salvarea modificrilor unei baze de date

Prin modificarea unei baze de date Access se nelege modificarea obiectelor ce o compun. Modificarea unui obiect va atrage dup sine o ntrebare din partea SGBD-ului Access dac aceasta modificare va fi sau nu salvat. n concluzie orice modificare a obiectelor se salveaz local nefiind necesar salvarea ntregii baze de date.

CURS 4 MICROSOFT ACCESS TABELE

Programul ACCESS este utilizat pentru crearea i gestionarea bazelor de date. Principalele obiecte cu care lucreaz orice baz de date sunt tabelele. Acestea ajut la organizarea i stocarea datelor.

1. Proiectarea tabelelor n Microsoft Access Datele sunt stocate n nregistrrile tabelelor, iar pentru a putea fi regsite uor acestea trebuie s fie bine organizate n cadrul lor. De aceea, trebuie acordat o atenie deosebit fazei de proiectare a bazei de date. Aspectele care trebuie s le urmrii atunci cnd ncepei s lucrai cu tabele sunt: mprii informaiile lungi n uniti mai mici. De exemplu, n loc s stocai numele clienilor ntr-un singur cmp, folosii dou cmpuri, unul pentru nume i altul pentru prenume avnd astfel posibilitatea s sortai sau s selectai datele separat att dup nume ct i dup prenume. Datele stocate n fiecare cmp trebuie s constituie cea mai mic unitate de informaie, ceea ce nseamn ca ele s nu mai poat fi mprite n componente mai mici. Stocarea corect a adreselor clienilor se va face n cmpuri diferite: strada i numr, ora, jude i cod potal. Evitai redundana. Nu introducei aceeai informaie n mai mult de un cmp. De exemplu, dac avei n tabel un cmp data_naterii nu mai trebuie s stocai in tabel i vrsta persoanei pentru c aceasta se poate calcula din data naterii. De asemenea, nu repetai aceleai date n mai multe tabele. Folosii cmpuri de tip text pentru a stoca numere de telefon, codul numeric personal sau codul potal. Aceste numere sunt secvene arbitrare de caractere folosite pentru identificare, nu sunt valori numerice. Un numr de telefon poate s nceap cu 0 i poate s conin caractere despritoare (0745-466789) de aceea, cea mai bun form de stocare o reprezint cmpul text. Fiecare tabel trebuie s aib o cheie primar care s identice n mod unic fiecare articol (nregistrare) din tabel. Folosirea cheilor ajut la prevenirea

introducerii de date duplicate. O cheie a unui tabel se aseamn cu cota care se atribuie crilor ntr-o bibliotec: aceasta este un identificator unic ce controleaz ordonarea i nregistrarea crilor, identific duplicatele i evit confuziile care pot s apar atunci cnd dou volume au acelai autor sau au acelai titlu. Toate datele trebuie s fie mutual dependente. Cu alte cuvinte, nici un cmp nu trebuie s depind de informaiile aflate n alt cmp al aceluiai tabel. De exemplu, dac un tabel de eviden a vnzrilor conine preul unitar, cantitatea vndut i ncasri, avem de a face cu un cmp dependent. Astfel, dac schimbm valoarea preului unitar, sau valoarea cantitii vndute, trebuie s actualizm i valoarea din cmpul ncasri pentru ca datele s fie consistente. Pentru a nltura dependena, cmpul ncasri trebuie eliminat din structura tabelului i trebuie nlocuit cu un control calculat sau cu o expresie de interogare. Urmrii cu atenie cmpurile goale. Dac un cmp rmne necompletat nseamn c datele nu se aplic la acea nregistrare. Toate cmpurile trebuie s aib o legtur cu cmpul cheie primar.

2. Crearea tabelelor Access organizeaz o baz de date n felul urmtor: Fiierul de baze de date (Access Database file) este fiierul principal care cuprinde pe lng datele cuprinse n tabele i obiecte: interogri pentru analiza datelor, formulare pentru interaciunea cu datele, rapoarte pentru tiprirea rezultatelor, macro i module pentru extinderea funcionalitii aplicaiilor i pagini web. Fiierul este salvat cu extensia .mbd (ex. Agentie.mbd). Tabelul (Table) este o colecie de date specifice unui anumit subiect, stocate pe linii i coloane. n baza de date pot exista mai multe tabele. (ex.: Clieni, Comenzi).

Cmpul (Field) reprezint o coloan n cadrul tabelului, i este cea mai mic unitate de date din cadrul bazei de date. (ex.: numele i prenumele clientului) Tipul de date (Datatype) este o proprietate a fiecrui cmp. O coloan poate stoca doar date de un anumit tip, de ex. cmpul data_nasterii va conine doar date calendaristice iar cmpul nume va conine doar tipul text). Valoarea reprezint valoarea introdus ntr-un cmp. De exemplu, n cmpul Nume, de tip text, se poate stoca valoarea Ionescu.

2.1. Crearea structurii tabelelor se refer la definirea cmpurilor (coloanelor) tabelelor i, dup cum se observ n fereastra Database, acest lucru se poate face n trei moduri: 1. Utiliznd fereastra de proiectare - CREATE TABLE IN DESIGN VIEW 2. Prin introducerea datelor - CREATE TABLE BY ENTERING DATA 3. Utiliznd instrumentul Wizard - CREATE TABLE BY USING WIZARD Modul cel mai eficient de creare a tabelelor l reprezint utilizarea ferestrei de proiectare,motiv pentru care se vor prezenta mai nti pe scurt celelalte dou moduri. Crearea unei tabele utiliznd instrumentul wizard permite adugarea unor cmpuri standard ce exist deja n cadrul bibliotecilor de tabele standard. De exemplu dac se dorete realizarea unei tabele cu clieni (CUSTOMERS) utilizndu-se instrumentul wizard, se pot selecta anumite cmpuri standard pentru aceast tabel precum i relaiile pe care acestea le au cu alte tabele. Nu se recomand aceasta modalitate deoarece cmpurile din cadrul tabelelor standard au fost create pentru sistemul de lucru anglo-saxon care n unele privine nu corespunde cu sistemul romnesc. Utilizarea celui de-al doilea mod de creare a tabelelor reprezint o form rapid de a introduce datele. Ea nu poate fi aplicat eficient n cadrul realizrii de aplicaii complexe. Revenind la primul mod de creare al unei tabele prin realizarea unui dublu-clic pe Create Table In Design View pe ecranul monitorului va aprea fereastra Table. n aceast fereastr se definesc numele cmpurilor FIELD NAME, tipul de date DATA TYPE i opional o descriere a cmpului respectiv DESCRIPTION.

Putei s creai un tabel i apelnd opiunea New din bara de meniu a ferestrei Database.

n Access exist dou modaliti de vizualizare a tabelelor: Datasheet View ( ): permite introducerea de date (articole) n tabel. Design View ( ): este modul de vizualizare n care se definete structura tabelului bazei de date (modul care permite introducerea cmpurilor cu tipul

de data asociat i descrierea corespunztoare). Pentru a comuta ntre modurile datasheet view i design view, se executa clic pe butonul din colul stnga-sus al ferestrei aplicaiei Microsoft Access.

De exemplu dac avem un tabel Judee cu urmtoarele cmpuri: cod_jude text(2) i jude-text(30) acesta va putea fi afiat n dou moduri:

Tabelul Judee deschis n mod Datasheet

Tabelul Judee deschis n mod Design View

4. Caracteristicile cmpurilor

Numele: Microsoft Access permite ca numele de cmp s fie format din mai multe cuvinte, de exemplu Nume client. n versiunile mai vechi de Access denumirea unui astfel de cmp ar fi putut fi scris cu simbolul underscore (_) adic Nume_client. Numele cmpului poate fi stabilit dup dorin ns se recomand alegerea unui nume scurt care s indice rolul cmpului respectiv. Tipul de date: este o caracteristic ce stabilete modul n care datele sunt nregistrate pe suportul de memorare i modul n care acestea sunt interpretate i prelucrate. De exemplu, dac avem un cmp de tip date/time vom putea introduce n acest cmp doar date calendaristice iar operaiile pe care Access le poate efectua asupra informaiilor stocate n acest cmp sunt specifice tipului de date date/time. n continuare sunt prezentate tipurile de date disponibile pentru cmpurile Access:

Tip de date Tip de date Access Descrierea tipului de date

Alfanumerice

TEXT Cel mai des folosit tip de date. Un cmp de tip text poate conine pn la 255 caractere alfanumerice. numerele care nu sunt folosite pentru calcule vor fi stocate n cmpuri de tip text (nr. telefon, cod potal, CNP, numerele de nregistrare, nr. matricol).

MEMO Poate conine cantiti mari de text sau numere - cel mult 64.000 caractere. Se folosesc pentru a oferi comentarii descriptive i notie.

Numerice NUMBER Conine mai multe subtipuri de date: Long Integer, Byte, Integer, Single Double, Replication ID. Se utilizeaz atunci cnd dorim s stocm date numerice care vor fi folosite pentru calcule matematice.

AUTONUMBER Genereaz numere unice n mod automat de fiecare dat cnd se introduce un nou articol n tabel. Poate ndeplini rolul de cheie primar atunci cnd nu mai exist n tabel o alt cheie.

CURRENCY Format special pentru uniti monetare, proiectat pentru a preveni erorile de rotunjire care ar afecta operaiile contabile.

YES/NO Cmpurile logice (booleene) folosesc valori logice numerice de tip ntreg 1 pentru cmpurile YES (TRUE) i 0 pentru NO (FALSE). Date calendaristice DATE/TIME Stocheaz data calendaristic i ora ntr-un format special fix. Se folosete formatul englez de data lun/zi/an, spre deosebire de cel romnesc zi/lun/an. Obiecte mari OBJECT OLE Include elemnte grafice realizate din puncte (bitmap), desene vectoriale, fiiere cu semnale audio i alte tipuri de date ce pot fi create de o aplicaie OLE SERVER. Adrese Internet HYPERLINK Este un text sau o combinaie de text cu numere stocat ca un text i folosit ca adres a unei pagini Web. Conine 3 parti: textul afiat, adresa i subadresa. Fiecare parte poate avea maxim 2048 caractere.

5. Proprietile cmpurilor

1. Field size (Dimensiunea cmpului): n aceast zon se introduce numrul maxim de caractere permis pentru cmpul respectiv, n funcie de tipul de date al acestuia. Putem crea un cmp de tip text cu dimensiune fix introducnd n celula Field Size valoarea corespunztoare lungimii fixe dorite (un numr de la 1 la 255). n mod prestabilit Access creeaz un cmp de tip text care poate cuprinde 50 de caractere. Dac importm cmpuri de date cu lungime mai mare Access le va trunchia astfel se vor pierde caracterele cele mai din dreapta care depesc limita indicat. 2. Format (Formatul n care sunt afiate datele): - n Access fiecare tip de date are mai multe opiuni predefinite de afiare. De exemplu, o dat de tip dat/or poate fi afiat n mai multe forme:

3. Decimal places (Numrul de zecimale): n cadrul acestei proprieti se

stabilete numrul de zecimale ce pot fi atribuite unui cmp. 4. Input Mask (Formatul de introducere): se refer la impunerea unui anumit format pentru toate datele incluse n cadrul acestui cmp. O masc de intrare este folosit ntr-un cmp pentru a formata informaia i a controla ce valori pot fi introduse. De exemplu masca >LLLL este format din dou pri: simbolul > care transform toate caracterele introduse de utilizator n majuscule i irul de caractere LLLL ce reprezint nlocuitori pentru litere (A-Z, fr spaii). Utilizatorul va putea introduce n cmp exact patru litere, n caz contrar Access va afia un mesaj de eroare. Pot fi folosite pentru tipurile de date: Text, Date/Time, Number, Currency. Iat cteva exemple: - pentru formatul datei: 00-00-00 - pentru numr matricol: 000 - pentru numere de nmatriculare: LL00LLL nlocuitorii de caractere pot fi: - 0 pentru numere (0-9); - 9 pentru numere sau pauze; - L pentru litere (A-Z). 5. Caption (Eticheta): permite specificarea unui anumit nume atribuit cmpului, nume carebva fi afiat n cadrul rapoartelor, formularelor, tabelelor. 6. Default value (Valoare automat): este valoarea atribuit automat atunci cnd utilizatorul nu introduce nici o valoare n acel cmp. 7. Validation rule (Regulile de validare): testeaz prin intermediul unui criteriu (expresie Access) valorile introduse n cmpurile bazei de date i nu las introducerea de date care nu respect acel criteriu. De exemplu, regula >0 permite doar introducerea numerelor pozitive, iar >= 10 AND <100 permite introducerea numerelor cuprinse ntre 10 i 99. 8. Validation TEXT (Text de validare): Conine textul care va aprea pe ecran n cazul n care valoarea introdus n cmp nu respect criteriul impus de regula de validare. 9. Required (Cerine): se stabilete dac prin introducerea unei nregistrri n cadrul tabelei este obligatorie i completarea respectivului cmp. 10. Indexed (Indexare): dintr-o list derulant se poate alege ntre un index care admite valori duplicat sau unul care cere ca fiecare valoare a cmpului s fie unic.

6. Noiunea de cheie primara - PRIMARY KEY

Cheile principale (primary keys) reprezint o component esenial a oricrei baze de date relaionale. Pentru a se ncadra n modelul relaional fiecare tabel al bazei de date trebuie s aib un identificator unic. Asigurarea unicitii se poate realiza prin desemnarea unei chei primare o coloan sau un set de coloane care identific n mod unic un rnd din tabel. O cheie primar poate fi format dintr-o singur coloan cheie simpl, sau poate fi format din mai multe coloane cheie compus (multipl). ntr-un tabel pot exista mai multe coloane (sau set de coloane) ce pot conine valori unice. Aceste coloane sunt chei candidat. Din aceste chei candidat se alege o cheie primar, aceasta trebuie s conin un numr minimal de coloane i s fie stabil. De exemplu ntr-un tabel Angajati cu urmtoarele cmpuri: CNP (codul numeric personal), Nume, Prenume, Data_angajrii, Salar avem dou chei candidat - CNP i cheia compus din cmpurile Nume, Prenume. Codul numeric personal este unic pentru fiecare persoana deci el ar poate asigura unicitatea nregistrrilor. Singura problem este c angajaii strini nu au cod numeric personal. Cea de-a doua cheie ndeplinete condiia de cheie primar att timp ct nu exist n baza de date doi angajai cu acelai nume i prenume. Cnd apar dou persoane cu acelai nume i prenume, pentru a se asigura unicitatea, se poate aduga cmpul data_angajrii la cheia primar, dar atunci numrul cmpurilor din componena acesteia este prea mare. Cmpul numele nu este un cmp stabil pentru c n cazul angajatelor acesta poate fi schimbat prin cstorie de aceea nu e bine s intre n componena cheii primare. Deoarece nu am putut gsi o cheie primar natural trebuie s crem o cheie artificial, o cheie derivat. Putem aduga un cmp Cod Angajat de tip Number care s ndeplineasc rolul de cheie principal. Cheia primar are un rol deosebit de important n implementarea strategiilor de cutare i de regsire a datelor. Este folosit de SGBD pentru identificarea unic a nregistrrilor. Cmpul marcat cu PRIMARY KEY nu permite introducerea valorilor duplicat. Asupra cheii primare a SGBD -urile impun restricii : nu sunt admise valorile nedefinite (NULL) pentru atributele unei chei primare, orice alt cheie a unei relaii poate avea valori nedefinite pentru unele din atributele sale; nici o valoare a unui atribut dintr-o cheie primar nu poate fi modificat n

cadrul operaiilor de actualizare. Stabilirea cheii primare se poate face prin dou modaliti, dup cum urmeaz: 1. se selecteaz cmpul cod_cl; 2. a) se selecteaz butonul din trusa de instrumente Database; b) se activeaz opiunea Primary Key din meniul Edit.

7. Sortarea nregistrrilor

n modul de vizualizare Datasheet View putei vizualiza nregistrrile unui tabel ntr- o anumit ordine. Pentru a sorta nregistrrile se efectueaz urmtorii pai: 1. Se trece pe modul de vizualizare Datasheet View ( ) 2. Se selecteaz coloana dup care se face ordonarea 3. Se selecteaz opiunea Sort Ascending (sau Sort Descending) din meniul Records sau se alege butonul sau din bara de instrumente Database.

Pentru a ilustra modul de creare a structurii unui tabel vom lua ca exemplu tabelul Infoclieni, din baza de date Clieni, care va conine informaii referitoare la clienii unei firme. Tabelul are urmtoarea structur: Cod_cl Numeric, ntreg Nume Text (30) Prenume Text(30) Adresa Text (120) Localitatea Text (30) Cod_jude Text(2) Cod_postal Text(10) Telefon Text(15)

Data nasterii Dat calendaristic (Date/Time)

Se creaz baza de date Clieni astfel: 1. se pornete aplicaia Microsoft Access: Start->Programs->Microsoft Access; 2. se selecteaz opiunea Blank Access database din fereastra Microsoft Access; 3. din lista Save in se selecteaz directorul unde va fi salvat baza de date, iar n lista File Name se introduce numele Clienti dup care se activeaz butonul Create. Pentru a crea un tabelul Infoclieni selectai opiunea Create table in Design view, sau selectai opiunea New ( ) din bara de meniu a aceleiai ferestre i apoi opiunea Design view. Pe ecran va aprea o fereastr n care vei introduce numele cmpurilor, tipul acestora i o scurt descriere dup cum urmeaz:

Modul de introducere a structurii unui tabel

Se repet cei patru pai pentru fiecare cmp n parte. n seciunea Field Properties se pot introduce informaii legate de cmpuri, reguli de validare, valori implicite ale datelor ce vor fi introduse n tabel. Dup ce ai introdus toate categoriile trebuie s stabilii o cheie primar pentru tabelul creat. Cheia trebuie s identifice n mod unic fiecare nregistrare din tabel i s previn apariia duplicatelor, n cazul nostru cmpul care ndeplinete condiiile de cheie primar este cod_cl. Stabilirea cheii primare se poate face prin dou modaliti, dup cum urmeaz: 1. se selecteaz cmpul cod_cl; 2. se selecteaz butonul din trusa de instrumente Database sau (folosind meniul sistem Access) se activeaz opiunea Primary Key din meniul Edit.

Se salveaz tabelul, selectnd opiunea Save din meniul File, iar n fereastra care apare se introduce denumirea tabelului InfoClienti.

Pentru a aduga articolele se selecteaz Datasheet View ( ) din meniul View iar n fereastra care apare pe ecran se completeaz urmtoarele date:

CURS 5 RELAII NTRE TABELE

ntr-o baz de date relaional datele pot fi stocate n unul sau mai multe tabele. Se recomand folosirea mai multor tabele ntre care exist legturi dect proiectarea unui singur tabel cu multe cmpuri. Unul din scopurile principale ale proiectrii bazelor de date relaionale este de a grupa cmpurile n tabele astfel nct s se minimizeze redundana datelor, i prin aceasta s se reduc spaiul de stocare necesar bazei de date. Tabelele care conin date redundante pot crea probleme, denumite anomalii de reactualizare: anomali de inserare, anomalii de tergere i anomalii de modificare. Pentru a elimina aceste probleme tabelele trebuie s fie normalizate pan la cel puin a treia form normal. n cadrul unei baze de date nu este obligatoriu ca ntre toate tabelele s existe relaii. Este posibil ca n cadrul unei aplicaii s utilizm i tabele independente i/sau de lucru (tabele temporare). ntre dou tabele dintr-o baz de date exist o relaie atunci cnd unul sau mai multe cmpuri cheie dintr-un tabel se potrivesc cu unul sau mai multe cmpuri cheie din cellalt tabel. De obicei cmpurile corespondente din ambele tabele au acelai nume, tip de date i mrime. Din punct de vedere al momentului crerii acestora avem dou tipuri de relaii ntre tabelele unei baze de date Access :

- relaii permanente - se stabilesc dup definirea tabelelor i sunt cerute de modelul relaional fcnd parte din structura bazei de date. Acestea se realizeaz de obicei prin corespondenele cheie primar - cheie extern i sunt memorate n baza de date. - relaii temporare - se stabilesc ntre tabele cu ocazia definirii unor cereri de interogare, nefiind nregistrate n structura bazei de date.

Avantajele utilizrii relaiilor 1. Atunci cnd creai relaii ntre tabele, Access asociaz automat cmpurile respective din tabele. Putei crea astfel formulare, rapoarte, interogri care s conin date din mai multe tabele. 2. Se pot crea subformulare i subrapoarte. 3. Un alt avantaj este posibilitatea de forare a integritii refereniale.

Tipuri de relaii n Access 1. Relaia One to One (unu la unu) - fiecrei nregistrri din tabelul printe i corespunde exact o singur nregistrare din tabelul copil. Acest tip de relaie se folosete foarte rar. 2. Relaia One to Many (unu la mai muli) - fiecrei nregistrri din tabelul printe i corespunde mai mult de o nregistrare n tabelul copil. Sunt cele mai folosite. 3. Relaia Many to Many (mai muli la mai muli) fiecrei nregistrri din tabelul printe i corespunde mai mult de o nregistrare n tabelul copil iar fiecrei nregistrri din tabelul copil i poate corespunde mai mult de o nregistrare n tabelul printe. Tabelul printe este tabelul care conine cheia principal iar tabelele copil sunt tabelele corelate. Pentru a implementa relaiile dintre tabele se folosesc cheile externe. Relaiile de tip one-to-one i one-to-many se implementeaz introducnd n una din tabele o cheie extern (strin), care va face legtura cu cheia primar din tabela corespunztoare. O legtur de tip many-to-many se implemnteaz introducnd o tabel suplimentar care are o cheie primar compus, fiecare element al cheii primare fiind o cheie extern.

Integritatea referenial: se refer la un set de reguli care protejeaz datele

prin stabilirea de restricii pentru adugarea i tergerea de nregistrri din tabelele relaionate: 1. fiecare valoare a cheii externe trebuie s se gseasc printre mulimea valorilor cheii candidat corespondente, cu alte cuvinte nu putem adaug nregistrri n tabelul copil fr ca acestea s aib corespondent n tabelul printe; 2. nu putem terge o nregistrare din tabelul printe dac exist nregistrri corespondente n tabelele copil. Alte reguli referitoare le cheia extern: 1. o cheie extern este simpl dac i numai dac cheia candidat corespondent este simpl, i este compus dac i numai dac cheia candidat corespondent este compus; 2. fiecare cmp component al unei chei externe trebuie s aib acelai tip de date i dimensiune cu al cmpului corespondent din cheia candidat; 3. o valoare a unei chei externe reprezint o referin ctre o nregistrare care conine aceeai valoare pentru cheia candidat corespondent.

Crearea relaiilor ntre tabele (Relationships) Pentru a realiza relaii ntre tabelele Access se alege opiunea Relationships din meniul Tools.

Pe ecran va aprea urmtoarea fereastr:

Se selecteaz fiecare tabel pe care dorii s-l includei n relaie i se activeaz butonul Add i apoi se nchide fereastra Show Table.

O relaie ntre dou tabele se realizeaz prin operaia drag and drop de la cheia primar a tabelului principal la cheia extern a tabeluluii secundar. n fereastra Edit relationships se selecteaz opiunea Enforce Referential Integrity pentru a se asigura integritatea referenial.

Dac selectai opiunea Cascade Update Related Fields atunci cnd vei actualiza cheia primar din tabelul 1 (tabelul printe), Access va actualiza automat toate cheile externe corespondente din tabelul n (tabelul copil). Dac dezactivai aceast opiune, Access nu v permite s schimbai valoarea cmpului cheie principal din tabelul 1 atta timp ct exist nregistrri corespondente n tabelul n. Opiunea Cascade Delete Related Fields este similar opiunii Cascade Update Related Fields numai c afecteaz modul n care se face tergerea nregistrrilor. Cnd aceast opiune este selectat, Access va terge toate nregistrrile corelate din tabelul/tabelele copil atunci cnd tergei nregistrarea cu cheia primar corespunztoare din tabelul printe. Dac nu este selectat, Access nu va permite tergerea nregistrrii ce conine cheia primar din tabelul printe atta timp ct exist nregistrri corespondente n tabelul/tabelele copil. n cazul n care relaia a fost definit n mod corect n fereastra Relationships va aprea o linie care leag cele dou tabele dup cum se poate vedea n figura de mai jos.

Relaia poate fi modificat ulterior prin dublu-click asupra legturii dintre cele dou tabele. De asemenea se poate terge o relaie ntre tabele: se selecteaz linia de asociere i se apas tasta DEL. Pentru tergere se poate folosi i

opiunea Delete din meniul contextual (clic dreapta pe linia de asociere). Editarea ulterioar mai poate fi fcut i alegnd opiunea Edit Relationship din meniul contextual. Dac executai clic pe butonul Join Type pe ecran va aprea urmtoarea caset de dialog:

Aceast caset de dialog v permite s definii tipul de asociere produs de relaie. Asocierea (Join) determin modul n care corelaia dintre dou tabele afecteaz rezultatul unei interogri legate. Exist dou tipuri de asocieri: - Asociere intern (INNER JOIN): este tipul prestabilit de asociere i selecteaz doar acele nregistrri din cele dou tabele care au valori corespondente n cmpurile de corelare. - Asociere extern (OUTER JOIN) care poate fi de dou tipuri: asociere extern la stnga (LEFT OUTER JOIN) i asociere extern la dreapta (RIGHT OUTER JOIN). Asocierea extern la stnga include toate nregistrrile din tabelul 1 i doar nregistrrile corespondente din tabelul n. Invers, asocierea extern la dreapta include toate nregistrrile din tabelul n i doar nregistrrile corespondente din tabelul 1. Relaiile dintre tabele pot fi tiprite selectnd opiunea Print Relationships din meniul File.

CURS 6 INTEROGRI (Queries)

Esena oricrui SGBD const n selecia datelor din tabele i prezentarea acestora n diferite forme prin intermediul interogrilor sau al rapoartelor. Orice firm i construiete o baz de date pe care lucreaz i elaboreaz diferite rapoarte sub diverse forme de prezentare. O baz de date este creat pentru a fi interogat. Limbajul SQL (ntlnit i sub numele de SEQUEL) este limbajul de interogare al SGBD Sysem R dezvoltat n cadrul laboratorului de cercetare din San Jose al firmei IBM. SQL a evoluat din predecesorul su SQUARE care a constituit prima etap n dezvoltarea unui limbaj de interogare pentru System R. Conceptele de baz ale celor dou limbaje sunt n esen aceleai, deosebirea principal dintre ele fiind aceea c limbajul SQUARE are o sintax bazat n mare msur pe notaii matematice, n timp ce SQL are o sintax mai apropiat de limba englez aa cum arat i denumirea limbajului (SQL sau SEQUEL Structured English Query Language). Aceast sintax este mai adecvat programrii pe computer i totodat mai uor de asimilat de ctre utilizatori. La ora actual SQL este una din cele mai rspndite interfee pentru SGBD-urile relaionale. n afar de System R limbajul SQL este disponibil i sub alte SGBD-uri relaionale cum ar fi SQBD ORACLE (pentru sisteme mari, dar i computere personale profesionale) sau chiar dBASE (ntr-o variant simplificat ncepnd cu versiunea IV).Din anul 1986, SQL a devenit standard ANSI pentru limbajele de interogare ale bazelor de date relaionale. SQL este limbajul de interogare al unui sistem de gestiune al bazelor de date (SGBD), n cazul nostru Access 2000. Operaia fundamental n SQL este reprezentata din punct de vedere sintactic printr-o construcie SELECT FROM WHERE (pe scurt constructie SELECT).

Sintaxa clauzei SELECT:

SELECT nume_cmp_1, nume_cmp_2,.,nume_cmp_n FROM nume_baza_de_date_1, nume_baza_de_date_2,,nume_baza_de_date_n WHERE condiie1,.,condiie_n GROUP BY nume_cmp HAVING condiie ORDER BY nume_camp[ASC|DESC]

1. Crearea interogrilor

Pentru lucrul cu interogri avem urmtoarele dou posibiliti : 1) Prin intermediul modului de lucru Design View. n seciunea Objects se va alege opiunea Queries i apoi Create query in Design view. Pe ecran va apare fereastra Show Table n care utilizatorul va alege tabelele cu care va lucra. Pentru a aduga un tabel se selecteaz tabelul dorit din list dup care se execut clic pe butonul Add. Fereastra Show Table se nchide prin activarea butonului Close.

Se execut apoi urmtorii pai: - se aleg cmpurile necesare interogrii; - se specific condiiile de selecie; - se precizeaz criteriile de filtrare impuse de cerina interogrii; - se stabilete modul de grupare; - se stabilete modul de ordonare.

2) Cu ajutorul wizard-ului de interogri. Access genereaz codul SQL pentru fiecare interogare, fie c este realizat cu Design View sau cu wizard-ul. Codul SQL poate fi vzut prin selectarea opiunii SQL View din meniul View. Se poate vizualiza astfel clauza select from where corespunztoare interogrii. De asemenea este posibil scrierea unei interogri ntr-o astfel de fereastr acest lucru presupunnd cunoaterea temeinic a sintaxei SQL. REGUL: O fraz SQL se termin cu punct i virgul!

2. Criteriile de selecie

Se introduc n celula aflat la intersecia coloanei cmpului cu linia Criteria din grila de interogare. Acestea pot fi simple sau compuse (cu ajutorul operatorilor AND/OR) i pot utiliza o serie de cuvinte rezervate i expresii definite de utilizatori. Principalele criterii simple sunt : - apartenena la un interval de valori : BETWEEN valoare_inferioar AND valoare_superioar; - apartenena la o list de valori : IN (valoare 1, valoare2, ., valoare_n); - utilizarea operatorilor de comparaii : <, >, <=, >=, <>, = ; - utilizarea operatorilor de negaie : NOT valoare; - selecia nregistrrilor care conin sau nu valori : NOT NULL, IS NOT NULL sau NULL, IS NULL. Se pot specifica criterii de selecie dup un anumit text care, dac va conine spaii, trebuie pus n ghilimele. n interiorul textului se pot folosi caractere generice "?" (orice n poziia n care apare) i "*" (orice n poziia n care apare i n urmtoarele).

3. Operaii de calcul predefinite n ACCESS

FORMULARE (Forms) Formularele reprezint interfaa principal ntre utilizator i o aplicaie Microsoft Access, fiind obiecte ale bazei de date ce permit introducerea i afiarea datelor ntr-o manier atractiv i prietenoas. n cadrul unei aplicaii, formularele pot ndeplini mai multe funcii:

1. Afiarea i editarea (corectarea) datelor este cea mai des ntlnit form de utilizare a formularului. De fapt, formularul permite afiarea datelor n forma dorit de proiectantul aplicaiei. De asemenea, datele afiate n cadrul formularelor pot fi modificate sau chiar terse. 2. Controlul operaiilor realizate de aplicaie se pot proiecta formulare care, mpreun cu comenzi macro sau cu proceduri Visual Basic, s realizeze afiarea automat a anumitor date sau executarea automat a unui ir de operaii cum ar fi deschiderea unui subformular dintr-un formular. 3. Introducerea de date. 4. Afiarea de mesaje formularele pot furniza informaii privind modul n care aplicaia poate fi utilizat sau despre operaiile ce urmeaz a fi executate. 5. Tiprirea informaiilor formularele pot fi folosite si pentru tiprirea de informaii la imprimant. Un formular este compus din trei pri: - antetul (Form Header) - zona de detaliu (Detail) - subsolul (Form Footer)

1. Crearea formularelor Avem dou moduri de creare a formularelor i anume: 1. Prin utilizarea instrumentului wizard creare automat 2. Crearea n fereastra de lucru creare manual

1.1 Crearea automat a unui formular n fereastra Database se activeaz butonul New, pe ecran aparnd fereastra New Form.

Dintre opiunile disponibile se va alege Form Wizard ceea ce nseamn c vom crea un formular prin intermediul instrumentului wizard. n partea de jos a ferestrei New Form prin utilizarea listei derulante se va alege tabela pentru care se va crea noul formular. Apoi dac se activeaz OK va aprea pe ecran o alta fereastra Form Wizard din care se vor alege cmpurile tabelei asupra crora va opera noul formular care dorim s l construim.

Prin intermediul butonului Next putem trece de la o fereastr la alta. n urmtoarea fereastr se va selecta modul de prezentare a datelor n cadrul formularului. Printre cele mai utilizate moduri este modul columnar pe care l vom utiliza i noi, mod n care datele sunt afiate pe coloane. Se poate alege stilul formularului, adic un anumit tip de fundal, anumite tipuri de caractere i diverse culori ale acestora. n ultima fereastr se va introduce numele formularului i se alege i modul de afiare. Prin alegerea butonului Finish se va ncheia crearea formularului.

2. Subformulare Un subformular este un formular inclus ntr-un alt formular, pentru a permite afiarea datelor din mai multe tabele sau cereri de interogare, aflate n general n relaii de tipul unu la unu sau unu la mai muli. Astfel n formularul principal vor fi afiate datele din partea unu a relaiei, iar n subformular cele din partea mai muli. Legtura dintre un formular i un subformular reflect legtura dintre tabelele pe care se bazeaz.

Posibilitile de creare ale unui ansamblu de tip formular-subformular sunt : - crearea formularului si subformularului concomitent; - crearea subformularului i adugarea lui la un formular existent; - crearea separat a celor dou i apoi combinarea lor. Cea mai simpl variant este ultima. - se creaz formularul principal i se salveaz; - se creeaz subformularul ca i formularul principal; - se face legtura ntre formularul principal i subformular; - se verific legtura i apoi rezultatul.

Metoda drag & drop n cazul formularelor Pentru aducerea unui subformular ntr-un formular principal se parcurg urmtorii pai: - se deschide formularul principal n modul Design View; - se trece n fereastra Database, prin activarea tastei F11, se activeaz butonul Forms, care va afia lista tuturor formularelor din baza de date; - se deplaseaz pictograma corespunztoare subformularului din fereastra Database n spaiul formularului principal, ceea ce va avea ca efect adugarea unui control de tip subformular; - dac este cazul se deplaseaz controlul n locul dorit i se redimensioneaz n funcie de necesiti; - se execut dublu-click pe bordura controlului ce reprezint subformularul, pentru a afia lista de proprieti a acestuia; - se verific legtura dintre formularul principal i subformular prin intermediul proprietilor Link Child Fields i Link Master Fields care sunt automat definite de Access pe baza legturilor dintre tabele; n caz contrar se stabilesc cele dou cmpuri de legtur se trece n modul Form View pentru verificarea rezultatului; - pentru a aduce modificri n formularul principal se comut napoi n modul Design View.

CURS 7 Rapoarte i Macrouri

RAPOARTE (Reports) Vizualizarea datelor dintr-o baz de date se poate face pe ecran sau hrtie (la imprimant) prin intermediul foilor de date, formularelor i situaiilor finale. Ultima reprezint cea mai potrivit posibilitate de prezentare a datelor pe hrtie. O situaie final (REPORT) este o grupare de date prezentate ntr-un anumit format i o structur de pagin n funcie de necesitile utilizatorilor i care servesc diverselor scopuri de subtotaluri (dup anumitecriterii), subformulare grafice i obiecte de tip OLE. Sursa datelor unei situaii finale o constituie n principal cererile de interogare sau tabelele, restul fcnd parte din structura acestora. n general dac datele ce trebuie introduse n situaia final au ca surs mai mult de un tabel, se creeaz mai nti o cerere de interogare (care reunete datele din tabele) i apoi situaia final bazat pe aceasta. Elementele de legtur ntre sursa de date i situaiile finale sunt controalele, zonele de text (pentru datele numerice i alfanumerice), cadrele (pentru imagini i grafice) i etichetele (pentru titluri, linii separatoare i ptrate decorative. Din punct de vedere al formei de prezentare, situaiile finale sunt de trei feluri: 1) Pe o singur coloan simpl; 2) Gen tabel cu posibiliti de a genera mai multe grade de totaluri; 3) Etichet potal. Crearea unei situaii finale (REPORT) se poate face n dou moduri: 1) Far instrumentul wizard, utiliznd modul de lucru Design View. 2) Cu ajutorul instrumentului wizard. Pentru a crea un raport se va alege seciunea Reports, butonul New i apoi modul de lucru n care se va crea raportul. Se va specifica apoi tabela pentru care se dorete afiarea unor situaii finale.

Structura unui raport este ierarhizat pe mai multe seciuni: - antetul raportului - antetul de pagin - antetul de grup - corpul propriu-zis - subsol de grup - subsol de pagin - subsolul raportului Controalele care apar n corpul acesteia sunt 3 feluri : independente, dependente i calculate. Dup crearea unui raport, pentru verificarea rezultatului nainte de imprimare, se poate vizualiza parial sau total. Vizualizarea parial (un eantion) permite verificarea dispunerii n pagin, tipul de caractere i dimensiunea acestora, gradele de totaluri (dac au fost definite). Vizualizarea total permite verificarea datelor i constituie imaginea pe ecran a paginilor de imprimant. nregistrarea i nchiderea unui raport se face ca la oricare alt fiier. Rezultatul unui raport poate fi tiprit sau salvat ntr-un fiier, n vederea conservrii. nainte de tiprire este necesar definirea parametrului de orientare a paginii. Utilizarea instrumentului wizard permite crearea unor situaii finale cu o structur standard care nu ine seama n totalitate de cerinele utilizatorului. Aceast structur poate fi ulterior modificat cu ajutorul instrumentelor disponibile (trusa cu instrumente). Trusa cu intrumente (Toolbox) i tipurile de controale au acelai coninut i funcionalitate ca i cele de la formulare. Prin urmare, toate operaiile de aducere a cmpurilor din lista de cmpuri a tabelului, redimensionarea, deplasarea i modificarea acestora se fac ntr-o manier asemntoare ca i la formulare.

Sortarea i regruparea datelor Operaiile de sortare i regrupare a datelor apar foarte des n cadrul aplicaiilor economice care utilizeaz un volum mare de date. Pentru sortarea datelor se trece pe modul de lucru Design View - se alege care va afia pe ecran o fereastr dialog:

- n prima linie din coloana Field/Expression se selecteaz un nume de cmp sau se introduce o expresie; se continu cu linia a doua, etc. - n coloana Sort order se stabilete ordinea de sortare cresctoare Ascending sau descresctoare Descending; valoarea presupus fiind cresctoare. - se nchide fereastra de dialog. Prima linie din fereastra de dialog corespunde primului nivel de sortare, a doua celui de-al doilea etc.

Combinarea rapoartelor (RAPOARTE/SUBRAPOARTE) Pentru a combina dou sau mai multe situaii finale, una dintre acestea trebuie s fie definit ca i situaie principal iar celelalte subsituaii (ca i ansamblul formular principal - subformular). Modul de lucru este asemntor cu cel de la formulare/subformulare.

MACROURI (Macros) Pn n prezent s-a ilustrat modul de construcie a principalelor obiecte care compun o aplicaie Access. Se poate observa cu uurin c o aplicaie complex presupune un numr mare de obiecte (formulare, interogri, rapoarte, etc.). Toate aceste obiecte trebuiesc legate ntr-un flux continuu de operaii, trecerea de la un obiect la altul realizndu-se automat. Cu alte cuvinte, n cadrul unei aplicaii Access o importan deosebit o prezint automatizarea acesteia. Prin automatizare nelegem c pe baza unei aciuni a utilizatorului (o apsare pe buton de pe ecran sau de la tastatur, un dublu click) determin realizarea uneia sau a mai multor operaii (deschiderea unuia sau mai multor obiecte, rularea unor interogri, etc). Aceast automatizare a aplicaiilor realizate n Access se poate face n dou

moduri: - prin utilizarea limbajului Visual Basic for Applications VBA - prin utilizarea comenzilor MACRO, care reprezint o form simplificat a limbajului de programare VBA. Comenzile MACRO sunt deosebite prin caracteristica lor unic i anume c permit automatizarea diverselor evenimente fr ca realizatorul aplicaiei s fie nevoit s cunoasc un anumit limbaj de programare. Prin evenimente nelegem: - modificri ale datelor - deschiderea sau nchiderea unui formular sau raport - sau chiar diferite selecii asupra obiectelor de control n cadrul unor formulare n cadrul comenzilor MACRO pot fi incluse un numr mare de aciuni a cror derulare poate fi condiionat de anumite valori afiate n formulare sau rapoarte. Microsoft Access ofer un numr mare de aciuni ce pot fi executate n cadrul unor comenzi macro: - deschiderea sau nchiderea de tabele, interogri, formulare sau rapoarte - vizualizarea i tiprirea rapoartelor - rularea interogrilor - apelarea altor comenzi macro - efectuarea condiionat a anumitor aciuni - cutarea anumitor date n tabele - deschiderea sau includerea diferitelor meniuri din Access - afiarea de mesaje de atenionare sau chiar sunete de atenionare - tergerea, redenumirea, copierea sau salvarea diferitelor obiecte ale aplicaiei - comunicarea cu alte produse software (WORD, EXCEL,)

Crearea unei comenzi MACRO Comenzile macro se creeaz n cadrul ferestrei de proiectare :

Fereastra de proiectare are dou pri: - Lista de aciuni cu comentarii - Descrierea fiecrei aciuni din cadrul listei

Comunicarea ntre aplicaiile Office Pachetul Office produs de Microsoft s-a dorit a fi un instrument util i foarte performant cu ajutorul cruia s se poat realiza un numr mare de sarcini n cadrul biroului unei firme sau chiar acas. Creterea popularitii produsului Office se datoreaz, pe lng gradul sporit de complexitate, facilitii sale deosebite de a permite diferitelor aplicaii ce-l compun s comunice ntre ele. Astfel, date ce se gsesc ntr-o aplicaie Access pot fi transferate (exportate) ntr-un document Word n vederea realizrii unui document de sintez. Odat cu lansarea sistemului de operare Windows 95 a fost introdus o nou facilitate Object Linking and Embedding (introducerea i legarea obiectului) sau pe scurt OLE. OLE este o metod de transfer a informaiei ntre diferite aplicaii Windows sub form de obiecte. Metoda OLE ofer un mare avantaj aplicaiilor realizate n ACCESS, putnd fi create baze de date de tip multimedia n care pot fi stocate fiiere audio (WAV, MID), fotografii i desene (BMP, TIF), animaie i filme (AVI). Access introduce 3 faciliti: 1. DDE - Dynamic Data Exchange - schimbul dinamic de date 2. ActiveX Objects - obiecte ActiveX 3. ActiveX Custom Controls - controale personalizate ActiveX 1) DDE - permite executarea unor funcii, precum i transmiterea de date ntre Access i orice alt aplicaie Windows care suport facilitatea DDE. 2) ActiveX - permite crearea unor anumite legturi ntre obiecte, precum i includerea lor n cadrul bazelor de date Access (fotografii, grafice, foi de calcul). Access poate lucra cu acele isteme de gestiune a bazelor de date care sunt compatibile cu standardul Open Database Conectivity (ODBC), incluznd urmtoarele sisteme: 1. Microsoft SQL Server

2. Oracle 3. DB2 4. Ingres

CURS 8 SQL - Structured Query Language

1. Clasificarea LMD (Limbaje pentru Manipularea Datelor) relaionale: ALGEBRICE au la baz teoria mulimilor. Din punct de vedere al limbajelor algebrice, o relaie este o mulime de tupluri, iar o baz de date este o mulime de relaii ce opereaz cu operatori algebrici. Cu ajutorul limbajului algebric se poate msura completitudinea altor limbaje relaionale, precum completitudinea A-R (limbaj A-R complet = limbaj prin care se pot exprima toi operatorii algebrei relaionale), completitudinea absolut, etc. SQL este A-R complet. Exemplu de limbaj algebric: SEQUEL cu extensia comercial SQL. - Clauzele cu care opereaz SEQUEL sunt: SELECT, (acioneaz pe vertical), WHERE (acioneaz pe orizontal), - clauzele UPDATE, INSERT, DELETE (pentru modificarea bazei); operatorii admii: UNION, INTERSECTION, DIFFERENCE, i INCLUSION, accept nchiderea tranzitiv; - funciile: COUNT, SUM, AVG, MAX, MIN. PREDICATIVE au la baz calculul predicatelor i pot fi: Orientate pe tupluri, exemplu: QUEL, limbaj care are integrat:

- comenzi de modificare: APPEND (inserare), REPLACE (nlocuire), DELETE

(tergere); - funcii de calcul: COUNT (care simuleaz cuantificatorul universal), SUM, AVG, MAX, MIN; - cuantificatorul existenial: RANGE prin care se declar o variabil tuplu pentru fiecare relaie. Orientate pe domenii, pot fi:

- Non-grafice, ex: FQL; - Grafice, acestea pot fi: - Cu variabile domeniu explicite, exemplu: limbajul QBE care: conine primitive de programare grafic a cererilor de date, este utilizat cu precdere de utilizatorii neinformaticieni; accept operaii de modificare: INSERT, DELETE, UPDATE; accept funciile: COUNT, SUM, AVG, MAX, MIN. - Fr variabile domeniu explicite, ex: VGQF SQL limbaj standard introdus de ANSI n 1986 (SQL-86), este att un limbaj algebric interactiv ct i integrat ntr-un limbaj de programare. El permite definirea, modificarea, interogarea i controlul securitii unei baze de date. Exist peste 100 de versiuni ale limbajului.

2. Standardul SQL SQL (Structured Query Language) este unul dintre cele mai puternice limbaje structurate pentru interogarea bazelor de date relaionale. Este utilizat de o gam larg de sisteme de gestiune a bazelor de date, permite rapid utilizatorului: manipularea, regsirea datelor, actualizarea i administrarea bazei de date. Este un limbaj de definire a datelor declarativ, n care utilizatorul face interogrile fr s specifice algoritmii de lucru necesari obinerii rspunsurilor. Instruciunile de baz ale limbajului SQL sunt recunoscute de numeroase sisteme de gestiune a bazelor de date (exemplu: Oracle, Access, Sybase etc.). Varianta SQL-92 (sau SQL-2) este structurat pe trei niveluri: Entry level nivelul de intrare,

Intermediate level nivelul intermediar, Full level nivelul maximal.

Varianta SQL-3, are adugate o serie de faciliti pentru lucrul cu BDOO i BDOOR (baze de date orientate obiect relaionale). Instruciunile SQL pot fi clasificate n: Instruciuni pentru definirea datelor; Instruciuni pentru manipularea datelor; Instruciuni pentru procesarea tranzaciilor; Instruciuni pentru selectarea datelor; Instruciuni pentru controlul accesului la date; Instruciuni pentru controlul cursorului. Standardul SQL cuprinde: LDD, limbaj de definire a datelor/schemei relaionale, folosit de administrator pentru: Crearea tabelelor cuprinde clauze: - pentru crearea schemei bazei de date: CREATE SCHEMA, CREATE TABLE, CREATE VIEW; - clauza de identificare a utilizatorului: AUTHORIZATION; - clauza de acordare a privilegiilor GRANT; - de modificare a tabelelor ALTER TABLE (cu opiunile: ADD; MODIFY, ENABLE, DISABLE, DROP pentru adugarea, modificarea, activarea, dezactivarea sau anularea unei constrngeri). La crearea de tabele pot fi adugate constrngeri declarative: - asupra domeniului, cu comanda CREATE DOMAIN (valorile luate de atribute: DEFAULT, NOT NULL, UNIQUE, CHECK); - de integritate a entitii (PRIMARY KEY), sau de integritate referenial (FOREIGN KEY); - referitoare la atribute, cu comanda CREATE ASSERTION.

Definirea indecilor. Indexul este un obiect al schemei bazei de date, este independent de date att fizic ct i logic, permite acces direct i rapid la informaii, se definete prin: CREATE INDEX, ALTER INDEX, DROP INDEX. Definirea grupului (cluster-ului) specific SQL*PLUS. Utilizat n operaiile de compunere, la regruparea fizic a dou sau mai multor tabele, pentru a face baza mai performant, se definete prin: CREATE CLUSTER, ALTER CLUSTER, DROP CLUSTER. Definirea vizualizrii. Se definete pornind de la o cerere, este de aceleai tip i are aceleai constrngeri cu obiectul la care se refer, se realizeaz cu comanda CREATE VIEW. LMD, limbaj de manipulare a datelor, folosit de utilizator, lucreaz cu operatorii: INSERT, UPDATE i DELETE. LID, limbaj pentru interogarea datelor, a bazei de date, folosit tot de utilizator, lucreaz cu clauza SELECT care are sintaxa: SELECT [ALL/DISTINCT/UNIQUE] list selecie FROM list nume_tabele WHERE criteriul de selecie asupra liniilor (pe orizontal) ORDER BY list de atribute, criteriu [..] GROUP BY list de atribute de grupare HAVING criteriul de selecie asupra grupurilor LCD, limbaj pentru controlul securitii i integritii bazei de date, folosit de realizatorul de aplicaii. Limbajul asigur: - Coerena datelor n cazul manipulrii lor de ctre mai muli utilizatori, folosind conceptele de tranzacie i acces concurent. Prin tranzacie nelegem unitatea logic ce grupeaz mai multe comenzi SQL. LCD marcheaz nceputul i sfritul unei tranzacii prin BEGIN i END. ncheierea normal sau anormal a unei tranzacii este semnalat prin: COMMIT i ROLLBACK. - Confidenialitatea datelor prin protejarea lor la accesul neautorizat al unor utilizatori. Pentru aceasta se folosesc clauzele GRANT pentru acordarea de privilegii unui utilizator, cu sintaxa: GRANT privilegiu1 [, privilegiu 2...] ON nume tabel sau vizualizare TO utilizator 1 [, utilizator 2... ]

i clauza REVOKE pentru retragerea privilegiilor. Clauza are sintaxa similar cu GRANT.

3. SGBD ACCESS i limbajul SQL

SGBD-ACCESS: Face parte din pachetul de programe Microsoft Office; Lucreaz sub sistemul de operare Windows; Are o interfa atractiv, prietenoas i uor de folosit; Conine o colecie de obiecte: Table obiect pentru stocarea datelor definite de utilizator; Form obiect pentru introducerea, vizualizarea i controlul datelor; Query obiect pentru chestionarea, extragerea i vizualizarea informaiilor obinute din tabele sau interogri utiliznd limbajul SQL sau grila QBE; Report obiect pentru imprimarea documentelor ce conin informaii obinute din tabele i interogri; Module obiect ce conine proceduri scrise n cod Visual Basic, pentru aplicaiile mai complexe; Macro obiect pentru automatizarea anumitor aciuni dintr-o aplicaie.

Obiectele SGBD Access sunt stocate n fiiere cu extensia.mdb; Permite accesarea BD concurent de ctre mai muli utilizatori, pe diferite nivele de acces; Permite publicarea datelor n pagini HTML dinamice pe WEB; Este compatibil cu tehnologia ActiveX (accept realizarea de aplicaii

client/server); Cu ajutorul lui se pot crea aplicaii care s acceseze baze de date stocate n SQL Server. Sistemul de gestiune a bazelor de date ACCESS accept utilizarea limbajului SQL. QBE (Query by Example-interogare prin exemplu) permite proiectarea unor interogri complexe. Informaia din grila QBE este automat transformat folosind SQL n instruciuni. Sintaxa instruciunilor SQL: Comenzile SQL se ncheie cu; (punct i virgul); Dac ntr-o interogare SQL se folosesc cmpuri din mai multe tabele, numele tabelului se separ de numele cmpului prin, (virgul); Dac numele cmpurilor conin spaii sau simboluri neacceptate de SQL atunci acestea se ncadreaz n parantezele drepte; Parametrii din liste se separ prin virgul; Valorile de tip ir se marcheaz prin apostrof sau ghilimele; Inegalitile din cadrul clauzelor se ncadreaz n <>; Caracterele de nlocuire se specific prin simbolurile ? i *; Caracterul # se folosete pentru a evidenia valorile de tip dat/timp.

Deschiderea ferestrei SQL 1. Se lanseaz programul ACCESS; 2. Se selecteaz crearea unei noi baze de date; 3. Din panoul din stnga al ferestrei ACCESS, din lista OBJECTS se selecteaz QUERIES (Interogri); 4. In fereastra nou deschis se selecteaz opiunea CREATE QUERY IN DESIGN VIEW; 5. Se nchide caseta SHOW TABLE; 6. Din meniul View se selecteaz modul de vizualizare SQL View sau de pe bara de instrumente se selecteaz butonul vizualizare SQL. Se deschide fereastra

SQL. Crearea unei interogri 1. Se repet paii 1-4 de la deschiderea unei ferestre SQL; 2. Din caseta SHOW TABLE se aleg cu butonul Add: tabelele (Tables); interogrile (Queries) sau ambele (Both) care vor fi folosite n interogarea SQL; 3. Din meniul View se selecteaz modul de vizualizare SQL View sau de pe bara de instrumente se selecteaz butonul vizualizare SQL; 4. n fereastra deschis se tasteaz instruciunile SQL. Execuia unei interogri: Cu butonul din bara Query Design; Cu comanda Run, meniul Query. Observaie. Dac cererea de interogare SQL ACCESS are erori de sintax sau rezultatul nu este cel ateptat se revine n modul de afiare SQL View i se fac corecturile necesare. Pentru a-i asigura exclusivitatea, majoritatea productorilor de sisteme de gestiune a bazelor de date i creeaz propriile extensii ale limbajului SQL. SQL ACCESS nu face excepie, astfel, dei respect ndeaproape standardul ANSI i el prezint modificri, cum ar fi: Limbajul DCL nu este suportat de ACCESS. Controlul i permisiunile de securitate acceptate de ACCESS nu au fost implementate prin DCL; Access are suport limitat pentru limbajul DDL, la crearea tabelelor folosinduse n general instrumentele grafice. a. Clauze pentru definirea datelor Crearea unei tabele cu SQL in Access: Clauza CREATE TABLE sintax: CREATE TABLE nume_tabela (cmp1 tip_data [NOTNULL], cmp2 tip_data [NOT NULL],...); Observaii asupra numelui tabelei: Este unic. Nu poate fi ales dintre cuvintele rezervate.

Poate avea restricii asupra numrului de caractere, natura caracterului de nceput, folosirea literelor mici sau mari etc. Observaii asupra numelor cmpurilor: Poate fi duplicat n cadrul bazei de date; Este unic n tabel; Nu poate fi cuvnt rezervat. Exemple 1. S se creeze dou tabele de date utiliznd SQL, astfel: TABELA1 cu numele CARTI avnd cmpurile: ID_CARTE(numr), AUTOR_1, TITLU, EDITURA,AN_APARITIE(numr), AUTOR_2 TABELA2 cu numele STUDENT, avnd cmpurile: ID_STUDENT(numr), NUME, AN_STUDIU(numr), ID_CARTE(numr) 2. S se creeze tabela 3 numit CARTE3 cu cmpurile: COD_CARTE (numr), NUME_CARTE(text), NUMAR_PAGINI(numr, nu poate rmne necompletat) Rezolvare 1. Create table CARTI (ID_CARTE number, AUTOR_1 text, TITLU text, EDITURA text, AN_APARITIE number, AUTOR_2 text); Create table STUDENT (ID_STUDENT number, NUME text, AN_STUDIU number, ID_CARTE number); 2. Create table CARTE3 (COD_CARTE number, NUME_CARTE text, NUMAR_PAGINI number not null);

Modificarea structurii unui tabel cu SQL n Access: Clauza ALTER TABLE sintax: ALTER TABLE nume_tabela ADD nume_cmp tip_data; (se adaug n structura tabelei un cmp nou specificat dup ADD.) Observaie: Cu comanda ALTER se pot face adugri de cmpuri, modificri de dimensiuni ale cmpurilor, etc.

Exemple 1. S se completeze tabela 1 cu cmpul: NR_EXEMPLARE(numr) i s se specifice pentru cmpul NR_EXEMPLARE c nu poate rmne necompletat. 2. S se completeze tabela 2 cu cmpurile: ORAS NATAL(text), AN NASTERE(numr). Rezolvare 1. ALTER TABLE CARTI ADD NR_EXEMPLARE number not null; 2. ALTER TABLE STUDENT ADD ORAS_NATAL text, AN_NASTERE numr.

tergerea unei tabele: Clauza DROP TABLE sintaxa: DROP TABLE nume_tabela. Exemplu S se tearg tabela3. Rezolvare DROP TABLE CARTE3 Datele de lucru pentru cele dou tabele vor fi cele de mai jos, iar chei primare vor fi ID_CARTE, ID_STUDENT.

b. Clauze pentru interogarea datelor Clauza SELECT pentru selectarea datelor Scopul unei interogri este s selecteze (extrag) informaii din baza de date. Aceasta se realizeaz cu: Clauza SELECT sintaxa: SELECT lista_selectie FROM nume_tabela1, nume_tabela2, ... [WHERE criteriul_de_selectie] [ORDER BY cmpuri_criteriu [ASC|DESC]]

[GROUP BY cmp_de_grupare [HAVING criteriul_de_ grupare]] List_selecie = lista cmpurilor (coloanelor) n ordinea n care vor aprea n rezultatele interogrii. Exemplu S se selecteze din tabela 2 cmpurile TITLU, NR_EXEMPLARE, EDITURA Rezolvare SELECT TITLU, NR_EXEMPLARE, EDITURA FROM CARTI. Dac se lucreaz cu toate cmpurile, se nlocuiete lista de selecie cu simbolul *. Exemplu S se creeze o interogare n SQL care s conin toat tabela 2. Rezolvare SELECT * FROM CARTI; Observaii 1. Cmpurile selectate pot fi redenumite n rezultatul interogrii folosind clauza AS: SELECT cmp1 AS nume1 FROM nume_tabela1; Exemplu S se selecteze din tabela 2 cmpurile TITLU, AUTOR_1, astfel nct cmpul AUTOR_1 s apar sub numele AUTOR Rezolvare SELECT TITLU, AUTOR_1 AS AUTOR FROM CARTI; 2. Cmpurile pot fi combinate (concatenate) astfel nct mai multe cmpuri, s

formeze un singur cmp n rezultatul interogrii: SELECT camp1 + + camp2 + + camp3 AS campcompus, FROM nume_tabela1; Se utilizeaz n special pentru date de tip text. Pentru cmpurile care nu sunt de tip text, acestea se convertesc nti n text i apoi se aplic concatenarea. Exemple 1. S se afieze informaiile din cmpurile ID_CARTE i separat TITLU, AUTOR_1 ntr-un singur cmp numit DATE_CARTE 2. S se concateneze cmpurile: TITLU, AUTOR_1, AN_APARITIE ntr-un cmp numit DATE_CARTE Rezolvare 1. SELECT TITLU, AUTOR_1 AS AUTOR FROM CARTI; SELECT ID_CARTE, TITLU+ , +AUTOR_1 AS DATE_CARTE FROM CARTI; 2. PAS 1. SELECT STR(AN_APARITIE) AS AN_APARITIE2, * FROM QUERY1; PAS 2. SELECT TITLU+ + AUTOR_1 + +AN_APARITIE2 AS DATE_CARTE FROM QUERY5; Clauza FROM: Specific numele tabelei, tabelelor sau interogrilor deja create care vor forma noua interogare. Dac lista_de selecie cuprinde cmpuri din mai multe tabele, n faa numelui cmpului se trece numele tabelei din care provin. Numele de tabele se separ prin ,. Clauza WHERE (opional) Utilizat la afiarea nregistrrilor care ndeplinesc un anumit criteriu de selecie, n uniunea tabelelor;

Nu opereaz cu funcii totalizatoare; Poate fi utilizat mpreun cu operatorii: AND, OR, NOT, IN, BETWEEN, LIKE. Acetia permit combinarea mai multor criterii; Operatorul de comparaie LIKE se utilizeaz mpreun cu caracterul * (wildcard). SELECT camp1 + + camp2 + + camp3 AS campcompus, FROM nume_tabela1 WHERE camp3 = f And camp4 Like M* Presupunnd c n camp3 avem sexul respondenilor unui chestionar, codificat f feminin i m masculin i n camp4 avem numele respondenilor, clauza WHERE specific selecia tuturor respondenilor de sex feminin care au prima liter a numelui M. Exemple 1. S se selecteze din QUERY1 toate informaiile despre crile care sunt n bibliotec n 5 exemplare. 2. S se selecteze din QUERY1 toate informaiile despre crile care ncep cu litera G. 3. S se selecteze din QUERY1 toate informaiile despre crile care ncep cu litera S i sunt n bibliotec n 5 exemplare. Rezolvare 1. SELECT * FROM QUERY1 WHERE NR_EXEMPLARE=5; 2. SELECT * FROM QUERY1 WHERE TITLU LIKE G*; 3. SELECT * FROM QUERY1 WHERE NR_EXEMPLARE=5 AND TITLU LIKE S*;

Clauza ORDER BY (opional) Utilizat la sortarea rezultatelor interogrii n mod cresctor (ASC) sau descresctor (DESC), sau combinat. Se poate realiza dup unul sau mai multe cmpuri_criteriu (definite drept chei de sortare). In general, ordinea cmpurilor n lista de sortare va da i ordinea efecturii sortrilor multiple (nu este obligatoriu) Componenta BY a clauzei este obligatorie n SQL ACCESS. Implicit sortarea se face ascendent. SELECT camp1 + + camp2 + + camp3 AS campcompus, FROM nume_tabela1 WHERE camp3 = f ORDER BY camp4 Desc Pstrnd semnificaiile cmpurilor din exemplul de la clauza Where, selecia se va face astfel: toi respondenii de sex feminin sortai descresctor. Exemple 1. S se ordoneze toate informaiile din Query1 dup autor 1. 2. S se ordoneze toate informaiile din Query1 dup autor 1 descresctor. 3. S se selecteze toate informaiile despre crile al cror nume de autor_1 ncepe cu litera A i s se ordoneze dup anul apariiei. 4. S se selecteze toate informaiile despre crile care ncep cu litera A i s se ordoneze descresctor dup anul apariiei. Rezolvare 1. SELECT * FROM QUERY1 ORDER BY AUTOR_1; 2. SELECT * FROM QUERY1 ORDER BY AUTOR_1 DESC; 3. SELECT *

FROM QUERY1 WHERE AUTOR_1 LIKE A* ORDER BY AN_APARITIE; 4. SELECT * FROM QUERY1 WHERE TITLU LIKE A* ORDER BY AN_APARITIE DESC;

Clauza GROUP BY Precizeaz cmpul sau cmpurile dup care se face gruparea nregistrrilor, sumarizarea lor. Echivalentul clauzei n grila QBE este rndul Total. Este primul pas n agregarea datelor. In majoritatea cazurilor GROUP BY se utilizeaz mpreun cu o funcie de agregare i cu clauza AS pentru a specifica numele coloanei n rezultatul interogrii. Funcii totalizatoare sau de agregare sunt: - COUNT = numr nregistrrile din fiecare grup, cu respectarea condiiilor din clauza WHERE; - SUM = suma tuturor valorilor dintr-un cmp numeric; - AVG = valoarea medie a unui cmp numeric, cu respectarea condiiilor din clauza WHERE; - MAX = valoarea maxim dintr-un cmp, cu respectarea condiiilor din clauza WHERE; - MIN = valoarea minim dintr-un cmp, cu respectarea condiiilor din clauza WHERE.

Clauza HAVING Este utilizat n cazul n care criteriul de filtrare se aplic rezultatelor obinute prin agregare i nu se aplic fiecrei surse de nregistrri ca n clauza WHERE.

Dac este necesar i o condiie la utilizarea clauzei GROUP BY se va utiliza clauza HAVING care opereaz dup grupare i nu WHERE, care opereaz nainte de a se efectua gruparea nregistrrilor. Observaie: este admis utilizarea unei funcii agregat care nu apare n lista de selecie i apelarea la mai multe criterii de grupare.

Clauza JOIN (grupeaz i folosete date din tabele diferite) Sintax: SELECT [domeniu] list_selecie FROM nume_tabela1 {INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabela2 ON criteriul_de_asociere [{INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabela3 ON criteriul_de_asociere]... [WHERE criteriul_de_selectie] [ORDER BY cmpuri_criteriu [ASC|DESC]] Operaiile de asociere induse de clauza JOIN au ca rezultat producerea tuturor combinaiilor posibile, pentru coninutul informaional al fiecrei tabele. Noile nregistrri care rezult n urma jonciunii vor deveni disponibile pentru seleciile ulterioare. La o asociere pot participa mai mult de dou tabele. Semnificaia elementelor de sintax descrise mai sus este urmtoarea: - INNER, LEFT OUTER, RIGHT OUTER sunt tipurile de jonciuni (intern, extern de stnga, extern de dreapta). SQL ACCESS accept scrierea interogrilor externe fr specificarea explicit a lui OUTER; - JOIN specific tabela care va fi asociat (nume_tabela2, nume_tabela3...) tabelei precizat n clauza FROM; - ON criteriul de asociere arat relaia dintre cmpurile pe care se bazeaz jonciunea. Unul se afl n tabela asociat, iar cellalt exist ntr-o alt tabel din lista cu numele tabelelor. Expresia criteriul_de_asociere conine un operator de comparaie (=,<,>,<>,<=,>=) i va returna valorile logice TRUE sau FALSE. Exemple

1. Selectai, folosind uniunea intern (INNER JOIN), autorii care sunt cerui de studeni la mprumut i au crile aprute n FRM. 2. Analog, dar s se listeze i numele studenilor. 3. Analog, dar s fie sortate dup carte. 4. Analog, dar s fie sortate dup carte descresctor. Rezolvare 1. SELECT CARTI.AUTOR_1, CARTI.TITLU FROM CARTI INNER JOIN STUDENT ON CARTI.ID_CARTE=STUDENT.ID_CARTE WHERE EDITURA=FRM; 2. SELECT CARTI.AUTOR_1, STUDENT.NUME, CARTI.TITLU FROM CARTI INNER JOIN STUDENT ON CARTI.ID_CARTE=STUDENT.ID_CARTE WHERE EDITURA=FRM; 3. SELECT CARTI.AUTOR_1, STUDENT.NUME, CARTI.TITLU FROM CARTI INNER JOIN STUDENT ON CARTI.ID_CARTE=STUDENT.ID_CARTE WHERE EDITURA=FRM ORDER BY TITLU; 4. SELECT CARTI.AUTOR_1, STUDENT.NUME, CARTI.TITLU FROM CARTI INNER JOIN STUDENT ON CARTI.ID_CARTE=STUDENT.ID_CARTE WHERE EDITURA=FRM ORDER BY TITLU DESC.

c. Clauze de modificare a datelor Clauza INSERT (Adaug nregistrri dintr-o tabel n alta)

Sintaxa: INSERT INTO nume_tabela (cmp1, cmp2...) VALUES (valoare1,valoare2...) Observaii: valorile din clauza VALUES sunt de aceeai natur cu cmpurile din clauza INTO; mrimea valorii corespunztoare fiecrui cmp va fi mai mic dect dimensiunea cmpului; nu este obligatorie specificarea denumirii cmpurilor, SQL ACCESS asociaz listei de valori cmpurile n ordinea din structura nregistrrii (prima valoare se va introduce n primul cmp, a doua valoare, n al doilea cmp .a.m.d.).

Clauza DELETE (terge parial sau total nregistrrile dintr-o tabel) Sintax: DELETE FROM nume_tabela [WHERE criteriul_de_tergere] Observaie: se terg doar nregistrri din tabel nu i tabela.

Clauza UPDATE (insereaz noi nregistrri i modific valorile cmpurilor din nregistrrile existente) Sintax: UPDATE nume_tabel SET nume_cmp1 = valoare1 [,nume_cmp2 = valoare2]... [WHERE criteriul_de_actualizare] Ca i n cazul instruciunii INSERT, se va urmri dac n cmpul cu valori de actualizat sunt permise numai valori unice. Atunci cnd se dorete actualizarea datelor din mai multe cmpuri se folosete virgula ca separator ntre cmpuri i valorile acestora. Se pot utiliza mai multe condiii WHERE apelnd la operatorul logic AND pentru a limita actualizarea la nregistrri mai bine specificate.

Subinterogri O subinterogare se obine prin scrierea unei interogri n cadrul alteia; rezultatele obinute n urma unei interogri va reprezenta argumentul pentru alt interogare. Utilizatorul poate s creeze legturi ntre mai multe interogri SQL ACCESS, pe baza unor cmpuri unice, cu rol de cutare n structura tabelelor (subinterogrile nlocuiesc interogrile imbricate cu care lucrau versiunile precedente de SQL i au performane mult mai bune). Ele se pot realiza i cu macheta grafic QBE Access. Sintaxa: SELECT * FROM Tabela1 WHERE Tabela1.nume_ cmp = (SELECT nume_cmp FROM Tabela2 WHERE criteriul_de_selectie); Tabela1 i Tabela2 vor avea un cmp comun (nume_cmp) care va reprezenta de fapt cmpul de legtur ce st la baza construirii subinterogrii. Clauza SELECT din subinterogare va avea acelai numr de cmpuri i de natur similar cu cele din clauza WHERE a interogrii.

CURS 9 EXPORTUL DE DATE

Pentru a efectua un export de date dintr-o tabel vom folosi comanda File, Export: i se va alege apoi tipul de fiier ctre care se efectueaz exportul de date din tabel (.rtf, .xls, .htm).

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