Sistem Informatic de Gestiune a Produselor Farmaceutice
CAPITOLUL 1
INTRODUCERE
CAPITOLUL 2
NOȚIUNI GENERALE
DESPRE BAZE DE DATE
2.1. Conceptul de bază de date
2.2. Obiectivele fundamentale ale unei baze de date
2.3. Sistemul de Gestiune a Bazelor de Date (SGBD)
2.4. Niveluri și modele de reprezentare a datelor
2.4.1. Nivelul extern (schema externă)
2.4.2. Nivelul conceptual (modelul conceptual)
2.4.3. Nivelul logic (modelul relațional)
2.4.4. Nivelul intern (fizic)
2.5 Securitatea datelor
CAPITOLUL 3
MEDIUL DE DEZVOLTARE MICROSOFT ACCESS 2000
CAPITOLUL 4
PROIECTAREA BAZEI DE DATE
4.1. Modelul conceptual al datelor
4.2. Modelul relațional al datelor
4.3. Crearea bazei de date
4.4. Crearea tabelelor
4.4.1. Crearea tabelei PRODUCĂTOR
4.4.2. Crearea tabelei MEDICAMENTE
4.4.3. Crearea tabelei REȚETĂ SPECIALĂ
4.4.4. Creare tabelei REȚETĂ
4.4.5. Crearea tabelei BENEFICIAR
4.4.6. Crearea tabelei DOCTOR
4.5. Relaționarea tabelelor
4.6. Operații elementare asupra tabelelor
CAPITOLUL 5
INTEROGĂRI
CAPITOLUL 6
FORMULARE ȘI RAPOARTE
6.1. Formulare
6.1.1. Crearea formularului „Medicamente”
6.1.2. Crearea formularului „Medicamente > 35000 lei”
6.1.3. Crearea formularului „Medicamente compensate/gratuite”
6.1.4. Crearea formularului „Beneficiarii de medicamente”
6.1.5. Crearea formularului „Producător”
6.2. Rapoarte
6.2.1. Crearea raportului Beneficiar
6.2.2. Crearea raportului Doctor
6.2.3. Crearea raportului Producător
6.2.4. Crearea raportului Rețetă specială
CAPITOLUL 7
PUBLICAREA DATELOR
PE INTERNET
7.1. Crearea paginii „Doctori”
7.2. Crearea paginii „Producători”
7.3. Crearea paginii „Medicamente”
7.4. Crearea paginii „Rețetă”
7.5. Comenzi macro
7.6. Proiectarea barei-meniu „Tabele”
7.7. Proiectarea barei-meniu „Aplicații”
CAPITOLUL 8
CONCLUZII
ANEXE
Codul sursă al formularului „Medicamente”
Codul sursă al formularului „Beneficiarii de medicamente”
Codul sursă al formularului „Medicamente > 35000 lei”
Codul sursă al formularului „Medicamente compensate/gratuite”
BIBLIOGRAFIE
PAGINI 81
=== l ===
CAPITOLUL 1
INTRODUCERE
Astăzi calculatorul nu mai reprezintă un subiect tabu, un apanaj al unei categorii restrânse de specialiști. Întâlnim calculatoare pretutindeni: în bănci, în magazine, în școli, în tipografii, la televiziune etc. Toată lumea, folosește direct sau indirect, un calculator.
În contextul societății actuale, caracterizată printr-o explozie informațională fără precedent în istoria omenirii, sistemele informatice reprezintă unul din elementele fundamentale care generează și controlează fluxurile informaționale la nivel micro și macroeconomic.
Sistemele informatice se construiesc. Au ca obiectiv sporirea eficienței activităților și servesc sistemul de conducere a organizației respective în obținerea informațiilor necesare luării deciziilor și urmărirea executării acestora.
Într-un sistem informatic sunt sistematizate toate activitățile, se fixează termene și sarcini exacte pentru fiecare persoană implicată în procesul informațional, sunt stabilite metodele cele mai potrivite pentru desfășurarea activităților ca și resursele necesare (echipamente, programe, specialiști), permanent sunt evaluate „ieșirile” pentru a se adapta la noile cerințe sau restricții, pentru a-l dezvolta.
Un sistem informatic este un produs. Pentru realizarea lui trebuie mai întâi specificate clar cerințele utilizatorului (ce se cere!), analizate condițiile existente (ce se dă!), imaginate diferite variante de proiectare și evaluate consecințele fiecăreia, construite procedurile program și cele de interfață, abia după aceasta urmând implementarea în condiții reale a aplicației soft. Partea finală este cea de întreținere a produsului creat și de dezvoltare. Dacă anumite schimbări tehnologice sau organizaționale conduc la considerarea sistemului neadecvat, se procedează la o nouă analiză a cerințelor și o reproiectare.
Etapele principale de realizare a produselor informatice
Efortul de realizare a unui software utilitar este declanșat de cererea unui client. Ca urmare a descoperirii unor „probleme”, aspecte negative în instituția unde lucrează sau pe care o conduce, clientul dorește realizarea unui produs informatic care să-i rezolve problema. O altă situație care poate declanșa cererea de soft poate fi dorința folosirii tehnicii noi de calcul sau a unor metode noi de conducere (programare dinamică, simulare etc.).
Primul pas este luarea contactului cu clientul pentru clarificarea domeniului unde se va implementa produsul informatic, clarificarea problemei puse, a motivelor, a costurilor estimative, a unor variante de rezolvare cu inventarierea efectelor lor. Este un moment decisiv pentru că, uneori, clientul își dă seama că nu poate suporta financiar efortul de dezvoltare a software-ului și renunță.
Etapa 2. Analiza diagnostic a situației existente
Este etapa cea mai importantă pentru că permite stabilirea exactă a cerințelor, obiectivelor și limitelor produsului informatic. Prin interviuri, chestionare și observări directe, prin cercetarea tuturor documentelor, actelor etc. se clarifică cerințele clientului și se stabilesc posibile variante de rezolvare.
Etapa 3. Proiectarea
Etapa de proiectare cuprinde o proiectare de ansamblu care urmărește conturarea unui model al viitoarei aplicații atât al datelor cât și al funcționalităților. Soluția informatică aprobată în etapa precedentă se structurează pe componente relativ independente, se determină resursele necesare și termenele de realizare.
Etapa 4. Proiectarea de detaliu – cuprinde:
a) Proiectarea bazei de date, a tabelelor, a relațiilor dintre acestea, a regulilor de validare, a condițiilor de integritate referențială etc.
b) Proiectarea interfețelor de intrare: documentele noi care intervin în sistemul informațional, fluxurile de informații de la sursele de date către calculator precum și machete de introducere a datelor în calculator sau a formularelor.
c) Proiectarea interfețelor de ieșire: documentele de rapoarte, graficele, precum și fluxurile acestor documente către utilizator.
d) Proiectarea prelucrărilor automate: proceduri sau interogări directe, modalitățile de apel.
e) Proiectarea programului monitor și meniului principal al aplicației.
Etapa 5. Construirea și testarea aplicației
Etapa de construire se poate uni cu etapa de proiectare pentru lucrările de mai mică amploare mai ales prin folosirea unui mediu vizual de dezvoltare. Rămâne însă deosebit de necesară testarea produsului cu date fictive în vederea depistării și corectării erorilor.
Etapa 6. Implementarea și experimentarea aplicației
Este părăsit vechiul sistem și puse în practică procedurile de culegere, transmitere și prelucrare a datelor specifice aplicației informatice. Este etapa cea mai „riscantă” pentru proiectanți pentru că de succesul sau insuccesul demersului poate depinde soarta întregului proiect.
Etapa 7. Exploatarea curentă, întreținerea și dezvoltarea
O aplicație informatică nu este statică, ea trebuie să fie permanent adaptată la cerințele noi care apar. Cerințele de modificare pot fi de mică amploare, se vor realiza din „mers” fără să fie afectate structurile de bază ale bazei de date sau prelucrărilor atunci spunem că are loc activitatea de întreținere a aplicației. Dacă însă sunt schimbări majore se restructurează organizația economică modelată de soft sau se schimbă profilul organizației atunci este necesară o reanalizare și reproiectare software.
De mai bine de două decenii, bazele de date prin performanțele și avantajele acestora au reprezentat și vor rămâne în continuare modalitatea principală de structurare și organizare a datelor în cadrul sistemelor informatice.
Organizarea datelor în vederea prelucrării pe calculator este o activitate tot așa de importantă ca și realizarea programelor. Cele două componente principale ale unui sistem informatic: datele și programele, se găsesc într-o strânsă interdependență. Un program, oricât de elaborat și rafinat ar fi, nu va produce rezultatele scontate, dacă va lucra cu o structură de date depășită. Tot așa de bine, o structură de date bine pusă la punct nu va putea suplini carențele unui program care o prelucrează.
Programele de baze de date, tehnologia bazelor de date joacă un rol important în domeniul informaticii utilizând sisteme de calcul. Este ușor de înțeles că bazele de date joacă un rol important în multe domenii în care calculatoarele sunt utilizate, cum sunt: afaceri, control, medicină, științe juridice, educație, gestiunea resurselor etc.
O bază de date poate fi definită ca un ansamblu de date elementare sau structurate, accesibile unei comunități de utilizatori. Ea poate fi de diverse mărimi și complexități.
Orice bază de date are următoarele proprietăți implicite:
o bază de date este o colecție logică coerentă de date ce are cel puțin un înțeles
baza de date este destinată, construită și populată cu date despre un domeniu bine precizat. Ea are un grup inerent de utilizatori și se adresează unui anumit grup de aplicații
o bază de date reprezintă câteva aspecte ale lumii reale creând orizontul propriu. Schimbările orizontului sunt reflectate în baza de date.
Lucrarea de față prezintă modul de proiectare și utilizare a unei baze de date pentru evidența produselor într-o farmacie. Baza de date se va realiza cu ajutorul mediului de dezvoltare Microsoft Access 2000 și va conține 6 tabele (Medicamente, Producător, Rețetă specială, Rețetă, Beneficiar, Doctor), interogări, formulare, rapoarte, pagini Web și macro-uri.
CAPITOLUL 2
NOȚIUNI GENERALE
DESPRE BAZE DE DATE
2.1. Conceptul de bază de date
O bază de date relațională este o colecție de date relaționale. Prin date înțelegem valori ce pot fi stocate și care au semnificație implicită. O bază de date este o colecție centralizată de date organizată în scopul optimizării prelucrării acestora în contextul unui set dat de aplicații.
O bază de date este un ansamblu de fișiere intercorelate, care conține nucleul de date necesare unui sistem informatic (aplicație informatică).
Un fișier este un ansamblu de înregistrări fizice, omogene din punct de vedere al conținutului și al prelucrării. O înregistrare fizică este unitatea de transfer între memoria internă și cea externă a calculatorului. Aceasta este formată din una sau mai multe înregistrări logice. O înregistrare logică este unitatea de prelucrare din punct de vedere al programului utilizator. Aceasta este formată dintr-un ansamblu de câmpuri, care descriu o anumită realitate.
2.2. Obiectivele fundamentale ale unei baze de date
Centralizarea datelor permite: suprimarea redundanței, asigurarea unicității înregistrării și controlul centralizat (asupra datelor). În prelucrarea clasică în care fișierele sunt dedicate aplicațiilor, aceleași date apar înregistrate
în mai multe fișiere și în formate diferite. Acest lucru implică o utilizare ineficientă a spațiului de memorie externă, actualizarea dificilă a acestor date și lizibilitate redusă ca urmare a formatelor diferite.
Independența între date și prelucrări. Baza de date, ca imagine a unei anumite realități, trebuie actualizată permanent. Acest lucru nu trebuie să afecteze programele de prelucrare. Pentru aceasta trebuie ca fiecare program să aibă o viziune proprie asupra bazei de date.
Realizarea de legături între entitățile de date, care sunt indispensabile pentru exploatarea eficientă a sistemului informatic.
Integritatea datelor asigură fiabilitatea și coerența bazei de date. Pentru aceasta trebuie definite restricții de integritate cum ar fi:
apartenența la o listă de valori sau interval;
apartenența la un anumit format;
reguli de coerență cu alte date.
Aceste reguli trebuie să reflecte atât aspectele statice cât și cele dinamice.
Securitatea datelor. Baza de date trebuie să fie protejată împotriva unei distrugeri logice (anomalie de actualizare) sau fizice. Pentru aceasta există instrumente care permit:
crearea unor puncte de repriză; adică salvarea din timp în timp a unor copii coerente ale bazei de date;
gestiunea unui jurnal de tranzacții; lista operațiilor realizate asupra bazei de date după ultimul punct de repriză.
Dacă apare o anomalie care ar putea distruge baza de date, pe baza copiei de pe ultima repriză și a jurnalului de tranzacții se poate reface baza de date în forma inițială. Protecția împotriva unei distrugeri fizice se face prin realizarea unei copii a bazei de date.
Confidențialitatea datelor este asigurată prin proceduri de:
identificare a utilizatorilor prin nume sau cod;
autentificarea prin parole;
autorizarea accesului diferențiat prin drepturi de creare, consultare, modificare sau ștergere pentru anumite segmente de date.
Partajarea datelor permite înlănțuirea tranzacțiilor solicitate simultan pe aceiași înregistrare din baza de date, prin blocarea cererilor în așteptare și deservirea ulterioară a acestora.
2.3. Sistemul de Gestiune a Bazelor de Date (SGBD)
O bază de date poate fi generată și menținută manual sau cu ajutorul programelor utilitare. O bază de date computerizată poate fi generată și menținută fie cu ajutorul unui grup de programe de aplicație specifice acestui scop, fie prin ceea ce se numește DataBase Management System (DBMS).
Un sistem de gestiune a bazelor de date constituie o interfață între utilizatori și baza de date, care permite în principal crearea, actualizarea și consultarea acesteia. În acest context putem defini SGBD-ul ca un instrument de asamblare, codificare, aranjare, protecție și regăsire a datelor în baza de date.
Sistemul de Gestiune a Bazei de Date asigură bazei de date următoarele caracteristici:
Independența datelor față de programul care le gestionează.
Nivel redus de redundanță: Din considerente de optimizare a timpului de răspuns se acceptă un anumit grad de redundanță.
Securitatea datelor (protecția la accesul neautorizat, în vederea extragerii sau distrugerii unor date cu caracter confidențial).
Integritatea datelor (protecția la defecțiuni hard sau soft).
Transparență. Facilități de utilizare a datelor fără ca utilizatorii să cunoască baza de date în întreaga ei complexitate.
Limbaje de descriere și manipulare a datelor de nivel foarte înalt. Existența unor limbaje performante de regăsire a datelor care permit exprimarea sub forma unor conversații a unor criterii cât mai complexe de selectare a informației și indicării unor reguli cât mai generale de editare a informațiilor solicitate.
Facilități multiutilizator. Datele pot fi accesate și chiar gestionate din diferite noduri ale rețelei de calculatoare de diferiți utilizatori.
Accesibilitate. Gestiunea datelor organizate în baza de date a fost preocuparea multor specialiști soft, ajungându-se la oferirea unor pachete de gestiune care permit gestiunea unor date foarte complexe în condiții de eficiență maximă.
Un SGBD conține monitorul, procesorul de consultare și diferite compilatoare pentru limbajele de descriere și de manipulare a datelor. Monitorul bazei de date este un ansamblu de module care realizează interfața dintre datele interne conținute în bază și programele sau comenzile de prelucrare.
Principalele funcțiuni pe care le îndeplinește un SGBD sunt următoarele:
memorarea datelor pe suportul extern prin sistemul de gestiune a fișierelor;
gestiunea datelor și a legăturilor dintre ele în vederea unei regăsiri rapide prin intermediul sistemului de acces (SGBD intern);
introducerea și extragerea datelor din/spre exterior în forma cerută de utilizator prin intermediul SGBD-ului extern.
2.4. Niveluri și modele de reprezentare a datelor
În demersul realizării unei baze de date există trei niveluri de percepție a acesteia:
1. extern, corespunzător utilizatorilor, care își exprimă cerințele informaționale prin așa numitele scheme externe (subscheme).
2. conceptual, aferent administratorului bazei de date, care se concretizează în schema conceptuală.
3. intern, corespunzător programatorului, care realizează reprezentarea datelor pe suport fizic.
Determinarea structurii unei baze de date se poate aborda ascendent, realizându-se descrierea schemelor externe, urmată de elaborarea schemei conceptuale, sau descendent, definind mai întâi, schema conceptuală și deducând ulterior schemele externe posibil de obținut.
Cel mai adesea, schema conceptuală se obține pe baza schemelor externe, prin eliminarea redundanțelor și „rafinarea” acestora. Trecerea de la schema conceptuală la cea internă se face prin intermediul limbajelor de descriere a datelor, care sunt incluse în SGBD-uri. Un model de date presupune un limbaj de descriere a realității, în timp ce o schemă este o descriere a unei realități după un model dat.
2.4.1. Nivelul extern (schema externă)
La nivel extern, fiecare grup de lucru care manipulează datele posedă o anumită descriere a acestora. Această descriere corespunde felului în care grupul vede baza de date în programele lui de aplicații.
Dacă la nivelele conceptual și intern schemele descriu o bază de date, la nivel extern ele reflectă mulțimea datelor care prezintă interes pentru un utilizator sau pentru un grup de utilizatori.
Există mai multe scheme externe, dar numai o singură schemă conceptuală și numai una internă. O schemă externă poate fi definită de către un grup de utilizatori. Anumite scheme externe se pot deduce unele din altele. Fiecare schemă externă trebuie însă să se regăsească în schema conceptuală.
2.4.2. Nivelul conceptual (modelul conceptual)
Nivelul conceptual este nivelul central care reflectă datele structurate astfel încât acestea să poată fi preluate cu ajutorul unui SGBD.
Schema conceptuală stă la baza modelului conceptual care va permite definirea proprietăților elementare ale obiectelor care interesează dintr-o întreprindere, gruparea acestora, în funcție de criterii de omogenitate stabilite, în scopul descrierii obiectelor lumii reale și a relațiilor dintre ele. Sunt definite regulile de care trebuie să se țină seama în manipularea datelor existente.
Cea mai cunoscută formă utilizată pentru modelarea datelor este diagrama entitate – relație. Modelul entitate – relație este o formă simplă de prezentare a structurii datelor, utilizat în procesul construcției bazelor de date, dar și în alte aplicații în care apar entități și relații între acestea.
O entitate este o persoană, un loc, un obiect, eveniment sau concept din domeniul de activitate a utilizatorului despre care organizația dorește să păstreze anumite date. Tipul entității, cunoscut și sub numele de clasa entității, este o colecție de entități care au proprietăți sau caracteristici comune. Fiecărui tip de entitate i se atribuie un nume. Cât timp numele reprezintă o clasă sau un set de cazuri, el este singular. Referirea la acesta se va realiza printr-un substantiv la singular. Se vor folosi litere majuscule, plasate în interiorul dreptunghiului corespunzător entității.
O instanțiere a entității sau instanță (caz) este o manifestare singulară a unui tip de entitate. Un tip de entitate se descrie o singură dată prin modelul datelor, în timp ce mai multe instanțe ale acelui tip de entitate pot fi reprezentate prin datele stocate în bazele de date. Fiecare tip de entitate are un set de atribute asociate lui.
Un atribut este o proprietate sau o caracteristică a unei entități care prezintă interes pentru organizație. La rândul lor și relațiile pot avea propriile lor atribute. Ca și numele tipurilor entităților, numele atributelor sunt substantive scrise cu majuscule, plasate în interiorul elipselor, legate de entitatea căreia i se asociază. Fiecare tip de entitate trebuie să aibă un atribut sau un set de atribute prin care să se efectueze diferențierea unui caz de același tip.
O cheie candidat este un atribut sau o combinație de atribute prin care se poate identifica în mod unic un caz (o instanță) al tipului entității respective. Sunt entități care pot avea două sau mai multe chei candidat. În acest caz proiectantul trebuie să decidă care din ele va fi folosită drept cheie primară.
O cheie primară este o cheie candidat care a fost selectată pentru a servi ca identificator de instanțe în cadrul unui tip de entitate. În reprezentările din diagrama entitate – relație, în elipsa sau elipsele aferente atributului sau atributelor ce formează cheia primară, numele respective se subliniază.
O relație este o asociere între instanțele uneia sau mai multor tipuri de entități care prezintă interes pentru organizație. Ele se pot simboliza printr-un romb. De, regulă relațiile sunt redate prin verbe.
Gradul unei relații este reprezentat printr-un număr al tipurilor de entități care participă la o relație. Cele mai întâlnite relații în modelele ER sunt:
unare (grad unu);
binare (grad doi);
ternare (grad trei);
Cardinalitatea exprimă manierea de participare a valorilor atributelor din entități la fiecare apariție de valori din asocieri. Cardinalitatea este sugerată prin 0 (zero), 1, M (multe), cu mențiunea că ele pot avea prezență obligatorie sau opțională.
Relațiile pot fi de trei tipuri:
Relație unu – la – unu (1: 1);
Relații unu – la –multe (1:M);
Relație multe – la – multe (M:N).
2.4.3. Nivelul logic (modelul relațional)
Modelul relațional pornește de la reprezentarea datelor într-o colecție de relații. Acest model a fost introdus de Cood în anul 1970. Față de alte modele el este mai simplu, structurile de date sunt mult mai uniforme, formalizarea este mult mai naturală.
Conceptele modelului relațional
Fiecare relație este asemănătoare cu un tabel și este reprezentată printr-o structură de tabel. Un rând al tabelei este denumit n-uplu, o coloană poartă denumirea de atribut, iar tabela se numește relație. Tipul datelor descriind tipul valorilor ce pot apărea în fiecare coloană este numit și domeniu. Un domeniu este reprezentat de un set de valori atomice. Pentru fiecare domeniu este specificat un tip de dată sau un format.
Domeniul este o noțiune mai cuprinzătoare decât atributul, reprezentând mulțimea tuturor valorilor posibile care definesc o anumită proprietate a unui obiect, spre deosebire de atribut care reprezintă mulțimea valorilor existente la un moment dat în coloana pe care o desemnează în cadrul relației. Într-o relație pot exista mai multe atribute care iau valori în aceleași domenii.
Relațiile se reprezintă într-o formă simplă prin tabele, supuse următoarelor restricții:
în fiecare coloană toate valorile sunt de același fel;
fiecare valoare este un număr sau un șir de caractere (nu trebuie să fie grup sau ansamblu);
ordinea liniilor în tabel nu este predefinită și nu sunt admise duplicate;
coloanele sunt identificate prin nume distincte care reprezintă atributele relației.
Avantajele modelului relațional
este un model simplu care permite utilizatorului să vadă baza de date ca o colecție de tabele (relații);
asigură independența fizică și logică a programelor de prelucrare față de structura datelor, eliminând din schema conceptuală și schemele externe toate detaliile privind structura de memorare și strategiile de acces;
operația de normalizare introdusă de modelul relațional asigură găsirea structurii optime a datelor prin înlăturarea anomaliilor de actualizare și diminuare a redundanței;
este un model omogen, deoarece reprezintă legăturile și asocierile dintre relații tot prin relații;
suplețe în comunicare cu utilizatorul neinformatician prin intermediul unor limbaje neprocedurale de nivel înalt.
Normalizarea relațiilor
E.F. Codd, a arătat că într-o anumită formă relațiile posedă proprietăți nedorite, pe care le-a numit anomalii de actualizare:
Anomalia de ștergere constă în faptul că anumite date care urmează să fie șterse, fac parte din tupluri în care se găsesc și alte date care mai sunt necesare în continuare, ori ștergerea făcându-se la nivelul tuplului, acestea se pierd.
Anomalia de adăugare constă în faptul că anumite date care urmează să fie adăugate, fac parte din tupluri incomplete (pentru care nu se cunosc toate datele), ceea ce face ca acestea să nu poată fi adăugate.
Anomalia de modificare rezultă din faptul că este dificil de modificat o valoare a unui atribut atunci când ea apare în mai multe tupluri ale relației.
Pentru a înlătura aceste anomalii, Codd a stabilit trei forme normale (3NF) pentru relații, cea mai bună definire fiind dată mai târziu de Boyce și Codd, fiind cunoscută sub numele de forma normală Boyce-Codd. Acesta a introdus procesul de normalizare care se bazează pe noțiunea de dependență funcțională (FD) ca relație între atributele unei entități ce are un caracter invariant. Vom defini dependența funcțională ca o legătură între două atribute din care al doilea poate fi determinat dacă se cunoaște primul.
Procesul de normalizare a relațiilor se realizează în mai mulți pași, începând cu forma normală unu (1NF) și ajungând (după ultimele cercetări) la forma normală cinci (5NF). Acesta constă în descompunerea unei relații în conformitate cu mulțimea dependențelor funcționale, într-o colecție de relații care să conserve informațiile și dependențele funcționale din relația inițială (descompunerea fără pierderi).
O relație este în forma normală 1 (1NF) dacă și numai dacă toate atributele ei conțin numai valori atomice.
O relație este în forma normală 2 (2NF) dacă și numai dacă este în 1NF și orice atribut noncheie este complet dependent funcțional de cheia primară.
O relație este în forma normală 3 (3NF) dacă și numai dacă este în 2NF și fiecare atribut noncheie nu este dependent tranzitiv pe cheia primară.
O relație se află în forma normală Boyce-Codd dacă și numai dacă fiecare determinant al dependenței funcționale identificate în cadrul unei relații este și cheie candidat. O tabelă se află in BCNF dacă se află în 1NF, 2NF, 3NF.
În procesul de normalizare a relațiilor, în afara celor trei forme au apărut alte două: forma 4 (4NF) și forma 5 (5NF) care conduc la diminuarea redundanței în baza de date. Trecerea de la forma normală 3NF la 4NF și 5NF se face operând asupra cheilor compuse între a căror atribute apar relații care generează dependențe ce nu sunt funcționale, numite dependențe multi-valoare (MVD).
2.4.4. Nivelul intern (fizic)
Nivelul intern (modelul fizic) este cel ce corespunde structurii în care sunt stocate datele în interiorul mașinii. Sunt specificate tabelele (fișierele) care le conțin (nume, organizare, localizare etc.), componentele fiecărui fișier (lungime, câmpuri, plasare a acestora în cadrul fișierului), căile de acces la componentele tabelelor (indecși, relații, legături între tabele).
Se vor avea în vedere cerințele privind asigurarea protecției datelor, atât din punct de vedere al conținutului câmpurilor din tabele (verificarea și validarea valorilor câmpurilor la introducere, evitarea ștergerii, din greșeală sau din rea voință, a datelor importante, cu secvențe de program special concepute), cât și în ceea ce privește accesul utilizatorului la baza de date (stabilirea drepturilor de acces trebuie să se facă ținând cont de rolul, funcția și sarcinile fiecărui utilizator).
2.5 Securitatea datelor
În legătură cu protecția și securitatea datelor se definesc următoarele concepte de bază:
Securitatea datelor – totalitatea măsurilor de protecție împotriva distrugerii accidentale sau intenționate, a modificării neautorizate sau a divulgării acestora;
Caracterul secret – este un concept ce se aplică la un individ sau organizație și constă în dreptul acestora de a decide ce informații se pot folosi în comun și în ce condiții;
Confidențialitate – se aplică la date și se referă la statutul acordat, aceasta reprezentând nivelul sau gradul de protecție ce trebuie asigurat informației respective;
Integritatea – se referă la restricția ca sensul datelor să nu difere față de cel înscris pe documentul sursă, impunând totodată ca datele să nu fie alterate accidental sau voit.
Prin securitatea bazei de date se înțelege o multitudine de măsuri destinate protecției informațiilor conținute în baza de date împotriva unor alterări, distrugeri sau divulgări neautorizate. Din acest motiv autorizarea reprezintă specificarea regulilor de acces ce stabilesc tipurile de acces permis la fiecare tip de informație, pentru acțiunile autorizate fiind respectate o serie de reguli de acces.
CAPITOLUL 3
MEDIUL DE DEZVOLTARE
MICROSOFT ACCESS 2000
Microsoft Access 2000 face parte din pachetul de programe Microsoft Office și este un sistem de gestiune a bazelor de date relațional ce pune la dispoziția utilizatorilor aplicații complexe care să ajute la crearea și manipularea bazelor de date și la obținerea rapoartelor pe baza acestor date.
Principalele caracteristici ale Sistemului de Gestiune a Bazelor de Date ACCESS 2000 sunt:
dispune de un limbaj de programare procedural foarte puternic și flexibil, limbaj orientat pe obiecte, prin care programatorii își pot descrie datele și aplicațiile (Visual Basic for Aplications);
are implementat limbajul de cereri SQL (AccessSQL) pentru utilizatorii neinformaticieni;
pune la dispoziția programatorilor nu numai un compilator și un mecanism performant de accesare a datelor ci și un set de utilitare puternice de proiectare încorporate într-un mediu integrat și omogen;
este compatibil cu tehnologia ActiveX care permite realizarea aplicațiilor client/server;
permite accesul la baze de date din rețeaua Internet, fiind un instrument util pentru publicarea informațiilor în paginile Web;
permite comunicarea cu alte aplicații (de exemplu Excel, Word) prin mecanisme DDE (transferul dinamic de date);
importă și exportă date în/din alte formate (Excel, dBASE, FoxPro, Oracle, Paradox) pe diferite suporturi local sau la distanță;
are facilitatea OLE (legarea și încorporarea de obiecte). Limbajul suportă legarea obiectelor și încorporarea lor în aplicații proprii Access, cum sunt sunetele, imaginile, obiecte spreadsheet create în alte aplicații Windows;
este autodocumentat prin help, apelabil contextual sau la cerere;
conține instrumente wizard care permit utilizatorului crearea facilă a unor obiecte;
acceptă nume lungi în definirea fișierelor;
permite crearea de comenzi rapide (shortcuts) în vederea accesării obiectelor Access;
permite crearea de grupuri de obiecte definite de utilizator în cadrul bazei de date;
permite setarea proprietăților inițiale ale bazei de date cum ar fi titlul aplicației, atașarea de pictograme (icons), precum și forma de afișare inițială;
oferă posibilitatea creării unei copii a bazei de date și, prin utilizarea aplicației Briefcase, realizarea sincronizării între diferitele copii ale bazei de date;
permite utilizarea instrumentului wizard în vederea creării a mai mult de 20 de tipuri comune de aplicații;
permite utilizarea de adrese și legături Internet;
are integrată facilitatea de Office Assistant (help animat).
permite programarea vizuală a aplicațiilor folosind generatoare sau designer-e – programe încadrate în generația a IV-a (4 GL) pentru proiectarea interactivă a tuturor obiectelor cu care lucrează o aplicație.
recunoaște și se adaptează automat la mediile multiutilizator fără a fi nevoie de o variantă specială pentru rețea;
Resursele solicitate de Microsoft Access 2000 sunt:
sistem de operare Windows
calculator Pentium, 32 MB memorie RAM
200 MB spațiu pe HD
CD-ROM, SVGA
O bază de date ACCESS poate fi definită ca o colecție de obiecte: tabele (table), cereri de interogare (query), formulare (form), rapoarte (report), pagini Web (pages), comenzi macro (macro) și module (module).
Tabela (Table) este un obiect definit de utilizator în care sunt stocate datele primare (expresia modelului relațional).
Interogările (Queries) sunt acele cereri de informații ale utilizatorilor care necesită anumite prelucrări ale datelor memorate în tabelele bazei de date: sortări, totalizări, filtrări etc. Prin intermediul interogărilor Access putem combina mai multe tabele în vederea obținerii rapoartelor sau chiar putem actualiza datele din acestea, în mod simultan, prin formulare atașate interogării.
Formulare (Formms) sunt numite și video-formate sau machete de vizualizare, introducere, editare a datelor din tabele și/sau interogări. Un formular apare ca o fereastră Windows cu obiecte diferite (textbox, label, combo etc.) legate sau nu de datele conținute în tabelele bazei de date. Poate fi folosit chiar ca panou de prezentare a aplicației sau ca panou de comandă care îi conduce pe utilizatori la formularul sau raportul dorit.
Rapoarte (Reports) sunt modalități de prezentare a informațiilor sintetice sau detaliate despre o anumită activitate. Apar sub formă de tabele, etichete sau diagrame.
Pagini Web (Pages) sunt fișiere HTML care permit afișarea și introducerea de date prin rețeaua Internet.
Macro-uri (Macros) sunt extensii ale limbajului Visual Basic și permit automatizarea acțiunilor asupra unor obiecte ale bazei de date. Un macro poate deschide/închide un tabel/formular, poate lansa în execuție alte aplicații, poate trimite obiecte pe Internet sau doar afișa mesaje adecvate.
Modulele program (Modules) conțin codul sursă al unor funcții și proceduri scrise în limbajul VBA.
Microsoft Access lucrează cu obiecte într-un mediu condus de evenimente
În Microsoft Access bazele de date, tabelele, câmpurile din tabele, interogările, rapoartele, benzile de lucru din rapoarte, formularele etc. toate sunt obiecte. Un obiect este un lucru (o fereastră, un buton radio, un comutator etc.) căruia îi putem defini anumite proprietăți, evenimentele care pot să acționeze asupra lui și acțiunile pe care respectivul obiect le realizează ca răspuns la aceste evenimente sau pe care le are incluse în funcționalitatea sa.
Fiecare obiect Access are definite toate proprietățile într-o fereastră specială Properties care se deschide din meniul View sau din meniul contextual atașat obiectului. Utilizatorul poate seta anumite proprietăți la valorile dorite.
Un eveniment este o activitate specifică și predeterminată, inițiată de sistemul de operare (eveniment intern) sau de utilizator (eveniment extern) și la care un obiect știe să reacționeze. Unui eveniment i se poate atașa o anumită procedură (numită Event procedure) sau o macroinstrucțiune în limbajul Visual Basic pus la dispoziție de Access. Metodele sunt proceduri asociate unui obiect.
Microsoft Access dispune de un limbaj procedural pentru dezvoltarea aplicațiilor: Visual Basic for Applications
Visual Basic for Applications este un subset al limbajului de programare Visual Basic și permite dezvoltarea aplicațiilor cu baze de date Access într-o manieră programatică. VBA este utilizat de majoritatea aplicațiilor Office și putem transfera cod de la o aplicație la alta. Datorită automatizării OLE, putem integra complet aplicațiile Office pentru a transfera date între ele și a rula chiar o aplicație din alta. Codul VBA este reținut în module. Există două categorii de module: module de program (module) și module de clasă – deschise automat atunci când dorim scrierea/editarea unei proceduri eveniment asociată unui obiect (class module). Editarea unui modul se face în mediul Visual Basic Editor. Toate modulele conțin o parte de declarații și o parte de proceduri și/sau funcții.
Microsoft Access gestionează tipuri diferite de date
SGBDR Access permite folosirea datelor numerice, șiruri de caractere, date calendaristice și valori logice (booleene). Pot fi de asemenea încorporate sau doar legate la câmpurile unei tabele obiecte ca documente word, imagini sau sunete. O altă facilitate este posibilitatea includerii unei legături (Hyperlink) pentru accesarea directă din tabela de date a site-ului web dorit.
Microsoft Access oferă utilizatorilor posibilitatea lucrului în mod vizual
Interfața Access, prietenoasă, orientată spre ferestre, meniuri, obiecte de control, permite modul de lucru vizual. Acest mod de lucru este ușor de utilizat pentru operațiile directe ale utilizatorilor asupra datelor oferind avantajul unei viteze mari de lucru.
Proiectarea vizuală a devenit un instrument de programare modern cu ajutorul căruia pot realiza programe și utilizatorii neinformaticieni fără să cunoască restricțiile sintactice ale unui limbaj de programare.
Abordarea vizuală a obiectelor face ca Access să fie considerat un mediu de dezvoltare rapidă a aplicației (RAD – Rapid Application Development).
Instrumentele Designer – sunt programe dare permit construirea, după cerințele și inspirația proiectantului, anumitor obiecte ale aplicației: tabele, formulare, rapoarte. Fereastra principală este însoțită de o serie de alte instrumente: bară cu butoane, meniuri contextuale etc.
Instrumentele Builder – sunt programe de asistență care permit construirea rapidă a expresiilor, macroinstrucțiunilor și codului de program.
Instrumentele Wizard – sunt programe de asistență care permit proiectanților să construiască obiecte (bază de date, tabel, formular, raport, obiect de interfață) sau să îndeplinească anumite sarcini pe baza răspunsurilor la întrebări succesive puse în ferestrele de dialog. Proiectanții pot trece de la o etapă la alta, pot reveni sau chiar abandona sarcina.
Microsoft Access gestionează o bază de date cu model relațional orientat spre obiecte
Orice activitate în Access se desfășoară asupra unei baze de date, deci prima operație pe care o face un utilizator când intră în mediul Access este să deschidă baza de date – dacă există – sau să creeze una nouă.
Toate activitățile se desfășoară având deschisă fereastra bazei de date DataBase Window care permite atât crearea, deschiderea, închiderea tuturor obiectelor ei cât și evidența acestor operații.
Microsoft Access are încorporat sistemul Help
La fel ca majoritatea aplicațiilor soft de firmă, Access are încorporat un sistem Help (de asistență). Acesta poate fi apelat prin comanda <Help, Microsoft Access Help> sau prin activarea tastei F1 și permite utilizatorilor să consulte în timpul lucrului un manual Access, să adreseze întrebări sistemului, să caute informații pe baza anumitor cuvinte cheie.
Pentru ca sistemul Help să fie mult mai ușor de utilizat, începând cu versiunea 97 a pachetului Microsoft Office a fost introdus asistentul. Acesta adaugă sistemului Help animație, dar permite și asistarea continuă a utilizatorilor pe întreaga perioadă de realizare a aplicației. În versiunea Access 2000 asistentul a fost mult îmbunătățit fiind sporită și animația.
Pentru a facilita realizarea de aplicații în Microsoft Access, au fost introduse instrumentele de ajutor wizards, care pot fi clasificate în două categorii: generale și orientate obiect. Rolul acestor instrumente este de a realiza în mod automat o bază de date sau un anumit obiect (tabel, formular, cerere de interogare, raport), luând în considerare anumite preferințe ale utilizatorului.
CAPITOLUL 4
PROIECTAREA BAZEI DE DATE
O farmacie dorește să-și informatizeze activitatea. Baza de date care se va crea va conține informații despre medicamente, producători, rețete (compensate, gratuite, în numerar), beneficiarii de medicamente compensate și gratuite, precum și informații despre doctorii care au eliberat rețetele.
Medicamentele sunt caracterizate prin ID, denumire, tip, uz, ambalaj, cantitate, preț. Ele pot fi produse de unul sau mai mulți producători. Producătorii sunt caracterizați prin ID, nume, adresă, telefon. Aceștia pot produce unul sau mai multe medicamente.
Medicamentele compensate și gratuite se dau pe baza unor rețete. Rețetele vor conține ID rețetă, numărul rețetei, data când a fost eliberată, numele și prenumele beneficiarului, denumire și ID medicamente, cantitatea de medicamente necesară, codul doctorului care a eliberat rețeta și denumirea celor care asigură medicamentele compensate și gratuite. O rețetă poate să conțină unul sau mai multe medicamente. De asemenea un medicament poate să apară pe una sau mai multe rețete.
Rețetele în numerar sunt caracterizate prin ID și număr rețetă, data eliberării, denumire și ID medicamente, cantitatea de medicamente eliberată, numele și prenumele pacientului și codul doctorului care a eliberat rețeta.
Beneficiarii de medicamente compensate și gratuite vor fi caracterizați prin CNP, nume și prenume. Un beneficiar poate să dețină una sau mai multe rețete, iar o rețetă aparține unuia sau mai multor beneficiari.
Despre doctorii care eliberează rețetele se vor reține următoarele date: codul, numele și prenumele. Un doctor eliberează una sau mai multe rețete, iar o rețetă poate fi eliberată de unul sau mai mulți doctori.
Baza de date va fi creată cu ajutorul mediului de dezvoltare Microsoft Access 2000.
4.1. Modelul conceptual al datelor
În urma analizei problemei rezultă următoarele entități: Producător, Medicamente, Rețetă Specială, Rețetă, Beneficiar, Doctor.
1,N 1,N
1,N 1,N
1,N 1,N
1,N 1,N
1,N
1,N 1,N 1,N
Fig. 1 Diagrama entitate – relație
Entitate tip
Relație
Atribut cheie
Entitatea PRODUCĂTOR are următoarele atribute: nume, adresă, telefon. Atributul cheie este ID Producător.
Entitatea MEDICAMENTE are următoarele atribute: denumire, tip, uz, ambalaj, cantitate, preț. Atributul cheie este ID Medicament.
Atributele entității REȚETĂ SPECIALĂ sunt: număr rețetă, data eliberării, tipul rețetei, numele și prenumele beneficiarului, denumire medicamente, cantitate medicamente, asigurare, cod doctor. Atributul cheie este ID Rețetă Specială.
Entitatea REȚETĂ are atributele: număr rețetă, data eliberării, nume și prenume pacient, denumirea medicamentelor, cantitatea de medicamente necesară și codul doctorului care a eliberat rețeta. Atributul cheie este ID rețetă.
Entitatea BENEFICIAR prezintă următoarele atribute: nume, prenume, iar atributul cheie este CNP.
Entitatea DOCTOR are atributele nume, prenume, atributul cheie fiind codul doctorului.
Relații între entități:
Producător – Medicamente: un producător poate produce unul sau mai multe medicamente, de unde rezultă o relație numită „Produce”.
Medicamente – Rețetă Specială: o rețetă poate conține unul sau mai multe medicamente, de unde rezultă corespondența „Cuprinde”.
Medicamente – Rețetă: o rețetă poate conține unul sau mai multe medicamente, de unde rezultă tot o relație numită „Cuprinde”.
Beneficiar – Rețetă Specială: un beneficiar posedă una sau mai multe rețete compensate sau gratuite, de unde rezultă relația „Posedă”.
Doctor – Rețetă Specială: un doctor eliberează una sau mai multe rețete compensate sau gratuite, de unde rezultă o relație „Eliberează”.
Doctor – Rețetă: un doctor poate să elibereze una sau mai multe rețete în numerar, deci rezultă relația „Eliberează”.
4.2. Modelul relațional al datelor
PRODUCĂTOR (ID Producător, nume producător, adresă, telefon)
MEDICAMENTE (ID Medicament, denumire medicament, tip medicament, uz medicament, ambalaj, cantitate, preț, ID producător)
REȚETĂ SPECIALĂ (ID Rețetă specială, număr rețetă, data eliberării, nume beneficiar, prenume beneficiar, CNP, ID Medicament, denumire medicament, cantitate, cod doctor, asigurare)
REȚETĂ (ID Rețetă, număr rețetă, data eliberării, nume pacient, prenume pacient, ID medicament, denumire medicament, cantitate, cod doctor)
BENEFICIAR (CNP, nume beneficiar, prenume beneficiar, )
DOCTOR (Cod doctor, nume doctor, prenume doctor)
4.3. Crearea bazei de date
La pornire SGBD ACCESS afișează următorul ecran:
Se va construi baza de date numită Farmacie.mdb astfel:
– se selectează Blank Access database și se activează butonul OK.
– în fereastra de dialog apărută se introduce numele bazei de date și se activează butonul Create, care va afișa rezultatul.
4.4. Crearea tabelelor
După crearea bazei de date urmează crearea tabelelor. Crearea structurii tabelelor se poate face în trei moduri:
– utilizând fereastra de proiectare (Create table in design view);
– prin introducerea datelor (Create table by entering data);
– utilizând instrumentul Wizard (Create table by using wizard).
În fereastra Database se execută click pe eticheta Table. Am ales opțiunea Create table in design view (Modul Proiectare), considerând că este modul cel mai eficient de creare a tabelelor. Modul Design view presupune introducerea informațiilor de structură de către utilizator: numele, tipul și proprietățile fiecărui câmp, precum și cheia principală a tabelei.
4.4.1. Crearea tabelei PRODUCĂTOR
Se execută dublu click pe Create table in design view. Pe ecran va apărea fereastra Table. În cadrul acestei ferestre se definesc numele câmpului (Field Name), tipul de date (Data Type) și opțional o descriere a câmpului respectiv (Description). În panoul de jos al ferestrei se introduc celelalte proprietăți ale câmpului.
Câmpurile tabelei sunt următoarele:
ID PRODUCĂTOR este de tip AutoNumber, conținând o valoare numerică (Long Integer) și reprezintă numărul de identificare al producătorului. Acest câmp reprezintă cheia primară a tabelei.
NUME PRODUCĂTOR este de tip Text, având mărimea de 30 de caractere și reprezintă numele producătorului de medicamente.
ADRESA este de tip Text, cu dimensiunea de 70 de caractere, reprezentând adresa producătorului.
TELEFON este de tip Text, mărimea câmpului fiind de 15 caractere și reprezintă numărul de telefon al producătorului.
4.4.2. Crearea tabelei MEDICAMENTE
Se execută dublu click pe Create table in design view, iar în fereastra Table se specifică numele și mărimea câmpurilor, tipul de dată folosit și descrierea câmpurilor respective.
Câmpurile tabelei sunt:
ID MEDICAMENT este de tip AutoNumber (Long Integer), reprezintă numărul de identificare al medicamentului și este cheia primară a tabelei.
DENUMIRE MEDICAMENT este de tip Text, dimensiunea câmpului este de 25 de caractere și reprezintă denumirea medicamentului.
TIP MEDICAMENT este de tip Text, cu mărimea câmpului de 15 caractere, reprezentând tipul medicamentului.
UZ MEDICAMENT este de tip Text, având dimensiunea de 10 caractere și reprezentând calea de administrare a medicamentului.
AMBALAJ este de tip Text, dimensiunea câmpului fiind de 50 caractere și reprezintă modul de prezentare al medicamentului.
CANTITATE este de tip Text, cu mărimea de 13 caractere, reprezentând cantitatea de medicamente adusă în farmacie.
PREȚ este de tip Text, dimensiunea câmpului este de 12 caractere și reprezintă prețul unei cutii sau flacon de medicamente.
ID PRODUCĂTOR este de tip Number (Long Integer), reprezintă numărul de identificare al producătorului. Acesta este cheia externă a tabelei.
4.4.3. Crearea tabelei REȚETĂ SPECIALĂ
Se execută dublu click pe Create table in design view, introducându-se în fereastra Table numele, mărimea câmpurilor, tipul de dată folosit și descrierea câmpurilor respective.
Tabela are următoarele câmpuri:
ID REȚETĂ SPECIALĂ este de tip AutoNumber (Long Integer) și reprezintă numărul de identificare al rețetei. Acest câmp este cheie primară.
NUMĂR REȚETĂ este de tip Text , cu mărimea de 9 caractere și reprezintă numărul rețetei.
DATA ELIBERĂRII este de tip Date/Time și reprezintă data când a fost eliberată rețeta.
TIPUL REȚETEI este de tip Text, dimensiunea câmpului este de 10 caractere și reprezintă tipul rețetei (compensată sau gratuită).
NUME BENEFICIAR este de tip Text, dimensiunea câmpului fiind de 15 caractere și reprezintă numele celui care beneficiază de medicamente compensate.
PRENUME BENEFICIAR este de tip Text, cu mărimea de 15 caractere, reprezentând prenumele beneficiarului de medicamente compensate.
CNP este de tip Text, cu dimensiunea de 13 caractere, reprezintă codul numeric personal al beneficiarului și este cheie externă pentru tabelă.
ID MEDICAMENT este de tip Number (Long Integer), înseamnă numărul de identificare al medicamentului și este cheie externă pentru tabelă.
DENUMIRE MEDICAMENT este de tip Text, dimensiunea câmpului fiind de 25 de caractere și reprezintă denumirea medicamentelor.
CANTITATE este de tip Text având lungimea de 15 caractere și reprezentând cantitatea de medicamente de care beneficiază pacientul.
COD DOCTOR este de tip Number (Long Integer), reprezintă codul doctorului care a eliberat rețeta și este cheie externă pentru tabelă.
ASIGURARE este de tip Text, dimensiunea câmpului fiind de 20 de caractere și reprezintă Casa de Asigurări.
4.4.4. Creare tabelei REȚETĂ
Se execută dublu click pe Create table in design view. Pe ecran va apărea fereastra Table. În cadrul acestei ferestre se definesc numele câmpului (Field Name), tipul de date (Data Type) și opțional o descriere a câmpului respectiv (Description). În panoul de jos al ferestrei se introduc celelalte proprietăți ale câmpului.
Tabela are următoarele câmpuri:
ID REȚETĂ este de tip AutoNumber (Long Integer) și reprezintă numărul de identificare al rețetei. Acest câmp este cheie primară.
NUMĂR REȚETĂ este de tip Text , cu mărimea de 9 caractere și reprezintă numărul rețetei.
DATA ELIBERĂRII este de tip Date/Time și reprezintă data când a fost eliberată rețeta.
NUME PACIENT este de tip Text, dimensiunea câmpului fiind de 15 caractere și reprezintă numele celui care beneficiază de medicamente compensate.
PRENUME PACIENT este de tip Text, cu mărimea de 15 caractere, reprezentând prenumele beneficiarului de medicamente compensate.
ID MEDICAMENT este de tip Number (Long Integer), înseamnă numărul de identificare al medicamentului și este cheie externă pentru tabelă.
DENUMIRE MEDICAMENT este de tip Text, dimensiunea câmpului fiind de 25 de caractere și reprezintă denumirea medicamentelor.
CANTITATE este de tip Text având lungimea de 15 caractere și reprezentând cantitatea de medicamente de care beneficiază pacientul.
COD DOCTOR este de tip Number (Long Integer), reprezintă codul doctorului care a eliberat rețeta și este cheie externă pentru tabelă.
4.4.5. Crearea tabelei BENEFICIAR
Se execută dublu click pe Create table in design view, iar în fereastra Table se definesc numele, mărimea câmpurilor, tipul de dată folosit și descrierea câmpurilor respective.
Câmpurile tabelei sunt următoarele:
CNP este de tip Text, are lungimea de 13 caractere, reprezintă codul numeric personal al beneficiarului de medicamente compensate și este cheie primară pentru tabelă.
NUME BENEFICIAR este de tip Text, cu dimensiunea de 15 caractere și înseamnă numele celui care beneficiază de medicamente compensate.
PRENUME BENEFICIAR este de tip Text, având mărimea de 15 caractere și reprezentând prenumele beneficiarului de medicamente compensate.
4.4.6. Crearea tabelei DOCTOR
Se execută dublu click pe Create table in design view, iar în fereastra Table se specifică numele și mărimea câmpurilor, tipul de dată folosit și descrierea câmpurilor respective.
Tabela are următoarele câmpuri:
COD DOCTOR este de tip Number (Long Integer), reprezintă codul doctorului care eliberează rețete compensate. Acest câmp este cheie primară pentru tabel.
NUME DOCTOR este de tip Text, cu lungimea de 15 caractere, reprezentând numele doctorului.
PRENUME DOCTOR este de tip Text având dimensiunea de 15 caractere și reprezentând prenumele doctorului.
4.5. Relaționarea tabelelor
Un element foarte important în proiectarea unei baze de date este definirea sistemului de relații dintre tabelele acesteia. În absența unui sistem de relații, o bază de date nu este mai performantă decât o foaie de calcul tabelar, irosindu-se astfel toate posibilitățile oferite de mecanismul bazei de date. Este dificil de conceput o bază de date utilă care să nu includă câteva relații între tabele.
Pentru a crea relații între tabele se procedează astfel:
1. Se execută click cu butonul drept al mouse-ului în fereastra bazei de date și din meniul de context se execută un click pe opțiunea Relationships.
2. Dacă este prima dată când deschidem fereastra Relationships a bazei de date, va fi afișată și fereastra Show Table, care ne permite să stabilim noi relații (sau să modificăm relațiile existente) între tabele și interogări. Pentru a adăuga un tabel sau o interogare în fereastra Relationships, se execută un click pe numele unui tabel din fereastra Show Table, iar apoi un click pe butonul OK. Se reia operația până la introducerea tuturor tabelelor în fereastra Relationships. În final se apasă butonul Close pentru a închide caseta Show Table.
3. Pentru a stabili acum o relație între tabele se agață câmpul ce reprezintă cheia primară dintr-un tabel și se aruncă peste câmpul ce reprezintă cheia externă din celălalt tabel. Cele două câmpuri trebuie să aibă același nume și același tip de dată.
După crearea structurii și a relațiilor dintre tabele urmează introducerea datelor.
4.6. Operații elementare asupra tabelelor
1. Deschiderea/închiderea unei tabele. Orice operație asupra unei tabele, cu excepția definirii structurii, impune deschiderea acesteia, iar după terminarea activității asupra datelor respective tabela va trebui închisă. Deschiderea unui fișier tabelă se face prin butonul de deschidere, iar închiderea – prin butonul de închidere al ferestrei tabelei.
2. Deplasarea în tabela de date. Posibilitatea poziționării pe un anumit articol sete o facilitate acordată utilizatorilor. Bara de deplasare plasată pe ultima linie a ferestrei tabelei permite: poziționarea pe primul articol al tabelei, devans cu un articol – către începutul tabelei, afișarea numărului articolului curent, avans către sfârșitul fișierului cu un articol, salt la ultima înregistrare a tabelei, adăugarea și poziționarea pe un articol vid.
3. Sortarea datelor din tabele. Prin sortare se obțin datele aranjate crescător sau descrescător după valorile unei chei.
4. Adăugarea articolelor. În fereastra Datasheet se poziționează cursorul pe o înregistrare vidă și se introduc noile valori.
5. Ștergerea articolelor. Se marchează articolele pe care dorim să le ștergem prin glisarea mouse-ului pe verticala din stânga tabelei și apoi apăsând tasta Delete. La mesajul sistem putem confirma ștergerea sau anula operația prin Cancel.
6. Modificarea valorilor din articole. După poziționarea pe linia unde dorim efectuarea corcției se observă semnul creion care se păstrează până la terminarea corecției și trecerea la altă linie.
7. Anularea corecției. Access păstrează informația anterioară corecției dând utilizatorului posibilitatea anulării modificărilor făcute și revenirii la forma inițială.
8. Duplicarea sau copierea tabelelor. Operația de copiere a unei tabele într-o alta de același tip se face prin File – Export. Se deschide o fereastră de dialog prin care se precizează locul și numele tabelei destinație. Se poate copia doar structura sau conținutul împreună cu structura.
9. Filtrarea articolelor. a) Filter By Selection – când dorim selectarea articolelor care conțin o anumită valoare pe care ne-am poziționat anterior; b) Filter Excluding Selection – atunci când dorim selectarea articolelor care nu conțin o anumită valoare; c) Advanced Filter/Sort – pentru indicarea unor condiții compuse de filtrare.
10. Căutare și modificare. Una dintre funcțiile importante ale unui SGBD este accesarea rapidă a tabelei în vederea poziționării pe o anumită înregistrare pentru afișarea conținutului și/sau modificarea lui.
11. Indexarea tabelelor. Indexarea este o metodă de accesare rapidă într-o manieră ordonată la conținutul unei tabele fără a duplica datele propriu-zise, fără a le depune în altă tabelă și a avea grijă de ele. Alte avantaje sunt date de posibilitatea folosirii expresiilor drept criteriu de ordonare, selectarea după criterii unice, actualizarea promptă a indecșilor odată cu datele propriu-zise.
CAPITOLUL 5
INTEROGĂRI
O interogare este o modalitate de selecție prin interogări și combinare a datelor provenind din una sau mai multe surse care să servească la realizarea rapoartelor, formularelor, coloanelor de căutare etc.
O interogare va fi reținută într-un fișier de cereri și la execuție va determina obținerea unui set dinamic de date numit Dynaset folosind numai coloanele specificate și liniile care satisfac condițiile de selecție. Orice modificare a datelor în tabelele sursă conduce la modificarea rezultatului interogării. Orice modificare în Dynaset conduce la modificări în tabelele sursă. Seturile de date dinamice obținute la execuția interogării nu se memorează ca atare, ci se generează automat la lansarea interogării. Deci rezultatul interogării este un fișier virtual de date.
Interogarea bazei de date se poate face în mai multe moduri:
– prin vizualizarea în totalitate a conținutului tabelelor;
– prin vizualizarea parțială sau totală a conținutului tabelelor cu ajutorul unor formulare sau situații finale;
– prin cereri explicite.
Primele două moduri pot fi catalogate ca interogări simple, fără restricții și pot fi formulate pentru a singură tabelă. Interogarea prin cereri explicite este complexă, comportând în general mai multe tabele, ale căror date sunt filtrate prin intermediul unor criterii. Ultima modalitate este implementată în Access prin componenta numită cerere de interogare (query), care poate fi de cinci feluri: selecție (select), analiză încrucișată (crosstab), acțiune (action), SQL (Structured Query Language) și parametrată (parameter).
Pentru crearea unei interogări se execută click pe eticheta Queries a ferestrei bazei de date și se alege opțiunea Create query in design view. De asemenea interogările pot fi create și cu ajutorul limbajului SQL. Limbajul SQL este un limbaj neprocedural sau declarativ deoarece utilizatorul lui descrie numai informațiile pe care vrea să le obțină în urma interogării, fără a fi nevoie să stabilească modalitățile de a ajunge la rezultatele dorite.
Instrucțiunile SQL pot fi: instrucțiuni de definire a datelor, de manipulare a datelor (adăugare, modificare, ștergere), de selecție, de procesare a tranzacțiilor, de control al cursorului și instrucțiuni privind controlul accesului la date. Principalele categorii de cuvinte cheie ale vocabularului SQL sunt: instrucțiunile, clauzele, funcțiile, operatorii.
Instrucțiunile au cel mai important rol în executarea interogării deoarece determină executarea unei acțiuni. Clauzele restricționează aria valorică a entităților ce participă la interogare. Funcțiile îmbunătățesc capacitatea limbajului SQL de manipulare a datelor. Operatorii sunt de mai multe feluri și efectuează o comparare a valorilor selecției.
Sistemul de gestiune a bazelor de date Access 2000 acceptă utilizarea limbajului de interogare SQL. Existența tehnicii grafice QBE (Query by Example – interogare prin exemplu) permite proiectarea facilă a unor interogări complexe. Informația definită pe grila QBE va fi automat transformată într-o instrucțiune SQL. Dialectul Access conține unele particularități în raport de standardul ANSI SQL, fiind mai mult conceput pentru crearea interogărilor de selecție.
Pentru a putea scrie corect o instrucțiune SQL în Access 2000 este necesară respectarea strictă a unor reguli de sintaxă:
orice instrucțiune SELECT se va încheia cu „ ; ”;
într-o interogare unde se folosesc câmpuri din mai multe tabele, pentru a separa numele tabelului de numele câmpului, se va utiliza „ .”;
parantezele drepte încadrează numele de câmpuri doar când acestea conțin spații sau simboluri neacceptate de SQL;
pentru a delimita parametrii dintr-o listă, se utilizează virgulele;
valorile de tip șir se marchează prin apostrof sau ghilimele;
inegalitățile din cadrul clauzelor se vor specifica prin „< >”;
simbolurile „?” și „*” sunt folosite pentru a desemna unul sau mai multe caractere de înlocuire;
pentru a evidenția valorile de tip dată/timp se apelează la „#”;
Instrucțiunea SELECT este cea mai importantă și mai folosită instrucțiune SQL. Permite specificarea datelor care vor constitui ieșirea din interogare precum și sursa acestora.
Clauza FROM precizează numele tabelului sau tabelelor sursă din care vor fi preluate înregistrările necesare interogării.
Clauza WHERE specifică faptul că vor fi afișate numai înregistrările care îndeplinesc anumite condiții.
Clauza ORDER BY este utilizată atunci când se dorește ca rezultatele interogării să fie ordonate în mod crescător (ASC) sau descrescător (DESC).
1. Să se afișeze denumirea medicamentelor și numele producătorilor care produc medicamente de tip „comprimate”.
Codul SQL aferent interogării este:
SELECT PRODUCATOR.[NUME PRODUCATOR], MEDICAMENTE.[DENUMIRE MEDICAMENT], MEDICAMENTE.[TIP MEDICAMENT]
FROM PRODUCATOR RIGHT JOIN MEDICAMENTE ON PRODUCATOR.[ID PRODUCATOR] = MEDICAMENTE.[ID PRODUCATOR]
WHERE (((MEDICAMENTE.[TIP MEDICAMENT])="comprimate"));
2. Se cer codul numeric personal, numele și prenumele celor care au beneficiat de medicamente gratuite.
Codul SQL este:
SELECT BENEFICIAR.CNP, [RETETA SPECIALA].[NUME BENEFICIAR], [RETETA SPECIALA].[PRENUME BENEFICIAR], [RETETA SPECIALA].[TIPUL RETETEI]
FROM BENEFICIAR RIGHT JOIN [RETETA SPECIALA] ON BENEFICIAR.CNP = [RETETA SPECIALA].CNP
WHERE ((([RETETA SPECIALA].[TIPUL RETETEI])="gratuita"));
3. Se cere afișarea codului, numelui și prenumelui doctorilor care au eliberat rețete în data de 02.07.2003.
Codul SQL aferent interogării este:
SELECT DOCTOR.[COD DOCTOR], DOCTOR.[NUME DOCTOR], DOCTOR.[PRENUME DOCTOR], RETETA.[DATA ELIBERARII]
FROM DOCTOR RIGHT JOIN RETETA ON DOCTOR.[COD DOCTOR] = RETETA.[COD DOCTOR]
WHERE (((RETETA.[DATA ELIBERARII])=#7/2/2003#));
4. Să se afișeze numărul rețetei, codul doctorilor care au eliberat rețetele, precum și numele celor care au beneficiat de medicamentul „Ephicilin 500 mg”.
Codul SQL este:
SELECT [RETETA SPECIALA].[NUMAR RETETA], [RETETA SPECIALA].[NUME BENEFICIAR], [RETETA SPECIALA].[PRENUME BENEFICIAR], DOCTOR.[COD DOCTOR], [RETETA SPECIALA].[DENUMIRE MEDICAMENT]
FROM DOCTOR RIGHT JOIN [RETETA SPECIALA] ON DOCTOR.[COD DOCTOR] = [RETETA SPECIALA].[COD DOCTOR]
WHERE ((([RETETA SPECIALA].[DENUMIRE MEDICAMENT])="Ephicilin 500 mg"));
5. Se cere să se afișeze denumirea medicamentelor, tipul acestora și numele producătorilor care produc medicamente mai scumpe de 35000 lei.
Codul SQL este:
SELECT MEDICAMENTE.[DENUMIRE MEDICAMENT], MEDICAMENTE.[TIP MEDICAMENT], PRODUCATOR.[NUME PRODUCATOR], MEDICAMENTE.PRET
FROM PRODUCATOR RIGHT JOIN MEDICAMENTE ON PRODUCATOR.[ID PRODUCATOR] = MEDICAMENTE.[ID PRODUCATOR]
WHERE (((MEDICAMENTE.PRET)>"35000"));
6. Să se afișeze toate medicamentele de uz intern.
Codul SQL este:
SELECT MEDICAMENTE.[DENUMIRE MEDICAMENT], MEDICAMENTE.[TIP MEDICAMENT], MEDICAMENTE.[UZ MEDICAAMENT]
FROM MEDICAMENTE
WHERE (((MEDICAMENTE.[UZ MEDICAAMENT])="intern"));
7. Să se afișeze numele, prenumele și codul doctorilor care au eliberat rețete compensate.
Codul SQL aferent interogării este:
SELECT DOCTOR.[NUME DOCTOR], DOCTOR.[PRENUME DOCTOR], [RETETA SPECIALA].[COD DOCTOR], [RETETA SPECIALA].[TIPUL RETETEI]
FROM DOCTOR RIGHT JOIN [RETETA SPECIALA] ON DOCTOR.[COD DOCTOR] = [RETETA SPECIALA].[COD DOCTOR]
WHERE ((([RETETA SPECIALA].[TIPUL RETETEI])="Compensata"));
CAPITOLUL 6
FORMULARE ȘI RAPOARTE
6.1. Formulare
Interfața cu utilizatorul este una din cele mai importante părți ale aplicației pentru că ea este prima și deseori singura pe care o va vedea utilizatorul. Dacă este confuză sau neclară, utilizatorii nu au posibilitatea efectivă de a comunica cu aplicația și nu pot accesa liber toate facilitățile prevăzute. Un formular servește la introducerea datelor, dar poate avea și un rol de meniu sau prezentare generală a unor informații. Este un obiect de interfață de tip container cu peste 70 de proprietăți pe care se găsesc obiectele grafice de interfață cu utilizatorul (butoane, zone de editare, liste deschise sau închise, imagini etc.).
Există mai multe moduri prin care se poate crea un formular, dar cele mai importante sunt: prin utilizarea instrumentului wizard (creare automată) și crearea în fereastra de proiectare (creare manuală).
Un subformular, este un formular inclus într-un alt formular, pentru a permite afișarea datelor din mai multe tabele sau cereri de interogare, aflate în general în relații de tipul unu la unu sau unu la mai mulți. În formularul principal vor fi afișate datele din partea unu a relației, iar în subformular cele din partea mai mulți. În mod implicit, legătura dintre un formular și un subformular reflectă legătura dintre tabelele pe care se bazează. Într-un formular care conține un subformular se pot specifica criterii de filtrare numai asupra câmpurilor din formularul principal.
6.1.1. Crearea formularului „Medicamente”
Formularul „Medicamente” este un formular de afișare, editare și modificare a datelor și de căutare a informațiilor după anumite criterii.
În fereastra Database se activează eticheta „Forms”, iar de aici se alege opțiunea Create form by using wizard. În fereastra obținută se vor alege tabelele PRODUCĂTOR și MEDICAMENTE și câmpurile asupra cărora va opera formularul: ID producător, nume producător, ID medicament, denumire și tip medicament.
Se acționează butonul Next, iar în fereastra apărută se selectează modul în care sunt prezentate datele în cadrul formularului. Se alege tipul coloană (columnar) – datele sunt prezentate pe coloane. În următoarea fereastră se selectează stilul formularului, adică un anumit tip de fundal, anumite caractere și culori ale acestora.
În ultima fereastră se introduce numele formularului și modul de afișare al acestuia. Crearea formularului se încheie prin acționarea butonului Finish.
Formularul conține trei butoane numite: Caută, Raport Producător și Ieșire. Acestea se vor crea în cadrul ferestrei de proiectare (Form Design).
Butonul „Caută” este un buton de comandă (Command Button), iar atunci când se execută click pe el, comută un eveniment care execută o comandă de căutare a înregistrărilor după un anumit criteriu.
Butonul „Raport Producător” este tot un buton de comandă (Command Button) și atunci când se execută click pe el, va afișa raportul cu producătorii de medicamente în modul Preview.
„Ieșire” este un buton de comandă cu ajutorul căruia se iese din formular.
Ferestrele cu proprietăți ale celor trei butoane sunt:
6.1.2. Crearea formularului „Medicamente > 35000 lei”
Formularul „Medicamente > 35000 lei” este un formular de afișare și editare a datelor, creat pe baza unei interogări. Se alege opțiunea Create form by using wizard. În fereastra obținută se alege interogarea cu care formularul va lucra și anume „Medicamente > 35000 lei” și câmpurile asupra cărora va opera formularul: denumire medicament, tip medicament, nume producător și preț. Vor fi afișate medicamentele mai scumpe de 35000 lei.
Se acționează butonul Next, iar în fereastra apărută se selectează modul în care sunt prezentate datele în cadrul formularului. Se alege tipul coloană (columnar) – datele sunt prezentate pe coloane. În următoarea fereastră se selectează stilul formularului, adică un anumit tip de fundal, anumite caractere și culori ale acestora.
În ultima fereastră se introduce numele formularului și modul de afișare al acestuia. Crearea formularului se încheie prin acționarea butonului Finish.
Formularul prezintă un buton numit „Deschide Medicamente”, care este un buton de comandă și atunci când se execută click pe el va deschide formularul Medicamente. Formularul mai are și un buton de ieșire cu ajutorul căruia se închide formularul. Ferestrele cu proprietățile butoanelor de comandă sunt:
6.1.3. Crearea formularului „Medicamente compensate/gratuite”
Formularul „Medicamente compensate/gratuite” este un formular de afișare și editare a datelor care conține și un subformular. Formularul va afișa beneficiarii de medicamente compensate și gratuite și medicamentele de care au beneficiat. Se alege opțiunea Create form by using wizard. În fereastra obținută se aleg tabelele cu care formularul va lucra și anume MEDICAMENTE și REȚETĂ SPECIALĂ. Din cadrul tabelei MEDICAMENTE se aleg câmpurile ID medicament, denumire, tip medicament, iar din tabela REȚETĂ SPECIALĂ se alege: tip rețetă, data eliberării, nume și prenume beneficiar și cantitatea de medicamente eliberată.
Subformularul va conține câmpurile din tabela REȚETĂ SPECIALĂ. După alegerea câmpurilor se acționează butonul Next, iar în fereastra apărută se selectează modul cum va arăta formularul și subformularul.
Apoi se alege tipul Datasheet. În ultima fereastră se introduce numele formularului și al subformularului. Crearea formularului se încheie prin acționarea butonului Finish.
Formularul conține un buton de comandă numit „Raport rețetă” iar, atunci când se efectuează un click pe el va deschide raportul cu rețete compensate și gratuite. Pe formular este pus și un buton de ieșire, pentru a permite închiderea formularului. Dacă se doresc informații despre producători se apasă butonul . Acesta va deschide o pagină Web care conține date despre producători.
Ferestrele cu proprietățile butoanelor sunt:
Subformularul prezintă rețetele compensate și gratuite, data când au fost eliberate, numele și prenumele celor care beneficiază de ele, precum și cantitatea de medicament înscrisă pe rețete.
6.1.4. Crearea formularului „Beneficiarii de medicamente”
Formularul „Beneficiarii de medicamente” este un formular de afișare, editare și modificare a datelor și de căutare a informațiilor după anumite criterii.
În fereastra Database se activează eticheta „Forms”, iar de aici se alege opțiunea Create form by using wizard. În fereastra obținută se alege tabelul BENEFICIAR și câmpurile asupra cărora va opera formularul: CNP, nume și prenume beneficiari.
Se acționează butonul Next, iar în fereastra apărută se selectează modul în care sunt prezentate datele în cadrul formularului. Se alege tipul tabular.
În următoarea fereastră se selectează stilul formularului, adică un anumit tip de fundal, anumite caractere și culori ale acestora. În ultima fereastră se introduce numele formularului și modul de afișare al acestuia. Crearea formularului se încheie prin acționarea butonului Finish.
Formularul conține trei butoane de comandă: de căutare, de vizualizare raport și de ieșire din formular. Butonul de vizualizare raport permite afișarea beneficiarilor de medicamente compensate și gratuite.
Ferestrele cu proprietățile butoanelor sunt:
6.1.5. Crearea formularului „Producător”
Formularul „Producător” este un formular de afișare și editare a datelor care conține și un subformular. Formularul va afișa producătorii de medicamente. Se alege opțiunea Create form by using wizard. În fereastra obținută se aleg tabelele cu care formularul va lucra și anume PRODUCĂTOR și MEDICAMENTE. Din cadrul tabelei PRODUCĂTOR se aleg câmpurile ID producător, nume, adresa, telefon, iar din tabela MEDICAMENTE se aleg câmpurile denumire medicament, tip medicament, uz și preț.
Apoi se alege tipul Datasheet. În ultima fereastră se introduce numele formularului și al subformularului. Crearea formularului se încheie prin acționarea butonului Finish.
Subformularul prezintă date despre medicamentele produse de producători.
6.2. Rapoarte
Rapoartele sau situațiile finale constituie o modalitate de valorificare a conținutului informațional al bazei de date. Raportul apare ca un instrument al cunoașterii, care conține o cantitate mare de informații selectate, prelucrate, sistematizate după anumite reguli de prezentare în concordanță cu cerințele de informare ale utilizatorilor.
6.2.1. Crearea raportului Beneficiar
În fereastra Database se execută click pe eticheta Reports, iar de aici se alege opțiunea Create report by using wizard. În fereastra apărută se precizează numele tabelei, adică BENEFICIAR și câmpurile care vor forma raportul: Cnp, nume și prenume beneficiar. Apoi se fixează câmpurile de grupare (Cnp) și câmpurile de ordonare (nume, prenume).
Se trece la fereastra următoare prin acționarea butonului Next. În caseta apărută se specifică tipul dispunerii datelor în cadrul raportului. Apoi se alege aspectul grafic al raportului.
Se salvează raportul cu numele Beneficiar. Acest raport afișează beneficiarii de medicamente compensate și gratuite.
6.2.2. Crearea raportului Doctor
Se execută click pe opțiunea Create report by using wizard. În fereastra apărută se alege tabele DOCTOR și câmpurile care vor forma raportul: Cod doctor, nume și prenume doctor. Apoi se fixează câmpurile de grupare (Cod doctor) și câmpurile de ordonare (nume, prenume).
Se trece la fereastra următoare prin acționarea butonului Next. În caseta apărută se specifică tipul dispunerii datelor în cadrul raportului. Apoi se alege aspectul grafic al raportului. Se salvează raportul cu numele Doctor. Acest raport afișează doctorii care au eliberat rețete compensate și gratuite.
6.2.3. Crearea raportului Producător
Se execută click pe opțiunea Create report by using wizard. În fereastra apărută se alege tabele PRODUCĂTOR și câmpurile care vor forma raportul: Id producător, nume, adresa și numărul de telefon.
Apoi se fixează câmpurile de grupare (Id producător) și câmpurile de ordonare (nume, adresa, telefon). Se trece la fereastra următoare prin acționarea butonului Next. În caseta apărută se specifică tipul dispunerii datelor în cadrul raportului. Apoi se alege aspectul grafic al raportului.
Se salvează raportul cu numele Producător. Acest raport afișează producătorii de medicamente.
6.2.4. Crearea raportului Rețetă specială
Se execută click pe opțiunea Create report by using wizard. În fereastra apărută se alege tabela REȚETĂ SPECIALĂ și câmpurile care vor forma raportul: număr rețetă, tipul rețetei, data eliberării, nume și prenume beneficiar, denumire medicament și cantitatea de medicamente eliberată.
Apoi se fixează câmpurile de grupare (Tipul rețetei) și câmpurile de ordonare(număr, data eliberării, nume beneficiar, prenume beneficiar, denumire medicament, cantitate). Se trece la fereastra următoare prin acționarea butonului Next. În caseta apărută se specifică tipul dispunerii datelor în cadrul raportului. Apoi se alege aspectul grafic al raportului. Se salvează raportul cu numele Rețetă specială. Acest raport afișează beneficiarii de medicamente compensate și gratuite, tipul și numărul rețetelor, denumirea medicamentelor compensate și gratuite și cantitatea de medicament eliberată.
CAPITOLUL 7
PUBLICAREA DATELOR
PE INTERNET
În ultima perioadă de timp rețeaua Internet a cunoscut o dezvoltare explozivă, devenind forma cea mai avansată de comunicare din zilele noastre. Pentru vizualizarea datelor conținute într-o bază de date Access pe Internet se folosește un tip special de formular numit „Pagină de acces la date”. Utilizatorii unei astfel de pagini pot vedea, edita sau șterge datele dintr-o bază de date.
O pagină are următoarea structură: titlu, conținutul – format din textBox-uri și label – și bara de navigație. Se pot realiza paginile de acces la Internet în modul Design sau utilizând asistentul Wizard.
7.1. Crearea paginii „Doctori”
Pentru a crea o pagină Web se alege eticheta Pages din fereastra Database, iar de aici opțiunea New. În caseta apărută se alege AutoPage – Columnar. Se selectează tabela DOCTOR. Se salvează ca document html. Pagina va cuprinde informații despre doctorii care eliberează rețete compensate sau gratuite.
7.2. Crearea paginii „Producători”
Pentru a crea o pagină Web cu producătorii de medicamente se alege eticheta Pages din fereastra Database, iar de aici opțiunea New. În caseta apărută se alege Page Wizard. Se selectează tabela PRODUCĂTORI. apoi câmpurile care vor fi afișate: Id producător, nume adresă și telefon. În fereastra următoare se specifică cheia de grupare (Id producător) și mai departe se precizează ordinea de afișarea datelor. Se salvează ca document html. Pagina va cuprinde informații despre producătorii de medicamente.
7.3. Crearea paginii „Medicamente”
Pentru a crea pagina „Medicamente” se alege eticheta Pages din fereastra Database, iar de aici opțiunea New. În caseta apărută se alege AutoPage – Columnar. Se selectează tabela „Medicamente”. Se salvează ca document html. Pagina va cuprinde informații despre medicamentele existente în farmacie.
7.4. Crearea paginii „Rețetă”
Pentru a crea pagina „Rețetă” se alege eticheta Pages din fereastra Database, iar de aici opțiunea New. În caseta apărută se alege AutoPage – Columnar. Se selectează tabela „Rețetă specială”. Se salvează ca document html. Pagina va cuprinde informații despre rețetele compensate și gratuite și despre beneficiarii de medicamente compensate și gratuite.
7.5. Comenzi macro
În 1993 Microsoft a decis ca un subset a VBA (Visual Basic pentru Aplicații) să devină limbajul de macro-uri comun aplicațiilor lor pentru platforme Windows, Windows NT și Apple.
Un macro este o secvență de instrucțiuni care reprezintă operații de interacțiune a utilizatorului cu aplicația. Pentru a putea crea o macroinstrucțiune, Microsoft Access dispune de utilitarul Macro Builder.
Comenzile macro se creează în cadrul ferestrei de proiectare. Fereastra de proiectare a comenzilor macro are două părți:
lista de acțiuni cu comentarii (partea superioară a ferestrei);
descrierea fiecărei acțiuni din cadrul listei.
Macro 1 este o comandă macro care prin rulare deschide formularul „Medicamente” și raportul „Producători”. În cadrul câmpului Action se aleg din lista derulantă acțiunile pe care această comandă macro trebuie să le realizeze. Prima acțiune reprezintă deschiderea formularului „Medicamente”. Prin urmare, din cadrul listei derulante de acțiuni se alege acțiunea OpenForm (Deschide formular), iar din cadrul listei derulante Form Name (Numele formularului) se alege formularul Medicamente.
A doua acțiune reprezintă vizualizarea raportului „Producători”. Pentru aceasta în cadrul câmpului Action se selectează din lista derulantă opțiunea OpenReport (Deschide raport). În dreptul caracteristicii Report Name (Numele raportului) se alege raportul „Producători”, iar în dreptul caracteristicii View (mod de afișare) se selectează opțiunea Print Preview, care permite vizualizarea raportului.
Macro 2 este o comandă macro care prin rulare deschide tabela „Doctori” și interogarea „Beneficiarii de medicamente gratuite”. În cadrul câmpului Action se aleg din lista derulantă acțiunile pe care această comandă macro trebuie să le realizeze. Prima acțiune reprezintă deschiderea tabela „Doctori”. Din cadrul listei derulante de acțiuni se alege acțiunea OpenTable (Deschide tabela), iar din cadrul listei derulante Table Name (Numele tabelei) se alege tabela „Doctori”. În dreptul caracteristicii View (mod de afișare) se selectează opțiunea Datasheet.
A doua acțiune reprezintă deschiderea interogării „Beneficiarii de medicamente gratuite”. Pentru aceasta în cadrul câmpului Action se selectează din lista derulantă opțiunea OpenQuery (Deschide interogare). În dreptul caracteristicii Query Name (Numele interogării) se alege interogarea „Beneficiarii de medicamente gratuite”, iar în dreptul caracteristicii View (mod de afișare) se selectează opțiunea Datasheet.
7.6. Proiectarea barei-meniu „Tabele”
Bara-meniu „Tabele” conține câte un buton pentru fiecare tabelă din baza de date (asociindu-i fiecăruia acțiunea de deschidere a tabelei). Bara-meniu va fi plasată pe linia cu instrumente Access.
Pentru a crea această bară-meniu se deschide fereastra View, opțiunea Toolbars, iar de aici se alege Customize. Se creează o nouă bară cu numele Tabele prin butonul New al ferestrei Customize, tab-ul Toolbars. Se deschide tab-ul Commands și în fereastra Categories se selectează AllTable. Se aleg tabelele bazei de date și se execută drag&drop către bara Tabele. Se schimbă textul asociat pentru butoane – implicit este numele fiecărei tabele – și pictogramele asociate prin meniul contextual deschis prin butonul drept al mouse-ului.
7.7. Proiectarea barei-meniu „Aplicații”
Pentru a grupa interogările, formularele, rapoartele, paginile Web și comenzile macro din baza de date Farmacie se creează o bară-meniu care va fi plasată pe linia cu instrumente Access. Din fiecare meniu de pe bara principală se deschide câte un submeniu care conține interogările, formularele, rapoartele, paginile Web și comenzile macro create.
Pentru a crea bara-meniu Aplicații se deschide fereastra View, opțiunea Toolbars, iar de aici se alege Customize. Se creează o nouă bară cu numele Aplicații prin butonul New al ferestrei Customize, tab-ul Toolbars. Se deschide tab-ul Commands și în fereastra Categories se selectează New Menu. Apare în fereastra alăturată Commands linia NewMenu pe care se execută Drag&Drop la bara principală. Prin butonul drept al mouse-ului se deschide meniul contextual atașat butonului și se acordă numele Interogări. Se repetă operația până se introduc și celelalte meniuri: Formulare, Rapoarte, Pagini Web, Comenzi macro.
Se alege apoi din fereastra Categories opțiunea AllQueries. Vor fi afișate toate interogările bazei de date și se execută Drag&Drop către butonul Interogări. Pentru butonul Formulare se aleg formularele din lista AllForms, pentru rapoarte se aleg obiectele necesare din lista AllReports, iar pentru pagini Web și comenzi macro cele din listele AllPages și AllMacros.
CAPITOLUL 8
CONCLUZII
Bazele de date prin performanțele și avantajele lor au reprezentat și vor rămâne în continuare modalitatea principală de structurare și organizare a datelor în cadrul sistemelor informatice.
Aplicația de baze de date pentru o farmacie a fost concepută pentru implementarea sa în farmacii. Deși nu este o aplicație chiar atât de performantă ea poate fi folosită cu mare ușurință. Aplicația poate fi extinsă adăugându-se noi câmpuri în baza de date. În baza de date au fost introduse date fictive, iar numărul datelor este mic.
Baza de date a fost structurată în șase tabele astfel încât căutarea să se facă mai ușor. Pentru ca toate operațiile de adăugare, modificare, ștergere și vizualizare a tabelelor respective să se facă cu ușurință acestea au fost reunite sub forma unei bare- meniu. Bara conține câte un buton pentru fiecare tabelă, permițând deschiderea tabelei respective.
De asemenea interogările, formularele, rapoartele, paginile Web și comenzile macro au fost grupate într-o bară meniu. Din fiecare meniu se deschide câte un submeniu care conține interogările, formularele, rapoartele paginile Web și comenzile macro create. Formularele conțin unele butoane care facilitează căutarea rapidă a unor informații.
Aplicația de baze de date este realizată cu ajutorul Microsoft Access 2000 și asigură o interfață cât mai atractivă cu utilizatorul. Access 2000 permite realizarea de documente dinamice. Aceste documente sunt formulare sau rapoarte care pot fi publicate pe Internet.
ANEXE
Codul sursă al formularului „Medicamente”
Procedura atașată evenimentului OnClick a butonului „Caută” este:
Private Sub cautare_Click()
On Error GoTo Err_cautare_Click
Screen.PreviousControl.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Exit_cautare_Click:
Exit Sub
Err_cautare_Click:
MsgBox Err.Description
Resume Exit_cautare_Click
End Sub
Procedura atașată evenimentului OnClick pentru butonul „Raport Producător”
Private Sub Raport_Producator_Click()
On Error GoTo Err_Raport_Producator_Click
Dim stDocName As String
stDocName = "Raport Producator"
DoCmd.OpenReport stDocName, acPreview
Exit_Raport_Producator_Click:
Exit Sub
Err_Raport_Producator_Click:
MsgBox Err.Description
Resume Exit_Raport_Producator_Click
End Sub
Procedura atașată evenimentului OnClick pentru butonul „Ieșire”
Private Sub Iesire_Click()
On Error GoTo Err_Iesire_Click
DoCmd.Close
Exit_Iesire_Click:
Exit Sub
Err_Iesire_Click:
MsgBox Err.Description
Resume Exit_Iesire_Click
End Sub
Codul sursă al formularului „Beneficiarii de medicamente”
Procedura atașată evenimentului OnClick a butonului de căutare este:
Private Sub Command16_Click()
On Error GoTo Err_Command16_Click
Screen.PreviousControl.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Exit_Command16_Click:
Exit Sub
Err_Command16_Click:
MsgBox Err.Description
Resume Exit_Command16_Click
End Sub
Procedura atașată evenimentului OnClick a butonului de vizualizare a raportului este:
Private Sub Command15_Click()
On Error GoTo Err_Command15_Click
Dim stDocName As String
stDocName = "Raport Beneficiar"
DoCmd.OpenReport stDocName, acPreview
Exit_Command15_Click:
Exit Sub
Err_Command15_Click:
MsgBox Err.Description
Resume Exit_Command15_Click
End Sub
Procedura atașată evenimentului OnClick a butonului de ieșire este:
Private Sub Command14_Click()
On Error GoTo Err_Command14_Click
DoCmd.Close
Exit_Command14_Click:
Exit Sub
Err_Command14_Click:
MsgBox Err.Description
Resume Exit_Command14_Click
End Sub
Codul sursă al formularului „Medicamente > 35000 lei”
Procedura atașată evenimentului OnClick a butonului „Deschide medicamente” este:
Private Sub deschide_Click()
On Error GoTo Err_deschide_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Medicamente"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_deschide_Click:
Exit Sub
Err_deschide_Click:
MsgBox Err.Description
Resume Exit_deschide_Click
End Sub
Procedura atașată evenimentului OnClick a butonului „Ieșire” este:
Private Sub Iesire_Click()
On Error GoTo Err_Iesire_Click
DoCmd.Close
Exit_Iesire_Click:
Exit Sub
Err_Iesire_Click:
MsgBox Err.Description
Resume Exit_Iesire_Click
End Sub
Codul sursă al formularului „Medicamente compensate/gratuite”
Procedura atașată evenimentului OnClick a butonului „Raport rețetă” este:
Private Sub Raport_Reteta_Click()
On Error GoTo Err_Raport_Reteta_Click
Dim stDocName As String
stDocName = "Raport Reteta Speciala"
DoCmd.OpenReport stDocName, acPreview
Exit_Raport_Reteta_Click:
Exit Sub
Err_Raport_Reteta_Click:
MsgBox Err.Description
Resume Exit_Raport_Reteta_Click
End Sub
Procedura atașată evenimentului OnClick a butonului care deschide pagina Web este:
Private Sub Command14_Click()
On Error GoTo Err_Command14_Click
Dim stDocName As String
stDocName = "Producatori"
DoCmd.OpenDataAccessPage stDocName, acDataAccessPageBrowse
Exit_Command14_Click:
Exit Sub
Err_Command14_Click:
MsgBox Err.Description
Resume Exit_Command14_Click
End Sub
Procedura atașată evenimentului OnClick a butonului „Ieșire” este:
Private Sub Iesire_Click()
On Error GoTo Err_Iesire_Click
DoCmd.Close
Exit_Iesire_Click:
Exit Sub
Err_Iesire_Click:
MsgBox Err.Description
Resume Exit_Iesire_Click
End Sub
BIBLIOGRAFIE
„Baze de date Microsoft Access 2000” – Pavel Năstase, Florin Mihai, Bogdan Bărbulescu, Robert Aurelian Șova, Luana Cosăcescu, Andrei Stanciu, Liana Covrig, editura Teora, București, 2003.
„Tehnologii asistate de calculator – varianta Access” – Mariana Panțiru, Ionuț Panțiru, Irina-Ioana Panțiru,editura L&S INFOMAT, București, 2002.
„Utilizarea MS Access 2000” – Susan Harkins, Ken Hansen, Tom Gerhard, editura Teora, București, 2000.
„Inițiere în Access” – Cornel Ignat, Carmen Petre, editura Arves, Craiova, 2002.
„Baze de date relaționale” – Dorin Cârstoiu, editura Printech, București, 1999.
„Proiectarea bazelor de date” – Michael Hernandes, editura Teora, București, 2003.
„Baze de date. Organizare, proiectare și implementare” – Lungu I., Bodea C., Bădescu G., Ioniță C., editura ALL, București, 1995.
„Analiza și proiectarea sistemelor informaționale economice” – Dumitru Oprea, editura Polirom, Iași, 1999.
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: Sistem Informatic de Gestiune a Produselor Farmaceutice (ID: 149277)
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.
