Figură 1 Lansarea sistemului Access 6 [305256]

Figură 1 Lansarea sistemului Access 6

Figură 2 Alegerea tipului de bază de date 7

Figură 3 Zonele de lucru în meniul principal. 9

Figură 4 Modul de definirea structurii unui tabel utilizând cda. „Design View”. 10

Figură 5 Definirea câmpurilor tabelului. 11

Figură 6 Definirea câmpurilor și a atributelor acestora. 12

Figură 7 Deschiderea unui tabel în mod conținut. 14

Figură 8 Stabilirea tabelelor pentru „Clienți”, „Pachete” și „Rezervări”. 15

Figură 9 Introducerea datelor în tabel. 16

Figură 10 Relațiile dintre tabele. 18

Figură 11 Interogări ale bazei de date. 19

Figură 12 Selectarea tabelelor și stabilirea interogărilor 21

Figură 13 Condițiile de selecție 22

Figură 14 Rezultatul interogării în funcție de condiția de selecție. 23

Figură 15 Alte tipuri de interogări. 23

Figură 16 Rezervările făcute în funcție de dată. 24

Figură 17 Rezultatul interogării după dată. 24

Figură 18 Căutarea numelui unui client. 25

Figură 19 Introducerea numelui căutat. 25

Figură 20 Rezultatul căutării după nume. 26

Figură 21 Calcularea prețului complet al pachetelor turistice. 26

Figură 22 Rezultatul interogării . 27

Figură 23 Interogare pentru afișarea pachetelor cu prețul până în 1500 lei. 27

Figură 24 Rezultatul interogării pentru exemplul 5. 28

Figură 25 Ordonarea ascendentă 29

Figură 26 Rezultatul ordonării ascendente. 30

Figură 27 Rapoarte 31

Figură 28 Rezultatul afișării raportului. 31

Figură 29 Crearea unui „Formular Clienți”. 32

Figură 30 „Formular Clienți” 33

Figură 31 Organigrama unei școli. 43

Figură 32 Structura câmpurilor în tabelul „Consiliul profesoral”. 44

Figură 33 Informațiile oferite de tabelul „Consiliul profesoral”. 45

Figură 34 Consiliul de administrație. 46

Figură 35 Accesarea „Filtrelor”. 48

Figură 36 Cadrele didactice care au gradul I . 48

Figură 37 Accesarea utilitarului „Query Design”. 49

Figură 38 Interogare după grad. 50

Figură 39 Căutare după „Grad I”. 50

INTRODUCERE

Tema „Modelarea structurii unei unități școlare” a fost aleasă din dorința

de a [anonimizat]-un simplu „click” , [anonimizat].

Aplicația permite utilizatorilor accesul rapid la o serie de informații cum sunt: [anonimizat], etc..

[anonimizat].

La realizarea modelării am utilizat „Baze de date Access” pentru construirea structurii iar pentru interfața cu utilizatorul „Limbajul C#”.

[anonimizat] o prezentare generală a „Bazelor de date Access 2007” și a limbajului de programare „C#”, [anonimizat], precum și bibliografia.

Considerăm ideea realizării unei astfel de aplicații binevenită deoarece:

ușurează și modernizează activitatea compartimentului secretariat din orice școală în ținerea evidenței persoanelor din structura organizatorică;

facilitează accesul rapid a [anonimizat]-un anumit compartiment din organigramă;

permite vizualizarea rapidă a relațiilor între diferite compartimente din structură(de subordonare, colaborare etc.);

permite vizualizarea rapidă a atribuțiilor fiecărui compartiment conform legislației în vigoare precum și a regulamentului de ordine interioară;

permite actualizarea tuturor datelor în fiecare an școlar sau de căte ori se impune atât din punct de vedere legislativ cât și sub aspectul componenței și a membrilor din fiecare structură.

Cap. 1 Baze de date Access 2007 – Prezentare generală și aplicație pentru o agenție de turism.

Generalități

Microsoft Access 2007 este aplicația de management al bazelor de date pusă la dispoziție de suita Microsoft Office. Spre deosebire de Excel, Access va permite să stocăm și să administrăm volume mari de date, organizate în unități numite înregistrări. O bază de date Access constă din următoarele obiecte:

Tabele – conțin toate înregistrările

Interogări – localizează înregistrări specifice

Formulare – afișează înregistrările din tabele, una cîte una

Rapoarte – tipăresc loturi de înregistrări

Pagini de acces la date – pun la dispoziție date prin intermediul paginilor Web

Macrocomenzi – acțiuni automate uzuale

Module – stochează declarații si proceduri Visual Basic, care ne permit să scriem programe pentru bazele de date, astfel încât acestea să poată interacționa cu alt software.

Utilitarele de asistență din aplicația Access asigură un proces simplu, pas cu

pas, de configurare a tabelelor, formularelor, paginilor de acces la date, rapoartelor și interogărilor.

Lansarea sistemului MS Access 2007

SGBD MS Access funcționează numai în mediul Windows. Există mai multe modalități de lansare a sistemului Access, una din ele fiind executarea

consecutivă a acțiunilor Start/All Programs(sau Programs)/Microsoft Office/Microsoft Office Access 2007.

Ca rezultat, obținem o fereastră, asemănătoare cu cea din figura 1.

Figură Lansarea sistemului Access

Crearea / accesarea unei baze de date

După cum am mai menționat, elementele principale ale unei baze de date sunt tabelele. Dar o bază de date poate conține și alte elemente care se creează pe baza tabelelor (interogări, formulare, rapoarte etc.). Aceste elemente, împreună cu tabelele, formează așa-numitele clase de obiecte ale bazei de date.

Pentru a crea o bază de date nouă, în zona Open a ferestrei reprezentate în figura 1 alegem opțiunea Create , iar în caseta urmatoare Table Design – opțiunea Blank Database(există și opțiunea de a utiliza Template-uri, adică baze de date prerealizate). Putem, de asemenea, utiliza comenzile de creare/accesare a bazelor de date din meniul File (figura 2).

