+ All Categories

pclp

Date post: 17-Jul-2015
Category:
Upload: bleoanca-vladimir-ioan
View: 321 times
Download: 0 times
Share this document with a friend

of 75

Transcript

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


Recommended