Sunteți pe pagina 1din 33

Sistem informatic pentru gestiunea activitii unei agenii de turism utiliznd

SQL SERVER 2008

uprins

!"#R$%& ERE
Prezenta lucrare prezint aspecte conceptuale referitoare la bazele de date, precum i exemplificarea importanei acestora n dezvoltarea tehnologiei informaiei, dezvoltare care are un impact decisiv asupra modului de organizare i funcionare a numeroaselor instituii i servicii, fie ca sunt companii de comunicaie, intreprinderi de comer, servicii bancare, servicii de transport, asigurri ori, de pild, universiti. Acestea sunt dependente de funcionarea corect i nentrerupt a sistemelor de baze de date. De aceea, sistemele de baze de date sunt o component important a vieii de zi cu zi n societatea modern. ilnic, ma!oritatea persoanelor desfoar activiti care implic interaciunea cu o baz de date. Domeniul bazelor de date este foarte important la ora actual. "ndiferent c suntem un utilizator obinuit, unul experimentat sau un profesionist "#, studiul unei baze de date este mai important ca oric$nd. %n prezent, orice sistem complex nu poate fi privit n afara unei puternice surse de date, structurat, consistent, persistent, care implic un sistem adecvat de gestiune. &a o consecin fireasc a acestui interes, n toate programele de nvm$nt de specialitate, universitar sau preuniversitar este inclus o disciplin care s relaioneze cu bazele de date, lu$nd forma seminariilor, cursurilor, lucrrilor practice i proiectelor.' Poentialul nc neatins al ()D* const pe de o parte n deschiderea pe care ele o au de a construi cu a!utorul modelelor de date noi nivele de abstractizare n abordarea problemelor reale, crora ns le ofer i promisiunea, susinut de garania necesar, c vor putea fi implementate. Procesul de instruire n societatea noastr tot mai informatizat, n aa numita societate informaional, impune tot mai mult structurarea cunotinelor acumulate, capacitatea de a le organiza, clasifica, regsi i mai ales complet. &utrile pe +orld +ide +eb, modul n care apelm la motoarele de cutare i modul n care acestea lucreaz i au fost concepute, toate au de a face cu conceptele i procedeele de lucru cu baze de date. ,otoarele de cutare sunt, n fond, nite instrumente de cutare a informaiilor ntr-o imens baz de date, care este actualizat continuu, pe msur ce apar noi pagini +eb. Procesul de cutare combinat cu cel de aducere la zi, modificare-completare, corespund funciilor de baz ce intervin la bazele de date, reflect$nd adic modul de gestiune a informaiilor de pe +eb. )aza de date reprezint acum cadrul fundamental al unui sistem informaional i a modificat radical modul de operare al multor organizaii. %n particular, dezvoltarea acestei tehnologii de-a lungul ultimilor ani a dus la crearea unor sisteme mai puternice, ce pot fi utilizate ntr-un mod mai intuitiv. De aceea, sistemele de baze de date au devenit din ce n ce mai accesibile pentru o mai larg varietate de utilizatori.

1
2

Perenitatea Conceptelor Promovate de bazele de date - Alexandru .eluiu

SBD / (istem de Aplicaii av$nd n centru o colectie structurata de date de volum mare a crui coninut e gestionat n mod direct de un (0)D, dar care pe l$ng acesta implic prezena i a altor componente specializate

'(!#$L&L !) S!"#E*+ %!" L!#ER'#&R' %E S(E !'L!#'#E

,) %efiniii -i concepte privind .azele de date