Figură Alegerea tipului de bază de date

1.2. Obiectele bazelor de date relaționale

O baza de date conține trei categorii de obiecte:

– de memorare a informa_iei (tabele);

– de consultare, actualizare, vizualizare, introducere, listare a informației din tabele (interogare, raport, formular);

– de acțiune ce au ca scop obținerea de baze de date dedicate (comanda macro, modulul).

Din punct de vedere al utilizatorului un obiect se poate găsi în una din două stări:

– închis în care utilizatorul nu are acces la structura obiectului sau informația conținuta de acesta;

– deschis în care utilizatorul are acces la structura sau informația obiectului.

Un obiect poate fi deschis într-unul din două moduri:

– modul structura în care utilizatorul poate crea sau modifica structura obiectului;

– modul conținut în care utilizatorul poate introduce, actualize sau vizualiza informația conținuta de obiect.

1.3. Interfața utilizator-aplicație (IUA- fig 3)

Principalele elemente ale IUA pentru sistemul de gestiune al bazelor de date relaționale Office Access 2007 sunt:

1. Butonul Office: acces la func_ii de salvare, deschidere,creare baza de date, tiparire obiecte baza de date, setare mediu lucru;

2. Meniul principal: conține opțiuni ce au atasate grupuri de funcții înrudite în zona cu instrumente, funcții referitoare la operații specifice ce se execută în zonele de gestiune

sau de lucru;

3. Zona instrumentelor: conține instrumentele (funcțiile) atasate opțiunii active din meniul principal;

4. Zona de gestiune a obiectelor: zona ce conține obiectele bazei de date;

5. Zona de lucru: zona în care obiectele bazei de date se deschid în mod conținut sau mod structură.

Figură Zonele de lucru în meniul principal.

2.Tabele Access.

2.1. Crearea unui tabel

Tabelul este elementul (obiectul) bazei de date în care sunt stocate datele, fiind format din coloane denumite câmpuri si linii denumite înregistrari. Capatul de tabel formează structura tabelului sau în sens larg structura bazei de date (fig.4).

Figură Modul de definirea structurii unui tabel utilizând cda. „Design View”.

Dacă selectăm opțiunea Design View, obținem o fereastră (fig.5) în care definim cîmpurile tabelului și caracteristicile lor.

Figură Definirea câmpurilor tabelului.

2.2. Tipuri date(figura 6 – 1)

Structura unui tabel este constituita din câmpuri identificate în mod unic printr-un nume, fiecare camp indicând un anumit tip de date de o dimensiune bine stabilita, putând avea atasata o descriere.

Tipurile de date ce pot fi stocate în tabele sunt:

– text (Text): reprezinta un sir de caractere cu dimensiunea cuprinsa între 1 si 255 de caractere;

– memo (Memo): reprezinta un sir de caractere de dimensiune maxima 64KO (64*1024 caractere) adica aproximativ 16 pagini de text scris;

– numar (Number): reprezinta numere întregi pozitive si/sau negative de diferite dimensiuni (ex.: byte – numere întregi pozitive cu valori 0 ÷ 255, integer – numere întregi pozitive si negative cu valori -32768 ÷ 32767, long – numere pozitive si negative cu valori cuprinse între -/+ 2 miliarde) si numere zecimale pozitive si negative (ex.: single – precizie de reprezentare pe 7 cifre, double – precizie de reprezentare pe 14 cifre);

– data/timp (Date/Time): reprezinta un sir de caractere având semnificația datei calendaristice si/sau orei (ex.: 01.01.2013 12:00);

– moneda (Currency): accepta valori pâna la 15 cifre si valori zecimale ale acesteia pe patru cifre semnificative. Moneda este cea a _arii pentru care s-a setat op_iunea specifica a elementelor regionale ale sistemului;

– numar cu incrementare automată (Autonumber): este un număr întreg pozitiv reprezentat intern pe 4 bytes. Caracteristica principala a sa este ca se modifică cu o unitate la fiecare adaugare de înregistrare;

– logic (Yes/No): poate avea doua valori adevarat (1) sau fals (0);

– obiect OLE (OLE Object): este destinat păstrarii datelor provenite de la alte aplicații ce sunt considerate servere OLE în Windows (imagini, sunete, video clipuri etc.);

– legătura (Hiperlink): realizeaza legatura catre pagini web;

– atașament (Attachement): include un fisier ce conține un tip de informație (documente, registre de calcul, imagini etc.);

– căutare date (Lookup Wizard): nu este un alt tip de câmp, el reprezintă o metodă prin care tipurilor anterioare li se poate atașa o lista de valori introduse de utilizator sau selectate dintr-un câmp al unui alt tabel sau interogare.

Figură Definirea câmpurilor și a atributelor acestora.

2.3. Atribute câmpuri(figura 6 – 2)

Câmpurile unui tabel sunt entitați de sine stătătoare caracterizate, în funcție de natura lor, de unul sau mai multe atribute (proprietați). Cele mai importante proprietăți sunt următoarele:

– dimensiune (Size): depinde de tipul câmpului asa cum s-a precizat la descrierea tipurilor de date;

– format (Format): în funcție de acest atribut este influențat modul de afisare al datelor;

– masca de intrare (Input Mask): controlează modul de introducere al datelor în înregistrarile aferente câmpurilor respective;

– titlu (Caption): un text ce este utilizat ca eticheta de identificare a câmpului în cadrul tabelului deschis în modul conținut;

– valoare prestabilita (Default Value): reprezinta o valoare ințială ce este atribuită câmpului în momentul crearii unei înregistrari noi;

– regula de validare (Validation Rule): reprezinta condiția de validare la introducerea unei înregistrări noi;

– text de validare (Validation Text): reprezinta textul ce se afișează la nerespectarea condiției de validare;

– necesitate (Required): indică faptul că la introducerea unei noi înregistrări câmpul respectiv nu poate rămâne necompletat;

