Documente Academic
Documente Profesional
Documente Cultură
Curs Access Incepatori
Curs Access Incepatori
NCEPATORI
BAZE DE DATE
Page 1
CUPRINS PE SCURT
CAPITOLUL 1. Introducere
Pag 1
Pag 5
Pag 11
Pag 21
Pag 35
CAPITOLUL 6. Formulare
Pag 47
Pag 59
Pag 72
BAZE DE DATE
Page 2
CUPRINS
CAPITOLUL 1. Introducere
Pag 1
Pag 5
Pag 11
Pag 11
Pag 17
Pag 17
Pag 18
Pag 20
Pag 21
Pag 21
Pag 22
Pag 23
Pag 26
Pag 27
Pag 31
Pag 32
Pag 33
Pag 35
Pag 35
Pag 40
Pag 44
Pag 45
Pag 46
CAPITOLUL 6. Formulare
Formulare simple
Formulare imediate
Modificarea formularelor
Crearea formularelor cu subformulare
Pag 47
Pag 47
Pag 49
Pag 50
Pag 52
Pag 59
Pag 59
BAZE DE DATE
Page 3
Pag 61
Pag 62
Pag 66
Pag 72
Pag 72
Pag 77
Pag 77
Pag 77
Pag 77
Pag 78
Pag 82
Pag 85
Pag 86
Pag 86
Pag 88
Pag 88
Pag 89
Pag 90
BAZE DE DATE
Page 4
CAPITOLUL 1
Introducere
Foarte multa lume discuta sau chiar foloseste notiunea Sisteme cu
baza de date, dar n afara de pretiozitatea exprimarii, multi dintre acestia
cred ca o colectie orecare de fisiere, n orice limbaj care permite o
prelucrare, ar fi suficienta pentru nevoile afacerii, daca pregatirea nu este de
specialitate coboara si mai jos si folosesc un sistem de calcul tabelar
(EXCEL) sau se reped ntr-un SGBD (Sistem de gestiunea bazelor de date)
care arata cum se creaza si cum se utilizeaza o baza de date si se lovesc pe
parcurs de probleme, de obicei, insurmontabile.
Din ce cauza ? Ce lipseste ?
Lipseste ntelegerea distincta a ceea ce nseamna un Sistem cu baze de
date si lipseste proiectarea n acord cu aceasta ntelegere.
Exemplu de proiectare incorecta.
Pentru ntelege mai usor niste definitii teoretice care vor urma,
o sa prezentam un exemplu.
Firma Lectura inteligenta vinde carti prin corespondenta. Pentru
aceasta culege planuri editoriale de la cteva edituri cu care are contracte
si si face reclama n ziare, la radio, la televiziune sau prin corespondenta
directa cu clientii mai vechi. n urma reclamei primeste comenzi pe care le
satisface ulterior.
Bula, baiatul patronului, elev stralucit la Liceul de Informatica, a creat o
metoda simpla ( si eficienta pentru nceput ) de manipulare a comenzilor si
vnzarilor, pe care a denumit-o baza de date .
Cititorul si va da seama ca titlul este pretentios.
Autorul si propune sa descopere mpreuna cu cititorul defectele acestei
abordari, aparute pe masura ce afacerea lua amploare.
Intrarea n sistemul ingeniosului elev se face pe baza unui formular
pe care un angajat l completeaza pentru fiecare volum pe care l comanda
un client. Iata acest formular:
BAZE DE DATE
Page 5
Formular comanda
Id client
data comenzii
Nume
Prenume
Localitate
cod
Strada
nr
Telefon
Nr produs
Titlu
Autori
Pret
Discount
Comanda satisfacuta
BAZE DE DATE
Page 6
Defectul numarul 1.
Baza de date contine multe date duplicate:
- numele, adresa, unui client apar de cte ori acesta comanda o noua
carte.
- titlul, autorii apar de cte ori este comandata aceeasi carte.
Si ce daca sunt date duplicate?
- se ocupa mai mult loc pe mediul de stocare
- scriere de mai multe ori a aceluiasi lucru face ca aceasta scriere sa fie
diferita ( ex. Cartea Utilizare ACCESS 95 poate sa apara Utilizare
access 95 sau Utilizare Acces 95. Ultimele doua forme nu vor fi
regasite n baza de date ceea ce va face ca anumiti clienti sa nu fie
satisfacuti, de aici decurgnd o serie ntreaga de probleme.
Solutia ar fi sa eliminam pe ct posibil duplicarile sau, atunci cnd le
permitem, acestea sa fie corecte (consistente ). O proiectare corecta a unei
baze de date rezolva aceasta problema.
Defectul numarul 2.
Pentru ca firma facea catalogul manual, cu un consum mare de munca
necalificata, s-a pus problema editarii catalogului direct din baza de date.
Dar din aceasta baza de date este imposibil de realizat asa ceva pentru ca:
- baza de date nu contine toate datele care fac posibila alegerea unei carti.
( lipseste un scurt continut, de exemplu)
- prin adaugare am ajunge sa accentuam primul defect. Sa-l includem o
singura data ? Cum o sa stim unde l-am inclus ? Cel mai grav nsa ,este
faptul ca n catalog ar trebui sa apara carti care nu au fost comandate de
nimeni si aceasta problema nu poate fi rezolvata cu acest sistem.
Defectul numarul 3.
Probleme legate de stergerea datelor. Sa presupunem ca un client a
comandat o singura carte si ca aceasta carte nu mai este scoasa (ex. Interzisa
de cenzura). Daca stregem informatia despre carte o sa pierdem adresele
tuturor clientilor care au comandat numai acea carte si deci nu vom putea
trimite catalogul la o multime de clienti posibili.
BAZE DE DATE
Page 7
Defectul numarul 4.
O alta mare problema este acel identificator de client. Sunt prea multe
lucruri incluse acolo. De multe ori sunt utile astfel de coduri mixte, dar sa
vedem ce se ntmpla n cazul nostru daca un client se muta. Identificatorul
de client se schimba si vom avea comenzi pentru acelasi client pe doua
adrese de aici posibila duplicare a pachetelor sau trimiterea unui pachet la
o adresa gresita.
n acest curs vom nvata sa proiectam corect o baza de date astfel
nct sa evitam aparitia acestor defecte. Proiectul nu este suficient pentru
a rezolva problema. Datele sunt depuse n calculator mpreuna cu relatiile
dintre ele ntr-un mod fizic care nu ne intereseaza n acest moment. Noi
vrem sa exprimam cerinte asupra bazei de date n limbajul proiectului.
Traducerea din acest limbaj, cautarea si editarea rezultatelor este treaba
Sistemului de gestiune al bazei de date prescurtat SGBD.
{ 90% din calculatoarele functionale n acest moment sunt echipate cu
sistemul Windows deci, pentru a putea aplica aproape oriunde cele
nvatate o sa nvatam sa utilizam SGBD-ul ACCESS.}
BAZE DE DATE
Page 8
CAPITOLUL 2
Elemente de proiectare a bazei de date.
titlu
Relational database design
autor
Harrington
editura
Academia Press
pret
50000
00102
Baze de date
Lungu
All
12000
10223
Utilizare Access 95
Jennings
Teora
110000
..
Daca am avea 10000 de carti vom avea n tabel 10000 de linii pe care
ar fi memorate valorile atributelor entitatii CARTE.
BAZE DE DATE
Page 9
nume
prenume
oras
str
nr
tel
cod
00001
Ancu
Viorel
Brasov
Castanilor
43
162534
00010
Barna
Dan
Cluj
Horia
241
458142
00011
Cucea
Maria
Bucuresti
Lalelelor
12
1457256 1200
00101
Nanu
Vasile
Tg.Mures
Jiului
105
256412
..
Daca avem doi clienti cu acelasi nume cum vom determina care este
cel care a comandat o anumita carte ?
Am vazut care sunt incovenientele crearii unui cod mixt cum a fost
creat cel initial. Am mai putea folosi pentru identificatori numele plus
numarul de telefon, dar n acest caz avem multe caractere si ramn
problemele legate de actualizari; de exemplu schimbarea numarului de
telefon. Un astfel de atribut, simplu sau obtinut prin concatenare care
identifica unic o instanta a unei entitati se va numi cheie. Asa cum am
recomanda practica si autorii ca Harrington [2] vom crea chei printr-un
numar generat succesiv si unic n special pentru persoane, locuri, lucruri etc.
Ramn situatii n care este nevoie de chei concatenate. Existenta unei chei
care sa identifice unic reprezentantii unei entitati este o regula esentiala de
integritate a datelor.
ntr-un model relational (de care ne ocupam n mod special este
esential ca atributele sa aiba valori unice. Adica fiind data o instanta a unei
entitati, un anumit atribut trebuie sa aiba o singura valoare. De exemplu un
client poate avea un singur numar de telefon. Daca lasam mai multe locuri,
marim inutil si neproportional baza de date deci n cazul acestei necesitati
trebuie creata o noua entitate numar de telefon cu mai multe instante.
Odata stabilite entitatile si atributele ele trebuie sa ramna pe un
document; de fapt toata activitatea de proiectare trebuie documentata. Pe
lnga tabelele pe care le putem gasi n Iacob [3], avem nevoie de un
instrument grafic care sa permita o vedere sintetica asupra bazei de date.
Chen n [1] a inventat diagrama E-R (entity-relationship adica
entitate-relatie). O prezentam aici sub o forma modificata :
2200
3210
3400
BAZE DE DATE
Page 10
nr client
nume
prenume
oras
strada
nr
cod postal
telefon
Comanda
*
nr comanda
nr client
data
Carte
*
Autori
*
nr autor
nume
prenume
Editura
*
nr editura
nume
adresa:
oras
strada
numar
cod postal
telefon
pers contact
nr carte
clasificare
titlu
editie
data aparitie
pret
gen
BAZE DE DATE
Page 11
Relatii 1 la 1.
Este cazul relatiei din casatoria dintre doua posibile entitati barbati si
femei (nu n tarile islamice).
Relatii 1 la n.
Sunt cele mai frecvente. Exemplu la o editura pot fi mai multe carti, dar o
anumita carte provine de la o singura editura.
Relatii n la m.
ntre comenzi si carti. ntr-o comanda pot fi mai multe carti si aceeasi carte
poate sa apara n mai multe comenzi. Nu sunt usor de mnuit si sunt
transformate n doua relatii de 1 la n introducnd o noua entitate. n cazul
nostru noua entitate va fi detaliu comanda. Este obligatoriu ca n aceasta
entitate sa avem cheile celor doua entitati ntre care exista relatia de n la m.
Relatiile vor fi descrise n diagrame E-R cu linii ntre entitati care vor
fi ntretaiate de simboluri ale tipurilor. Aceste simboluri sunt descrise mai
jos.
| | pentru una si numai una (instanta).
0 | pentru zero sau una.
> | pentru una sau mai multe.
> 0 pentru zero, una sau mai multe.
Exemplu : relatia ntre comenzi si carti
Comanda
*
Carte
nr comanda
nr client
data
nr carte
clasificare
titlu
editie
data aparitie
pret
gen
O comanda contine cel putin o carte, dar o carte poate sa nu fie comandata
de nimeni, totusi este o relatie de tip n la m. Ea poate fi transformata prin
introducerea entitatii detaliu comanda n:
Comanda
Detaliu comanda
Carte
*
*
nr comanda
nr client
data
||
nr comanda
nr carte
0 ||
nr carte
clasificare
titlu
editie
data aparitie
pret
gen
BAZE DE DATE
Page 12
Editura
*
Client
*
nr client
nume
prenume
oras
strada
nr
cod postal
telefon
nr editura
nume
adresa:
oras
strada
numar
cod postal
telefon
pers contact
=
0
=
0
Comanda
*
nr comanda
nr client
data
Detaliu comanda
||
*
*
nr comanda
nr carte
Carte
| | * nr carte
clasificare
titlu
editie
data aparitie
pret
gen
=
_
Sa observam ca :
- cheia n entitatea comanda este numarul de comanda
Carte autor
care apare n mod natural pe acest document
- cheia n entitatile de legatura detaliu comanda si
* nr carte
carte autor, introduse pentru a distruge relatiile n la
* nr autor
m, este formata din concatenare celor doua chei ale
entitatilor legate si nu creaza probleme de actualizare.
_
O baza de date relationala are la baza relatia, care
poate fi considerata ca un tabel(reprezentarea unei entitati)
cu linii (instante ale entitatilor), si coloane (atribute).
Binenteles ca ntre tabele trebuie sa existe legaturi.
Aceste legaturi sunt realizate prin disciplina:
Autori
cheie primara - cheie straina .
* nr autor
Cheie primara este cheia unei relatii, iar cheie straina
nume
este atributul (de obicei cu acelasi nume) de acelasi tip
prenume
cu cheia primara si cu valori care se pun n
corespondenta cu cele ale cheii primare.
BAZE DE DATE
Page 13
BAZE DE DATE
Page 14
CAPITOLUL 3
Primii pasi n baze de date relationale.
O sa vedem aici cum putem crea o baza de date relationala folosind
asistentul din ACCESS.
O sa modificam structura acestei baze de date n asa fel nct sa obtinem
proiectul fizic al diagramei E-R pentru Lectura inteligenta.
O sa listam componente ale bazei de date selectate dupa criterii logice
(filtrare).
O sa salvam si o sa nchidem baza de date.
Pentru a putea lansa SGBD-ul ACCESS trebuie sa aveti instalat pe
PC-ul vostru Microsoft Office Profesional. Dupa ce ati pornit calculatorul
se va afisa urmatorul ecran:
E
C
R
A
N
1
BAZE DE DATE
Page 15
E
C
R
A
N
3
Ecran 3
De aici apasnd pe <New Database> intram n meniul de creare a unei noi
baze de date:
E
C
R
A
N
4
BAZE DE DATE
Page 16
E
C
R
A
N
5
E
C
R
A
N
6
BAZE DE DATE
Page 17
E
C
R
A
N
7
E
C
R
A
N
8
BAZE DE DATE
Page 18
E
C
R
A
N
9
BAZE DE DATE
Page 19
E
C
R
A
N
12
Unde vedeti cum se creaza fiecare tabela. Gata! Baza de date, cu date de test,
a fost creata si nu ne ramne dect sa o folosim. Utilizarea se face din
meniul Main Switchboard si asa cum se vede n ecranul urmator putem sa
selectam unul din butoanele:
BAZE DE DATE
q
q
q
q
q
Page 20
13
menu din care putem alege ce sa facem cu baza de date. Cel din ecranul 13
este meniul principal Main Switchboard si butoanele succesiv apasate ne duc
n submeniuri ca n ecranele 14 si 17, fie ne dau posibilitatea sa facem
operatii asupra bazei de date. Ce operatii se pot face?
Listari (vizualizari) ale informatiilor.
Modificari ale informatiilor care pot fi:
Adaugari de instante unora din entitati
Stergeri de instante
Modificari ale valorilor unor atribute
Rapoarte (liste destinate n principal imprimantei) al caror continut poate
fi mai nti vizualizat pe ecran
Un mod de lucru ar fi sa introducem mai nti autorii si domeniile apasnd n
urmatorul ecran pe <Enter/View Authors> respectiv pe <Enter/View
Topics> .
E
C
R
A
N
14
BAZE DE DATE
Page 21
E
C
R
A
N
15
BAZE DE DATE
Page 22
E
C
R
A
N
16
E
C
R
A
N
17
BAZE DE DATE
Page 23
E
C
R
A
N
18
Asa cum este, se vede ca nu ncape tot pe ecran. Din bara de sus putem sa :
Reproiectam
Tiparim
Aaezam paginile cte una, doua, patru
Marim sau sa micsoram imaginile (cea din ecranul 18 este 100%, cea
care urmeaza este 75%)
E
C
R
A
N
19
BAZE DE DATE
Page 24
CAPITOLUL 4
Crearea unei noi baze de date.
Ecran 20
20
Aici selectam Blank Database (baza de date vida) si apasam <OK> si vom
obtine ecranul:
E
C
R
A
N
21
BAZE DE DATE
Page 25
Aici putem hotar (asa cum am vazut si n ecranul 6) unde vom avea baza de
date pe disc si cum se va numi ea. Noi vom crea baza pentru Lectura
inteligenta dupa diagrama de la pagina 9 si o vom denumi n consecinta.
Asta inseamna sa schimbam numele in File Name. Dupa ce apasam pe
<Create> obtinem:
E
C
R
A
N
22
BAZE DE DATE
Page 26
E
C
R
A
N
24
E
C
R
A
N
25
BAZE DE DATE
Page 27
E
C
R
A
N
26
E
C
R
A
N
27
BAZE DE DATE
Page 28
E
C
R
A
N
28
E
C
R
A
N
29
BAZE DE DATE
Page 29
E
C
R
A
N
30
E
C
R
A
N
31
BAZE DE DATE
Page 30
32
Plaja valori
Cifre zecimale
Loc in memorie
Byte
0 la 255
1 byte
Integer
-32678 la 32767
2 bytes
Long integer
-2147483648 la
2147483647
4 bytes
single
-3,4*1038 la
3,4*1038
4 bytes
double
-1797*10308 la
1797*10308
15
8 bytes
BAZE DE DATE
Page 31
BAZE DE DATE
Page 32
E
C
R
A
N
33
E
C
R
A
N
34
E
C
R
A
N
35
BAZE DE DATE
Page 33
E
C
R
A
N
36
E
C
R
A
N
37
BAZE DE DATE
Page 34
E
C
R
A
N
38
n acest ecran putem vedea toate tabelele create. Daca selectam din bara de
sus butonul
obtinem:
E
C
R
A
N
39
Vedem aici ca ntre tabele nu exista legaturi deci trebuie sa le creem noi:
Pentru legaturi 1 la n selectam cu butonul stng atributul dinspre 1 si fara
sa lasam butonul deplasam mouse-ul pe cheia straina cu acelasi nume din
BAZE DE DATE
Page 35
entitatea dinspre n. Cnd lasam butonul apare un meniu din care facem
legatura:
- una simpla-apasa <Create>.
- una care forteaza integritatea referentiala
Rezultatul se vede n:
E
C
R
A
N
40
E
C
R
A
N
41
BAZE DE DATE
Page 36
Popularea tabelelor
Introducerea datelor n tabele se face fie din dosar, cu <Open> si apoi
introducere n tabel, fie printr-un formular despre care ati aflat n capitolul3
si veti afla si mai multe n capitolul 6.
Salvarea protectia si nchiderea bazei de date
Tot ce construiti n ACCESS este dus automat pe disc; informatiile se
pot pierde totusi daca nu s-a facut corect <Shut Down> la nchiderea
calculatorului. Se pune nsa problema sa pastram o copie a bazei de date fie
ntr-un alt folder fie pe discheta. Pentru aceasta, din bara meniului principal,
apasnd pe <File > se obtine:
E
C
R
A
N
42
E
C
R
A
N
43
BAZE DE DATE
Page 37
Apasnd pe <OK> intrati ntr-un ecran cunoscut (ecran 6) unde puteti alege
suportul copiei.
Daca vreti ca numai anumite persoane sa poata avea acces la
informatiile din baza de date, puteti sa o protejati. Pentru aceasta , din bara
de sus a meniului, selectati <Tools> apoi <Security> si <Set Database Pass>
ca n ecranul 44.
E
C
R
A
N
44
BAZE DE DATE
Page 38
CAPITOLUL 5
CERERI SI VEDERI ASUPRA BAZEI DE DATE
Putem lista liniile unei tabele, asa cum am facut pna acum, dar avem
urmatoarele inconveniente:
- s-ar putea sa nu ne trebuiasca toate liniile ci numai unele care ndeplinesc
anumite conditii am nvatat deja sa facem asta prin filtrare.
- S-ar putea sa nu ne trebuiasca toate cmpurile
- S-ar putea sa avem nevoie de informatii combinate din mai multe tabele
(De exemplu cnd listam o carte sa stim si titlul editurii si numele
autorilor)
Am putea sa cream tabele asa cum avem nevoie, dar am redescoperi
toate neajunsurile puse n evidenta n capitolul 1.
Exista solutie?
Bine nteles! Solutia se numeste vedere (view) care nseamna o tabela
fictiva cu care se pot face o serie de operatii fara ca ea sa ocupe un loc
efectiv n memoria externa.
O vedere este rezultatul unei cereri (query) pe care o putem crea n
limbajul SQL, sau prin meniuri n QBE. Limbajul SQL depaseste nivelul
propus pentru cursul nostru, asa ca vom adopta a doua cale.
Cererile care utilizeaza mai multe tabele fac apel la relatiile pe care leam stabilit n capitolul 4 (ecranele 39 si 40) .
n acest capitol o sa nvatam :
sa cream o relatie pentru a defini o lista de alegeri (care este rezulatul
unei cereri)
sa cream o cerere simpla (dintr-o singura tabela)
sa cream o cerere utiliznd mai multe tabele ntre care exista relatii
sa modificam o cerere
sa adaugam cmpuri calculate
sa facem grupuri
Crearea unei relatii pentru a defini o lista de alegeri.
O sa observam nti ca legatura dintre tabelele carte si editura se
poate face direct pentru ca relatia este de 1 la n si nu de m la n; adica o carte
poate aparea la o singura editura. Pentru a corecta aceasta situatie vom sterge
tabela carteeditura selectnd tabela din dosarul bazei de date si apasnd
butonul <Delete>. Selectam tabela carte apasam <Design> si introducem
BAZE DE DATE
Page 39
E
C
R
A
N
46
E
C
R
A
N
47
BAZE DE DATE
Page 40
E
C
R
A
N
48
E
C
R
A
N
49
BAZE DE DATE
Page 41
E
C
R
A
N
50
E
C
R
A
N
51
BAZE DE DATE
Page 42
E
C
R
A
N
52
52
53
BAZE DE DATE
Page 43
E
C
R
A
N
54
E
C
R
A
N
55
BAZE DE DATE
Page 44
E
C
R
A
N
56
De aici puteti alege Design View sau Simple Query Wizard . Vom
merge pe prima varianta.
E
C
R
A
N
57
BAZE DE DATE
Page 45
E
C
R
A
N
59
BAZE DE DATE
Page 46
E
C
R
A
N
60
Daca vrem sa vedem care este efectul cererii (cum arat aceasta
Deschidem cererea (tabela fictiva) apasnd <Open> si obtinem:
E
C
R
A
N
61
BAZE DE DATE
Page 47
63RAN
CERERE COMPLEXA
Daca vrem, de exemplu, sa avem pentru fiecare client ce carti a
comandat ajungem, n modul aratat mai nainte n ecranul:
CRAN
N
64
5
0
BAZE DE DATE
Page 48
E
C
R
A
N
65
E
C
R
A
N
66
BAZE DE DATE
Page 49
E
C
R
A
N
67
E
C
R
A
N
68
BAZE DE DATE
Page 50
CAPITOLUL 6
Formulare
La introducerea sau modificarea datelor am folosit un formular
incomod, cu linii si coloane,greu de completat. Pe de alta parte, n capitolul
3, ecranele 14 si 15, am vazut un mod mai prietenos de Intrare/Vizualizare
autori. Asemenea operatii se fac comod pe formulare.
Formularele sunt, n principal, de doua feluri:
1. Formulare pentru preluarea de date care ofera posibilitatea de a
actualiza simultan datele din mai multe tabele legate.
2. Formulare pentru decizii care prezinta ntr-un mod placut si imediat
informatii ca suport al unor decizii.
n acest capitol o sa nvatam:
Sa cream formulare simple
Sa cream formulare imediate
Sa modificam formulare
Sa cream formulare cu subformulare
Crearea unui formular simplu. Un formular poate fi creat pe baza unei
tabele reale sau fictive (cerere). Sa selectam, pentru un exemplu simplu,
tabela autor n dosarul bazei de date.
E
C
R
A
N
69
BAZE DE DATE
Page 51
E
C
R
A
N
70
E
C
R
A
N
71
BAZE DE DATE
Page 52
Vedem aici imaginea unei nregistrari din tabela autor, n care sunt
puse n evidenta cele trei componente; se poate observa ca la nrautor nu
putem face modificari (restrictia de domeniu). Mai vedem n josul
formularului, ca avem numarul de nregistrare si putem sa trecem la
nregistrarea urmatoare sau precedenta, la ultima sau la prima nregistrare,
sau putem sa cream o noua nregistrare.
Acelasi formular, fara liniile de antet si picior de pagina, se poate
obtine ca formular instantaneu astfel:
Din dosarul bazei de date se selecteaza autor, apoi din bara de sus se
apasa butonul <New Object> si se obtine:
E
C
R
A
N
72
BAZE DE DATE
Page 53
E
C
R
A
N
74
E
C
R
A
N
75
BAZE DE DATE
Page 54
Cu nca un clic pe aceeasi zona veti putea edita eticheta si vom schimba si
prenumele ca sa arate asa:
E
C
R
A
N
76
E
C
R
A
N
77
BAZE DE DATE
Page 55
E
C
R
A
N
78
BAZE DE DATE
Page 56
Si ajungeti la:
E
C
R
A
N
79
E
C
R
A
N
80
BAZE DE DATE
Page 57
E
C
R
A
N
81
E
C
R
A
N
82
BAZE DE DATE
Page 58
E
C
R
A
N
83
E
C
R
A
N
84
BAZE DE DATE
Page 59
E
C
R
A
N
85
E
C
R
A
N
86
BAZE DE DATE
Page 60
E
C
R
A
N
87
E
C
R
A
N
88
BAZE DE DATE
Page 61
E
C
R
A
N
89
Ca sa vedem cum arata acum formularul selectam din bara de sus , dinedit,
Form View si obtinem:
E
C
R
A
N
90
Putem sa vedem aici toate cartile si, pentru fiecare carte, autorii.
BAZE DE DATE
Page 62
CAPITOLUL 7
Rapoarte si etichete.
Produsul principal al informatiilor din baza de date este un raport.
Raportul este destinat tiparirii, adica editarii pe hrtie care se pastreaza o
perioada de timp ndelungata. Diferentele de suport (ecran sau hrtie)
genereaza o serie ntreaga de alte diferente.
Asemanarile si deosebirile ntre rapoarte si formulare.
O sa ncepem prin a prezenta principalele deosebiri:
1. Rapoartele sunt destinate tiparirii si nu sunt concepute pentru a fi afisate
ntr-o fereastra. Daca vreti sa vedeti pe ecran imaginea unui raport se
poate ntmpla sa nu ncapa pe ecran, si daca o micsorati s-ar putea sa nu
o mai vedeti clar.
2. Valorile din raport nu mai pot fi modificate (se poate spune ca sunt read
only).
3. Rapoartele nu pot da o vedere tabelara; cu ele singurele prelucrari sunt
design, print preview si print.
4. Se poate crea un raport neasociat unui tabel (real sau vedere) acesta fiind
gazda unor subrapoarte fara legatura ntre ele.
5. Prin dialogul Printer Setup se poate adapta dimensiunea raportului la
dimensiunea hrtiei.
6. n rapoartele multicoloana numarul, latimea si distanta dintre coloane
este controlata de acelasi Printer Setup nu din faza de proiectare.
n continuare dam asemanari ntre rapoarte si formulare.
1. Functia lui Report Wizard este analoaga cu cea a lui Form Wizard si
puteti crea trei tipuri de rapoarte: cu o singura coloana, de totalizare
grupare si etichete pentru corespondenta.
2. Si n raport gasim , ca si n formular sectiunile de antet si de picior de
pagina, dar n raport au o utilizare mult mai frecventa.
3. Sectiunile grupurilor din rapoate sunt echivalente cu sectiunea de detaliu
din formular. Grupurile (mai sunt numite benzi) pot avea propriul lor
antet, Group Headar, si propriul subsol, Group Footer, care sunt
folosite pentru denumirea grupului, respectiv pentru totaluri pe grup.
Posibilitati de grupare am vazut si la formulare.
4. Si rapoartele pot avea subrapoarte.
n acest capitol vom nvata:
Sa cream un raport imediat
Sa cream un raport cu ajutorul asistentului (Report Wizard)
Sa facem grupari si sinteze
BAZE DE DATE
Page 63
E
C
R
A
N
91
E
C
R
A
N
92
BAZE DE DATE
Page 64
E
C
R
A
N
93
E
C
R
A
N
94
BAZE DE DATE
Page 65
E
C
R
A
N
95
E
C
R
A
N
96
BAZE DE DATE
Page 66
Aici vom opta sa sortam , n cadrul fiecarui grup, cartile dupa titlu.
Dupa <Next> obtinem urmatorul ecran:
E
C
R
A
N
97
E
C
R
A
N
98
BAZE DE DATE
Page 67
Se poate observa si pe acest exemplu cum apar grupurile, dar cititorul este
rugat sa-si creeze exemple mai semnificative.
Vom continua cu un exemplu mai complex, de sinteza.
Sa cream mai nti cererea comenzi. Selectam ca n ecranul de mai jos:
E
C
R
A
N
99
E
C
R
A
N
100
BAZE DE DATE
Page 68
E
C
R
A
N
101
E
C
R
A
N
102
BAZE DE DATE
Page 69
E
C
R
A
N
103
E
C
R
A
N
104
BAZE DE DATE
Page 70
E
C
R
A
N
105
E
C
R
A
N
106
BAZE DE DATE
Page 71
E
C
R
A
N
107
Din acest ecran puteti alege fontul (forma literei), dimensiunea literei, stilul
si culoarea , n cazul ca aveti o imprimanta color. Dupa <Next> apare:
E
C
R
A
N
108
BAZE DE DATE
Page 72
E
C
R
A
N
109
Din acest ecran veti selecta cmpurile, n modul deja cunoscut, dupa care se
va face sortarea etichetelor. Dupa <Next> apare:
E
C
R
A
N
110
BAZE DE DATE
Page 73
E
C
R
A
N
111
E
C
R
A
N
112
BAZE DE DATE
Page 74
E
C
R
A
N
113
BAZE DE DATE
Page 75
CAPITOLUL 8
PROIECTAREA BAZEI DE DATE RELATIONALE
ENUNTUL PROBLEMEI:
Se cere proiectarea unei baze de date pentru evidenta somerilor din
cadrul Directiei de Munca si Protectie Sociala. Aceasta cerinta nglobeaza
urmatoarele probleme:
evidenta datelor personale ale somerilor ( nume, prenume,
adresa, B.I., stare civila, etc.)
evidenta unor date speciale ( studii, vechime n munca,
etc.). Pentru ca exista mai multe categorii de someri, la fiecare
categorie se vor mai adauga alte date speciale.
evidenta meseriilor pentru care are calificare fiecare somer
evidenta suspendarilor dreptului la ajutor de somaj sau a
incetarii dreptului la ajutor de somaj
evidenta datei de prezentarea la viza
evidenta cursurilor, care se fac n cadrul Directiei de
Munca si Protectie Sociala si evidenta somerilor, care urmeaza
aceste cursuri
evidenta ofertantilor de locuri de munca si a locurilor de
munca disponibile
evidenta clientilor, care sunt persoane care nu beneficiaza
de ajutorul de somaj, dar care cauta un loc de munca si pot urma
cursurile organizate de Direcsia de Munca si Protectie Sociala
BAZE DE DATE
Page 76
BAZE DE DATE
Page 77
BAZE DE DATE
Page 78
BAZE DE DATE
Page 79
BAZE DE DATE
Page 80
BAZE DE DATE
Page 81
BAZE DE DATE
Page 82
moment dat, dect cu unul din cele patru tipuri de entitati, acest lucru
depinznd de valoarea asociata atributului tip somer (atributul tipului de
entitati Somer).
Un mod de a elimina aceasta problema ar fi sa punem n tipul de
entitati Someri atributele celor patru tipuri de entitati, dar acest lucru va
nsemna risipa de spatiu, pentru ca anumite cmpuri nu vor fi completate.
Tipurile de relatii ntre tipurile de entitati sunt urmatoarele:
TIP DE
ENTITATE
Someri
Clienti
Ofertanti
Oferta
Repartitie
TIP DE
RELATIE
sunt dupa
provenienta
sunt dupa
provenienta
sunt dupa
provenienta
sunt dupa
provenienta
fac
au
primesc decizie de
primesc decizie de
primesc decizie de
si pun
primesc
fac
au
primesc
primesc
aduc
contine
pentru
TIP DE
ENTITATE
Preuniversitari
CARD.
1:1
1:1
Cursuri
Meserie
Suspendare
Reluare
ncetare
Viza
Repartitie
Cursuri
Meserie
Repartitie
Chitante
Oferta
Locuri de munca
Locuri de munca
N:M
1:M
1:M
1:M
1:1
1:M
1:M
N:M
1:M
1:M
1:M
1:M
1:M
1:1
BAZE DE DATE
Page 83
DE ATRIBUTE
cod_somer
OBSERVATII
BAZE DE DATE
Page 84
PREUNIVERSITAR cod_somer
I
data_absolvire
den_scoala
PROVENITI
DIN cod_somer
MUNCA
data_ncetare
den_unitate
duarta_c
cauza_nc
ultims_1
ultims_2
ultims_3
PROVENITI
ARMATA
SUSPENDARE
NCETARE
RELUARE
DIN cod_somer
DEPENSIONATI
MESERIE
data_vatra
nr_libret
cod_somer
data_depens
tip_s_c
cod_somer
cod_c
den_meserie
c_o_r
vechime
forma_cal
cod_somer
nr_decizie
data_susp
motiv_s
cod_somer
nr_decizie
data_incet
motiv_i
cod_somer
nr_decizie
BAZE DE DATE
VIZA
Page 85
data_reluare
cod_somer
data_viza1
CURSURI
data_viza2
c_o_r
CLIENTI
tip_s_c
cod_somer
cod_c
denumire
data_ncepere
data_sfrsit
valoare
cod_c
OFERTANTI
nume
prenume
adresa
stare_civila
sex
data_nast
cod_pers
BI_serie
BI_nr
studii
loc_actual
meserie
dat_prez
cod_o
den_unitate
cod_fiscal
c_a_e_n
forma_pr
OFERTA
adresa
nr_oferta
cod_o
data_o
data reluarii
data la care somerul se va prezenta
pentru viza
data pentru viza ulterioara
cod ocupatie din Romnia; va
identifica n mod unic cursul
numele cursului
data nceperii cursului
data ncetarii cursului
Valoarea cursului
codul care identifica n mod unic un
client
BAZE DE DATE
Page 86
dat_exp
cond_soc
LOCURI
MUNCA
DE cod_loc
nr_oferta
meserie
c_o_r
nat_contract
durata_con
vrsta_m
vechime_m
nr_schimb
cond_ocupare
cond_munca
nr_rep
REPARTITIE
nr_rep
tip_s_c
cod_somer
cod_c
data_rep
cod_loc
accept_u
accept_s
motiv
data repartitiei
locul de munca pentru care se face
repartitia
Acceptul unitatii pentru somer
Acceptul somerului
Specifica daca refuzul este motivat
BAZE DE DATE
CHITANTA
Page 87
data_inc
Cod_c
Nr_chitanta
data_chitanta
valoare
sau nu
data ncadrarii n munca
numarul chitantei
data la care se da chitanta
valoarea specificata pe chitanta
DE ATRIBUTE
cod_somer
nume
prenume
data_nast
sex
stare civila
cod_personal
BI_serie
BI_nr
localitate
strada
nr
bl
sc
ap
of_postal
telefon
tip_somer
studii
vechime_ani
DOMENII
N5 + 4 zecimale (0801)
C20
C30
D
{M, F}
N1 {1, 2, 3, 4}
N13
C2
N6
C30
C30
N4 (nr>0)
C4
C1
N3 (ap>0)
N3
N9
N1 {1, 2, 3, 4}
C1 {1, 2, 3, 4, 5, 6, 7, 8, 9, A,
B, C}
N2 (0<=vechime_ani<=45)
BAZE DE DATE
Page 88
vechime_luni
vechime_zile
activ
data_prezentare
PREUNIVERSITAR cod_somer
I
data_absolvire
den_scoala
PROVENITI
DIN cod_somer
MUNCA
data_incetare
den_unitate
duarta_c
cauza_inc
ultims_1
ultims_2
ultims_3
PROVENITI
DIN cod_somer
ARMATA
data_vatra
nr_libret
DEPENSIONATI
cod_somer
data_depens
MESERIE
tip_s_c
cod_somer
cod_c
den_meserie
c_o_r
vechime
forma_cal
SUSPENDARE
cod_somer
nr_decizie
data_susp
motiv_s
NCETARE
cod_somer
nr_decizie
data_incet
motiv_i
RELUARE
cod_somer
nr_decizie
data_reluare
N2 (0<=vechime_luni<=11)
N2 (0<=vechime_zile<=30)
L {Y, F}
D
N5 + 4 zecimale (0801)
D
C40
N5 + 4 zecimale (0801)
D
C50
N1 {1, 2, 3}
C4
N8
N8
N8
N5 + 4 zecimale (0801)
D
C9
N5 + 4 zecimale(0801)
D
C1 {s, c}
N5 + 4 zecimale (0801)
N5 + 2 zecimale (11)
C15
N6
N2 (>=0)
N1 {1, 2, 3, 4, 5, 6}
N5 + 4 zecimale (0801)
N4
D
N1 {1, 2, 3, 4, 5}
N5 +4 zecimale (0801)
N4
D
N1 {1, 2, 3, 4}
N5 +4 zecimale (0801)
N4
D
BAZE DE DATE
VIZA
CURSURI
CLIENTI
OFERTANTI
OFERTA
LOCURI
MUNCA
Page 89
cod_somer
data_viza1
data_viza2
c_o_r
tip_s_c
cod_somer
denumire
data_incepere
data_sfarsit
valoare
cod_c
nume
prenume
adresa
stare_civila
sex
data_nast
cod_pers
BI_serie
BI_nr
studii
loc_actual
meserie
dat_prez
cod_o
den_unitate
cod_fiscal
c_a_e_n
forma_pr
adresa
nr_oferta
cod_o
data_o
dat_exp
cond_soc
DE cod_loc
nr_oferta
meserie
c_o_r
N5 + 4 zecimale (0801)
D
D
N6
C1 {s, c}
N5 + 4 zecimale (0801)
C30
D
D
N7
N5 + 2 zecimale (11)
C20
C30
C80
N1 {1, 2, 3, 4}
C1{ M, F }
D
N13
C2
N6
C1 {1, 2, 3, 4, 5, 6, 7, 8, 9, A,
B, C}
C50
C20
D
C3
C30
N7
N4
N1 {1, 2, 3, 4, 5}
C80
N4
C3
D
D
N1 {1, 2, 3, 4, 5, 6}
N2 (>0)
N4
C15
N6
BAZE DE DATE
REPARTITIE
CHITANTA
Page 90
nat_contract
durata_con
vrsta_m
vechime_m
nr_schimb
cond_ocupare
cond_munca
nr_rep
nr_rep
tip_s_c
cod_somer
cod_c
data_rep
cod_loc
accept_u
accept_s
motiv
data_inc
cod_c
nr_chitanta
data_chitanta
valoare
N1 {1, 2, 3}
N2 (>=0)
N2 (>=18)
N2 (>=0)
N1 {1, 2, 3, 4, 5}
N1 {1, 2, 3, 4, 5, 6}
N2 {1, ..., 11}
N5
N5
C1 {s, c}
N5 + 4 zecimale (0801)
N5 + 2 zecimale (11)
D
N2
L
L
L
D
N5 + 2 zecimale (11)
N4
D
N7
BAZE DE DATE
Page 91
BAZE DE DATE
Page 92
SOMERI
CLIENTI
fac
fac
CURSURI
CURSURI
BAZE DE DATE
Page 93
Domeniile n care vor lua valori aceste atribute sunt cele specificate
anterior.
Cheile pentru tipurile de entitati vor fi:
CURSURI: - chei candidat: (c_o_r, cod_somer, cod_c)
- cheie primara: (c_o_r, cod_somer, cod_c)
- chei straine: cod_somer, cod_c
DATE CURS: - chei candidat: (c_o_r, data_inceper)
- cheie primara: (c_o_r, data_incepere)
- chei straine:
Vom avea noi relatii:
SOMERI 1
fac
CURSURI
m
fac
1 CLIENTI
sunt pentru
1
DATE CURS
- desfiintarea relatiilor care contin mai multe entitati: nu avem
astfel de relatii
- desfiintarea relatiilor cu atribute: nu avem astfel de relatii
- desfiintarea relatiilor recursive: nu avem astfel de relatii
- reexaminarea relatiilor 1-1:
Avem mai multe relatii 1-1 pe care nu le putem desfiinta:
- Someri --> Preuniversitari
- Someri --> Proveniti din munca
- Someri --> Proveniti din armata
- Someri --> Depensionati
- Repartitie --> Locuri de munca
BAZE DE DATE
Page 94
BAZE DE DATE
Page 95
BAZE DE DATE
Page 96
BAZE DE DATE
Page 97
finaliza singuri