1.1. Definiia bazelor de date
%n sensul larg, o baz de date1 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 2un exemplu ar fi fiele de eviden a crilor dintr-o bibliotec, aa cum erau folosite cu ani n urm3 sau computerizat aa cum sunt ma!oritatea bazelor de date n momentul de fa. 4 definiie ntr-un sens mai restr$ns a unei baze de date este prezentat mai !os5 O baz de date este o colecie de date centralizate, create i meninut computerizat, n scopul prelucrrii datelor n contextul unui set de aplicaii Prelucrarea datelor se refer la operaiile de introducere, ter!ere, actualizare i intero!are a datelor (implele colecii de fie 2documente pe h$rtie3 sau fiiere de date care conin date, dar nu permit operaii de interogare nu sunt considerate baze de date. 4rice baz de date are urmtoarele proprieti implicite5 - este o colecie logic coerent de date ce are cel puin un neles6 - este destinat, construit i populat de date despre un domeniu bine precizat. 7a are un grup de utilizatori i se adreseaz unui anumit grup de aplicaii6 - reprezint c$teva aspecte ale lumii reale cre$nd orizontul propriu.

1.2. 'vanta/ele folosirii .azelor de date


8a de vechile metode de nregistrare a datelor privind diferite activiti pe fie 2documente scrise3 sau chiar n fiiere pe disc, sistemele de baze de date ofer avanta!e considerabile, ceea ce explic extinsa utilizare a acestora. &$teva dintre avanta!ele oferite sunt5 - Controlul centralizat al datelor, put$nd fi desemnat o persoan ca responsabil cu administrarea bazei de date6 - "itez mare de gsire i actualizare a informaiilor6 - Sunt compacte5 volumul ocupat de sistemele de baze de date este mult mai redus dec$t documetele scrise6 - #lexibilitatea$ ce const n posibilitatea modificrii structurii bazei de date fr a fi necesar modificarea programelor de aplicaie6
3

Database, din englez

%edundan sczut a datelor memorate, care se obine prin parta!area datelor ntre mai muli utilizatori i aplicaii. %n sistemele de baze de date, mai multe aplicaii pot folosi date comune, memorate o singur dat. Posibilitatea introducerii standardelor privind modul de stocare a datelor, ceea ce permite interschimbarea datelor ntre organizaii6 &eninerea inte!ritii datelor prin politica de securitate 2drepturi de acces difereniate n funcie de rolul utilizatorilor3, prin gestionarea tranzaciilor i prin refacerea datelor n caz de funcionare defectuoas a diferitelor componente hard9are sau soft9are6 'ndependena datelor fa de suportul hard9are utilizat. (istemul de gestiunea a bazelor de date ofer o vizualizare a datelor, care nu se modific atunci c$nd se schimb suportul de memorare fizic, ceea ce asigur imunitatea structurii bazei de date i a aplicaiilor la modificri ale sistemului hard9are utilizat. ,)0) lasificarea sistemelor de .aze de date (e pot lua n considerare mai multe criterii de clasificare ale sistemelor de baze de date.

,)0),) lasificare dup modelul de date ,a!oritatea sistemelor de baze de date actuale sunt realizate n modelul de date relaional sau n modelul de date orientat obiect. Dezvoltarea continu a acestor modele a condus ctre o nou categorie de baze de date numite obiect-relaionale, care combin caracteristicile modelului relaional cu caracteristicile modelului orientat obiect. &odelul de date relaional se bazeaz pe noiunea de relaie din matematic, care corespunde unei entiti de acelai tip i are o reprezentare uor de neles i de manipulat, ce const dintr(un tabel bidimensional, compus din linii i coloane #iecare linie din tabel reprezint o entitate i este compus din mulimea valorilor atributelor entitii respective, fiecare atribut corespunz)nd unei coloane a tabelului ,odelul de date relaional a fost propus de cercettorul 7 .8. &odd de la compania "),, care a publicat n ':;< lucrarea =*n model relaional de date pentru bnci mari de date parta+ate>. Alte lucrri ale lui &odd, ca i ale altor cercettori ca ?. )o@ce, A.D. Bllman etc au perfecionat modelul de date relaional i au permis dezvoltarea sistemelor de baze de date. &hiar dac noiunile de relaie i tabel difer n esena lor, relaia reprezent$nd o mulime de entiti i tabelul o reprezentare vizual a acesteia, cele dou denumiri se pot folosi, n general pentru acelai scop. Pe baza acestor noiuni, se poate sintetiza esena modelului relaional prin urmtoarele caracteristici5 - Datele sunt percepute de utilizatori ca tabele6 Asocierea dintre tabele se realizeaz prin intermediul egalitii valorilor unor atribute comune, ceea ce permite rezolvarea oricrei interogri6

Pe l$ng avanta!ul unui model de date precis i simplu, sistemele de baze de date relaionale mai beneficiaz i de un limba! de programare recunoscut i acceptat, limba!ul (C. D, pentru care au fost emise mai multe standarde de ctre 4rganizaia "nternaional de
4

Structured ,uer- .an!ua!e

(tandardizareE. ,a!oritatea sistemelor de gestiune a bazelor de date relaionale actuale implementeaz versiunea din anul '::* a standardului pentru limba!ul (C., denumit (C. :* sau (C.*. &odelul de date orientat obiect/ este un concept unificator n tiina calculatoarelor, fiind aplicabil n pro!ramare, n proiectarea 0ard1are, a interfeelor, a bazelor de date etc Sistemele de baze de date orientate obiect se bazeaz pe limba+e de pro!ramare orientate obiect cu capaciti de persisten, n care datele sunt independente de timpul de via al pro!ramelor care le creeaz sau acceseaz, prin memorare pe suport ma!netic 2disc3 7xist i unele domenii, n special cele care manipuleaz tipuri de date complexe, cum ar fi proiectarea asistat de calculator, sisteme de informaii geografice, medicin etc, n care modelul relaional s-a dovedit a fi insuficient de expresiv i cu performane de execuie reduse. &aracteristicile importante ale modelului orientat obiect sunt5 abstractizarea, motenirea, ncapsularea, modularizarea. &odelul de date obiect(relaional4 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 2reprezentate ca tabele3, dar adaug posibilitatea definirii unor noi tipuri de date, pentru domeniile de valori ale atributelor. #ipurile de date definite de utilizator pot fi extinse prin mecanismul de motenire i pentru fiecare tip sau subtip se pot defini metode pe care le pot executa obiectele de acel tip. De asemenea mai sunt nc n funciune baze de date modele mai vechi5 modelul ierarhic i modelul reea. 5n modelul de date ierar0ic6 o baz de date se reprezint printr(o structur ierar0ic de nre!istrri de date 2records3 conectate prin le!turi 2lin7s3 &odelul ierar0ic a fost primul model folosit pentru dezvoltatea bazelor de date (chema conceptual a unei baze de date n modelul ierarhic se reprezint printr-un numr oarecare de scheme ierarhice. 4 schem ierarhic este un arbore direcionat, reprezentat pe mai multe niveluri, n care nodurile sunt tipurile de nregistri, iar arcele sunt tipurile de legturi. 8iecare nod 2cu excepia nodului rdcin3 are o singur legtur ctre un nod de pe un nivel superior 2nodul printe3 i fiecare nod 2cu excepia nodurilor frunz3 are una sau mai multe legturi ctre noduri de pe nivelul imediat inferior 2noduri fii3. &odelul de date reea8 folosete o structur de !raf pentru definirea sc0emei conceptuale a bazei de date9 nodurile !rafului sunt tipuri de entiti 2nre!istrri, records3, iar muc0iile !rafului reprezint n mod explicit asocierile:; dintre tipurile de entiti. 'nternational Standardization Office ( 'SO Ob+ect &odel 7 Ob+ect(%elational &odel 8 <ierarc0ical &odel 9 =et1or7 &odel 10 le!turile, lin7s
5 6

.a fel ca i modelul ierarhic, dezavanta!ul principal al modelului reea este acela c fiecare interogare trebuie s fie prevazut nc din faza de proiectare, prin memorarea explicit a legturilor ntre tipurile de entiti. %n plus, complexitatea reprezentrii datelor n modelul reea este deosebit de ridicat, iar programatorii trebuie s o cunosasc pentru a putea realiza aplicaiile necesare. ,)0)2) lasificare dup numrul de utilizatori) ,a!oritatea sistemelor de baze de date sunt sisteme multiutilizator, adic permit accesul concurent 2n acelai timp3 a mai multor utilizatori la aceeai baz de date. 7xist i un numr redus de sisteme monoutilizator, adic suport accesul doar al unui utilizator 2la un moment dat3. ,)0)0) lasificare dup numrul de staii pe care este stocat .aza de date 4 alt clasificare este cea dup numrul de staii pe care este stocat baza de date. 7xist dou categorii de sisteme de baze de date5 centralizate i distribuite. Bn sistem de baze de date centralizat:: este un sistem de baze de date n care datele i sistemul de gestiune sunt stocate pe un singur calculator. Bn sistem de baze de date distribuit:> poate avea at$t datele, c$t i sistemul de gestiune, distribuite pe mai multe calculatoare interconectate printr-o reea de comunicaie. ,)1) Securitatea -i protecia datelor in .azele de date Prin protecia i securitatea datelor se nelege totalitatea mi!loacelor, metodelor i a mecanismelor destinate prevenirii distrugerii, modificrii sau folosirii neautorizate a informaiei prote!ate. ?eferitor la protecia i securitatea datelor, n literatura de specialitate se definesc urmtoarele concepte de baz5 - Securitatea datelor / totalitatea msurilor de protective mpotriva distrugerii accidentale sau intenionate, a modificrii neautorizate sau a divulgrii acestora - Caracterul secret / este un concept ce se aplic la un individ sau organizaie i const n dreptul acestora de a decide ce informaii se pot folosi n comun i n ce condiii - Confidenialitatea / se aplic la date i se refer la statutul acordat, acesta reprezent$nd nivelul sau gradul de protecie ce trebuie acordat informaiei respective - Integritatea / se refer la restricia ca sensul datelor s nu difere fa de cel nscris pe documentul surs, impun$nd totodat ca datele s nu fie alterate accidental sau voit. Foiunile de mai sus sunt str$ns legate ntre ele, msurile pariale se suprapun i se acoper reciproc. (ecuritatea i protecia datelor din baza de date constituie un domeniu foarte vast, care prezint dou aspecte principale5 pe de o parte, elementele legale i etice privind drepturile de acces la anumite informaii, iar pe de alt parte, elementele legate de organizarea sistemelor informatice din punct de vedere al posibilitilor de acces la datele stocate. Bnele informaii care exist n baza de date sunt strict private i nu pot fi accesate legal de ctre persoane neautorizate. Diferite reglementri guvernamentale sau legi existente n
11 12

Centralized Database S-stem Distributed Database S@stem

ma!oritatea rilor stabilesc ce informaii privind activitatea instituiilor sau a persoanelor pot fi fcute publice i n ce condiii. .a nivelul sistemelor informatice se pot diferenia aspect de securitate la nivel fizic 2hard9are3, la nivelul sistemului de operare i la nivelul sistemului de gestiune al bazei de date. 2),) omponentele unui sistem de .aze de date *n sistem de baze de date 2Database S-stem3 reprezint un ansamblu de componente care asi!ur crearea, utilizarea i ntreinerea uneia sau mai multor baze de date Componentele unui sistem de baze de date sunt$ 0ard1are, soft1are, utilizatori, date persistente 2),),) 2ard3are &alculatoarele pe care sunt instalate de obicei sistemele de baze de date sunt P& standard, dar i calculatoare multiprocesor foarte puternice. Performanele generale de operare ale calculatorului influeneaz n mod corespunztor perfomanele sistemului de baze de date. &ea mai important caracteristic a calculatorului pe care funcioneaz sistemul de baze de date este capacitatea harddisG-ului, utilizat pentru memorarea datelor din baza de date. 2),)2) Soft3are %ntre baza de date 2colecia de date memorate fizic n fiiere pe harddisG-uri3 i utilizatorii sistemului exist un nivel soft9are, numit sistem de gestiune a bazei de date '1. 4 baz de date computerizat poate fi generat i meninut fie cu a!utorul unui grup de programe de aplicaie specifice acestui scop, fie cu acest (0)D. programe de aplicaie specifice acestui scop, fie cu acest (0)D. omponentele sistemului de .aze de date (istemul de gestiune al bazei de date este un interpretor de cereri, el recepion$nd de la utilizatori anumite cereri de acces la baza de date, le interpreteaz, execut operaiile respective i returneaz rezultatul ctre utilizatori. De fapt, (0)D este un sistem de programe general ce faciliteaz procesul definirii, construciei i manipulrii datelor pentru diverse aplicaii. Definirea bazei de date presupune specificarea tipurilor de date ce vor fi stocate n baza de date, precum i descrierea detaliat a fiecrui tip de dat6 - Construcia bazei de date reprezint procesul stocrii datelor nsi prin mediul controlat prin (0)D6 - Prin manipulare se neleg o serie de funcii ce faciliteaz implementarea cererilor pentru gsirea datelor specificate, adugarea de noi date ce reflect modificarea contextului, generearea de rapoarte pe baza coninutului bazei de date. %n concluzie, pachetul soft9are ce asigur manipularea datelor, mpreun cu datele nsi 2coninutul bazei de date3 formeaz ceea ce se numete sistemul de baze de date. Bn (0)D ofer utilizatorilor o viziune a datelor stocate n baza de date, nemaifiind necesar cunoaterea organizrii particulare a sistemului, asigur o protecie a datelor fa de accese neautorizate i de anumite defecte de funcionare. -

13

S?BD - Data)ase ,anagement (@stem

2),)0) &tilizatorii Btilizatorii unui sistem de baze de date se mpart n c$teva categorii5 Pro!ramatorii de aplicaii sunt cei care dezvolt aplicaiile de baze de date n anumite medii de programare6 *tilizatorii obinuii sunt acei utilizatori care acceseaz baza de date prin intermediul unei aplicaii de baze de date. Aceti utilizatori au drepturi limitate asupra accesului la datele din baza de date, ei neav$nd cunotine aprofundate asupra structurii i a datelor din acea baz de date6 @dministratorul bazei de date 2Data)ase Administrator3 care este o persoan autorizat, care are ca sarcin administrarea resurselor, autorizarea accesului la baza de date, a coordonrii i monitorizrii utilizatorilor acelei baze de date.