– index (Indexed): asigură mecanismul de ordonare al valorilor înregistrărilor în vederea realizării unei regăsiri rapide a datelor. Indexul poate fi cheie primară dacă valorile pentru câmpul sau combinația de câmpuri asociate nu se repetă (nu au duplicat, sunt unice);

– plasare virgula zecimala (Decimal Place): stabileste numarul de zecimale vizibile pentru numerele fracționale;

– căutare (Lookup): permite stabilirea valorilor și a proprietăților pentru câmpurile de tipul căutare date.

2.4. Exemple sintaxa reguli validare

1. Pentru câmpuri de tip numeric:

1.a. câmp mai mare sau egal cu 1000: >= 1000

1.b. câmp mai mare sau egal cu 100 si mai mic sau egal cu 3000: >=100 and <=3000

1.c. câmp mai mare sau egal cu 2010 si mai mic sau egal decât anul curent: >=2010 and <= Year(Date())

2. Pentru câmpuri de tip data calendaristică:

2.a. câmp mai mare sau egal cu data 01.01.2013: >= #01.01.2013#

2.b. câmp mai mare sau egal cu data 01.01.2013 si mai mic sau egal decât data curenta:>= #01.01.2013# and <= Date()

2.5. Operații asupra tabelelor

Crearea structurii unui tabel (fig5,6)se realizeaza cu funcția Create-Tables-Table Design.

Vizualizarea si/sau modificarea structurii unui tabel presupune selectarea lui din zona de gestiune si utilizarea funcției din meniul contextual atasat mouse-ului Right Click-Design View(fig. 7).

Figură Deschiderea unui tabel în mod conținut.

Deschiderea unui tabel în mod conținut(fig .7) presupune selectarea din zona de gestiune si apelarea uneia din funcțiile Double Click sau Right Click-Open.

La deschidere, zona de lucru va avea organizarea unui tabel, permițând adăugarea, modificarea sau stergerea de înregistrări.

Utilizatorul este asistat în permanență indicându-i-se nr. înregistrarii curente, nr. total de înregistrari, înregistrarea care se editeaza, instrumente de navigare între înregistrari etc.

Pentru aplicația noastră dorim să ceăm o aplicație care să ofere solutia informatizată a procesului de rezervare a pachetelor turistice precum și evidența clienților agentiei. Ca urmare avem nevoie de 3 tabele: Clienti, Pachete si Rezervări(Fig.8-1,2,3).

Tabelele create sunt de forma următoare :

Figura 8-1

Figura 8 -2

Figura 8 – 3

Figură Stabilirea tabelelor pentru „Clienți”, „Pachete” și „Rezervări”.

2.6. Stabilirea cheilor primare

Dacă valorile unui cîmp sunt unice (nu se repetă), putem semnala acest lucru, pentru a evita introducerea accidentală a două valori identice. Această procedură poartă denumirea de stabilire a cheii primare.

In cazul tabelului CLIENTI, cheia primară poate fi stabilită pe cîmpul Cod_client, pentru a exclude eventualitatea repetării identificatorului cărții (în baza de date nu pot exista doi clienti cu acelasi cod).

Pentru tabelul PACHETE, cheia primara poate fi stabilita pe camplul Cod_pachet.

Pentru tabelul REZERVARI cheia primara poate fi stabilita pe campul Cod_rezervare.

Pentru a stabili cheia primară, selectăm cîmpul respectiv, apoi executăm un clic pe butonul din bara cu instrumente. Ca rezultat, în partea din stînga a cîmpului respectiv apare semnul cheii .

După încheierea procedurii de descriere a cîmpurilor și de stabilire a cheii primare, salvăm tabelul (descrierea lui), indicînd numele tabelului. Dacă nu am stabilit o cheie primară (acest lucru nu este obligatoriu), sistemul ne va avertiza, sugerîndu-ne stabilirea cheii pe un cîmp de tip AutoNumber. Pentru a confirma, acționăm butonul Yes. În acest caz sistemul stabilește automat cheia primară pe un cîmp AutoNumber (dacă el există) sau creează suplimentar un asemenea cîmp (dacă el nu există), stabilind pe el cheia primară. Pentru a renunța la stabilirea cheii primare, acționăm butonul No.

2.7 Introducerea datelor în tabel

După ce am efectuat procedurile de descriere a tabelului , putem introduce date în cîmpurile lui.. Ca rezultat, se afișează cîmpurile tabelului respectiv fig.9

Inițial tabelul conține doar un rînd liber de forma urmatoare :

Figură Introducerea datelor în tabel.

Dupa adaugarea datelor, tabelele noastre arata in felul următor :

Tabelul Clienti :

Tabelul Pachete :

Tabelul Rezervari :

2.8. Relații dintre tabele(fig. 10). Integritatea datelor

Relațiile dintre două tabele se stabilesc, de regulă, prin intermediul unor cîmpuri identice (cu aceeași denumire, de aceeași lungime, cu aceleași proprietăți) prezente în ambele tabele.

În cazul relației de tipul unu la mulți în tabelul primar (din partea căruia se realizează relația "unu") trebuie să existe un cîmp, numit cheie primară, în care nu se admit valori care se repetă, iar în tabelul secundar (din partea căruia se realizează relația "mulți") trebuie să existe un cîmp analogic cu cel din tabelul primar, numit cheie străină, care poate admite valori care se repetă.

Relația mulți la mulți poate fi transformată în două relații de tipul unu la mulți prin definirea unui tabel intermediar, în care se introduc, în calitate de chei străine, cheile primare ale primelor douг tabele. Astfel, pentru a evita relația mulți la mulți dintre tabelele CLIENTI și PACHETE, a fost definit tabelul REZERVARI în care au fost incluse cîmpurile Cod_rezervare și Cod_pachet din tabelele respective.

Putem stabili relații între tabelele bazei de date și în mod explicit, utilizînd comanda Relationships din meniul Database Tools. În acest caz apare

Figură Relațiile dintre tabele.

3. Interogări Access

3.1 Ce sunt interogările

