Testarea Aplicatiilor
Cuprins
Introducere 2
Crearea unei baze de date 3
Proiectarea bazei de date 3
Crearea tabelelor 4
Crearea relatiilor 6
Importarea datelor 8
Exportarea datelor 9
Extragerea datelor 10
Formulare 10
Subformulare 13
Interogari 15
Rapoarte 26
Etapele de realizare a aplicației…………………………………………….28
Proiectarea, dezvoltarea și testarea aplicatiei 39
Bibliografie 48
Introducere
Lucrarea de fata isi propune sa trateze realizarea și testarea unei baze de date create cu ajutorul utilitarului Microsoft Access, pus la dispozitie de suita Microsoft Office. Microsoft Access este produsul pentru baze de date relationale, potrivit atat pentru proiectele de mai mica anvergura cu un singur utilizator, cat si pentru bazele de date distribuite cu mai multi utilizatori.
Lucrarea este impartita in trei sectiuni.
Prima sectiune contine prezentarea posibilitatilor oferite de Microsoft Access pentru manipularea datelor in conformitate cu cerintele utilizatorilor. In aceasta parte este prezentat modul in care se proiecteaza o baza de date, crearea tabelelor si relatiilor dintre acestea, precum si doua facilitati importante pe care Microsoft Access le ofera utilizatorilor sai, si anume importarea si exportarea datelor. Utilitarul poate importa date din fisiere de text, din foi de calcul sau alte fisiere de baze de date, datele importate devenind parte componenta a fisierului MDB. Exportarea permite altor programe sa foloseasca datele dintr-un tabel sau dintr-o interogare Microsoft Access. Microsoft Access poate scrie direct in anumite formate de fisiere, cum ar fi: dBase, Paradox, Lotus 1-2-3, Excel si Word.
A doua sectiune debuteaza cu prezentarea obiectelor care mai pot fi create in Microsoft Access, si anume: formulare, subformulare, interogari si rapoarte.
Ultima sectiune este dedicata prezentarii și testării aplicatiei. Aplicatia isi propune crearea unei baze de date eficiente pentru gestiunea activitatilor unui spital. Ea este realizata in Microsoft Access si poate fi lansata in executie de pe orice calculator ce are instalat acest program si nu necesita dotari suplimentare ale calculatorului.
Crearea unei baze de date
Microsoft Access ofera posibilitatea de manipulare a datelor in conformitate cu cerintele utilizatorilor. O baza de date permite localizarea rapida a unui element din aceasta, compararea statisticilor pe diverse perioade de timp, interogarea anumitor categorii din datele bazei de date si obtinerea cu usurinta a rezumatelor tiparite.
Daca se creeaza o baza de date prea mare pentru o retea de calculatoare personale, Access asigura interfata cu sistemele de operare, cu servere care ruleaza programe Oracle sau SQL Server.
Microsoft Access are o structură de bază de date capabilă să combine într-un singur fișier de tip .mdb toate obiectele cu care lucrează: tabelele, interogările, formularele, rapoartele, comenzile macro și codul Visual Basic.
La deschiderea fisierului, obiectele care formeaza baza de date sunt afisate in fereastra Database.
Proiectarea unei baze de date
Proiectarea reprezinta procesul de transformare a cerintelor de date din lumea reala intr-o structura de baza de date care consta in relatiile dintre tabele si campuri.
Proiectarea este utila pentru a scapa de urmatoarele probleme:
daca se schimba numele unui camp, va trebui sa se modifice toate interogarile, formuralele, rapoartele, comenzile macro si modulele care folosesc numele campului respectiv;
daca se schimba tipul unui camp va fi nevoie sa se modifice si formatul de reprezentare a datelor in interogari, formulare si rapoarte, precum si declaratiile de variabile din cadrul modulelor;
modificarea dimensiunii unui camp poate duce la invalidarea relatiilor cu tabelele asociative sau la situatii in care spatiul de ecran alocat in formulare si rapoarte este necorespunzator;
modificarea relatiilor poate determina efecte neasteptate asupra interogarilor.
Crearea tabelelor
Tabelele reprezinta obiectele din cadrul bazei de date care stocheaza datele. Un tabel este constituit din campuri, care sunt coloane carora li se atribuie cate un nume, fiecare avand un tip de date si o dimensiune bine precizata. Aceasta abordare structurata a datelor asigura bazelor de date puterea si viteza de care au nevoie.
Un tabel poate fi creat cu ajutorul procedurii de asistenta (fereastra Database se alege butonul New->Table Wizard ) sau direct (fereastra Database se alege butonul New->Design View)
Tipurile de date indica setul de valori permise a fi introduse in campul respectiv si, implicit, spatiul de memorie necesar si setul de operatii suportate. Microsoft Access are incorporate urmatoarele tipuri de date:
Text-caractere alfanumerice, pana la 255 bytes.
Memo- caractere alfanumerice, pana la 64000 bytes Number- include mai multe tipuri care difera prin modul de stocare si viteza de raspuns: tipul byte, tipul integer, tipul long integer, tipul single si tipul double.
Date/Time- date calendaristice si momente de timp.
Currency(valuta)- numere reale rotunjite cu precizie de 15 cifre la partea intreaga si 4 la partea zecimala.
AutoNumber- numere intregi pozitive, inserare secvential si automat de catre Access pentru fiecare inregistrare nou introdusa in tabel.
Yes/No-valori logice afisate dupa preferinta in forma Yes/No, True/False, On/Off.
Obiect OLE- pastreaza datele provenite de la alte programe, permite bazei de date sa stocheze documente create de programe de prelucrare a textelor, seturi de foi de calcul, ilustratii, sunete si video clipuri.
Hyperlink-text sau combinatii de texte si numere memorate ca text si folosite ca adresa hyperlink.
Lookup Wizard- o procedura de asistenta care creaza un tip de date astfel: utilizatorul poate sa aleaga o valoare dintr-un alt tabel sau dintr-o lista de valori utilizand o zona de listare sau o zona derulanta.
Proprietatile campurilor:
Field Size limiteaza numarul de caractere/cifre care se pot memora intr-un camp de Text sau Number.
Format indica un anumit format pentru afisarea informatiei.
Input Mask masca de intrare care controleaza modul in care sunt introduse datele in cadrul campului.
Caption ofera o eticheta care sa inlocuiasca numele campului in formulare sau rapoarte.
Default Value specifica o valoare implicita pentru campul respectiv, care va fi introdusa automat atunci cand punctul de insertie se afla in camp dar care poate fi inlocuita cu o alta valoare, daca este cazul.
Validation Rule indica un criteriu pe care trebuie sa-l respecte datele introduse in camp pentru a fi acceptate (o formula introdusa direct sau cu ajutorul procedurii de asistenta Expression Builder ).
Validation Text ofera o explicatie pentru regula de validare, explicatie care apare intr-o caseta dialog atunci cand regula nu este respectata.
Required indica obligativitatea introducerii informatiei in campul respectiv.
Allow Zero Length permite folosirea sirurilor de lungime zero.
Indexed seteaza un index suplimentar pe baza campului respectiv.
Lookup defineste tipul de control care va reprezenta campul respectiv in modul de afisare Datasheet si in formulare.
Crearea relatiilor
Relatiile se formeaza prin precizarea unei legaturi intre un camp (sau o combinatie de campuri) dintr-un tabel si campurile corespunzatoare din alt tabel.
Tipuri de relatii:
Relatii unu la unu in care unei inregistrari dintr-un tabel ii corespunde o singura inregistrare din cel de-al doilea table.
Relatii unu la multi in care unei inregistrari dintr-un tabel ii corespund mai multe inregistrari din cel de-al doilea tabel, dar unei inregistrari din al doilea tabel nu-i poate corespunde decat o singura inregistrare din primul table.
Relatii multi la multi in care unei inregistrari dintr-un tabel ii corespund mai multe inregistrari din cel de-al doilea tabel si unei inregistrari din al doilea tabel ii pot corespunde mai multe inregistrari din primul tabel; acest tip de relatie se stabileste prin construirea unui tabel de asociere, a carui cheie primara este formata din cheile primare ale celor doua tabele.
Setarea relatiilor
In meniul Tools se alege optiunea Relationships, apoi se adauga tabelele prin intermediul ferestrei Show Tables. Dupa ce au fost adaugate tabelele se poate crea o relatie prin selectarea unui camp din tabelul primar si tragerea acestuia peste campul corespunzator din tabelul asociat si se deschide o fereastra in care sunt configurate detaliile relatiei, sunt aratate ambele tabele si campurile implicate in relatie.
Integritatea relatiei (Referential Integrity) este un sitem de reguli pe care Microsoft Access le utilizeaza pentru a asigura consistenta relatiilor dintre inregistrarile tabelelor corelate si pentru a preveni modificarea sau stergerea accidentala, eronata a datelor. Astfel, daca integritatea relatiei dintre tabele a fost validata atunci: nu poate fi introdusa o valoare in campul de cheie secundara daca ea nu a fost mai intai introdusa in campul de cheie primara corelat sau se poate introduce o inregistrare in tabelul secundar punand in campul de cheie secundara valoarea null, nu se poate sterge o inregistrare din tabelul principal daca ea este corelata cu inregistrari din tabelele secundare si nu se poate modifica o valoare din campul de cheie primara din tabelul principal daca aceea inregistrare este corelata cu inregistrari din tabelele secundare.
Pentru a stabili o relatie intre doua tabele si apoi pentru a putea valida integritatea acesteia trebuie indeplinite urmatoarele conditii: campul de legatura din tabelul principal sa fie un camp de cheie primara sau sa contina un index cu valori unice, campurile care realizeaza corelatia sa fie de acelasi tip si ambele tabele sa apartina aceleasi baze de date.
Daca utilizatorul doreste ca aceste reguli de integritate a relatiei dintre tabele sa fie respectate, atunci in fereastra Relationships trebuie selectata caseta de optiune Enforce Referential Integrity (Impune integritatea referentiala) care contine optiunile Cascade Update Related Fields (modificarea valorii unei chei primare in tabelul principal duce automat la schimbarea acelei valori oriunde apare in campul de cheie secundara din tabelele secundare) si Cascade Delete Related Fields (stergerea unei inregistrari din tabelul principal antreneaza automat stergerea tuturor inregistrarilor corelate din tabelele secundare).
Tipuri de asocieri
Microsoft Access permite stabilirea a trei tipuri de asocieri intre inregistrarile din tabelele corelate si se pot seta astfel: se actioneaza butonul Join Type din fereastra Relationships si se alege unul din cele trei tipuri de asocieri care sunt prezentate in continuare:
Asocieri interne(Inner Join) prin care o interogare bazata pe doua tabele va intoarce doar acele inregistrari care corespund in ambele tabele; este implicit selectata prin optiunea Only include rows where the joined fields from both tables are equal.
Asocieri externe(Outer Join) prin care se precizeaza ca o interogare trebuie sa selecteze toate inregistrarile dintr-un tabel impreuna cu datele care corespund din celalalt table.
Asociere intrinseca(Self Join) prin care o interogare bazata pe un singur tabel permite o cautare recursiva in acesta.
Importarea datelor
Microsoft Access poate manipula datele externe in doua moduri diferite. Primul consta in importarea datelor, acestea devenind un tabel (sau mai multe tabele asociate) in cadrul fisierului MDB. Cealalta posibilitate consta in crearea unei legaturi la sursa de date externa. Datele raman in fisierele lor originale, iar orice modificare realizata in Microsoft Access va fi “vazuta” si de programul original.
Prin importare se realizeaza o copie a informatiei intr-un tabel Microsoft Access nou creat in BD Microsoft Access destinatie fara a modifica in nici un fel tabelul sau fisierul sursa. Operatia de importare a informatiei este recomandata atunci cand datele respective vor fi prelucrate numai cu aplicatia Microsoft Access, deoarece Microsoft Access lucreaza mai repede cu pr
Prin importare se realizeaza o copie a informatiei intr-un tabel Microsoft Access nou creat in BD Microsoft Access destinatie fara a modifica in nici un fel tabelul sau fisierul sursa. Operatia de importare a informatiei este recomandata atunci cand datele respective vor fi prelucrate numai cu aplicatia Microsoft Access, deoarece Microsoft Access lucreaza mai repede cu propriile sale tabele si le poate modifica dupa caz.
Prin legare, datele raman in BD/fisierul sursa in formatul care le-a fost atribuit de aplicatia respectiva dar sunt vizualizate de catre Microsoft Access. BD/Fisierul sursa poate fi folosit in continuare de catre aplicatia care l-a creat dar el poate fi actualizat si de aceasta si de Microsoft Access. Operatia de legare a informatiei este recomandata fie atunci cand datele sunt susceptibile de a fi prelucrate atat de Microsoft Access cat si de catre aplicatia care a creat BD/fisierul sursa, fie atunci cand BD este prelucrata la retea si, in principiu, tabelele sunt depuse intr-o BD pe serverul de retea iar formularele, rapoartele si celelalte obiecte Microsoft Access sunt depuse in BD separate pe calculatoarele legate in retea.
Pentru a realiza operatie de importare se selecteaza eticheta Table din fereastra Database, dupa care se alege New. Apoi se preia din meniul File optiunea Get External Data (preia datele externe) si se selecteaza Import.
Exportarea datelor
Datele continute in tabele si interogari pot fi exportate catre alte BD Access (ceea ce revine la copierea obiectelor intre diferite BD) sau catre fisiere create cu alte aplicatii. Tabelele, interogarile, formularele si rapoartele pot fi exportate catre fisiere HTML. Cu exceptia rapoartelor, acestea pot fi exportate si catre fisiere IDC/HTX care pot fi apoi folosie in paginile Web. Se pot atasa datele dintr-un tabel, formular, raport, modul VBA sau dintr-o interogare unui mesaj e-mail daca se utilizeaza Microsoft Exchange, Microsoft Mail sau orice alta aplicatie de posta electronica compatibila cu Messaging Application Programming Interface (MAPI).
Exportarea datelor catre o baza de date se realizeaza astfel: se afiseaza BD sursa in fereastra aplicatiei, se selecteaza obiectul care trebuie exportat, din meniul File se alege optiunea Save As/Export si se afiseaza fereastra de dialog Save As, se selecteaza butonul de optiune To An External File Or Database si se va afisa o noua fereastra de dialog de tip Save As de unde se aleg directorul si BD catre care se exporta obiectul, iar din lista derulanta Save As Type se selecteaza aplicatia cu care a fost creata BD destinatie.
Daca se exporta un tabel se pot exporta fie numai structura tabelului fie atat structura cat si datele.
Operatia de export nu poate copia decat un singur obiect odata; daca trebuie copiate mai multe obiecte de acelasi tip este preferabil sa se faca o operatie de import.
Extragerea datelor
Formulare
Formularele (Forms) reprezinta ferestrele primare folosite pentru introducerea si afisarea datelor in Microsoft Access.
Un formular poate fi afisat in trei moduri diferite:
Modul Design (Proiectare) este utilizat pentru a schimba prezentarea si proprietatile unui formular, sau pentru a modifica controalele dintr-un formular.
Modul Datasheet (Foaie de date).
Modul Form (Formular) reprezinta modul de afisare normal al unui formular in curs de utilizare; in functie de felul in care a fost proiectat formularul, acest mod de afisare poate afisa o singura inregistrare (modul Single Form) sau mai multe inregistrari deodata (modul Continuous Form);
Formularele permit prezentarea datelor intr-o forma care il scuteste pe utilizator de preocuparile legate de modul de stocare a acestora. Un formular de baza de date permite tragerea inregistrarilor (cu mouse-ul) din mai multe tabele asociate, filtrarea inregistrarilor care indeplinesc anumite criterii de selectie si ordonarea lor in functie de dorinta utilizatorului
Formularul poate contine butoane de comanda si campuri calculate ceea ce nu este valabil pentru o foaie de date.
Crearea unui formular se face prin alegerea etichetei Form din fereastra Database si se executa clic pe New. Microsoft Access raspunde oferind serviciile mai multor programe wizard pentru formulare (Form Wizards), dupa cum urmeaza:
Design View (modul proiectare) permite crearea tuturor elementelor formularului manual.
Form Wizard ofera posibilitatea de a controla fiecare etapa a procesului de creare a formularului.
AutoForm:Columnar (Configurarea automata a formularului: asezare in coloana) creeaza un formular cu controalele aliniate unul sub celalalt (configuratie corespunzatoare pentru un formular principal).
AutoForm:Tabular (Configurarea automata a formularului: asezare tabelara ) creeaza un formular cu controalele aliniate unul langa celalalt (configuratie corespunzatoare pentru un subformular).
AutoForm:Datasheet (Configurarea automata a formularului: modul Datasheet) creeaza un formular avand modul de afisare prestabilit Datasheet (configuratie corespunzatoare pentru afisarea numarului maxim posibil de inregistrari deodata).
Chart Wnzard (program pentru reprezentari grafice) creeaza un grafic.
PivotTable Wizard (program pentu tabele pivot) creeaza un formular pentru afisarea datelor din Excel 7.0.
Dedesubtul listei programelor wizard se afla o caseta cu lista derulanta in care trebuie sa se selecteze tabelul sau interogarea care va servi ca sursa de date pentru formular.
Fiecare obiect dintr-un formular este denumit element de control (control). Pentru a adauga un control nou unui formular se executa clic pe pictograma ToolBox (caseta cu instrumente), dupa care se alege tipul de element dorit. Pentru a crea un control nelegat este suficient sa se execute clic pe formular. Pentru a crea un control care este legat de un camp din tabelul asociat este nevoie de fereastra Field List (lista de campuri). Aceasta fereastra se activeaza prin clic pe pictograma Field List, apoi se trage pe formular tipul de control dorit din caseta de instrumente si campul din fereastra Field List.
Pe langa sectiunea Detail un formular mai are si sectiunile: Form Header (antet formular ), Form Footer (subsol formular), Page Header (antet pagina) si Page Footer (subsol pagina). Sectiunea Form Header este folosita pentru a afisa un titlu sau un control care nu face parte din inregistrarea curenta, cum ar fi o lista combinata utilizata pentru filtrare sau pentru parcurgerea inregistrarilor. Sectiunea Form Footer este folosita pentru a afisa rezultate, cum ar fi totalurile coloanelor dintr-un formular tabelar.
Formularele care cuprind un numar mare de controale pot fi impartite in doua sau mai multe pagini pentru a fi afisate pe rand folosind elementul Page Break (delimitator de pagina).
Fiecare sectiune are proprietatile sale caracteristice.
Proprietatile formularului
Pentru a afisa proprietatile unui formular se executa clic pe butonul Properties si sunt afisate proprietatile obiectului curent. Din punct de vedere al datelor, cea mai importanta proprietate a formularului este RecordSource (sursa inregistrarii) care este stabilita prin numele tabelului sau interogarii care furnizeaza date formularului. Daca RecordSource este necompletata, formularul nu are un set de inregistrari suport. In cazul in care este schimbata proprietatea RecordSource formularul va citi si va scrie date intr-un alt tabel.
Proprietatile Data controleaza tipul operatiilor cu date care sunt permise in cadrul formularului. Fiecareia dintre proprietatile urmatoare i se poate atribui valoarea Yes sau No:
AllowEdits (permite editarea):daca este No utilizatorii pot vedea, dar nu pot modifica inregistrarile existente.
AllowDeletions (permite stergerile):daca este No, inregistrarile nu pot fi sterse.
AllowAdditions (permite adaugarile):daca este No nu pot fi adaugate inregistrari noi.
DataEntry (introducere de date):daca este Yes formularul poate fi folosit numai pentru introducerea unor inregistrari noi. Inregistrarile existente nu vor fi prezentate, iar numaratorul de inregistrari indica numai numarul de inregistrari adaugate de la deschiderea formularului.
Proprietatile Format controleaza aspectul formularului. Printre ele sunt incluse:
Caption (titlu): se introduce textul care va fi afisat pe bara de titlu a formularului.
DefaultView (mod de afisare prestabilit):stabileste daca formularul va fi afisat in modul Single Form (cel mai uzual), Continuous Form (ex: proiect tabelar) sau Datasheet.
ViewAllowed (moduri de afisare permise): stabileste daca utilizatorul poate trece de la modul Form la modul Datasheet.
ScrollBars (bare de derulare):stabileste daca formularul are bare de derulare orizontale si/sau verticale.
RecordSelectors (elemente de selectare a inregistrarilor):daca este Yes un element de selectare a inregistrarii va fi afisat pe toata inaltimea sectiunii Detail.
NavigationButtons (butoane de navigatie):daca este No butoanele de navigatie vor lipsi de la capatul din stanga al barei de derulare orizontale.
RecordDividers (linii de separare a inregistrarilor):daca este Yes o linie va fi afisata intre inregistrari in cadrul unui formular in modul Continuous.
AutoResize (redimensionare automata):daca este Yes, fereastra formularului va fi dimensionata corespunzator la fiecare deschidere a acestuia.
AutoCenter (centrare automata):daca este Yes, formularul este centrat pe ecran la deschidere.
ControlBox (caseta de control):daca este Yes, caseta de control va fi inclusa in partea stanga a barei de titlu.
MaxMinButtons (butoanele de maximizare si minimixare).
CloseButton (butonul inchide):daca este No, butonul de inchidere al formularului este dezactivat.
Eticheta Other Options (alte proprietati) cuprinde urmatoarele proprietati mai importante:
PopUp (aparitie la suprafata):daca este Yes, formularul se va deplasa deasupra altor formulare putand fi mutat chiar in afara ferestrei Access.
Modal:daca este Yes, alte formulare sunt dezactivate pana cand acesta este inchis.
Subformulare
Un formular Microsoft Access complet poate fi afisat in cadrul altui formular. Aceasta facilitate este ideala pentru afisarea datelor asociate din doua tabele. Daca intre doua tabele exista o relatie de la unu la mai multi, formularul principal afiseaza o inregistrare din tabelul primar in modul Single Form, iar subformularul afiseaza mai multe inregistrari din tabelul asociat in modul Continuous sau Datasheet. Atunci cand utilizatorul trece la o alta inregistrare din formularul principal, Microsoft Access actualizeaza automat subformularul cu inregistrarile asociate corespunzator. Se pot adauga inregistrari noi tabelului primar in formularul principal sau tabelului asociat in subformular.
Suformularul reprezinta o metoda esentiala pentru a vedea cum lucreaza relatiile intre tabele.
Pentru a crea un subformular se poate folosi una dintre metodele care sunt prezentate in continuare, si anume:
se construieste formularul pe o interogare care implica doua sau mai multe tabele. Form Wizard poate crea un formular si un subformular pentru a reprezenta aceste date;
se creaza un formular principal si se executa clic pe pictograma Subform/ Subreport din caseta de instrumente. Programul wizard poate sa creeze un subformular nou sau sa foloseasca un formular existent ca subformular;
se creaza un formular principal si un subformular si se salveaza. In continuare, se deschide formularul principal in modul de afisare Design si se trage numele subformularului din fereastra Database in cadrul formularului principal.
Proprietatile subformularului
Proprietatea LinkMasterFields (leaga campurile formularului principal) asteapta numele campului din formularul principal.
Proprietatea LinkChildFields (leaga campurile subformularului) asteapta numele campului corespunzator din subformular.
In majoritatea situatiilor.aceste date sunt introduse automat de utilizator atunci cand este tras subformularul in formularul principal. Daca se defineste o relatie intre cele doua tabele, Microsoft Access va folosi campurile implicate in relatie, iar in caz contrar va cauta denumiri de camp care se potrivesc si le va utiliza daca tipurile de date sunt compatibile sau se vor completa campurile de catre utilizator in fereastra Properties pentru proprietatile LinkMasterFields si LinkChildFields.
Proprietatea SourceObject (obiect sursa) stabileste care formular va fi prezentat in interiorul unui element de subformular. Daca aceasta proprietate este modificata controlul din subformular va contine alt formular.
Subformulare imbricate
Un suformular poate contine un subformular suplimentar pentru a afisa trei tabele legate prin intermediul unei relati de la unu la mai multi. Daca formularul principal afiseaza informatii despre un client, primul subformular ar putea contine o factura , in timp ce subformularul imbricat ar cuprinde detaliile facturii (adica, o inregistrare pentu fiecare element de pe factura). Doar subformularul imbricate (de la nivelul cel mai profund) poate fi in modul Continuous sau Datasheet. Microsoft Access pemite doar trei niveluri de imbricare.
Interogari
Interogarea (query) este o comanda care indica aplicatiei Microsoft Access ce tip de informatie trebuie extrasa dintr-un tabel sau din mai multe tabele (interogarea de selectie). O interogare permite de asemenea efectuarea unor calcule asupra datelor din tabele (interogarile Total si interogarile cu campuri calculate), executarea unor modificari atat la nivelul structurii tabelelor (interogarile SQL) cat si la nivelul informatiei continute (interogarile actiune).
Clasificarea interogarilor:
interogari simple pentru filtrarea datelor sau pentru efectuarea calculelor (interogari de selectie, interogari de calcul, interogari de calcul Totals);
interogari parametizate
interogari de tip tabel intersectat (Crosstab);
interogari-actiune (Update, MakeTable, Append, Delete);
interogari de cautare-completare (AutoLookup Query);
interogari SQL.
Interogarile pot fi afisate in trei moduri:
Design View-afiseaza grila QBE si permite crearea interogarii direct in aceasta grila.
SQL View-afiseaza o fereastra pentru introducerea/modificarea codului SQL al interogarii.
Datasheet View-afiseaza rezultatul executarii interogarii intr-un format de tip tabel de date sau foaie de date.
Interogarile simple
Pentru a crea o interogare simpla se selecteaza eticheta Query din fereastra Database si se executa clic pe New. Se deschide fereastra dialog New Query, se alege optiunea Design View (proiectarea interogarii), va aparea fereastra Show Tables (prezinta tabelele) de unde se poate alege tabelul sau tabele, interogarea sau interogarile pe care se bazeaza interogarea care este creata. Pentru a adauga inregistrarile interogarii se executa dublu-clic pe denumirile tabelelor care contin acele inregistrari. In continuare, campurile implicate in interogare sunt adaugate grilei QBE. Pentru a adauga un camp dintr-un tabel se executa dublu clic pe el sau se selecteaza din lista derulanta din randul Field.
Semnul asterisc poate fi folosit, ca un caracter de inlocuire pentru a trimite catre grila toate campurile tabelului respectiv.
Cand se lucreaza cu mai multe tabele, fereastra Query Design afiseaza linii de legatura intre campurile care au definit relatiile dintre tabele. Asocierile (joins) corespunzatoare definesc modul in care interogarea selecteaza inregistrarile. Modificarea asocierii afecteaza numai modul in care aceasta interogare isi selecteaza inregistrarile, neavand nici un efect asupra relatiilor propriu-zise.
Sub randul Field, grila interogarii contine un rand Sort in care se poate selecta tipul de sortare dorit Ascending (ascendent) sau Descending (descendent). Daca se cere realizarea sortarii pe mai multe campuri, Microsoft Access va sorta secvential de la stanga la dreapta.
Caseta de validare din cadrul randului Show precizeaza fie includerea campului ca o coloana in cadrul informatiilor de iesire ale interogarii, fie utilizarea acestuia numai pentru criterii de selectie.
O interogare de selectie se creeaza la fel ca si o interogare simpla la care in celulele Criteria ale campurilor care constituie chei de selectie se introduc criteriile de selectie care vor duce la realizarea selectiei dorite de catre utilizator. Daca se introduc mai multe valori in acelasi rand de criterii sub campuri diferite, Microsoft Access va extrage numai inregistrarile care indeplinesc toate criteriile mentionate. In cazul in care criteriile sunt introduse pe randuri diferite, o inregistrare va fi inclusa daca indeplineste oricare dintre criterii.
In expresiile de selectare se pot folosi si operatori de comparare, cum ar fi : >, <, >=, <=, = (corespondenta exacta), like (compararea cu un nume generic scris cu caractere de inlocuire), between, <> (diferit), not. Daca este inclus un caracter de inlocuire intr-un criteriu, Microsoft Access va adauga automat operatorul like. Operatorul is este adaugat automat la referirile care implica valoarea null. Delimitatorul # este adaugat automat datelor calendaristice, iar de o parte si de alta a unui text sunt adaugate ghilimele.
O interogare de calcul se creaza asemanator cu o interogare simpla la care se adauga unul sau mai multe campuri calculate. Pentru a crea un camp calculat se selecteaza o coloana noua in grila QBE si se introduce numele campului urmat de doua puncte (:) si formula de calcul. Referirile la alte nume de campuri trebuie sa fie incluse intre paranteze drepte. Campurile calculate pot fi create atat pentru text cat si pentru numere. In cadrul campurilor calculate se poate folosi toata gama de functii oferita de Microsoft Access plus functiile definite de utilizator . Campurile calculate pot fi sortate sau utilizate la alegerea criteriilor.
Interogarile de calcul Totals se bazeaza pe utilizarea functiilor predefinite din linia Total a grilei QBE. Aceste functii pot fi aplicate unuia sau mai multor campuri din interogare, tuturor inregistrarilor intoarse de aceasta sau numai unui subset al lor. Linia Total se adauga intr-o interogare din meniul View optiunea Totals.
In continuare sunt prezentate functiile si clauzele predefinite din categoria Total:
clauza Group By permite gruparea inregistrarilor in vederea efectuarii calculelor;
clauza Expression creaza un camp calculat care include in expresia sa o functie calculate;
clauza Where specifica un criteriu de selectie pentru un camp care nu va fi folosit pentru gruparea inregistrarilor; daca se seteaza celula Total a unui camp pe aceasta clauza, Microsoft Access deselecteaza automat caseta Show si nu mai afiseaza campul in rezultatul interogarii;
functia Sum realizeaza suma valorilor din campul respectiv, pentru toate inregistrarile sau pentru fiecare grup de inregistrari;
functia Count realizeaza numararea de valori dintr-un camp cu exceptia inregistrarilor pentru care campul este vid;
functia Avg caculeaza valoarea medie a datelor din campul respective;
functiile Min si Max examineaza toate datele din campul respectiv si intorc valoarea cea mai mica, respectiv cea mai mare.
Pentru a fi create in modul SQL interogarile simple utilizeaza instructiunea select, care are urmatoarea sintaxa:
SELECT [predicat] lista_campuri FROM lista_de_tabele
[WHERE…]
[GROUP_BY…]
[HAVING…]
[ORDER_BY…]
[WITH_OWNERACCESS_OPTION];
unde:
predicat-poate contine clauzele ALL, DISTINCT, DISTINCTROW sau TOP; aceste valori sunt introduse atunci cand sunt schimbate proprietatile interogarii:proprietatea UniqueValues pentru DISTINCT, UniqueRecords pentru DISTINCTROW si TopValues pentru TOP
lista_de_campuri-este creata pe masura ce campurile sunt trase in grila QBE; numele de campuri sunt separate prin virgula
FROM lista_de_tabele-este stabilita atunci cand sunt adaugate tabele (sau interogari) in grila QBE; pentru a separa numele tabelelor se foloseste virgula
Clauza WHERE este stabilita atunci cand se introduc criteriile
Clauzele GROUP_BY si HAVING sunt generate pentru interogarile Totals
ORDER BY-este stabilita atunci cand se introduc date in randul Sort
WITH_OWNERACCESS_OPTION-este adaugata daca este schimbata proprietatea Permissions de la User’s la Owner’s in fereastra Properties a interogarii.
Interogarea parametrizata
Interogarea parametrizata este o interogare a carei executie consta in afisarea unei casete dialog predefinite in care utilizatorul poate introduce criteriul de selectie sau valoarea care trebuie sa apara intr-un camp.
O interogare parametrizata se creaza astfel: se creaza o interogare simpla pentru tabelul respectiv, pe randul Criteria al campului respectiv se introduce mesajul explicativ incadrat intre paranteze drepte si apoi se executa interogarea.
Interogarea de tip tabel intersectat (Crosstab Query)
O interogare de tip tabel intersectat sintetizeaza datele in mod cu totul diferit fata de o interogare simpla (de selectie) afiseaza rezultatul sub forma unei foi de date, iar datele campului respectiv sunt grupate dupa doua criterii simultan.
O interogare Crosstab procedeaza astfel: efectueaza calculul dorit (sumare, numarare, valoare medie, etc.) asupra datelor campului corespunzator din tabelul de baza, apoi identifica cele doua campuri ale caror valori distincte la nivelul fiecarui camp vor deveni valorile celor doua criterii (valorile distincte ale primului camp devin antete de coloana, valorile distincte ale celui de-al doilea camp devin etichete de linii) si afiseza la intersectia liniei i cu coloana j rezultatul care verifica valoarea din eticheta i si valoarea din antetul coloanei j.
O interogare tabel intersectat are nevoie de cel putin trei campuri: unul care sa furnizeze valorile pentru titlurile de coloana, unul penru valorile corespunzatoare titlurilor de rand si inca unul pentru calcularea valorilor de afisat la punctele de intersectie.
O interogare Crosstab se creaza la fel ca o interogare simpla la care se mai adauga urmatorii pasi:
din meniul Query se alege optiunea Crosstab Query;
se indica un camp sau mai multe campuri drept camp eticheta, prin deschiderea celulei Crosstab din grila QBE a campului respectiv si se alege valoarea Row Heading (pentru aceste campuri trebuie lasata in celula Total valoarea Group By);
analog se indica si unicul camp antet prin alegerea valorii Column Heading in celula Crosstab a acestuia (si pentru acest camp trebuie lasata in celula Total a campului valoarea Group By);
se alege campul principal pin setarea celulei sale Crosstab pe valoarea Value si se indica functia predefinita de aplicat pentru acest camp din celula Total;
se introduc criterii de selectie pentru a elimina inregistrarile necorespunzatoare si apoi se executa interogarea.
Interogarea Crosstab poate fi creata si in modul SQL cu ajutotul instructiunii transform, avand urmatoarea sintaxa:
TRANSFORM functie_predefinita SELECT_clauze
PIVOT camp_pivot [ IN (lista_de_valori) ]
unde:
functie_predefinita-este functia din randul Total pentru campul respectiv (campul care are o valoare in randul Crosstab)
SELECT_clauze-este o instructiune standard de interogare select
camp_pivot-este tocmai campul selectat ca furnizor de titluri de coloana
lista_de_valori-este o lista optionala de valori literale de utilizat ca titluri de coloana
Interogarile actiune
O interogare actiune este o interogare care modifica mai multe inregistrari printr-o singura operatie (nu determina afisarea unor informatii pe ecran ci numai modificarea datelor depuse in tabelele Microsoft Access).
Exista patru tipuri de interogari actiune:
interogarea Update (actualizare)-modifica valorile din campul specificat intr-un tabel sau in mai multe tabele;
interogarea MakeTable (creare tabel)-creaza un tabel nou cu ajutorul unei parti sau a tuturor inregistrarilor dintr-un tabel sau din mai multe tabele;
interogarea Append (adaugare)-adauga un grup de inregistrari aflate intr-un tabel sau in mai multe tabele la baza unui tabel sau a mai multor tabele;
interogarea Delete (stergere)-sterge un grup de inregistrari dintr-un tabel sau din mai multe tabele simultan.
O interogare de actiune se creaza asemanator cu o interogare simpla la care se adauga din meniul Query optiunea specifica pentru fiecare tip de interogare actiune si anume: Update Query, MakeTable Query, Append Query sau Delete Query.
Pentru a fi creata in modul SQL o interogare actiune se foloseste una dintre urmatoarele instructiuni SQL, in functie de tipul ei, dupa cum urmeaza.
Interogarea Update
UPDATE expresie_tabel
SET lista_de_valori
WHERE criterii_de_selectie;
unde:
expresie_tabel- este o expresie care identifica unul sau mai multe tabele ale caror date vor fi actualizare; expresia poate fi un nume unic de tabel, numele unei interogari deja create sau o combinatie obtinuta prin oricare dintre cele trei tipuri de asociere: inner join, left join sau right join
lista_de_valori- o expresie formata din numele campurilor de actualizat si valorile de actualizare asociate fiecaruia (constante sau expresii)
criterii_de_selectie- o expresie pe care trebuie s-o satisfaca o inregistrare pentru fi actualizata
Interogarea MakeTable
SELECT camp1[,camp2[,…]] INTO table_nou
FROM expresie_tabel
unde:
camp1,camp2,…- numele campurilor care trebuie copiate in noul tabel
tabel_nou- numele noului tabel care trebuie creat
expresie_tabel- o expresie care identifica unul sau mai multe tabele din care provin datele pentru crearea noului tabel
Interogarea Append
INSERT INTO tabel_destinatie [(camp1[,camp2[,…]])]
SELECT [tabel_sursa.]camp1[,camp2[,…]]
FROM expresie_tabel;
unde:
tabel_destinatie-numele tabelului sau interogarii careia i se adauga inregistrari
tabel_sursa-numele tabelului/interogarii din care fac parte inregistrarile care se adauga
camp1,camp2-numele campurilor destinatie daca urmeaza argumentului tabel destinatie, respectiv numele campurilor sursa, daca urmeaza argumentului tabel sursa
expresie_tabel-o expresie care identififca unul sau mai multe tabele din care provin datele pentru crearea noului tabel
Interogarea Delete
DELETE [tabel.*]
FROM tabel
WHERE citerii_de_selectie
unde:
tabel-numele optional al tabelului din care se sterg inregistari
tabel-numele optional al tabelului din care se sterg inregistrari
criterii_de_selectie-o expresie pe care trebuie s-o satisfaca o inregistrare pentru a fi stearsa
Interogarea de cautare-completare (AutoLookup Query)
Acest tip de interogare introduce automat informatie in tabelul secundar al unei relatii 1-m, prin cautarea ei in tabelul principal dupa un index cu valori unice aflat in campul de asociere (nu neaparat in campul de legatura).
O interogare AutoLookup se creaza astfel:
se creaza o interogare simpla de selectie bazata pe cele doua tabele aflate in relatie 1-m;
se includ in grila QBE campurile necesare din ambele tabele astfel:
campul de asociere inclus trebuie sa provina din tabelul secundar;
daca exista campuri comune in cele doua tabele atunci se vor include campurile din tabelul principal;
se definesc criteriile de selectie in celulele Criteria daca este necesar si se executa interogarea;
se trece la introducerea noii inregistrari in tabelul secundar astfel:
la baza interogarii in linia libera afisata se introduc noile informatii;
in campul de asociere se introduce valoarea de cautare si Enter;
daca Microsoft Access gaseste in tabelul principal in campul de asociere valoarea respectiva atunci completeaza in inregistrarea din interogare informatiile continute in inregistrarea din tabelul principal, altfel afiseaza un mesaj de eroare; daca este cazul se introduce o noua inregistrare la baza interogarii; se inchide interogarea si se vizualizeaza tabelul secundar.
Interogarile SQL
O interogare SQL este o interogare care modifica insasi structura unui tabel. Ea nu poate fi creata decat cu ajutorul unei instructiuni SQL si doar in modul SQL.
Exista urmatoarele tipuri de interogari SQL:
interogarea Union (de combinare);
interogarea PassThrough (de transferare);
interogarea DataDefinition (de definire a datelor).
Interogarea Union combina campurile (coloanele) corespunzatoare din doua sau mai multe tabele sau interogari intr-un singur camp (coloana) cu ajutorul unei operatii UNION.
[tabel] query1 UNION [ALL] [tabel] query2
[UNION [ALL] [tabel] queryn […]]
unde:
query1-n-poate fi: o instructiune SELECT, numele unei interogari sau numele unui tabel
Interogarea PassThrough trimite comenzi direct bazelor de date accesibile din Microsoft Access prin protocolul ODBC (Object Database Connectivity Protocole= un protocol standard de accesare a informatiei de pe serverele de baze de date SQL (ex: Microsoft SQL Server)) intr-un format compatibil cu serverul respectiv. Aceasta interogare este utilizata pentru obtinerea de informatii de pe serverul accesat si executarea procedurilor memorate pe serverul ODBC accesat.
Interogarea DataDefinition creeaza sau modifica obiecte ale BD prin:crearea un index pentru un camp sau pentru un grup de campuri (instructiunea CREATE INDEX), stergerea un tabel din BD sau eliminarea unui index dintr-un camp sau dintr-un grup de campuri (instructiunea DROP), construirea unui tabel (instructiunea CREATE TABLE) sau modificarea structurii unui tabel dupa ce a fost creat cu CREATE TABLE (adauga un camp nou sau o noua restrictie) cu ajutorul instructiuni ALTER TABLE.
CREATE [UNIQUE] INDEX numr_index
ON nume_tabel (nume_camp [ASC|DESC],…..)
[WITH {PRIMARY| DISALLOW NULL| IGNORE NULL}]
unde:
nume_index- este numele indexului care trebuie creat
nume_tabel- numele tabelului din BD curenta care va contine indexul
nume_camp- numele campului care trebuie indexat
UNIQUE- defineste campul/grupul de campuri specificat ca index cu valori unice (daca exista valori duplicate in aceste campuri, inregistrarile respective vor fi sterse automat de catre Microsoft Access)
PRIMARY- defineste campul/grupul de campuri specificat drept cheie primara pentru tabelul respectiv
WITH- pemite specificarea regulilor de validare a datelor (DISALLOW NULL (nu permite introducerea valorilor nule in campul/campurile de index al unei noi inregistrari), IGNORE NULL (nu permite includerea in index a inregistrarilor cu valori nule in campul/campurile de index))
DROP {TABLE nume_tabel|INDEX nume_index ON nume_tabel}
unde:
nume_tabel- este numele tabelului care trebuie sters, respectiv al tabelului din care trebuie sters un index
nume_index- numele indexului care trebuie sters din tabel
CREATE TABLE nume_tabel (nume_camp tip [(dimensiune)] [NOT NULL])
[nume_index1] [,nume_camp2 tip [(dimensiune)]] [NOT NULL] [nume_index2]
[…]
[,CONSTRAINT nume_index_de_grup_de_campuri [….]]
unde:
nume_tabel- este numele tabelului care trebuie creat
nume_camp1, nume_camp2- numele campurilor din tabelul de creat (trebuie sa existe cel putin un camp)
tip- tipul de date al campului din noul tabel
dimensiunea- dimensiunea campului in caractere
nume_index1, nume_index2- numele unor indexi de un singur camp definitii cu ajutorul unei clause CONSTRAINT
nume_index_de_grup_de_campuri-numele unui index de mai multe campuri definit cu ajutorul unei clause CONSTRAINT
ALTER TABLE nume_tabel {ADD {COLUMN nume_camp tip[(dimensiune)]}
[NOT NULL] [CONSTRAINT nume_index] |
CONSTRAINT nume_index_de_grup_de_campuri}
unde:
nume_tabel- numele tabelului care trebuie modificat
nume_camp- numele campului care trebuie adaugat sau eliminat din tabel
tip- tipul de date al campului
dimensiune- dimensiunea campului in caractere
nume_index- numele unui index de un singur camp definit cu ajutorul unei caluze CONSTRAINT
nume_index_de_grup_de_campuri- numele unui index de mai multe campuri definit cu ajutorul unei clauze CONSTRAINT
nume_index- numele indexului de mai multe campuri care trebuie eliminat
Proprietatile interogarilor
Proprietatile interogarilor pot fi definite prin intermediul ferestrei Properties atat pentru interogarea propriu-zisa cat si pentru campurile acesteia. In continuare sunt prezentate cateva dintre cele mai importante proprietati ale interogarilor:
Description (descrierea): intretinerea bazei de date poate fi simplificata daca este utilizata aceasta proprietate pentru a obtine informatii referitoare la formularele, rapoartele sau casetele combinate care folosesc aceasta interogare.
OutputAllFields (adauga toate campurile grilei de iesire): daca este Yes, Microsoft Access va adauga caracterul de inlocuire asterisc in instructiunea SQL, astfel incat toate campurile din toate tabele sunt incluse in foaia de date a interogarii (se stabiliste valoarea prestabilita prin intermediul Tools|Options|Tables| Queries).
TopValues (valorile de sus): schimbarea valorii prestabilite All cu un numar determina interogarea sa afiseze numai primele inregistrari, in conformitate cu ordinea de sortare curenta. Daca interogarea este complexa sau tabelele de baza sunt mari, stabilirea unei valori intregi va determina o extragere mai rapida decat stabilirea unei valori procentuale, deoarece aceasta din urma impune programului Microsoft Access calcularea numarului inregistrarilor. Pentru a afisa valorile din partea de jos a listei, se foloseste o ordine de sortare descendenta.
UniqueValues si UniqueRecords (valori unice si inregistrari unice): daca ambele valori sunt stabilite la No, interogarea va afisa fiecare rand din fiecare tabel. Randurile duplicate din interogare pot fi eliminate prin stabilirea proprietatii UniqueValues la Yes. Optiunea UniqueRecords elimina numai acele inregistrari care sunt duplicate in tabelele de baza, o situatie care nu ar trebui sa apara intr-o baza de date normalizata corect.
Run permissions (permisiuni de rulare): daca o baza de date a fost securizata, permisiunile de afisare sau de modificare a interogarii pot fi definite ca Qwner’s (ale proprietarului) sau User’s (ale utilizatorului).
SourceDatabase (baza de date sursa).
ConnectString (sir de conectare).
Microsoft Access pune la dispozitie mai multe programe wizard care pot asista la crearea interogarilor. Programele wizard cele mai importante sunt urmatoarele: Simple Query Wizard (program pentru interogari simple), Crosstab Query Wizard (program pentru interogari de tip tabel incrucisat), Find Duplicates Query Wizard (program pentru interogari de gasire a duplicatelor) si Find Unmatched Query Wizard (program pentru interogari de gasire a inregistrarilor care nu corespund).
Rapoarte
Raportul este un instrument eficient de prezentarea informatiei stocate in BD prin tiparire la imprimanta si ofera utilizatorului un control complet asupra dimensiunii si aspectului fiecarui element constitutiv.
Raportul ofera posibilitatea de prelucrare a datelor in scopul obtineii unor rezultate sintetice: subtotaluri, totaluri, etc. Datele pot fi grupate pe un numar de pana la zece niveluri diferite, fiecare cu propriile sale informatii sintetice.
Un raport se creaza astfel: se afiseaza BD in fereastra Database cu tabul Reports activat, se alege butonul de comanda New care determina afisarea fereastrei dialog New Report din care se alege tabelul sau interogarea pe care se va baza raportul din caseta derulanta si comanda Design View, apoi cu ajutorul iconului Field List de pe toolbarul ReportDesign si al iconurilor de pe toolbarul Toolbox se includ in raport campurile de date necesare prin crearea controalelor grafice asociate, neasociate sau calculate, intr-un mod similar celui prezentat pentru formulare.
Majoritatea rapoartelor sunt proiectate intr-o configuratie tabelara. La fel ca in cazul unui formular in modul Continuous Form (formular continuu), sectiunea Detail a raportului se repeta pentru fiecare inregistrare atunici cand raportul este afisat anticipat sau tiparit. In afara sectiunii Detail, un raport poate avea antet si subsol de pagina (Page Header, Page Footer), antete si subsol de raport (Report Header, Report Footer) precum si anteturi si subsoluri pentru un numar de pana la 10 niveluri de grupare.
Rapoartele pot sa contina de asemenea subrapoarte, desi imbricate este limitata la maximum trei niveluri. Raportul are o functie de sortare si grupare (Sorting and Grouping) care se ocupa de o multitudine de relatii dintr-un singur raport.
Antetul si subsolul de pagina definesc elementele care trebuie sa apara in partea de sus si in cea de jos a fiecarei pagini din raport. Un antet de pagina tipic poate cuprinde titluri de coloane deasupra fiecarui camp. Un subsol de pagina poate contine numarul paginii sau data tiparii. Spre deosebire de celelalte subsoluri de sectiuni, subsolul de pagina nu poate cuprinde un total al datelor de pe pagina.
Pentru a numerota paginile unui raport se selecteaza optiunea Page Numbers (numere de pagina) din meniul Insert, iar pentru a adauga data tiparirii se selecteaza optiunea Date add Time din meniul Insert.
Antetul raportului (Report Header) apare numai pe prima pagina, ca un titlu pentru intregul raport. Pentru a include sigla companiei in titlul raportului se alege optiunea Picture (desen) din meniul Insert.
Subsolul raportului (Report Footer) apare numai pe ultima pagina si poate cuprinde un rezumat al tuturor datelor din diversele sectiuni ale raportului.
Fiecare subdiviziune a unui raport are o proprietate ForceNewPage (forteaza o pagina noua). Pentru a crea o pagina separata pentru un raport se alege optiunea After Section (dupa sectiune) pentru proprietatea ForceNewPage a antetului raportului. Pentru a crea o pagina separata la sfarsitul raportului se alega optiunea Before Section (inainte de sectiune) pentru proprietatea ForceNewPage a subsolului raportului.
Pentru a stabili ordinea de sortare in cadrul unui raport se executa clic pe pictograma Sorting and Grouping de pe bara de instrumente. Cheia de sortare cea mai semnificativa este chiar prima pozitie din aceasta lista. Fiecare camp din fereastra Sorting and Grouping are proprietatile GroupOn (grupeaza dupa) si GroupInterval (interval de grupare). Aceste proprietati sunt utile pentru campurile de tipul data calendaristica/ora. Ca optiune prestabilita, Microsoft Access va grupa dupa Each Values (fiecare valoare), raportul respectiv fiind grupat dupa fiecare valoare data calendaristica/ora individual.
Anteturile de grup au de asemenea o proprietate RepeatSection (repetare sectiune). Atunci cand aceasta proprietate este stabilita la valoarea Yes, sectiunea Group Header se va repeta in partea de sus a fiecarei pagini sau coloane care face parte din grupare.
Cu ajutorul optiunii Page Setup (configurarea paginii) din meniul File se pot configura marginile, pagina sau aspectul raportului.
Etapele de realizare a aplicatiei
CICLUL DE VIAȚĂ AL UNEI BAZE DE DATE
Figura 1. Ciclul de viață al unei baze de date
Ciclul de viață al unei baze de date reprezintă setul de pași, tehnici, metode și instrumente utilizate pentru transpunerea modelului de date într-un model fizic.
Elmasri și Navathe au propus un proces care poate fi completat cu etape suplimentare astfel:
Colectarea și analizarea cerințelor
Faza de analiză a cerințelor implică examinarea domeniului de interes ce urmează a fi modelat, intervievarea beneficiarului bazei de date, obținerea de informații despre sisteme asemănătoare, analiza cerințelor de dezvoltare viitoare și obținerea de informații despre întregul domeniu luat în ansamblu.
Managerii, proiectanții și consultanții folosesc o serie de tehnici de creare a diagramelor și graficelor. Unele dintre cele mai folosite sunt:
Diagrame de conținut – prezintă în mod simplificat felul în care un proces intră în legătură cu entități aflate în afara procesului.
Diagrame logice de flux de date – prezintă reprezentarea logică a procesului. Sunt descrieri abstracte care nu specifică nici cine efectuează o anumită activitate și nici locul în care se află anumite elemente. Dacă subprocesul nu este elementar, acesta poate fi descompus sau partiționat. Astfel de diagrame se modifică foarte rar.
Diagrame fizice de flux de date – prezintă atributele fizice ale procesului. Nu prezintă atributele logice ale procesului. Ele se pot modifica relativ des și nu pot fi descompuse.
Schema logică a sistemului – prezintă prelucrarea informațiilor (intrări, ieșiri, înmagazinarea datelor, activități, fluxuri logice) și procesele operaționale (entități, fluxuri fizice, operații). Aceasta este cea mai veche tehnică.
Diagrama entitate-relație.
Definirea sistemului
Definirea sistemului reprezintă identificarea scopului și a limitelor bazei de date. Aici sunt prezentate cele mai multe dintre vederile utilizatorilor.
Etapele proiectării
Proiectarea unei baze de date reprezintă un proces ce implică dezvoltarea și rafinarea structurii unei baze de date pe baza cerințelor formulate de către beneficiarul bazei de date și a cerințelor deduse pe baza efectuării analizei domeniului ce urmează a fi modelat.
Principalul obiectiv urmărit la proiectarea unei baze de date este asigurarea consistenței, integrității și preciziei datelor. Dacă proiectul unei baze de date este incorect este foarte greu de extras informațiile necesare, fiind posibilă obținerea de informații false. În scopul realizării unui proiect corect al unei baze de date trebuie urmărite o serie de obiective, cum ar fi:
baza de date trebuie să înmagazineze datele necesare obținerii de informații descrise în faza de analiză a cerințelor precum și orice interogare ce poate fi pusă la un moment dat de către utilizator;
tabelele trebuie să fie construite corect și eficient; fiecare tabel din baza de date reprezentând o singură entitate și fiind compus din câmpuri distincte, păstrând o redundanță minimă a datelor, fiecare înregistrare dintr-un tabel putând fi identificată cu ajutorul unei valori unice;
integritatea datelor se impune la nivel de tabel, câmp, relație; aceste nivele de integritate ajută la garantarea faptului că structurile de date împreună cu valorile acestora sunt valide și precise în orice moment;
baza de date trebuie să suporte regulile specifice domeniului pe care îl modelează; datele trebuie să ofere informație validă și precisă, având tot timpul înțeles;
la proiectarea bazelor de date trebuie să se prevadă dezvoltările viitoare; structura bazei de date trebuie să fie ușor de modificat sau extins odată cu modificarea cerințelor impuse.
Planificarea bazei de date
Planificarea bazei de date reprezintă controlul activităților ce permit realizarea efectivă și eficientă a etapelor de proiectare a unei baze de date. În acest scop se realizează următoarea documentație:
identificarea scopului bazei de date;
obiectivele bazei de date (identificarea fiecărei activități individuale ce trebuie suportată de baza de date);
Proiectarea bazei de date cuprinde următoarele trei etape:
proiectarea conceptuală a bazei de date;
proiectarea logică a bazei de date;
proiectarea fizică a bazei de date.
Proiectarea conceptuală
Proiectarea conceptuală reprezintă procesul de construire a unui model al informațiilor utilizat în cadrul unui domeniu de interes, independent de toate considerațiile fizice.
Primul pas în proiectarea bazei de date este cel de definire a cerințelor datelor specifice acelui domeniu. În acest scop este importantă definirea:
tipurilor de informații;
categoriilor de informații necesare sistemului;
regulilor specifice domeniului;
constrângerilor aplicate;
tipurilor de rapoarte generate;
scopului principal al tuturor informațiilor;
securității necesare;
informațiilor ce urmează a fi extinse.
Identificarea obiectivelor domeniului precum și strângerea informațiilor din diferite surse ce vor folosi baza de date este un proces esențial. De asemenea, tot acum trebuie identificate cerințele specifice domeniului care se modelează. În concluzie, modelul conceptual de date reprezintă cerințele datelor, o listă a regulilor specifice domeniului și o privire asupra comportamentului pe care trebuie să-l aibe sistemul și care se reprezintă grafic cu ajutorul unor instrumente ajutătoare, fiind independent de orice considerații fizice (SGBD, sistem de operare etc.).
Proiectarea logică
Proiectarea logică reprezintă procesul de constituire a unui model al informațiilor utilizat la modelarea unui domeniu de interes bazat pe un anumit model specific de date (de exemplu, modelul relațional), dar independent de orice alte considerații fizice.
Proiectarea logică a bazei de date ajută în continuare la definirea și achiziționarea cerințelor. Proiectarea logică a bazei de date presupune descrierea fiecărui element de informație și a relațiilor dintre aceste elemente de informație. Un model logic poate determina dacă proiectul conține toate informațiile ce trebuie să fie extrase și reflectă relațiile necesare care se pun în concordanță cu regulile domeniului de interes. Modelul logic al bazei de date descrie dimensiunea, forma sistemelor necesare bazei de date și arată necesitățile informaționale și operaționale ale domeniului de interes.
Fleming von Halle, în lucrarea “Handbook of Relational Database Design”, propune următorii pași ce trebuie urmați pentru crearea unui model logic, așa cum se poate observa din figura 2:
definirea tabelelor în funcție de cerințele specifice domeniului pe care îl modelează (așa cum s-a stabilit în modelul conceptual);
determinarea relațiilor dintre tabele;
determinarea conținutului (coloanelor) fiecărui tabel;
normalizarea tabelelor până, la cel puțin, forma normală trei;
determinarea cheilor primare;
determinarea valorilor specifice fiecărei coloane.
Un tabel relațional reprezintă o colecție de rânduri, în care fiecare rând are aceleași coloane. Se recomandă acordarea numelor tabelelor conform regulilor stabilite, ținându-se cont de normele de abreviere și de sinonime.
D – date; R – reguli
Figura 2. Crearea modelului logic
Proiectarea fizică
Proiectarea fizică reprezintă procesul de descriere a implementării bazei de date pe mediile secundare de stocare. Sunt descrise structurile de stocare și metodele de acces utilizate pentru a obține un acces eficient la date.
Proiectul fizic al bazei de date efectuează și o rafinare a modelului logic; acesta transpune modelul logic într-un sistem relațional de gestiune a bazelor de date. În această fază este obligatorie examinarea modului în care utilizatorul accesează baza de date. Se recomandă separarea modelului logic de modelul fizic astfel încât modificările să poată fi documentate în conformitate cu modelul fizic pentru a corespunde constrângerilor. În acest fel, modelul logic rămâne independent de tehnologie, ținând cont doar de cerințele specifice domeniului pe care îl modelează.
Acest pas din cadrul procesului de proiectare implică determinarea următoarelor categorii de informații:
datele folosite în mod curent;
coloanele ce urmează a fi indexate pentru a obține un acces mai rapid la date;
spațiul necesar precum și cel prevăzut pentru creșterea dimensiunilor bazei de date;
dacă denormalizarea bazei de date va duce la creșterea performanțelor acesteia;
cereri de funcționalitate:
procesarea secvențială a tuplurilor;
tuplurile ce îndeplinesc o anumită condiție impusă prin intermediul unei valori;
tuplurile inserate sau eliminate;
obiective de performanță:
evitarea pierderii inutile de spațiu;
primirea într-un timp cât mai scurt a răspunsului.
O bază de date relațională constă din două părți importante:
dicționarul de date care descrie datele;
fișierele de date ce conțin datele fizice.
Fleming von Halle, în lucrarea sa “Handbook of Relational Database Design”, propune pașii necesari creării modelului fizic, așa cum se poate observa din figura 3:
D – date; P – proces
Figura 3. Crearea modelului fizic
Alegerea sistemului de gestiune a bazei de date
Pentru a crea o aplicație cu baze de date trebuie ales cel mai potrivit tip de sistem de gestiune al bazei de date. Acesta trebuie ales în așa fel încât să corespundă atât necesităților actuale cât și celor viitoare. În acest scop trebuie făcută o apreciere asupra caracteristicilor sistemului raportate la cerințele bazei de date și a aplicației (aplicațiilor) create pe baza acesteia.
Această fază urmează după faza de modelare conceptuală și înainte de faza proiectării fizice și constă din:
1. Stabilirea costului, care se bazează pe:
costul de achiziție a programelor;
costul mentenanței;
costul de achiziție a componentelor hardware;
costul de creare a bazei de date sau a conversiei acesteia;
costul legat de personal;
costul de pregătire a personalului;
costul de operare.
2. Modelul de date depinde de:
structura și utilizarea datelor;
familiarizarea cu sistemul;
disponibilitatea serviciilor oferite de către producător, a programelor de comunicare, a programelor de introducere a datelor, a instrumentelor de proiectare și monitorizare etc.
Proiectarea programelor aplicație
În această fază trebuie creată interfața cu utilizatorul precum și programele aplicație care folosesc datele din baza de date. În acest scop este necesară:
proiectarea tranzacțiilor:
tranzacții folosite la extragerea datelor (datele extrase cu scopul afișării sau utilizării de către o altă tranzacție);
tranzacții folosite la actualizarea datelor (inserarea de noi înregistrări, eliminarea de înregistrări, modificarea înregistrări lor existente);
tranzacții mixte (folosite atât pentru extragere cât și pentru actualizarea datelor).
proiectarea formularelor și rapoartelor.
Mai întâi, este important de cunoscut specificațiile bazei de date, a interogărilor folosite, a tranzacțiilor și aplicațiilor ce trebuie create. Prin analizarea interogărilor și tranzacțiilor bazei de date se urmăresc: frecvența apariției interogărilor și tranzacțiilor, constrângerile impuse interogărilor și tranzacțiilor, frecvența operațiilor de actualizare.
În același timp este important de analizat performanța profilului de interogare (frecvența anumitor interogări, relațiile folosite, tabelele relaționate folosite, selectarea atributelor) și a profilului de actualizare (dinamic sau static, frecvența actualizărilor, aplicarea unor strategii de prevedere a actualizărilor posibile).
În sfârșit, proiectarea se încheie prin crearea interfeței cu utilizatorul și a aplicațiilor care lucrează cu datele din baza de date.
Implementarea
Implementarea reprezintă realizarea fizică a bazei de date și a aplicațiilor care folosesc baza de date. Implementarea bazei de date se poate face folosind:
limbajul de definire a datelor existent în cadrul sistemului de gestiune a bazelor de date;
o interfață grafică cu utilizatorul.
Instrucțiunile limbajului de definire a datelor crează structura bazei de date și fișierele bazei de date. Programele aplicație sunt implementate cu ajutorul limbajului de manipulare a datelor și, posibil, cu ajutorul unui limbaj gazdă de programare cu ajutorul căruia se creează ecrane, meniuri, formulare și rapoarte pe de o parte, iar pe de altă parte se introduc elementele de control a securității și integrității datelor.
Un sistem relațional de gestiune a bazelor de date pune la dispoziție doar instrumentele necesare implementării proiectului bazei de date, spre deosebire de metoda formală de proiectare a bazei de date care oferă atât principiile cât și logica necesare definirii bazei de date corect și efectiv. Folosind doar instrumentele puse la dispoziție de sistemul de gestiune a bazelor de date, se poate crea o bază de date care funcționează, dar care să ofere performanțe extrem de slabe și să presupună eforturi suplimentare exagerate din parte programatorilor de aplicații. Astfel se va obține cu siguranță o structură improprie, insuficientă integritate a datelor, apărând probleme legate de consistența acestora și de obținerea de informații imprecise. Fără a înțelege așa cum se cuvine principiile de proiectare a unei baze de date, este posibil să se permită aplicației să-și impună propriile reguli, în loc să se întâmple invers, cum este normal.
Prototipul
Prototipul reprezintă realizarea unui model de lucru al bazei de date fiind folosit de către utilizatori la identificarea părților tari și a slăbiciunilor sistemului, ajutând la elaborarea de amendamente la proiectul teoretic. Pe baza unui astfel de model se clarifică mai bine atât cerințele domeniului care se modelează cât și fezabilitatea proiectului. Prototipurile sunt relativ ieftine, putând fi folosite următoarele strategii:
crearea unui prototip al cerințelor (prototip creat după faza de analiză a cerințelor);
crearea unui prototip evolutiv (utilizat la fiecare etapă de proiectare, putând deveni soluția finală).
În această fază este obligatorie dezvoltarea unui model de lucru al bazei de date pentru:
a verifica caracteristicile de bună funcționare;
a identifica caracteristicile improprii;
a identifica îmbunătățirile;
a identifica noi obiecte ale bazei de date.
Testarea
Testarea reprezintă procesul de rulare a unor programe aplicație cu scopul de a descoperi eventualele erori ale bazei de date. Baza de date trebuie testată cu atenție, stabilindu-se diverse strategii de testare eleborate metodic, cu atenție și rigoare. Pentru testare trebuie folosite seturi reale de date și dacă este posibil, verificările să se facă pe alte sisteme decât cel folosit la proiectare. Testarea se face atât pentru descoperirea eventualelor erori cât și pentru descoperirea de noi modalități de îmbunătățire a performanțelor.
Măsurarea performanțelor
Principalele măsurători se bazează pe:
timpul de răspuns;
evaluarea tranzacțiilor: câte tranzacții se pot procesa pe secundă/milisecundă;
timpul de generare a unui raport al întregii baze de date;
achiziționarea datelor;
elemente de analiză și experimentale.
Unele dintre elementele folosite la măsurare sunt:
timpul de răspuns la o interogare;
gradul de utilizare al microprocesorului și a dispozitivelor de intrare/ieșire;
media interogărilor introduse pe minut și determinarea costului;
numărul de tranzacții pe secundă;
timpul de răspuns al unei tranzacții.
Întreținerea operațională
Întreținerea operațională reprezintă procesul de monitorizare și întreținere a sistemului ce urmează după instalarea acestuia. Această etapă implică:
monitorizarea performanțelor bazei de date; dacă acestea devin inacceptabile, baza de date trebuie reorganizată;
întreținerea și actualizarea bazei de date atunci când este necesar (pot apare cereri noi).
Structura bazei de date nu este greu de modificat dacă proiectarea a fost făcută corespunzător, altfel vor trebui depuse eforturi suplimentare. Dacă baza de date a fost corect proiectată:
Este ușor de modificat și de întreținut structura acesteia.
Modificările efectuate asupra unui câmp sau tabel nu vor afecta alte câmpuri sau tabele ale bazei de date.
Datele sunt ușor de modificat.
Modificările efectuate asupra unei valori dintr-un anumit tabel al bazei de date nu vor afecta valorile altor câmpuri din alte tabele. Într-o structură corectă, modificările trebuie făcute într-un singur loc.
Informația se extrage cu ușurință.
Tabelele sunt corect construite, orice relație stabilită între ele fiind valabilă.
Aplicațiile utilizator sunt ușor de proiectat și creat.
Timpul necesar proiectării trebuie să fie petrecut cu modul de manipulare a datelor și nu cu rezolvarea unor probleme ce pot apare datorită unei proiectări incorecte a bazei de date.
Proiectarea, dezvoltarea și testarea aplicatiei
Modelul de aplicație propus isi propune gestionarea activitatilor dintr-un spital.
Proiectarea și dezvoltarea aplicației
Un pacient se poate adresa unui spital cu scopul de a efectua unele analize medicale, care implica urmarea unui tratament dupa ce medicul stabileste diagnosticul final pentru pacientul respectiv. Tratamentul unui pacient poate cuprinde unul sau mai multe medicamente, iar un pacient este tratat de unul sau mai multi medici.
Un medic trateaza unul sau mai multi pacienti.
Un spital cuprinde mai multe sectii in functie de specificul acestuia. O sectie poate fi deservita de unul sau mai multe laboratoare, iar un medic trebuie sa apartina de o singura sectie.
Fiecare labotator executa una sau mai multe analize in functie de specificul fiecaruia.
Aceasta aplicatie are urmatoarele facilitati:
evidenta fiselor pacientilor;
urmarirea intregului circuit al pacientilor intr-un spital, de la momentul in care a fost intocmita fisa acestora si pana la parasirea spitalului, cu monitorizarea continua a pozitiei acestora in spital (salon, pat, etc.);
inregistrarea si monitorizarea diagnosticelor pacientilor, cererii si efectuarii analizelor de laborator, radiologie si explorari functionale.
Testarea aplicației am facut-o după fiecare etapa de realizarea a ei. Am conceput mai multe baze de date, scheme relaționale, meniuri, rapoarte,….ce sunt detaliate mai jos.
Meniul principal
Meniul acestei aplicatii este organizat astfel incat sa permita utilizatorilor acestei baze de date urmatoarele:
gestiunea pacientilor: internarea unui pacient in spital, externarea unui pacient din spital, vizitarea unui pacient care este internat in spital, afisarea datelor unui pacient internat in spital, modificarea datelor unui pacient si listarea pacientilor internati in spital;
gestiunea medicilor: angajarea unui nou medic in unitatea sanitara, demisionarea sau concedierea unui medic, afisarea pacientilor aflati in ingrijirea unui anumit medic, afisarea datelor despre un anumit medic si lista medicilor din spitalul respectiv;
gestiunea sectiilor: situatia unei anumite sectii din spital si listarea sectiilor din spital;
gestiunea laboratoarelor: situatia unui anumit laborator si listarea laboratoarelor din spital;
gestiunea analizelor: situatia analizelor efectuate in fiecare laborator.
gestiunea medicatiei: situatia medicamentelor pentru fiecare pacient, lista medicamentelor disponibile,modificarea datelor despre un anumit
Entitatea independenta MEDICI prezinta personalul medical care stabileste diagnosticul pacientului si se ocupa de tratarea acestuia pe timpul spitalizarii.
Cheia primara este CodMedic care identifica in mod unic fiecare medic din spital.
Atribute:
Nume- numele medicului.
Prenume- prenumele medicului.
Adresa- adresa medicului respectiv.
Specializare- specializarea pentru fiecare medic.
Grad- gradul de specializare al medicului.
Salariu- salariul obtinut de fiecare medic.
Entitatea independenta SECTII contine informatii cu privire la sectiile in care bolnavii primesc ingrijire medicala din partea personalului medical.
Cheia primara este CodSec care identifica in mod unic fiecare sectie.
Atribute:
Nume- numele sectiei respective.
Etaj- etajul la care se afla fiecare sectie.
NrPaturi- numarul total de paturi pe care le detine sectia respectiva.
Entitatea independenta LABORATOR descrie laboratoarele unde sunt facute analizele pacientilor de pe fiecare sectie.
Cheia primara este CodLab care idetifica in mod unic fiecare laborator.
Atribute:
Nume- numele laboratorului.
Etaj- etajul unde se afla laboratorul respectiv.
Entitatea dependenta ANALIZE descrie analizele care trebuiesc facute in fiecare laborator.
Cheia primara este formata din CodLab care identifica in mod unic fiecare laborator si CodAnaliza care identifica in mod unic fiecare analiza efectuata.
Atribute:
Nume- numele analizei.
ProdRec- produsul care trebuie recoltat pentru fiecare analiza.
Entitatea independenta PACIENTI contine informatii cu privire la pacienti internati in spital.
Cheia pimara este CodPac care identifica in mod unic fiecare pacient internat in spital.
Atribute:
Nume- numele pacientului.
Prenume- prenumele pacientului.
Adresa- adresa pacientului.
Sex –sexul pacientului.
DataNas- data nasterii pacientului.
DataInt- data la care pacientul este internat.
DataExt- data la care pacientul este externat.
NrSalon- salonul in care este internat pacientul.
NrPat- numarul patului din salonul respectiv.
Entitatea independenta MEDICAMENTE descrie tratamentul care trebuie urmat de fiecare pacient.
Cheie primara este CodMed care identificat in mod unic fiecare medicamente.
Atribute:
Denumire- numele medicamentului.
Categorie- categoria din care face parte medicamentul.
ModAdm- modul in care este administrat medicamentul.
Indicatii- indicatile terapeutice pentru fiecare medicament.
Relatia apartin_de leaga entitatile MEDICI-SECTII si descrie sectiile de care apartine personalul medical din unitatea sanitara.
Cardinalitatea este M(1)-1(1).
Relatia deserveste leaga entitatile SECTII-LABORATOR si descrie toate sectiile pe care le deserveste fiecare laborator.
Cardinalitate este M(1)-M(1).
Relatia executa leaga entitatile LABORATOR-ANALIZE si descrie analizele executate in laboratoare.
Cardinalitate este 1(1)-M(1).
Relatia trateaza leaga entitatile MEDICI-PACIENTI si descrie medicii care trateaza fiecare pacient.
Cardinalitate este M(1)-M(1).
Relatia necesita leaga entitatile PACIENTI-MEDICAMENTE si descrie tratamentul de care necesita fiecare pacient.
Cardinalitate este M(1)-M(1).
Cheia primara este formata din CodPac si CodMed.
Atribute:
Cantitate- cantitatea din fiecare medicament care trebuie luata de pacient, exprimata in mg;
UniMas- unitatea de masura pentru medicamente.
Schemele relationale
MEDICI (CodMedic#, nume, prenume, adresa, specializare, grad, salariu, CodSec)
SECTII (CodSec#, nume, etaj, nrpaturi)
DESERVESTE (CodSec#, CodLab#)
LABORATOR (CodLab#, nume, etaj)
ANALIZE (CodLab#, CodAnaliza#, nume, prodrec)
TRATEAZA(CodMedic#, CodPac#, diagnostic, tip_diagnostic)
PACIENTI (CodPac#, nume, prenume, adresa, datanas, sex, dataint, dataext, nrsalon, nrpat)
NECESITA (CodPac#, CodMed#, cantitate)
MEDICAMENTE (CodMed#, denumire, categorie, modadm, indicatii)
IMPORTAREA/EXPORTAREA DATELOR, FORMULARE, RAPOARTE, SUBFORMULARE ALE BAZEI DE DATE
Toate macrocomenzile și formularele de introducere a datelor se pot afișa folosint butonul “Baza de date” din meniul principal.
EXEMPLE IMPORTAREA/EXPORTAREA DATELOR :
Adaugarea unei analize
Angajarea/introducerea unui medic
Concedierea unui medic
Externarea uni pacient
Internarea unu pacient
…………..
EXEMPLE DE FORMULARE:
Analize
Sectii
Laboratoare
Medicamentatie
……
EXEMPLE DE RAPOARTE:
Lista sectiilor
Lista medicamentelor administrate unui anumit pacient
….
EXEMPLE DE TABELE:
Lista pacientilor
Lista medicamentelor
Zile de spitalizare
……..
Bibliografie
Gheorghe Popa, Florentina Berbec
Baze de date Access
Editura Cison, Bucuresti, 1997
Eugen Zaharescu
Sisteme informatice de gestiune economica: Microsoft Access 2007
Editura Teora, Bucuresti, 2000
Steve Johnson
Microsoft Office – Access 2007
Editura Teora 2008
Allen Browne, Alison Balter
Bazele Access
Editura Teora, Bucuresti, 2008
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Testarea Aplicatiilor (ID: 150721)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