2),)1) %ate persistente Datele memorate ntr-o baz de date sunt date persistente, adic date care rm$n memorate pe suport magnetic, independent de execuia programelor de aplicaii. Datele persistente ale unei baze de date se introduc, se terg sau se actualizeaz n funcie de date de intrare provenite de la tastatur. "niial datele de intare sunt date nepersistente, ele devenind persistente dup ce au fost validate de (0)D. Datele de ieire ale unui sistem de baze de date sunt tot date nepersistenete, ele provenind din operaii de interogare a bazei de date i puse la dispoziie utilizatorului sunt form de raport, afiare etc. 2)2) 'r4itectura intern a sistemlor de .aze de date Arhitectura intern a unui sistem de baze de date conine trei niveluri funcionale ce vor fi descrise mai !os. Bna din caracteristicile fundamentale a bazelor de date este dat de faptul c produce c$teva niveluri de abstractizare a datelor, prin ascunderea detaliilor legate de stocarea datelor, detalii ce nu sunt utile utilizatorilor bazei de date. (e definete modelul datelor ca un set de concepte ce poate fi utilizat n descriereea structurii datelor. Prin structura bazei de date se nelege tipul datelor, legtura dintre ele, restriciile ce trebuie ndeplinite de date. &ele mai multe baze de date includ un set de operaii ce specific modul de acces la date. 4 structur de date asociat unei baze de date poate fi reprezentat pe trei niveluri, av$nd ca scop separarea aplicaiilor utilizatorului de baza de date fizic. (chema bazei de date pe cele trei niveluri poate fi vzut astfel5 - =ivelul intern constituit din schema intern ce descrie structura de stocare fizic a datelor n baza de date, utiliz$nd un model al datelor fizice. .a acest nivel se descriu detaliile complete ale stocrii, precum i modul de acces la date. - =ivelul conceptual sau schema conceptual descrie structura ntregii baze de date pentru o comunitate de utilizatori. .a nivelul conceptual se face o descriere complet a bazei de date, ascunz$nd detaliile legate de stocarea fizic, concentr$ndu-se asupra descrierii entitilor, tipurilor de date, relaiilor dintre ele, precum i a restriciilor asociate. Poate fi utilizat cu bune rezultate, la model de nivel nalt sau un model specific de implementare. - =ivelul extern sau nivelul vizual 2utilizator3 include o colecie de scheme externe ce descriu baza de date prin prisma diferiilor utilizatori. 8iecare grup de utilizatori descrie baza de date prin prisma propriilor interese. 7xist tendina la acest nivel ca grupuri de

utilizatori s ascund detalii de care nu sunt interesate. Hi la acest nivel se pot folosi modele de implemetare sau modele de nivel nalt. Desigur c n multe (0)D nu se poate face o distinctive net ntre cele trei niveluri. &u toate acestea se poate remarca la ma!oritatea (0)D un nivel conceptual puternic ce suplinete aparent de cele mai multe ori celelalte niveluri. De asemenea, se remarc o contopire mai ales la dezvoltarea aplicaiilor a nivelului conceptual i extern. (e remarc faptul c arhitectura pe trei niveluri reprezint numai o descriere a datelor la nivel fizic. 2)0) !ndependena datelor Aceast organizare pe trei niveluri a sistemelor de baze de date este important pentru c explic conceptul de independen a datelor, prin posibilitatea modificrii sistemului bazei de date la orice nivel fr a influena nivelurile superioare. "ndependena datelor se poate defini n dou moduri, aferente nivelurilor conceptual i intern. - 'ndependena lo!ic$ prin aceasta se nelege capacitatea schimbrii schemei conceptuale fr a atrage dup sine schimbri n schema extern sau n programele de aplicaie. 7ste posibil schimbarea schemei conceptuale prin expandarea bazei de date ca urmare a adugrii de noi tipuri de nregistrri sau a datelor insi, sau prin reducerea bazei de date ca urmare a reducerii nregistrrilor6 - 'ndependena fizic$ este reprezentat prin capacitatea de schimbare a schemei interne fr schimbarea schemei conceptuale sau externe. (chimbarea schemei conceptuale poate surveni ca urmare reorganizrii fizice a unor fiiere, prin crearea de noi structuri de acces menite s asigure accesul eficient la date. Dac sistemul conine (0)D pe mai multe niveluri, catalogul trebuie s reflecte modul n care diverse cereri se implementeaz la fiecare nivel. 2)1) Lim.a/e S56% (0)D trebuie s ofere limba!ele corespunztoare tuturor categoriilor de utilizatori. Dup proiectarea bazei de date i alegerea (0)D, este foart important construirea schemei interne i conceptuale a bazei de date. &um n cele mai multe situaii, nu exist o separaie net ntre cele dou nivele, un limba! numit Data Definition .an!ua!e:A este utilizat de administratorul bazei de date i de proiectantul bazei de date n definirea ambelor scheme. Bn compilator DD. proceseaz instruciunile pentru identificarea descrierilor despre construcie i memoreaz aceasta n catalogul (0)D. %n (0)D cu o clar separaie ntre nivelul conceptual i cel intern, DD. este utilizat pentru specificarea schemei conceptuale. Bn alt limba! numit Stora!e Definition .an!ua!e:B este utilizat pentru specificarea schemei interne. .egtura ntre cele dou nivele de implementare este asigurat de unul din cele dou. %n general, fr specificare explicit, referirea la definirea bazei de date presupune utilizarea DD.. "nstruciunile n limba! DD. pot fi nglobate ntr-un limba! general de programare sau pot fi compilate separat. 4dat schema compilat i baza de date populat cu date, utilizatorul are o serie de facilitate pentru manipularea datelor. 4peraiile tipice includ cutarea, inserarea, tergerea i modificare datelor. Pentru aceasta (0)D dispune de Data &anipulation .an!ua!e :/
14 15

DD. (D. 16 D,.

.a r$ndul su, D,. poate fi mprit n dou componente5 un D,. de nivel nalt6 un D,. de nivel sczut6

(eciunea D,. de nivel nalt sau neprocedural este utilizat pentru specificarea operaiilor complexe n baza de date ntr-o form concis. %n general, operaiile utiliz$nd aceast seciune sunt realizate fie ntr-o form interactiv de la terminal, fie prin utilizarea unui limba! de programare universal. (eciunea D,. de nivel sczut sau procedural este realizat utiliz$nd un limba! de programare general. &u aceast seciune se realizeaz operaiile tipice, cum sunt refacerea unei nregistrri individuale, procesarea separat a nregistrrilor bazei de date. Din motivul c opereaz asupra nregistrrilor individuale, aceast prelucrare se mai numete i nregistrare cu nregistrare. 4 comand pentru D,. de nivel nalt specific o cerere de acces la date, dar nu specific modul n care se realizeaz acasta. Din acest motiv acest limba! se numete declarativ. 4ricum, comenzile D,. fie de nivel nalt, fie de nivel sczut sunt implementate ntr-un limba! de programare general, limba! numit i limba! gazd, iar D,. este numit limba! de date. D,. de nivel nalt utlizat ntr-o manier interactiv formeaz ceea ce se numete Cuer- lan!ua!e:4. 2)7) !nterfee S56% (0)D trebuie s ofere interfee corespunztoare tuturor categoriilor de utilizatori. Aceste interfee au ca scop facilitarea legturii ntre utilizatori i sistemul de baze de date. Principalele tipuri de interfee oferite de (0)D sunt5 - 'nterfee bazate pe meniuri. Acestea ofer utilizatorului o list de opiuni, numite meniuri care i a!ut la formularea cererilor - 'nterfee !rafice. Aceste interfee afieaz utilizatorului o diagram. Btilizatorul poate formula cererea prin manipularea acestei diagrame. %n cele mai multe cazuril, interfeele grafice sunt combinate cu meniuri. - 'nterfee bazate pe forme. Aceste interfee sunt acelea prin intermediul crora utilizatorul poate completa formele cu noile date pe care le dorete s le insereze, sau folosete aceste forme pentru a cere (0)D s obin datele de interes. - 'nterfee n limba+ natural. Aceste interfee accept cereri scrise n limba englez sau alte limbi de circulaie internaional. 4 interfa n limba! natural conine uzual o schem proprie similar cu schema conceptual a bazelor de date - 'nterfee specializate aferente cererilor repetate Aceste interfee sunt destinate unei anumite categorii de utilizatori, de exemplu utilizatorii care se ocup de operaiile dintr-o banc. - 'nterfee pentru administratorii bazelor de date Acestea sunt utilizate n implementarea comenzilor privilegiate ce sunt folosite de administratorii bazelor de date. 2)8) E9emple de S56% %n momentul de fa, pe pia exist o ofert foarte mare de sisteme de gestiune a bazelor de date, de la sisteme care se pot folosi gratuit 2fr licen sau cu licen public3, p$n la sisteme de nalt performan, a cror utilizare necesit cumprarea de licene. Pentru aceste
17