Performanțele unui SGBD depind în mare măsură de capacitatea extragerii rapide a diferitor informații în forma dorită. În multe cazuri este necesar de a selecta date din mai multe tabele simultan.

Prin consultarea unei baze de date se în_elege accesul selectiv la datele conținute de aceasta.

Instrumentul pus la dispoziție de Access 2007 pentru consultarea bazelor de date este interogarea.

Interogarea este o construcție prin care utilizatorul acceseaza datele din anumite câmpuri ale unor tabele, după anumite criterii de selecție, datele putând fi ordonate sau nu.

Crearea unei interogari se poate realiza cu funcția Create-Other-Query Design(fig.11).

Figură Interogări ale bazei de date.

3.2. Tipuri de interogări

În funcție de modul de definire și rezultatele acțiunii, interogările pot fi clasificate astfel:

a) interogări de selecție (folosind condiții logice);

b) interogări de sortare (indicînd cîmpul/cîmpurile și ordinea sortării);

c) interogări de excludere a unor înregistrări din BD (de exemplu,
excluderea tuturor cititorilor care nu au împrumutat cărți în
ultimii 2 ani);

d) interogări de modificare a unor înregistrări din BD (de exemplu,
majorarea prețurilor tuturor cărților cu 20%);

e) interogări de obținerea a unor informații rezultante (în cîmpuri noi)

în baza informației existente (de exemplu, obținerea vîrstei cititorului prin scăderea anului de naștere din anul curent);

f) interogări de obținere a unor totaluri, medii etc.;

g) interogări încrucișate.

În toate cazurile, cu excepția ultimelor două, rezultatul interogării este un nou set de date, numit set dinamic (engl: Dynaset). Setul dinamic (rezultalul interogării) conține doar cîmpurile specificate ale înregistrărilor din tabelele specificate care satisfac condițiilor specificate. Denumirea '"Set dinamic" este legată de faptul că orice modificări ale datelor din tabelele specificate în interogare implică modificări respective ale rezultatului interogării (la o nouă executare a ei). Și invers, orice modificări în setul dinamic implică modificări în tabelele respective (cu condiția respectării integrității datelor). Seturile dinamice nu se memorizează; ele se formează din nou de fiecare dată cînd executăm o interogare. Dac în tabelele BD intervin modificări, rezultatele executării a două interogări identice pot fi diferite, în cele ce urmează vom descrie modalitățile de definire și executare a interogărilor nominalizate.

Exemplu:1

Pentru a defini o interogare de selecție (de exemplu, afisarea clientilor ce locuiesc in Bucuresti), acționăm Create-Other-Query Design .

În continuare indicăm unul din cele 5 moduri de creare a interogărilor (în cazul nostru Design View)

Din caseta care apare (fig. 11) selectăm consecutiv (în orice ordine) tabelele necesare (în cazul nostru Clienti, Pachete si Rezervari) și pentru fiecare acționăm butonul Add (figura 12).

Figură Selectarea tabelelor și stabilirea interogărilor

După selectarea tabelelor acționăm butonul Close.

În continuare indicăm, în partea de jos a ferestrei, cîmpurile din fiecare tabel (în ordinea dorită) care urmează a fi afișate sau pentru care se vor specifica condiții de selecție și/sau de sortare. (fig. 13).

Figură Condițiile de selecție

În rîndul Criteria din partea de jos a ferestrei specificăm condiția selecției Like “buc*” pentru cîmpul Localitate_client al tabelului Clienti.

Interogarea astfel definită poate fi executată imediat în scopul obținerii rezultatului (fig. 14), sau salvată pentru a fi executată ulterior. În primul caz acționăm butonul (Datasheet View) din bara cu instrumente în aldoile caz executăm comanda Save din meniul File. La salvarea interogării indicăm numele ei, care nu trebuie să coincidă cu numele unor tabele sau ale unor interogări definite anterior.

In cazul nostru, la deschiderea interogarii denumite “Clienti din Bucuresti” obtinem un table care cuprinde totalitatea clientilor ce au localitatea in Bucuresti.

Figură Rezultatul interogării în funcție de condiția de selecție.

Exemplu 2. Lista rezervarilor facute in data 07.02.2017

Pentru afișarea rezervarilor efectuate in data 07.02.2017 acționăm fila Create-Other-Query Design.

Din caseta care apare (fig.15) selectăm și cu butonul Add marcăm tabelul „Rezervări”.

Figură Alte tipuri de interogări.

După selectarea tabelului acționăm butonul Close. Apoi executăm dublu clic pe denumirile câmpurilor și vor trece în rîndul Field din caseta de jos (Fig.16).

Figură Rezervările făcute în funcție de dată.

După aceasta specificăm condițiile selecției. În rîndul Criteria scriem condiția #07.02.2017# pentru câmpul Data_rezervare al tabelului Rezervari și ne va afișa lista rezervarilor efectuate făcute în data de 07.02.2017 după apăsarea butonului„Run”din secțiunea„Rezults”(Fig 17).

Figură Rezultatul interogării după dată.

Exempul 3: Cautare nume client

Pentru cautarea clientilor dupa nume actionam Create-Other-Query Design-selectare „Clienți”-Add-Close(fig 15).

Apoi executăm dublu clic pe denumirile câmpurilor și vor trece în rîndul Field din caseta de jos (fig.18).

Figură Căutarea numelui unui client.

După aceasta specificăm condițiile selecției. În rîndul Criteria scrim condiția “[Cautare Nume Client]” pentru câmpul Nume_client al tabelului Clienti și ne va afișa urmatoarea fereastra :

Figură Introducerea numelui căutat.

După introducerea parametrilor cautati, programul va afisa rezultatele sub forma:

Figură Rezultatul căutării după nume.

Exemplul 4 : Calcularea pretului complet al pachetelor turistice.

Pentru calcularea pretului complet al pachetelor turistice acționăm fila Create-Other-Query Design-selectare „Pachete”-Add-Close(fig 15)

