8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
1/75
Editura Sfântul Ierarh Nicolae
2010
ISBN 978-606-577-097-3
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
2/75
2
Cuprins
Capitolul 1
Introducere în baze de date........................................................ 31. Modele de baze de date........................................................ 32. Concepte de bază.................................................................. 43. Forme normale ..................................................................... 6
Capitolul 2Proiectarea logică a bazei de date ...........................................10
Capitolul 3Crearea unei baze de date cu Microsoft Access....................18
1. Prezentarea aplicaţiei Microsoft Access ..........................182. Crearea şi introducerea datelor în tabele...........................203. Crear ea interogărilor ..........................................................30
4. Crearea formularelor ..........................................................345. Crearea rapoartelor.............................................................436. Proiectarea unui meniu ......................................................527. Grafice.................................................................................658. Crearea unui help ...............................................................69
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
3/75
3
Capitolul 1
Introducere în baze de date
1. Modele de baze de date
O bază de date reprezintă un set de tabele de date înrudite şi de alte obiecte
de bază de date, cum ar fi un dicţionar de date, organizate ca un grup , dotat cu o
descriere a acestei structuri.1 Un dicţionar explicativ, o carte de telefon sunt baze dedate.
Un model de date este o colecţie integrată de concepte pentru descrierea
datelor, de relaţii între date şi de restricţii asupra datelor, toate organizate logic,
unitar. Modelul este o abstractizare a unui lucru real, o reprezentare schematică a
ceea ce este esenţial şi definitoriu pentru secvenţa realului care ne interesează.
În funcţie de modul de organizare a datelor se cunosc următoarele tipuri de
baze de date :Baze de date relaţionale
Modelul relaţional a fost propus pentru prima dată de E.F.Codd în 1970.
Acesta a utilizat teoria mulţimilor ca fundament logic de organizare a datelor. 2 În
cadrul bazelor de date relaţionale datele sunt organizate sub forma unor tablouri
bidimensionale de date, numite relaţii, în care liniile reprezintă înregistrările
individuale (tuplele) iar coloanele reprezintă atributele. Conceptul matematic de
relaţie este reprezentat printr -o tabelă. Fiecare relaţie are un nume căruia îi
corespunde o coloană din tabel. Numele coloanei arată semnificaţia valorilor din
coloana respectivă .
Baze de date ierarhice
1 “Totul despre Microsoft Access 2000” – Roger Jennings, pagina 10702 “Structuri de date “ – Lector univ.dr. Paul Iacob
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
4/75
4
Acest model de structurare a datelor a fost primul dezvoltat în ordine
istorică. Reprezentarea modelului ierarhic este o arborescenţă grafică, două noţiuni
f undamentale ale acestui model sunt noţiunile de părinte şi relaţia părinte-copil.
Baze de date în reţea
Modelul reţea conţine înregistrări, date şi relaţii ‘ unu la mai mulţi ‘ 3
între înregistrări. Înregistrarea din partea 1 se va numi proprietar, iar înregistrarea din
partea ‘mai multe’ o vom numi membru. În modelul reţea sunt două structuri :
- înregistrare (record): colecţie de date legate logic între ele
- legătură (set): relaţie de tipul unu la mai multe sau unu la unu
O reţea de date simplă se bazează doar pe legături de tipul unu la maimulte în timp ce o reţea de date complexă conţine relaţii de tipul multe la mai multe.
O reţea de date complexă nu poate fi implementată direct, de aceea trebuie mai întâi
transformată într -o reţea de date simplă.
Dintre toate modelele prezentate mai sus cel mai utilizat este modelul de
baze de date relaţional. Modelul E-R (Entity- Relationship) a fost dezvoltat de Chen
în 1976. Modelul E-R constituie un mod de reprezentare a bazelor de date relaţionale
şi este foarte util în proiectarea acestora.
2. Concepte de bază
Conceptele de baza ale modelului E-R sunt : tip de entitate, tip de
relaţie, atribute, chei.
O entitate este un obiect fizic sau un concept ce poate fi identificat în
mod unic. De exemplu : Tipografia Corint din oraşul Iaşi, judeţul Iaşi, strada Mihail
Sadoveanu, numărul 125, este o entitate deoarece identifică în mod unic această
tipografie , nu poate exista o altă tipografie cu exact aceeaşi descriere, aceeaşi adresă.
Un tip de entitate este un set de entităţi de acelaşi tip . De exemplu tipul de entitate
Elev va conţine entităţile :
- Baciu Ramona, nr_matricol 256, Şcoala nr. 2, Bacău
3 Vezi pagina
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
5/75
5
- Dima Anca, nr_matricol 129, Şcoala nr.2, Bacău
Entităţile se mai numesc instanţe, concretizări ale tipului de entitate.
Un tip de entitate se identifică printr -un nume şi o lista de proprietăţinumite atribute. De exemplu numele tipului de entitate prezentat mai sus este Elev,
iar atributele care caracterizează tipul de entitate sunt: nume_elev, nr_matricol,
şcoala, localitatea.
Atributele unei entităţi conţin valori care descriu fiecare entitate şi care
duc la identificarea în mod unic a fiecărei entităţi. Domeniul atributelor reprezintă
mulţimea din care atributele pot lua valori . De exemplu ‘nume_elev’ tre buie să fie
un şir de caractere, ‘nr_matricol’ trebuie să fie un număr natural pozitiv.Atributele pot fi :
simple: cu o singură componentă ( ex : localitatea);
compuse: care conţin mai multe componente, fiecare cu o existenţă independentă
(ex: data naşterii poate fi descompusă în zi, lună, an);
derivate : a căror valoare se poate calcula din alte atribute (ex: cost_total se poate
calcula pe baza atributelor ‘cantitate’ şi ‘preţ’);
Mulţimea atributelor asociate unui tip de entitate formeaza o supercheie
dacă poate duce la identificarea unică a oricărei entităţi din tipul de entitate care o
contine. Numim cheie candidat orice supercheie care conţine un număr minim de
atribute. Cheia primară va fi aleasă cea mai scurtă cheie dintre cheile candidat.4
Numim Tip de relaţie o asociere între tipuri de entităţi iar relaţie o
asociere între entităţi. Relaţiile care se stabilesc în cadrul unei baze de date trebuie să
se conformeze unor restricţii de cardinalitate şi de participare.
Cardinalitatea este dată de numărul de relaţii posibile pentru o entitate,
sau numărul de entităţi la care aceasta poate fi asociată. Cardinalitatea poate fi detipul unu-la-unu (1:1), unu-la-mai-multe (1:M), mai-multe-la-mai-multe (M:N).
Relaţia unu-la-unu
În acest tip de relaţie o entitate este legată de cel mult o entitate din alt
tip de entitate . De exemplu între tipul de entitate Diriginte şi tipul de entitate Clasă se
4 “Baze de date” curs pentru învăţământ la distanţă, lector univ.dr. Paul Iacob
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
6/75
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
7/75
7
12 Yves Rocher Bacău Oituz 14 11234 demachiant
13452 parfum Iria
14 Oriflame Arad Eroilor 24 07998 lac de unghii231009 cremă de corp
Pentru a elimina repetiţiile putem acţiona în două moduri :
a) Completăm câmpurile prin adăugarea de înregistrări
cod_producător den_producator localitatea strada nr cod_produs
den_produs
12 Yves Rocher Bacău Oituz 14 11234 demachiant
12 Yves Rocher Bacău Oituz 14 13452 parfum Iria
14 Oriflame Arad Eroilor 24 07998 lac de unghii
14 Oriflame Arad Eroilor 24 31009 cremă de corp
b) Valorile grupurilor repetitive le copiem într-o nouă relaţie împreună cu
cheia primară din tabelul iniţial . Vom obţine
cod_producător den_producator localitatea strada nr
12 Yves Rocher Bacău Oituz 14
14 Oriflame Arad Eroilor 24
cod_producător cod_produs den_produs
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
8/75
8
12 11234 demachiant
12 13452 parfum Iria
14 07998 lac de unghii
14 231009 cremă de corp
Tabele obţinute la punctele a şi b sunt in forma normală unu.
Forma Normală Doi (2FN)
Această formă normală se obţine eliminând dependenţele funcţionale Spunem că un atribut B aparţinând unei relaţii depinde funcţional de un
atribut A al aceleiaşi relaţii dacă două entităţi care au aceeasi valoare pentr u
atributul A au o valoare identică şi pentru atributul B.
Exemplu : Între atributele cod_producător şi den-producător există o
dependenţă funcţională deoarece acelaşi cod de furnizori presupune aceeaşi
denumire a furnizorului. Este evident deoarece două firme diferite nu pot avea
acelaşi cod.
Eliminăm în cazul nostru dependenţele funcţionale cod_producător /
den_producător şi cod_produs / den_produs separându-le în relaţii noi :
cod_producător localitatea strada nr
12 Bacău Oituz 14
14 Arad Eroilor 24
cod_producător den_producator
12 Yves Rocher
13 Oriflame
cod_produs den_produs
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
9/75
9
11234 demachiant
13452 parfum Iria
07998 lac de unghii
231009 cremă de corp
cod_producător cod_produs
12 11234
12 13452
14 0799814 231009
Forma Normală Trei (3NF)
Pentru a aduce relaţiile în forma normală trei trebuie să eliminăm
dependenţele tranzitive. Dependenţe tranzitive se întâlnesc în cazul în care între
atributele a, b şi c aparţinând unei relaţii există dependenţe astfel : b depinde de a şi c
depinde de b, adică c depinde de a .
O relaţie este în forma normală trei dacă se află deja în forma normală
doi şi nici un atribut care nu aparţine cheii primare nu este tranzitiv dependent de
cheia primară.6 În cazul în care avem dependenţe tranzitive creăm relaţii noi cu
atributele tranzitiv dependente de cheia primară , relaţii care vor conţine şi această
cheie primară .
6 “Baze de date” – curs pentru învăţamânt la distanţă, lector univ. dr. Paul Iacob
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
10/75
10
Capitolul 2
Proiectarea logică a bazei de date
Ne propunem să creăm o bază de date care să optimizeze exploatarea
fluxurilor de informaţii dintr -o şcoală generală . Într-o astfel de şcoală funcţionează
două cicluri : ciclul primar (clasele I-IV) şi ciclul gimnazial (clasele V-VIII).
Disciplinele care se studiază la fiecare clasă sunt prevazute în planul de învăţământ,
la fel şi numărul minim sau maxim de ore pentru fiecare disciplină.
Baza de date va conţine următoarele categorii de informaţii :
Date personale ale elevilor
Disciplinele studiate de fiecare clasă şi profesorii care predau
disciplinele
Notele obţinute de elevi la diverse discipline
Observatii psihologice şi caracterizări ale elevilor
Date referitoare la profesori : date personale, vechime, grad didactic,
ş.a.
Baza de date va trebui să răspundă următoarelor cerinţe :
Să permită introducerea notelor in catalog pentru fiecare elev, deasemenea
vizualizarea notelor deja înregistrate
Să afişeze rapoarte cu datele elevilor, date statistice referitoare la notele
obţinute
Să permită studierea de către psiholog, diriginte, părinţi a fişelor de observaţii
individuale
Să afişeze rapoarte despre datele personale ale profesorilor precum şi date
referitoare la gradul didactic obţinut, vechime în învăţământ
Să afişeze rapoarte în care sunt calculate automat mediile elevilor la fiecare
disciplină
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
11/75
11
Pasul 1- Identificarea tipurilor de entităţi
Am identificat următoarele tipuri de entităţi :
Elevi
Discipline
Note
Fişe de observaţie
Profesori
Pasul 2 – Identificarea tipurilor de relaţii
Tipurile de relaţie se reprezinta prin verbe ale relaţiilor după cum
reiese din tabelul următor :
Tip de entitate Tip de relaţie Tip de entitate
Elevi studiază Discipline
Discipline predate de Profesori
Note obţinute de Elevi
Fişe de observaţie caracterizează pe Elevi
Analizăm cardinalitatea relaţiilor care poate fi :
- 1:1 – o entitate din primul tip de entitate este legată de cel mult o
entitate din al doilea tip de entitate implicat
- 1 :M – o entitate a primului tip este legată de 0,1 sau mai multe entităti
din al doilea tip de entitate ; relaţia inversă este de 1 :1
- N :M - relaţia inversă este de 1 :M ; deci dacă şi relaţia directă si cea
inversa este de tipul 1 :M atunci relaţia este de tipul ‘mai multe la maimulte’
Este necesar să stabilim cardinalitaea relaţiilor deoarece trebuie să
descompunem relaţiile N:M in două relaţii 1:M prin adăugarea unui nou tip
de entitate.
a) – O disciplină este predată de mai mulţi profesori ?
- Nu.
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
12/75
12
- Un profesor predă mai multe discipline ?
- Da. (cardinalitate 1 :M, reformulăm Profesori predau Discipline)
b) - Un elev obţine mai multe note ?
- Da
- O notă este obţinută de mai mulţi elevi ?
- Nu. (cardinalitate 1 :M)
c) -Fişa de observaţie caracterizează mai mulţi elevi ?
- Nu.- Un elev este caracterizat de mai multe fişe ?
- Nu. (cardinalitate 1 :1)
d) – Un elev studiază mai multe discipline ?
- Da.
- O disciplină este studiată de mai mulţi elevi ?
- Da. (cardinalitate N :M)
Avem o relaţie N :M pe care o descompunem în relaţii 1 :M introducând alt
tip de entitate : Profesor/materie
Tip de entitate Tip de relaţie Tip de entitate Cardinalitatea
Profesor/materie educă Elevi 1 :M
Profesori specializaţi pe Profesori/materie 1 :M
Discipline este studiată de Elevi 1 :M
Profesori predau Discipline 1 :M
Fişa de observaţie caracterizează pe Elevi 1 :1
Elevi obţin Note 1 :M
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
13/75
13
Pasul 3- Identificarea şi asocierea atributelor la tipurile de entităţi
Amintim că atributele sunt informaţii care caracterizeaza entităţile.
Tip de entitate Atribute Tip de date Regul i
Elevi -cod_elev
-nume_elev
-prenume_elev
- clasa
-data_naşterii
-CNP-strada
-nr
-localitatea
-prenumele_tatălui
-prenumele_mamei
-telefon
Intreg
Caractere
Caractere
10
caractere
DataCaractere
Caractere
Intreg
Caractere
Caractere
Caractere
caractere
- cheie
primară
Profesori -cod_profesor
-numeP
-prenumeP
-telefonP
- grad_didactic
-vechime
Intreg
Caractere
Caractere
caractere
caractere
intreg
-cheie primară
Profesor/materie -nr_curs
-cod_materie
-cod_profesor
-ore_saptamana
Intreg
Intreg
intreg
intreg
-cheie primară
Discipline -cod_materie
-den_materie
Intreg
caractere
-cheie primară
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
14/75
14
Note -cod_materie
-cod_elev
-data
-nota
-semestrul
Intreg
Intreg
Data
Intreg
caractere
-cheie primară
Fişa de
observaţie
-nr_înregistrare
-cod_elev
-caracterizare
Intreg
Intreg
caractere
-cheie primară
Diagrama ER (Entitate Relaţie)
După ce am stabilit entităţile şi atributele avem nevoie de un instrument grafic
care să permită o vedere sintetică asupra bazei de date . Chen a inventata diagrama E-
R 7 . Vom reprezenta entitatea sub forma unui dreptunghi In care sunt listate
atributele şi în care este evidenţiată cheia cu semnul ‘*’.
Relaţiile vor fi reprezentate prin linii între entităţi iar tipurile relaţiilor vor f i
descrise utilizănd simbolurile :
││ pentru o singură instanţă
0│pentru 0 sau una
>│pentru una sau mai multe
>0 pentru 0, una sau mai multe
În cazul nostrum diagrama E-R arată astfel :
7 “Iniţiere în baze de date “ – Paul Iacob
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
15/75
15
Între tabele trebuie să existe legături . Acest lucru se relizează pe baza
cheii străine . De exemplu în tabelul Fise de observaţii avem atributul
cod_elev. Acest atribut cu valoare de cheie străină leagă tabelul mai sus
amintit de tabelul Elevi în care atributul cu acelaşi nume (cod_elev) este cheie
primară . Pentru ca baza de date să fie corectă trebuie respectate
următoarele restricţii :
Cheia primar ă a entităţilor nu poate avea valori nule (integritatea
entităţilor)
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
16/75
16
Dacă cheia străină dintipul de entitate ‘fiu’ conţine o valoare ea trebuie
neapărat să se regăsească şi în tipul de entitate ‘părinte’(integritatea
referinţelor)
Domeniile atributelor , stabilite deja, trebuie să fie respectate (restricţia de
domeniu)
Valorile cheii primare sunt unice (nu putem avea doi elevi cărora să le
asociem acelaşi cod)
Pasul 4- Crear ea de relaţii peste modelul logic local
Analizând tipurile de entitate le-am clasificat astefel:
Tip tare de entitate :
Elevi
Disciplina
Profesori
Tip slab de entitate :o Noteo Profesor/materieo Fişa de observaţie
Elevi (cod_elev,nume_elev, prenume_elev,clasa, data_naşterii,CNP, strada, nr, localitatea, prenumele_tatălui, prenumele_mamei,telefon)Cheie primară : cod_elev
Profesori (cod_profesor, numeP, prenumeP, telefonP,
grad_didactic, vechime)Cheie primară : cod_profesor
Profesor/materie (nr_curs, cod_materie, cod_profesor,ore_saptamână)
Cheie primară : nr_cursCheie străină : cod_materie, cod_profesor
Disciplina (cod_materie, de_materie)Cheie primară : cod_materie
Note (cod_materie, cod_elev, data, nota, semestrul) Cheia primară : cod_materie, cod_elev, data Cheie străină : cod_materie, cod_elev
Fişa de observaţie (nr_înregistrare, cod_elev, caracterizare)Cheie primară : nr_înregistrareCheie străină : cod_elev
După ce am stabilit clar tipurile de entităţi , relaţiile, atributele,
domeniul acestora şi întreaga structură este logică , răspunzând cerinţelor
pentru care a fost concepută , trecem la a doua etapă, cea a proiectării fizice,
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
17/75
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
18/75
18
Capitolul 3
Crearea unei baze de date cu Microsoft Access
Baza de date, acea colecţie de date aflate în interdependenţă logică, este
implementată cu ajutorul unui SGBD, un software care permite definirea, crearea şi
întreţinerea bazei de date. Astfel de softuri specializate sunt de exemplu Paradox, dBase
IV de la Borland, FoxPro, Access de la Microsoft.
În continuare ne vom referi la acest ultim program , probabil cel mai utilizat în
domeniu.
1. Prezentarea aplicaţiei Microsoft Access Din All Programs > Microsoft Office deschidem Microsoft Access. În fereastra
următoare , alegem din meniul File opţiunea New :
Ecranul 1
Se va deschide o fereastră din care putem alege Blank database, Blank data access
page, Project using existing data, Project using new data, From exesting file. Pentru
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
19/75
19
crearea unei noi baze de date alegem prima variantă. Imediat se deschide fereastra în
care putem alege numele bazei de date şi directorul unde vrem să o salvăm.
Ecranul 2
Apăsăm butonul Create şi ajungem în mediul de lucru (Ecranul 3). În partea stângă a
ferestrei active avem afişate tipuri de obiecte : Tables (Tabele), Queries (Interogări),
Forms (Formulare), Reports (Rapoarte), Pages (Pagini), Macros (Macrocomenzi) şi
Module.
Tabelele înregistrează datele într -un format pe linii şi coloane ca o foaie decalcul tabelar.
Interogările afişeaza datele selectate din cel mult 16 tabele.
Formularele afişează datele incluse în tabele sau interogări, se pot adăuga
ilustraţii şi grafice, sau alte for mulare incorporate (subformulare).
Rapoartele permit tipărirea datelor sau vizualizarea lor înaintea tipăririi în
aproape orice format
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
20/75
20
Macrocomenzile automatizează operaţiile executate în Access .8 Reprezintă
denumiri ale unei serii de acţiuni executate succesiv, proceduri predefinite.
Modulele conţin coduri VBA pe care le scriem pentru a crea funcţii personalizate pe care le folosim în formulare, tabele, interogări.
Paginile sunt pagini de tip DAP (Data Access Pages) cu ajutorul cărora putem
să afişăm şi să edităm datele introduce în Access pentru publicarea ca pagini Web
într-un server intranet.
Ecranul 3
2. Crearea şi introducerea datelor în tabele
În ecranul 3 , este activă fereastra Tabele . De aici putem crea tabele înmodurile Design View, by using wizard, by entering data. Exemplificăm primavariantă.
8 “Totul despre Microsoft Access 2000”- Roger Jennings, Editura Teora, 1999, pagina 100
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
21/75
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
22/75
22
- Single – numere în virgulă mobilă cu până la şapte zecimale
- Double – numere în virgulă mobilă cu până la 15 zecimale , folosit pentru
calcule ce solicită o precizie ridicată
Date/Time – o dată calendaristică sau o oră în unul din cele şapte
subtipuri :
- General Date – stochează data şi ora (04/12/1992 05:34:00 PM)
- Short Date – se reţine doar data de tipul 4/12/1993
- Long Date – de tipul Saturday, April 29, 2001
- Medium Date – de tipul 3-Apr-93
- Long Time – oră de forma 5:23:40 PM - Medium Time- 5:23 PM
- Short Time - 17:35
Currency – un număr cu două zecimale care foloseşte virgula ca
separator între ordinele de mărime şi parantezele pentru încadrarea
valorilor negative, cu următoar ele subtipuri :
- General number – afişează numerele in forma în care au fost introduce
- Currency – foloseşte virgule ca separator între ordinele de mărime şi afişeaza
cel puţin două zecimale
- Fixed – afişează cel puţin o cifră a unităţilor şi un număr definit de zecimale
- Standard – foloseşte virgule ca separator al ordinelor de mărime şi cel puţin
două zecimale
- Percent – înmulţeşte valoarea introdusă cu 100 şi adaugă semnul %
- Scientific – foloseşte notaţia ştiinţifică pentru exprimarea numerelor (3.46E+3
adică 346.000)
Autonumber – un număr întreg care este incrementat în mod automat pe măsură ce sunt introduce datele în tabele
Yes/No – admite date de tip Boolean pentru a stoca valori simple
precum Da/Nu, Adevărat/Fals, On/Off
OLE Object – un alt tip de date precum imagine, sunet
Hyperlink – o referinţă la un document extern care, atunci când esteselectată deschide documentul respective în modul de afişare corespunzător
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
23/75
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
24/75
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
25/75
25
S-ar putea ca în momentul în care vom crea formularele să constatăm că ar fi
mai uşor dacă am alege numele elevilor dintr-o listă , în loc să scriem numele elevilor
de fiecare dată când vrem să înregistrăm o notă de exemplu. Vom proceda astfel :
Deschidem tabelul elevi . La caracteristicile câmpului ‘cod_elev’ , trecem
de la General la Lookup (ecranul 9). De la (Control afişare),
alegem ‘Combo Box’.
Ecranul 9
La apăsăm butonul cu trei puncte din capăt si se va
deschide ecranul 10 . De acolo selectăm tabelul elevi si apăsăm butonul Add apoi Close
.
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
26/75
26
Ecranul 10
Alegem câmpurile ‘cod_elev’, ‘nume_elev’ şi ‘prenume_elev’.
Ecranul 11
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
27/75
27
Salvăm la închidere şi vom reveni la următorul ecran:Ecranul 12
La vom scrie 1 (coloana legată) iar la vom
scrie 3 (număr de coloane afişate în combo box) .Salvăm si închidem .
După crearea tabelelor trebuie să stabilim legăturile dintre acestea. Apăsăm
butonul Relationship . Din fereastra care se deschide selectăm succesiv tabelele
apăsând de fiecare dată pe butonul Add (Ecranul 13) :
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
28/75
28
Ecranul 13
După ce toate tabelele se află în planul second închidem fereastra apăsând
butonul Close . Selectăm cu mouse-ul atributul cheie primară dintr -o entitate şi prin
procedeul drag and drop tragem şi ‘descărcăm’ peste atributul cu acelaşi nume din
tabelul cu care dorim să realizăm legătura.
Din fereastra care se va deschide selectăm cele trei opţiuni aşa cum se observă
în ecranul 14 :
- Enforce Referential Integrity
- Cascade Update Related records
- Cascade Delete Related records
A poi apăsăm butonul Create şi legatura a fost creată.
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
29/75
29
Ecranul 14
Când toate legăturile au fost create panoul Relationship va arăta astfel :
Ecranul 15
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
30/75
30
3. Crear ea interogărilor
O cerinţă fundamentală pentru un mediu de creare a bazelor de date estecapacitatea de sortare şi filtrare rapidă a înregistrărilor în aşa fel încât să fie afişate doar
cele dorite de utilizator la un moment dat şi în ordinea dorită.
Pentru aceasta vom crea nişte interogări, cereri asupra bazei de date. Aceste
interogări pot fi create in modul Design View sau ‘by using wisard’. Vom exemplifica
prima variantă.
Din Queries/Interogări alegem Create query in Design view , aşa cum se
observă în ecranul 16.
Ecranul 16
Se va deschide fereastra prezentată în ecranul 17 . De aici trebuie să selectam
tabelul sau tabelele din care vrem să selectăm înregistrările.
Să creăm o interogare pentru a selecta dintre toţi elevii doar pe aceia care sunt în
clasa I A. Selectăm tabelul elevi , apăsăm butonul Add şi apoi Close. Alegem dintr-o
listă de tip combo box câmpurile de care avem nevoie în interogare , de pe rândul
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
31/75
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
32/75
32
În dreptul câmpului clasa , pe linia Criteria, vom preciza =”I A” (ecranul 19)
iar dacă dorim să alegem noi clasa in momentul în care deschidem interogarea vom
scrie pe rândul Criteria , în dreptul câmpului clasa =[Alege clasa] . (ecranul 19)
Când vom deschide interogarea se vor afişa doar datele elevilor din clasa I A :
Ecranul 20
Pentru a afla notele unui anumit elev din clasa I A la toate disciplinele vom creaurmatoarea interogare utilizând tabelele Note , Elevi, Discipline si interogarea clasa I
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
33/75
33
A. Selectam câmpurile ‘cod_elev’, ‘nume_elev’, ‘prenume_elev’, ‘cod_materie’,‘den_materie’, ‘data’, ‘nota’ , aşa com se observa in ecranul 22.
În dreptul câmpului ‘nume_elev’, la Criteria vom scrie =[Nume :] iar la‘prenume_elev’ vom scrie =[Prenume:] . Salvam interogarea iar când o vom deschideva apărea caseta :
Scriem numele elevului (de exemplu : stoica) si apasam tasta OK. Înurmătoarea caseta va trebui să alegem prenumele elevului :
Apăsăm din nou tasta OK si vom putea vedea notele elevului stoica radu
Ecranul 21
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
34/75
34
Ecranul 22
4. Crearea formularelor
Un formular poate fi creat pe baza unui tabel sau al unei interog ări. Este mai
atractiv din perspectivă grafică . Înainte de a începe crearea unui formular trebuie să
ştim cu exactitate ce probleme trebuie să rezolve formularul şi cum dorim să fie afişate
datele în formular.
Putem să creăm formulare în Design View sau cu ajutorul Wizard-ului.
Ca să creăm un formular ‘by using wizard’ intrăm la formulare (Forms) şi
alegem . Se va deschide fereastra prezentată în ecranul
23 :
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
35/75
35
Ecranul 23
De la Tables/Queries alegem tabelul sau interogarea pe baza căreia dorim săcreăm formularul apoi de la selectăm câmpurile dorite pe randapăsând butonul cu semnul ‘>’ sau selectăm toate câmpurile apăsând butonul cusemnul ‘>>’. După ce am selectat câmpurile apăsăm butonul Next.
În exemplul nostru vom crea un formular simplu pe baza tabelului discipline.În fereastra următoare alegem cum să fie afişate datele : în coloane, sub forma unuitabel, etc:
Ecranul 24
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
36/75
36
După selectare apăsăm Next şi apare fereastra prezentată in ecranul 25 deunde vom alege stilul formularului :
Ecranul 25
Apăsăm din nou Next şi se vom pute aici să stabilim numele formularului (în partea desus a ecranului 26), în exemplul nostru ‘discipline’.
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
37/75
37
Ecranul 26
Apăsăm Finish şi se deschide formularul creat :
Ecranul 27
Să exemplificăm crearea formularului catalog. Vom crea mai întâi interogareaurmătoare :
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
38/75
38
Ecranul 28
Am selectat din tabelele elevi, note, discipline câmpurile : id_notare,
cod_materie, cod_elev, nume_elev, prenume_elev, data, nota, semestrul , clasa. Amales ca numele elevilor să fie ordonate alfabetic (Ascending la Sort) iar in dreptul
câmpului ‘clasa’ , la Criteria am scris =[Alege clasa] . Salvam interogarea cu
denumirea catalog.
De la panoul cu formulare alegem Create form by using wizard.
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
39/75
39
Ecranul 29
Alegem stilul formularului , apăsăm Next, apoi salvăm formularul cu numelenote .
Ecranul 30
După crearea formularului note vom crea un alt formular “in Design view”.
După alegerea opţiunii < Create form in Design view> se va deschide fereastra
prezentată în ecranul 31, simultan cu o casetă de instrumente (Toolbox). De aici
selectăm butonul pentru inserarea unui subformular, buton evidenţiat în imagine, şi cu
mouse-ul vom selecta zona în care vom aşeza subformularul. Imediat după eliberarea
mouse-ului vom alege care este sursa de date a subformularului.
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
40/75
40
Subformularul poate fi selectat dintre formularele deja create sau poate fi creat pe loc
pe baza unui tabel sau a unei interogări. Noi vom utiliza formularul note creat anterior.
Ecranul 31
Selectăm apoi din caseta de instrumente un obiect de tip Combo Box(veziecranul 32) şi îl aşezăm pe formular tot cu mouse-ul, ţinând click stânga apăsat pentru aselecta zona în care va fi amplasat combobox-ul. În momentul următor vom fi întrebaţice date va conţine obiectul şi vom selecta tabelul discipline şi câmpurile şi .
Vom fi puşi să alegem ce camp va face legătura între datele din formular şidatele din subformular . Vom alege una din posibilităţile afişate în cazul nostru <cod_materie>. Opţiunile sunt evidenţiate cu negru în ecranul 33.
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
41/75
41
Ecranul 32
Ecranul 33
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
42/75
42
Salvăm formularul şi subformularul cu denumirea catalog ş i respectiv noteSubformular (Ecranul 34) :
Ecranul 34
Formularul catalog va arăta astfel :
Ecranul 35
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
43/75
43
5. Crearea rapoartelor
Rapoartele sunt destinate tipăririi şi valorile din raport nu se pot modifica. Înfuncţie de cantitatea de date afişată rapoartele se pot întinde pe mai multe pagini . Sunt
instrumente foarte utile pentru orice utilizator al bazei de date deoarece permit gruparea
datelor şi calcularea automată a unor totaluri, medii , ş.a.
Cea mai simplă modalitate de a crea un raport este cu ajutorul wizard-ului.
Vom demonstra crearea raportului care să afişeze notele unui anumit elev.
Creăm mai întâi interogarea ‘note elev I B’ selectând tabelele şi câmpurile aşa cum se
observă în ecranul 36 :
Ecranul 36
În dreptul câmpurilor şi , la Criteria vom scrie :
[nume] şi respective [prenume]. Aceasta înseamnă că, atunci când vom deschide
interogarea, va trebui să scriem în caseta care apare numele elevului :
Apăsăm OK şi şi în caseta următoare scriem prenumele :
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
44/75
44
Apăsăm din nou OK şi vor fi afişate doar notele elevului Andrei Eduard :
Ecranul 37
Ca să creăm un raport după interogarea prezentată mai sus mergem la Report/
Rapoarte, şi alegem . Imediat în fereastra următoare va trebui să alegem tabelul sau interogarea dupa care dorim să creăm raportul. Vomalege Query: note elev I B aşa cum se observă în ecranul 38 :
Ecranul 38
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
45/75
45
De la Available Fields/ Câmpuri disponibile alegem câmpurile ,
, , , şi semestrul (ecranul 39)
Ecranul 39
Apăsăm Next şi vom stabili prin prisma cărui tabel dorim să vedem
datele . În ecranul 40 datele vor fi afişate ‘by elevi’.
Ecranul 40
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
46/75
46
Deosebit de importantă este posibilitatea care ni se oferă la pasul următor de
a adăuga niveluri de grupare. Aceasta deoarece suntem conştienţi că vrem ca raportul
nu doar să afişeze notele ci şi să calculeze mediile pe semestre şi la fiecare disciplină .De aceea am adăugat nivelurile de grupare cu click pe câmpurile din partea stângă:
Ecranul 41
Apăsăm Next şi în următoarea fereastră (ecranul 42) vom putea alege ca
datele de la cel mai jos nivel de grupare să fie afişate Ascending – crescător, alfabetic,sau Descending.
Ecranul 42
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
47/75
47
Apăsam butonul Summary options şi în fereastra următoare bifăm
căsuţa din dreptul opţiunii Avg (Average/ media aritmetică). Celelalte opţiuni sunt Sum
(calculează suma notelor pentru fiecare nivel de grupare a datelor), Min (afişeazăvaloarea minimă) sau Max.
Ecranul 43
Apăsăm Ok apoi Next . În ecranul 44 vom alege cum sa fie aşezatedatele pe pagină şi cum să fie orientată pagina (Portrait sau Landscape) :
Ecranul 44
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
48/75
48
Vom stabili apoi stilul raportului după care vom salva raportul cu titlul note elev I B.Aceşti paşi sunt prezentaţi în ecranele 45 şi 46.
Ecranul 45
Ecranul 46
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
49/75
49
Când vom deschide raportul va trebui să scriem, ca şi la interogarea pe baza
căreia a fost creat numele şi prenumele elevului , apăsând de fiecare dată OK:
Se va deschide raportul în mod Print Preview9 :
Ecranul 47
9 Modul de afişare va fi explicat la subcapitolul despre macrocomenzi
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
50/75
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
51/75
51
Ecranul 49
Ecranul 50
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
52/75
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
53/75
53
Ecranul 52
Ecranul 53
Cu click dreapta pe etichetă , intrăm în Properties de unde vom seta mărimealiterelor, stilul, etc.De la Font/Fore Color alegem culoarea literelor, de la Special Effect putem să umbrim eticheta (vezi ecranul 56).
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
54/75
54
Ecranul 54
Cu click dreapta pe formular, -> Fill/Back Color şi putem alege culoarea defond .
Ecranul 55
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
55/75
55
În acelaşi mod aducem pe formular un buton. Vom seta textul sau imaginea de pe
buton precum şi atiunea care va fi executată de acesta.Cu click dreapta intrăm în
Properties (ecranul 56):
Ecranul 56La Caption vom scrie textul (în cazul în care dorim acest lucru) sau putem
alege o imagine apăsând butonul din dreptul proprietăţii Picture.
Ecranul 57
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
56/75
56
Se va deschide fereastra următoare din care putem alege imaginea care va
apărea pe buton. Dacă dorim o altă imagine decât cele prezentate apăsăm butonul
Browse şi putem găsi în alt fişier imaginea dorită. După ce am selectat imagineaapăsăm OK.
Ecranul 58
Pentru a seta ce acţiune să execute butonul la click, dublu click sauenter putem să definim o macrocomandă sau să scriem instrucţiunea utilizând codul
VBA. Intrăm la Event (ecranul 59).
Ecranul 59
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
57/75
57
Apăsăm butonul şi alegem din fereastra următoare Macro Builder (ecranul
60) după care apăsăm butonul OK.
Ecranul 60
Chiar de la început vom fi întrebaţi sub ce denumire salvăm acest Macro.
Scriem denumirea în casetă şi apăsăm OK.
Ecranul 61
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
58/75
58
Din caseta de opţiuni din colţul stânga sus (Ecranul 62) alegem acţiunea
dorită (în cazul nostru OpenForm/Deschidere formular).
Ecranul 62
De la Form Name alegem ce formulam dorim să fie deschis:
Ecranul 63
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
59/75
59
De la Data Mode putem selecta : Add-> se permite doar adăugarea datelor Edit -
> se permite adăugarea, modificarea, ştergerea datelor
Read Only -> doar în citire
Ecranul 64Pentru definirea unui macro care să deschidă un raport, paşii sunt aceiaşi, însă la
View putem alege una din opţiunile : Print -> la deschiderea raportului se porneşte automat printarea Design -> raportul se deschide în modul Design
Print Preview -> raportul se deschide pentru a fi vizualizat înaintea imprimării
Ecranul 65
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
60/75
60
Dacă vrem să scriem cod VBA , în fereastra prezentată în ecranul 60 alegem CodeBuilder şi se va deschide fereastra :
Ecranul 66
După cum se poate observa în ecranul de mai sus subrutina pentru deschidereaformularului form I B este :
docmd.OpenForm “form I B”
Întregul cod VBA este scris în proceduri care sunt blocuri de instrucţiuni cu
început şi sfârşit bine determinat. Acest tip de programare poartă numele de programare
modulară .
În limbajul VBA există două tipuri de proceduri :
Subrutinele – proceduri care nu returnează nici o valoare ; au un început bine
definit (o instrucţiune Sub) şi un sfârşit (End Sub).
Funcţiile – sunt proceduri care returnează o valoare procedurii care le-a apelat.
Ele au un început bine definit (o instrucţiune Function) şi un sfârşit (End
Function)
În baza de date prezentată am mai folosit limbaj VBA pentru a selecta o dată
calendaristică fără introducerea acesteia de la tastatură. Putem folosi acest mod de
selectare a datei în formularul elevi , pentru înregistrarea datei de naştere. Mai întâi
vom schim ba caseta text în casetă de tip Combo Box (Ecranul 67)
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
61/75
61
Ecranul 67
Apoi, din caseta cu instrumente apăsăm butonul (more controls/maimulte controale), iar din listă alegem Calendar Control 11.0 :
Ecranul 68
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
62/75
62
Aşezăm calendarul pe formular selectând cu mouse-ul zona .
Ecranul 69
După aceea, cu click dreapta -> Properties -> Format, la proprietateaVisible alegem No :
Ecranul 70
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
63/75
63
Intrăm la proprietăţile casetei combo box -> Event şi apăsăm butonul
din dreptul opţiunii On Mouse Down:
Ecranul 71
Alegem Code Builder şi apăsăm OK:
Ecranul 72
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
64/75
64
În Visual Basic vom scrie codul :
Private Sub Calendar4_Click()data_nasterii.Value = Calendar4.Valuedata_nasterii.SetFocusCalendar4.Visible = FalseEnd Sub
Private Sub Calendar4_Updated(Code As Integer)
End Sub
Private Sub Command25_Click()
DoCmd.CloseEnd Sub
Private Sub data_nasterii_MouseDown(Button As Integer, Shift As Integer, XAs Single, Y As Single)
Calendar4.Visible = TrueCalendar4.SetFocusIf Not IsNull(data_nasterii) Then Calendar4.Value = data_nasterii.ValueElseCalendar4.Value = Date
End IfEnd Sub
Salvăm modificările efecuate asupra formularului elevi şi legătura dintre casetacombo box şi calendar (Calendar4) este realizată.
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
65/75
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
66/75
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
67/75
67
Cu click dreapta pe spaţiul graficului intrăm în Properties/ Proprietăţi de
unde vom selecta tipul graficului (ecranul 78), culoarea de fond (ecranul 79), înclinaţia,
luminozitatea, ş.a.
Ecranul 77
Ecranul 78
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
68/75
68
Ecranul 79
Butonul care va deschide acest formular va executa un macro definit aşa
cum se poate observa în ecranul 80:
Action -> OpenForm
Form Name -> grafic V B
View -> Pivot Chart
Această ultimă opţiune este foarte importantă . Altfel formularul va afişa
datele care stau la baza graficului şi nu graficul pe care îl dorim.
Ecranul 80
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
69/75
69
8. Crearea unui help
Utilizatorul bazei de date poate consulta documentaţia pusă la dispozitie,
manualul de utilizare sau fişierele help. Deasemenea îi sunt utile informatiile pe care le
poate descoperi pe parcursul lucrului efectiv cu baza de date :
Descrierea obiectelor
Utilizarea indiciilor (Control Tips)
Mesaje de invalidare
Casete cu mesaje
Asistarea cu ajutorul barei de stare
Descrierea obiectelor (tabele, interogări, rapoarte, formulare) se realizează
astfel : Cu click dreapta pe obiect intrăm în Properties/Proprietăţi , aşa cum se observă
în ecranul 81.
Ecranul 81
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
70/75
70
În caseta Description/ Descriere vom descrie obiectul apoi apăsam tasta OK.
Ecranul 82
Pentru asistarea cu ajutorul barei de stare vom completa în tabele descrierea
fiecărui câmp .
Ecranul 83
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
71/75
71
Când vom deschide tabelul şi avem cursorul în câmpul a cărui descriere am
demonstrat-o anterior vom putea vedea descrierea sau indicatiile referitoare lacompletarea câmpului respectiv în partea de jos a ferestrei:
Ecranul 84
Aceeaşi descriere din bara de stare o putem obţine dacă de pe formular, cu clickdreapta pe Properties -> Other scriem textul în dreptul câmpului .
Ecranul 85
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
72/75
72
După ce salvăm şi deschidem din nou formularul ,putem citi descrierea în
bara de stare , aşa cum se observă în ecranul 86, în momentul în care ne aflăm încâmpul respectiv.
Ecranul 86
Un alt ajutor dat utilizatorului este afişarea unor balonaşe cu text. Intrămdin nou cu click dreapta pe Properties -> Other şi completăm câmpul ControlTip Textcu mesajul dorit :
Ecranul 87
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
73/75
73
Balonaşul cu mesaj va apărea după câteva momente în care indicatorul mouse-
ului se va afla în câmpul a cărui descriere am făcut-o.(ecranul 88)
Ecranul 88
Putem pune la dispoziţia utilizatorului casete cu mesaje referitoare la
regulile de completare a unor câmpuri, mesaje care vor apărea în momentul în careregula definită de completare a câmpului (Validation Rule) a fost încălcată.
Ecranul 89
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
74/75
8/18/2019 Primii Pasi in Crearea Unei Baze de Date-Adela Stoica
75/75
Ecranul 91
Dacă vrem ca mesajul să apară când un utilizator doreşte să deschidă formularulCatalog , în Design View, la proprietătile butonului care deschide formularul vomselecta macrocomanda salvată anterior ca eveniment produs la clik .(Event -> On Click-> msgbox)
În ecranul 92 se poate observa caseta cu mesaj :