.imba! de interogare a bazelor de date

sisteme exist pe site-urile productorilor versiuni de test numite trial version, pentru care nu se pltete licen, durata folosirii respectivului produs fiind limitat la un numr de zile 21<, I< zile, n funcie de productor3. &icrosoft S,. Server este sistemul de gestiune a bazelor de date relaionale multiutilizator dezvoltat de firma ,icrosoft pentru sistemele de operare +indo9s. 7xist o interfa grafic pentru interaciunea cu utilizatorul, pentru folosirea tuturor opiunilor5 de exportJ import date, de creare i manipulare a tabelelor, pentru popularea cu date a tabelelor, de creare a interogrilor, a procedurilor stocate, a triggerelor etc. &icrosoft @ccess este unul din cele mai cunoscute sisteme de gestiune a bazelor de date relaionale pe platforme decalculatoare personale. Sistemul Oracle este un sistem de gestiune al bazelor de date multi-utilizator foarte puternic, cu implementri pe toate platformele 2+indo9s, .inux, Bnix3, care ofer at$t performane de execuie ridicate, c$t i un grad mare de protecie i securitate a datelor. &-S,. este un sistem de gestiune a bazelor de date relaionale cu implementri pentru sistemele de operare .inux, Bnix, +indo9s. Acest sistem se poate utiliza gratuit, fiind open source. 'B& DB> este un sistem de gestiune al bazelor de date al firmei "),. Acest sistem asigur integritatea datelor, ofer o securitate sporit pentru date, are o interfa grafic pentru gestionarea bazei de date. Dispune, ca i ,icrosoft (C. (ever i 4racle de posibilitatea crerii de proceduri stocate, acestea fiind nite proceduri care ruleaz pe server i asigur o vitez mai mare de rspuns. 0),) (roiectarea Proiectarea unei baze de date const din proiectarea logic i fizice a acesteia, pentru a corespunde cerinelor utilizatorilor pentru un anumit set de aplicaii. %n general, vom considera c proiectarea corect a unei baze de date trebuie s parcurg urmtoarele etape5 - Analiza cererilor i str$ngerea de informaii referitoare la aplicaie6 - Proiectarea conceptual a bazei de date6 - Alegerea unui sistem de gestiune al bazelor de date6 - Proiectarea logic a bazei de date6 - Proiectarea fizic a bazei de date6 - "mplementarea bazei de date i a aplicaiei6 %nainte de a se proiecta efectiv o baz de date, este necesar s se cunoasc ce rezultate se ateapt potenialii utilizatori s obin de la baza de date respectiv i documentarea asupra informaiilor ce sunt disponibile pentru aceasta. De asemenea, este necesar i definirea c$t mai exact a aplicaiei. 0)2) :odelul entitate;relaie) $.iectele .azelor de date relaionale ,odelul entitate-relaie este cel mai utilizat model conceptual de nivel nalt, care reprezint schema conceptual a bazei de date cu a!utorul entitilor i a relaiilor dintre acestea. Acest model a fost introdus n anul ':;I de P.(.&hen. 7lementele de baz folosite n cadrul acestui model sunt conceptele de entitate i cel de relaie. 4 entitate este un obiect al lumii reale, cu o existent independent i poate reprezenta un obiect fizic, o activitate, un concept. 4 entitate este un obiect cu existen fizic , de exemplu5 persoan particular, automobil, companie, activitate, curs universitar.

4rice entitate are o serie de proprieti numite atribute, ce descriu entitatea respectiv. &u toate c nu reprezint acelai lucru, pentru denumirea de entitate se mai folosete i denumirea de tabel al bazei de date, iar pentru atribute c$mpurile tabelului. Atributelor li se asociaz valori care au ca scop identificarea entitii. Aceast atribuire de valori pentru fiecare atribut formeaz o <nregistrare a tabelului respectiv (curte definiii a noiunilor pe care le-am folosit i le vom folosi n continuare sunt5 #abel 2entitate3 este o colecie de informaii logice relaionale tratat ca o unitate %nregistrare 2n-uplu3. 4 tabel este compus din nregistrri sau r$nduri. 8iecare nregistrare este tratat ca o simpl unitate. 8iecare nregistrare este legat de nregistrri ale altei tabele. - &$mpuri 2atribute3. %nregistrrile sunt constituite din c$mpuri 2coloane3 . Bn c$mp este o particul atomic a bazei de date ce reprezint cea mai mic cantitate de informaie care poate fi manipulat. #oate nregistrrile dintr-o tabel au aceleai c$mpuri. Bnele atribute pot fi divizate n mai multe pri cu semnificaie independent. Bn astfel de atribut este un atri.ut comple9. Atributele care nu sunt compuse se numesc atri.ute atomice Kaloarea atributelor complexe se formeaz prin concatenarea valorilor atributelor atomice. ,ulte atribute au valoare unic pentru o entitate particular i sunt numite atri.ute cu o singur valoare. 'tri.utele derivate sunt atributele ce se pot determina din alte atribute, cum ar fi v$rsta unei persoane se poate calcula din data curent minus data naterii persoanei respective. %n anumite situaii, o entitate poate s nu aib valori pentru toate atributele asociate ei, n acest caz folosindu-se o valoare special numit atri.utul null. 0)0) onstrucia sc4emelor relaie %n proiectarea bazelor de date se definesc relaii sau asocieri ntre mulimile de entiti componente, pentru a reprezenta anumite aspecte ale realitii pe care o modeleaz baza de date. 4 relaie este o coresponden ntre entiti din una sau mai multe mulimi de entiti. 0radul unei relaii este dat de numrul de mulimi de entiti asociate. ?elaiile pot fi binare 2ntre * mulimi de entiti3 sau multiple 2ntre mai mult de * entiti3. 0)0),) Relaia =unul;la;unul> ?,;, sau one to one@ ?elaia Lunul-la-unul> este cel mai simplu tip de relaie. 7a este relaia prin care unui element din mulimea 7' i corespunde un singur element din mulimea 7* i reciproc. Aceast relaie Lunul-la-unul> este foarte rar folosit n lumea real. &el mai des, ea este folosit pentru a reduce numrul de atribute dintr-o entitate, pentru a nu depi numrul maxim de c$mpuri asociate pentru o tabel, acesta fiind de circa *EE. (e mai poate folosi i n cazul n care dorim desprirea elementelor fixe, a informaiilor care se modific mai rar fa de cele care se modific destul de des. 0)0)2) Relaia =unul;la;multe> ?,;" sau one to manA@ Aceast relaie este o relaie prin care unui element din mulimea 7' i corespund unul sau mai multe elemente din mulimea 7*, dar unui element din mulimea 7* i corespunde un singur element din mulimea 7'.

0)0)0) Relaia =multe;la;multe> ?:;" sau manA to manA@ Aceast relaie este o relaie prin care unui element din mulimea 7' i corespund unul sau mai multe elemente din mulimea 7*, i reciproc. Acest tip de relaie este foarte des nt$lnit, dar nu poate fi implementat n bazele de date relaionale. De fapt, pentru modelarea acestei relaii se folosete o relaie suplimentar, de tip unul-la-multe pentru fiecare din relaiile iniiale. 0)0)1) Relaia unar #oate relaiile prezentate anterior sunt relaii binare, av$nd c$te dou relaii implicate. ?elaiile unare folosesc doar o singur relaie, aceasta fiind asociat cu ea nsi. 0)7) onstrngeri de integritate &onstr$ngerile de integritate sunt reguli care se definesc la proiectarea unei baze de date i care trebuie s fie respectate de-a lungul existenei acesteia. 7ntitiile unei baze de date reflect realitatea modelat i de aceea valorile pe care le conin trebuie s respecte anumite reguli, care s corespund celor din realitate. Kom folosi n continuare pentru termenul de entitate denumirea tabel. &onstr$ngerile se pot clasifica astfel5 - n cadrul tabelei6 - sau ntre tabele6 &onstr$ngerile din cadrul unei tabele sunt reguli care se impun n cadrul unei singure tabele i asigur integritatea datelor acesteia. 7le sunt de 1 categorii5 - constrngeri de domeniu. Aceste constr$ngeri sunt condiii care se impun valorilor atributelor i asigur integritatea domeniilor atributelor. - constngeri de nuplu 2de nregistrare din tabel3. Aceste constr$ngeri sunt condiii care se impun nuplurilor unei entiti 2nregistrrilor din tabel3 i asigur identificarea corect a nuplurilor prin intermediul cheilor primare. - constrngeri impuse de dependene de date 2dependene funcionale3. Acestea sunt constr$ngeri prin care valorile unor atribute ale unei entiti 2c$mpuri ale tabelei3 determin valorile altor atribute ale aceleiai entiti. &onstr$ngerile ntre tabele sunt reguli care se impun ntre dou sau mai multe relaii. &ele mai importante sunt constr$ngerile de integritate referenial, care se realizeaz prin 0)7),) onstrngerile de domeniu &onstr$ngerile de domeniu sunt condiii impuse valorilor atributelor pentru ca acestea s corespund semnificaiei pe care o au n realitatea modelat. %n reprezentarea unei entiti printrun tabel, valorile atributelor sunt reprezentate pe coloane. Din aceast cauz aceste constr$ngeri se mai numesc i constr$ngeri de coloan. Constr)n!erea =OD =*... Kaloarea FB.. este o valoare particular, care nu reprezint valoarea <, ci lips de informaie. Aceast valoare FB.. poate aprea c$nd nu se cunosc respectivele informaii. %n astfel de situaii la definirea relaiilor se impune atributului constr$ngerea F4# FB.., nsemn$nd c acest atribut nu poate lua valoare FB.. n orice nregistrare din tabel