Apoi executăm dublu clic pe denumirile câmpurilor și vor trece în rîndul Field din casuța de jos(fig. 21).

Figură Calcularea prețului complet al pachetelor turistice.

In tabelul „Pachete” adaugam un camp nou numit “Preț_pachet” căruia îi adaugam sintagma “ : [Număr_nopti_cazare]*[Pret_noapte] “ , astfel câmpul “Preț_pachet” va afișa valorile rezultate din înmultirea câmpurilor “Număr_noapte_cazare” si “Preț_noapte”.

Apăsăm „Run”.

Tabelul afisat va fi de forma următoare :

Figură Rezultatul interogării .

Exemplul 5: Lista pachetelor turistice cu pretul pana in 1500 lei

Pentru aceasta executăm următorii pași:

Definim o interogare în care includem interogarea “Pret pachet complet” din care selectam toate campurile necesare (fig.23)

Figură Interogare pentru afișarea pachetelor cu prețul până în 1500 lei.

După aceasta specificăm criteriul de selecție în rîndul Criteria pentru câmpul Pret_pachet din interogarea “Pret pachet complet” și ne va afișa lista pachetelor cu pretul pana in 1500lei.

Obținem după apăsarea butonului „Run” :

Figură Rezultatul interogării pentru exemplul 5.

3.3 Interogări de sortare a înregistrărilor

După ce am definit condițiile de selecție, putem stabili condiții de sortare pentru unul sau mai multe câmpuri.

Exemplu 1: Ordonarea ascendentă a numelor Clientilor

Pentru afișarea numelor clientilor în ordine alfabetică executăm un clic în rîndul Sort al casetei (fig.25) în dreptul câmpului Nume și din lista derulantă alegem opțiunea Ascending.

Figură Ordonarea ascendentă

Pentru a afișa rezultatul interogării (fig.26), acționăm butonul „Run” din bara cu instrumente.

Figură Rezultatul ordonării ascendente.

Sortarea datelor poate fi făcută și fără a specifica condiții de selecție. În acest caz se vor afișa toate înregistrările, dar ordinea lor va corespunde condițiilor stabilite în rîndul Sort pentru câmpurile respective.

4. Rapoarte

Raportul este un instrument folosit pentru extragerea datelor dintr-un tabel sau interogare, aranjarea acestora într-un format predefinit sau standard si vizualizarea lor pe display sau listarea la imprimanta.

Exista un utilitar de creare automata a rapoartelor (Create-Reports-Report Wizard) ce printr-o suita de ecrane succesive stabileste principalele caracteristici ale raportului: sursa de date, câmpurile ce apar în raport, modalitațile de grupare si de sortare a informației, structura, forma si numele raportului(fig. 27).

Figură Rapoarte

După introducerea datelor cerute obținem( fig. 28):

Figură Rezultatul afișării raportului.

5.Formulare

Formularul este un instrument complex ce permite extragerea si/sau introducerea datelor din/în baza de date, si realizarea interfeței aplicației ce gestioneaza baza de date.

Exista un utilitar de creare automata a formularelor (Create-Forms-Form Wizard) ce printr-o suită de ecrane succesive stabileste principalele caracteristici ale raportului: sursa de date, câmpurile ce apar în formular, structura, forma si numele formularului( figura 29).

Figură Crearea unui „Formular Clienți”.

Exemplu : Crearea unui Formular Clienti( figura 30) .

Pentru efectuarea acestei operatiuni, urmam pasii de mai sus si alegem campurile ce dorim sa fie afisate din tabelul Clienti.

Figură „Formular Clienți”

Adaugam butoane folosing functia „Button” din meniul „Controls”.

In cazul nostru am introdus butoane pentru functiile „Add Record”, „Delete record”, „Save record”, „Previous Record” si „Next Record”.

Astfel pot fi vizualizate înregistrările despre „Clienți” și deasemeni pot fi introduși clienți noi.

Capitolul 2: Limbajul de programare C#.

Scurt istoric

Lansat publicului in iunie 2000 si oficial in primavara anului 2002, C# este un limbaj de programare care combina facilitati testate de-a lungul timpului cu inovatii de ultim moment. Creatorii acestui limbaj au fost o echipa de la firma Microsoft condusa de Anders Hejlsberg. Desi limbajul este creat de Microsoft, acesta nu este destinat doar platformelor Microsoft. Compilatoare C# exista si pentru alte sisteme precum Linux sau Macintosh. Creat ca instrument de dezvoltare pentru arhitectura .NET, limbajul ofera o modalitate facila si eficienta de a scrie programe pentru sistemul Windows, internet, componente software etc.

C# deriva din doua dintre cele mai de succes limbaje de programare: C si C++. De asemenea, limbajul este o “ruda” apropiata a limbajului Java. Pentru o mai buna intelegere a limbajului C# este interesant de remarcat care este natura relatiilor acestuia cu celelalte trei limbaje mentionate mai sus. Pentru aceasta, vom plasa mai intai limbajul C# in contextul istoric determinat de cele trei limbaje.

Limbajul C. Programarea structurata

Limbajul C a fost inventat de catre Dennis Ritchie in anii ‘70 pe un calculator pe care rula sistemul de operare UNIX. Limbajul C s-a dezvoltat in urma revolutiei programarii structurate din anii ’60. Inainte de programarea structurata, programele erau greu de scris si de inteles din cauza logicii. O masa incalcita de salturi, apelui si reveniri, greu de urmarit era cunoscuta sub numele de cod spaghetti. Datorita sintaxei sale concise si usor de utilizat, in anii ‘80, limbajul C a devenit cel mai raspandit limbaj structurat.

Limbajul C are insa limitele sale. Una dintre acestea o reprezinta incapacitatea de a lucra cu programe mari. Limbajul C ridica o bariera atunci cand programul atinge o anumita dimensiune. Acest prag depinde de program, instrumentele folosite, programator, dar este posibil sa se situeze in jurul a 5000 de linii de cod

