25
BAZA DE DATE AGENTIE DE TURISM

Baza de Date - Agenție de Turism

Embed Size (px)

Citation preview

BAZA DE DATE AGENTIE DE TURISM

DIANCOF ALINA - GABRIELAAn II, CIG

Seria AGrupa 619

Introducere

Microsoft Access 2003 este aplicaţia de managemental bazelor de date pusă la dispoziţie de suita MicrosoftOffice. Spre deosebire de Excel, Access va permite săstocăm şi să administrăm volume mari de date, organizate înunităţ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 bazelede date, astfel încât acestea să poată interacţiona cualt software.

Utilitarele de asistenţă din aplicaţia Accessasigură un proces simplu, pas cu pas, de configurare atabelelor, formularelor, paginilor de acces la date,rapoartelor şi interogărilor. Prezenta lucrare conţine 5 paragrafe. § 1 conţine noţiuni de baze de date,tipuri BD. O bază dedate (BD) reprezintă o colecţie de date integrată, anumestructurată şi dotată cu o descriere a structurii şi arelaţiilor dintre date. § 2 conţine caracteristica generală a SGBD Access.

§ 3 conţine tabelele Access ,care în baza lor sedefinesc celelalte clase de obiecte. § 4 conţine funcţii Access.Ultimul § conţine interogări Access care include şisubpunctele interogări de selecţie,de sortare, deactualizare a datelor, de excludere a înregistrărilor, degrupare şi totalizare şi interogări încrucişate.

Lansarea sistemului MS Access 2003SGBD MS Access funcţionează numai în mediul Windows. Existămai multe modalităţi de lansare a sistemului Access, unadin ele fiind executarea consecutivă a acţiunilor Start/AllPrograms(sau Programs)/Microsoft Office/Microsoft Office Access 2003.Ca rezultat, obţinem o fereastră, asemănătoare cu cea dinfigura 1.

Figura 1. Lansarea sistemuluiAccessCrearea / accesarea unei baze de date După cum am mai menţionat, elementele principale aleunei baze de date sunt tabelele. Dar o bază de date poateconţ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 deobiecte ale bazei de date. Pentru a crea o bază de date nouă, în zona Open aferestrei reprezentate în figura 1 alegem opţiunea Create anew file, iar în caseta urmatoare - opţiunea Blank Database.Putem, de asemenea, utiliza comenzile de creare/accesare abazelor de date din meniul File.

Figura .2 Pentru a deschide o bază de date existentă în zona Open aferestrei reprezentate în figura 1 executăm un clic pedenumirea uneia din bazele de date utilizate recent sauselectăm opţiunea More pentru a accesa o bază de dateamplasată pe un dispozitiv de memorie auxiliară. În casetade dialog care apare indicăm numele BD

Figura.3 şi localizarea ei (discul, dosarul).Obţinem o fereastrăîn care sunt disponibile cele 7 clase de obiecte Access.

Figura. 4 Fereastra cu clasele de obiecteAccess

Închiderea / redeschiderea bazei de date Închiderea unei baze de date poate fi făcută prinexecutarea comenzii Close din meniul File sau prin acţionareabutonului din bara de titlu a bazei de date. De regulă,la închidere, sistemul salvează automat baza de dateîmpreună cu toate obiectele pe care le conţine. Închidereaunei baze de date nu înseamnă şi închiderea aplicaţiei MSAccess, astfel încît putem deschide o altă de date sau creao bază de date nouă, în modul descris mai sus.

Ieşirea din Access Ieşirea din MS Access poate fi făcută în unul dinurmătoarele moduri: se apasă combinaţia de taste Alt+F4; se execută comanda Exit din meniul File; se acţionează butonul din bara de titlu aaplicaţiei

§ Tabele Access.

