Proiectarea Bazelor de Date Relationale pentru Gestionarea unei Biblioteci de CD-uri Folosind...
Transcript of Proiectarea Bazelor de Date Relationale pentru Gestionarea unei Biblioteci de CD-uri Folosind...
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
UNIVERSITATEA VALAHIA TÂRGOVIŞTECOLEGIUL UNIVERSITAR TEHNIC
TEHNICĂ DE CALCUL
Lucrare de absolvire
COORDONATORI
Şef lucrare drd. ION ISTUDOR
Şef lucrare drd. LUMINIŢA DUŢĂ
ABSOLVENT
IUNIE 2004
1
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
PROIECTAREA BAZELOR DE DATE RELAŢIONALE
PENTRU GESTIONAREA UNEI BIBLIOTECI
DE CD-URI FOLOSIND MICROSOFT ACCESS
2
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
CUPRINS
Introducere……………………………………………………………......5
CAPITOLUL 1: Prezentare a domeniului bazelor de date....................7
1.1 Ce este şi cum se gestionează o bază de date?.............................7
1.2 – Arhitectura unei baze de date..................................................11
1.3 – Proiectarea bazelor de date......................................................12
1.4 – Securitatea datelor...................................................................15
CAPITOLUL 2: Niveluri şi modele de reprezentare
a datelor în bazele de date...................................16
2.1 – Modelarea logică a datelor......................................................16
2.2 – Modelul relaţional de baze de date.........................................18
2.3 – Modelul conceptual de baze de date.......................................21
2.4 – Reguli de verificare şi normalizare
a Modelării Conceptuale a Datelor (MCD)...........................23
2.4.1 – Restricţii de integritate şi reguli de verificare a MCD....23
2.4.2 – Dependenţe funcţionale ..................................................24
2.4.3 - Normalizarea....................................................................25
CAPITOLUL 3: Descrierea aplicaţiei.....................................................30
CAPITOLUL 4: Prezentare Microsoft Access –
Realizarea aplicaţiei.................................................30
4.1– Prezentare Generală Microsoft ACCESS 2000........................32
4.1.1 – Arhitectura Microsoft ACCESS......................................34
4.1.2 – Instrumentul Wizard........................................................35
4.1.3 – Crearea unei baze de date................................................36
4.1.4 – Deschiderea unei baze de date deja existente..................38
3
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
4.1.5 – Salvarea modificărilor aduse unei baze de date...............38
4.2 – Crearea structurii bazei de date...................................................39
4.2.1 – Modelul conceptual al datelor.............................................39
4.2.2 – Modelul relaţional al datelor...............................................44
4.2.3 – Crearea tabelelor.................................................................45
4.2.4 – Tipuri de date......................................................................46
4.2.5 – Introducerea datelor în tabele..............................................47
4.2.6 – Salvarea datelor...................................................................47
4.3 – Interogarea bazei de date............................................................49
4.4 – Formulare...................................................................................58
4.4.1 – Crearea automată a unui formular......................................58
4.4.2 – Subformulare......................................................................66
4.4.3 – Proceduri şi obiecte Visual Basic
pentru ACCESS 2000...................................................67
4.5 – Rapoarte.....................................................................................80
4.6 – Comenzi macro..........................................................................84
CAPITOLUL 5: Concluzii.....................................................................86
Glosar.......................................................................................................88
Bibliografie..............................................................................................90
4
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
5
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
INTRODUCERE
În contextul societăţii actuale, caracterizată printr-o explozie fără precedent în
istoria omenirii, sistemele informatice reprezintă unul din elementele fundamentale
care generează şi controlează fluxurile informaţionale la nivel micro şi
macroelectronic.
De mai bine de două decenii, 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.
În plus, producătorii de software au creat Sisteme de Gestiune a Bazelor de
Date din ce în ce mai performante şi în acelaşi timp cât mai simplu de utilizat.
Lucrarea aleasă pentru realizare, se referă la proiectarea bazelor de date
relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft ACCESS.
În contextul prezentat, lucrarea ce va fi realizată, îşi propune să ofere o parte a
cunoştinţelor necesare pentru iniţierea şi deasemenea pentru proiectarea bazelor de
date folosind SGBD-ul Microsoft ACCESS 2000.
Lucrarea de faţă, este structurată pe următoarele capitole:
Capitolul 1 denumit “Prezentare a domeniului bazelor de date” va fi o
prezentare a ceea ce reprezintă domeniul bazelor de date, cum pot fi gestionate bazele
de date şi deasemenea arhitectura şi proiectarea lor.
În capitolul 2 “ Niveluri şi modele de reprezentare a datelor în bazele de date”,
se vor prezenta noţiuni despre: modelarea logică a datelor, modelul relaţional şi
conceptual de baze de date şi reguli de verificare şi normalizare a Modelării
Conceptuale a Datelor.
Capitolul 3 va reprezenta “Descriere aplicaţiei” ce va fi realizată.
În capitolul 4, intitulat “Prezentare Microsoft ACCESS”, se va prezenta în
detaliu, aplicaţia ce va fi realizată, descriind totodată instrumentele Access ce vor fi
5
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
utilizate. Se vor explica aplicaţiile ce se doresc a fi făcute pe baza de date şi se vor
prezenta capturi din aplicaţia propriuzisă, toate acestea sub forma unui manual de
utilizare.
În ultimul capitol, capitolul 5, se vor prezenta concluziile, de unde s-a pornit,
cum s-a dorit a fi aplicaţia şi care este rezultatul conceperii şi proiectării aplicaţiei de
baze de date.
6
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
CAPITOLUL 1
1. PREZENTARE A DOMENIULUI BAZELOR DE DATE
1.1 Ce este şi cum se gestionează o bază de date?
Având în vedere utilizarea din ce în ce mai largă a tehnicii de calcul în
activitatea zilnică şi acumularea unui volum din ce în ce mai mare de informaţii
reţinute pe medii magnetice, se pune problema determinării unor metode din ce în ce
mai eficiente de reprezentare şi prelucrare ale acestor informaţii. În bună parte,
acestea fac obiectul unui domeniu al informaticii numit baze de date, domeniu în
plină dezvoltare în ultima perioadă.
Cercetările au cuprins mai întâi preocupări privind determinarea unor modele
de baze de date şi apoi crearea unor limbaje de programare ce permit descrierea şi
utilizarea bazelor de date într-un mod cât mai prietenos. S-au dezvoltat tehnici
eficiente de studiere a calităţilor structurilor asociate informaţiei, precum şi tehnici de
automatizare a proiectării şi optimizării bazelor de date.
O bază de date conţine toate informaţiile necesare despre obiectele ce intervin
într-o mulţime de aplicaţii, relaţiile logice între aceste informaţii şi tehnicile de
prelucrare corespunzătoare. În bazele de date are loc o integrare a datelor, în sensul că
mai multe fişiere sunt privite în ansamblu, eliminându-se pe cât posibil informaţiile
redundante. De asemenea se permite accesul simultan la aceleaşi date, situate în
acelaţi loc sau distribuite spaţial, a mai multor persoane de pregătiri diferite, fiecare cu
stilul personal de lucru.
O bază de date, mai poate fi definită ca un ansamblu de date elementare sau
structurate, accesibile unei comunităţi de utilizatori. Mai concret, o bază de date, este
un ansamblu de fişiere intercorelate, care conţine nucleul de date necesare unui sistem
informatic (aplicaţie informatică).
7
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
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.
Sistemul de programare care permite construirea unor baze de date,
introducerea informaţiilor în bazele de date şi dezvoltarea de aplicaţii privind bazele
de date se numeşte sistem de gestiune a bazelor de date - SGBD.
Un SGBD dă posibilitatea utilizatorului să aibă acces la date folosind un
limbaj de nivel înalt, apropiat de modul obişnuit de exprimare, pentru a obţine
informaţii, utilizatorul făcând abstracţie de algoritmii aplicaţi pentru selecţionarea
datelor implicate şi a modului de memorare a lor. SGBD-ul este o interfaţă între
utilizatori şi sistemul de operare.
Orice SGBD conţine, printre alte componente, un limbaj de descriere a datelor
– LDD – care permite descrierea structurii unei baze de date, a fiecărei componente a
ei, a relaţiilor dintre componente, a drepturilor de acces a utilizatorilor la baza de date,
a resticţiilor în reprezentarea informaţiilor şi alte elemente asemănătoare. LDD este
utilizat atât pentru proiectarea bazelor de date, cât şi pentru redefinirea lor. O altă
componentă foarte importantă a unui SGBD este limbajul de cereri – LC sau limbajul
de prelucrare a datelor – LPD – ce permite operaţii asupra bazelor de date, cum ar fi:
încărcarea bazei de date, inserarea unui nou element, ştergerea unui element,
modificarea unui element, căutarea unor elemente, realizarea a diferite statistici
asupra datelor şi alte asemenea operaţii.
Spre deosebire de limbajele de programare obişnuite, în care declararea datelor
este făcută în acelaşi loc cu prelucrarea lor, bazele de date prevăd limbaje separate
pentru declarare şi pentru prelucrare. Aceasta, deoarece într-un program obişnuit
8
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
datele există efectiv numai pe timpul rulării programului, pe când într-o bază de date,
în general, datele sunt definite o dată pentru totdeauna şi nu mai sunt necesare
redefiniri ulterioare la fiecare prelucrare. Uneori se pot redefini date, dar, practic,
aceasta se întâmplă destul de rar. Limbajele LDD şi LC sunt, de cele mai multe ori,
extinderi ale unor limbaje de programere numire limbaje gazdă. Compilarea
succesiunilor de comenzi pentru descrierea datelor sau pentru operarea cu date se
reduce, în acest caz, la o precompilare, adică transformarea acestor comenzi într-o
succesiune de instrucţiuni ale limbajului gazdă care, prin executare, să dea efectul
dorit.
O altă modalitate de operare este aceea a transformării comenzilor în lansări de
programe executabile. Comenzile sunt descrise prin sintaxe specifice fiecărui tip de
SGBD, iar interpretarea şi activarea lor se face automat, prin rutine scrise, de obicei,
în limbajul gazdă. În acest fel, calităţile SGBD-ului depind în mare măsură de
calităţile limbajului utilizat.
În funcţie de modul de exploatare a bazelor de date, utilizatorii pot fi împărţiţi
în următoarele clase:
Utilizatorii obişnuiţi, care pot să obţină informaţiile fără să aibă cunoştinţe
de programare. Ei obţin informaţiile dorite prin comenzi cunoscute şi,
eventual, răspunzând la diferitele opţiuni pe care le indică sistemul de
calcul la un moment dat.
Programatorii de aplicaţii, care pot scrie programele în LC, acestea fiind
apoi compilate şi memorate în fişiere, putând fi lansate în execuţie de
utilizatori prin invocarea numelui asociat lor.
Administratorul bazei de date, care stabileşte structura iniţială a bazei de
date şi modul de memorare a datelor la nivel fizic, acordă utilizatorilor
drepturi de acces la baza de date sau părţi ale ei, stabileşte condiţiile pentru
asigurarea securităţii şi integrităţii datelor, modifică structura bazei de date
făcând periodic copii şi reconstituind eventual baza de date în cazul în care
9
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
au apărut erori datorate componentelor soft, hard sau utilizării, şi răspunde,
în general, de modul de utilizare al bazei de date.
Administratorul sistemului de baze de date, care stabilaşte bazele de date de
pe un sistem de calcul, alocă spaţii de memorare şi asigură drepturi de
acces.
Cele mai multe SGBD-uri conţin şi o colecţie de utilitare folosite în diferitele
aplicaţii, cum sunt: procesoare pentru limbaje de cereri, editoare de rapoarte,
subsisteme de reprezentări grafice, posibilităţi de lucru tabelat, procesoare de limbaje
naturale, programe statistice, posibilităţi de copiere, generatoare de aplicaţii şi altele.
10
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
1.2 Arhitectura unei baze de date
O bază de date poate fi privită din mai multe puncte de vedere, precum:
- Punctul de vedere al utilizatorilor, care lucrează cu anumite părţi componente
ale bazei de date numite vederi. Vederile sunt descrise prin subscheme în sublimbaje
ale limbajului de descriere a datelor – SLDD. De asemenea, utilizatorii pot să
primească răspunsuri la diferitele cereri formulate prin intermediul limbajului de
prelucrare a datelor ce sunt specifice structurilor virtuale date de vederi.
- Punctul de vedere al administratorului bazei de date, care integrează toate
vederile referitoare la baza de date într-un model numit schemă conceptuală. Schema
conceptuală constituie nivelul logic al bazei de date.
- Punctul de vedere al implementatorului bazei de date; de cele mai multe ori,
el coincide cu administratorul bazei de date, care priveşte baza de date ca pe o colecţie
de fişiere memorate pe diferite medii externe, cum sunt discurile magnetice. Acestea
constituie nivelul fizic al bazei de date fiind de fapt singurul nivel existent efectiv.
Primele două nivele sunt descrise prin planuri ce constau în enumerarea
tipurilor de entităţi ce apar în baza de date, relaţiile între aceste tipuri de entităţi şi
modul de trecere de la noţiunile acestui nivel la nivelul imediat următor. În mod
curent, aceste planuri se numesc scheme externe, subscheme conceptuale, au vederi
pentru primul nivel şi scheme conceptuale pentru al doilea nivel. Descrierile la nivel
fizic sunt făcute prin scheme interne sau scheme fizice.
11
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
1.3 Proiectarea bazelor de date
Proiectarea bazelor de date presupune fixarea structurii bazei de date şi a
metodelor de prelucrare a datelor, spre deosebire de utilizarea bazei de date, care
priveşte mai mult informaţiile stocate în baza de date la un moment dat. Dacă în mod
obişnuit baza de date îşi schimbă frecvent conţinutul, structura ei rămâne
nemodificată pe lungi perioade de timp.
Prin proiectare se determină un model semantic, care să reflecte cât mai fidel
lumea reală, construit astfel:
1. Se identifică o mulţime de concepte semantice (entităţi, tipuri de entităţi,
proprietăţi ale entităţilor, identificatorii entităţilor, relaţii între entităţi şi altele) ce dau
informaţii despre lumea reală.
2. Se asociază obiecte simbolice formale prin care sunt reprezentate conceptele
semantice.
3. Se definesc reguli de integritate formale ce se aplică obiectelor simbolice.
4. Se defineşte o mulţime de operatori formali ce pot să transforme obiectele
formale.
Un model de etapizare a construirii unei baze de date ar putea fi următorul:
1. Studiul de fezabilitate, ce constă în cercetarea sistemelor operative deja
existente, stabilirea unor alternative cu evaluarea costurilor, a avantajelor şi
dezavantajelor fiecărei alternative în parte.
2. Cercetarea sistemului prin determinarea diferitelor detalii ale sistemului
prezent (tipuri de date, dimensiuni, condiţii excepţionale) folosind metode de
interogare, chestionare, exemplificări şi observaţii directe aplicate în sistemul deja
existent.
3. Analiza sistemului prin determinarea cauzelor diferitelor evenimente şi a
adoptării diferitelor metode, eventuale alternative posibile şi justificarea lor.
4. Proiectarea sistemului prin determinarea celui mai bun model de
reprezentare şi prelucrare a datelor, de asigurare a securităţii şi integrităţii.
12
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
5. Dezvoltarea sistemului prin stabilirea detaliilor asociate datelor prevăzute a
fi luate în consideraţie, a relaţiilor dintre ele şi a modului de reprezentare fizică.
6. Implementarea sistemului prin proiectarea, scrierea şi testarea programelor,
antrenarea utilizatorilor, alcătuirea documentaţiei, crearea şi încărcarea fişierelor.
7. Revizuire şi întreţinere prin probe de lucru ale noului sistem, efectuarea unor
eventuale modificări, adăugarea de noi componente şi urmărirea procesului de
prelucrare a datelor.
În proiectarea bazelor de date se ţine seama de independenţa datelor pe diferite
nivele. De exemplu, reprezentarea fizică a datelor se poate schimba în timp pentru a
obţine performanţe superioare din punct de vadere al timpului de răspuns şi al
spaţiului ocupat, fără ca aceasta să afecteze modul de reprezentare a datelor în schema
conceptuală.
Această independenţă se numeşte independenţă fizică a datelor. De asemenea,
între vederi şi schema conceptuală există o independenţă numită independenţă logică
a datelor. În timpul existenţei unei baze de date pot apărea modificări în schema
conceptuală prin adăugarea unor noi entităţi sau prin adăugarea de noi atribute unor
entităţi existente.
Proiectarea unei baze de date priveşte în primul rând nivelul logic şi mai puţin
pe cel fizic. Proiectarea se poate face plecând de la modelul relaţional care permite o
tehnologie de proiectare şi apoi se poate transforma rezultatul proiectării în oricare
dintre modele, prin adaptările corespunzătoare.
Modelarea bazelor de date este un proces de definire amănunţită, precisă, pas
cu pas, a tuturor elementelor ce permit o documentare completă privind cererile de
informaţii. În această procedură se folosesc metode specifice de reprezentare a
obiectelor. La proiectarea bazelor de date trebuie să funcţioneze o comunicare
efectivă între cel care proiectează baza de date şi cei care o implementează, cei care o
utilizează, pentru a găsi şi a valida soluţiile alese la proiectare. De cele mai multe ori,
folosirea schemelor este mai sugestivă decât folosirea unor texte explicative.
13
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Proiectarea urmăreşte obţinerea unor baze de date care să întrunească
următoarele calităţi:
Corectitudine: reprezentarea cât mai fidelă în baza de date a modului
obişnuit de lucru cu datele în sistemul real.
Consistenţa: informaţiile corespunzătoare obiectelor cu care se lucrează în
baza de date (nume, definire, relaţii, documentare), să nu conţină
contradicţii.
Distribuire: informaţiile să poată fi utilizate de aplicaţii multiple şi să poată
fi accesate de mai mulţi utilizatori, aflaţi în diferite locuri, utilizând medii
de calcul diverse şi acoperind un număr mare de cereri posibile.
Flexibilitatea: facilităţi de adăugare de componente care să reflecte cereri
noi de informaţii, să îmbunătăţească performanţele sau să adapteze datele
pentru eventualele schimbări din lumea reală.
Criteriile de clasificare pentru determinarea modelului logic de date optim
corespunzător unei baze de date sunt:
Validarea structurală: reflectarea consistentă a modului de utilizare a
informaţiilor în lumea reală.
Simplitatea: uşurinţa înţelegerii structurilor chiar de către utilizatori fără o
pregătire specială.
Neredondanţă: eliminarea pe cât posibil a reprezentării de mai multe ori a
aceleiaşi informaţii sau a informaţiilor ce se pot deduce logic din altele.
Extensibilitate: posibilitatea de a dezvolta noi componente cu efecte
minime asupra bazei de date existente.
Integritate: consistenţa în modul de utilizare şi întreţinere ale valorilor din
informaţii.
14
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
1.4 Securitatea datelor
După ce o bază de date a fost proiectată şi realizată este de luat în calcul,
securitatea sa. 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ă – altfel spus 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 la
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.
Pentru securitatea datelor, se ţine seama deasemenea de confidenţialitatea
datelor.
Confidenţialitatea datelor este asigurată prin proceduri de:
identificare a utilizatorilor prin nume sau cod;
autentificarea prin parole – în acest mod este restricţionat accesul
persoanelor din afară la baza de date;
autorizarea accesului diferenţiat prin drepturi de creare, consultare,
modificare, ştergere pentru anumite segmente de date.
15
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
CAPITOLUL 2
2. NIVELURI ŞI MODELE DE REPREZENTARE A DATELOR
ÎN BAZELE DE DATE
2.1 Modelarea logică a datelor
Poate cea mai importantă parte din procesul construirii unei baze de date o
constituie studiul sistemului ce urmează să fie reflectat în baza de date. Stabilirea
informaţiilor relevante pantru sistem şi a relaţiilor dintre ele este un lucru esenţial
pentru etapele următoare.
Baza de date este un model al lumii reale şi nu poate reprezenta decât un număr
limitat de caracteristici în unele aplicaţii. Oricât de perfecţionat ar fi un model utilizat,
există aplicaţii care se pot concepe astfel încât să nu poată fi satisfăcute de baza de
date.
Pentru a construi o bază de date corespunzătoare unui sistem real dat, se face
mai întâi o apreciere generală a sistemului. În această apreciere se include informaţii
privind structura sistemului – elemente esenţiale ale acestuia care sunt cuprinse într-o
schiţă preliminară. Schiţa cuprinde, printre alte informaţii, şi modul în care sistemul
este văzut de diferite persoane implicate în sistemul respectiv. Se crează un model
informaţional în care sunt cuprinse principalele funcţiuni şi fluxuri de informaţii din
sistem. Sistemul trebuie privit unitar şi nu ca o alăturare a componentelor sale. În baza
de date, multe părţi sunt folosite în comun de diferitele componente ale sistemului.
Modelul utilizat frecvent în acest caz se numeşte modelul entitate – relaţie (E -
R) descris de Chen în 1976 şi perfecţionat ulterior. Acest model are drept obiecte
semantice, următoarele:
Entitatea, definită ca un lucru ce poate fi unic identificabil. Se pot deosebi
entităţi obişnuite (regular entities) şi entităţi speciale (weak entities), a
căror existenţă este dependentă de existenţa altor entităţi.
16
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Proprietatea sau atributul ce defineşte o latură a entităţii sau relaţiei, care
poate lua valori într-un domeniu asociat. Proprietăţile pot să fie simple sau
compuse, chei (să identifice unic entitatea respectivă), univaloare sau
multivaloare (grup repetitiv), de bază sau derivată, pot fi omise (proprietate
necunoscută sau neaplicabilă) şi aşa mai departe.
Relaţia ce defineşte o asociere între entităţi. Numărul de entităţi ce apar
într-o relaţie se numeşte gradul sau arietatea relaţiei. O entitate E poate să
participe la relaţia R total sau parţial. Relaţiile pot fi de tipul:
Relaţie unu-la-unu (notată 1:1), în cazul în car fiecărui element din prima
entitate îi corespunde cel mult un element din a doua entitate şi reciproc.
Relaţie unu-la mai-mulţi (notată 1:N), în cazul în car fiecărui element al primei
entităţi îi pot corespunde mai multe elemente din cea de-a doua entitate, dar fiecărui
element din a doua entitate îi corespunde cel mult un element din prima entitate.
Relaţie mai-mulţi-la-mai-mulţi (notată M:N), în cazul în care fiecărui element
al primei entităţi îi pot corespunde mai multe elemente din cea de-a doua entitate şi
reciproc.
Subtipul unei entităţi este un tip de entitate ce formează o submulţime a
entităţii respective, de obicei cu proprietăţi suplimentare. Tipul de entitate de care
aparţine un subtip se numeşte supertip. Pentru fiecare entitate în parte se poate stabili
un tip ierarhic prin subordonările de forma subtip şi supertip.
17
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
2.2 Modelul relaţional de baze de date
Un model relaţional de baze de date cuprinde trei componente principale:
- Structura datelor prin definirea unor domenii şi a relaţiilor n-are (atribute, tupluri,
chei primare, etc.).
- Integritatea datelor prin impunerea unor restricţii.
- Prelucrarea datelor prin operaţii din algebra relaţională sau calculul relaţional.
Modelul relaţional se bazează pe noţiunea matematică de relaţie, aşa cum este
definită în teoria mulţimilor, şi anume ca o submulţime a produsului cartezian a unei
liste finite de mulţimi numite domenii. Elementele unei relaţii se numesc tupluri, iar
numărul de domenii din produsul cartezian se numeşte arietatea relaţiei. De obicei
relaţiile sunt reprezentate sub forma unor tabele în care fiecare rând reprezintă un
tuplu şi fiecare coloană reprezintă valorile tuplurilor dintr-un domeniu dat al
produsului cartezian.
În reprezentarea sub formă de tabel a unei relaţii, coloanelor şi respectiv
domeniilor corespunzătoare lor li se asociază nume intitulate atribute. Mulţimea
numelor atributelor unei relaţii se numeşte schemă relaţională. Dacă relaţia are
atributele atunci schema relaţională se notează .
Un alt mod de a defini relaţiile este următorul: prin relaţie înţelegem o mulţime
de funcţii definite pe o mulţime de atribute cu valori în reuniunea unor domenii, cu
resticţia ca valoarea corespunzătoare fiecărui atribut să se reflecte în domeniul asociat
acelui atribut.
Trecerea de la un mod de definire al relaţiei la celălalt se face relativ simplu. O
relaţie în sensul de mulţime se transformă într-o relaţie în sensul de funcţii, asociind
fiecărui domeniu al produsului cartezian câte un nume de atribut
şi definind pentru fiecare tuplu funcţia cu
. Trecerea inversă se face impunând o relaţie de ordine totală pe
18
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
mulţimea atributelor şi asociind fiecărei funcţii tuplul obţinut din valorile funcţiei
respective, în ordinea corespunzătoare a atributelor.
Din punct de vedere al bazelor de date, cea de-a doua definiţie este de preferat,
deoarece permite prelucrarea informaţiilor corespunzătoare unui atribut fără a
cunoaşte poziţia acelui atribut în relaţie. Aceasta asigură o mai mare independenţă de
reprezentare a datelor, atât la nivel logic, cât şi la nivel fizic, putându-se efectua
modificări în definirea structurilor fără afectarea altor nivele. Pentru relaţiile ce
constituie o bază de date se fac diferite presupuneri iniţiale cum ar fi: neexistenţa unor
tupluri duplicate, neapariţia într-o ordine dată a tuplurilor sau a atributelor,
posibilitatea ca toate atributele să aibă numai valori atomice (nedecompozabile) şi
altele.
Se numeşte candidat de cheie a unei relaţii R coloana sau mulţimea de coloane
din R pentru care valorile corespunzătoare din oricare două tupluri nu coincid, deci
identifică tuplurile din cheia respectivă, şi nu conţin strict o submulţime de coloane cu
această proprietate. Pentru fiecare relaţie se alege un candidat de cheie care se
numeşte cheie primară a relaţiei. Tuplurile unei relaţii nu pot să conţină valoarea nulă
în coloanele ce aparţin cheii primare. Eventualii candidaţi de cheie diferiţi de cheia
primară se numesc chei alternative. Se numeşte cheie străină o coloană sau o mulţime
de coloane a unei relaţii ale cărei (căror) valori dacă nu sunt nule, coincid cu valori
ale unei chei primare dintr-o relaţie neapărat distinctă de .
Mulţimea tuturor schemelor relaţionale corespunzătoare unei aplicaţii se
numeşte schema bazei de date relaţionale, iar conţinutul curent al relaţiei la un
moment dat se numeşte bază de date relaţională. În modelul relaţional, entităţile sunt
reprezentate sub formă de relaţii în care schema relaţională conţine toate atributele
entităţii şi fiecare tuplu corespunde unui element al entităţii. La atributele entităţii se
pot adăuga în relaţie şi eventuale atribute suplimentare utilizate pentru exprimarea
relaţiilor între entităţi. O relaţie între entităţile se reprezintă ca o relaţie
19
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
în care fiecare tuplu este un element al relaţiei iniţiale, fiind o cheie
pentru relaţia asociată.
Cele mai multe cereri privesc determinarea unor informaţii cu anumite
proprietăţi, iar răspunsul posibil este o relaţie care descrie toate elementele cu aceste
proprietăţi. Modul de reprezentare al răspunsului depinde de interfaţa dintre SGBD şi
utilizator.
Prelucrarea relaţiilor se face prin algebra relaţională sau calculul relaţional pe
tupluri sau domeniu.Operatorii relaţionali se pot grupa în operatori de bază, care pot
genera toată clasa operatorilor relaţionali şi operatori auxiliari. Operatorii relaţionali
de bază se împart în operatori de asamblare şi operatori unari.
Operatorii de asamblare sunt operatorii care primesc la intrare două relaţii şi
generează la ieşire una singură. Aceştia sunt: reuniunea, diferenţa, produsul cartezian.
Operatorii unari se aplică asupra unei relaţii şi generează o altă relaţie. Aceştia
sunt proiecţia şi selecţia.
Operatorii auxiliari pot fi deduşi din setul de operatori de bază. Aceştia sunt
compunerea, intersecţia şi împărţirea.
20
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
2.3 Modelul conceptual de baze de date
Nivelul conceptual este nivelul central care reflectă datele structurate astfel
încât acestea să poată fi preluate şi prelucrate cu ajutorul unui SGBD. Schema
conceptuală stă la baza modelului conceptual care va permite definirea proprietăţilor
elementare ale obiectelor care interesează.
Modelul conceptual al bazei de date este reprezentat grafic prin diagrame,
entitate – relaţie. În aceste diagrame, entităţile sunt reprezentate sub formă de
dreptunghiuri ce conţin numele entităţii respective. Proprietăţile sunt reprezentate prin
elipse ce conţin numele entităţii respective, unite cu linii de entităţile la care sunt
asociate. Elipsa se desenează punctat dacă proprietatea este derivată şi dublat dacă
este multivaloare. Proprietăţile compuse au ataşate componentele lor, reprezentate tot
sub formă de elipse. Cheile sunt subliniate. Relaţiile sunt reprezentate sub formă de
romburi etichetate cu numele tipului relaţiei respective. Rombul se dublează dacă
relaţia indică legătura între o entitate specială şi entitatea de care depinde ea. Relaţia
este unită prin linii cu entităţile ce apar în ea, etichetate cu “one” sau “many” după
caz. Linia se dublează dacă participarea în relaţie a entităţii este totală. Orice subtip Y
al lui X se marchează cu o linie de la Y la X pe care se pune semnul de incluziune de
mulţimi (a lui Y în X).
În proiectarea bazei de date la nivel conceptual, se pot utiliza mai multe
modele, dintre care cel mai utilizat este modelul Entitate-Atribut-Corespondenţă.
O corespondenţă sau asociere reprezintă o legătură logică între două sau mai
multe realizări de entităţi. La nivelul limbajulul natural, este definită printr-un verb.
O corespondenţă poate avea proprietăţi particulare, date de atribute specifice.
O realizare a unei entităţi se numeşte mulţimea formată din câte o valoare pentru
fiecare atribut al relaţiei.
Valorile fiecărui atribut component a ceea ce numim entitate alcătuiesc o
realizare a entităţii respective.
21
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Spunem că există o dependenţă funcţională între două atribute când unei valori
a unei proprietăţi îi corespunde o singură valoare a altei proprietăţi.
Identificatorul unei entităţi este atributul a cărui realizare caracterizează în
mod unic a realizare a entităţii. În reprezentarea grafică, identificatorul se subliniază
cu o linie continuă.
Mulţimea entităţilor care participă la asociere formează colecţia acesteia;
numărul acestora dă gradul sau dimensiunea asocierii.
22
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
2.4 Reguli de verificare şi normalizare
a Modelării Conceptuale a Datelor (MCD)
2.4.1 Restricţii de integritate şi reguli de verificare a MCD
Restricţiile de integritate sunt reguli suplimentare, nereprezentabile direct în
formalismul EA (Entitate – Asociere), care trebuie respectate permanent de date.
Acestea pot fi statice, condiţii care se verifică permanent, şi dinamice, care privesc
evoluţia în timp a datelor.
Realizarea MCD impune respectarea următoarelor reguli:
Regula de unicitate a numelor se aplică tuturor elementelor care participă la
definirea MCD: tipuri de entităţi, tipuri de asocieri, atribute, roluri. Această
regulă impune eliminarea din model a omonimelor şi sinonimelor. Aceasta
înseamnă că nu vom putea da, în cadrul aceluiaşi MCD, şi unui atribut şi unui
tip de entitate acelaşi nume, de exemplu Producător. Vom numi tipul de
entitate Producător, iar atributul va primi denimirea Nume Producător.
Regula unicităţii atributelor (neredondanţei) impune ca un atribut să
definească un singur tip de entitate sau un singur tip de asociere.
Regula de unicitate a asocierilor, aplicabilă în cazul asocierilor neierarhice,
specifică faptul că pentru fiecare realizare a asocierii nu poate să existe decât o
singură realizare a fiecărei entităţi participante la asociere.
Regula proprietăţilor şi determinantului unei entităţi precizează că un atribut
care este determinat de mai mulţi determinanţi, aceştia fiind identificatori ai
unor tipuri de entităţi diferite, trebuie să definească tipul de asociere creat între
respectivele tipuri de entităţi.
Regula atributelor derivabile recomandă evitarea includerii în MCD a
atributelor rezultate din calcule. Prezenţa unor astfel de atribute în MCD se
justifică numai dacă ele sunt purtătoare ale unei informaţii cu o anumită
relevanţă şi frecvenţă de utilizare.
23
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Regula atributelor decompozabile precizează că pot fi menţinute în cadrul
MCD atribute complexe în măsura în care prelucrările nu impun
descompunerea lor pe componente elementare.
Regula minimizării identificatorilor specifică necesitatea stabilirii cu atenţie a
identificatorilor entităţilor, reţinând în grupul de atribute un număr cât mai mic
de elemente (atribute).
Regula valorii NULL. Deoarece există definite în cadrul tipurilor de entităţi
atribute care nu prezintă realizări obligatorii la nivelul fiecărei entităţi, rezultă
că MCD poate fi rafinat prin definirea unor subtipuri de entităţi care să
cuprindă doar atributele specifice acelei submulţimi de entităţi. Atributele cu
rol de identificator vor trebui să primească obligatoriu realizări.
2.4.2. Dependenţe funcţionale
Dependenţe funcţionale simple
Între două atribute A şi B există o dependenţă funcţională notată
A B
dacă fiecărei valori a lui A îi corespunde o singură valoare a lui B.
Spre exemlu, pentru un CD se poate defini următoarea dependenţă funcţională:
Cod_CD Nr_CD
care exprimă faptul că unui CD (identificat printr-un cod), îi corespunde un singur
număr care îi identifică tipul. Relaţia inversă:
Nr_CD Cod_CD
nu este adevărată, deoarece pot exista mai multe CD-uri cu acelaşi număr deţinut în
cadrul codului, dar cu coduri diferite.
Atributul aflat în stânga dependenţei funcţionale este numit determinant.
Determinantul poate fi compus din unul sau mai multe atribute.
O dependenţă funcţională X Z este elementară dacă pentru orice X’ strict
inclus în X, dependenţa funcţională X’ Y nu este adevărată.
24
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Dependenţe funcţionale multivaloare
Între două atribute A şi B există o dependenţă funcţională multivaloare, notată:
A B
dacă o valoare a lui A determină un ansamblu de valori al lui B.
Considerăm E în care A, B sun atribute/grupuri de atribute aparţinând acestuia
iar C = E – (A B),
A B dacă:
- A determină mai mute valori pentru B;
- A determină mai mute valori pentru C;
- B şi C sunt idependente unul faţă de celălalt.
În alţi termeni, dacă A B, atunci A C.
Dependenţa funcţională este un caz particular al dependenţei multivaloare.
Dacă A B atunci A B.
În contextul modelului EA, dependenţa funcţională multivaloare, corespunde
existenţei atributelor repetitive sau multivaloare.
Dependenţele funcţionale reprezintă restricţii de intergritate.
Identificatorul unei entităţi este un atribut sau un grup de atribute faţă de care
toate celelalte atribute depind funcţional.
Dependenţele funcţionale pot exista şi între entităţi şi asocieri.
Cardinalităţile 1,1 corespund întotdeauna unor dependenţe funcţionale.
2.4.3 Normalizarea
Normalizarea este considerată o parte importantă a procesului de proiectare a
datelor. Modelul EA (entitate – asociere) este rezultatul unui proces iterativ care a
permis identificarea tipurilor de entităţi, atributelor definite în cadrul acestora, a
identificatorilor şi a asocierilor. Normalizarea vizează atributele entităţilor pe care le
25
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
analizează cu scopul eliminării anomaliilor manifestate în procesul actualizării,
asigurându-se astfel definirea unor tipuri de entităţi „libere” de dependenţe
funcţionale tranzitive şi multivaloare. De asemenea, se elimină redondanţele fără
pierdere de informaţie semnificativă.
Teoria normalizării este fundamentată pe conceptul de formă normală definită
drept un stadiu de optimizare a tipurilor de entităţi definite. Normalizarea se
realizează prin parcurgerea succesivă a mai multor forma normale (FN), fiecare dintre
acestea conservând cerinţele formulate de FN precedentă.
Conceptul de formă normală a fost introdus de CODD când acesta a definit
conceptele specifice bazei de date relaţionale. El a definit primele trei forme normale.
Ideea fundamentală de la care a pornit era de a arăta avantajul respectării cerinţelor
FN3 în raport cu două criterii esenţiale: minimizarea redundanţelor şi minimizarea
anomaliilor în operaţiile de actualizare.
Ulterior au fost definite şi alte forma normale. Aceste forme normale operau
asupra structurii tabelelor bazei de date, deci pe nivelul logic al datelor. În timp s-a
conturat necesitatea realizării procesului de optimizare mai devreme, în cadrul
modelării conceptuale a datelor prin definirea unor reguli de normalizare a căror
definiţie pleacă de la chiar regulile lui CODD. Se reuşeşte astfel ca în momentul
definirii modelului logic al datelor, tabelele să respecte deja cerinţele formalor
normale.
Procesul normalizării se poate desfăşura urmând una din următoarele abordări:
Varianta „top down” caracterizată prin urmărirea respectării formelor normale
la nivelul entităţilor;
Varianta „bottom up” caracterizată prin definirea unui tip de entitate unic
înglobând toate atributele modelului EA la nivelul căruia să se identifice
mulţimea dependenţelor funcţionale existente între ele.
Anomaliile se pot manifesta în procesul actualizării în cursul operaţiilor de
adăugare, ştergere şi modificare.
26
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Anomalia de inserare (adăugare) constă în faptul că anumite date care urmează
să fie adăugate, fac parte din tupluri incomplete (pentru care nu se cunosc datele),
ceea ce face ca acestea să nu poată fi adăugate.
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, iar ştergerea făcându-se la nivelul tuplului, acestea se pierd.
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.
Formele normale sunt următoarele:
FN1: O entitate este în FN1, dacă toate atributele sale sunt elementare şi
nerepetitive.
FN2: O entitate este în FN2, dacă respectă cerinţele FN1 şi toate atributele
non-identificator sunt dependente de întregul identificator.
Altfel spus, în toate realizările tipului de entitate, fiecare atribut trebuie să fie
determinat de identificator şi trebuie să ia o singură valoare şi numai una. Dacă o
entitate analizată prezintă un identificator (cheie) format dintr-un singur atribut, este
automat în FN2.
FN3: O entitate este în FN3, dacă este în FN2 şi orice atribut non-
identificator, nu are dependenţe tranzitive faţă de identificator.
FNBC (BOYCE-CODD): O entitate este în FNBC dacă este în FN3 şi nici
un atribut ce compune identificatorul nu depinde funcţional de un alt atribut.
FN4: O entitate este în FN4, dacă respectă cerinţele FNBC şi nu prezintă
dependenţe multivaloare.
Normalizarea entităţilor
Normalizarea are drept scop eliminarea redondanţelor şi a anomaliilor de
actualizare. Deoarece prin cele menţionate anterior se elimină o parte dintre cazurile
de nerespectare a condiţiilor de normalizare, este necesaă să se asigure o atenţie
deosebită următoarelor situaţii:
27
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
a) existenţa dependenţelor funcţionale tranzitive între atribute;
b) existenţa de dependenţe funcţionale parţiale între atributele
neidentificatoare şi identificator (atunci când acesta eate compus din mai
multe atribute).
Normalizarea asocierilor
Situaţia este similară entităţilor, cu observaţia că pentru asocieri nu există
identificatori proprii, rolul acestora fiind îndeplinit de identificatorii entităţilor
participante.
1 1
N
1 N N N 1
Figura 2.1 Schema iniţială ( înainte de normalizare)
Pentru a nu exista nici una din anomaliile prezentate, schema iniţială al
aplicaţiei de baze de date pentru gestionarea unei biblioteci de CD-uri a fost supusă
procesului de normalizare. După ce această operaţiune a fost realizată schema finală
va arăta ca în figura următoare:
CD
COD_CDNUME CDNR_CDANAP_CDID_PRODNUME ARTISTCOD_REG
PRODUCATORID_PRODFIRMA PRODNUME PRODPRENUME PRODNUME CD
TIPNR_CDDENUMIRE CD
REGIZORCOD_REGNUME REGPRENUME REGNUME FILMCOMPANIA PROD
ARTISTNUME ARTISTNUME ALBUMGEN MUZICANR ALBUME ÎNREG
28
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
N
1
1 1 1 1 N N
1 1 1
N
Figura 2.2 Schema finală (după normalizare)
REGIZORCOD_REGNUME REGPRENUME REGNUME FILMCOMPANIA PRODCOD_CDFILM
ARTISTNUME ARTISTNUME ALBUMGEN MUZICANR ALBUME ÎNREGCOD_CDM
CDCOD_CDNUME CDNR_CDANAP_CDID_PROD
TIPNR_CDDENUMIRE CD
PRODUCATORID_PRODNUME PRODPRENUME PRODFIRMA PRODNUME CD
FILMCOD_CDFILMNUME FILMGEN FILMDURATA FILMNR DE CD-URI
MUZICACOD_CDMNUME ALBUMNUME ARTIST
29
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
CAPITOLUL 3
3. DESCRIEREA APLICAŢIEI
În vederea facilitării modului în care se creează o aplicaţie în Microsoft
ACCESS 2000, vom folosi un studiu de caz practic. Se va încerca prezentarea pe
scurt, a aplicaţiei ce va fi realizată.
Pentru aceasta, vom alege proiectarea unui sistem de gestionare a unor CD-uri
multimedia, deci se doreşte realizarea unui sistem informatic de evidenţă a CD-urilor
dintr-o bibliotecă de CD-uri.
Baza de date ce urmează a fi construită va conţine informaţii despre CD-urile
ce conţin filme, jocuri, muzică şi produse soft. În cadrul acestui sistem informatic se
vor evidenţia tipul CD-urilor, CD-urile propriuzise, producătorii unui CD, CD-urile ce
conţin filme şi regizorii care au creat un film, CD-urile care conţin muzică, respectiv
informaţii despre artiştii reprezentaţi de cântăreţi sau formaţii – interpreţi ai unui
anumit CD.
Vom obţine aşadar, următoarele tabele: CD, PRODUCATOR, TIP, FILM,
REGIZOR, MUZICA şi ARTIST.
Entitatea CD va deţine informaţii ce se referă la toate tipurile de CD-uri, iar din
entitatea TIP vom extrage informaţiile referitoare la tipul unui CD, adică film, joc,
muzică sau soft. Nr_CD va fi un câmp ce conţine o cifră, cifră folosită în codul unui
CD pentru ca acesta să poată fi identificat. Spre exemplu, cu cifra 1 vor începe
codurile CD-urilor care conţin exclusiv filme. De remarcat că un anumit tip poate
aparţine mai multor CD-uri, dar un CD poate avea doar un tip: film, joc, muzică sau
soft.
30
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Tabela FILM, va conţine CD-uri cu filme. Observăm că un film poate fi deţinut
pe mai multe CD-uri, dar un CD poate conţine maxim un film. Entitatea REGIZOR va
deţine informaţii legate de regizorii unui film.
În entitatea PRODUCATOR vom stoca informaţiile legate de un producător,
adică persoana care a produs fie un film, fie un joc, un album muzical sau un produs
soft.
Tabela MUZICA va conţine CD-urile de muzică, iar în entitatea ARTIST vom
introduce informaţii despre un cântăreţ sau o formaţie care interpretează muzica de pe
albumul respectiv, informaţii precum casa de discuri care a lansat albumul sau
numărul de albume înregistrate de artist în întreaga sa carieră muzicală.
După cum am menţionat şi mai sus, aplicaţia va fi realizată folosind Microsoft
ACCESS. Se vor realiza tabelele, legăturile dintre ele, se vor crea rapoarte, interogări
asupra bazei de date pentru a obţine informaţiile dorite, a adăuga date sau pentru a
actualiza sau şterge o tabelă. La crearea interogărilor se va folosi şi SQL, un limbaj
încorporat în ACCESS, folosit la scrierea instrucţiunilor dorite pentru obţinerea
datelor dorite. Deasemenea vom crea formulare şi macrocomenzi. Se observă faptul
că la unele formulare, adăugând anumite butoane prin folositea instrumentului
Toolbox, folosim implicit şi ACCESS VBA (Visual Basic for Applications). Mai
explicit, aceste instrumente folosite au „agăţate” în spatele lor, mici fragmente de
program în limbajul VBA.
Microsoft ACCESS reprezintă un instrument foarte simplu şi eficace, la
îndemâna oricărui utilizator care fără prea multe cunoştinţe poate implementa şi
utiliza o bază de date. Fiind parte componentă a pachetului OFFICE 2000, acesta
oferă posibilitatea comunicării cu celelalte programe: Word, Excel şi PowerPoint. Tot
aici se prezintă limbajul SQL (Structured Query Linguage), care reprezintă un
standard în ceea ce priveşte interogarea bazei de date.
31
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
CAPITOLUL 4
4. PREZENTARE MICROSOFT ACCESS – REALIZAREA APLICAŢIEI
4.1 Prezentare Generală Microsoft ACCESS 2000
Microsoft ACCESS 2000 face parte din pachetul de programe Microsoft Office
şi este cea de-a cincea versiune a produsului de la lansarea sa iniţială în anul 1992.
Microsoft a vândut peste 75 milioane de copii ale produsului Microsoft Office (din
toate versiunile), din care peste 45 milioane sunt exemplare ale produsului Office 97.
Cum o parte din vânzările produsului Microsoft Office sunt reprezentate de vânzarea
produsului Microsoft Access, se poate afirma că produsul Access este cel mai popular
sistem de gestionare a bazelor de date cu aplicaţie pe PC-uri.
La începutul lunii iunie 1999 a fost lansată versiunea finală a produsului
Microsoft Office 2000. Acesta reprezintă o variantă îmbunătăţită a produsului
Microsoft Office 97 şi continuă totodată tendinţa de monopol a firmei Microsoft.
Astfel, pe lângă componentele tradiţionale ale pachetului Office: Word, Excel,
PowerPoint, odată cu versiunea 2000 au fost introduse următoarele componente:
Publisher, pentru realizarea unei aplicaţii; FrontPage, pentru crearea paginilor Web;
PhotoDraw, Pentru editarea imaginilor; Small Business Tools, pentru gestionarea
afacerilor mici.
Principalele caracteristici ale sistemului de gestiune a bazelor de date ACCESS
sunt:
Sistemul de gestiune a bazelor de date este relaţional şi lucrează sub sistemul
de operare Windows;
Este deschis comunicării cu alte sisteme de gestiune a bazelor de date;
Este compatibil cu tehnologia ActiveX care permite realizarea aplicaţiilor
client/server;
32
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Permite realizarea unor aplicaţii complexe prin utilizarea limbajului Visual
Basic;
Permite comunicarea cu SQL Server, un alt produs Microsoft care gestionează
baze de date;
Permite accesul la baze de date din reţeaua Internet, fiind un instrument util
pentru publicarea informaţiilor în paginile Web;
Cerinţele hardware pentru instalare sunt: un calculator Pentium cu 32 MB
RAM, 200 MB spaţiu pe HD;
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 î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 obiectelor ACCESS din cadrul altor aplicaţii rulate sub
sistemul de operare Windows;
Permite utilizarea de adrese şi legături Internet;
Are integrată facilitatea de Office Assistant (help animat).
Însuşirea cunoştinţelor privind realizarea unei aplicaţii în ACCESS 2000 nu
este posibilă fără ca cititorul să aibă acces la un calculator pe care să fie instalat acest
sistem de gestiune a bazelor de date. În cadrul versiunii 2000 a SGBD-ului ACCESS
au fost introduse o serie de facilităţi noi cum ar fi:
33
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Iterfaţa grafică a fost modificată, fiind mai atractivă şi mai uşor de utilizat;
Se pemite publicarea datelor în cadrul unei reţele Intranet sau pe Internet prin
pagini HTML dinamice;
Pe baza facilităţii de compactare,minimizează dimensiunea bazei de date la
închidere;
Permite crearea de aplicaţii care să utilizeze baze de date stocate în SQL
Server, în cadrul unei reţele de calculatoare.
4.1.1 Arhitectura Microsoft ACCESS
O bază de date ACCESS poate fi definită ca o colecţie de obiecte: tabele
(table), cereri de interogare (query), formulare (form), rapoarte (report), paginiWeb
(pages), comenzi macro (macro) şi module (module).
Trebuie subliniată diferenţa majoră care există între Microsoft ACCESS şi alte
sisteme de gestiune a bazelor de date. Astfel, în Visual FoxPro, prin baze de date
(database), se înţeleg doar acele fişiere în care sunt stocate datele.
Tabele (Table) este un obiect definit de utilizator în care sunt stocate datele
primare (expresia modelului raţional).
Formularul (Form) este un obiect care permite introducerea datelor, afişarea
acestora sau controlul întregii aplicaţii.
Cerere de interogare (Query) este un obiect care permite vizualizarea
informaţiilor obţinute prin prelucrarea datelor din una sau mai multe tabele şi/sau alte
cereri de interogare.
Raportul (Report) este un obiect care permite formatarea şi tipărirea
informaţiilor obţinute în urma consultării bazei de date sub formă de document.
Pagină Web de accesare a datelor (Pages) reprezintă un obiect care include
un fişier HTML şi alte fişiere suport în vederea furnizării accesului la date prin
intermediul browser-elor Internet.
34
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Comanda Macro (Macro) reprezintă un obiect care conţine o definiţie
structurală a uneia sau mai multor acţiuni pe care ACCESS le realizează ca răspuns la
un anumit eveniment.
Modulul (Module) reprezintă un obiect care conţine proceduri definite de
utilizator şi scrise în limbajul de programare Visual Basic.
4.1.2 Instrumentul Wizard
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.
În cadrul istrumentalor wizard generale, Microsoft ACCESS conţine un număr
de probleme pentru rezolvarea cărora aplicaţiile pot fi generate automat prin utilizarea
unor şabloane, fiind create toate obiectele necesare pe baza anumitor preferinţe ale
utilizatorului.
Un exemplu în acest sens este baza de date privind contractele de afaceri
(Contract Management). Această bază de date poate fi generată automat de către
Microsoft ACCESS pe baza specificării anumitor preferinţe ale utilizatorului.
Utilizarea instrumentelor wizard este recomandată în special în cazul creării
formularelor sau rapoartelor.
35
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
4.1.3 Crearea unei baze de date
La pornire, SGBD ACCESS afişează pe ecran, dacă se doreşte construirea unei
baze de date sau deschiderea uneia existente deja, ca în figura 4.1:
Figura 4.1. Fereastra principală Microsoft ACCESS
Vom construi o bază de date nouă pe care o vom numi „Bază date CD.mdb”.
Pentru aceasta:
În fereastra principală se selectează Blank Access database şi se
activează butonul <OK>.
În fereastra de dialog (figura 4.2) se introduce numele bazei de date şi se
activează butonul <Create>, care va afişa rezultatul (figura 4.3).
36
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.2. Fereastra File New Database
Figura 4.3. Fereastra Database
37
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
4.1.4 Deschiderea unei baze de date deja existente
Dacă se doreşte modificarea sau consultarea unei baze de date creată anterior,
aceasta trebuie mai întăi deschisă. În fereastra principală se selectează Open an
existing file şi se activesză butonul <OK> care va deschide o nouă fereastră de dialog
Open asemănătoare cu fereastra de dialog File New Database în care se selectează
baza de date ce se doreşte a fi modificată.
4.1.5 Salvarea modificărilor aduse unei baze de date
Prin modificarea unei baze de date ACCESS se înţelege modificarea obiectelor
ce o compun. Modificarea unui obiect va atrage după sine o întrebare din partea
sistemului – dacă această modificare va fi salvată sau nu. În concluzie, orice
modificare a obiectelor se salvează local nefiind necesară salvarea întregii baze de
date.
38
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
4.2 Crearea structurii bazei de date
4.2.1 Modelul conceptual al datelor
În urma analizei problemei rezultă următoarele entităţi: TIP, CD,
PRODUCATOR, FILM, REGIZOR, MUZICA şi ARTIST.
Identificarea corespondenţelor:
TIPUL – CD
Un tip poate aparţine unui CD sau poate aparţine la n CD-uri, de unde rezultă
corespondenţa APARTINE.
PRODUCATOR – CD
Un producător poate produce de-a lungul carierei unul sau mai multe CD-uri
(film, joc, soft sau muzică) de unde rezultă corespondenţa PRODUCE.
CD – FILM
Un CD conţine un film, de unde rezultă corespondenţa CONŢINE.
FILM – REGIZOR
Un film este regizat de un regizor, de unde rezultă corespondenţa
REGIZEAZĂ.
CD – MUZICA
Un CD mai poate deţine muzică, de unde rezultă corespondenţa DEŢINE.
MUZICA – ARTIST
Muzica de pe un CD este interpretată de un cântăreţ/cântăreaţă respectiv
formaţie, de unde rezultă corespondenţa INTERPRETEAZĂ.
39
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Stabilirea cardinalităţilor:
Corespondenţa APARTINE
o dinspre entitatea TIPUL (1,n)
un tip poate aparţine cel puţin unui CD (cardinalitate 1);
un tip poate aparţine mai multor CD-uri (cardinalitate n);
o dinspre entitatea CD (1,1)
un CD poate avea cel puţin şi cel mult un tip (cardinalitate 1,1);
Corespondenţa PRODUCE
o dinspre entitatea PRODUCATOR (1,n)
un producător poate produce cel puţin un film de-a lungul
carierei (cardinalitate 1);
un producător poate produce n filme(cardinalitate n);
o dinspre entitatea CD (1,1)
un CD este produs de cel puţin şi cel mult un producător
(cardinalitate 1);
Corespondenţa CONŢINE
o dinspre entitatea CD (1,1)
un CD poate conţine cel puţin şi cel mult un film (cardinalitate
1);
o dinspre entitatea FILM (1,n)
un film poate fi conţinut pe un CD (cardinalitate 1);
un film poate fi conţinut pe n CD-uri (cardinalitate n);
Corespondenţa REGIZAT
o dinspre entitatea FILM(1,1)
un film de cel puţin şi cel mult un regizor (cardinalitate 1);
o dinspre entitatea REGIZOR (1,n)
un regizor poate regiza de-a lungul carierei cel puţin un film
(cardinalitate 1);
40
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
un regizor poate regiza de-a lungul carierei n filme
(cardinalitate n).
Corespondenţa DEŢINE
o dinspre entitatea CD (1,1)
un CD poate conţine cel puţin şi cel mult un album de muzică
(cardinalitate 1);
o dinspre entitatea MUZICA (1,1)
un album de muzică poate fi conţinut cel puţin şi cel mult un
CD (cardinalitate 1);
Corespondenţa INTERPRETATĂ
o dinspre entitatea MUZICA (1,1)
un album de muzică poate fi interpretat de cel puţin şi cel mult
un cântăreţ/cântăreaţă/ formaţie (cardinalitate 1);
o dinspre entitatea ARTIST (1,n)
un album artist poate lansa de-a lungul carierei cel puţin un
album (cardinalitate 1);
un album artist poate lansa de-a lungul carierei n albume
(cardinalitate n).
ID_PROD
41
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
1,N
1,N 1,1 1,1
1,1 1,1
1,1 1,N
1,1 1,1
1,N 1,N
Figura 4.4. Modelul conceptual al datelor
4.2.2 Modelul relaţional al datelor
TIP (Nr_CD, Denumire)
CD (Cod_CD, Nume CD, Nr_CD, AnAp_CD, ID_Prod)
PRODUCATOR (ID_Prod, Nume Prod, Prenume Prod, Firma Prod, Nume CD)
FILM (Cod_CDFilm, Nume Film, Gen Film, Durata Film, Nr de CD-uri)
REGIZOR (Cod_Reg, Nume Reg, Prenume Reg, Nume Film, Compania Prod,
Cod_CDFilm)
MUZICA (Cod_CDM, Nume Album, Nume Artist)
ARTIST (Nume Artist, Nume Album, Tip Muzică, Nr Albume Înreg,
Casa Discuri,Cod_CDM)
În figura 4.5 se prezintă transformarea modelelor conceptual şi relaţional într-o
bază de date ACCESS – modelul fizic al datelor (nivelul intern).
TIP
CD
PRODUCATORPRODUC
EAPARTIN
E
REGIZAT
REGIZOR
TIP_CDCOD_CD
COD_REG
MUZICA
DETIN
E
ARTIST
INTERPRETATĂ
FILM
CON
ŢINE COD_CD
FCOD_CDM
NUME ARTIST
42
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.5. Fereastra Relationships
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), componentele fiecărui fişier (lungime, câmpuri,
plasare a acestora în cadrul fişierului), căile de acces la componentele tabelelor
(relaţii, legături între tabele).
În cadrul ferestrei Relationships, pentru a descrie procesul de construire a
relaţiilor dintre tabele, folosim operaţia drug and drop, de la cheia primară a tabelei
principale la cheia externă a tabelei secundare.
De exemplu pentru a crea relaţia între tabelele FILM şi REGIZOR. În
fereastra Edit Relationships, dacă selectăm proprietatea Enforce Referencial Integrity
(impune integritate referenţială) în cadrul aplicaţiei, aceasta înseamnă că datele nu pot
fi introduse în tabele în orice ordine.
43
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.6. Fereastra Edit Relationships
4.2.3 Crearea tabelelor
Crearea structurii tabelelor se poate face în trei moduri:
1. Utilizând fereastra de proiectare – Create table in design view;
2. Prin introducerea datelor – Create table by entering data;
3. Utilizând instrumentul Wizard – Create table by using wizard.
Crearea unui tabel utilizând instrumentul wizard permite adăugarea unor
câmpuri standard ce se află deja în cadrul bibliotecilor de tabele standard. Crearea de
tabele prin introducerea de date reprezintă o formă rapidă de a introduce datele. Ea nu
poate fi aplicată eficient în cadrul unei aplicaţii complexe.
Pentru crearea unui tabel utilizând fereastra de proiectare, prin realizarea unui
dublu clic pe Create table in design view pe ecran va apărea fereastra Table (figura
4.7). Î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).
Utilizând fereastra de proiectare, vom crea tabelele necesare aplicaţiei de
evidenţă a CD-urilor. În figura 4.8 este prezentată tabela CD, în faza de proiectare,
44
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
unde sunt precizate câmpurile, tipul datelor folosite pentru definirea câmpurilor, şi
deasemenea o descriere a câmpurilor respective.
Figura 4.7. Fereastra Table
Figura 4.8. Tabela CD
45
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
4.2.4 Tipuri de date
Executarea unui clic pe săgeata derulantă deschide lista opţiunilor privind tipul
de dată al unui câmp.
Dimensiunea câmpului (Field Size). Putem crea un câmp de tip Text cu
dimensiune fixă stabilind valoarea proprietăţii Field Size. În mod prestabilit, ACCESS
creează un câmp de tip text care poate cuprinde 50 de caractere.
Formatul de afişare a datelor (Format). O dată de tip Long Integer poate fi
afişată sub mai multe forme. ACCESS permite şi realizarea unor formate nestandard,
personalizate.
Numărul de zecimale (Decimal places). În cadrul acestei proprietăţi se
stabileşte numărul de zecimale ce pot fi atribuite câmpului. Există o listă de opţiuni şi
se pot selecta valori cuprinse între 0 şi 15 sau Auto pentru determinarea automată a
numărului de zecimale.
Formatul de introducere (Input Mask). Reprezintă impunerea unui anumit
format pentru toate datele incluse în cadrul acestui câmp.
Eticheta (Caption). Aceasta permite specificarea unui anumit nume atribuit
câmpului, în cazul în care acesta este utilizat în cadrul formularelor sau când tabela
este afişată.
Valoarea iniţială (Default Value) este o valoare care este atribuită automat, în
momentul când utilizatorul nu introduce nici o valoare în acel câmp.
Regula de validare (Validation Rule). Regulile de validare testează valoarea
introdusă într-un câmp.
Textul de validare (Validation Text) reprezintă textul care va apărea pe bara
de mesaje în cazul în care valoarea introdusă nu respectă criteriul impus de regula de
validare.
Cerut (Required). Prin această proprietate se stabileşte dacă prin introducerea
unei înregistrări în cadrul tabelei este obligatorie şi completarea respectivului câmp.
46
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Indexat (Indexed). Dintr-o listă derulantă se poate alege între un index care
admite valori duplicat sau unul care cere ca fiecare valoare a câmpului să fie unică.
Eliminarea unui index inexistent se realizează prin selecţia opţiunii No.
Proprietăţile descrise mai sus se aplică câmpurilor ce conţin date de tip
numeric. O parte dintre ele se regăsesc şi în cadrul câmpurilor ce conţin alte tipuri de
date, existând totodată şi proprietăţi specifice acestora.
4.2.5 Introducerea datelor în tabele
În cadrul aplicaţiilor ACCESS datele pot fi introduse în tabele printr-o
multitudine de metode. Spre exemplu, în fereastra Database, alegem tabela CD în
care dorim să introducem date, şi activăm butonul <Open>. Pe ecran va apărea
fereastra (figura 4.9) Datasheet, în cadrul căreia introducem, vizualizăm sau
modificăm date. Procedeul este identic şi pentru celelalte tabele.
4.2.6 Salvarea datelor
Atunci când în fereastra de proiectare se realizează modificări asupra unui
obiect (tabel, formular, raport, comandă macro, cerere de interogare), la închiderea
acestei ferestre utilizatorul este întrebat dacă doreşte salvarea obiectului cu noile
modificări aduse. Acest lucru se poate realiza şi prin comanda <File, Save>.
În cadrul ferestrei Database se poate schimba numele unei tabele sau unui alt
obiect. De asemenea, prin operaţiile specifice sistemului de operare Windows
Copy/Paste, se pot crea foarte uşor tabele (sau alte obiecte), identice (cu aceeaşi
structură sau chiar cu aceleaşi date).
47
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.9. Fereastra Datasheet a tabelei CD
48
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
4.3 Interogarea bazei de date
Interogarea bazei de date se poate face prin:
Vizualizarea în totalitate a conţinutului tabelelor;
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 o singură tabelă. Interogarea prin cereri explicite este complexă,
foloseşte mai multe tabele, ale căror date sunt filtrate prin intermediul unor criterii.
Această ultimă modalitate, în ACCESS se numeşte cerere de interogare (query).
Crearea unei cereri de interogare se poate face în mai multe feluri:
Proiectarea pas cu pas a cererii în modul Design View (fereastră de
proiectare);
Utilizând instrumentul wizard;
Exprimarea cererii în limbajul SQL;
Crearea unui filtru şi salvarea acestuia ca interogare.
Pentru a crea o cerere de interogare pas cu pas în modul Design view:
1. În fereastra Database se realizează clic pe <Queries> şi <New>.
2. În caseta de dialog New Query (figura 4.10) se execută clic pe Design view şi
apoi <OK>.
3. În caseta de dialog Show Table (figura 4.11) se execută clic pe tab-ul care dă
lista obiectelor bazei de date.
4. Dublu clic pe numele fiecărui obiect pe care vrem să-l folosim şi apoi clic pe
<Close>.
49
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.10. Fereastra New Query
Figura 4.11. Caseta de dialog Show Table
5. Dacă avem mai multe tabele şi/sau cereri de interogare, trebuie să ne asigurăm
că între ele există legăturile necesare pentru a răspunde cerinţelor impuse de
noua cerere de interogare.
6. Dacă nu există legăturile necesare între tabele, se stabilesc prin glisarea
mouseu-lui de pe câmpul de legătură din tabela principală spre cel din cea
secundară; câmpurile numerice de legătură Field Size trebuie să fie byte,
integer sau long integer.
50
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
7. Trecerea câmpurilor dintr-o tabelă în grila de proiectare se face în două
moduri: dublu clic în bara de titlu a listei de câmpuri, clic în lista de câmpuri
şi apoi deplasarea în grila de proiectare; prin deplasarea caracterului * în grila
de proiectare.
8. Ordonarea datelor se face crescător sau descrescător, după unul sau mai multe
cămpuri. Pentru aceasta se realizează clic în celula de la intersecţia coloanei
câmpului cu caseta Sort şi apoi se alege Ascending sau Descending.
9. Criteriile de selecţie se introduc în celula aflată la intersecţia coloanei
câmpului cu linia Criteria din grila de interogare.Acestea pot fi simple sau
compuse şi pot utiliza o serie de cuvinte rezervate şi expresii definite de
utilizatori.
10. Dacă este nevoie se pot realiza câmpuri calculate.
11. Salvarea unei cereri de interogare se face prin comanda <File, Save>.
În cele ce urmează vom da exemple de interogări efectuate pe baza de date ce
conţine CD-uri.
În figura 4.12, este prezentată Cerea de interogare CDDiferite. S-au selectat
tabelele CD, PRODUCATOR şi TIP, iar din ele s-au selectat câmpurile Nume CD,
AnAp_CD din tabela CD, ID_Prod, Firma Prod din tabela PRODUCATOR şi
Denumire CD din tabela TIP. Criteriul ales, este ca anul apariţiei CD-urilor să fie
2003 şi s-a sortat ascendent, în funcţie de ID-ul producătorului. Foaia de răspuns
aferentă este prezentată în figura 4.13.
51
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.12. Cererea de interogare CDDiferite
Figura 4.13. Foaia de răspuns aferentă cererii de interogare CDDiferite
Un alt exemplu de cerere de interogare este interogarea dintre tabelele CD,
FILM şi REGIZOR (figura 4.14). Din tabela CD s-a selectat codul CD-urilor, din
tabela FILM, numele şi durata filmului, NR de CD-uri, iar din tabela REGIZOR,
compania producătoare. S-a sortat ascendent în funcţie de codul CD-urilor, iar
52
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
criteriul ales a fost ca numale CD-urilor selectate să poarte numele filmului Pitates of
the Carribbean.
Figura 4.14. Cererea de interogare CDFilm
Figura 4.15. Foaia de răspuns aferentă cererii de interogare CDFilm
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. În acelaşi
timp, SQL nu poate fi considerat un limbaj de programare sau unul de sistem, ci mai
curând un limbaj de aplicaţii, fiind orientat pe mulţimi.
SGBD-ul ACCESS 2000 acceptă utilizarea limbajului de interogare SQL.
Existenţa tehnicii grafice QBE (Query by Example) permite proiectarea facilă a unor
53
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
interogări complexe. Informaţia definită pe QBE va fi automat transformată într-o
instrucţiune SQL. Pentru crearea cererilor de interogare în SQL, este necesară
definirea unor instrucţiuni ce vor fi folosite în interogarea bazei de date.
SELECT – se regăsesc şi se afişează informaţiile dorite de utilizator;
FROM – specifică numele tabelei/tabelelor din care se vor obţine datele;
WHERE – face interogările mai selective, specificând faptul că vor fi afişate
numai înregistrările care îndeplinesc criteriul ales;
ORDER BY – utilizată atunci când se doreşte ca rezultatele interogării să fie
ordonate în mod crescător (ASC), sau descrescător (DESC). Sortarea este opţională;
JOIN – specifică tabela care va fi asociată (nume_tabelă1, nume_tabelă2...)
tabelei precizată în clauza FROM;
INNER JOIN – joncţiune internă de tip echivalent;
ON – criteriul de asociere – relaţia dintre câmpurile pe care se bazează
joncţiunea. Unul se află în tabela asociată, iar celălalt există într-o altă tabelă din lista
cu numele tabelelor.
INSERT – se foloseşte pentru adăugarea de înregistrări dintr-o tabelă în alta.
Nu se pot insera date dintr-o tanbelă în ea însăşi, decât dacă în prealabil se face o
modificare a datelor;
DELETE – acţiune de ştergere parţială sau totală a înregistrărilor din tabele. Se
şterge doar conţinutul acesteia, nu şi tabela propriuzisă;
UPDATE – are scopul de a insera noi înregistrări într-o tabelă sau de a
modifica valorile câmpurilor din înregistrările existente;
INTO – clauza în care sunt menţionate câmpurile selectate;
Sintaxa aferentă interogărilor realizate cu aceste instrucţiuni şi clauze, este:
SELECT [domeniu] listă_selecţie
FROM nume_tabelă1
{INNER} JOIN nume_tabelă2
ON criteriul_de_asociere
54
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
[{INNER} JOIN nume_tabela3
ON criteriul_de_asociere]...
[WHERE criteriul_de_selecţie]
[ORDER BY câmpuri_criteriu [ASC/DESC]];
În primul exemplu de interogare SQL, s-a selectat din tabela CD: codul,
numele (sortat ascendent) şi anul apariţiei, iar din tabela TIP, s-a selectat denumirea
CD-urilor. Criteriul ales este ca denumirea CD-urilor să fie „soft”.
SELECT CD.Cod_CD, CD.[Nume CD], TIP.[Denumire CD], CD.AnAp_CD
FROM TIP INNER JOIN CD ON TIP.Nr_CD = CD.Nr_CD
WHERE (((TIP.[Denumire CD])="soft"))
ORDER BY CD.[Nume CD];
Figura 4.16. Foaia de răspuns a cererii de interogare CDSoft
Următoarele exemple de interogări au fost realizete pentru: crearea unei tabele
dintr-o cerere de interogare deja existentă (Make Table Query – crearea tabelei Joc),
pentru actualizarea datelor (Update Query – incrementarea Nr_CD), pentru adăugarea
de date în tabelă (Append Query – s-au adăugat câmpurile deja existente, în tabela Joc
modificată) şi pentru ştergerea de date (Delete Query – au fost şterse datele din
tabelă).
55
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Cererea de interogare Make Table Query:
SELECT CDJoc.Cod_CD, CDJoc.[Nume CD], CDJoc.Nr_CD, CDJoc.ID_Prod
INTO Joc
FROM CDJoc;
Cererea de interogare Update Query:
UPDATE Joc SET Joc.Nr_CD = 4+1;
Figura 4.17. Foaia de răspuns Figura 4.18. Foaia de răspuns
a cererii de interogare a cererii de interogare
JocTabela JocActualizare
Cererea de interogare Append Query:
INSERT INTO Joc ( Cod_CD, [Nume CD], Nr_CD, ID_Prod )
SELECT Joc.Cod_CD, Joc.[Nume CD], Joc.Nr_CD, Joc.ID_Prod
FROM Joc;
Cererea de interogare Delete Query:
DELETE Joc.Cod_CD, Joc.[Nume CD], Joc.Nr_CD, Joc.ID_Prod, *
FROM Joc;
56
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.19. Foaia de răspuns Figura 4.20. Foaia de răspuns
a cererii de interogare a cererii de interogare
JocTabela JocActualizare
57
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
4.4 Formulare
Formularele (Forms) reprezintă interfaţa principală între utilizator şi o aplicaţie
Microsoft ACCESS, fiind obiecte ale bazei de date ce permit introducerea şi afişarea
datelor într-o manieră cât mai atractivă.
În cadrul unei aplicaţii, formularele pot îndeplini mai multe funcţii:
1. Afişarea şi editarea datelor – cea mai des întâlnită formă de utilizare a
formularului. Formularul permite afişarea datelor în forma dorită, datele afişate
pot fi uşor modificate sau şterse.
2. Controlul operaţiilor realizate de aplicaţie – se pot proiecta formulare, care
împreună cu comenzi macro sau cu proceduri Visual Basic, să realizeze
afişarea automată a anumitor date sau executarea automată a unui şir de
operaşii cum ar fi deschiderea unui subformular dintr-un formular.
3. Introducerea de date.
4. Afişarea de mesaje – pot furniza date privind modul în care aplicaţia poate fi
utilizată sau despre operaţiile ce urmează a fi executate.
5. Tipărirea informaţiilor.
În general, un formular este compus din trei părţi: antetul (Detail), zona de
lucru şi subsolul. În zona detaliu sunt prezentate, în fapt, datele. În antet şi subsol sunt
prezentate informaţii statice care nu se schimbă pe măsură ce edităm alte înregistrări.
Un formular se poate crea prin utilizarea instrumentului wizard (creare
automată), sau prin creare în fereastra de proiectare (creare manuală).
4.4.1 Crearea automată a unui formular
În fereastra Database se activează butonul <New>. Pe ecran va apărea
fereastra Form (figura 4.21). dintre opţiunile din dreapta ale ferestrei New Form vom
selecta Form Wizard, ceea ce înseamnă că vom crea formularul cu ajutorul
instrumentului wizard. În partea de jos a ferestrei New Form, utilizarea listei derulante
58
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
ne permite să alegem tabela cu care formularul va lucra, în cazul nostru tabela
REGIZOR. Prin activarea butonului <OK> pe ecran va apărea o primă fereastră Form
Wizard (figura 4.22). În cadrul acestei ferestre se selectează câmpurile asupra cărora
va opera formularul pa care-l construim Trecerea de la o fereastră Wizard la alta se
realizează prin acţionarea butonului <OK>.
Figura 4.21. Fereastra New Form
În cea de-a doua fereastră Form Wizard (figura 2.23), se selectează modul în
care sunt prezentate datele în cadrul formularului. Unul dintre aceste moduri este
Justified.
59
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.22. Prima fereastră Form Wizard
Figura 4.23. A doua fereastră Form Wizard
60
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
În următoarea fereastră Form Wizard (figura 4.24), se poate selecta stilul
formatului, prin stil înţelegând un anumit tip de fundal, anumite caractere şi culori ale
acestora, etc.
Figura 4.24. A treia fereastră Form Wizard
În ultima fereastră Form Wizard (figura 4.25), se introduce numele
formularului, în cazul nostru Regizor şi se alege modul de afişare al acestuia. Crearea
formularului se încheie prin acţionarea butonului <Finish>.
61
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.25. Ultima fereastră Form Wizard
Dacă, la selectarea modului în care va fi afişat pe ecran formularul creat, am
ales opţiunea Open the form to view or enter information pe ecran ne va apărea
formularul Regizor (figura 4.26), care ne va permite să introducem date privind
persoana care regizează un film, oferindu-ne totodată posibilitatea de a modifica sau
doar vizualiza datele introduse anterior. Dacă însă am ales opţiunea Modify the form´s
design, pe ecran va apărea fereastra de proiectare pentru formularul Regizor (figura
4.27), unde putem face modificările dorite asupra formularului, precum:
redimensionarea sau rearanjarea controalelor, schimbarea fontului sau a culorilor, etc.
62
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.26. Formularul Regizor
Figura 4.27. Formularul Regizor în cadrul ferestrei de proiectare
Elementele grafice, care se pot adăuga unui formular, se prezintă sub formă de
controale. Aceste controale pot fi apelate prin selectarea lor din cadrul barei de
instrumente Toolbox (figura 4.28).
Figura 4.28. Bara de instrumente Toolbox
Select Objects – deselectează instrumentul selectat anterior şi restabileşte funcţia
normală pentru indicatorul mouseu-lui.
63
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Control Wizards – activează/dezactivează programele Control Wizards.
Label – casetă ce conţine texte fixe de descriere sau instrucţiuni.
Text Box – casetă care afişează şi permite editarea datelor de tip text.
Option Group – casetă dreptunghiulară de dimensiune variabilă în care putem
plasa, butoane comutatoare, butoane de opţine sau casete de validare.
Toggle Button – buton care, atunci când este selectat, comută din starea On în
starea Off.
Option Button – buton rotund care se comportă identic cu un buton comutator.
Checg Box – casetă de validare care, atunci când este selectată comută între starea
On şi Off.
Combo Box – casetă combinată formată dintr-o casetă de text editabilă, în care
putem introduce o valoare şi o listă din care putem alege o valoare dintr-un set.
List Box – casetă ce conţine o listă derulantă de opţiuni din care putem selecta o
valoare.
Command Button – buton de comandă care, atunci când se execută clic pe el,
comută un eveniment care execută o comandă macro Access sau o procedură VBA de
tratare a evenimentelor.
Image – afişează un grafic static pe un formular sau într-un raport.
Unbound Object Frame – include în formular sau în raport un obiect OLE creat
cu o aplicaţie server OLE, cum ar fi Microsoft Graph sau Microsoft Draw.
Bound Object Frame – afişează conţinutul unui câmp OLE al unei înregistrări,
dacă acesta conţine un obiect grafic.
Page Break – determină imprimanta să treacă la o pagină nouă începând cu
poziţia delimitatorului de pagină din formular sau din raport.
64
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Tab Control – se foloseşte în vederea creării unei serii de pagini ce pot fi
schimbate.
Subform/Subreport – ataşează unui formular sau raport un subformular, respectiv
un subraport.
Line – creează o linie dreaptă pe care putem să o redimensionăm şi să-i poziţionăm
poziţia.
Rectangle – creează un dreptunghi pe care putem să-l redimensionăm şi să-l
repoziţionăm.
More Controls – permite introducerea obiectelor de control ActiveX instalate în
sistem.
Un exemplu de formular care conţin elemente grafice create cu ajutorul barei
de instrumente Toolbox, îl reprezintă formularul CD.
După cum se observă, primul formular (figura 4.29) conţine: un buton de
căutare, care ne ajută să găsim anumite informaţii, un buton de execuţie a unei
macrocomenzi (Macro CD), şi un subformular. Pentru toate acestea s-au folosit
butoane de comandă (Command Button) şi un buton de creare al subformularului.
Figura 4.29. Formularul CD
65
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Codul în VBA al butoanelor adăugate formularului va fi următorul:
Private Sub Command14_Click()
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, ,
acMenuVer70
End Sub
Private Sub Command16_Click()
stDocName = "Macro CD"
DoCmd.RunMacro stDocName
End Sub
4.4.2 Subformulare
Subformularul este un formular inclus într-un alt formular, pentru a permite
afişarea datelor din mai multe tabele sau cereri de interogare. Din punct de vedere al
formatului de prezentare, un subformular poate fi de două feluri: foaie de date – se
poate crea într-o manieră foarte simplă şi permite modificări privind dimensionarea şi
aranjarea coloanelor, sau formular – oferă posibilităţi multiple de aranjare a datelor,
de utilizare a culorilor, etc. Pentru a crea un ansamblu formular – subformular, există
3 posibilităţi:
creare formularului şi subformularului concomitent;
crearea subformularului şi adăugarea lui la formular;
crearea separat a celor două şi apoi combinarea lor.
Un exemplu de ansamblu formular – subformular, avem în figura 4.29.
Pentru a vedea sau modifica proprietăţile unui formular executăm clic dreapta
şi alegem opţiunea Properties (figura 4.30) şi anume Form, şi astfel putem vedea care
sunt proprietăţile formularului, sau dacă dorim le putem schimba. Acelaţi lucru este
valabil şi în cazul proprietăţilor butoanelor adăugate.
66
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.30. Fereastra Properties – Form
4.4.3 Proceduri şi obiecte Visual Basic pentru ACCESS 2000
Limbajul Visual Basic for Applications Access 2000 (VBA), este un limbaj
orientat pe obiecte şi pe evenimente. O bază de date Access este formată dintr-o
mulţime de obiecte, care se pot folosi din VBA.
Unele obiecte predefinite din Access au asociate colecţii, care sunt de
asemenea obiecte. Fiecare colecţie grupează obiecte de acelaşi tip. Pentru a nu se crea
confuzii, putem spune că în Access sunt predefinite tipuri de obiecte, fiecare tip de
obiect având asociată o colecţie, în care regăsim obiectele din tipul respectiv.
Obiectele dintr-o colecţie sunt practic obiecte definite de utilizator – formulare,
rapoarte, tabele, etc. – sau create automat de Access 2000.
O procedură, reprezintă o secvenţă de instrucţiuni, care realizează o prelucrare
bine definită din punct de vedere funcţional. Acestea pot fi apelate ori de câte ori este
nevoie, fără a mai fi necesară rescrierea lor. În felul acesta se reduce considerabil
efortul de programare.
67
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Private – semnifică faptul că procedura poate fi apelată numai din modulul
unde a fost definită.
Obiectul DoCmd
Dispune numai de metode, care se pot utiliza pentru a executa diferite acţiuni
VBA (deschiderea unui formular, a unui raport, executarea unei interogări acţiune).
Sintaxa generală utilizată de acest obiect în momentul în care se invocă o metodă este:
[application.] DoCmd.nume_metodă [argument_1,...]
application – un obiect de tip Application;
nume_metodă – una dintre metodele acestui obiect;
argument1,... – parametri ai metodei apelate.
Metode ale acestui obiect:
OpenTable – deschide o tabelă, în modul Design, în mod
Datasheet, sau în mod previzualizare înaintea tipăririi:
DoCmd.OpenTable nume_tabelă [,mod_vizualizare][,mod_editare]
mod_vizualizare – constantă ce stabileşte modul de deschidere a tabelei
(tabelul 4.1).
mod_editare – constantă care stabileşte modul de deschidere al tabelei din
punct de vedere al operaţiunilor de actualizare a înregistrărilor tabelei. Această
constantă are efect numai dacă parametrul mod_vizualizare lipseşte sau are
valoarea acViewNormal (tabelul 4.2).
68
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Constanta DescriereacViewDesign Se afişează fereastra Design, de modificare a structurii
unei tabele.acViewNormal Se afişează fereastra Datasheet, cu întregistrările
conţinute de tabelă. Acest parametru este implicit, în cazul în care nu se specifică nici una dintre cele trei constante.
acViewPreview Se afişează fereastra de previzualizare înainte de imprimare a înregistrărilor conţinute de tabela specificată.
Tabelul 4.1
Constanta DescriereacAdd Tabela este deschisă numai pentru adăugarea de
înregistrări.acEdit Tabela este deschisă pentru toate operaţiile de actualizare
(adăugare, modificare, ştergere).acReadOnly Nu este permisă actualizarea înregistrărilor.
Tabelul 4.2
OpenForm – deschide un formular:
doCmd.OpenForm nume_formular[,mod_vizualizare]
[,nume_filtru] [,clauză_where][,mod_editare]
[,tip_fereastră][,parametrii_formular]
mod_vizualizare – constantă care stabileşte modul de vizualizare al
formularului pe ecran (tabelul 4.3).
nume_filtru – şir de caractere care indică o interogare din baza de date folosită
pentru a filtra înregistrările afişate de formular.
Constanta Descriere
69
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
acDesign Este deschisă fereastra de proiectare a formularului Design Form.
acFormDS Formularul este deschis în modul actualizare înregistrări Open Form, însă în modul de afişare înregistrări DataSheet.
acNormal Formularul este deschis în modul actualizare înregistrări Open Form, însă afişat pe ecran aşa cum a fost el construit în fereastra Design Form.
acPreview Formularul este deschis în modul previzualizare înainte de imprimare.
Tabelul 4.3
clauza_where – şir de caractere ce conţine o caluză SQL WHERE, validă,
utilizată pentru a selecta numai anumite înregistrări pentru a fi afişată în
formular. Se utilizează fără cuvântul cheie WHERE.
mod_editare – constantă care indică modul de deschidere al formularului din
punct de vedere al operaţiilor de actualizare asupra înregistrărilor afişate de
formular.
paramatrii_formular – şir de caractere, care este transmis formularului în
momentul deschiderii. Acest şir de caractere se regăseşte apoi în proprietatea
OpenArgs a formularului (în care acesta este deschis), de unde poate fi accesat.
OpenReport – deschide un raport:
DoCmd.OpenReport nume_raport[,mod_vizualizare]
[,nume_filtru][,clauză_wher]
mod_vizualizare – tabelul 4.4.
Constanta Descriere
70
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
acDesign Este deschisă fereastra de proiectare a raportului Design Report.
acNormal Raportul este listat la imprimantă.acPreview Raportul este deschis în modul previzualizare înainte de
imprimare.
Tabelul 4.4
nume_filtru, clauză_where – aceleaşi semnificaţii ca în cazul metodei
OpenForm.
OpenQuery – deschide o interogare sau execută o interogare acţiune:
DoCmd.OpenQuery
nume_interogare [,mod_vizualizare][,mod_editare]
mod_vizualizare – constantă care stabileşte modul de deschider a interogării.
Valorile acestei constante sunt aceleaşi ca în cazul metodei OpenTable.
mod_editare – constantă cu aceeaşi semnificaşie ca în cazul metodei
OpenTable.
Close – închide un obiect:
DoCmd.Close [tip_obiect, nume_obiect] ,[salvare]
tip_obiect – constantă care indică tipul obiectului care urmează a fi închis.
salvare – constantă care indică dacă eventualele modificări ale obiectului vor
fi salvate înainte de a fi închis.
Quit – are ca efect ieşirea din baza de date şi din Microsoft ACCESS.
DoCmd.Quit [opţiuni]
opţiuni – constantă care indică dacă eventualele obiecte nesalvate vor fi
salvate la ieşirea din ACCESS.
71
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
În cazul de faţă, pentru baza de date de CD-uri, au fost create formulare, care
uşurează deschiderea tabelelor, cererilor de interogare, rapoartelor sau celorlalte
formulare sub diferite vizualizări (design, normal, preview), prin folosirea de butoane
de comandă, care au ataşate secvenţe de cod VBA.
Primul formular creat (figura 4.32), este un formular ce deschide alte trei
formulare, care la rândul lor, deschid tabele, cereri de interogare, respectiv formulare
şi rapoarte. Deasemenea mai conţine şi butoane de ieşire din formular în baza de date,
respectiv de ieşire din Access.
Formularul Tabele conţine butoane care deschid tabelele bazei de date.
Formularul Cereri Interogare, conţine butoane de deschidere a cererilor de ionterogare
efectuate pe baza de date. Formularul RapForm conţine butoane de deschidere a
formularelor şi rapoartelor efectuate pe baza de date.
Pentru a lega secvenţele de cod de butoanele formularelor, în modul Design al
formularului, selectăm butonul respectiv, şi folosind fereastra de dialog Properties
alegem numele butonului (Caption), numele (Name), şi în secţiunea event, la
evenimentl dorit se alege Event Procedure şi se leagă butonul respectiv de secvenţa de
cod (figura 4.31).
Figura 4.31. Fereastra Properties a
Butonului de comandă Iesire in baza de date
72
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.32. Formularul Deschide
Instrucţiunile în cod VBA, corespunzătoare formularului Deschide:
Private Sub DesFormCerInt_Click()
stDocName = "Cereri Interogare"
DoCmd.OpenForm stDocName, acNormal, , stLinkCriteria
End Sub
Private Sub DesFormTab_Click()
stDocName = "Tabele"
DoCmd.OpenForm stDocName, acNormal, , stLinkCriteria
End Sub
Private Sub DesFormRapForm_Click()
stDocName = "RapForm"
DoCmd.OpenForm stDocName, acNormal, , stLinkCriteria
End Sub
73
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Private Sub Iesire_in_baza_de_date_Click()
DoCmd.Close
End Sub
Private Sub Iesire_din_Access_Click()
DoCmd.Quit
End Sub
Figura 4.33. Formularul Tabele
Instrucţiunile în cod VBA, corespunzătoare formularului Tabele:
Private Sub DesTabProd_Click()
DoCmd.OpenTable "Producator", acViewNormal, acEdit
End Sub
Private Sub DesTabFilm_Click()
DoCmd.OpenTable "Film", acViewPreview, acReadOnly
End Sub
Private Sub DesTabReg_Click()
DoCmd.OpenTable "Regizor", acViewDesign, acEdit
74
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
End Sub
Private Sub DesTabCD_Click()
DoCmd.OpenTable "CD", acViewDesign, acEdit
End Sub
Private Sub DesTabTip_Click()
DoCmd.OpenTable "Tip", acViewNormal, acEdit
End Sub
Private Sub DesTabMuz_Click()
DoCmd.OpenTable "Muzica", acViewPreview, acReadOnly
End Sub
Private Sub DesTabArt_Click()
DoCmd.OpenTable "Artist", acViewNormal, acEdit
End Sub
Figura 4.34. Formularul Cereri Interogare
75
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Instrucţiunile în cod VBA, corespunzătoare formularului Cereri Interogare:
Private Sub CerIntFilm_Click()
stDocName = "CDFilm"
DoCmd.OpenQuery stDocName, acViewNormal, acEdit
End Sub
Private Sub CerIntMuzq_Click()
stDocName = "CDMuzica"
DoCmd.OpenQuery stDocName, acViewDesign, acEdit
End Sub
Private Sub CerIntDif_Click()
stDocName = "CDDiferite"
DoCmd.OpenQuery stDocName, acViewDesign, acEdit
End Sub
Private Sub CerIntSoftq_Click()
stDocName = "CDSoft"
DoCmd.OpenQuery stDocName, acViewPreview, acEdit
End Sub
Private Sub CerIntJocq_Click()
stDocName = "CDJoc"
DoCmd.OpenQuery stDocName, acViewNormal, acEdit
End Sub
Private Sub CerIntJocTabela_Click()
stDocName = "JocTabela"
76
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
DoCmd.OpenQuery stDocName, acViewDesign, acEdit
End Sub
Private Sub CerIntJocActualizare_Click()
stDocName = "JocActualizare"
DoCmd.OpenQuery stDocName, acViewDesign, acEdit
End Sub
Private Sub CerIntJocAdaugare_Click()
stDocName = "JocAdaugare"
DoCmd.OpenQuery stDocName, acViewDesign, acEdit
End Sub
Private Sub CerIntJocStergere_Click()
stDocName = "JocStergere"
DoCmd.OpenQuery stDocName, acViewDesign, acEdit
End Sub
Figura 4.35. Formularul RapForm
77
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Instrucţiunile în cod VBA, corespunzătoare formularului RapForm:
Private Sub DesFormCD_Click()
stDocName = "CD"
DoCmd.OpenForm stDocName, acNormal, , stLinkCriteria
End Sub
Private Sub DesFormProd_Click()
stDocName = "Producator"
DoCmd.OpenForm stDocName, acNormal, , stLinkCriteria
End Sub
Private Sub DesFormReg_Click()
stDocName = "Regizor"
DoCmd.OpenForm stDocName, acDesign, , stLinkCriteria
End Sub
Private Sub DesFormSoft_Click()
stDocName = "Soft"
DoCmd.OpenForm stDocName, acPreview, , stLinkCriteria
End Sub
Private Sub VizRapCD_Click()
stDocName = "CD"
DoCmd.OpenReport stDocName, acPreview
End Sub
Private Sub VizRapArt_Click()
stDocName = "Artist"
78
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
DoCmd.OpenReport stDocName, acPreview
End Sub
Private Sub VizRapFilm_Click()
stDocName = "Film"
DoCmd.OpenReport stDocName, acViewDesign
End Sub
Private Sub VizRapProd_Click()
stDocName = "Producator"
DoCmd.OpenReport stDocName, acViewPreview
End Sub
Private Sub DesRapJoc_Click()
stDocName = "Joc"
DoCmd.OpenReport stDocName, acViewDesign
End Sub
79
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
4.5 Rapoarte
Vizualizarea datelor dintr-o bază de date se poate face pe ecran sau la
imprimantă, prin intermediul foilor de date, formularelor şi rapoartelor. Ultima
constituie modalitatea cea mai bună de prezentare a datelor pe hârtie.
Un raport reprezintă o grupare de date prezentate într-un anumit format şi o
structură de pagină în funcţie de necesităţile utilizatorilor şi care servesc diverselor
scopuri de informare sau de fundamentare a deciziilor. Elementele de legătură dintre
rapoarte şi sursa de date o constituie controalele, zonele de text, cadrele şi etichetele.
Crearea unei situaţii finale în ACCESS se poate face cu sau fără ajutorul
instrumentului wizard.
Pentru a crea un raport, procedăm astfel:
1. se activează butoanele Reports şi New care vor afişa o casetă de dialog;
2. se selectează sau se introduce numele tabelei sau cererii de interogare pe
care se va baza;
3. se selectează Report wizard şi se urmează instrucţiunile din casetele de
dialog (ca şi la crearea formularelor); sau
4. se selectează Design view şi se completează situaţia cu controalele
necesere, şi alte elemente dorite de utilizator.
În cazul de faţă, raportul Artist de exemplu, a fost creat folosind Report wizard.
Crearea unui raport folosind Report wizard se face asemănător creării formularelor în
Form wizard.
Prima fereastră a creării unui raport este reprezentată în figura de mai jos:
80
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura4.36. Fereastra New Report
Figura 4.37. Raportul ARTIST
81
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Figura 4.38. Vizualizarea raportului ARTIST
82
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Structura unui raport este ierarhizată astfel: Report Header/Footer
(Antetul/Subsolul raportului), Page Header/Footer (Antetul/Subsolul de pagină) şi
secţiunea Detail (Detalii).
Secţiunea Report Header – cuprinde informaţii care nu se modifică de la o
înregistrare la alta (de exemplu: Nume Artist, Tip Muzică, etc.).
Secţiunea Report Footer – cuprinde informaţii precum data şi ora la care a fost
realizat raportul, numărul de pagini.
Secţiunea Page Header – cuprinde elementele (de regulă grafice) care vor
apare în antetul fiecărei pagini a raportului.
Secţiunea Detail – cuprinde informaţii ce vor fi afişate în cadrul raportului.
Secţiunea Page Footer – cuprinde informaţii ce vor fi afişate la sfârşitul
raportului (numărul paginii, data tipizării).
După crearea unui raport, pentru verificarea lui înainte de a fi tipărit, îl putem
vizualiza parţial sau total (figura 4.38).
Utilizarea instrumentului wizard permite crearea umor rapoarte cu o structură
standard care nu ţine seama în totalitate de cerinţele utilizatorului. Această structură
poate fi ulterior modificată cu ajutorul instrumentelor disponibile (bara de
instrumente). Aceste instrumente au fost definite şi explicate în cadrul subcapitolului
despre formulare. Prin urmare, toate operaţiile de aducere a câmpurilor din lista de
câmpuri a tabelei sau cererii de interogare în zona de lucru în vederea generării de
controale dependente, redimensionarea, deplasarea, modificarea lor se face ca şi la
formulare.
Odată cu definirea unei situaţii finale, toate controalele dependente vor moşteni
proprietăţile câmpurilor din tabele sau cererea de interogare pe care se bazează.
Înregistrarea şi închiderea unui raport se face ca oricare alt fişier. Rezultatul unui
raport poate fi tipărit sau salvat într-un fişier, în vederea păstrării. Înainte de tipăriri,
este necesară definirea parametrului de orientare a paginii.
83
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
4.6 Comenzi macro
În cadrul unei aplicaţii în ACCESS, o importanţă deosebită o prezintă
automatizarea acesteia. Prin automatizare înţelegem că pe baza unei acţiuni a
utilizatorului, se determină realizarea uneia sau mai multor operaţii.
Această automatizare a operaţiilor o putem face utilizând comenzile macro,
care reprezintă o formă simplificată a limbajului de programare VBA.
Comenzile macro sunt deosebite prin caracteristica lor unică şi anume, că
permit automatizarea diverselor evenimente fără ca realizatorul aplicaţiei să fie nevoit
să cunoască un limbaj de programare.
În cadrul comenzilor macro pot fi incluse un număr mare de acţiuni a căror
derulare poate fi condiţionată de anumite valori afişate în formulare sau rapoarte.
Microsoft ACCESS oferă un mare număr de tipuri de acţiuni ce pot fi
executate în cadrul unor comenzi macro:
Deschiderea sau închiderea de tabele, cereri de interogare, formulare sau
rapoarte;
Vizualizarea sau tipărirea rapoartelor;
Rularea cererilor de interogare de acţiune;
Apelarea altor comenzi macro;
Efectuarea condiţonată a anumitor acţiuni;
Căutarea anumitor date în tabele;
Deschiderea sau includerea diferitelor meniuri din ACCESS;
Afişarea de mesaje de atenţionare sau chiar sunete de atenţionare;
Ştergerea, redenumirea, copierea sau salvarea diferitelor obiecte ale aplicaţiei;
Comunicarea cu alte produse software (Word, Excel).
Comenzile macro se creează în cadrul ferestrei de proiectare (figura 2.29).
După cum se observă fereastra de proiectare a comenzilor macro are două părţi: lista
de acţiuni cu comentarii şi descrierea fiecărei acţinui din cadrul listei.
84
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
De exemplu, dorim să creăm o comandă macro care prin rulare: să deschidă
formularul Regizor în formatul Form, să deschidă cererea de interogare CDFilm în
format Datasheet şi să ruleze comanda macro Macro CD. Comanda macro Macro CD,
prin rulare realizează următoarele: deschide tabela CD în format Datasheet, şi
deschide raportul CD în format Design. Comanda macro care va realiza toate aceste
lucruri prin rulare, se va numi Macro Reg.
Fereastra de proiectare a comenzii MacroReg va arăta în felul următor:
Figura 4.39. Fereastra de proiectare MacroReg
85
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
CAPITOLUL 5
5. CONCLUZII
Lucrarea de faţă, realizată cu ajutorul programului Microsoft Access,
reprezintă o încercare de a oferi cititorilor, modalitatea în care a fost concepută şi
proiectată, o bază de date care ilustrează o bibliotecă de CD-uri. De aceea, lucrarea
este intitulată sugestiv „Proiectarea bazelor de date relaţionale pentru gestionarea unei
biblioteci de CD-uri, folosind Microsoft Access”.
Lucrarea a fost realizată folosind Microsoft Access 2000 – un instrument
puternic, uşor de utilizat şi care prezintă o interfaţă grafică realizată pentru uşurinţa
folosirii instrumentelor sale şi totodată prietenoasă cu utilizatorul.
Biblioteca de CD-uri, cuprinde CD-uri ce conţin produse soft, jocuri, filme şi
albume muzicale.
Concepută iniţial, baza de date conţinea doar entităţile CD, PRODUCATOR,
TIP, REGIZOR şi ARTIST. În tabela CD erau reţinute toate CD-urile, iar în celelalte
se reţineau informaţii despre producători, tipul unui CD, informaţii despre regizorii
filmelor şi despre artişti – interpreţi ai unui album muzical. Dar, fiind concepută în
acest fel, baza de date era greu de utilizat, iar interogările efectuate pe baza de date
erau greu de realizat, sau nu reţineau informaţiile dorite.
De aceea, a fost utilizată normalizarea, şi loa entităţile deja existente, au fost
adăugate alte două: FILM şi MUZICA. Astfel, în ele sunt stocate CD-urile ce conţin
filme, respectiv muzică, şi prin intermediul lor se face uşor legătura între tabelele CD
şi FILM, respectiv CD şi ARTIST. În acest fel, relaţionarea tabelelor a fost făcută mai
uşor şi mai corect, iar interogările efectuate au avut rezultatul dorit.
Pe baza modelului fizic astfel creat, au fost efectuate: interogări în modul
Design View şi interogări SQL de extragere a datelor dorite, de creare a unei tabele
dintr-o cerere de interogare deja existentă, modificări ale datelor din tabela creată,
adăugarea şi ştergerea de date; crearea de formulare de afişare a datelor şi formulare
86
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
de deschidere a celorlalteaplicaţii realizate în baza de date, utilizând butoane de
comandă, ce folosesc secvenţe de program în VBA; rapoarte sau situaţii finale şi
macrocomenzi.
Documentul aferent bazei de date, prezintă generalităţi despre domeniul
bazelor de date şi despre programul Microsoft Access, iar modul în care a fost creată
baza de date şi aplicaţiile aferente au fost explicate pe rând, ca un manual de folosire
al unui program.
Baza de date astfel creată, reprezintă un instrument uşor de folosit pentru
stocarea şi gestionarea dunor CD-uri dintr-o bibliotecă personală, sau spre exemplu în
cadrul unei firme. Baza de date poate fi modificată pentru a deveni un instrument de
stocare a datelor într-un magazin de închirieri de CD-uri.
În concluzie, crearea unor baze de date folosind Microsoft Access este uşor de
realizat datorită interfeţei uşor de folosit, iar crearea de aplicaţii pe baza de date se
face foarte facil, datorită instrumentelor wizard care uşurează munca utilizatorilor.
87
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
GLOSAR
Append Query – cerere de interogare pentru adăugarea de date într-o tabelă.
Combo Box – casetă combinată – formată dintr-o casetă de text editabilă, în
care putem introduce o valoare şi o listă din care putem alege o valoare dintr-un set.
Command Button – buton de comandă – atunci când se execută clic pe el,
comută un eveniment care execută o comandă macro Access sau o procedură VBA de
tratare a evenimentelor.
Delete Query – cerere de interogare pentru ştergerea de date dint-o tabelă.
Enforce Referencial Integrity – impune integritate referenţială – în cadrul
aplicaţiei, datele nu pot fi introduse în tabele în orice ordine.
List Box – casetă listă – conţine o listă derulantă de opţiuni din care putem
selecta o valoare.
Make Table Query –cerere de interogare de creare a unei tabele.
Macro – macrocomandă– obiect care conţine o definiţie structurală a uneia sau
mai multor acţiuni pe care ACCESS le realizează ca răspuns la un anumit eveniment.
Modify the form´s design – modificarea formularului în faza Design.
Open the form to view or enter information – deschiderea formularului pentru
vizualizarea sau introducerea datelor.
Query – cerere de interogare – obiect care permite vizualizarea informaţiilor
obţinute prin prelucrarea datelor din una sau mai multe tabele şi/sau alte cereri de
interogare.
SGBD – sistem de gestiune al bazelor de date - sistemul de programare care
permite construirea unor baze de date, introducerea informaţiilor în bazele de date şi
dezvoltarea de aplicaţii.
SQL (Structured Query Linguage) – limbaj structurat pentru interogarea
bazelor de date relaţionale.
88
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
Update Query – cerere de interogare pentru actualizarea datelor.
VBA – Visual Basic for Applications – limbaj orientat pe obiecte şi pe
evenimente. Obiectele Access se caracterizează prin metode şi proprietăţi.
89
Proiectarea bazelor de date relaţionale pentru gestionarea unei biblioteci de CD-uri folosind Microsoft Access
BIBLIOGRAFIE
1. Pavel Năstase, Florin Mihai, Bogdan Bărbulescu, Robert Aurelian Şova,
Luana Cosăcescu, Andrei Stanciu, Liana Covrig, „Baze de Date – Microsoft
Access 2000”, Editura Teora, Bucureşti, 2003;
2. Octavian Bâscă, „Baze de date”, Editura All, Bucureşti, 1997;
3. Prof. dr. Viorica Stanciu, asist. drd. Alexandru Gavrilă, asist. drd. Dragoş
Mangiuc, prep. drd. Bogdan Gheorghe Sahlean, „Proiectarea sistemelor
informatice”, Editura Dual Tech, Bucureşti, 2002;
4. I. Roşca, D. Zaharie, „Proiectarea sistemelor informatice (P. S. I.)” – Note
de curs, A. S. E. Bucureşti, 2001;
5. Cornel Ignat, Carmen Petre, „Iniţiere în Access”, Editura Arves, 2002.
90