Limbajul C++. Programarea orientata obiect

La sfarsitul anilor ’70 dimensiunile multor programe erau aproape de limitele impuse de limbajul C. Pentru a rezolva problema a aparut o modalitate noua de programare si anume programarea orientata obiect (POO). Limbajul C nu permitea programarea orientata obiect. Fiind cel mai raspandit limbaj, s-a dorit extinderea sa in vederea implementarii noii modalitati de programare: programarea POO.

Limbajul C++ a fost creat de catre Bjarne Stroustrup incepand din 1979, la laboratoarele Bell din Murray Hill, New Jersey. Limbajul a fost denumit initial C cu clase, iar in 1983 numele acestuia a fost modificat in C++. In esenta, C++ reprezinta versiunea orientata obiect a limbajului C. In anii ’80, limbajul C++ a suferit dezvoltarii si perfectionari masive, astfel ca in anii ’90 a devenit cel mai raspandit limbaj de programare.

Limbajul Java. Problema portabilitatii

Lucrul la acest limbaj a fost demarat in 1991 la firma Sun Microsystems. Java este un limbaj structurat si orientat pe obiecte, cu o sintaxa si filozofie derivate din C++. Aspectele novatoare se refera mai mult la modificarile mediului de programare. Aspectul esential in Java este posibilitatea de a crea cod portabil pe platforme diferite. Inainte de explozia Internetului, majoritatea programelor erau compilate si destinate utilizarii pe un anumit procesor si sub un anumit sistem de operare. Programele scrise in C si C++ se compilau intodeauna pana la cod masina executabil. Codul masina este legat de un anumit procesor si de un anumit sistem de operare. Dupa aparitia Internetului insa, la care sunt conectate sisteme cu procesoare si sisteme de operare diferite, problema portabilitatii a devenit foarte importanta.

Java a realizat portabilitatea prin transformarea codului sursa al programului intr-un cod intermediar numit bytecode. Acest format intermediar este executat apoi de asa numita Masina Virtuala Java (MVJ). Asadar, programele Java pot rula in orice mediu in care este disponibila o MVJ. Deoarece MVJ este usor de implementat, aceasta a fost imediat disponibila pentru un numar mare de medii.

Limbajul C#

Desi Java a rezolvat cu succes problema portabilitatii, exista unele aspecte care ii lipsesc. Una dintre acestea este interoperabilitatea limbajelor diferite, sau programarea in limbaj mixt (posibilitatea codului scris intr-un limbaj de a lucra in mod natural cu codul scris in alt limbaj). Interoperabilitatea limbajelor diferite este esentiala la realizarea sistemelor software de dimensiuni mari.

Ca parte a ansamblului strategiei .NET, dezvoltata de Microsoft, la finele anilor ’90 a fost creat limbajul C#. C# este direct inrudit cu C, C++ si Java. “Bunicul” limbajului C# este C-ul. De la C, C# mosteneste sintaxa, multe din cuvintele cheie si operatorii. De asemenea, C# construieste peste modelul de obiecte definit in in C++. Relatia dintre C# si Java este mai complicata. Java deriva la randul sau din C si C++. Ca si Java, C# a fost proiectat pentru a produce cod portabil. Limbajul C# nu deriva din Java. Intre C# si Java exista o relatie similara celei dintre “veri”, ele deriva din acelasi stramos, dar deosebindu-se prin multe caracteristici importante.

Limbajul C# contine mai multe facilitati novatoare, dintre care cele mai importante se refera la suportul incorporat pentru componente software. C# dispune de facilitati care implementeaza direct elementele care alcatuiesc componentele software, cum ar fi proprietatile, metodele si evenimentele. Poate cea mai importanta facilitate de care dispune C# este posibilitatea de a lucra intr-un mediu cu limbaj mixt.

Relatia dintre C# si arhitectura .NET

C# are o legatura deosebita cu mediul sau de rulare, arhitectura .NET. Pe de o parte, C# a fost dezvoltat pentru crearea codului pentru arhitectura .NET, iar pe de alta parte bibliotecile utilizate de C# sunt cele ale arhitecturii .NET.

Ce este arhitectura .NET ?

Arhitectura .NET defineste un mediu de programare care permite dezvoltarea si executia aplicatiilor indiferent de platforma. Aceasta permite programarea in limbaj mixt si ofera facilitati de securitate si portabilitate a programelor. Este disponibila deocamdata pentru platformele Windows.

Legat de C#, arhitectura .NET defineste doua entitati importante si anume biblioteca de clase .NET si motorul comun de programare sau Common Language Runtime (CLR).

C# nu are o biblioteca de clase proprie ci utilizeaza direct biblioteca de clase .NET. De exemplu, cand se ruleaza un program care efectueaza operatii de intrare-iesire, cum ar fi afisarea unui text pe ecran, se utilizeaza biblioteca de clase .NET.

Motorul comun de programare (CLR) se ocupa de executia programelor C#. El asigura de asemenea programarea in limbaj mixt, securitatea si portabilitatea programelor. Atunci cand este compilat un program C#, sau un program in limbaj mixt, rezultatul compilarii nu este un cod executabil. In locul acestuia, se produce un fisier care contine un tip de pseudocod numit limbaj intermediar sau pe scurt IL (Intermediate Language). Acest fisier IL poate fi copiat in orice calculator care dispune de .NET CLR. Prin intermediul unui compilator denumit JIT (Just In Time), motorul comun de pogramare transforma codul intermediar in cod executabil. Procesul de conversie decurge astfel: atunci cand un program .NET este executat, CLR activeaza compilatorul JIT. Compilatorul JIT converteste IL in cod executabil pe masura ce fiecare parte a programului este neceasra. In concluzie, orice program compilat pana in format IL poate rula in orice mediu pentru care CLR este implementat. In acest fel arhitectura .NET asigura portabilitatea.

Principiile programarii orientate obiect