Crearea unui tabelDupă ce am deschis o bază de date , eveniment confirmatprin apariţia ferestrei cu cele 7 clase de obiecte(fig.4) , putem crea diferite obiecte în oricare dinclasele nominalizate. Dar deoarece fiecare din claseleQueries, Forms, Reports, Pages, Macros şi Modules sedefinesc în baza tabelelor, acestea (tabelele) trebuiecreate în primul rînd. Cu alte cuvinte, dacă o BD nuconţine cel puţin un tabel, crearea altor clase de obiectedevine lipsită de sens. Pentru a crea un tabel nou ,de exemplu, Comenzi, selectămclasa de obiecte Tables, apoi acţionăm butonul . Casetade dialog New Table care apare (fig.5) ne oferă 5 moduri dedefinire a structurii tabelului.

Figura.5 Moduri de definire a structurii unuitabel

Dacă selectăm opţiunea Design View şi acţionăm butonul OK,obţinem o fereastră (fig.6) în care definim cîmpurile tabelului şicaracteristicile lor.

fig.6.Definirea câmpurilor tabelului Comenzi

Aplicatia ofera solutia informatizata a procesului de rezervare a pachetelor turistice precum si a evidentia clientiilor agentiei. Ca urmare avem nevoie de 3 tabele: Clienti, Pachete si Rezervari.Tabelele create sunt de forma urmatoare :

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

- In cazul tabelului CLIENTI, cheia primară poate fistabilită pe cîmpul Cod_client, pentru a excludeeventualitatea repetării identificatorului cărţii (înbaza de date nu pot exista doi clienti cu acelasicod).

- Pentru tabelul PACHETE, cheia primara poate fistabilita pe camplul Cod_pachet.

- Pentru tabelul REZERVARI cheia primara poate fistabilita pe campul Cod_rezervare.

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

După încheierea procedurii de descriere a cîmpurilorşi de stabilire a cheii primare, salvăm tabelul (descrierealui), selectînd comanda Save din meniul File şi indicîndnumele tabelului. Dacă nu am stabilit o cheie primară (acestlucru 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 cazsistemul stabileşte automat cheia primară pe un cîmpAutoNumber (dacă el există) sau creează suplimentar unasemenea cîmp (dacă el nu există), stabilind pe el cheiaprimară. Pentru a renunţa la stabilirea cheii primare,acţionăm butonul No.

Introducerea datelor în tabel După ce am efectuat procedurile de descriere atabelului , putem introduce date în cîmpurile lui. Pentru ainiţia procesul de introducere a datelor , deschidem BD(dacă nu este deschisă) , apoi în fereastra Database(fig.4) selectăm tabelul necesar (de exemplu Cititori) şiexecutăm un clic pe Open. Ca rezultat, se afişează cîmpuriletabelului respectiv fig.7Iniţial tabelul conţine doar un rînd liber de formaurmatoare :

Dupa adaugarea datelor, tabelele noastre arata in felulurmator :Tabelul Clienti :

Tabelul Pachete :

Tabelul Rezervari :

Relaţii dintre tabele. Integritatea datelorRelaţiile dintre două tabele se stabilesc, de regulă, prinintermediul unor cîmpuri identice (cu aceeaşi denumire, deaceeaşi lungime, cu aceleaşi proprietăţi) prezente înambele 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 admitvalori care se repetă, iar în tabelul secundar (din parteacăruia se realizează relaţia "mulţi") trebuie să existe uncî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 tabelintermediar, în care se introduc, în calitate de cheistră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 aufost incluse cîmpurile Cod_rezervare şi Cod_pachet din tabelelerespective.

Putem stabili relaţii între tabelele bazei de date şi înmod explicit, utilizînd comanda Relationships din meniul Tools.În acest caz apare

fig.8 Relaţiile dintre tabelelebazei de date

§ Interogări Access

Performanţele unui SGBD depind în mare măsură decapacitatea extragerii rapide a diferitor informaţii înforma dorită. În multe cazuri este necesar de a selecta datedin mai multe tabele simultan.

Interogările reprezintă modalităţi de selecţie şi afişare ainformaţie din unu sau mai multe tabele, formulate cu ajutorulunor condiţii logice.

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 ordineasortării); c) interogări de excludere a unor înregistrări din BD (de exemplu,excluderea tuturor cititorilor care nu au împrumutatcărţi înultimii 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împurinoi)în baza informaţiei existente (de exemplu,obţinerea vîrstei cititorului prin scăderea anului denaş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ă, rezultatulinterogării este un nou set de date, numit set dinamic (engl:Dynaset). Setul dinamic (rezultalul interogării) conţine doarcîmpurile specificate ale înregistrărilor din tabelelespecificate care satisfac condiţiilor specificate. Denumirea'"Set dinamic" este legată de faptul că orice modificări aledatelor din tabelele specificate în interogare implicămodificări respective ale rezultatului interogării (la onouă executare a ei). Şi invers, orice modificări în setuldinamic implică modificări în tabelele respective (cucondiţia respectării integrităţii datelor). Seturiledinamice nu se memorizează; ele se formează din nou defiecare dată cînd executăm o interogare. Dac în tabelele BDintervin 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 ainterogărilor nominalizate.

5.1 Interogări Exemplu:1

Pentru a defini o interogare de selecţie (de exemplu,afisarea clientilor ce locuiesc in Bucuresti), acţionăm filaQueries din fereastra Database, apoi butonul New. În continuare indicăm unul din cele 5 moduri de creare ainterogărilor (în cazul nostru Design View) Din caseta care apare (fig. 11) selectăm consecutiv (înorice ordine) tabelele necesare (în cazul nostru Clienti,Pachete si Rezervari) şi pentru fiecare acţionăm butonulAdd.

fig.11 Selectarea tabelelor pentrudefinirea interogării 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ă) careurmează a fi afişate sau pentru care se vor specificacondiţii de selecţie şi/sau de sortare. (fig. 12).