Constr)n!erea DE#@*.D Aceast constr$ngere este folosit pentru stabilirea unei valori implicite 2D78AB.#3 pentru un atribut al entitii. %n cazul n care la inserarea unui nuplu 2nregistrri3 nu se specific valoarea unui atribut 2c$mp3, atunci acesta primete valoarea implicit 2dac a fost definit3 sau valoarea FB.. 2dac nu a fost definit o valoare implicit pentru atributul respectiv, dar sunt admise valori FB..3. Dac nu a fost definit o valoare implicit i nici nu sunt admise valori FB.. se genereaz o eroare. Constr)n!erea C<ECF &onstr$ngerea &M7&N este dup cum i spune i numele o constr$ngere de verificare. %n limba!ul (C., care va fi prezentat ntr-un capitol viitor, domeniile n care pot lua valori atributele se pot stabili ca tipuri de date predefinite. Pentru fiecare atribut se pot aduga constr$ngeri de verificare la definirea tabelului.

0)7)2) onstrngerile referitoare la n;upluri ?<nregistrrile din ta.el@ ; 4eia primar 4 entitate este definit ca o mulime de n-upluri. Deci, n-uplurile entitii trebuie s fie distincte, acest lucru nsemn$nd c ntr-o entitate nu pot exista dou sau mai multe n-upluri care c conin acceai combinaie de valori pentru fiecare atribut. 4 cheie primar a unei entiti 2tabele3 este o submulime de atribute ale entitii care are urmtoarele proprieti5 - este unic, adic orice combinaie de valori ale atributelor acestei chei este unic pentru orice stare a relaiei - este stabil, adic informaia corespunztoare ei nu se modific niciodat prin operaii de actualizare a datelor - nu se admit valori FB.. pentru nici unul din atributele cheii respective. %n concluzie, o cheie primar reprezint unul sau mai multe c$mpuri ale tabelei care identific unic fiecare nregistrare din tabela respectiv. 0)7)0) onstrngeri <ntre ta.ele ?elaiile dintre tipurile de entiti definite n modelul conceptual al unei baze de date se realizeaz n modelul relational prin intermediul cheilor strine. 4 cheie strin este o submulime de atribute ale unei entiti 7' care refer entitatea 7* i ndeplinete urmtoarele condiii5 atributele cheii strine din 7' sunt definite pe domenii compatibile cu cele ale atributelor cheii din entitatea 7*, i cheia din entitatea 7* este cheie primar n aceast relaie. Aceast cheie strin determin o asociere ntre c$mpurile unor tabele cu cele ale altei tabele i creeaz abilitatea de realizare a unirii tabelelor respective prin intermediul operaiilor A4"F. "ntegritatea referenial este proprietatea bazei de date care garanteaz c oricare valoare a unei chei strine se regsete printre valorile cheii corespunztoare din relaia referit, sau cheia strin are valoarea FB.. 2dac atributele acesteia nu sunt supuse constr$ngerii F4# FB..3. 0)8) %ependene funcionale Dependena funcional definete relaia dintre un atribut sau un grup de atribute ale unui tabel i un alt atribut sau grup de atribute ale altuia. Dup cum am specificat, atributele se refr la c$mpurile tabelei. Prin urmare trebuie s vedei ce c$mpuri depind de alte c$mpuri. %n orice tabel pot exista dou categorii de dependene funcionale5

Dependene funcionale determinate de cheile tabelei6 astfel de dependene funcionale nu produc redundana datelor i nici anomalii de actualizare a relaiei6 - Dependene funcionale n care atributul determinat nu este o cheie a tabelei6 astfel de dependene funcionale produc redundana datelor i anomalii de actualizare a tabelei. &onstr$ngerile de cheie sunt constr$ngeri implicite, coninute n definiia relaiei i sunt verificate i impuse automat de sistemul de gestiune6 proiectantul bazei de date nu trebuie s prevad nimic suplimentar pentru ca aceste constr$ngeri s fie satisfcute de orice stare a relaiei. %n schimb, dependenele funcionale n care atributul determinant nu este o cheie a relaiei sunt constr$ngeri explicite, care nu sunt verificate i nici impuse de sistemul de gestiune. Kerificarea i impunerea acestor dependene funcionale se poate face numai procedural, prin tri!!ere, proceduri stocate sau funcii impuse n programele de aplicaie. 0)B) "ormalizare) Corme normale) .a proiectarea bazelor de date relaionale se stabilesc entitile din realitatea modelat. ,odul n care se pot stabili entitile unei baze de date nu este unic i de accea este necesar s existe criterii de evaluare a calitii entitilor, astfel nc$t acestea s asigure integritatea datelor. %n acest capitol se trateaz procesul normalizrii i primele trei forme normale pentru o tabel. Procesul de normalizare propus de 7.8. &odd n ':;< urmrete execuia asupra unei tabele a unor serii de teste pentru a cerceta apartenena la forma normal. &odd propune trei forme normale 21F83, cea mai bun definiie fiind dat mai t$rziu de )o@ce i &odd, fiind cunoscut sub numele de forma normal )o@ce-&odd. Formalizarea datelor poate fi privit ca un proces n timpul cruia schemele tabel nesatisfctoare sunt descompuse prin mprirea atributelor n tabele cu atribute mai puine ce posed proprietile dorite. %n fond, unul din obiectivele procesului de normalizare este asigurarea faptului c tabela posed o bun construcie asigur$nd posibiliti de modificare cu eliminarea anomaliilor care pot aprea. 8orma normal ofer proiectantului bazei de date 5 - un schelet formal pentru analiza relaiilor bazat pe chei i pe dependena funcional ntre atribute - serie de teste ce pot elimina tabelele individuale astfel nc$t baza de date relaional poate fi normalizat n orice grad. &$nd un test nu este trecut, tabela va fi descompus n tabele ce trec testele de normalitate 0)B),) Corma normal de ordin , ?C",@ 8orma normal de ordin ' este considerat ca fiind parte a definiiei formale a unei tabele. 7a nu permite atribute cu mai multe valori, attribute compuse sau combinaii ale lor. Aceasta stabilete ca domeniul atributelor trebuie s includ numai valori atomice i valoarea oricrui atribut ntr-un nuplu este o valoare unic n domeniul atributului respectiv. Deci, 8F' nu permite un set de valori, un nuplu de valori sau o combinaie a acestora ca valoare a unui atribut pentru un nuplu. &u alte cuvinte, 8F' nu permite tabele n tabele sau tabele ca atribute ale nuplurilor. Kalorile permise de 8F' sunt atomice sau indivizibile, pentru un domeniu specificat de valori.

