SGDB

download SGDB

of 64

Transcript of SGDB

  • 7/24/2019 SGDB

    1/64

    1.1. Procesul de prelucrare automata a datelor

    Pentru realizarea procesului de prelucrare automata datelor este necesar sexiste urmtoarele elemente:- un sistem de echipamente de calcul electronic;- un sistem de operare (soft de baz) care sfaciliteze i srealizeze interfaa calculator-utilizator;- un soft de aplicaie format din programe care sasigure prelucrarea informaiilor;- un set de date ce concretizeazinformaiile de prelucrat.

    Sistemul de echipamente are n componena sa unul sau mai multe calculatoare, eventual legate n reea, cuo configuraie corespunztoare obiectivelor propuse.

    Sistemul de operare instalat pe calculatoarele ce compun sistemul de echipamente asiguro interfactmai prietenoas, fiind preferate sistemele de operare interactive de genul WINDOWS 95/98, XP.

    Prelucrarea informaiilor culese i stocate pe suporturile de informaie ataate unitilor aflate nconfiguraia sistemului de echipamente este asiguratde ctre programe scrise, de regul, sub sisteme de gestiunea bazelor de date, cel mai eficient mod de organizare a informaiilor pentru aplicaiile cu caracter economic.

    Datele supuse prelucrrilor sunt preluate n cele mai multe cazuri din documentele primare vehiculate nsistemul informaional. Ele trebuie organizate corespunztor caracteristicilor i facilitilor oferite de ctreechipamentele din dotare, obiectivele urmrite i structurii bazelor de date prelucrate de ctre programele ceconstituie softul de aplicaie.

    In cadrul unui sistem informatic, procesul de prelucrare automat a datelor presupune parcurgereaurmtoarelor etape:

    1) Pregtirea datelor n vederea culegeriiAceast etap presupune proiectarea unor documente n conformitate cu obiectivele stabilite pentru

    prelucrare (dac este vorba de documente interne sistemului) sau codificarea informaiilor din documenteleprimare tipizate. Tot n aceastetaptrebuie inclusi o activitate de importanmajorn lucrrile de evidengestionar-contabil: nscrierea pe documentele primare a formulelor contabile care s evidenieze micrilecontabile aferente fiecrei nregistrri din documentul primar. Aceastactivitate este cunoscuti sub numele decontare. Aceste pregtiri au scopul de a uura sarcina lucrtorilor din compartimentele care asigurculegerea iintroducerea datelor pe suporturile tehnice de informaie din configuraia echipamentelor electronice. Serecomand pstrarea semnificaiei economice a documentelor tipizate i adaptarea programelor de culegere i astructurii bazelor de date la structura documentelor primare.

    2) Culegerea datelor si stocarea lor pe suporturile tehnice de informaie

    Aceastetappresupune, de cele mai multe ori, activiti de operare n scopul introducerii datelor primarede la tastatura calculatorului sau a terminalelor. Existi situaii n care datele pot fi preluate de pe alte suporturide informaie accesibile calculatorului de lucru i care provin din alte aplicaii sau prin preluarea n timp real aacestor informaii din procesul supus analizei.

    In cazul culegerii datelor de la tastatur se recomand utilizarea unor programe de tip interactiv, cumachete de culegere care suureze activitatea operatorului i snu necesite cunotine de informatic.

    3) Prelucrarea datelor stocate pe suporturile de informaie

    Aceast etap presupune activarea unor programe de aplicaie care acceseaz bazele de date aflate pesuporii externi de informaie. Evident cprelucrarea acestor date presupune transferul lor de ctre programeleaplicative n memoria intern, realizarea operaiilor indicate prin program, prin intermediul funciilormicroprocesorului, depunerea rezultatelor obinute n bazele de date supuse actualizrilor i aflate pe suporturile

    de informaie sau generarea rapoartelor ce constituie situaii finale, fie pe suporturi din memoria extern, fie directla dispozitive de ieire (de exemplu imprimantele sau ecranul monitorului).4) Interpretarea de ctre compartimentele de decizie a rezultatelor obinute n urma prelucrrilor

    Aceasta este o etapcare ncheie ciclul de prelucrare automata datelor i n urma ei se transmit dispoziii,se iau decizii pentru ameliorarea procesului condus.

    Este evident ca n cadrul unui proces de prelucrare automata datelor, aceste etape se reiau ciclic, ori decate ori apar modificri n procesul condus.

    1.2. Organizarea datelor n fiiere

    Pentru a putea fi supuse procesului de prelucrare automat, datele trebuie sfie stocate n memoria externa calculatorului, pe suporturi tehnice de informaie cei mai adecvai (de reguldiscuri magnetice sau compact-

    discuri).Memorarea pe suporturi tehnice de informaie se realizeazsub formde colecii de date numitefiiere.Reamintim definiia clasic i cea mai general a noiunii de fiier: o nlnuire de caractere pn la

  • 7/24/2019 SGDB

    2/64

    ntlnirea marcatorului de sfrit de fiier (^Z). Aceastdefiniie nu satisface nsintegral caracteristicile fiieruluidin punctul de vedere al domeniului de activitate financiar-contabil i al informaticii de gestiune.

    Astfel, vom redefini fiierul ca fiind o colecie de date omogen din punct de vedere al structurriiinformaiilor, dar eterogenn privina coninutului. n aceastaccepiune, fiecare componenta fiierului, pe careo vom numinregistrare sau articol, are aceeai structurare n cmpuri (considerate ca elemente componente alenregistrrii). n acest sens am susinut n definiie caracteristica de omogenitate. Este ns evident c valorilememorate n fiecare din cmpurile nregistrrilor fiierului difer, ceea ce confer caracterul eterogen alconinutului unui fiier.

    Pentru a fi pragmatici n prezentarea conceptului de fiier, sconsiderm urmtorul exemplu: se doretestocarea informaiilor referitoare la studenii unui an de studiu. Pentru fiecare student se dorete memorareaurmtoarelor informaii: numr matricol, nume, iniiala tatlui, prenume, cod numeric personal, facultate, an destudii, grupa, domiciliul stabil, telefon, adresa e-mail. Fiecare dintre componentele fiierului STUDENT destinatmemorrii datelor personale ale studenilor unei universiti, pe care o vom numi n continuare nregistrare(articol), va conine informaiile referitoare la o categorie informaional, n cazul de fa un student. Toatenregistrrile fiierului vor avea astfel aceeai structur, de aceea am afirmat c din punct de vedere structuralfiierul este o colecie omogen. Prile componente ale unui articol, corespunztoare unitilor informaionale aleacestuia, le vom numi cmpuri. Fiecare dintre aceste cmpuri corespunde uneia dintre unitile categorieiinformaionale ce constituie datele personale enumerate anterior pentru un student. Prin urmare ele vor fi diferitede la o nregistrare la alta, adicputem afirma cdin punctul de vedere al coninutului fiierul este o colecie de

    date eterogen

    .Din punctul de vedere al organizrii datelor memorate, fiierele pot fi clasificate n cel puin doucategorii:- organizare secvenial- organizare secvenial-indexat

    Fiiere de organizare secvenial se caracterizeaz prin faptul c nregistrrile sunt memorate una dupcealalt, n ordinea introducerii lor i tot n aceast ordine pot fi accesate. Vom reine faptul c fiierele deorganizare secvenialpot fi accesate doar secvenial.

    Fiierele de organizare secvenial-indexat se caracterizeaz prin faptul c, dei nregistrrile suntmemorate fizic n ordinea n care au fost introduse, din punct de vedere logic ele sunt considerate aezate n ordinecresctoare (sau descresctoare) a valorilor unui cmp sau a unei expresii de cmpuri, numitcheie de indexare.Acest lucru este posibil datoritfaptului ca un astfel de fiier are, n mod automat, ataato tabelde indeci.

    Aceasta conine valorile cheii de indexare n ordine cresctoare (sau descresctoare) i adresele (numrul de ordinedin aezarea fizic) n baza crora pot fi regsite nregistrrile n fiier. n felul acesta la o parcurgere a fiierului,nregistrrile sunt accesibile n ordinea indicatde tabela de indeci. De remarcat faptul corganizarea indexatafiierelor permite att accesul direct la informaia solicitat, pe baza valorii cheii de indexare, ct i accesulsecvenial.

    Relativ la fiierele de date putem vorbi de urmtoarele tipuri de operaii:- creare- actualizare

    adugare modificare tergere

    -

    exploatareOperaia de creare implic, din punctul de vedere al utilizatorului, aceeai aciune: introducerea valorii

    cmpurilor din una sau mai multe nregistrri n ordinea dorit. Calculatorul va memora aceste nregistrri n ordinean care au fost introduse. Pentru fiierele de organizare secvenial, operaia de creare nu implic alte operaiisuplimentare din partea calculatorului. n schimb, pentru fiierele de organizare secvenial-indexat, calculatorul vacrea, n mod automat, i tabela de indeci corespunztoare, conform criteriului de indexare transmis de ctreutilizator. Vom exemplifica modul de derulare a acestui tip de operaie, considernd fiierul STUDENT, dar cu ostructur simplificat: NRM, NUME, INIT, PREN, FAC, GR (respectiv, numrul matricol, nume, iniial tat,

    prenume, facultate, grupa). Vom considera c, pentru crearea fiierului STUDENT,se introduc datele corespunztorla cinci nregistrri, conform tabelului din fig. 6.2.1.

    De remarcat cn capul de tabel din fig. 6.2.1. avem nscrise numele cmpurilor ce compun o nregistrare,iar n interiorul tabelului sunt datele ce concretizeazfiecare din cele cinci nregistrri. Prima coloan, cea pe fondmai nchis, i anumeAdresa, este gestionatdoar de calculator, care atribuie n mod automat cte o adres(numr

  • 7/24/2019 SGDB

    3/64

    de ordine) pentru fiecare nregistrare.

    n cazul n care fiierul are organizare secvenial, accesulla datele memorate de ctre acesta se poateface doar secvenial, n sensul ca fiierul pune la dispoziia utilizatorului nregistrrile acestuia n ordinea ncare au fost memorate.

    Actualizarea n acces secvenial implic operaii ce trebuie indicate explicit n program. Astfel,adugarea se face prin nscrierea, n nregistrarea urmtoare ultimei deja existente a fiierului de actualizat, ainformaiilor din zona tampon ataatfiierului. Modificareapresupune lucru cu doufiiere: cel de actualizat, s-l numim n continuare FB i cel de manevr, convenional denumit FM. Ambele vor fi descrise i gestionate dectre program. Se copiaznregistrrile din FB, una cte una, n FM, pnla ntlnirea nregistrrii de modificat.Aceasta se transfer n zona tampon, se supune modificrilor conform algoritmului indicat i dorinelorutilizatorului, dupcare se transfern FM. Se copiazrestul nregistrrilor din FB n FM. n fine, se redenumete

    FM, acesta lund locul vechiului FB (fiierul FM se prsete). tergerea se realizeazsimilar modificrii, cudeosebirea cnregistrarea de ters se omite la copierea din FB n FM.

    n cazul n care fiierul a fost creat cu organizare secvenial-indexat, sau a fost indexatulterior creierii,accesulla datele memorate de ctre acesta este posibil a se realiza att secvenial, ct i direct.

    Vom detalia, pe exemplul considerat, modul n care este realizat accesul direct, att din punctul de vedereal utilizatorului, ct i din punctul de vedere al calculatorului, considernd cfiierul a fost indexat dupvalorilecmpului NRM:

    utilizatorul trebuie s indice programului de cutare doar valoarea cheii de indexare dup care sedorete identificarea nregistrrii;

    calculatorul caut aceast valoare n tabela de indeci, care este asociat fiierului; pentru exemplulconsiderat aceasta are coninutul din figura 6.2.2.

    Cutarea n tabela de indeci se poate face folosind diferii algoritmi de cutare rapid, cum ar fi cel al

    njumtirii intervalului de cutare cutare binar (vom reveni cu prezentarea acestui algoritm;trebuie reinut doar faptul cel permite o cutare n lista de valori a cheii de indexare mult mai rapiddect cutarea secvenial). Dacvaloarea cutatpentru cheia de indexare este gsit, atunci tabela deindeci ofersistemului de calcul electronic posibilitatea regsirii n acces direct a nregistrrii cutate:din tabelul de indeci calculatorul preia adresa acesteia. Dac valoarea cutat nu este gsit,calculatorul se gsete n situaia de cheie invalid, iar programul care asigurprelucrarea n accesdirect trebuie strateze i aceastsituaie.

    Actualizarea n acces direct a fiierelor de organizare secvenial-indexatpresupune realizarea uneiadintre operaiile de adugare, modificare sau tergere.

    Adugarea unei noi nregistrri presupune introducerea, de ctre utilizator, a datelor pentru nregistrareade adugat, iar pentru calculator urmtoarele operaii: adugarea nregistrrii la sfritul fiierului i introducerea

    n tabela de indeci, la locul potrivit, a valorii cheii pentru noua nregistrare i a adresei acesteia. Pentru exemplulconsiderat, fiierul i tabela de indeci vor arta ca n fig. 6.2.3., presupunnd cse dorete adugarea nregistrriicu urmtorul coninut:

    Adresa Valoare cheie de indexare3 10015 10112 10211 10234 1024

    Fig. 6.2.2.

    Adresa NRM NUME INIT PREN FAC GR

    1 1023 Ilinca T Marian CF 1012 1021 Barbulescu Gh Mihai CF 1023 1001 Ion V Maria CF 1014 1024 Marinescu D Lavinia CF 1025 1011 Anghel C Mircea CF 101

    Fig. 6.2.1.

  • 7/24/2019 SGDB

    4/64

    1015 Ilin T Maria CF 101

    Modificarea unei nregistrri existentepresupune realizarea urmtoarelor aciuni: utilizatorul trebuie sindice valoarea cheii de indexare corespunztoare nregistrrii de modificat. Calculatorul face cutarea n accesdirect a nregistrrii corespunztoare i n caz de succes n cutare, transfer datele din fiier n zona tamponasociat nregistrrii n memoria interna calculatorului. Utilizatorul modificvalorile din zona tampon i apoicomandrescrierea nregistrrii modificate n fiier. Calculatorul va nscrie aceastnregistrare n acelai loc dincare a luat-o. Situaii de chei invalide la modificare pot fi urmtoarele: la cutare, snu existe nici o nregistrarecu valoare indicat de utilizator pentru cheia de indexare, iar la rescriere s fi fost alterat valoarea cheii deindexare din zona tampon.

    tergerea unei nregistrri existente se poate face n acces direct, cu respectarea aciunilor prezentate la

    modificare, cu deosebirea cnu se mai fac modificri i nici rescrieri. n urma unei tergeri, calculatorul opereazmodificri att n fiierul de date, ct i n tabela de indeci: n fiierul de date invalideazcontorul de tergere alnregistrrii, iar din tabela de indeci terge fizic valoare cheii i adresa nregistrrii de ters.

    Exploatarea fiierelor

    Operaia de exploatare a fiierelor presupune utilizarea datelor memorate n nregistrrile acestora.n general, aceastoperaie de exploatare a fiierelor se materializeazprin obinerea de situaii finale de

    raportare sau a unor ecrane care spermitinterogarea interactiva fiierelor.n cazulfiierelor cu organizare secvenial, prelucrrile i obinerea rezultatelor finale pe suport hrtie,

    magnetic sau pe ecranul monitorului comport, fie parcurgerea secveniala acestora, fie supunerea lor la operaiide sortare care sasigure ordonarea informaiilor conform necesitilor.

    Pentru fiierele cu organizare secvenial - indexatpot fi utilizate programe care sasigure o interogare

    mai rapida acestora, folosind facilitatea accesului direct. Situaiile finale de raportare pot fi obinute mai rapid,mai uor, datoritposibilitii de a realiza, prin program, legturi rapide ntre fiierele de organizare indexat.

    1.3. Organizarea datelor n baze de date

    n paragraful anterior am prezentat n detaliu conceptul de organizare a datelor n fiiere i modul demanipularea a informaiilor memorate n acestea de ctre utilizatori. Fiierele sunt colecii de date ce pot fimanipulate de ctre un mare numr de utilizatori ce au o viziune unicasupra datelor.

    O bazde datepoate fi privitca un ansamblu de date ce poate fi manipulat de ctre mai muli utilizatoricu viziuni diferiteasupra datelor. Din punct de vedere strict tehnic, putem defini o bazde date ca pe o colecie de

    fiiere ce conin cmpuri care permit realizarea legturilor dintre acestea i prin intermediul programelor, dar maicu seamindependent de acestea. Structura unei baze de date depinde foarte mult de software-ul utilizat la crearea

    bazei de date.

    Adresa NRM NUME INIT PREN FAC GR

    1 1023 Ilinca T Marian CF 1012 1021 Barbulescu Gh Mihai CF 1023 1001 Ion V Maria CF 1014 1024 Marinescu D Lavinia CF 1025 1011 Anghel C Mircea CF 101

    6 1015 Ilin T Maria CF 101

    Tabela de indeci:Adresa Valoare cheie de indexare

    3 10015 10116 10152 10211 10234 1024

    Fig. 6.2.3.

  • 7/24/2019 SGDB

    5/64

    Putem sdefinim baza de date i mai simplu: o colecie de fiiere corelate. Structurarea acestui ansamblude fiiere se realizeazprin proiectarea schemei conceptuale a bazei de date.

    Construirea schemei conceptuale a unei baze de date presupune parcurgerea urmtoarelor etape:E1:Elaborarea listei tuturor informaiilor ce se doresc a fi memorate n baza de date;

    E2: Construirea entitilor bazei de date prin mprirea informaiilor din lista obinut n etapa E1 n

    aceste entiti, cu respectarea principiului redundanei minime a datelor (prin entitate vom nelege fiier sautabel care are nregistrri cu o anumitstructurare n atribute (cmpuri));

    E3:Determinarea caracteristicilor atributelor ce compun nregistrrile (articolele) entitilor (fiierelor),

    prin stabilirea naturii i lungimii acestora;

    E4: Identificarea legturilor ce pot i trebuie s fie stabilite ntre entitile bazei de date (acestea serealizeazprin intermediul unor cmpuri sau expresii de cmpuri de legtur).

    Sistemul de programe care permite crearea bazei de date prin parcurgerea celor 4 etape anterior precizate,popularea bazei de date cu realizrile atributelor, dezvoltarea de aplicaii care s valorifice datele, s asigureinterogarea acestora sau s permit punerea lor la zi, poartnumele de Sistem de Gestiune a Bazelor de Date(SGBD). Acestea constituie n fapt o interfantre utilizator i SGF-ul sistemelor de operare.

    Orice SGBD trebuie sconinun limbaj de descriere a datelor (LDD), unul care spermitinterogareabazei de date prin transmiterea de cereri de ctre utilizator (LC), iar altul care spermitefectuarea de prelucrriasupra bazelor de date (LPD).

    Conform metodologiei ANSI, fiecrei baze de date trebuie s i se asocieze trei nivele funcionale, dupcum urmeaz:

    nivelul conceptual reprezentat prin schema bazei de date, care reine structurarea acesteia n

    entiti, a entitilor n atribute; nivelul logic cuprinde viziunile utilizatorilor asupra bazei de date, exprimate prin programe proprii;

    nivelul fizic cuprinde reprezentarea datelor pe suport tehnic de informaie.

    Pentru a putea dezvolta aplicaii ce utilizeaz baze de date este necesar s definim mai clar o serie denoiuni anterior utilizate n prezentarea conceptului de bazde date:

    Prin entitate vom nelege un fenomen, un obiect, un proces din lumea real, despre care dorim saveminformaii n cadrul unui sistem. Obiectele (atributele) reprezint componente ale entitilor, iar datele ceconcretizeazobiectele (atributele) le vom numi realizri ale acestora sau, mai simplu, date. Pentru o mai bunnelegere a acestor noiuni, o s considerm urmtorul exemplu de baz de date: baza de date cu numele

    FACULTATE, necesarstocrii informaiilor cu privire la o facultate a unei universiti,

  • 7/24/2019 SGDB

    6/64

    In exemplul considerat anterior am pus n eviden componentele unei baze de date, avnd drept numeFACULTATE, preciznd elementele care o alctuiesc: entitate, atribute, date. Pentru ca aceastbazde date s

    poat fi util i s permit construirea cu uurin a unei aplicaii care privete evidena situaiei colare astudenilor facultii, dm n continuare o descrie a atributelor celor patru entiti.

    PROFESOR:

    Marca N (5)Nume C (20)Prenume C (25)GradDidactic C (10)CodDisciplinN (3)

    NOTE

    Matr N (5)CodDisciplinN (3)

    Nota N (2)DISCIPLINA

    CodDisciplinN (3)DenDisciplinC (20)

    STUDENT

    Matr N(5)

    Nume C(20)Pren C(25)AnSt C(3)Gr N(3)

    Pentru a respecta definiiile date anterior bazei de date i, n acelai timp, pentru a asigura o exploatare maiuoara acesteia, ntre entitile bazei de date se vor stabili urmtoarele relaii:PROFESORNOTE prin cmpul de legturCodDisciplin, relaie de tip 1:1, dacpresupunem cun profesor

    predo singurdisciplin.DISCIPLINA NOTE prin cmpul CodDisciplin, relaie de tipul 1:n (unul-la-mai-muli), acelai cod dedisciplinputnd aprea de mai multe ori n entitatea NOTE (o datpentru fiecare student).STUDENTNOTE prin cmpul Matr, relaie de tipul 1:n, un student avnd memorate cel puin o notla fiecare

    disciplin.Vom reveni cu amnunte legate de conceptul de bazde date n contextul programrii orientatpe obiecte abazelor de date relaionale.

  • 7/24/2019 SGDB

    7/64

    1.1.Prezentareageneral aMicrosoftAccess

    Aplicaiile economice se caracterizeaz prin volumul mare de date ce se supunprelucrrilor. Proiectarea i realizarea acestor aplicaii se poate face fie prin utilizarea de

    limbajele evoluate de programare (de exemplu VisualBasic) care fac apel la fiiere independente,legtura ntre acestea fiind asigurat prin program, fie prin apelarea la Sisteme de Gestiune aBazelor de Date (de exemplu Dbase, FoxPro, Access). Bazele de date reprezint, conform

    definiiei clasice, colecii de date avnd o structur precizat i ntre ale cror entiti (numite

    fiiere sau tabele) se pot realiza legturi, independente de program, prin intermediul unor

    cmpuri sau expresii de cmpuri.Spre deosebire de SGBD-urile clasice, MICROSOFT ACCESS permite memorare n

    aceeai colecie, n cadrul unui fiier de extensie mdb, a urmtoarelor tipuri de obiecte: structuri

    de date grupate n tabele (fiiere), formulare de vizualizare i actualizare a datelor memorate ntabele, interogri ale entitilor bazei de date, rapoarte, macrouri i module.

    MICROSOFT ACCESS este un SGBD care face parte din pachetul de programe

    Microsoft Office, alturi de WORD, EXCEL i POWERPOINT. Accesarea acestuia se poateface n mai multe moduri. Cel mai utilizat este urmtorul: apelarea butonului START, opiunea

    All Programs, funcia Microsoft Access. Dupaccesare, pe ecranul monitorului apare fereastrade deschidere ACCESS.

    Fig. 12.1.1.

    Fereastra din fig. 12.1.1. se obine din fereastra de deschidere Microsoft Access cuopiunea Create a New Database Using, butonul radio Blank Dadabase i apoi butonul de

    comandOK. Se deschide astfel fereastra Open, se introduce numele bazei de date n caseta de

    dialogFile name i apoi se acioneazbutonul Create.

    Fereastrade lucrucare saobinut,arenbarade titlunumeleSGBDului ialbazeidedate

    (MicrosoftAccess [bd_ex :Database]).Subbarade titlu segsescbareledemeniuri ide

    instrumente,alcrorrolesteacelaicancazulferestreiVBsauaoricruialtmediude lucru

    Windows.Putemutiliza,deasemenea,baracarepermitealegereaunuiadintrecele7tipuride

    obiecte care pot fi memoraten cadrul fiierului de extensiemdb: Tables (tabele), Queries

    (interogri), Forms (formulare), Reports (rapoarte), Macros (macrouri), Modules (module),

    Pages (pagini).Levomprezentape fiecaredintreacestea,cuexempleconcretedecreareaa

    unoraplicaiisubSGBDMICROSOFTACCESS.

  • 7/24/2019 SGDB

    8/64

  • 7/24/2019 SGDB

    9/64

    cmpul respectiv (Descriptions).Pentru fiecare dintre informaiile asociate unui cmp avem ladispoziie explicaia suplimentaraflatn caseta din dreapta jos. Din caseta din stnga jos putemstabili proprietile generale ale cmpului a crei denumire a fost introdus n coloana FieldName, dupcum urmeaz:

    Field size Lungimea n caractere a cmpului respectivsau tipul de datdintr-o clasde tipuri de date

    Format Forma de afiare a valorii cmpuluiInput Mask Coduri de restricionare a introducerii de

    valori n cmpul curentCaption Etichet pentru cmpul curent ce va putea fi

    folosit pentru referirea lui n cadrul uneiforme; n mod implicit, aceast etichet estechiar numele cmpului

    DefaultValue

    Valoarea implicitce va fi nscrisn cmpulrespectiv la introducerea unui nou articol

    ValidationRule

    O expresie ce reprezinto regulde validarea valorii ce poate fi introdus ca realizare acmpului

    ValidationText

    Mesajul de eroare ce se va afia n cazul ncare n cmp se introduce o valoare care nurespectregula de validare (Validation Rule)

    Required Permite setarea la da sau nu a permisiuniide a introduce date n cmpul curent

    Indexed Indexarea, cu sau fr duplicare a tabeleidup valorile cmpului (ceea ce implicsortarea logic a nregistrrilor tabelei dupvaloarea acestui cmp)

    Tipurile de datposibile pentru valorile cmpurilor pot fi alese din lista ascunscare sedeschide prin click de mouse n dreapta casetei Data Type conform cu cele precizate ncontinuare:

    Text (Default): constante alfanumerice, numrul maxim de caractere fiind de 255. Elpoate fi explicit fixat din proprietatea FieldSize.

    Memo: constante alfanumerice de maximum 65535 caractere, de lungime variabil.Number: dat numeric ce poate fi utilizat n construirea expresiilor aritmetice. Tipul

    explicit de datdin aceastcategorie de tipuri de date poate fi stabilit din caseta de proprietigenerale dupcum urmeaz:

    Byte(cuvnt) [0,255]

    Integer(ntreg) [32768,32767]

    LongInteger(ntreglung) [2147483648,2147483647]

    Single(realnsimpl precizie) [3.4*1038,3.4*1038]

    Double(realndubl precizie) [1.8*10308,3.8*10

    308]

    Date/Time: datcalendaristicsau timp (ora i minutul).

  • 7/24/2019 SGDB

    10/64

    Currency: date folosite n calcule matematice de maximum 15 cifre aliniate la stnga,dreapta sau pe marca zecimal.

    AutoNumber: o secven unic incrementat cu 1, numr sau numr aleator atribuit deMicrosoft Access la adugarea unei noi nregistrri n tabel. Cmpurile de acest tip nu pot fiactualizate.

    Yes / No: cmpuri care nu pot lua dect una dintre valorile Da/Nu, Adevarat / Fals.OLE Object: un obiect (cum ar fi o foaie de calcul Microsoft Excel, un document

    Microsoft Word, grafice, sunete, sau alte date binare incluse ntr-un tabel Microsoft Access).HyperlinkText : combinaii de texte i numere memorate ca text i folosite ca o adres

    hyperlink. O adrespoate s aib trei pri: imaginea unui text care apare ntr-un cmp, sau oadresde control al cii ctre un fiier sau pagin, subadresa unei locaii ctre un fiier sau opagin. Cea mai uoar cale de a introduce o adres hyperlink ntr-un cmp este activarea cuclick a funciei Hyperlink din meniul Insert. Fiecare dintre cele trei pri ale unei adreseHyperlink poate avea 2048 caractere.

    Lookup Wizard: creeazun cmp care ne ajutsgsim o valoare dintr-o alttabelsaulistde valori folosind o casetlistsau o casetcombinat. Selectnd aceastopiune lansm nexecuie Lookup Wizard, care creeazun cmp de tip Lookup. Dupce completm Asistentul(Wizard), Microsoft Access seteaztipul de datla valoare selectatdin acesta.

    Pentru crearea unei tabele cu opiunea Design View trebuie repetate, pentru fiecare cmpurmtoarele operaii: se introduce denumirea cmpului, se stabilete tipul de dat (unul dintrecele prezentate anterior), se formateazcmpul prin alegerea uneia sau mai multor opiuni dinfereastra din stnga jos i se introduce o descriere succint a semnificaiei cmpului n cadrultabelei. Dupintroducerea tuturor cmpurilor din nregistrarea unei tabele, se salveaztabela. nmod similar se pot crea toate tabelele bazei de date.

    II.2.

    Actualizarea

    structurii

    logice

    a

    tabelelor

    Actualizarea logica unui tabel presupune una dintre operaiile: adugare de nou cmp,modificarea sau tergerea unuia existent.

    Fig. 12.2.5

    Adugareaunui nou cmp n structura unei nregistrri a tabelei se face astfel:- se selecteazopiuneaDesign (fig.12.2.5.)i se obine imaginea structurii nregistrrii

    tabelei;

  • 7/24/2019 SGDB

    11/64

    - se selecteazcmpul n faa cruia se dorete adugarea unui nou cmp;- din submeniul Insertal barei de meniuri se selecteazopiunea Rows i se creeazo

    linie noun cadrul machetei de descriere a structurii nregistrrii;- se introduc apoi, de la tastatur, caracteristicile noului cmp.Modificarease face astfel:- se acceseazopiunea Design (fig.12.2.5.)i se deschide o fereastr ce conine

    structura n cmpuri a nregistrrii tabelei respective;- se selecteazcmpul care se dorete a fi supus modificrii;- se opereaz modificarea dorit privitoare la numele cmpului, tipul de dat,

    proprietile acestuia sau descrierea lui.tergerea unui cmp existent n structura nregistrrii unei tabele se terge astfel:

    - se apeleaz la opiunea Design relativ la tipul de obiect Table i tabela deactualizat;

    -

    se selecteaz linia pe care se gsete descrierea cmpului de ters prin click pemarginea din stnga a acesteia;- se apastastaDelete

  • 7/24/2019 SGDB

    12/64

    Pentru introducerea datelor ntr-o tabel (popularea tabelei) se poate utiliza opiuneaOpen (fig. 12.2.5.). Se deschide astfel macheta standard de culegere date pentru tabela respectiv(fig. 12.2.6.).

    Fig. 12.2.6.

    Se introduc valorile corespunztoare fiecrui cmp al nregistrrilor tabelei. Trecerea de la uncmp la altul se face prin apsarea tastei TAB sau prin apsarea tastei ENTER. Revenirea lacmpul anterior se face prin combinaia de taste SHIFT + TAB. Evident ctoate aceste manevrese pot face i cu ajutorul mouse-ului. Pentru deplasarea n cadrul unei tabele se pot utiliza i

    butoanele prezente n macheta de culegere i aflate pe linia Record (acionate cu mouse-ul):acionarea primul buton are ca efect poziionarea direct pe prima nregistrare, al doilea butonconduce la nregistrarea anterioar, al treilea pe urmtoare nregistrare, iar al patrulea direct peultima nregistrare. Pe aceeai bareste afiat numrul de ordine al nregistrrii curente, iar ndreapta acesteia numrul total de nregistrri.

    Pentru introducerea datelor ntr-o tabelutilizatorul are la dispoziie o serie de faciliticare simplificmunca de culegere. Se pot utiliza urmtoarele combinaii de taste:

    - CTRL i ; - pentru introducerea datei curente;- CTRL i : - pentru introducerea orei curente;- CTRL ALT SPACE pentru introducea valorii implicite (dac aceasta a fost

    definit);

    - CTRL i pentru repetarea valorii introduse n acelai cmp al nregistrriiprecedente.Deplasarea n cadrul unei tabele: n afara deplasrilor n cadrul unei tabele pe care le-am

    precizat anterior, utilizatorul mai are la dispoziie i urmtoarele scurtturi:tasta END : salt la sfritul nregistrrii curente;tasta HOME : salt la nceputul nregistrrii curente;tasta : salt la acelai cmp din nregistrarea anterioar;tasta : salt la acelai cmp din nregistrarea urmtoare;CTRL + : salt la acelai cmp al primei nregistrri;CTRL + : salt la acelai cmp al ultimei nregistrri;

  • 7/24/2019 SGDB

    13/64

    CTRL + END : salt la ultimul cmp al ultimei nregistrri;CTRL + HOME : salt la primul cmp al primei nregistrri.Modificarea valorii cmpurilor din nregistrrile unei tabele

    Se selecteaz tabela ce urmeaz a fi supusmodificrii i apoi se deschide cu ajutorulbutonului Open. Se identificnregistrarea de modificat, prin una dintre metodele de deplasare ncadrul tabelei anterior prezentate. Realizm apoi poziionarea pe cmpul a crui valoare sedorete modificat, se terge valoarea existenti se reintroduce noua valoare.

    Pentru modificarea mai multor valori aflate n nregistrrile unei tabele se poate utiliza ifuncia Replace din submeniul Edit (CTRL+H).

    tergerea nregistrrilor unei tabele

    Pentru realizarea acestei operaii se selecteaznregistrarea / nregistrrile ce urmeaza fiterse. Existmai multe posibiliti de selectare a unei / unor nregistrri:

    - se gliseaz cu mouse-ul pe coloana de identificare a nregistrrii din margineastnga machetei de culegere date;

    - se gliseaz cu mouse-ul pe linia de identificare a cmpurilor din margineasuperioara machetei de culegere date;

    - se alege opiunea Select All Records (CTRL + A) din submeniul Edit i astfeleste selectatntreaga tabel.

    Dupselectarea nregistrrii / nregistrrilor de ters, se procedeazla tergerea acestoraprin apsarea tastei Delete, prin apelarea la funcia Delete Record din submeniul Edit sau prinacionarea cu mouse-ul a butonului de terge aflat n bara de instrumente.

    Pentru tergerea unui tabel se procedeaz n felul urmtor: se selecteaz, din cadrulferestrei Database, tipul de obiect Table, apoi se selecteaz, prin click de mouse, tabela de ters,dupcare se poate alege una dintre variantele:

    - se apastasta Delete;- se executclick de mouse pe butonul Cut aflat n bara de instrumente;- se apeleazfuncia Cut din cadrul submeniului Edit sau se folosete combinaia

    de taste CTRL + X.

    Relaionarea tabelelor unei baze de date

    SGBD-ul ACCESS opereaz cu baze de date relaionale, adic colecii de tabelerelaionate. Pentru realizarea operaiei de relaionare a tabelelor unei baze de date se stabilesclegturile dintre acestea prin cmpurile sau expresiile de cmpuri menite s asigure acestelegturi. Pentru aceasta se apeleazla butonul Relationships sau la funcia cu acelai nume dinsubmeniul Tools. Se deschide astfel fereastra cu numele Relationships care permite selectarea,din fereastra Show Table, a tabelelor (Tables), interogrilor (Queries) sau a ambelor tipuri deobiecte (Both) ce se doresc relaionate (se selecteazobiectul, dupcare se activeaz, prin clickde mouse, butonul Add). Dup ncheierea seleciei obiectelor de relaionat, se nchide fereastraShow Table folosind butonul Close.

    n fereastra Relationships apar obiectele selectate i structurarea acestora. Relaionarea serealizeazntre cupluri de obiecte n modul cel mai natural cu putin: se gliseazcu mouse-ul depe cmpul de legtural primului tabel ctre cel al celui de-al doilea tabel al relaiei. Din nouafereastrdeschisca urmare a acestei aciuni, se executclick de mouse pe butonul Create. Drepturmare relaia se materializeazi grafic pe ecran.

  • 7/24/2019 SGDB

    14/64

    III.1.Creareaasistat aunuiformular

    Formularelesuntferestrecepermitculegereasauafiarea datelorn/dintabeleleuneibazede

    date.Creareaunuiformularesteposibil dac bazadedateconinecelpuinuntabelsauointerogare.

    Pentrugenerareaasistat aunuiformularseprocedeaznfelulurmtor:

    - seselecteaz etichetaFormdinbaradetipurideobiecte,seapas butonulNewiapoi

    sealegeFormWizarddinfereastraNewForm(fig.12.4.1.);

    Fig.12.4.1.

  • 7/24/2019 SGDB

    15/64

    Fig.12.4.2.

    - dinfereastraFormWizard(fig.12.4.2.)sepotalegtabelelesauinterogrileimplicaten

    construireaformularului(casetaTables/Queries);

    - din casetaAvailabeFields sepot selecta cmpurile ce sedoresc inclusen formular;

    acestea vorputea fi transferaten casetaSelected Fields folosindbutonul unul

    cte unul, iarn sens invers folosind butonul ;pentru transferuln bloc a tuturor

    cmpurilor sepot folosibutoanele i, respectiv,;dup stabilireacmpurilor

    selectate din toate tabelele sau interogrile implicaten construirea formularului, se

    acceseaz cumouseulbutonulNext;

    - sealegeapoidinfereastraFormWizardformadeafiareaformularului(nfig.12.4.3.

    saselectatautomatColumnar);seacceseaz butonulNext;- sealegestilulde formular(nfig.12.4.4.saalesautomat stilulStone);seacceseaz

    butonulNext;

    - seintroducenumeleformeiiseacceseaz butonulFinish(fig.12.4.5.);

    Pe ecran va aprea automat macheta de culegere date pe care o putem acum utiliza.

    Pentru utilizri ulterioare se poate accesa butonul Open din fereastra obinut prin

    selectarea etichetei Form

  • 7/24/2019 SGDB

    16/64

    Fig.12.4.3.

    Fig.12.4.4.

  • 7/24/2019 SGDB

    17/64

    Fig. 12.4.5.

  • 7/24/2019 SGDB

    18/64

    Actualizarea structurii logice a unui formular

    Modificarea formularuluise poate face folosind butonul Design.Se poate crea un formular i prin folosirea opiunii AutoFormalegnd aceastopiune

    din fereastra New Form (fig. 12.4.1.), cu variantele Columnar, Tabular (fig. 12.4.7.) sauDatasheet.

    Fig. 12.4.7.

    Crearea anteturilor i subsolurilor unui formular

    Crearea anteturilor i subsolurilor de formular

    Pentru introducerea unor informaii suplimentare la nceputul i/sau la sfritul unorformulare sau al paginilor de formular se pot utiliza Form Header, Form Footer, Page Header,Page Footer, vizualizarea acestora fcnd-se prin selectarea funciilor Form Header/Footer irespectiv Page Header/Footer din meniul View, n starea de modificare (Design) a unui formular.

    Subiectetem:

    Vom considera urmtorul exemplu: se cere s se creeze un formular care sa asigureculegerea de date pentru popularea tabelei Mater avnd structura : Cod, Den, Um, Cant, Pret.Dupcrearea tabelului cu ajutorul etichetei Table din fereastra de lucru cu baza de date bd_ex(vezi 12.2.), alegem eticheta Form, accesm butonul New i alegem opiunea Form Wizard.Selectm tabela Mater, transferm toate cmpurile disponibile n zona de cmpuri selectate,accesm butonul Next, alegem forma tabelului (de ex. Tabular), apoi, dup o nou accesare abutonului Next, alegem stilul formei (de ex. Colorful 2), stabilim apoi numele formei i accesndbutonul Finish marcm sfritul construirii formularului. Introducem apoi cteva nregistrrifolosind formularul creat.

  • 7/24/2019 SGDB

    19/64

    Fig. 12.4.8.

    Pentru introducerea unui titlu pentru formular, a informaiilor de nceput de formular(capul de tabel cu semnificaia valorilor din tabel) n Form Header i a totalului cantitilor nForm Footer, selectm formularul i accesm butonul Design. Pentru cazul exempluluiconsiderat, pentru a se ajunge la la starea prezentn fig. 12.4.8., procedm astfel:

    - prin click dreapta de mouse pe bara de titlu a formei deschidem o fereastrdedialog din care alegem funcia Properties i introducem n caseta de text Captiontitlul dorit pentru formularul nostru, de exemplu Culegere date materiale;

    - n zona Form Header, introducem, prin controlere de tip etichet, texteexplicative asupra semnificaiei datelor de pe coloana respectiva tabelului;

    - n zona Form Footer, introducem un controler de tip etichetcu textul explicativTotal cantitate, iar pe coloana cantitii introducem un controler de tip casettextn care urmeazsindicm introducerea n formular a totalului pentru cmpul Cant;pentru aceasta, executm click drepta de mouse pe caseta text, alegem func iaProperties i, din cadrul acesteia, opiunea Date; n caseta Control Sourceintroducem formula =sum([cant]), ceea ce nsemncn caseta de text va fi afiattotalul valorilor din cmpul cant al tabelei asociatformularului.

    Dupaceste operaii, apelarea formularului prin intermediul butonului Openva conducela o stare a formularului ca cea din fig. 12.4.9.

  • 7/24/2019 SGDB

    20/64

    Fig. 12.4.9.

    Creareasubformularelor

    Crearea subformularelor

    n situaia n care avem creat o relaie de tipul unu la mai muli ntre dou tabele,crearea formularului care conine cmpuri din ambele obiecte implicate n relaie conduce la unformular principal cu nregistrri din tabelul n care cmpul de legturapare cu valoare unicila un subformular n care apar toate nregistrrile din al doilea fiier care sunt n legtur cunregistrarea curentdin formularul principal.

    Pentru a avea o imagine concret a succesiunii pailor ce trebuie urmai pentru a creaformulare cu subformulare, sconsiderm o bazde date formatdin tabelele STOC i MISC,avnd, respectiv structurile prezente n fig. 12.4.10 i 12.4.11.

  • 7/24/2019 SGDB

    21/64

    Fig. 12.4.10

    ntre cele doutabele vom stabili o relaie de tip unu la mai muli (tabela unu fiind

    STOC (un material apare identificat prin cod o singurdat), iar tabela MISC fiind mai muli(un material poate aprea de mai multe ori cu micri ntr-o perioadde referin).n continuare se alege etichetaFormsi se creeazun formular apelnd la opiunea New,

    funcia Form wizard. Se selecteaz cmpurile formularului din lista de cmpuri disponibile ncele doutabele i apoi se urmeazsuccesiunea de operaii prezente n fig. 12.4.12.

  • 7/24/2019 SGDB

    22/64

    Fig. 12.4.11.

    n final se va obine un formular principal care prezint coninutul unei nregistrri dintabelul principal al relaiei i toate nregistrrile corespunztoare acesteia din al doilea tabel alrelaiei (acestea apar n subformular).

  • 7/24/2019 SGDB

    23/64

  • 7/24/2019 SGDB

    24/64

    Fig. 12.4.12.

  • 7/24/2019 SGDB

    25/64

    Recomandm cititorului srealizeze efectiv pe calculator aceste exemple i, dacva lucracorect, va obine exact rezultatul prezentat n ultima imagine din fig. 12.4.12.

  • 7/24/2019 SGDB

    26/64

    II.3. Crearea anteturilor i subsolurilor unui formular

    Crearea anteturilor i subsolurilor de formular

    Pentru introducerea unor informaii suplimentare la nceputul i/sau la sfritul unor

    formulare sau al paginilor de formular se pot utiliza Form Header, Form Footer, Page Header,Page Footer, vizualizarea acestora fcnd-se prin selectarea funciilor Form Header/Footer i

    respectiv Page Header/Footer din meniul View, n starea de modificare (Design) a unui formular.

    Vom considera urmtorul exemplu: se cere s se creeze un formular care sa asigure

    culegerea de date pentru popularea tabelei Mater avnd structura : Cod, Den, Um, Cant, Pret.

    Dupcrearea tabelului cu ajutorul etichetei Table din fereastra de lucru cu baza de date bd_ex(vezi 12.2.), alegem eticheta Form, accesm butonul New i alegem opiunea Form Wizard.

    Selectm tabela Mater, transferm toate cmpurile disponibile n zona de cmpuri selectate,

    accesm butonul Next, alegem forma tabelului (de ex. Tabular), apoi, dup o nou accesare a

    butonului Next, alegem stilul formei (de ex. Colorful 2), stabilim apoi numele formei i accesnd

    butonul Finish marcm sfritul construirii formularului. Introducem apoi cteva nregistrrifolosind formularul creat.

    Fig. 12.4.8.

    Pentru introducerea unui titlu pentru formular, a informaiilor de nceput de formular

    (capul de tabel cu semnificaia valorilor din tabel) n Form Header i a totalului cantitilor n

    Form Footer, selectm formularul i accesm butonul Design. Pentru cazul exempluluiconsiderat, pentru a se ajunge la la starea prezentn fig. 12.4.8., procedm astfel:

    - prin click dreapta de mouse pe bara de titlu a formei deschidem o fereastrdedialog din care alegem funcia Properties i introducem n caseta de text Caption

    titlul dorit pentru formularul nostru, de exemplu Culegere date materiale;

    - n zona Form Header, introducem, prin controlere de tip etichet, texteexplicative asupra semnificaiei datelor de pe coloana respectiva tabelului;

    - n zona Form Footer, introducem un controler de tip etichetcu textul explicativTotal cantitate, iar pe coloana cantitii introducem un controler de tip caset text

    n care urmeazsindicm introducerea n formular a totalului pentru cmpul Cant;

  • 7/24/2019 SGDB

    27/64

    pentru aceasta, executm click drepta de mouse pe caseta text, alegem func ia

    Properties i, din cadrul acesteia, opiunea Date; n caseta Control Source

    introducem formula =sum([cant]), ceea ce nsemncn caseta de text va fi afiat

    totalul valorilor din cmpul cant al tabelei asociatformularului.

    Dupaceste operaii, apelarea formularului prin intermediul butonului Openva conduce

    la o stare a formularului ca cea din fig. 12.4.9.

    Fig. 12.4.9.

  • 7/24/2019 SGDB

    28/64

    Bazele de date sunt construite i actualizate cu scopul exploatrii ulterioare ainformaiilor memorate. Una dintre modalitile de extragere a informaiilor din bazele de date

    ACCESS o reprezint interogrile (obiecte de tipul Queries). Se pot manipula dup selectarea

    etichetei Queries.Exist mai multe modaliti de lucru pentru crearea interogrilor bazelor de date

    ACCESS:

    Design View Simple Query Wizard

    Crosstab Query Wizard

    Fiind Duplicates Query Wizard Fiind Unmatched Query Wizard.

    Vom trata mai nti modalitatea care permite crearea de interogri de selecie prin

    apelarea la asistarea de ctre Access a acestei operaii. Acest lucru presupune selectarea de

    cmpuri din unul sau mai multe obiecte de tip tabel sau interogare.

    1.CreareaSimpleQuerywizard

    - se selecteaz tipul de obiect Queries i apoi se acceseaz butonul New carepermite crearea unui nou obiect din categoria selectat

    - din caseta de dialog New Query care apare dupaccesarea butonului New (fig.12.5.5.), se alege opiunea Simple Query Wizard i butonul OK;

    Fig. 12.5.5.

    - se selecteazapoi tabela / interogarea sau tabelele / interogrile, i, din cadrul

    acestora, cmpurile ce se doresc n interogare, dup care se acceseaz butonulNext.(fig.12.5.6);

  • 7/24/2019 SGDB

    29/64

    Fig.12.5.6.

    - din fereastra urmtoare se poate indica dacse dorete ca interogarea sconindetaliat toate nregistrrile tabelei principale, caz n care se alege butonul radio

    Detail (Shows every field or every record) sau doar un rezumat (Summary), nacest din urm caz alegndu-se obligatoriu opiunea Summary Options i

    introducndu-se i criteriile de rezumare: selectarea cmpului supus rezumrii i a

    funciei de rezumare: sum (nsumare), avg (media aritmetic), min (valoareaminim), max (valoarea maxim) (recomandm cititorului efectuarea exemplului

    pe calculator);

    - se acceseazdin nou butonul Next, iar n noua fereastrse stabilete numele sub

    care se dorete salvarea pe disc a interogrii;- se acceseazbutonul Finish i interogarea se afieazpe ecran.

    Exemplu (exerciiu) de aplicaie informatic care utilizeaz obiecte de tip tabel, formular iinterogare(creat prinmodulSimpleQueryWizard):

    S secreezebazadedatecunumeleLP1icares conin tabelelecuurmtoareastructur:REVISTECod Number,LongInteger,Indexed,NoDuplicatesTitlu Text20Editura Text15Pret Number,Single,Fixed

    CHITANTENr_Chitanta Number,Longinteger,Indexed,NoDuplicationCod Number,LongInteger,Indexed,DuplicatesOKPer_abonam Number,Byte,valoriposibileintre1i12

    Tabelesevorrelaionadup cmpulCod.

  • 7/24/2019 SGDB

    30/64

    Sevacreacteunformulardeculegeredatepentrufiecaredintretabeleisevorculegedatele:REVISTE

    100 Tilul1 E1 100.50

    150 Titlul2 E2 200.55130 Titlul3 E1 150.55140 Titlul4 E1 124.44

    CHITANTE1001 100 61501 150 41002 100 121301 130 91502 150 61401 140 121003 100 12

    Se vor culege i valori din afara limitelor din regulile de validare pentru a urmri dac formularulsesizeazeroarea de culegere.

    Se va crea i un formular asociat ambelor fiiere utiliznd modul de lucru wizard. Acesta

    va conine toate cmpurile din REVISTE i cmpurile Nr_chitanta i Per_abonam dinCHITANTE. Formularul va asocia fiecrei reviste chitanele prin care se consemneaz

    abonamentele la acestea. Se va obine un formular cu subformular.

    Se va crea o interogare care s realizeze o centralizare a valorilor ncasate pentru

    abonamente pe fiecare revistn parte, astfel:o sevacreamaintiinterogareaTOTAL_LUNI(folosindSimplequerzwizard)carevaconinecod,

    titlu,editura,pret(dintabelaREVISTE) iper_abonam(dinCHITANTE)solicitnd,prinSummaryoptions,nsumareanumruluidelunideabonament(per_abonam)

    o ninterogareaanterioar seintroduce,folosindbutonulDesignView,uncmpnoucareconineformulatotal_luni(creatprinnsumareavaloriicmpuluiper_amonam)*pret.

    Recomandmcititoruluiexecutareaacesteilucrripracticecuscopulfixrii iverificriiniveluluiatinsnnsuireacunotinelorlegatedeutilizareaMicrosoftAccesspentruprelucrareaprinformulareiinterogriadatelordinbazelededaterelaionale.

    2.CreareadeinterogrinDesignView

    Pentru crearea unei noi interogri n modul Design View se vor parcurge urmtorii pai:

    - se selecteazbutonul Queries aflat n bara tipurilor de obiecte Access;

    -se efectueazclick de mouse pe butonul New ;

    - se alege opiunea Design View din lista de opiuni i apoi se acceseazbutonul

    OK;

    - se selecteaztabela sau tabelele care ce urmeazsfurnizeze informaii cuprinsen interogare (fig.12.5.1.) folosind butonul Add;

  • 7/24/2019 SGDB

    31/64

  • 7/24/2019 SGDB

    32/64

    - se alege submeniul Edit, funcia Delete Column sau se apastasta Delete.

    Adgarea criteriilorCriteriile permit selectarea cmpurilor din nregistrare care vor fi afiate n cadrul

    interogrii. Aceste criterii sunt exprimate prin expresii relaionale sau logice. Introducerea

    criteriilor se poate face pe linia Criteria, iar dac avem mai multe crierii, pe liniile Or. Vor fi

    afiate n interogare toate cmpurile a cror valoare satisface cel puin unul dintre criteriileintroduse n liniile Criteria sau Or. (fig.12.5.3).

    Fig.12.5.3.

    Pentru construirea expresiilor din liniile Criteria sau Or se poate apela i la constructorul

    Access pentru expresii: se execut click dreapta de mouse n celula respectiv i apoi seselecteazfuncia Build.

    Sortarea nregistrrilor unei interogriSe poate realiza utiliznd linia Sort din macheta de construire a interogrii.(fig. 12.5.4).

    Fig. 12.5.4.

    Dup click de mouse pe linia Sort, se deschide o fereastr care conine opiunile:

    Ascending, Descending i (no sorted). Selectnd una dintre aceste opiuni asigurm ordonareacresctoare, descresctoare a nregistrrilor sau, respectiv lipsa ordonrii acestora n cadrul

    interogrii.

    Afiarea sau ascunderea unui cmp

  • 7/24/2019 SGDB

    33/64

    Se poate solicita afiarea sau ascunderea valorilor unui cmp n cadrul unei interogriprin activarea sau inactivare, prin click de mouse, a casetei din linia Show. (fig.12.5.4).

    Vizualizarea unei interogri

    Se nchide fereastra de construire a interogrii (folosind butonul de nchidere), apoi seselecteazinterogarea de vizualizat i se acceseazbutonul Open.

    Imprimarea unei interogriSe realizeaz folosind funcia Print din submeniul File aflat n bara de meniuri, sau princombinaia de taste CTRL+P.n ambele situaii apare pe ecran caseta de dialog Print dininteriorulcreiapotfistabilitecondiiiledeimprimare.

  • 7/24/2019 SGDB

    34/64

    n Access pot fi utilizate 4 tipuri de interogri speciale i anume: MakeTable, Append,Update, Delete.

    1. Interogri speciale de tip Make Table Query

    Interogarea de tip MakeTable are rolul de a crea o noutabelcare sconincmpurilei nregistrrile selectate din cadrul uneia sau mai multor tabele sau interogri existente. Creareaunei astfel de interogri presupune parcurgerea urmtoarelor etape:

    Crearea interogrii prin selectarea de atribute din una sau mai multe tabele sauinterogri existente, eventual relaionate; se poate apela la modurile de lucru SimpleQuery Wizard sau Design View, ambele prezentate n leciile anterioare i exersate laorele de aplicaii practice de laborator

    Selectarea submeniul Query din bara de meniuri; din lista de funcii a acestui

    sumbeniu se alege Make Table Query; se indicnumele tabelului ce se dorete a fi creatsau recreat, se salveaz interogarea creat prin accesarea butonului de nchidere a

    ferestrei de lucru;

    Pentru crearea sau recrearea tabelului se apeleaz interogarea prin accesarea cumouse a butonului Open, dupselectarea interogrii, sau prin dublu click de mouse peinterogare; se declaneaz un dialog cu utilizatorul prin care acesta este informat detergerea tabelului (dac acesta exist deja pe disc) i de numrul de nregistrri(rnduri) ce vor fi introduse n noua tabel

    Observaie: Este important ca tabelul ce rezultdintr-o interogare de tip Make Table snu fieimplicat n nici o relaie permanent (creat n fereastra Relationships) cu alte tabele sauinterogri. Daceste necesarrelaionarea, atunci aceasta se poate face doar n cadrul interogriicare o folosete, ea refcndu-se la fiecare apelare a acesteia.

    2. Interogri speciale de tip Append QueryInterogarea de tip Append are rolul de a aduga ntr-o tabelnoi nregistrri preluate din

    alttabel. Pentru crearea unei astfel de interogri se poate proceda astfel: se apeleazmodul de lucru Design View pentru crearea interogrii se selecteaztabela din care se face adugarea

    se alege funcia Append Query din submeniul Query se selecteazcmpurile de adugat i cele n care se adaug se salveazprin nchiderea ferestrei de lucru de la butonul de nchidere din bara

    de instrumente stabilindu-se numele interogrii (la prima salvare)Observaie:Apelarea interogriise faceprinselectareaacesteia iaccesareabutonuluiOpen,

    prin dublu click demouse pe interogare, sau prin apsarea tastei , dup selectarea

    interogrii. Efectul este adugarea cmpului sau cmpurilor indicate din toatenregistrrile

    tabeleisurs canregistrrialetabeleidestinaie.

    3. Interogri speciale de tip Delete Query

    Cu ajutorul acestui tip de interogare putem selecta seturi de nregistrri ale unei tabele ceurmeaza fi supuse operaiei de tergere. Pentru a crea o interogare de tip Delete Query putemparcurge urmtorii pai:

    dinfereatraDatabaseQueryNewapelmgeneratoruldeinterogri

    selectm,nmoduldelucruDesignView,tabelasupus operaieidetergere

    alegemdinmeniulQueryfunciaDeleteQueryiobservmapariia,nmachetadelucru,aliniei

  • 7/24/2019 SGDB

    35/64

    Delete

    prin operaia de glisare (drag&drop) selectm cmpurile ce vor fi utilizate la filtrarea

    nregistrrilordeters

    peliniaDeleteapareimplicitfunciaWhere

    peliniaCriteriasevorintroduce,pentrufiecaredintrecmpurileintroduse,condiiidefiltrare

    putemvizualizasetuldedatedinamiccarevafitersprinbutonuldatasheetview

    dac suntemdeacordcutergerealansmcomandarun

    4. Interogri speciale de tip UpDate QueryAcesttipde interogripermitcoreciamaimultornregistrrialeuneitabele,filtrateeventual

    printrocondiie, laovaloarecepoatefioconstant,ovariabil sauoexpresiencomponenacreia

    suntinclusealtecmpurialetabelei,directsaucaparametriaiunorfuncii.

    PentrucreareainterogrilordetipUpdateQuerysepotparcurgeurmtoriipai:

    dinfereastraDatabaseQueryNewapelmgeneratoruldeinterogri

    selectm,nmodulde lucruDesignView,dinfereastraShowTable,tabelasupus operaieidecorecie

    stabilimtipulinterogriiprinalegereafuncieiUpdateQuerydinmeniulQuery;obinemastfel,

    nmachetadelucru,liniaUpdateTo

    introducem,pe coloana cmpurilor supusecoreciei,valoarea corectoare,pe liniaUpdateTo,

    sub forma unei constante, variabile sau formule; pe liniile Criateria sauOr putem introduce

    condiiicares asigurefiltrareanregistrrilordecorectat

    putemvizualizanregistrriledecorectatprinbutonulview

    dac dorimvizualizarea iaaltorcmpurinafaracelorsupusecoreciei,numeleacestoravafi

    trecutpeliniaUpdateTontreparantezedrepte

    senchidefereastradelucrudelabutonulCloseisesalveaz interogarea

    seapeleaz interogareapentruarealizacoreciapropriuzis.

  • 7/24/2019 SGDB

    36/64

    InterogrispecialedetipCrossTabQuery

    Vomnumincruciarerezultatulunei interogrispecialecarepermiteanalizarearelaieidintreuncmpaluneitabeleialtcmpalaceleaitabele.

    Pentru o prezentare mai explicit a caracteristicile unei interogri de ncruciare (Crosstab) vomconsideraurmtorulexemplufoartesimplu:Avemotabel dedatececoninedou cmpuri,denumitecimp1icimp2.Primuldintrecmpuripoateaveavalorinumerentregi,iarceldealdoileaarecavaloriposibile iruride caracterede cteun caracter.Dorim s cunoatemde cteoriapare fiecare irdecaractererelativlafiecaredintrevalorilecmpuluicimp1.

    PentrurezolvareaproblemeivomcreaointerogaredetipCrosstabprinparcurgereapailor: dinfereastraDatabaseQueryNewapelmgeneratoruldeinterogri selectm,nmoduldelucruDesignView,dinfereastraShowTable,tabelasupus operaieide

    analiz prinncruciare stabilim tipul interogriiprin alegerea funciei Crosstab dinmeniulQuery; obinem astfel,n

    machetadelucru,liniaCrosstab

    plasmpeprima coloan cmpul care va fi folositpentru linii (nregistrri) ale interogrii,ncazulexemplului considerat, cimp1.Pe liniaCrosstab alegemRowHeading, iarpe liniaTotal,GroupBy

    plasmapoi cmpulal crei frecven deapariiene intereseaz,n cazulexempluluinostru,cimp2;peliniaCrosstabalegemColumnHeading,iarpeliniaTotal,GroupBy

    plasmapoicmpulcarevafifolositdreptconinutalmatriceigenerat deinterogare,ncazulexempluluiconsiderat,cimp1.PeliniaCrosstabvomalegeValue,iarpe Total,funciaCount

    vommaidefiniunnoucmpncadrul interogrii, ianumeTotal:cimp1,cearepe liniaTotal,funciaCount,iarpeliniaCrosstab,funciaRowHeading

    Dac tabelaTabel1areconinutulurmtor

    atunci interogarea care s prezinte frecven de apariiea valorilor cmpului cimp2 relativ la fiecaredintre valorile cmpului cimp1 are urmtoarele structuri logice i fizice (obinute prin parcurgereapailordescriianterior):

  • 7/24/2019 SGDB

    37/64

    Crearea interogrilor ncruciate prin folosirea asistentului Crosstab Wizard.Pentruafacilitanelegerea ifixareapailordeurmat,precum isituaiancareeste indicat

    folosireaacestuigende interogare,vompornide launexempluconcret isimplu:s determinmdintabelaProduse,avndstructuralogic Cod,Grupa,Denumire,UM,Pret,numrulproduselordincadrulaceleaigrupecareauacelaipre.

    Dup apelareautilitaruluipentrugenerareainterogriiDatabaseQueryNewvomexecuta

    urmriipai:

    Pas1:Alegereatabeleicarevaconstituisursadedate(dac amselectatbutonulradioQueries,

    putemalegeiointerogarecasurs pentrudate).

    Pas 2: Alegerea cmpului ale crui valori vor fin liniile rezultatului (n cazul de fa grupaprodusului)

  • 7/24/2019 SGDB

    38/64

    Pas3:Alegereacmpuluialecruivalorivorfincoloanainterogrii(ncazuldefa Pret)

    Pas4:Alegerea funciei ce sevaaplicapentruafiarea rezultatuluidin celulele interogrii (ncazulexemplului considerat count care vanumra frecvenadeapariie aunuipre n cadrufiecreigrupedeprodus).

    Pas5:Seatribuienumepentru salvarea interogrii.Sepoatealegebutonul radioModify thedesignpentruaputeamodificaatributelecoloanelorinterogriisau(implicit)butonulViewthequerypentruavizualizainterogareapeecran.

  • 7/24/2019 SGDB

    39/64

    Considermc tabelaProduseconinedateledinimagineaurmtoare:

    Atuncirezultatulinterogrii esteprezentatmaijos

    InterogrispecialedetipFindDuplicatesQuery

    Pentruedificarevomconsiderac dorims depistm toatenregistrrile tabeluluiProdusecustructuraprezentat anterioricareauacelaipre.Rezolvareaproblemeisepoatefacecuajutoruluneiinterogripecareovomconstruiurmndpaii:

    Pas1:SelectmNewqueryFindDuplcatesQueryWizard

    Pas2:Selectmcmpuldup caredorimcutareavaloriloridentice(ncazulexempluluinostru,Pret)

    Pas 3: Selectm celelalte cmpuri pe care dorim s le introducem n interogare (n cazulexempluluiconsiderat,DenumireiUM)

  • 7/24/2019 SGDB

    40/64

    Pas 4: Introducem numele interogrii i decidemn cemod dorim afiarea interogrii, adicViewafiatenmodDatabase,ModifyafiarenmodDesign).Pentruexemplulconsiderat,imagineainterogriiesteurmtoarea:

    Deremarcatefectuldinpunctdevederealstructuriilogiceainterogrii:

    Crearea interogrilor de cutarea a nregistrrilor fr corespondent folosind FindUnmatched Query Wizard

    Ne propunem s rezolvm urmtoarea problem: determinarea grupelor de produsepentru care nu avem date n tabela Produse. Presupunem cexisto tabelcu numele Grupe care

    conine toate grupele de produse posibil saparn aplicaia noastr.Rezolvareaproblemeisepoatefacecuajutoruluneiinterogripecareovomconstruiurmndpaii:

    Pas1: SelectmNewqueryFindUnmatchedQueryWizard

    Pas2:Seselecteaz numeletabeleidereferin (Grupe)

    Pas3:Seindic cmpurilecorespondentedinceledou tabele(GrupeiProduse)

    Pas4:Sespecific cmpurilecesevorafianinterogare

  • 7/24/2019 SGDB

    41/64

    Pas 5: Introducem numele interogrii i decidemn cemod dorim afiarea interogrii, adicViewafiatenmodDatabase,ModifyafiarenmodDesign).

    Dac celedou tabeleaconinutulprezentatncontinuare

    nSQLinterogareasepoategeneraastfel:SELECTGrupe.Grupa,Grupe.DenumireFROMGrupeLEFTJOINProduseONGrupe.Grupa=Produse.GrupaWHERE(((Produse.Grupa)IsNull));

  • 7/24/2019 SGDB

    42/64

    LimbajulSQL(StructuredQueryLanguage limbajstructuratde interogare)esteutilizatpentrumanipulareairegsireadatelordinbazelededaterelaionale.

    SQL-ul pune la dispoziia programatorului un administrator de baze de date cu

    urmtoarele faciliti: posibilitateademodificareastructuriibazeidedate; posibilitateaschimbriivalorilordeconfigurarepentrusecuritateasistemului; permite stabilirea si modificarea drepturilor date utilizatorilor asupra bazelor de datesauatabelelor; permiteinterogareauneibazededate; ofer facilitimultiplereferitoarelaactualizareaconinutuluiuneibazededate.

    O interogare SQL nu este neaprat o ntrebare pusa bazei de date, ci, cel mai adesea,

    o comandpentru executarea uneia dintre aciunile de mai jos: construireasautergereauneibazededate; inserarea,modificareasautergereaunorliniisaucmpuri;

    cutareantabeleauneiinformaiiireturnareaderezultatelentroanumit ordine; modificareasecuritiiinformaiilor; simpl interogare(ntrebare).

    Vomprezentactevacomenziutileoperaiilordeinterogareiactualizareadatelor.Editarea acestor comenzii se face in fereastra SQL View operabil dup ce am intrat in

    proiectareauneiinterogriprinQueryDesign.

    Comanda SELECT- ceamaiimportant imaifolosit comand SQL- permitespecificareadatelorcarevorconstituiieireadininterogareprecumsisursaacestora.

    SintaxacomenziiSELECTesteurmtoarea:

    SELECT[domeniu]/[*]/[]FROM[][WHERE ] [GROUP BY ] [HAVING ]

    [ORDER]

    unde:- clauzadomeniu precizeaz coloanelecarevorformarezultatul;

    Pentruexemplificareaveminvedereurmtorulexemplu:FiebazadedateCOALAcutabelele:CLASE(cls,profil,diriginte)

    CLASE

    CLS PROFIL DIRIGINTE

    IXA INFORMATICAPOPA

    IXB INFORMATICAIONESCUIXC MATE GEORGESCU

    XA INFORMATICABADEA

    XB INFORMATICACALIN

    XC MATE TUFIS

    XIA INFORMATICABALU

    XIB INFORMATICADINA

    XIC MATE STANESCU

    XIIAINFORMATICAVOINEA

  • 7/24/2019 SGDB

    43/64

    CLASE

    CLS PROFIL DIRIGINTE

    XIIB INFORMATICAVADUVAXIIC MATE NITU

    iELEVI(cod,nume,cls,med,absn,absm,cam)

    Exemplul a: S scriem o comand SQL care s afieze numelor tuturor elevilor despre care suntmemorateinformaiintabelaELEVI.Aceastavafi

    SQL> SELECTNUMEFROMELEVI;

    Rezultatulexecuieicomenziiesteurmtorul

    NUME

    ALBUANGELA

    ASPRU ANA

    BOGDANLAURA

    COLTEAVLAD

    DICUION

    IOSIF DANIELA

    PANTELIMONIULIANA

    POPESCULAVINIA

    VLADDAN

    VLASCARALUCA

    - Clauza[domeniu]poateconine:

    ELEVI

    COD NUME CLS MED ABSN ABSM cam

    1ALBUANGELA IXA 9.5 0 2 Yes

    3BOGDANLAURA IXB 9.75 3 0 No

    2PANTELIMONIULIANA IXC 9 2 3 Yes

    8ASPRUANA XA 9 2 3 No

    4IOSIFDANIELA XB 8 5 5 No

    10COLTEAVLAD XIA 9 0 0 No

    9VLADDAN XIB 7 1 3 Yes

    7VLASCARALUCA XIC 10 0 0 No

    5DICUION XIIA 9 0 0 Yes

    6POPESCULAVINIA XIIB 9.5 6 2 No

  • 7/24/2019 SGDB

    44/64

    All specific faptulcatoatearticolelevorformarezultatul;

    Distinct se va elimina din rezultat articolele duplicat create pe baza listei de coloane

    specificate;

    Exemplul b: s scriem o comand SQL care s afieze numele claselor (distincte!) dinSCOALA folosind tabela ELEVI.ComandaSQLvafi

    SQL> SELECTDISTINCT[CLS] FROMELEVI;

    iar rezultatul execuiei ei este

    CLS

    IXA

    IXBIXC

    XA

    XB

    XIA

    XIB

    XIC

    XIIA

    XIIB

    Distinctrow va elimina din rezultat toate dublurile din coloanele indicate pentru fiecare

    tabelreferitncomandaSELECT

    - asteriscul (*) - indica faptul ca vor fi incluse toate cmpurile tabelelor sursprecizate nclauza FROM;

    Exemplul c: Sscriem acum o comandSQL care safieze tot coninutul fiierului ELEVI.Comandaeste

    SQL> SELECT*FROMELEVI;iarrezultatulexecuieieiconducela

    COD NUME CLS MED ABSN ABSM cam

    1ALBUANGELA IXA 9.5 0 2 Yes

    3BOGDANLAURA IXB 9.75 3 0 No2PANTELIMONIULIANA IXC 9 2 3 Yes

    8ASPRUANA XA 9 2 3 No

    4IOSIFDANIELA XB 8 5 5 No

    10COLTEAVLAD XIA 9 0 0 No

    9VLADDAN XIB 7 1 3 Yes

    7VLASCARALUCA XIC 10 0 0 No

    5DICUION XIIA 9 0 0 Yes

    6POPESCULAVINIA XIIB 9.5 6 2 No

  • 7/24/2019 SGDB

    45/64

    clauza [] poate conine cmpuri aparinnd tabelelor definiten clauza FROM, constante,funciisauexpresiicu acesteaipotprimiunaltnumeprinclauzaAS;

    Exemplul d: S scriem o comand SELECT care s afieze media general a tutoror elevilor a crorinformaiiseaflntabelaELEVI.

    SQL> SELECTAVG([MED])ASMED_GEN FROMELEVI;Rezultatulexecuieicomenzii

    Exemplule:Afiareanumruluielevilordincoal

    SQL> SELECTCOUNT(*)ASNR_ELEVIFROMELEVI;

    Rezultatulexecuieicomenzii:NR_ELEVI

    10

    Exemplul f: afiarea numruluiclaselordincoal.

    SQL> SELECTDISTINCTCOUNT([CLS])ASNR_CLS FROMCLASE;Rezultatulexecuieicomenzii:

    NR_CLS

    12

    Exemplul h: afiarea numrului elevilor, a celei mai mici i a celei mai mari medii.SQL> SELECT COUNT(*) AS NR_ELEVI, MIN([MED]) AS CEA_MAI_MICA_MEDIE, MAX([MED]) ASCEA_MAI_MARE_MEDIE FROMELEVI;Rezultatulexecuieicomenzii:

    NR_ELEVI CEA_MAI_MICA_MEDIE CEA_MAI_MARE_MEDIE

    10 7 10

    clauza FROM specific lista fiierelor de intraren prelucrare (se pot stabili aliasuri pentru tabelenclauzaAS)Exemplulg:afiareadiriginilorclaselor.

    SQL> SELECT[DIRIGINTE],[CLS],[PROFIL]FROMCLASE;Rezultatulexecuieicomenzii:

    DIRIGINTE CLS PROFIL

    POPA IXA INFORMATICA

    IONESCU IXB INFORMATICA

    GEORGESCU IXC MATE

    BADEA XA INFORMATICA

    CALIN XB INFORMATICA

    TUFIS XC MATE

    MED_GEN

    8.975

  • 7/24/2019 SGDB

    46/64

    DIRIGINTE CLS PROFIL

    BALU XIA INFORMATICA

    DINA XIB INFORMATICASTANESCU XIC MATE

    VOINEA XIIA INFORMATICA

    VADUVA XIIB INFORMATICA

    NITU XIIC MATE

    clauzaWHERE permiteintroducerealegturilorntretabelesiafiltrelor.Exempluli:afiareaelevilorcumediiintre8si10dintoateclaseleaXIIa.SQL> SELECT[NUME],[MED]FROMELEVIWHEREMEDBETWEEN8AND10ANDCLSLIKE"XII*";Rezultatulexecuieicomenzii

    NUME MED

    DICUION 9POPESCULAVINIA 9.5

    Exemplulj:afiareadiriginilorclaselordeinformatic.SQL> SELECT[DIRIGINTE],[CLS]FROMCLASEWHEREPROFIL="INFORMATICA";

    Rezultatulexecuieicomenzii:

    DIRIGINTE CLS

    POPA IXA

    IONESCU IXB

    BADEA XA

    CALIN XB

    BALU XIADINA XIB

    VOINEA XIIA

    VADUVA XIIB

    Exemplulk:afiareaelevilorcumedia10precumiaprofiluluiclaseiacestora.SQL>SELECT [ELEVI].[NUME],[ELEVI].[CLS], [CLASE].[CLS], [CLASE].[PROFIL] FROM ELEVI, CLASEWHERE[ELEVI].[CLS]=[CLASE].[CLS]AND[ELEVI].[MED]=10;

    Rezultatulexecuieicomenzii:

    NUME ELEVI.CLS CLASE.CLS PROFIL

    VLASCARALUCA XIC XIC MATE

    Exemplull:AfiareaelevilordiriginteluiBADEA.SQL>SELECT[ELEVI].[NUME]FROMELEVI,CLASE

    WHERE((([ELEVI].[CLS])=([CLASE].[CLS]))And(([CLASE].[DIRIGINTE])="BADEA"));Rezultatulexecuieicomenzii:

    NUME

    ASPRUANA

    Exemplulm:Afiaicaresunteleviicumedia10pentrufiecareclas (precumsinumelediriginilorlor).Rezolvare:*Comand:SQL> SELECT [ELEVI].[NUME], [ELEVI].[MED], [CLASE].[CLS], [CLASE].[DIRIGINTE] FROM CLASE,

  • 7/24/2019 SGDB

    47/64

    ELEVIWHERE((([ELEVI].[CLS])=[CLASE].[CLS])And(([ELEVI].[MED])=10));Rezultatulexecuieicomenzii:

    NUME MED CLS DIRIGINTE

    VLASCARALUCA 10 XIC STANESCU

    clauzaGROUPBYpermitegruparearezultatelor. clauza HAVING fixeaz restriciideafiareagrupului.Exempluln:S secalculezenumrulelevilorpeclasedarnumailaprofilulInformatica.

    SQL>SELECTDISTINCTROW[CLASE].[CLS],Count([ELEVI].[COD])ASNr_Elevi,[CLASE].[PROFIL]FROMCLASEINNERJOINELEVION[CLASE].[CLS]=[ELEVI].[CLS]GROUPBY[CLASE].[CLS],[CLASE].[PROFIL]HAVING(((CLASE.PROFIL)="INFORMATICA"));

    Rezultatulexecuieicomenzii:

    CLS Nr_Elevi PROFIL

    IXA 1 INFORMATICA

    IXB 1 INFORMATICA

    XA 1 INFORMATICA

    XB 1 INFORMATICA

    XIA 1 INFORMATICA

    XIB 1 INFORMATICA

    XIIA 1 INFORMATICA

    XIIB 1 INFORMATICA

    - clauzaORDERBYspecific expresiadeordonaresisensulordonrii.

    Exemplulo:Afiarealisteiclaselorpeprofilurii,ncadrulfiecruiprofil,cresctordup codulclasei.

    SQL>SELECT[CLASE].[CLS],[CLASE].[PROFIL]FROMCLASEORDERBY[CLASE].[CLS];Rezultatulexecuieicomenzii:

    CLS PROFIL

    IXA INFORMATICA

    IXB INFORMATICA

    IXC MATE

    XA INFORMATICA

    XB INFORMATICA

    XC MATE

    XIA INFORMATICA

    XIB INFORMATICA

    XIC MATE

  • 7/24/2019 SGDB

    48/64

    CLS PROFIL

    XIIA INFORMATICA

    XIIB INFORMATICAXIIC MATE

    p.Afiailistaalfabetic aelevilordiriginteluiPOPA.SQL>SELECTELEVI.NUME

    FROMELEVI,CLASEWHERE(((ELEVI.CLS)=[CLASE].[CLS])AND((CLASE.DIRIGINTE)="POPA"))ORDERBYELEVI.NUME;

    Rezultatulexecuieicomenzii:

    NUME

    ALBUANGELA

    ASOCIERINTRETABELESintaxapentruasociere[Inner/Left/Right]Join:SELECTFROM([INNER/LEFT/RIGHT]JOINON)WHERE

    Tipul asocierii datelor din tabelele relaionate nu afecteaz relaia ci doar modul cum suntregsite informaiile din cele dou tabele legate. Rezultatul unei relaii poate fi vzut ca o alt tabelcare are pe fiecare linie valori i din prima tabel i din a doua. Semnificaia clauzelor din comandaSELECTdestinat relaionriitabeleloresteprezentatncontinuare.

    ClauzaInner

    Join rezultatulasocieriiincludenumaiacelernduridinambeletabelecareauvaloriegalealecheiidelegtur.Exemplulr:AfiaitoieleviidelaprofilulInformatica.

    SQL> SELECT [NUME] FROM ELEVI INNER JOIN CLASE ON [CLASE].[CLS]=[ELEVI].[CLS] WHERECLASE].[PROFIL]="INFORMATICA";

    Rezultatulexecuieicomenzii:

    NUME

    ALBUANGELA

    BOGDANLAURA

    ASPRUANA

    IOSIFDANIELA

    COLTEAVLAD

    VLADDAN

    DICUION

    POPESCULAVINIA

    Clauza Outer Join este opusul lui Inner Join se includ linii ntro tabel chiar daca nu existcorespondentncealalt tabel.Poatefi:

    o LeftJoin cndseincludtoatearticoleletabeleiprintesinumaiaceleliniidintabelacopil

  • 7/24/2019 SGDB

    49/64

    pentrucareexist corespondent;

    Exemplul s: Afiarea tuturor liniilor tabelei CLASE i numele elevilor claselor.SQL>SELECT[CLASE].[CLS],[CLASE].[PROFIL],[ELEVI].[NUME]FROMCLASELEFTJOINELEVION

    [CLASE].[CLS]=[ELEVI].[CLS];Rezultatulexecuieicomenzii:

    CLS PROFIL NUME

    IXA INFORMATICA ALBUANGELA

    IXB INFORMATICA BOGDANLAURA

    IXC MATE PANTELIMONIULIANA

    XA INFORMATICA ASPRUANA

    XB INFORMATICA IOSIFDANIELA

    XC MATE

    XIA INFORMATICA COLTEAVLAD

    XIB INFORMATICA VLADDAN

    XIC MATE VLASCARALUCA

    XIIAINFORMATICA DICUION

    XIIB INFORMATICA POPESCULAVINIA

    XIIC MATE

    Exemplul t: Afiarea tuturor elevilor i a diriginilor acestora chiar daca nu au corespondentn tabelaelevi.

    SQL> SELECT [CLASE].[DIRIGINTE], [ELEVI].[NUME] FROM CLASE LEFT JOIN ELEVI ON[CLASE].[CLS]=[ELEVI].[CLS];

    Rezultatulexecuieicomenzii:

    DIRIGINTE NUME

    POPA ALBUANGELA

    IONESCU BOGDANLAURA

    GEORGESCU PANTELIMONIULIANA

    BADEA ASPRUANA

    CALIN IOSIFDANIELA

    TUFISBALU COLTEAVLAD

    DINA VLADDAN

    STANESCU VLASCARALUCA

    VOINEA DICUION

    VADUVA POPESCULAVINIA

    NITU

    o RightJoin cndseincludtoatearticoleletabeleicopilsidoaracele liniialetabeleiprintecareaucorespondent.

  • 7/24/2019 SGDB

    50/64

    FolosireaparametrilorDacaexpresiadefiltrareconineun irntreparantezerotunde,Accessconsider c estevorba

    deunparametruilaexecuievasolicitaintroducereavaloriisale.

    Exemplulu:Afiailistaeleviloruneiclaseoarecaredat deutilizator.SQL>SELECT[NUME],[CLS]FROMELEVIWHERE([ELEVI].[CLS]=([CLASA_oarecare]))ORDERBY[ELEVI].[NUME];

    Rezultatlaexecuie:CLASAoarecare=IXA

    NUME CLS

    ALBUANGELA IXA

    ComandaINSERT- permiteadugareaarticolelordintrotabel lasfritulalteia;-

    faceapellainstruciuneaSELECT,carevaidentificaliniileicoloanelecaresetransfer sauntroalt form permiteadugareauneisingurenregistrrintabel icompletareaacesteiacudate.

    SintaxainstruciuniiINSERT esteurmtoarea:

    Regulile care trebuierespectate la folosireainstruciuniiINSERTSELECT:

    instruciuneaSELECTnupoateselectaliniidintabelulcareafostinserat; numruldecoloanedininstruciuneaINSERTSELECTtrebuies fieegalcunumrulde

    coloanereturnatedeinstruciuneaSELECT;

    tipurilededatealecoloanelordininstruciuneaINSERTINTOtrebuies fieacelaicutipurilededatealecoloanelorreturnatedeinstruciuneaSELECT.

    Exemplulv:S seadaugeelevulIONESCUMIRCEAdinclasaIXAcumedia9.75ntabelaELEVI1.SQL>INSERTINTOELEVI1(NUME,CLS,MED)VALUES("IONESCUMIRCEA","IXA",9.75);

    Rezultatulexecuieicomenzii:

    ELEVI1

    COD NUME CLS MED ABSN ABSM cam

    1ALBUANGELA IXA 9.5 0 2 Yes

    11IONESCUMIRCEA IXA 9.75 0 0 No

    3BOGDANLAURA IXB 9.75 3 0 No

    2PANTELIMONIULIANA IXC 9 2 3 Yes

    8ASPRUANA XA 9 2 3 No

    4IOSIFDANIELA XB 8 5 5 No

    10COLTEAVLAD XIA 9 0 0 No

    9VLADDAN XIB 7 1 3 Yes

    7VLASCARALUCA XIC 10 0 0 No

    5DICUION XIIA 9 0 0 Yes

    INSERT INTO /VALUES

  • 7/24/2019 SGDB

    51/64

    ELEVI1

    COD NUME CLS MED ABSN ABSM cam

    6POPESCULAVINIA XIIB 9.5 6 2 No

    Exemplulx:S seadaugeeleviicminitintabelaELEVICAMexistent.SQL>INSERTINTOelevicam(nume,cls,med)

    SELECT[elevi].[nume],[elevi].[cls],[elevi].[med]FROMeleviWHERE[elevi].[cam]=Yes;

    ELEVI

    COD NUME CLS MED ABSN ABSM cam

    1ALBUANGELA IXA 9.5 0 2 Yes

    3BOGDANLAURA IXB 9.75 3 0 No

    2PANTELIMONIULIANA IXC 9 2 3 Yes

    8ASPRUANA XA 9 2 3 No

    4IOSIFDANIELA XB 8 5 5 No

    10COLTEAVLAD XIA 9 0 0 No

    9VLADDAN XIB 7 1 3 Yes

    7VLASCARALUCA XIC 10 0 0 No

    5DICUION XIIA 9 0 0 Yes

    6POPESCULAVINIA XIIB 9.5 6 2 No

    Rezultatulexecuieicomenzii:ELEVICAM

    NUME CLS MED

    ALBUANGELA IXA 9.5

    PANTELIMONIULIANA IXC 9

    VLADDAN XIB 7

    DICUION XIIA 9

    InstruciuneaDELETE- permite tergerea dintro tabel specificat a articolelor carendeplinesc condiiile daten

    clauzaWHERE:SintaxainstruciuniiDELETE esteurmtoarea:

    DELETE FROM

    WHERE

    Exempluly:S setearg eleviidinclasaIXA.TabelaELEVInainteatransmiteriicomenziidetergereareurmtorulconinut:

    ELEVI

  • 7/24/2019 SGDB

    52/64

    COD NUME CLS MED ABSN ABSM cam

    1ALBUANGELA IXA 9.5 0 2 Yes

    3BOGDANLAURA IXB 9.75 3 0 No2PANTELIMONIULIANA IXC 9 2 3 Yes

    8ASPRUANA XA 9 2 3 No

    4IOSIFDANIELA XB 8 5 5 No

    10COLTEAVLAD XIA 9 0 0 No

    9VLADDAN XIB 7 1 3 Yes

    7VLASCARALUCA XIC 10 0 0 No

    5DICUION XIIA 9 0 0 Yes

    6POPESCULAVINIA XIIB 9.5 6 2 No

    SQL>DELETE*FROMELEVI2WHERECLS="IXA";

    Rezultatulexecuieicomenzii:

    ELEVI2

    COD NUME CLS MED ABSN ABSM cam

    3BOGDANLAURA IXB 9.75 3 0 No

    2PANTELIMONIULIANA IXC 9 2 3 Yes

    8ASPRUANA XA 9 2 3 No

    4IOSIFDANIELA XB 8 5 5 No

    10COLTEAVLAD XIA 9 0 0 No

    9VLADDAN XIB 7 1 3 Yes

    7VLASCARALUCA XIC 10 0 0 No

    5DICUION XIIA 9 0 0 Yes

    6POPESCULAVINIA XIIB 9.5 6 2 No

    InstruciuneaUPDATE permiteactualizareavalorilordintabelaindicat.

    SintaxainstruciuniiUPDATE esteurmtoarea:

    UPDATE SET=,WHERE

    Exemplul z: S se modifice clasa elevului PANTELIMON IULIANA la valoarea IXF. nainteaactualizriitabelaELEVIareurmtorulconinut:

    ELEVI

  • 7/24/2019 SGDB

    53/64

    COD NUME CLS MED ABSN ABSM cam

    1ALBUANGELA IXA 9.5 0 2 Yes

    3BOGDANLAURA IXB 9.75 3 0 No2PANTELIMONIULIANA IXC 9 2 3 Yes

    8ASPRUANA XA 9 2 3 No

    4IOSIFDANIELA XB 8 5 5 No

    10COLTEAVLAD XIA 9 0 0 No

    9VLADDAN XIB 7 1 3 Yes

    7VLASCARALUCA XIC 10 0 0 No

    5DICUION XIIA 9 0 0 Yes

    6POPESCULAVINIA XIIB 9.5 6 2 No

    SQL>UPDATEELEVI7SETCLS="IXF"WHERE(NUME="PANTELIMONIULIANA");

    Rezultatulexecuieicomenzii:

    ELEVI7

    COD NUME CLS MED ABSN ABSM cam

    1ALBUANGELA IXA 9.5 0 2 Yes

    3BOGDANLAURA IXB 9.75 3 0 No

    2PANTELIMONIULIANA IXF 9 2 3 Yes

    8ASPRUANA XA 9 2 3 No4IOSIFDANIELA XB 8 5 5 No

    10COLTEAVLAD XIA 9 0 0 No

    9VLADDAN XIB 7 1 3 Yes

    7VLASCARALUCA XIC 10 0 0 No

    5DICUION XIIA 9 0 0 Yes

    6POPESCULAVINIA XIIB 9.5 6 2 No

    Exemplulw: Toi elevii de la profilulINFORMATICA nu mai stau la cmin. S se fac modificareanbazadedate.

    ConinutultabelelorELEVIiCLASEesteurmtorul:

    ELEVI

    COD NUME CLS MEDABSN ABSM cam

    1ALBUANGELA IXA 9.5 0 2 Yes

    3BOGDANLAURA IXB 9.75 3 0 No

    2PANTELIMONIULIANAIXC 9 2 3 Yes

    8ASPRUANA XA 9 2 3 No

    4IOSIFDANIELA XB 8 5 5 No

  • 7/24/2019 SGDB

    54/64

    ELEVI

    COD NUME CLS MEDABSN ABSM cam

    10COLTEAVLAD XIA 9 0 0 No9VLADDAN XIB 7 1 3 Yes

    7VLASCARALUCA XIC 10 0 0 No

    5DICUION XIIA 9 0 0 Yes

    6POPESCULAVINIA XIIB 9.5 6 2 No

    CLASE

    CLS PROFIL DIRIGINTE

    IXA INFORMATICA POPAIXB INFORMATICA IONESCU

    IXC MATE GEORGESCU

    XA INFORMATICA BADEA

    XB INFORMATICA CALIN

    XC MATE TUFIS

    XIA INFORMATICA BALU

    XIB INFORMATICA DINA

    XIC MATE STANESCU

    XIIAINFORMATICA VOINEA

    XIIB INFORMATICA VADUVA

    XIIC MATE NITU

    SQL>UPDATECLASEINNERJOINELEVION[CLASE].[CLS]=[ELEVI].[CLS]SETCAM=NOWHERE([CLASE].[PROFIL]="INFORMATICA");

    Rezultatulexecuieicomenziiafecteaz coninutultabeleielevi:

    ELEVI

    COD NUME CLS MED ABSN ABSM cam

    1ALBUANGELA IXA 9.5 0 2 No

    3BOGDANLAURA IXB 9.75 3 0 No

    2PANTELIMONIULIANA IXC 9 2 3 Yes

    8ASPRUANA XA 9 2 3 No

    4IOSIFDANIELA XB 8 5 5 No

    10COLTEAVLAD XIA 9 0 0 No

    9VLADDAN XIB 7 1 3 No

    7VLASCARALUCA XIC 10 0 0 No

    5DICUION XIIA 9 0 0 No

  • 7/24/2019 SGDB

    55/64

  • 7/24/2019 SGDB

    56/64

    SQL>SELECTNUME,CLS,MEDFROMELEVIUNIONSELECTNUME,CLS,MEDFROMADMISI

    Rezultatulexecuieicomenzii:

    TOTAL_ELEVI_ADMISI

    NUME CLS MED

    ALBUANGELA IXA 9.5

    ASPRUANA XA 9

    ASPRUGABRIEL IXA 9

    BOGDANLAURA IXB 9.75

    COLTEAVLAD XIA 9

    DICUION XIIA 9

    DINAVLAD IXA 9

    DINCAELVIRA IXA 9.5EFTIMIEMARIA IXB 9.75

    IOSIFDANIELA XB 8

    MARINESCUION IXB 7.5

    PANTELIMONIULIANA IXC 9

    POPESCULAVINIA XIIB 9.5

    SANDUELENA IXC 9

    STANCAIOANA IXB 8

    VLADDAN XIB 7

    VLASCARALUCA XIC 10

    SUBINTEROGRIesteointerogarealeicreirezultatesunttransmisecaargumenteuneialteinterogri;suntelementedelegturntremaimulteinterogri;deregul ointerogarepoatefiinclusnclauzaWHEREfieSELECT.Exemplul ab: Fie tabelele ELEVI(cu elevii liceului)i ADMII (cu noii elevi reuii anul acesta la liceu).Fiecaretabel arecoloanamedia(deadmitere!)Aflaidac suntelevin coal careaudreptmediedeadmitereovaloaremaimic dectultimamediedeanulacesta.

    ELEVI

    COD NUME CLS MED ABSN ABSM cam

    1 ALBUANGELA IXA 9.5 0 2 Yes

    3 BOGDANLAURA IXB 9.75 3 0 No

    2 PANTELIMONIULIANA

    IXC 9 2 3 Yes

    8 ASPRUANA XA 9 2 3 No

    4 IOSIFDANIELA XB 8 5 5 No

    10 COLTEAVLAD XIA 9 0 0 No

    9 VLADDAN XIB 7 1 3 Yes

  • 7/24/2019 SGDB

    57/64

    ELEVI

    COD NUME CLS MED ABSN ABSM cam

    7 VLASCARALUCA XIC 10 0 0 No5 DICUION XIIA 9 0 0 Yes

    6 POPESCULAVINIA XIIB 9.5 6 2 No

    ADMISI

    COD NUME CLS MED ABSN ABSM cam

    8ASPRUGABRIEL

    IXA 9 0 0 No

    10DINAVLAD IXA 9 0 0 No

    1DINCAELVIRA

    IXA 9.5 0 0 Yes

    3EFTIMIEMARIA

    IXB 9.75 0 0 No

    4STANCAIOANA

    IXB 8 0 0 No

    9MARINESCUION

    IXB 7.5 0 0 Yes

    2SANDUELENA

    IXC 9 0 0 Yes

    SQL>SELECT[ELEVI].[NUME],[ELEVI].[MED]FROMELEVIWHERE(((ELEVI.MED)

  • 7/24/2019 SGDB

    58/64

    ELEVI

    COD NUME CLS MED ABSN ABSM cam

    9VLADDAN XIB 7 1 3 Yes7VLASCARALUCA XIC 10 0 0 No

    5DICUION XIIA 9 0 0 Yes

    6POPESCULAVINIA XIIB 9.5 6 2 No

    SQL>SELECTTOP5[ELEVI].[NUME],[ELEVI].[CLS],[ELEVI].[MED]FROMELEVIORDERBY[ELEVI].[MED]DESC;

    Rezultatulexecuieicomenzii:

    TOP5

    NUME CLS MED

    VLASCARALUCA XIC 10

    BOGDANLAURA IXB 9.75

    ALBUANGELA IXA 9.5

    POPESCULAVINIA XIIB 9.5

    PANTELIMONIULIANA IXC 9

    COLTEAVLAD XIA 9

    ASPRUANA XA 9

    DICUION XIIA 9

  • 7/24/2019 SGDB

    59/64

    Rapoartele reprezint modaliti de exploatare a bazelor de date,mai alesn cazuln care

    situaiileastfelobinutesuntsolicitate ipesuporthrtie.Pentrugenerareaunui raportseacceseaz

    tipuldeobiectReportisealegeapoiopiuneaNew(fig.12.6.1.).

    Fig.

    12.6.1.

    CrearearapoartelorcuReportWizard

    Dup alegerea opiunii Report Wizard (fig.12.6.2) urmeaz o succesiune de pai prin care

    utilizatorul indic particularitile raportului de creat cu privire la aspectul formal sau de coninut.

    Pentruexemplificare,s considermtabelulMater,acruistructur esteprezentnfig.12.6.3.

    Fig.12.6.2.

    Fig.12.6.3.

    Pornind de la tabela Mater vom parcurge n continuare paii necesari generrii unui raport

  • 7/24/2019 SGDB

    60/64

    simplu care sconin, sub forma unui tabel, toate nregistrrile tabelei.

    Fig. 12.6.4.

    La imaginea din fig. 12.6.4. ajungem prin click de mouse pe opiunea Report Wizard (fig.

    12.6.2.). Din lista ascuns Tables Queries alegem tabela mater i pe ecran vor aprea cmpuriledisponibile ale tabelei (caseta Avaible Fields). Putem selecta oricare dintre cmpurile care apar n caseti

    sle transferm n caseta Selected Fields. Pentru aceasta folosim butonul >. Dacdorim transferarea

    tuturor cmpurilor disponibile n zona de cmpuri selectate, avem la dispoziie butonul >>. Putem facei operaia de transfer n direcie invers, a unui cmp (butonul

  • 7/24/2019 SGDB

    61/64

    Fig. 12.6.6.

    Fig. 12.6.7.

    Dup alegerea tipului de raport i a tipului de orientare a paginii pe care se afieaz

    raportul se acceseazcu mouse-ul butonul Next sau se tasteazENTER. Din fereastra care apare

    astfel (fig. 12.6.7) se alege stilul de afiare a raportului.

    Fig. 12.6.8.

    Prin accesarea butonului Next sau apsarea tastei ENTER apare fereastra din fig. 12.6.8.Se poate introduce numele raportului. Pot fi de asemenea activate sau dezactivate butoanele radio

    care stabilesc dac se dorete vizualizarea raportului imediat dup crearea lui (Preview the

    raport), sau dacse dorete sse ofere utilizatorului posibilitatea de a modifica raportul (Modify

  • 7/24/2019 SGDB

    62/64

    the reports design). Utilizatorul are la dispoziie butoanele: Cancel (pentru anularea operaiunii

    de creare raport), Back (pentru revenirea n fereastra anterioar) sau Finish (pentru ncheierea

    operaiei de creare a raportului).

    Pentru exemplul considerat, dup activarea butonului Finish, se vizualizeaz pe ecranconinutul fizic al raportului creat (fig. 12.6.9.).

    Fig. 12.6.9.

    CrearearapoartelorcuAutoReport:Columnar

    Aceastmodalitate de creare a rapoartelor se alege atunci cnd dorim un raport simplu,prin afiarea coninutului tuturor nregistrrilor tabelei indicate, cmpurile aceleai nregistrri

    fiind afiate unele sub altele, pe coloan.

    Pentru a alege aceast opiune de creare a raportului, se selecteaz din fereastra NewRaport opiunea AutoReport: Columnar i se indic numele tabelei ce ofer datele ce vor fi

    cuprinse n raport. (fig. 12.6.10).

    Fig. 12.6.10.

  • 7/24/2019 SGDB

    63/64

    Fig. 12.6.11.

    Dupaccesarea butonului OK, pe ecran se va vizualiza raportul solicitat (fig. 12.6.11.).

    CrearearapoartelorcuAutoReport:Tabular

    Fig.

    12.6.12.

    ProcedmsimilarcuceleprezentatelamoduldecreareColumnar,iseobinsuccesivferestrele

    dinfigurile12.6.12.i12.6.13.

    Fig.12.6.13.

    Dupcrearea oricruia dintre tipurile de rapoarte permise de ctre ACCESS, utilizatorulare posibilitatea modificrii acestuia, pnla aducerea la forma dorit. Acest lucru l putem face

  • 7/24/2019 SGDB

    64/64

    apelnd la butonul Design.

    Deschiderea unui raport creat se poate face prin accesarea butonului Preview. Astfel,

    raportul realizat pe exemplul anterior i prezent n fig. 12.6.13. poate fi adus la forma prezentn

    figura 12.6.14.

    Fig. 8.6.14.