fig12.Specificareacondiţiilor de selecţie

În rîndul Criteria din partea de jos a ferestreispecificăm condiţia selecţiei Like “buc*” pentru cîmpulLocalitate_client al tabelului Clienti. Interogarea astfel definită poate fi executată imediatîn scopul obţinerii rezultatului (fig. 13), sau salvatăpentru a fi executată ulterior. În primul caz acţionămbutonul (Datasheet View) din bara cu instrumente înaldoile caz executăm comanda Save din meniul File. Lasalvarea interogării indicăm numele ei, care nu trebuie săcoincidă cu numele unor tabele sau ale unor interogăridefinite anterior.

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

fig.13 Rezultatele interogării

Exemplu 2. Lista rezervarilor facute in data 20.02.2010 Pentru afişarea rezervarilor efectuate in data20.02.2010 acţionăm fila Queries din fereastra Database ,apoi butonul New. În continuare indicăm unul din cele 5moduri de creare a interogărilor, în cazul nostru DesignView

Din caseta care apare (fig.15) selectăm butonul Add.

fig.15

După selectarea tabelului acţionăm butonul Close. Apoiexecutăm dublu clic pe denumirile câmpurilor şi vor treceîn rîndul Field din caseta de jos (fig.16).

fig.16 După aceasta specificăm condiţiile selecţiei. În rîndulCriteria scrim condiţia #20.02.2010# pentru câmpulData_rezervare al tabelului Rezervari şi ne va afişa listarezervarilor effectuate facute in data de 20.02.2010.

fig.17. Rezultatul interogării

Exempul 3: Cautare nume clienti Pentru cautarea clientilor dupa nume actionam filaQueries din fereastra Database , apoi butonul New. Încontinuare indicăm unul din cele 5 moduri de creare ainterogărilor, în cazul nostru Design View Din caseta care apare (fig.15) selectăm tabelul Clientisi acţionăm butonul Add .După selectarea tabelului acţionămbutonul Close. Apoi executăm dublu clic pe denumirile câmpurilor şivor trece în rîndul Field din caseta de jos (fig.18).