0)B)0) Corma normal de ordin 0 ?C"0@ Pentru a a!unge la a treia form normal, tabelul trebuie s fie de!a n prima i a doua form normal. Pentru a fi n a treia form normal, trebuie ca toate c$mpurile non-primare s depind numai de c$mpurile primare. Dei nu face parte n mod riguros din normalizare, de obicei nu este recomandabil s includei c$mpuri care pot fi derivate din alte c$mpuri situate n acelai tabel sau n tabelele aflate n relaie. 0)B)1) Corma normal 6oAce; odd ?C"6 @ 8orma normal )o@ce-&odd este o form strict 8F1, neleg$nd prin aceasta c fiecare tabel 8F)& este n acelai timp o tabel 8F1, cu toate c o tabel 8F1 nu este n mod necesar i o tabel 8F)&. &ele dou forme sunt asemntoare, ambele impun$nd condiia ca atributul care determin functional alte atribute s fie o cheie a tabelei. 8orma normal )o@ce-&odd este mai restrictiv dec$t 8F1, deoarece n 8F)& se impune aceast condiie tuturor atributelor, prime sau neprime, pe c$nd n 8F1 condiia se impune numai atributelor neprime. Atributele prime sunt atributele care aparin unei chei, iar celelalte se numesc atribute neprime. 4rice tabel format din dou atribute este 8F)&, 8F* i 8F1. Aceast tabel compus din dou atribute este 8F*, deoarece, fie cheia este format din ambele atribute i atunci nu exist atribute neprime, fie cheia este format dintr-unul din atribute, iar dependena funcional a celuilalt atribut 2care este atribut neprim3 fa de cheie este total. Aceast tabel compus din dou atribute este 8F1 deoarece este 8F* i nu poate exista nici un atribut neprim care s determine funcional un alt atribut neprim, deoarece o tabel cu dou atribute nu poate avea dec$t cel mult un atribut neprim. 0)8) Structuri de indec-i <n ta.elele de date Bn index reprezint o cale rapid de localizare a nregistrrilor dintr-o tabel, prin gruparea tuturor nregistrrilor pentru un anumit atribut sau grup de atribute. "ndexarea este utilizat n dou scopuri principale5 - accelerarea cutrilor n baza de date - asigurarea unicitii nregistrrilor Kom privi o relaie ca o colecie de date 2o mulime3 n care nu sunt admise elemente duplicat. %n cazul unei mulimi reprezentate printr-o colecie neordonat de elemente, timpul de cutare a unui element crete proporional cu numrul de elemente ale mulimii, deoarece n cazul cel mai ru trebuie parcurse toate elementele mulimii pentru a gsi elementul dorit. #impul de cutare a unui element poate fi micorat considerabil dac elementele mulimii sunt ordonate. De fapt, indexul poate fi g$ndit ca o tabel cu dou atribute5 primul atribut conine valorile atributelor tabelei bazei de date pentru care se creaz indexul, iar al doilea conine un pointer la locaia nuplurilor corespunztoare. Kalorile sunt aran!ate fie n ordine descendent cheii de indexare, fie n ordine ascendent. "ndecii se clasific dup tipul de c$mp sau dup nivel i dup modul de organizare a tabelei. 4 clasificare a acestora este urmtoarea5

'. !nde9ul primar este un index asociat unei tabele ordonate dup c$mpul cheie al tabelei, iar n structura de index se utilizeaz c$mpul cheie. *. !nde9ul secundar este un index construit tot pe baza unui c$mp cheie, dar tabela nu este ordonat dup c$mpul cheie. 1. !nde9ul de grup 2cluster3 este un index construit dup c$mpuri ce nu sunt c$mpuri cheie 2criteriu de acces este diferit de c$mpul cheie3, iar tabela poate fi ordonat sau nu relativ la criteriul de acces. D. !nde9ul multinivel 2se mai numesc i indeci de blocuri3 se aplic oricror tabele. Principiul de baz este de a construe niveluri de indexare p$n c$nd structura adiional de date corespunde indexului de cel mai mare nivel poate fi memorat ntr-un singur bloc. Aceti indeci se construiesc n dou forme5 bazai pe arbori ) i bazai pe arbori )O. 1)1) Lim.a/ul standard SQL

1)1),) Scurt istoric al lim.a/ului SQL (C. a fost conceput ca un limba! standard de descriere a datelor i acces la informaiile din bazele de date, ulterior dezvolt$ndu-se ca o adevrat tehnologie dedicat arhitecturilor client-server. &omenzile principale n cazul limba!ului (C. se refer la cele cinci operaii de baz care se pot efectua ntr-un limba! relaional5 P &reareaJtergerea unei tabele P "nserarea de noi linii intr-o tabel P Htergerea unor linii dintr-o tabel P ,odificarea unor linii dintr-o tabel P .istarea selectiv a datelor din una sau mai multe tabele %n acest mediu exist dou moduri pentru crearea interogrilor5 modul de scriere efectiv a cererilor n partea de Cueries sau un mod grafic mult mai prietenos utilizatorului numit Design Kie9. Kom prezenta interogrile i n primul mod5 (C. K"7+, dar i n modul grafic. 1)1)2) rearea unei ta.ele &omanda de creare de noi tabele n baza de date curent n limba!ul (C. standard este &?7A#7 #A).7. (intaxa simplificat pentru aceast comand este urmtoarea5 C%E@DE D@B.E numeGtabela 2 coloanaG: descriereG:, coloanaG> descriereG>, HHHHHHHHH , coloanaGn descriereGn, IalteGdescrieriJ 3 unde coloanaQx este numele coloanei, iar descriereQx conine tipul valorilor acelei coloane i alte elemente de descriere pentru ea. %n

descrierea unei coloane se poate specifica, pe l$ng tipul valorilor sale i alte constr$ngeri de integritate ca5 - F4# FB.. indic faptul c valorile aferente coloanei respective nu pot avea valori de tip null, care nu nseamn zero, ci lips de informaie. - P?",A?R N7R indic faptul c coloana specificat cu aceast constr$ngere va fi cheie primar pentru acest tabel. - 84?7"0F N7R necesit ca fiecare valoare din coloan s existe ntr-o coloan corespondent dintr-o tabel referit. &onstr$ngerea 84?7"0F N7R poate face referire doar lacoloane care sunt P?",A?R N7R sau BF"CB7 n tabela referit. - D78AB.# indic o valoare implicit care l ia un c$mp al unei tabele. "nterogrile prezentate mai departe vor fi fcute n modul (C. K"7+. 1)1)1) Dtergerea unei ta.ele Htergerea unei tabele se face cu comanda D?4P #A).7. (intaxa acestei comenzi n limba!ul (C. standard este5 D%OP D@B.E numeGtabel 1)1)7) :odificarea structurii unei ta.ele ,odificarea structurii unei tabele n limba!ul (C. standard se face cu comanda A.#7? #A).7. Aceast comand este folosit pentru a aduga coloane la tabele de baz din baza de date sau pentru a terge anumite constr$ngeri. 4 nou coloan adaugat prin aceast comand va avea valoarea null n toate nregistrrile care existau n tabel. (intaxa acestei comenzi este5 @.DE% D@B.E numeGtabela @DD coloanaGn descriereGn ID%OP constran!ereJ

1)7)

:odificri ale datelor <n SQL

1)7),) !nserarea de noi linii <ntr;o ta.el &omanda "F(7?# care permite inserarea de noi linii ntr-o tabel are urmtoarea sintax simplificat n limba!ul (C. standard5 '=SE%D '=DO numeGtabela I2numeGcoloana, H3J "@.*ES 2valoareaGcoloanaG:, valoareGcoloanaG>,H3 Aceast comand ne permite inserarea manual de noi nregistrri. Dac este prezent lista de coloane 2numeGcoloana, H3 nseamn c se dau doar valori pentru aceste coloane, pentru celelalte asign$ndu-se valori de null.

