Documente Academic
Documente Profesional
Documente Cultură
PROF
PROIECT DE DIPLOMÃ
PROMOTIA
ABSOLVENT:
FETESTI 2003
1
TEMÃ:
2
CUPRINS:
INTRODUCERE.Despre ACCESS..................................pag4
CAPITOLUL 3. BIBLIOGRAFIE
3
DESPRE ACCESS
4
Access ofera, de asemenea, unele facilitati deosebite cum ar fi integritatea
referentialã (controleazã modul in care sunt mentinute inregistrarile din
tabele asociate; aceasta trasatura previne stergerea unei inregistrari din
tabela primara daca aceasta este conectata la o unregistrare din tabela
asociata), auto-asociere (self-join= reprezinta capacitatea de a cãuta date
dintr-un camp in campul cheie al aceleiasi tabele), precum si expresii si
rutine de validare complexe.
5
intr-un tabel, informatiile despre produse intr-un fişet si numerele de
telefon ale furnizorilor intr-o agenda, langã telefon.
Impreuna, toate aceste informatii formeaza o baza de date relationalã.
Fiecare grup de informatii deserveste un scop diferit, insa se pot combina
informatiile din doua sau mai multe grupuri pentru a rezolva anumite
probleme. Elementul cheie, care face sistemul sa functioneze, este felul in
care dumneavoastrã cunoasteti relatiile dintre categorii.
Sã presupunem cã decideti sa utilizati un calculator pentru a va gestiona
datele. In cazul in care nu utilizati un SRGBD, veti putea crea o singurã
tabelã, incapsulatã in baza de date, ce va contine toate informatiile nesare –
numere de telefon, facturi, informatii despre produse etc. Cu timpul, baza
dumneavoastrã de date va contine o multime de informatii redundante,
pentru cã, de exemplu, de fiecare datã cand introduceti un nou produs,
introduceti si numarul de telefon al furnizorului, insã daca ati cumparat
zece produse de la acelasi furnizor, adãugati de zece ori acelasi numar de
telefon, ceea ce va necesita maimult spatiu de stocare. In cazul in care o
informatie trebuie actualizata, ea va fi modificatãpeste tot in tabela, poate in
sute de locuri, ceea ce va necesita o multime de timp pentru a realiza
actualizarea; cu cat trebuie actualizate mai multe date, cu atat pot aparea
mai multe erori in procesul de modificare. Dacã se doreste modificarea
structurii – adaugarea numerelor de fax, sau gruparea produselor pe
categorii – veti fi nevoit sa munciti mai mult si ineficient pentru a reface
structura tabelei bazei de date.
Spre deosebire de o bazã de date non-relationalã, o bazã de date Microsoft
Access poate avea mai multe tabele ce contin informatii diferite, asemenea
locurilor din birou unde se aflã datele necesare companiei, din exemplul de
mai sus mentionat. Intr-o astfel de bazã de date se pot implementa relatii
intre tabele, astfel incat fiecare informatie va fi stocata intr-un singur loc.
Astfel, se reduce spatiul de inmagazinare a informatiilor prin eliminarea
copiilor. Reactualizarea unei informatii este mai rapidã şi mai sigurã pentru
cã se face mult mai uşor, şi se pot adauga noi tabele fãrã a le modifica pe
cele existente.
In capitolul ce va urma vom analiza structura unei baze de date Microsoft
Access, formata din urmatoarele tipuri de obiecte: tabele (table), interogari
(query), formulare (form), rapoarte (report), comenzi macro (macro) şi
module (module).
6
1.2 Modelul relational al bazelor de date
7
Entitatile sunt reprezentate grafic in chenare dreptunghiulare ce contin
numele entitatii. Utilizand in mod constant substantive pentru identificarea
entitatilor, se asigura o „numire/botezare” standardizata care faciliteaza
citirea diagramelor sub forma unor instructiuni declarative ce caracterizeazã
instantele entitatilor.
Relatiile dintre tabele sunt componente vitale ale bazelor de date
relationale. Ele reflectã modul de utilizare a cheilor partajate: fapte dintr-o
tabela care refera, sau sunt asociate cu fapte din alta tabelã. Statuarea unei
relatii intre doua entitati presupune cã faptele din tabela „parinte” sunt in
asociere cu faptele din tabela „fiu”.
8
Cardinalitatea unei relatii trebuie inteleasã insã ca raportul dintre numarul
instantelor entitatii pãrinte şi numarul instantelor entitatii fiu. Altfel spus,
cardinalitatea specificã numãrul instantelor entitatii dependente.
Relatiile in care sunt implicate doar doua entitãti, pãrinte şi fiu, se numesc
relatii binare.
Relatiile „many-to-many”
9
folosite pentru identificarea unicã a instantelor unei entitãti şi care
implementate intr-un model fizic asigurã accesul la date. Grafic, entitãtile
sunt impartite, de regula, in doua zone: sus – zona cheilor; jos – zona
atributelor obisnuite; zonele sunt delimitate printr-o linie orizontala in
cadrul casutei.
Cheia primara
10
Observatie :cheia primara aleasa in modelul logic poate sa nu fie
neaparat cheia primara pentru a accesa eficient o tabela din modelul
fizic. De aceea ea poate fi modificatã in orice moment in functie de
cerintele modelului fizic.
11
aceste entitãti, cheia strãinã trebuie sã facã parte din cheia primarã a
entitãtii fiu. In termeni relationali, o astfel de entitate, in care unicitatea
instantelor depinde de un atribut cheie-strãina se numeşte entitate
dependentã şi este reprezentatã grafic printr-o cãsutã cu colturile
rotunjite. Aceasta dependentã poate fi clasificatã astfel: dependentã
existentialã, cand entitatea fiu nu poate exista fãrã ca entitatea pãrinte sã
existe anterior si dependentã de identificare cand entitatea dependentã nu
poate fi identificatã fãrã a utiliza cheia entitãtii pãrinte. Cateva
exemplificãri sunt sugestive in acest caz. Sã luãm in primul caz entitãtile
Echipa ca entitate pãrinte şi Jucãtor ca entitate fiu ce contine şi cheia
straina idEchipa. In acest caz dependenta este de identificare, nefiind o
dependentã existentialã:jucãtorii pot exista chiar dacã momentan nu fac
parte dintr-o echipã. In schimb, in cazul unuio model, pentru evidenta
comenzilor,cand o comandã poate contine mai multe linii care detaliazã
ce produse/servicii vor compune comanda, entitatea LinieComanda este
dependentã existential de entitatea Comanda.
Entitatile care pentru identificare nu depind de nici o altã entitate se
numesc entitãti independente şi se reprezintã grafic in cãsute cu colturi
ascutite.
12
1.2.5 Cardinalitatea
Putem folosi cardinalitatea pentru a defini exact cate instante din entitatea
fiu si cate din cea parinte sunt implicate intr-o relatie. Sã precizãm pentru
inceput cã „many” dintr-o relatie one-to-many nu implicã obligativitatea de
a exista mai mult de o instantã fiu conectatã la pãrinte.
13
- Set Default – similar cu Set Null, cu deosebirea cã valorile atributelor
sunt setate la o valoare implicita;
- None – nici o actiune de integritate referentialã nu este necesarã.
1.2.7 Normalizarea
Procesul prin care modelul relational al unei baze de date este facut sa
respecte regulile propuse de E.F.Codd pentru baze de date relationale se
numeşte normalizare.Urmand aceste reguli poate fi controlat procesul de
eliminare a redundantelor datelor si a structurilor de date care permit
accesarea unui fapt unic pe mai multe cãi.Scopul normalizarii este de a
asigura ca existã doar o singura cale de a ajunge un „fapt” stocat in baza de
date.Sloganul de baza este: ”Un fapt ocupã un singur loc!”
Cunoasterea definitiilor principalelor forme normale ne va ajuta sa
intelegem procesul de normalizare:
- Dependenta functionala. Date fiind o entitate E si doua atribute A si B
ale sale, spunem ca B este dependent functional de A dacã si numai
dacã fiecare valoare a lui B se afla in asociere recisa cu valoarea
corespunzatoare din A.
- Dependenta complet functionala. Date fiind o entitate E, si atributul B
al entitatii E este complet dependent functional de alt set de atribute
A, daca B este dependent functional de A si nu este dependent
functional de orice subset al lui A.
- Prima forma normala (1NF).O entitate E este in 1NF daca si numai
daca toate valorile elementare contin doar valori atomice. Orice grup
repetitiv trebuie eliminat.
- A doua forma normala(2NF). O entitate E este in 2NF, daca E este in
1NF şi fiecare atribut a lui E, care nu este cheie este complet
dependent functional de cheia primarã. Altfel spus, nu existã
dependente de chei partiale – dependenta este fatã de intreaga cheie K
a entitãtii E şi fatã de un subset particular al lui K.
14
- A treia formã normalã(3NF). O entitate E este in 3NF este in 2NF şi
nici un atribut non-cheie nu este complet dependent de celelalte
atribute non-cheie. Altã formulare echivalentã: „Entitatea E este in
3NF daca E este in 2NF si fiecare atribut non-cheie este tranzitiv
dependent de cheia primara”.
Deşi dincolo de acest nivel de normalizare mai existã incã trei forme
normale: Boyce-Codd, 4NF şi 5NF, a treia forma normala este cea
standard.Cu toate acestea cand se trece la implementarea fizica a
structurii de date, deseori, din motive de performanta se efectueaza o
serie de denormalizari se introduc redundante in stuctura de date,
eficienta sistemului poate creste semnificativ.
Majoritatea problemelor cu care se confrunta proiectantii sunt legate de
violari ale formelor normale.Cele mai des intalnite astfel de probleme
sunt urmatoarele:grupuri de date repetitive, multiple utilizari ale unui
atribut, multiple aparitii ale unui fapt, fapte aflate in conflict, atribute
derivate, informatii lipsã, unificari.
15
tabelar, dar la extragerea informatiilor din baza de date se va vedea cã
acest efort merita. Baza de date va permite gãsirea rapidã a unei
informatii, interogãri asupra unor anumite categorii din date si tiparirea
cu uşurinta a catelor dorite.
Lucrand cu o baza de date, adãugand şi ştergand date, creand şi
distrugand obiecte, aceasta incepe sa se fragmenteze fiind nevoie de o
compactare .Microsoft Access are o functie de compactare a bazei de
date, dar pentru a putea compacta o baza de date trebuie inchisa fereastra
Database lãsand sistemul Access deschis.Din cand in cand s-ar putea ca
baza de date sa se defecteze, iar pentru repararea ei Microsoft Access
pune la dispozitie un utilitar-Repair Database, care in timpul reparãrii
bazei de date creaza obiecte temporare, fiind indicata o compactare dupa
terminarea operatiei de reparare.
Microsoft Access ofera şi posibilitati de protectie a bazei de date prin
folosirea grupurilor şi a utilizatorilor, baza de date putand fi accesata
doar de anumite grupuri (de utilizatori) şi/sau de cãtre anumiti utilizatori,
in functie de drepturile fiecãruia.
2.1.1 Tabele
16
2.1.2 Formulare
Subformulare
17
Cand un subformular este inclus intr-un formular, il putem edita
direct.Avand formularul in modul Design, efectuãm dublu click pe
subformular şi Access va afişa o fereastra de editare separata pentru
acesta.Salvãm modificarile(selectãm File ►Save din meniul principal)şi
inchidem subformularul, iar modificarile aduse acestuia vor apãrea in
formularul principal.
2.1.3.Rapoarte
18
interogarile sunt mult mai eficiente in ce priveste selectarea inregistrãrilor
decat rapoartelor.
SUGESTIE: Pentru a crea un raport rapid, selectãm tabela bazã de date sau
interogarea fie din fereastra Database, fie in modul de afişare Datasheet.
Apoi alegem butonul AutoReport din bara de instrumente. Acces va crea un
raport sub formã de coloane.
2.1.3 Interogari
Facilitatea Find din Acces cautã anumite valori dintr-un camp examinand
fiecare inregistrare şi afişand rezultatul cautãrii sub forma unei inregistrãri
la un moment dat.
O interogare (query) este utilizatã pentru a gasi mai multe inregistrari la un
moment dat. In plus, interogarea ne permite sã specificam campurile pe
care vrem sa le vedem in foaia de date, precum şi ordinea acestora. De
asemenea, putem sorta inregistrãrile şi specifica anumite criterii pentru a
selecta in vederea afişãrii numai anumite inregistrãri.
inregistrãrile pot fi afişate in modul Datasheet, un mod de prezentare a
datelor asemanator unei foi de calcul. Ca şi in cazul altor grile, putem sã
inserãm şi sã mutãm coloane, precum şi sã modificãm lãtimea coloanelor
sau inãltimea randurilor. In plus, putem actualiza valorile campurilor dintr-
o interogare pentru orice tabelã implicatã.
Pentru a rula o interogare, trebuie sã informãm programul Acces despre
doua lucruri:
ce campuri dorim sã fie afişate;
ce campuri contin valorile pe care le cãutãm sau valorile care impun
limitele cãutãrii; de exemplu, poate dorim sã vedem numai
inregistrãrile care contin datele despre studentii din cadrul unei
facultati.
Cand executãm o interogare, Acces gaseste inregistrãrile cerute şi le
afişeaza. Acest set de inregistrãri poarta denumirea de set dinamic
(dynaset), deoarece este o multime de inregistrãri care se creaza dinamic,
prin procesul de cãutare. Setul dinamic este pur şi simplu o submultime a
inregistrãrilor din tabelã. Spre deosebire de alte programe de baze de date,
19
care creeaza un set dinamic ce poate fi numai afişat, Access ne permite sa
adãugãm, sã editãm şi sã ştergem inregistrãri in modul de afişare Datasheet
al unui set dinamic.
Cu inregistrãrile in modul Datasheet, avem urmãtoarele posibilitãti:
Sã modificãm interogarea efectuand click pe butonul Design sau
selectand View►Query Design din meniul principal.
Sã gãsim o anumitã valoare in oricare dintre coloane efectuand click
pe butonul Find, selectand Edit►Find din meniul principal sau
apãsand Ctrl+F.
Sã schimbãm modul de afişare din Datasheet: sã modificãm fontul,
ordinea coloanelor, lãtimea coloanelor etc.
Sã salvãm modificãrile in modul de afişare Design in vederea unei
utilizãri ulterioare, selectand File►Save As/Export şi introducand un
nou nume de interogare.
20
principalã se inscrie actiunea de executat, in panoul din partea de jos a
ferestrei se pot introduce argumentele corespunzãtoare actiunii.
Aplicatiile mai simple din Access pot fi scrise folosind comenzi macro.
Deşi comenzile macro sunt bune pentru crearea rapidã de prototipuri de
functii şi pentru dezvoltarea majoritãtii aplicatiilor de bazã, dezvoltarea
unor aplicatii serioiase in Access se face folosind limbajul VBA şi
Access Basic.
Marile avantaje pe care le oferã limbajele de programare mai sus
amintite, fatã de comenzile macro, ar fi :
- implementarea tratãrii erorilor;
- executia procesului tranzactional;
- crearea unor structuri ciclice pentru parcurgerea seturilor de
inregistrãri;
- apelarea functiilor Windows API;
- crearea prin program a obieeectelor bazei de date;
- utilizarea constantelor si a variabilelor;
De asemenea, Access Basic Si VBA uşureaza scrierea bibliotecilor de
functii reutilizabile, precum şi proiectarea si depanarea proceselor
complexe de cãtre programatori. In concluzie, deşi comenzile macro pot
da solutii rapide problemelor simple, limitãrile lor determinã necesitatea
folosirii limbajelor de programare pentru dezvoltarea solutiilor mai
complexe.
2.1.6 Module
21
Atat subrutinele cat şi functiile sunt supuse la doua faze de lucru:
definita prealabilã şi apelul. Un modul este deci un obiect Microsoft
Access care contine un set de proceduri şi functii. O aplicatie poate
contine unul sau mai multe module, dar este mai convenabil sã aibã mai
multe module, procedurile şi functiilefiind grupate in module dupa
anumite criterii, ca de exemplu procedurile asociate unui formular sau
raport sã fie grupate intr-un modul.Incepand cu versiunea 2. 0, Microsoft
a introdus formulare şi rapoarte cu module in spate, astfel fiecare
formular şi raport are asociat un modul propriu, functiile şi procedurile
din interiorul unui formular, raport putand fi apelate doar din interiorul
raportului formularului, nu şi din celelalte module.Insa in Access `95
functiile şi procedurile din aceste module pot fi folosite şi in alte
module.
O subrutina (sub-procedura) este o rutina care raspunde la aparitia unui
eveniment sau executã o anumita actiune.O functie este un tip special de
rutina, datorita faptului cã poate intoarce o valoare.Aceste subrutine şi
functii sunt pãstrate in module.Modulele furnizeaza o cale de a organiza
procedurile.Cu toate cã toate procedurile pot fi inglobate intr-un singur
modul, este mai convenabil sã le divizãm in grupuri logice, şi fiecare
grup sã-l stocãm in grupuri separate.Modulele pot fi globale sau
specifice unui anumit formular sau raport.Modulele specifice unui
formular sau raport sunt in general anumite coduri din spatele
formularelor (Code Behind Forms – CBF)
Exista douã feluri de rutine, rutinele evenimentelor şi rutine definite de
utilizator.Procedurile evenimentelor sunt create automat atunci cand
scrieti codul evenimentului pentru control.De exemplu, rutina Private
Sub OKButton_Click() este creatã atunci cand plasati instructiuni de cod
in evenimentul Click al butonului numit OKButton.
De asemenea, utilizatorii işi pot crea rutine proprii.Acestea nu sunt
specifice unui anumit obiect sau eveniment.Depinzand de modul şi de
locul in care au fost create, ele pot fi apelate de oriunde din aplicatie sau
numai dintr-un modul individual de cod, formular sau raport.Iata un mic
exemplu de subrutina:
Sub SayHello()
`Subrutina care afişeazã pe ecran textul ” Hello world!, from Access.”
End Sub
22
Procedurile evenimentelor sunt apelate automat cand are loc un
eveniment pentru un obiect.De exemplu, cand utilizatorul executã click
pe un buton de comandã, este executat codul evenimentului Click pentru
acel buton de comandã.In mod obişnuit, pentru apelarea procedurilor
definite de utilizator, se foloseste cuvantul cheie Call, ca in exemplul
urmãtor: Call SayHello
Apelul se poate face insã şi fãrã cuvantul cheie Call, astfel:
SayHello.Totuşi, aceasta metodã contravine standardelor, deoarece
cuvantul cheie Call indicã faptul cã se apeleazã o rutinã definitã de
utilizator sau o rutinã eveniment.Cuvantul cheie Call face ca
instructiunea sã fie mai clarã şi mai uşor de citit.Deci vã recomãndãm sã
folositi cuvantul cheie Call.
Atat subrutinele cat şi functiile pot primi argumente(parametri), dar
numai functiile pot returna valori.Subrutina din exemplul urmãtor
primeşte doi parametri, txtFirst şi txtLast:
23
CAPITOLUL 2
PREZENTAREA APLICATIEI
Introducere
24
- datele sã respecte pe cat posibil toate legãturile dintre obiecte;
25
Exemplul 1.Tabele.
26
Exemplul 2. Tabela Facultate.
27
16 videoformate:
- An
- Evidentã sectii
- Evidentã studenti
- Facultate
- Facultate 1
- Grupa
- Grupa subform
- Sectii
- Sectii subform
- Sectii subform 1
- Sectii subform 2
- Studenti
- Studenti subform
- Studenti subform 1
- Switchboard
- Variabile,
Dupã cum aratã şi exemplul de mai jos.
Exemplul 3. Videoformate.
28
Exemplul 4.Meniul Switchboard şi videoformatul Facultate 1.
29
Un punct important din realizarea, dar si din functionarea unui
program il reprezintã construirea relatiilor dintre tabele.
In baza noastrã de date, relatiile sunt urmãtoarele:
Exemplul 5. Relatii.
30
Cerinte minime de instalare:
31
BIBLIOGRAFIE:
32