fig.18 După aceasta specificăm condiţiile selecţiei. În rîndulCriteria scrim condiţia “[Cautare Nume Client]” pentrucâmpul Nume_client al tabelului Clienti şi ne va afişaurmatoarea fereastra :

fig.19. Introducerea parametrilorDupa introducerea parametrilor cautati, programul va afisarezultatele sub forma :

Exemplul 4 : Calcularea pretului complet al pachetelorturistice. Pentru calcularea pretului complet al pachetelorturistice actionam fila Queries din fereastra Database ,apoi butonul New. În continuare indicăm unul din cele 5moduri de creare a interogărilor, în cazul nostru DesignView Din caseta care apare (fig.15) selectăm tabelul Pachetesi acţionăm butonul Add .După selectarea tabelului acţionămbutonul Close.

Apoi executăm dublu clic pe denumirile câmpurilor şivor trece în rîndul Field din caseta de jos.

In adaugam un camp nou numit “Pret_pachet” caruia iiadaugam sintagma “ : [Numar_nopti_cazare]*[Pret_noapte] “ ,astfel campul “Pret_pachet” va afisa valorile rezultate dininmultirea campurilor “Numar_noapte_cazare” si“Pret_noapte”.

Tabelul afisat va fi de forma urmatoare :

Exemplul 5: Lista pachetelor turistice cu pretul pana in1000 leiPentru aceasta executăm următorii paşi: Definim o interogare în care includem interogarea “Pretpachet complet” din care selectam toate campurile necesare(fig.20)

fig.20După aceasta specificăm criteriul de selecţie în rîndulCriteria pentru câmpul Pret_pachet din interogarea “Pretpachet complet” şi ne va afişa lista pachetelor cu pretulpana in 1000lei.

fig.21 5.2 Interogări de sortare aînregistrărilor

După ce am definit condiţiile de selecţie, putem stabilicondiţii de sortare pentru unul sau mai multe câmpuri. Exemplu 1: Ordonarea ascendant a numelor ClientilorPentru afişarea numelor clientilor în ordine alfabeticăexecutăm un clic în rîndul Sort al casetei (fig.22) îndreptul câmpului Nume şi din lista derulantă alegem

opţiunea Ascending.

fig.22

Pentru a afişa rezultatul interogării (fig.23), acţionămbutonul (Datasheet View) din bara cu instrumente.

fig.23

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

Formulare

Pentru crearea unui formular actionam fila Forms din fereastra Database , apoi butonul New, apoi alegem, in

cazul nostru, optiunea „Create form in Design View” dupa care va aparea fereastra de creare a formularului.In interiorul ei, efectuam click dreapta, selectam „Proprieties”. In primul camp selectam optiunea „Form” iar in campul „Record Source” alegem tabelul sau interogarea pebaza careia dorim sa efectuam formularul.

Exemplu 1 : Crearea unui Formular Clienti ce include si un subformular Rezervari.Pentru efectuarea acestei operatiuni, urmam pasii de mai sus si alegem campurile ce dorim sa fie afisate din tabelulClienti.

Adaugam butoane folosing functia „Toggle Button” din meniul„Tool Box”.In cazul nostru am introdus butoane pentru functiile „Add Record”, „Delete record”, „Save record”, „Previous Record” si „Next Record”.

Pentru adaugarea unui subformular, folosim functia „Subform/Subreport” din meniul „Tool Box”.Trasam dimensiunea tabelului, si in interiorul sau efectuamclick dreapta dupa care alegem „Proprieties”. In primul camp selectam optiunea „Form” iar in campul „Record Source”alegem tabelul care dorim sa-l introducem in subformular, in cazul nostru am introdus interogarea „Rezervari - Rest de plata, Valoare Avans”

Rezultatul final este acesta :