1)7)2) Dtergerea unor linii dintr;o ta.el (intaxa simplificat a comenzii (C. n limba!ul standard care terge liniile dintr-o tabel este urmtoarea5 DE.EDE #%O& numeGtabela IK<E%E conditieJ I.'&'D numarGliniiJ 7fectul acestei comenzi este de tergere a liniilor care ndeplinesc condiia din clauza +M7?7. .","# se folosete pentru a specifica numrul maxim de linii care se pot terge cu acea comand. %n cazul n care clauza +M7?7 lipsete, toate liniile tabelei vor fi eliminate. 1)7)0) :odificarea unor linii dintr;o ta.el (intaxa simplificat a comenzii (C. n limba!ul standard care modific liniile dintr-o tabel este urmtoarea5 *PD@DE numeGtabela SED colana:Lvaloare:, coloana>Lvaloare>, H IK<E%E conditieJ I.'&'D numarGliniiJ 7fectul acestei comenzi este de actualizare a toturor liniilor care ndeplinesc condiia din clauza +M7?7, sau a tuturor liniilor din tabel, n cazul n care lipsete aceast clauz. Foile valor sunt date de clauza (7#. 1)8) Lim.a/ul de cereri <n SQL ?egsirea datelor din una sau mai multe tabele se face cu comanda (7.7&#. (intaxa simplificat a acesteia este5 SE.ECD ID'SD'=CDJ listaGrezultat #%O& tabela sau tabele IK<E%E conditieJ I?%O*P BM coloana:, coloana>H J I<@"'=? conditieGdeG!rupJ IO%DE% BM coloana: I@SCNDESCJ,HJ Dup cum se observ doar clauzele (7.7&# i 8?4, sunt obligatorii, celelalte reprezent$nd opiuni. 1)8),) ereri simple &ea mai simpl cerere este cea prin care se regsesc toate informaiile dintr-o tabel. %n acest caz, simbolul S plasat l$ng clauza (7.7&# ine loc de lista tuturor coloanelor unei tabele. &lauza 8?4, conine numele tabelei.

1)8)2) lauza %!S#!" # %n cazul cererilor de p$n acum din fiecare linie a tabelei rezult o linie a rezultatului, chiar dac uneori unele linii sunt identice. 1)8)0) lauza $R%ER 6E 4rdinea n care apar liniile unui rezultat este dat de modul n care un sistem de gestiune stocheaz i regsete informaia n tabele. Din aceast cauz n limba!ul (C. exist posibilitatea de a sorta liniile unui rezultat n funcie de necesitile utilizatorului. &riteriile de sortare se definesc cu a!utorul clauzei 4?D7? )R. Aceasta este n mod normal ultima clauz care apare ntr-o cerere i poate conine nume de coloane, aliasuri de coloane sau numrul de ordine al coloanei n rezultat. &$nd sunt specificate mai multe criterii ele se aplic de la st$nga la dreapta. 1)8)1) lauza F2ERE P$n acum, n afara cazurilor n care se utilizeaz D"(#"F&#, din fiecare linie a tabelei rezult o linie a rezultatului. Prin folosirea clauzei +M7?7 se poate specifica o condiie care indic liniile din tabela care vor avea asociat c$te o linie din rezultat. 1)8)7) Cuncii de grup) lauzele 5R$&( 6E -i 2'V!"5 7xist multe cazuri n care se dorete obinerea de date statistice din informaiile coninute n baza de date. Pentru aceasta se folosesc funciile de grup, care pe baza nregistrrilor din ntreaga tabel sau a celor care fac parte dintr-un grup - n cazul existenei clauzei 0?4BP )R - calculeaz valoarea statistic respectiv. Principalele funcii de grup sunt5 a) Cuncia $&"# ?numrare@ av$nd mai multe forme5 &4BF#2S3 ntoarce numrul de nregistrri din grup &4BF#2expr3 ntoarce numrul de valori nenule pentru expresia Argument &4BF#2D"(#"F&# expr3 ntoarce numrul de valori distincte pentru expresia argument. .) Cuncia 'V5 ?medie@ AK02expr3 ntoarce media aritmetic a valorilor unei expresii c) Cuncia :!" ?valoarea minim@ ,"F2expr3 ntoarce valoarea minim a unei expresii d) Cuncia :'G ?valoarea ma9im@ ,AT2expr3 ntoarce valoarea maxim a unei expresii. 8unciile ,in i ,AT se pot aplica i irurilor de caractere, n acest caz se folosete ordinea lexicografic. e) Cuncia S&: ?suma valorilor@ (B,2expr3 ntoarce suma valorilor unei expresii sau FB.. n cazul n care n grupul pentru care se calculeaz suma este vid. Kalorile nule nu sunt luate n considerare la calcularea

sumei. Aa cum am menionat, n cazul n care cererea nu conine clauza 0?4BP )R valoarea funciilor este calculat pentru ntreaga tabel specificat n clauza 8?4,. 1)8)8) lauza 5R$&( 6E &lauza 0?4BP )R se folosete pentru a grupa nregistrrile pe baza unor criterii n scopul calculrii de valori statistice pentru fiecare grup n parte. %n acest caz rezultatul cererii va conine c$te o linie pentru fiecare grup identificat. Sintaxa5 0?4BP )R coloana' U, coloana*VW 1)8)B) lauza 2'V!"5 Dac +M7?7 introduce o condiie de filtrare a nregistrrilor, MAK"F0 face acelai lucru pentru grupuri5 doar grupurile care ndeplinesc condiia coninut n aceast clauz vor avea o linie n rezultatul cererii. &ondiia specificat prin MAK"F0 este o expresie logic incluz$nd funcii de grup sau constante la nivel de grup. 1)8)8) ereri coninnd mai multe ta.ele 4peraia prin care se obine un rezultat pe baza datelor din mai multe tabele se numete A4"F. %n cazul n care clauza 8?4, sunt specificate mai multe tabele toate celelalte clauze sunt evaluate pornind de la produsul cartezian al tabelelor. Acesta este obinut 2teoretic3 prin concatenarea fiecrei linii a unei tabele cu fiecare dintre liniile celorlalte tabele. 7) Cormular

7),) e este un formularH 8ormularele 28orms3 reprezint ferestrele primare folosite pentru introducerea i afiarea datelor n Access. 8ormularele v permit s prezentai datele ntr-o form care l scutete pe utilizator de preocuprile legate de modul de stocare al acestora. (e pot crea formulare diferite pentru utilizri diferite5 introducerea unor intregistrri noi, editarea celor existente, numai pentru afiare sau formulare care funcioneaz pur i simplu ca nite casete de dialog. 7)2) Lucrul cu formularele

7)2),) %esc4iderea unui formular Dac exist de!a creat un formular, acesta se poate deschide prin apsarea dublu clic pe respectivul formular din obiectul 8orms. #oate formularele create ntr-o baz de date se vor gsi n obiectul 8orms. 7)2)2) rearea unui formular Pentru a crea un formular nou vom alege obiectul 8orms din fereastra Database i se apeleaz meniul "nsert cu opiunea 8orms. Ka aprea o fereastr cu mai multe tipuri de programe 9izard pentru formulare5

8) Raport 8),) e este un raportH %n timp ce formularul este proiectat pentru lucrul pe ecran 2dei i el poate fi tiprit3, raportul este proiectat n primul r$nd pentru tiprire 2 cu toate c i el poate fi afiat pe ecran3. Pe l$ng aceast deosebire de destinaie, exist i o diferen conceptual ma!or ntre formular i raport. 8ormularul este proiectat pentru accesul aleator la date. Dup ce obine accesul la o anumit nregistrare, utilizatorul poate trece la sf$ritul formularului pentru a aduga o nregistrare nou sau se poziioneaz la nceputul formularului pentru cutarea unei alte nregistrri. %n concluzie, formularul se bazeaz pe un set d@namic de date, date care trebuie actualizate cu toate modificrile efectuate de ali utlizatori n timpul utilizrii formularului. Pe de alt parte, raportul nu modific niciodat datele, fiind necesar parcurgerea secvenial a nregistrrilor pentru a genera subtotaluri i rezumate. 8)2) Lucrul cu rapoarte 8)0) 8)2),) %esc4iderea unui raport Dac exist de!a creat un raport, acesta se poate deschide prin apsarea dublu clic pe respectivul raport din obiectul ?eports. #oate rapoartele create ntr-o baz de date se vor gsi n obiectul ?eports.

'(!#$L&L

!!I

$"#R!6&J!!