Metodologiile de programare s-au modificat continuu de la aparitia calculatoarelor pentru a tine pasul cu marirea complexitatii programelor. Pentru primele calculatoare programarea se facea introducand instructiunile masina scrise in binar. Pe masura ce programele au crescut s-a inventat limbajul de asamblare, in care se puteau gestiona programe mai mari prin utilizarea unor reprezentari simbolice ale instructiunilor masina. Cum programele continuau sa creasca, s-au introdus limbaje de nivel inalt, precum FORTRAN si COBOL, iar apoi s-a inventat programarea structurata.

POO a preluat cele mai bune idei de la programarea structurata, combinanu-le cu concepte noi. A rezultat o modlitate diferita de a organiza un program. In fapt, un program poate fi organizat in doua moduri: in jurul codului (mod de lucru descris de sintagma “codul actioneaza asupra datelor”, valabil in cazul programarii structurate) sau in jurul datelor (abordare descrisa de sintagma “datele controleaza accesul la cod”, valabila in cazul programarii orientate obiect).

Toate limbajele POO au patru caracteristici comune: incapsularea, polimorfismul, mostenirea si reutilizarea.

Incapsularea

Incapsularea este un mecanism care combina codul si datele pe care le manipuleaza, mentinand integritatea acestora fata de interferenta cu lumea exterioara. Incapsularea mai este numita si realizarea de cutii negre, intrucat se ascunde functionalitatea proceselor. Cand codul si datele sunt incapsulate se creaza un obiect. In cadrul unui obiect, codul si datele pot fi publice sau private. Codul si datele private sunt accesibile doar in cadrul aceluiasi obiect, in timp ce codul si datele publice pot fi utilizate si din parti ale programului care exista in afara acelui obiect.

Unitatea fundamentala de incapsulare este clasa. Clasa specifica datele si codul care opereaza asupra datelor. O clasa defineste forma unui obiect. Sau altfel spus, o clasa reprezinta o matrita, iar un obiect reprezinta o instanta a clasei.

Polimorfismul

Polimorfismul este calitatea care permite unei interfete sa aiba acces la un grup generic de actiuni. Termenul este derivat dintr-un cuvant grecesc avand semnificatia “cu mai multe forme”. Spre exemplu, sa presupunem ca avem o nevoie de o routina care sa returneze aria unei forme geometrice, care poate fi un triunghi, cerc sau trapez. Intrucat ariile celor trei forme se calculeaza diferit, routina trebuie sa fie adaptata la datele pe care le primeste incat sa distinga despre ce fel de forma este vorba si sa returneze rezultatul corect.

Conceptul de polimorfism este exprimat prin sintagma “o singura interfata mai mlte metode”.

Mostenirea

Mostenirea este procesul prin care un obiect poate dobandi caracteristicile altui obiect. Analogia cu conceptul de animal este elocventa. Spre exemplu, sa consideram o reptila. Aceasta are toate caracteristicile unui animal, insa in plus are si o alta caracteristica, si anume: sangele rece. Sa consideram un sarpe. Acesta este o reptila lunga si subtire care nu are picioare. Sarpele are toate caracteristicile unei reptile, insa poseda si propriile sale caracteristici. Asadar, un sarpe mosteneste caracteristicile unei reptile. O reptila mosteneste caracteristicile unui animal. Asadar, mecanismul mostenirii este cel care face posibil ca un obiect sa fie o instanta a unui caz mai general.

Reutilizarea

Atunci cand este creata o clasa, aceasta poate fi utilizata pentru a crea o multime de obiecte. Prin utilizarea mostenirii si incapsularii clasa amintita poate fi reutilizata. Nu mai este nevoie sa testam codul respectiv ci doar a il utlizam corect.

Crearea, compilarea si executia programelor C#. Exemple;

Să consideram urmatorul program C# simplu:

/* Acesta este un program simplu in C#

Denumiti programul: Example1.cs */

using System;

class Example1

{

//orice program in C# contine metoda Main()

public static void Main()

{

Console.WriteLine("This is my first C# program");

}

}

Exista doua moduri de a edita, compila si rula un program in C#. In primul rand se poate utiliza compilatorul linie de comanda csc.exe. A doua posibilitate este de a utiliza utilizati mediul Visual Studio .NET. In primul caz trebuie parcursi urmatorii pasi: introduceti textul programului cu ajutorul unui editor de texte si salvati fisierul utilizand extensia cs, spre exemplu Example1.cs; apoi compilati programul precizand numele fisierului in linia de comanda (C:\>csc Example1.cs); in final rulati programul in linia de comanda (C:\>Example). In cel de-al doilea caz creati un nou proiect C# selectand: File|New|Project, apoi Visual C# Projects|Empty Project. Dupa ce ati creat proiectul, executati click dreapta pe fereastra Solution. Utilizand meniul aparut selectati Add apoi Add New Item | Local Project Items| C# Code File. Introduceti textul, salvati proiectul, compilati proiectul selectand Build si in fine rulati programul selectand Start Without Debugging din meniul Debug.

Programul de mai jos creaza o aplicatie Windows.

using System;

using System.Windows.Forms;

public class MyForm : Form

{

private TextBox txtEnter;

private Label lblDisplay;

private Button btnOk;

public MyForm()

{

this.txtEnter = new TextBox();

this.lblDisplay = new Label();

this.btnOk = new Button();

this.Text = "Prima mea aplicatie Windows!";

this.Size=new System.Drawing.Size(320, 300);

// txtEnter 1

this.txtEnter.Location = new System.Drawing.Point(16, 32);

this.txtEnter.Size = new System.Drawing.Size(264, 20);

// lblDisplay

this.lblDisplay.Location = new System.Drawing.Point(16, 72);

this.lblDisplay.Size = new System.Drawing.Size(264, 128);

// btnOk

this.btnOk.Location = new System.Drawing.Point(88, 224);

this.btnOk.Text = "OK";

this.btnOk.Click +=new System.EventHandler(this.btnOK_Click);

// MyForm

this.Controls.AddRange(new Control[] {

this.txtEnter, this.lblDisplay, this.btnOk});

}

static void Main ()

{

Application.Run(new MyForm());

}

private void btnOK_Click(object sender, System.EventArgs e)

{

lblDisplay.Text = txtEnter.Text + "\n" + lblDisplay.Text;

}

}

Capitolul 3 – Modelarea structurii unei unități școlare.

3.1. Organigrama unei unități școlare.

Pentru modelare, pornim de la organigrama unei unități școlare prezentată în figura 31.

Pentru fiecare compartiment din organigramă vom construi baze de date sub formă de tabele în Access 2007.

Tabelele vor conține mai multe coloane în care se vor introduce după caz date precum: Nume și prenume, și după caz funcția, grad didactic, dacă persoana este responsabil de comisie sau nu, statut în școală și în comisie.

3.2. Realizarea tabelelor pentru fiecare compartiment sau comisie.

Tabelul cu membrii Consiliului profesoral :

Acesta va conține tot personalul didactic din școală și conține coloane ca în figura 32:

Figură Structura câmpurilor în tabelul „Consiliul profesoral”.

Pe lângă numărul și numele personalului didactic din școală, tabelul mai oferă informații legate de:

Funcție în școală care poate fi: "Educatoare" ;"Învățător(are)" ; "Profesor(ară)";

Grad didactic: "Debutant";"Grad II";"Grad I";

Statut în școală: "Titular";"Suplinitor";

Statut în consiliu: "Presedinte";"Membru";

Disciplina: "Nu";"Lb. Română" ;"Lb.engleză" ;"Lb.franceză"; "Matematică" ; "Fizică"; "Chimie"; "Biologie" ;"Ed. civică" ;"Istorie" ;"Geografie";"Muzică";"Religie";"Ed.fizică";"Desen";"Ed.tehnologică" ; "TIC".

Opțiunile pot fi alese dintr-o listă ca în figura :

Figură Informațiile oferite de tabelul „Consiliul profesoral”.

Notă:

Pentru învățători și educatori există opțiunea „Nu”.

Opțiunile sunt alese dintr-o listă ceeată cu utilitarul „Lookup Wizard…”.

Pentru Consiliul de administrație s-a întocmit tabelul din figura 34:

Figură Consiliul de administrație.

Restricții la alcătuirea Consiliului de administrație conform legislației:

Directorul este „Președintele” al Consiliului de administrație;

Consiliul de administrație este compus din membri reprezentanți ai școlii, a părinților, și al Consiliului local.

În Consiliul de administrație sunt propuse cadre didactice titulare cu cel puțin gradul II.

În mod similar au fost construite tabelele pentru celelalte compartimente și

comisii cu precizările:

Responsabilii de comisii nu pot fi debutanți și sunt de regulă titulari ai școlii;

Comisiile educatorilor și a învățătorilor sunt de sine stătătoare și cuprind educatoarele și respectiv învățătorii din școală;

Comisiile metodice sunt compuse din cadre didactice ce aparțin anumitor arii curriculare astfel:

Comisia „Limbă și comunicare”: Limba română, Limba engleză, Limba franceză și Latină;

Comisia „Matematică și științe”: Matematică, Fizică, Chimie, Biologie;

Comisia „Om și societate”: Istorie, Geografie, Religie, Cultură Civică;

Comisia „Arte, Educație Fizică și Educație Tehnologică”;

Comisia „Diriginților” cuprinde cadrele didactice profesori(profesoare) care sunt diriginți la diverse clase din ciclul gimnazial(clasele V-VIII) în funcție de numărul de clase paralele sau de numărul structurilor dintr-o localitate.

Comisia „C.E.A.C.” ( de asigurare a calității) cuprinde cadre didactice cu experiență educatoare, învățători (învățătoare) sau profesori ( profesoare).

3.3. Filtrarea și sortarea pentru tabelele din structură.

Filtrarea și sortarea informațiilor din tabele poate fi realizată în Access

2007 cu ajutorul utilitarului „Filter”(fig 35-1) sau direct din coloanele tabelului ca în figura 35- 2.

Filtrarea și sortarea este utilă pentru aplicația noastră întrucât pot fi grupate și sortate informațiile oferite de tabele după anumite criterii cum sunt:

să vedem câte cadre didactice sunt „Titulare” sau câte sunt „Suplinitoare”;

să constatăm câte cadre didactice au „Gradul I”, „Gradul II”, și care sunt „Debutante”( fig. 36);

Figură Accesarea „Filtrelor”.

Figură Cadrele didactice care au gradul I .

Filtrul ne oferă automat numele și numărul (fig. 36-1)cadrelor didactice care au gradul didactic I.

3.4. Interogări de selecție.

Sunt utile când dorim să aflăm rapid anumite înregistrări după anumite criterii.

Pentru aceasta accesăm utilitarul „Query Design” ( vezi paragraful 3.2.).

Avantajul interogărilor față de sortare și filtrare este că fiecare interogare („Query”) poate fi salvată și utilizată de câte ori este nevoie.

Dacă dorim să construim o interogare de selecție pentru tabelul „Consiliul profesoral” după criteriul „Căutare după grad” procedăm astfel:

Accesăm „Query Design” , bifăm „Consiliul profesoral” – „Add” – „Close”(figura 37).

Figură Accesarea utilitarului „Query Design”.

În tabelul din partea de jos stabilim ce se va afișa și după ce criteriu (în cazul ăsta [Cautare dupa grad]) .

Se apasă „Run” după care se deschide o fereastră „Enter Parameter Value”.

Se introduce criteriul după care dorim să se facă interogarea- „Grad I” ( fig. 38) și se apasă „OK”.

Figură Interogare după grad.

Se obține rezultatul din figura 39.

Interogarea „Căutare după grad” poate fi salvată și utilizată oricând pentru diverse interogări după gradul didactic. Vom denumi interogarea ca și criteriul de cautare, respectiv „Cautare după grad”.

Figură Căutare după „Grad I”.

3.5. Rapoarte.

Similar Posts