(ERS$"'LE)

(R$!E #

%E

(ERCE J!$"'RE D! '(R$C&"%'RE


Sistem informatic pentru evidena contractelor <nc4eiate de o agenie de turism
Agenia de turism Dream #ourism ofer o gam larg de pachete de servicii i dore te s- i informatizeze activitatea de gestionare a contractelor ncheiate cu clien ii. #uritii care apeleaz la serviciile Ageniei Dream#ourism sunt persoane fizice care se identific printr-un cod unic, nume, prenume, &FP, serie &", numr &", telefon, e-mail, adres. Agenia Dream#ourism ofer o gam de servicii de categoria excursiilor, cazrilor, biletelor de avion precum i cltoriilor de afaceri, a a-zisele corporate travel. 8iecare categorie de servicii include mai multe tipuri de servicii, aa cum sunt redate mai !os5 &ategoria de servicii excursii include tipurile de servicii Lcircuit>, Lse!ur>, Lcroazier>. &ategoria de servicii cazare include tipurile de servicii Lpensiune complet> i Ldemi-pensiune>. &ategoria de servicii bilete de avion include tipurile de servicii Ldus>, Lntors>, Ldus-ntors>. &ategoria de servicii corporate travel include tipurile de servicii Lteambuilding>, Lconferin>, Lcongres>, Lincentiv>.

Pentru toate aceste tipuri de servicii se memoreaz un cod unic i denumirea serviciului. 7ste necesar specificarea rii de destinaie 2identificat printr-un cod, denumire, imagine reprezentativ sau steag - se insereaz un fotografie, rein$ndu-se fiierul care conine respectiv fotografie3 i pentru fiecare ara trebuie precizat localitatea de destinaie, pentru care, de asemenea, se reine un cod unic i o denumire de localitate. %n plus, agenia acord reduceri, reduceri care se acord turitilor sub 'D ani. Astfel, pentru turitii care au v$rsta mai mic sau egal cu 'D ani, se acord o reducere de E<X din tariful standard aferent fiecrui serviciu, iar copiii care nu au mplinit nc 1 ani beneficiaz de gratuitate la toate serviciile ageniei.

Prestatorii de servicii se identific printr-un cod unic, denumire, numr de telefon, e-mail. #rebuie specificat, de asemenea, categoria n care se ncadreaz fiecare prestator de servicii, fie c este companie aerian, firm de transport terestru, sau unitate de cazare. Agenia Dream#ourism ncheie un contract pentru serviciile prestate. %n cadrul contractului, se precizeaz numrul i data ncheierii acestuia, turistul beneficiar, clauzele contractuale 2drepturileJobligaiile prilor contractante3, avansul, data p$n la care se poate achita valoarea integral a contractului, tariful standard aferent serviciului respectiv, data plecrii i data de sosire. %n cazul n care turistul renun din vin s la serviciile care fac obiectul contractului, el datoreaz ageniei Dream#ourism despgubiri n funcie de momentul renunrii la pachetul de servicii 2numrul de zile nainte de data plecrii3. Regulile de gestiune sunt urmtoareleI
Bn contract poate avea unul sau mai muli beneficiari, un beneficiar poate ncheia unul sau mai multe contracte6 )eneficiarul contractului poate renun la serviciile contractate la o anumit data6 Bn contract conine un singur tip de servicii6 4 categorie de servicii include mai multe servicii6 8iecare serviciu poate fi realizat de mai muli prestatori de servicii6 8iecare categorie de prestatori de servicii include mai mul i prestatori, dar un prestator nu poate s fac parte dec$t dintr-o singur categorie6 8iecare ar destinaie are mai multe localiti6 %ntr-o localitate se pot presta mai multe servicii iar un serviciu poate fi contractat n mai multe localiti.

(e dorete obinerea modelului relaional i implementarea acestuia n ,icrosoft (C. (erver *<<Y.

7tape pentru obinerea modelului relaional5 !) a@ Se inventariaz atri.uteleI

.um n considerare informaiile referitoare la activitatea de gestionare a contractelor ncheiate de agenia Dream#ourism cerinele funcionale ale bazei de date, i ntocmim un dicionar preliminar al datelor care conine urmtoarele atribute5 &od#urist, &FP#urist, Fume#urist, Prenume#urist, (erie&", Fumr&", DataFaterii#urist, #elefon#urist, 7mail#urist, &od&ategorie(ervicii, Denumire&ategorie, &od(erviciu, Denumire(erviciu, &odPrestator(ervicii, DenumirePrestator(ervicii, &od&ategoriePrestator, Denumire&ategoriePrestator, &odZar, DenumireZar, "magine, &od.ocalitate, Denumire.ocalitate, &odPartener, Fr&ontract, Data%ncheiere&ontract, &lauze&ontractuale,

Avans, Data.imitaPlat&ontract, DataAnulare&ontract, DatPlecare, Data(osire, #arif, K$rst, ?educere, Despgubiri, #arif?ecalculat, Kaloare#otal&ontracte.

.@ Se precizeaz algoritmii de calcul pentru atri.utele care pot fi determinate prin calculI Vrsta5 Anul&urent / AnulFaterii Reducere5 - Pentru turitii cu v$rsta [\ 1 ani, reducerea este de '<<X 2aplicat la preul standard36 - Pentru turitii cu v$rsta ] 1 ani si \[ '* ani, reducerea este de D<X6 - Pentru turitii cu v$rsta \ '* ani, nu se acord nicio reducere. #arif Recalculat5 #arif(tandard / ?educere %espgu.iri5 *EX din tariful standard, dara renunarea se face cu mai mult de 1' de zile calendaristice nainte de data plecrii6 - DEX din tariful standard, daca renunarea se face n intervalul 'I-1' de zile nainte de data plecrii6 - :EX din tariful standard, daca renunarea se face ntr-un interval mai mic de 'I zile nainte de data plecrii. Valoarea#otal ontracte5 (uma valoric a fiecrui contract c@ Se <ntocme-te dicionarul de date pe .aza urmtoarelor reguliI 8iecare atribut se nscrie o singur dat6 (e elimin atributele sinonime 2CodPrestatorServicii i CodPartener sunt sinonime, deci se va reine doar unul dintre acestea / CodPrestatorServicii3. Fu se preiau atributele calculate 2")rst, %educere, Darif%ecalculat, Desp!ubiri, "aloareaDotalContracte3. -

%icionarul de date ?%%@ &od#urist, &FP#urist, Fume#urist, Prenume#urist, (erie&", Fumr&", DataFaterii#urist, #elefon#urist, 7mail#urist, &od&ategorie(ervicii, Denumire&ategorie, &od(erviciu, Denumire(erviciu, &odPrestator(ervicii, DenumirePrestator(ervicii, &od&ategoriePrestator, Denumire&ategoriePrestator, &odZar, DenumireZar, "magine, &od.ocalitate, Denumire.ocalitate, Fr&ontract, Data%ncheiere&ontract, &lauze&ontractuale, Avans, Data.imitPlat&ontract, DatAnulare&ontract, DatPlecare, Dat(osire, #arif.

d@ Sta.ilirea dependenelor funcionale dintre atri.ute dependene funcionale simple 2directe3 x(O-5 &od&ategorie(ervicii &od(erviciu Denumire&ategorie

Denumire(erviciu Denumire&ategoriePrestator DenumirePrestator(ervicii

&od&ategoriePrestator &odPrestator(ervicii &odZar &od.ocalitate

DenumireZar Denumire.ocalitate "magine

Fumar&ontract

Data%ncheiere&ontract &lauze&ontractuale Avans Data.imitPlat&ontract DatPlecare Dat(osire #arif

&od#urist

&FP#urist Fume#urist Prenume#urist (erie&" Fumr&" #elefon#urist 7mail#urist

dependene funcionale multivaloare x(O(O-

Bn contract poate fi ncheiat pentru mai muli turiti6 Bn turist poate sa incheie cu agentia mai multe contracte6 Astfel, se apeleaz la un determinant compus format din =rContract i CodDurist care va deveni cheia primar a tabelei ContracteDuriti 2obinuta datorit dependenelor multiple reciproce dintre cele dou atribute specificate3. Fr&ontract &od#urist &od#urist Fr&ontract

Pentru atributul izolat Dat@nulareContract se asociaz ca determinant cheia compus =rContract i CodDurist deoarece oricare dintre beneficiarii contractului poate s renune la serviciul contractat la o anumit dat. Fr&ontract DatAnulare&ontract &od#urist

(erviciile sunt oferite n mai multe localiti6 Bn serviciu poate fi contractat n mai multe localiti6 7xist$nd dependene multiple reciproce dintre cele dou atribute, se creeaz o tabel intermediar care va avea drept cheie primar grupul de atribute Cod.ocalitate i CodServiciu. &od.ocalitate &od(erviciu &od(erviciu &od.ocalitate

,odelul relaional este urmtorul5 ategorieServicii 2&od&ategorie(ervicii, Denumire&ategorie3 $fertServicii 2&od(erviciu, Denumire(erviciu, &od&ategorie(ervicii3 ategorie(restatorServicii 2&od&ategoriePrestator, Denumire&ategoriePrestator3 (restatoriServicii 2&odPrestator(ervicii, DenumirePrestator(ervicii, &od&ategoriePrestator, &od(erviciu3

Jar 2&odZar, DenumireZar, "magine3 Localitate 2&od.ocalitate, Fume.ocalitate, &odZar3 $ferteLocaliti 2&od(erviciu, &od.ocalitate3 ontracte 2Fr&ontract, Data%ncheiere&ontract, &lauze&ontractuale, Avans, Dat.imitPlat&ontract, DataPlecare, Data(osire, #arif3 #uri-ti 2&od#urist, &FP#urist,Fume#urist, Prenume#urist, (erie&", Fumr&", DataFaterii, #elefon#urist3 ontracte#uri-ti 2Fr&ontract, &od#urist, DatAnulare&ontract3

$" L&*!!

6!6L!$5R'C!E '. ,arin 8otache 2*<<:3 - S,. Dialecte DB>, Oracle, Post!reS,. si S,. Server9 *. Alan )eaulieu 2*<<:3 ( .earnin! S,., 7d. 4^?eill@ ,edia6 1. Alex Nriegel 2*<''3 - Discovering (C., +ile@ Publishing6 D. 4lteanu Adriana, ?adu Ficolae 2*<<E3 - Baze de date i utilizarea acestora9 E. &$rstoiu Dorin 2':::3 - Baze de date relaionale, 7ditura Printech6 I. ?dulescu 8lorin 2*<<<3 - Baze de date n 'nternet, 7ditura Printech6 ;. "onescu, 8elicia 2*<<D3 - Baze de date relaionale i aplicaii, 7ditura #ehnic6 Y. Pascu, &., Pascu A. 2'::D3 - Dotul despre S,., 7ditura #ehnic6
:. 999.s_l.org '<. 999.s_lserver.ro ''. 999.microsoft.comJs_lserverJ

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