Академический Документы
Профессиональный Документы
Культура Документы
2011
CUPRINS
OBIECTIVELE CURSULUI .............................................................. 11
CAPITOLUL 1
CONCEPTE GENERALE DESPRE BAZELE DE DATE I
SISTEMELE DE GESTIUNE A BAZELOR DE DATE .................... 13
1.1 Revoluia relaional ........................................................................................ 13
1.2 Conceptul de baz de date................................................................................ 15
1.3 Conceptul de sistem de gestiune a bazelor de date ............................................ 19
1.3.1 Introducere............................................................................................... 19
1.3.2 Obiectivele unui SGBD ............................................................................ 19
1.3.3 Funciile unui SGBD ................................................................................ 21
1.3.4 Regulile lui Codd ..................................................................................... 23
1.4 Modelarea datelor ............................................................................................ 27
1.4.1 Modele de date: perspectiv istoric ......................................................... 27
1.4.2 Sistemul de gestiune bazat pe fiiere (SGF) .............................................. 28
1.4.3 Modele prerelaionale............................................................................... 29
1.4.4 Modelul relaional .................................................................................... 30
1.4.5 Modelele postrelaionale i noi funcionaliti ........................................... 32
1.5 Rezumatul capitolului ...................................................................................... 34
1.6 ntrebri de auto-evaluare ................................................................................ 35
CAPITOLUL 2
PROIECTAREA I IMPLEMENTAREA BAZELOR DE DATE ...... 37
2.1 Arhitectura ANSI-SPARC ............................................................................... 37
2.2 Proiectarea bazelor de date............................................................................... 39
2.3 Utilizarea modelelor de date n etapa de proiectare ........................................... 40
2.4 Modelul conceptual al bazei de date ................................................................. 42
2.5 Modelul logic al bazei de date.......................................................................... 42
2.6 Modelul fizic al bazei de date........................................................................... 43
2.7 Rezumatul capitolului ...................................................................................... 45
2.8 ntrebri de autoevaluare.................................................................................. 46
CAPITOLUL 3
MODELUL CONCEPTUAL AL BAZELOR DE DATE
RELAIONALE .................................................................................. 47
3.1 Entitai i instane............................................................................................ 47
3.2 Atribute .......................................................................................................... 48
3.2.1 Concept i tipologie ................................................................................. 48
3.2.2 Cheia primar, un atribut special .............................................................. 50
3.2.3 Entitate sau atribut ................................................................................... 51
3.3 Relaii ............................................................................................................. 53
3.3.1 Definiie .................................................................................................. 53
3.3.2 Gradul i cardinalitatea relaiilor .............................................................. 53
3.4 Schema conceptual i diagrama entitate-relaie............................................... 54
3.5 Modelul relaional: fundamentarea teoretic .................................................... 57
3.5.1 Concepte de baz ..................................................................................... 57
3.5.2 Stabilirea relaiilor ntre entiti ................................................................ 59
3.6 Reguli de integritate pentru bazele de date relaionale ...................................... 63
3.6.1 Valoarea special Null a atributelor .......................................................... 63
3.6.2 Integritatea entitilor ............................................................................... 64
3.6.3 Integritatea referenial ............................................................................ 64
3.6.4 Restricii procedurale ............................................................................... 65
3.7 Implementarea modelului conceptual............................................................... 66
3.8 Rezumatul capitolului ..................................................................................... 68
3.9 ntrebri de auto-evaluare ................................................................................ 70
CAPITOLUL 4
NORMALIZAREA BAZELOR DE DATE .......................................... 73
4.1. Introducere..................................................................................................... 73
4.2 Organizarea datelor ......................................................................................... 73
4.3 Dependene ..................................................................................................... 75
4.3.1 Dependene funcionale simple ................................................................ 75
4.3.2 Dependene funcionale directe i tranzitive.............................................. 78
4.3.3 Dependene funcionale multiple .............................................................. 78
4.3.4 Dependene multivaloare ......................................................................... 78
4.3.5 Dependene jonciune .............................................................................. 80
4.3.6 Matricea dependenelor funcionale .......................................................... 81
4.4 Forme normale................................................................................................ 85
4.4.1 Forma normal 1 ..................................................................................... 85
4.4.2 Forma normal 2 ..................................................................................... 86
CAPITOLUL 5
ELEMENTE INTRODUCTIVE N ACCESS .................................... 97
5.1 Introducere ...................................................................................................... 97
5.2 SGBD Access: prezentare general .................................................................. 97
5.2.1 Caracteristici generale .............................................................................. 98
5.2.2 Operaii cu baze de date ........................................................................... 99
5.2.3 Obiectele bazei de date ........................................................................... 105
5.3 Obiecte Tables............................................................................................... 106
5.4 Obiecte Queries ............................................................................................. 116
5.4.1. Interogri de selecie ............................................................................. 117
5.4.2 Interogri de sintetizare a datelor ............................................................ 119
5.4.3 Interogri de aciune............................................................................... 120
5.5 Obiecte Forms ............................................................................................... 123
5.5.1 Formulare create cu ajutorul butonului Form .......................................... 124
5.5.2 Formulare create cu ajutorul butonului Form Wizard .............................. 125
5.5.3 Formulare create cu ajutorul butonului Form Design ............................... 128
5.5.4 Formulare cu sub-formulare ................................................................... 133
5.6 Obiecte Reports ............................................................................................. 134
5.7 Obiecte Macros ............................................................................................. 139
5.8 Obiecte Modules ........................................................................................... 141
5.9 Concluzii ....................................................................................................... 141
5.10 Rezumatul capitolului .................................................................................. 141
5.11 ntrebri de autoevaluare din partea teoretic ................................................ 142
5.12 Exemple ...................................................................................................... 143
5.12.1 Problem rezolvat Tabel creat n Datasheet View .......................... 143
5.12.2 Problem rezolvat Tabele create n Design View .............................. 148
5.12.3 Problem rezolvat Formulare i controale......................................... 154
5.12.4 Problem rezolvat Formulare cu controale calculate, Switchboard .... 161
5.12.5 Problem rezolvat Interogri ............................................................ 168
5.12.6 Problem rezolvat Rapoarte ............................................................. 175
CAPITOLUL 6
ELEMENTE SQL ............................................................................. 183
6.1 Introducere.................................................................................................... 183
6.2 Comenzi SQL ............................................................................................... 183
6.2.1 Comanda CREATE TABLE .................................................................. 186
6.2.2 Comanda ALTER TABLE ..................................................................... 188
6.2.3 Comanda DROP TABLE ....................................................................... 190
6.2.4 Comanda INSERT INTO ....................................................................... 190
6.2.5 Comanda DELETE ................................................................................ 191
6.2.6 Comanda SELECT ................................................................................ 192
6.2.7 Comanda UPDATE ............................................................................... 200
6.3 Concluzii ...................................................................................................... 201
6.4 Rezumatul capitolului ................................................................................... 201
6.5 ntrebri de autoevaluare din partea teoretic ................................................. 202
6.6 Exemple ....................................................................................................... 203
6.6.1. Problem rezolvat Produse ............................................................... 203
6.6.2 Problem rezolvat Aprovizionare....................................................... 208
6.6.3 Problem propus Bibliotec ............................................................... 216
6.6.4 Problem propus Amenajri interioare ............................................... 216
10
OBIECTIVELE CURSULUI
11
12
CAPITOLUL 1
CONCEPTE GENERALE DESPRE BAZELE DE DATE
I SISTEMELE DE GESTIUNE A BAZELOR DE DATE
1.1 Revoluia relaional
Astzi beneficiem de avantajele aduse de bazele de date relaionale:
capacitatea de stocare, accesare, i modificare rapid a datelor pe calculatoarele
low-cost. Totui, pn la sfritul anilor 1970, bazele de date au stocat cantiti
mari de date ntr-o structur ierarhic, care a fost dificil de navigat i inflexibil.
Programatorii aveau nevoie s tie ce doreau clienii s fac cu datele nainte
de a proiecta baza de date . Adugarea sau schimbarea modului de analiz a
datelor a fost un proces ndelungat i costisitor.
n 1970, Edgar "Ted" Codd, un matematician angajat de IBM, a scris un
articol care va schimba toate astea. La acea vreme, nimeni nu i-a dat seama
c teoriile lui Codd vor declana o revoluie tehnologic la egalitate
cu dezvoltarea calculatoarelor personale i Internet (Coronel, et al., 2009)
Don Chamberlin, coinventor al SQL, cel mai popular limbaj utilizat de
sistemele de baze de date de astzi, i-a amintit cum teoriile matematice ale lui
Codd nu au fost luate n seam. Apoi Ted Codd a organizat un simpozion, iar
Chamberlin a ascultat cum Codd a redus cinci pagini complicate de
program la o linie. Simpozionul a convins IBM pentru a finana Sistem R, un
proiect de cercetare care a construit o prototip al unei baze de date relaionale
i care va duce n cele din urm la crearea limbajelor SQL i DB2.
Adevratele sisteme relaionale s-au afirmat pe pia ncepnd cu anul
1984: sistemul DB2 (IBM Corp.) funcioneaz pe mainframe-urile IBM i, prin
urmare, e portabil pe RS/6000; Oracle (Oracle Systems) a devenit un sistem de
gestiune relaional portabil pe mai multe platforme; sistemul RDBMS (AWB)
funcioneaz pe calculatoarele AT&T 3B; sistemele de gestiune Informix
(Informix Software) i Sybase (Sybase Inc.) funcioneaz n mediul Unix. Mai
multe sisteme de gestiune ale bazelor de date relaionale (FoxPro, Paradox etc.)
au fost elaborate pentru calculatoarele personale.
Dezvoltarea teoriei bazelor de date relaionale a cptat o amploare
nemaivzut n domeniul aplicrii tehnicii de calcul. Au aprut o serie de
reviste specializate n domeniul respectiv. ntre elaborrile teoretice i
producerea sistemelor comerciale s-a creat un spaiu de cel puin 20 ani.
Acesta e un rar exemplu cnd necesitile software considerabil depesc
capacitile hardware. Rezultatele obinute n teoria relaional au influenat
esenial sistemele de gestiune ce se bazeaz pe celelalte dou modele de date:
13
14
Versiuni recente ale acestor limbaje permit i accesarea datelor organizate n baze de date.
Termenul database (baz de date n limba englez) a aprut pentru prima dat n titlul unei
conferine organizate n Santa Monica, SUA, n 1964: Development and Management of
Computer Centered Database.
2
15
16
17
18
Exemple de SGBD: Microsoft Access, FoxPro (de la Microsoft), Paradox, Visual dBase (de la
Borland), Oracle 10g (de la Oracle Corporation), Sybase Adapted Server (de la Sybase Inc.), Iris
(de la Hewlett-Packard), IMS, DB2 (pn DB9 de la IBM).
19
20
Un SGBD pune la dispoziie utilizatorilor limbaje distincte pentru 1) descrierea bazei de date
(limbaj de descriere a datelor- LDD) i 2) manipularea bazelor de date (limbaj de manipulare a
datelor-LMD). Limbajele de manipulare (interogare) a bazelor de date pot fi: declarative (permit
utilizatorului s declare de ce informaii are nevoie) i procedurale (oblig utilizatorul s descrie
procedura de obinere a informaiilor).
21
22
Principiu de
baz
Stocarea
informaiei
Garantarea
accesului
Lipsa
informaiei
Catalogul de
sistem
Implementare
Access
Access a fost primul
SGBD care rula sub
Windows i respecta
aceast regul. Access
nu folosete numere de
nregistrri.
Access i stocheaz
datele
n
tabelele
motorului bazei de
date Microsoft Jet.
Access
respect
aceast regul prin
folosirea Cheii Primare
(Primary Key)
Access suport lucrul
cu valori Null pentru
descrierea
informaiilor lips.
Catalogul rezid n
motorul bazei de date
Microsoft Jet. Se poate
folosi OpenSchema
din ADO pentru
interogarea catalogului
de sistem. Limbajul
DDL SQL al
motorului bazei de
date Microsoft Jet
ofer posibilitatea
crerii tabelelor,
cheilor etc.
23
Limbaj
cuprinzto
Actualizarea
vederilor
Actualizri
la nivel de
mulime
Independena
fizic a
datelor
Independena
logic a
datelor
10
Independena
integritii
datelor
24
Access
permite
modificarea obiectelor
bazei de date fr
alterarea
celorlalte
componete
ale
Accessului. Jet are
motor de stocare logic.
n Access, o interogare
se poate lega la un
formular sau la un
raport la fel de simplu
ca un tabel.
Dei Microsoft nu a
documentat modul n
care Jet stocheaz
integritile, se pot
crea
reguli
de
integritate via SQL. Jet
va
stoca
aceste
informaii n proiectul
bazei de date ca parte a
catalogului.
11
Independena
distribuiei
12
Inexistena
subminrilor
25
26
27
mijlocul anilor '60, IBM s-a alturat NAA dezvoltnd n continuare GUAM i
producnd unul dintre primele sisteme comerciale de gestiune a bazelor de date:
IMS (Information Management System). IBM a preluat modelul ierarhic pentru
a respecta cerina de stocare a datelor pe benzi magnetice (deci n acces
secvenial). Ulterior, aceast restricie a fost nlturat i IMS continu s fie
principalul SGBD ierarhic utilizat de majoritatea calculatoarelor mainframe7.
Construirea bazelor de date a cunoscut o evoluie foarte rapid, trecnd
prin mai multe abordri, clasificate dup cum urmeaz:
sistemele de fiiere;
sistemele prerelaionale (sau istorice", numite i navigante sau
tradiionale -legacy systems): ierarhic i reea;
sistemul relaional;
sistemele postrelaionale: orientat obiect i hibrid (obiect-relaional);
sistemele semantice: multidimensional i logic (deductiv).
28
29
E.F. Codd s-a nscut la 23 august 1923 n Portland, Marea Britanie, i a murit n 18 aprilie
2003, n Florida. A fcut studii de matematic i chimie la Oxford i s-a mutat n Statele Unite, n
1948, pentru a lucra la IBM. A introdus termenul OLAP (OnLine Analytical Processing) i a
impus modelul relaional; a avut, de asemenea, contribuii n domeniul modelelor de
calculabilitate prin lucrrile sale privind automatele celulare. A obinut de dou ori Premiul
Turing: n 1981 i 1994.
30
31
32
33
34
Concept
Relaie
Arbore
Graf
35
36
CAPITOLUL 2
PROIECTAREA I IMPLEMENTAREA BAZELOR DE
DATE
2.1 Arhitectura ANSI-SPARC
Asigurarea independenei fizice i logice a datelor impune adoptarea unei
arhitecturi organizat pe cel puin 3 nivele (arhitectura ANSI-SPARC10):
1. nivelul intern (baza de date fizic)
2. nivelul conceptual
3. nivelul extern
Obiectivul arhitecturii cu 3 nivele este separarea vederii fiecrui utilizator
asupra bazei de date de modul n care este ea reprezentat fizic (figura 2.1).
10
37
Nivelul intern (baza de date fizic) este o colecie de fiiere coninnd datele
fizice la care se adaug diverse structuri auxiliare menite s asigure accesul
operativ la date. Structurile auxiliare pot fi: directoare, indexi, pointeri, tabele
de dispersie. Modul de organizare a bazei de date fizice este n mare msur
influenat de configuraia echipamentelor hardware care suport baza de date i
de sistemul de operare. Schimbarea sistemului de operare sau modificri n
configuraia hardware pot atrage modificri ale bazei de date fizice. Dac este
satisfcut condiia de independen fizic, aceste modificri n nivelul intern al
bazei de date nu vor ataca nivelele superioare ale acesteia.
Nivelul intern trateaz chestiuni cum ar fi:
alocarea spaiului de stocare pentru date i indexi ;
descrierea nregistrrilor pentru stocare (cu dimensiunile de
stocare pentru date) ;
plasarea nregistrrilor ;
tehnici de comprimare a datelor i de codificare a acestora.
38
viziune. Prin aceste viziuni, utilizatorii au acces doar la pri bine definite din
baza de date, fiindu-le ascunse prile care nu intereseaz. Prin modelul extern
se realizeaz independena logic a datelor. Fiecrei viziuni i corespunde o
descriere n termenii entitilor logice din modelul conceptual.
Diferite vederi pot avea reprezentri diferite ale acelorai date. De ex, un
utilizator poate vedea datele calendaristice n format an-lun-zi, altul le poate
vedea ca zi-lun-an.Vederile pot include chiar date combinate sau derivate din
entiti diferite.
39
40
41
42
Proiectarea fizic a bazei de date este ultima faz a proiectrii, cea n care
proiectantul alege modul concret de implementare a bazei de date. Prima
operaie const n alegerea unui SGBD care s poat implementa modelul logic.
Urmeaz comunicarea ntre modelul fizic i cel logic, similar celei dintre
modelul logic i cel conceptual: orice decizie privind implementarea fizic
(ameliorarea performanelor, asigurarea securitii etc.) poate afecta structura
modelului logic. Cu toate acestea, modelul conceptual i modelul logic trebuie
s fie n continuare complet separate de modelul fizic al bazei de date i fiecare
trebuie s-i pstreze scopul: primele s rspund la ntrebarea: CE trebuie
fcut"; ultimul la: CUM trebuie fcut".
Aceast abordare a proiectrii bazelor de date este compatibil cu
arhitectura pe trei nivele a acestora, aa cum a fost ea stabilit de ANSI-SPARC
n 1975.
Figura 2.4 prezint modelarea datelor i arhitectura ANSI-SPARC.
43
44
45
b)
c)
46
CAPITOLUL 3
MODELUL CONCEPTUAL AL BAZELOR DE DATE
RELAIONALE
Aa cum am vzut n capitolul anterior, proiectarea unei baze de date
ncepe cu analiza situaiei reale care trebuie modelat prin baza de date. Aceast
analiz necesit un dialog ntre proiectantul bazei de date i viitorii ei utilizatori.
Astfel, sunt puse n eviden:
cerinele utilizatorilor privind datele care trebuie stocate i administrate;
cerinele utilizatorilor privind operaiile care trebuie efectuate cu aceste
date.
Etapa urmtoare const n realizarea modelului conceptual al bazei de date. n
cazul modelului relaional, se ncepe cu o descriere detaliat a entitilor i
atributelor, a relaiilor dintre entiti i a condiiilor pe care trebuie s le ndeplineasc. Aceast descriere poate fi fi reprezentat prin mai multe forme: schema
conceptual, diagrama entitate-relaie (diagrama ER).
47
Exemplu: fiecare client al unei bnci este o instan a entitii Clieni; fiecare
curs predat ntr-o facultate este o instan a entitii CursuriUniversitare etc.
OBSERVAII.
O entitate poate avea subentiti; acestea trebuie s fie disjuncte; de
exemplu, entitile Piloi i MecaniciDeBord sunt disjuncte i sunt subentiti
ale entitii PersonalNavigant.
ntr-o baz de date pot exista entiti a cror existen este determinat de
alte entiti; primele se numesc entiti dependente, celelalte se numesc entiti
principale (de exemplu, entitatea Persoanenntreinere depinde de entitate
Salariai).
3.2 Atribute
3.2.1 Concept i tipologie
Atribut = o caracteristic a unei entiti.
Continent
Capitala
Slovacia
Europa
Bratislava
Frana
Europa
Paris
Romnia
Europa
Bucureti
Japonia
Asia
Tokyo
SUA
America
de Nord
Washington
Forma de
guvernmnt
Republic
constituional
Republic
prezidenial
Republic
constituional
Monarhie
constituional
Republic
prezidenial
Nr.km
ptrai
49.036
Srbtoare
naional
1 Sept.
547.026
14 Iul.
237.500
1 Dec.
370.073
29 Apr.
9.363.123
4 Iul.
48
Clasificarea atributelor
A) Atributele se pot clasifica dup complexitate:
o atribute compuse;
o
i atribute simple sau elementare, dup cum ele se mai descompune sau
nu n alte atribute, de mai mic complexitate.
49
50
51
cadrul didactic are mai multe adrese. Motivul: ntr-o baz de date corect proiectat
(normalizat) un atribut nu poate lua simultan mai multe valori pentru aceeai instan
a unei entiti;
o
structura adresei (localitate, strad, sectorul/judeul etc.) este important ( exemplu,
trebuie s extragem din baza de date cadrele didactice care loc iese ntr-o anumit
localitate sau ntr-un anumit sector din Bucureti). Motivul: valorile atributelor sunt
atomice.
Este indicat modelarea prin atribut n oricare dintre situaiile complementare (o singur
adres, tratarea adresei ca un tot unitar).
o
52
3.3 Relaii
3.3.1 Definiie
Ori de cte ori un atribut al unei entiti se refer la alt entitate din baza
de date se stabilete, de fapt, o relaie ntre cele dou entiti (de exemplu,
atributul Destinaie al entitii Trenuri se refer la oraul ctre care circul un
tren, indicnd astfel o relaie ntre entitatea Trenuri i entitatea Orae). Cnd
proiectm baza de date, aceste referiri nu ar trebui s fie reprezentate ca atribute
ale entitilor, ci ca relaii (att n sensul real, ct i n sensul matematic al
cuvntului) ntre entiti. Atributele prin care se stabilete aceast relaie se
numesc chei sau cmpuri de legtur.
Relaie ntr-o baz de date = o legtur logic ntre dou sau mai multe entiti.
53
11
54
Tabelul 3.2 i Tabelul 3.3 prezint conveniile de reprezentare grafic (n diagramele ER)
a entitilor, atributelor i relaiilor din modelul conceptual al unei baze de date relaionale.
Observaie.
Entitile i atributele sunt denumite prin substantive; relaiile dintre entiti sunt
denumite prin verbe precedate sau urmate de prepoziii; exist situaii n care ordinea
entitilor aflate n relaie este important (atunci avem, de fapt, dou relaii care trebuie
citite de la stnga la dreapta, respectiv de la dreapta la stnga) i situaii n care ordinea nu
este important.
Numele date entitilor, respectiv relaiilor, trebuie s fie unice la nivelul bazei de
date. Numele atributelor trebuie s fie unice numai la nivelul aceleiai entiti; eventualele
confuzii la nivelul bazei de date se rezolv prin cuplarea numelui atributului cu numele
entitii. Este totui indicat- pentru simplificarea referirilor- ca numele atributelor care
constituie cheile primare s fie unice la nivelul bazei de date.
Reprezentare grafic
Entitate principal
dreptunghi simplu
Entitate dependent
dreptunghi dublu
Atribut
elips
Atribut cu valori multiple elips dubl
Atribut derivat
elips punctat
Cheie primar
elips i subliniere cu linie continu
Cheie extern
elips i subliniere cu linie punctat
Relaie
romb
Tabelul 3.2. Un set de convenii pentru diagrama entitate-relaie
Entitate principal
Atribut obligatoriu
Atribut opional
Cheie primar
Relaie
Reprezentare grafic
dreptunghi cu colurile rotunjite
asterisc
cerc
diez
Linii cu sau fr bifurcaii
55
56
12
Ideea i aparine lui D.F.Childs care a publicat n 1968 o lucrare n care a artat c orice
structur de date poate fi reprezentat sub form de tabele n interiorul creia trebuie s existe i
informaie de legtur (Lungu, et al, 1995).
13
O concepie greit, larg rspndit, este aceea c modelul relaional i-ar fi preluat numele de
la faptul c ntre tabelele unei baze de date relaionale exist relaii.
57
Tip
CapacCil
NrLoc
benzin
1400
5
motorin
1400
5
benzin
1100
5
motorin
1400
5
motorin
1400
5
benzin
1600
5
benzin
1300
5
benzin
1100
5
motorin
1600
5
benzin
1400
5
benzin
1400
5
motorin
1600
5
Tabelul 3.4 Instane ale entitii Automobil
NrUi
4
4
4
5
5
5
4
4
4
5
5
4
Puterea i elegana modelului relaional sunt date de faptul c relaiile dintre entiti
conduc la asocieri ce pot fi reprezentate tot prin tabele.
Conform modelului relaional avem urmtoarele:
o Orice entitate este reprezentat printr-o tabel; numele entitii devine
numele tabelei.
o Oricrui atribut al unei entiti i corespunde o coloan (numit i
cmp) n tabela corespunztoare entitii; numele atributului devine
antetul coloanei respective din tabel.
o Orice instan a unei entiti este reprezentat printr-un rnd n tabel
asociat entitii, numit nregistrare; fiecare celul din nregistrare
conine valoarea luat de atributul corespunztor pentru instana
respectiv.
58
59
Relaii 1-m
Fie dou entiti U i V (de exemplu: Pacieni i Programri) avnd atributele
a1, (cheie primar), a2, ... , an i respectiv b1(cheie primar), b2, ... , bm, ap (de
exemplu: codPacient, numepren, datanaterii, adresa, telefon, nrSerieCI, CNP,
respectiv nrProgramare, dataprogramare, oraprogramare, codpacient). Prin
cheie extern nelegem un atribut al entitii V a crui mulime de valori
coincide cu mulimea valorilor cheii primare din entitatea U (aici: atributul
codPacient este cheie primar pentru entitatea Pacieni i cheie extern pentru
entitatea Programri).
60
Figura 3.6 prezint diagrama entitate pentru o relaie n-m, iar figura 3.7 prezint
implementarea acesteia n Access.
61
62
63
64
65
Model Fizic
Tabel
Coloan
Cheie primar
Cheie strin (extern)
66
67
Ideea i aparine lui D.F.Childs care a publicat n 1968 o lucrare n care a artat c orice
structur de date poate fi reprezentat sub form de tabele n interiorul creia trebuie s existe i
informaie de legtur (Lungu, et al, 1995).
68
69
70
71
72
CAPITOLUL 4
NORMALIZAREA BAZELOR DE DATE
4.1. Introducere
Normalizarea bazelor de date este o tehnic de proiectare a bazelor de date
relaionale. Scopul acesteia este de a elimina redundanele i anomaliile la
adugare, tergere i modificare. Crearea mai multor relaii poate ncetini timpul
de acces la date. n cadrul acestui capitol sunt prezentate toate tipurile de
dependene funcionale care stau la baza crerii formelor normale, cu exemple.
Modul n care se pot stabili relaiile unei baze de date nu este unic, eficiena
variantei aleas fiind dat de raportul dintre accesibilitatea datelor i eliminarea
anomaliilor.
Bazele de date din viaa real conin adeseori sute de mii sau chiar milioane de
nregistrri, datele fiind legate instrinsec ntre ele.
Definiie: Relaia red informaiile despre un obiect reprezentat (o entitate
concret sau abstract). Schema relaiei este expresia proprietilor comune i
73
invariante ale liniilor care compun relaia i este relativ constant n timp.
Atributul este o caracteristic a obiectului reprezentat ntr-o relaie.15
Un exemplu de relaie este prezentat n figura 1. Exemple de atribute: ID, Nume
Contact, Adresa Contact i Nr_tel Contact.
Utilizarea unei singure relaii pentru a menine o baz de date conduce la
repetri inutile ale datelor, adic redundan16.
Redundana reprezint o proprietate a unei colecii de date care se refer la
faptul c unele componente sunt memorate de mai multe ori pe suportul de
memorare.
Dup cum se poate vedea din figura 2, redundana excesiv poate determina un
proiectant de baze de date s evite folosirea unei singure relaii. n afara
redundanei, mai exist trei probleme importante legate de acest tip de
organizare:
Anomalia la modificare: pentru a modifica adresa furnizorului Pop Ion
este necesar modificarea fiecrui rnd care conine acea adres. Dac o
nregistrare nu este modificat, apare anomalia la modificare, rezultnd
o relaie care conine inexactiti.
Anomalia la inserare: dac se dorete adugarea unui nou furnizor, dar
nu exist nici o factur a acestuia sau nici un detaliu despre produsele
facturate, se poate aduga un rnd nou, iar n cmpurile n care
informaiile nu sunt disponibile se va plasa valoarea NULL (o valoare
15
Hurbean L., Dnia D., Negovan A.-M. Baze de date: de la teorie la practic utiliznd
Access 2007, Editura Mirton, Timioara, 2008, p.84
16
Giulvezan C., Mircea G., Trnveanu D. Baze de date: Teorie i practic. Access, VBA i
SQL, Editura Universitii de Vest, Timioara, 2009, p. 15
74
4.3 Dependene
n procesul de normalizare a bazei de date este necesar s se in seama de
anumite reguli (dependene, forme normale) care permit eliminarea anomaliilor
prezentate n paragraful anterior.
Dependenele de date reprezint constrngeri care se impun valorilor
atributelor unei relaii i care determin proprietile relaiei n raport cu
operaiile care pot genera anomalii (inserare, tergere, actualizare).
17
Tama I. (coord.), Stanciu V., Gheorghe M. Access 2007 Proiectare i realizare pas cu pas,
Editura Infomega, Bucureti, 2010, p.23
75
18
Hurbean L., Dnia D., Negovan A.-M. Baze de date: de la teorie la practic utiliznd
Access 2007, Editura Mirton, Timioara, 2008, p.55
19
Florescu V. (coord.), Ionescu B. (coord.), Cozgarea G., et al Baze de date, Editura Infomega,
Bucureti, 2009, p.41
20
Hurbean L., Dnia D., Negovan A.-M. Baze de date: de la teorie la practic utiliznd
Access 2007, Editura Mirton, Timioara, 2008, p.56
76
21
Florescu V. (coord.), Ionescu B. (coord.), Cozgarea G., et al Baze de date, Editura Infomega,
Bucureti, 2009, p.41
22
Florescu V. (coord.), Ionescu B. (coord.), Cozgarea G., et al Baze de date, Editura Infomega,
Bucureti, 2009, p.41
77
23
Tama I. (coord.), Stanciu V., Gheorghe M. Access 2007 Proiectare i realizare pas cu pas,
Editura Infomega, Bucureti, 2010, p.24
24
Hurbean L., Dnia D., Negovan A.-M. Baze de date: de la teorie la practic utiliznd
Access 2007, Editura Mirton, Timioara, 2008, p.84
78
cod_magazie
cod_p
79
Florescu V. (coord.), Ionescu B. (coord.), Cozgarea G., et al Baze de date, Editura Infomega,
Bucureti, 2009, p.44
80
26
Florescu V. (coord.), Ionescu B. (coord.), Cozgarea G., et al Baze de date, Editura Infomega,
Bucureti, 2009, p.44, p.57
81
Rezolvare:
1. Inventarierea atributelor
Pe baza analizei rezult urmtoarele atribute: cod_f (cod furnizor), den_f
(denumire furnizor), localit (localitatea furnizorului), adresa, email, banca, cont,
nr_f (numrul facturii), data_f (data facturii), nr_crt (numrul curent asociat
fiecrui produs de pe factur), cod_p (codul produsului), cantit (cantitatea
facturat), val_f_TVA (valoarea produsului fr TVA), val_c_TVA (valoarea
produsului cu TVA), val_totala_f_TVA (valoarea total a facturii fr TVA),
val_totala_c_TVA (valoarea total a facturii cu TVA), TVA (TVA-ul din
valoarea produsului), cotaTVA (valoarea cotei TVA), den_p (denumirea
produsului), um (unitatea de msur a produsului), stoc (stocul din produsul
respectiv), pret_u (preul unitar facturat al produsului), cod_m (codul magaziei
n care este depozitat), den_m (denumirea magaziei) i gestionar (numele
gestionarului).
2. Specificarea regulilor de gestiune
o factur este emis de un singur furnizor, un furnizor poate s apar pe
mai multe facturi;
o factur poate conine mai multe produse, iar un produs poate s apar
pe mai multe facturi;
un produs poate fi depozitat n mai multe magazii, iar o magazie poate
depozita mai multe produse.
Algoritmi de calcul
Val_f_tva = cantit*pret_u
TVA=cantit*pret_u*cotaTVA
Val_c_TVA=Val_f_TVA+TVA
Val_totala_f_TVA=
Val_totala_c_TVA=
3. ntocmirea dicionarului de atribute
Dicionarul de atribute DA: cod_f, den_f, localit, adresa, email, banca, cont,
nr_f, data_f, nr_crt, cod_p, cantit, cotaTVA, den_p, um, stoc, pret_u, cod_m,
den_m i gestionar.
4. Stabilirea cheilor primare: cod_f, cod_p, cod_m, nr_f.
5. Stabilirea dependeelor funcionale
Graful dependenelor funcionale simple
82
unde
83
unde
84
27
Ionescu F. Baze de date relaionale i aplicaii, Editura Tehnic, Bucureti, 2004, p.187
Hurbean L., Dnia D., Negovan A.-M. Baze de date: de la teorie la practic utiliznd
Access 2007, Editura Mirton, Timioara, 2008, p.60
28
85
De exemplu:
86
87
88
4.5 Concluzii
Normalizarea presupune efectuarea de verificri asupra datelor dintr-o relaie
pentru a determina dac aceasta satisface regulile formelor normale. Formele
normale se bazeaz pe dependenele funcionale ce se pot stabili ntre atributele
unei relaii.
Obiectivele normalizrii sunt: minimizarea redundanei, eliminarea anomaliilor,
facilitarea interogrilor bazei de date i diminuarea nevoii de modificare
periodic a structurii bazei de date.29
O baz de date riguros normalizat nu este neaprat i o baz de dat optim
datorit vitezei de lucru, a accesibilitii datelor de aceea n unele cazuri se
introduc selectiv date redundante pentru a crete performana sistemului. Acest
proces poart numele de denormalizare.
29
Hurbean L., Dnia D., Negovan A.-M. Baze de date: de la teorie la practic utiliznd
Access 2007, Editura Mirton, Timioara, 2008, p.85
89
90
4.8 Exemple
4.8.1 Problem rezolvat Filiala CEC
Se cere informatizarea activitii la o filial CEC. Clienii filialei sunt
identificai prin nume i prenume, cnp, seria i numrul de buletin, data
eliberrii buletinului i adres. Fiecare client poate s dein unul sau mai multe
cecuri. Pentru fiecare cec se cunoate: seria, numrul, data la care a fost eliberat,
suma depus n momentul eliberrii i tipul cecului (poate fi la termen sau la
vedere). De asemenea, fiecare cec poate s aib unul sau mai muli titulari.
Fiecare client poate efectua depuneri i restituiri. Depunerile se efectueaz prin
intermediul unei foi de depunere (FD) caracterizat prin: numr, dat i suma
depus. Restituirile se efectueaz prin intermediul foilor de restituire (FR)
caracterizate prin: numr, data i suma restituit. Fiecare cec se poate lichida de
ctre unul din titulari prin intermediul unei foi de lichidare (FL) caracterizat
prin: numr, data i suma din momentul lichidrii. Dobnda acordat pentru
cecuri se modific de la o zi la alta i este diferit pentru cecurile la termen fa
de cele la vedere.
Rezolvare
1. Inventarierea atributelor
Pe baza analizei rezult urmtoarele atribute: codcl, numepren, cnp, serieci,
nrci, dataelibci, adresa, serie_nrcec, dataelibcec, titularcec, codtipcec, tipcec,
termen, coddep, datadep, sumadep, codrest, datarest, sumarest, codlich,
datalich, sumalich, datadob, dobanda.
2. Specificarea regulilor de gestiune
un client poate avea mai multe cecuri, un cec poate avea mai muli
titulari (clieni);
pe un cec se pot face mai multe depuneri;
pe un cec se pot face mai multe restituiri;
un cec poate fi lichidat doar o singur dat;
mai multe cecuri sunt de acelai tip.
3. ntocmirea dicionarului de atribute
Dicionarul de atribute DA eliminm atributul titularcec (este echivalent cu
client) i unim atributele seriecec i nrcec ntr-un singur cmp, rezultnd: codcl,
numepren, cnp, serieci, nrci, dataelibci, adresa, serie_nrcec, dataelibcec, tipcec,
91
dobanda
92
unde
93
Stanciu A. (coord.), Mihai F, Mangiuc D, et al Baze de date Access 2007: studii de caz,
Editura Infomega Bucureti, 2009, p. 28
94
Stanciu A. (coord.), Mihai F, Mangiuc D, et al Baze de date Access 2007: studii de caz,
Editura Infomega Bucureti, 2009, p. 111
95
32
Nstase P., Coscescu L., Covrig L., et al Tehnologia bazelor de date Access 2000, Editura
Economic, Bucureti, 2000, p. 351
96
CAPITOLUL 5
ELEMENTE INTRODUCTIVE N ACCESS
5.1 Introducere
Sistemele informatice din domeniul economic conin un volum relativ mare de
date care se organizeaz cel mai bine n baze de date. Microsoft Access 2007
face parte din suita Microsoft Office 2007, avnd caracteristicile specifice unui
sistem de gestiune al bazelor de date relaionale. Access este totodat i un
instrument complex de dezvoltare al aplicaiilor de baze de date.
Tama I. (coord.), Stanciu V., Gheorghe M. Access 2007 Proiectare i realizare pas cu pas,
Editura Infomega, Bucureti, 2010, p.7
97
este necesar regruparea datelor din diverse tabele ntr-un singur loc cu
ajutorul unor interogri complexe;
baza de date este accesat de mai muli utilizatori (se poate beneficia de
mecanismele de modificare furnizate de baza de date).
Este recomandat utilizarea Microsoft Excel dac:
sunt suficiente tabelele simple, fr relaii ntre ele;
se doresc efectuarea de calculi i comparaii statistice;
setul de date nu depete 15000 de nregistrri.
98
99
100
n partea din dreapta a ecranului sunt vizibile link-uri ctre ultimele fiiere de
tip baz de date utilizate. n cazul nchiderii accidentale a bazei de date, aceasta
poate fi deschis rapid selectnd primul link din lista Open Recent Database.
Dac se dorete modificarea locaiei implicite de salvare a bazelor de date se
selecteaz butonul Office, se alege opiunea Access Options, modificnd cu
ajutorul butonului Browse opiunea Default database folder.
101
Odat cu crearea unei baze de date vide, Microsoft Access creaz o nou tabel
n care s fie salvate datele. Aceasta poarta numele implicit Table1 i este
deschis n Datasheet View (mod de vizualizare care permite afiarea datelor
din tabel). Pentru a crea o tabel n acest mod de vizualizare se poate studia
problema rezolvat 5.13.1.
Pentru a uura accesul la anumite butoane se poate folosi bara de acces rapid.
Pentru a afia mai multe butoane pe aceasta (n cazul de fa butonul Open) se
apas sgeata din partea dreapt a barei, selectndu-se comanda Open. Butonul
Open va fi afiat pe bara de acces rapid. Analog se pot selecta alte butoane
pentru a fi afiate pe bara de acces rapid. Dac acestea nu sunt afiate implicit,
se pot cuta utiliznd comanda More Commands.
102
Pentru a deschide exclusiv baza de date creat anterior se apas butonul Open
de pe bara de acces rapid figura 7.
103
Protejarea bazei de date este vizibil doar la deschiderea acesteia, deci pentru a
verifica acest lucru se nchide i se deschide din nou baza de date. Pentru a
elimina parola setat la deschiderea bazei de date, aceasta trebuie deschis
exclusiv, selectndu-se mai apoi opiunea Decrypt Database figura 10.
n cazul n care panoul de navigare este ascuns, acesta poate fi afiat selectnd
sgeile laterale figura 11.
104
105
106
Un cmp este o unitate elementar sau o categorie cum ar fi titlurile crilor sau
numerele de telefon. Un cmp nu conine n mod necesar o valoare. De
exemplu, un cmp numit e-mail poate rmne necompletat dac furnizorul nu
deine o adres de e-mail. O nregistrare este un set complet de date (cmpuri)
care se refer la o persoan, loc, eveniment, idee. De exemplu, pentru un
profesor numrul matricol, numele, prezena i nota final compun o
nregistrare. O tabel, fundaia oricrei baze de date, este o colecie de
nregistrri care au legtur unele cu altele, i conine cmpuri pentru a organiza
datele.
O coloan reprezint un cmp, o linie reprezint o nregistrare. Fiecare
nregistrare conine aceleai cmpuri n aceeai ordine. Fiierul profesorului cu
prezenele studenilor este o tabel care conine nregistrri despre toi studenii
avnd o structur comun. O baz de date const n una sau mai multe tabele i
obiectele suport care permit introducerea datelor, prelucrarea i extragerea lor
din tabele.
valoarea cmpului
baza de date
nregistrare
tabel
Cmp
nregistrare
valoare
Fig. 14 Concepte de baz
107
Codul produsului este cheie primar n tabela produse. Cheia primar poate
conine numere, litere, sau o combinaie a acestora.
Puterea bazelor de date relaionale st n abilitatea SGBD-ului de a organiza
datele i a le recombina pentru a obine o imagine complet a evenimentelor
descrise. Un design eficient a bazelor de date conecteaz datele din diferite
tabele sub forma unui sistem de legturi.
Legtura dintre tabele este ca un fir electric care traverseaz baza de date
conectnd tabelele astfel nct s permit obinerea rspunsului la cererea
utilizatorului (figura 15). Odat identificat rspunsul, cmpurile i nregistrrile
sunt rearanjate astfel nct s poate fi nelese cu uurin de ctre utilizator.
Captul de nceput al firului este creat odat cu setarea cheii primare ntr-unul
dintre tabele. Cellalt capt la firului este legat de un cmp dintr-un alt tabel.
Acel cmp poart numele de cheie strin. De exemplu cmpul cod_f (cod
furnizor) din tabela furnizori este un cmp de tip cheie strin.
Definiie: O cheie strin este un cmp dintr-o tabel, care ntr-o alt
tabel este cheie primar.
Dup cum se poate observa din figura 15, chiar i n relaia normalizat nc
mai exist redundane. De exemplu, codul produsului (cod_p) apare n mai
multe tabele. De fapt nu pot fi eliminate toate cmpurile duplicate i n acelai
timp meninute legturile dintre tabele. Acest tip de redundan (cheie primarcheie strin) poart numele de redundan necesar.
Orice legtur dintre dou tabele poat fi ntrit utilizndu-se regulile de
integritate referenial. Integritatea sugereaz ncredere. Atunci cnd regulile de
integritate sunt stabilite, utilizatorul poate avea ncredere n firul care leag
tabelele bazei de date, fiind pstrat acurateea datelor.
Regulile de tip cascad permit ca modificrile datelor s se perpetueze dintr-o
tabel n alta figura 16.
108
Legturile dintre tabele n Microsoft Access 2007 sunt de mai multe tipuri:
One-to-Many (unu-la-mai-muli) aceast legtur se creaz ntre o
cheie primar dintr-un tabel i o cheie strin din alt tabel. n prima
tabel exist o singur nregistrare care conine o valoare a cmpului de
tip cheie primar. n cea de-a doua tabel exist mai multe nregistrri
care conin n cmpul comun aceeai valoare a cmpului comun.
One-to-One (unu-la-unu) se creaz ntre dou tabele care au aceeai
cheie primar sau un cmp de tip cheie primar n prima tabel i un
cmp cheie strin pe care este setat un index Unique din a doua tabel.
n acest caz n ambele tabele exist o singur nregistrare cu valoarea
cmpului comun identic. Acest tip de relaie se folosete foarte rar, n
special datorit necesitii meninerii securitii datelor din tabele.
Many-to-Many (mai-muli-la-mai-muli) acest tip de relaie este
construit artificial (nu exist n Access) i corespunde mai multor
valori ale cmpului comun din ambele tabele. n acest caz este necesar
construirea unui nou tabel numit tabel de jonciune.
ntr-o baz de date bine definit, relaia de tip one-to-many este cel mai frecvent
ntlnit.
Pentru a crea un nou tabel, de pe panglic, opiunea de meniu Create, se
selecteaz Table Design. Design View este un mod de vizualizare care ofer
cele mai puternice opiuni pentru definirea unei tabele.
109
110
111
112
113
114
115
116
117
118
Interogri cu parametru
n cazul interogrilor de selecie se pot utiliza parametrii. Dac se dorete citirea
interactiv de la tastatur a unei valori a unui cmp, n vederea verificrii unui
criteriu i a afirii datelor din tabel/tabele, pe linia Criteria se introduce ntre
paranteze drepte un text, de exemplu [Introduceti data facturii]. Acest text va fi
interpretat ca un parametru, construindu-se automat pentru acest parametru o
caset de introducere a valorii. Va fi evaluat valoarea citit de la tastatur, se
verific egalitatea cu valorile din cmpul pe care este plasat parametrul, i
anumte [data facturii], i sunt afiate nregistrrile care verific condiia [data
facturii]=valoarea introdus de la tastatur.
119
120
121
122
123
Dac tabelul este tabel de referin pentru un singur tabel, atunci Access va crea
automat un formular cu subformular, afind n subformular doar acele
nregistrri din tabela referit care verific condiia ca valoarea cheie strin
este egal cu valoarea afiat n cmpul cheie primar din tabela de referin
afiat n formular. Pentru tabela de referin layout-ul formularului este
Columnar (este afiat o singur nregistrare la un moment dat), iar pentru sub-
124
formular layout-ul este Tabular (sunt afiate toate nregistrrile care verific
condiia de legtur) figura 21. Totodat cmpul cheie strin (din tabelul
referit) este ascuns (nu este necesar afiarea aceluiai cmp de mai multe ori n
cadrul unui formular).
Se observ c pentru fiecare formular apare cte o bar de navigare Record.
Cea mai de jos este pentru datele din tabelul de referin (printe), cea din
interior va fi pentru datele din tabelul referit (copil). Pentru a naviga prin
nregistrri se utilizez bara corespunztoarelor formularului creat pentru tabelul
de referin.
125
Pentru a crea un formular utiliznd Form Wizard trebuie parcuri urmtorii pai:
se selecteaz sursa datelor numele tabelului sau a interogrii pe baza
cruia se dorete crearea formularului i a cmpurilor care se dorete s
apar pe formular figura 23, apoi se apas butonul Next;
126
127
128
3. se selecteaz butonul Add Existing Fields iar din fereastra Field List
se execut dublu-clic pe numele cmpurilor care se dorete s apar pe
formular figura 31. Acestea vor aprea pe formular n zona de Detail
a formularului;
129
130
Dup ce s-a ales categoria, se alege aciunea din partea dreapt. n cazul de fa,
s-au ales operaiile cu formulare pentru c se dorete crearea unui buton care s
nchid forma, de aceea a fost selectat aciunea Close Form. Se trece cu Next
la pasul urmtor.
131
n mod similar pot fi create multe alte butoane de comand pentru a automatiza
baza de date.
132
133
134
3. Se pot aduga unul sau mai multe niveluri de grupare selectnd numele
cmpului din partea din stnga. Se folosesc butoanele cu sgei pentru a
selecta cmpul/cmpurile ca nivel de grupare. Pot fi adugate pn la 10
niveluri de grupare figura 40.
135
136
137
Pentru cmpurile numerice care conin valori multiple n cadrul aceluiai grup,
la pasul 4 se va afia un buton n plus, denumit Summary Options figura 49.
Se poate selecta una din opiunile Detail and Summary (vor fi afiate
subtotaluri la nivelul fiecrui grup i la nivel de raport) sau Summary Only
(doar subtotal la nivel de grup) figura 51.
138
Pe orice raport pot fi create casete de text care pot fi calculate dup modelul
prezentat n paragraful 5.5.3. Pentru a aduga o funcie totalizatoare (de
exemplu, calcularea valorii totale a tuturor facturilor, n zona Report Footer se
va aduga o caset de text. Se vor modifica proprietile Name i Caption
corespunztoare etichetei. Se va modifica proprietatea Name asociat casetei de
text. n cadrul proprietii Control Source asociat casetei de text se va tasta
formula =SUM([cantitate]*[pret]*1,24)). Din cadrul proprietii Format
asociat casetei de text se va alege opiunea Currency, pentru afiarea
simbolului valutar.
139
De regul macrocomenzile sunt ataate fie unei opiuni de meniu fie unui buton
de comand plasat pe un formular.
140
5.9 Concluzii
Microsoft Access ofer utilizatorilor un mediu vizual cu o interfa grafic
prietenoas, capabil de a dezvolta aplicaii complexe, fr a avea nevoie de
cunotine de programare. Fa de versiunile anterioare, Access conine o serie
de mbuntiri (sunt puse la dispoziia utilizatorului o serie de abloane, ofer
suport pentru introducerea datei calendaristice, apariia unui nou tip de cmp
Attachment, pentru stocarea mai multor obiecte create cu alte aplicaii, etc).
Noua interfa Microsoft Access 2007 este una unitar n pachetul Microsoft
Office, utilizatorul putnd regsi cu uurin comenzile uzuale.
141
142
5.12 Exemple
5.12.1 Problem rezolvat Tabel creat n Datasheet View
S se creeze o baz de date cu numele Exemplul 1 care s conin un tabel cu
numele Studeni. Acesta va avea structura ID, nume, prenume, an, serie, grupa,
data naterii, adresa, cstorit, email, fotografie. Se vor introduce 3 studeni n
tabel.
Rezolvare
Se va crea o baz de date cu numele Exemplul 1, salvat pe Desktop. Odat cu
crearea bazei de date, Access creaz automat o tabel cu numele care va conine
un cmp ID (identificator) de tip Autonumber, care va fi cheia primar a
tabelei.
143
Se poate selecta fiecare cmp pentru a se verifica formatul dorit. n cazul n care
valoarea care a fost introdus nu corespunde cu valorile care trebuie introduse n
cadrul acestui cmp, valoarea existent este pierdut.
n cazul cmpului data naterii acesta trebuie s fie de tip Date/time, adresa de
tip memo (texte mai mari de 255 de caractere), casatorit un cmp de tip Yes/No.
Formatul clasic de afiare fiind un check-box (caset de opiune) care poate fi
bifat sau nu, corespunztor celor dou valori posibile.
144
Sunt disponibile dou opiuni Create New sau Create from File. n acest caz
vom presupune faptul c fotografia exist deja, deci alegem a doua opiune.
Tehnologia OLE (Object Linking and Embedding) legare i ncorporare de
obiecte, permite nglobarea obiectului n tabel, deci n baza de date, sau, dac se
selecteaz opiunea Link, crearea unei legturi ctre obiectul respectiv, fr ca
acesta s fie ncorporat n tabel.
Cmpul fotografie va fi completat cu textul Package. La execuia unui dubluclic, fotografia va fi deschis pentru a fi vizualizat cu softul predefinit pentru
vizualizarea fotografiilor.
Se introduc nc 2 studeni. Dac este necesar, se poate utiliza bara orizontal de
derulare (Scroll) aflat n partea de jos a ecranului figura 59.
145
146
Modul uzual de lucru pentru crearea unei tabele este n modul de vizualizare
Design View, acesta permind setarea unor valori implicite, reguli de validare,
moduri de afiare a datelor n cmp, etc.
147
Primul pas este crearea bazei de date. Aceasta va purta numele Firme. Pentru a
crea baza de date, se deschide mediul de lucru Access, apoi se alege opiunea
Blank Database. Pentru a alege locaia n care va fi salvat fiierul se alege
icoana galben de folder, selectndu-se Desktop-ul ca destinaie, apoi se
tasteaz denumirea: Firme.
Dup crearea bazei de date se trece la analiza fiecrui tabel n parte i alegerea
tipului de cmp cel mai potrivit datelor care vor fi salvate n acesta.
Este foarte important ordinea n care tabelele voi fi create. Pentru aceasta se
aleg tabelele de referin (tabelele printe, cum ar fi Furnizori, Magazii,
Produse) urmnd ca dup crearea acestora s se creeze tabelele referite (Facturi,
ProduseFacturate, ProduseMagazii).
n momentul n care se creaz baza de date, Access deschide automat un tabel
cu numele Table1.
Se va modifica tabelul Table1 n tabelul Furnizori. Pentru aceasta vom salva
tabelul cu numele Furnizori, apelnd butonul Save de lng butonul Office.
Pentru a aduga cmpuri i pentru a modifica proprietile acestora, se va trece
148
Dup ce toate cmpurile au fost create, se salveaz tabela alegnd butonul Save,
apoi se apas sgeata de pe butonul View, de unde se alege Datasheet View
figura 66, pentru a introduce datele a trei furnizori n tabel figura 67.
149
150
Tabela ProduseMagazii:
cod_p (cod produs) un cmp de tip Lookup Wizard pentru care se
selecteaz opiunea I want the lookup column to lookup the values in
a table or query, apoi se alege tabela Produse, apoi se selecteaz
butonul Next; se alege cmpul cod_p, apoi se apas butonul Next
figura 69. Ordonarea va fi fcut dup acelai cmp cod_p, apoi se
alege butonul Next.
151
152
Tabela ProduseFacturate:
nr_f (numrul facturii) un cmp pentru care se alege Lookup Wizard,
se creaz a legtur cu tabela Facturi, cmpul nr_f; Caption: Numarul
facturii. Se salveaz tabela cu numele ProduseFacturate, iar la
ntrebarea dac se dorete alegerea unei chei primare se alege No;
nr_crt (numr curent) un cmp de tip Number, Field Size: Integer,
Caption: Numar curent;
cod_p (codul produsului) un cmp pentru care se selecteaz Lookup
Wizard, se creaz o legtur cu tabela Produse, pe baza cmpului
cmpul cod_p;
cantit un cmp de tip Number, Field Size: Integer, Caption: Cantitate;
pret_u un cmp de tip Currency, Caption: Pret unitar;
cotaTVA un cmp de tip Number, Field Size: Single, Default Value:
0,24, Caption: Cota TVA.
Se selecteaz cmpurile nr_f i nr_crt i se creaz o cheie primar compus
apsnd butonul Primary Key de pe panglic.
Acest tabel fiind copilul tabelelor Produse i Facturi, vom introduce 8
nregistrri:
153
154
155
156
157
158
Pentru a aduga aduga o poz de fundal vom selecta butonul Property Sheet
de pe panglic. De la Selection type vom alege Form, apoi opiunea Picture.
Selectnd butonul cu trei puncte se va alege o poz pentru fundal. Dac este
nevoie, se va modifica culoarea textului etichetelor pentru a crea un contrast cu
fundalul. Pentru form se va selecta proprietatea Picture Size Mode i se vor
alege opiunea Stretch figura 84. Pentru a vizualiza formularul se va alege
opiune Form View. Se nchide formularul.
159
Se alege categoria Form Operations, apoi aciunea Open Form, apoi se apas
butonul Next. Se alege formularul PacientiProgramari, apoi se apas Next. Se
va alege opiunea Open the form and show all the records, apoi se apas
butonul Next. Se selecteaz opiunea Text, modificnd textul n Forma
PacientiProgramari, apoi se apas butonul Next. Numele butonul va fi
cmdPacCons, apoi se apas Finish.
Analog se construiesc butoanele corespunztoare celorlalte dou formulare.
Pentru ultimul buton se va alege categoria Application, aciunea Quit
Application. Se va selecta pentru opiunea Text: Ieire, numele butonului fiind
cmdIeire.
Formularul va fi salvat cu numele Meniu Figura 86. Se va testa formularul
trecnd n Form View.
160
161
162
163
Pentru a formata cele dou cutii de text create astfel nct s conin simbolul
valutar, n fereastra Property Sheet, se va selecta proprietatea Format de unde
se alege Currency. Formularul va fi salvat cu numele FiseTransport.
Pentru a aduga un buton de comand care va nchide formularul, se verific
dac este apsat butonul Use Control Wizard din opiunea de meniu Design
(de pe panglic). Dac este selectat, se alege butonul Button, apoi se execut un
clic pe formular, sub restul controalelor. Se alege categoria Forms, aciunea
Close Form, apoi se apas butonul Next. Se selecteaz opiunea Text unde se
tasteaz nchidere, apoi se apas butonul Next. Pentru a finaliza, se tasteaz
numele controlului, cmdInchidere, apoi se apas butonul Finish.
4. Pentru a crea un Switchboard, de pe bara de meniuri se alege opiunea
Database Tools, apoi Switchboard Manager. La apariia mesajului The
Switchboard Manager was unable to find a valid switchboard in this
database. Would you like to create one? se alege opiunea Yes. n
fereastra Switchboard se selecteaz butonul Edit pentru a modifica
formularul principal (Main Switchboard(Default)). n fereastra Edit
Switchboard Page se modific opiunea Switchboard Name din Main
Switchboard n Meniu. Se apas butonul Close i se creaz al doilea
formular care va avea numele Vizualizare formulare. Pentru aceasta se
apas butonul New i se modific numele formularului din New
Switchboard page n Vizualizare formulare figura 91.
164
165
166
Pentru a seta formularul ca fiind primul obiect care apare la deschiderea bazei
de date, se selecteaz butonul Office, se alege butonul Access Options, apoi
Current Database. Se poate alege un titlu pentru aplicaie, n caseta
Application Title: Transporturi, iar din lista Display Form se alege
Switchboard figura 97.
167
168
Se nchide interogarea.
169
170
171
172
10. Pentru a crea o nou tabel cu toate nregistrrile din tabelele Facturi,
Produse i ProduseFacturate, se adaug toate cmpurile din aceste
tabele, fr a le duplica. Se salveaz interogarea cu numele Creare
tabela. De pe panglic se alege butonul Make Table figura 109, se
tasteat numele noii tabele: Reuniune, apo se apas butonul OK. Pentru
a se executa interogarea se va selecta Run. Dac nivelul de securitate
nu este setat astfel nct s permit execuia codurilor Visual Basic,
interogarea nu va funciona. Pentru a permite utilizarea codurilor, de pe
173
174
175
Dac este selectat butonul Summary Options... se pot selecta funcii ce vor fi
aplicate pe cmpurile numerice din tabel sau interogare figura 115.
176
177
Ultimul pas permite modificarea titlului raportului (nu este vorba de numele cu
care va fi salvat raportul, ci doar textul care va apare n antentul raportului),
apoi putem alege ntre a vizualiza raportul i a modifica raportul. Pentru a
ncheia crearea raportului se alege opiunea Finish. figura 118
Fig. 118 - Alegerea unui titlu i vizualizarea raportului n mod Print Preview
178
Dac datele provin din mai multe tabele, sau sunt necesare unele cmpuri
calculate, se poate crea o interogare n care se selecteaz tabelele, se calculeaz
cmpurile dorite, apoi se creeaz raportul pe baza interogrii.
Dac se dorete adugarea unui cmp care va fi calculat, se alege de pe panglic
controlul Text Box. Se modific pentru etichet proprietile Name: lblValoare
i Caption: Valoare. Aceasta va fi mutat n zona nr_f Header. Pentru controlul
de tip Text Box se vor modifica proprietile Name: txtValoare i Control
Source: =[cantit]*[pret_u]* [cotaTVA].
2. Pentru a crea raportul, se va alege ca surs a datelor interogarea cu
numele Valoare. Avnd cmpuri numerice, la pasul 3 se selecteaz butonul
Summary Option, bifnd check-box-urile de sub funcia SUM pentru
cmpurile TVA i Valoare.
179
180
181
182
CAPITOLUL 6
ELEMENTE SQL
6.1 Introducere
Unul dintre cele mai puternice limbaje structurate pentru interogarea datelor,
SQL (Structured Query Language), a devenit un standard pentru o gam din ce
n ce mai larg de sisteme pentru gestiunea bazelor de date. A fost construit n
1986 de ctre ANSI (American National Standards Institute). De atunci, este
considerat a fi un standard interaional avizat de ctre ISO (International
Organization for Standardization) i IEC (International Electrotechnical
Comission). A fost adoptat ca fiind standard federal de ctre FIPS (american
Federal Information Processing Standard). n cadrul acestui capitol se vor
prezenta comanda Select care permite realizarea interogrii bazelor de date,
precum i instruciunile care permit actualizarea datelor (adugarea, modificarea
i tergerea datelor prin comenzi SQL).
183
Giulvezan C., Mircea G., Trnveanu D., Margea C. Baze de date, Editura Universitii de
Vest, Timioara, 2009, p.59
35
Florescu V. (coord.), Ionescu B. (coord.), Cozgarea G., et al Baze de date, Editura Infomega,
Bucureti, 2009, p. 67
184
caracterul virgul este utilizat pentru a delimita valorile unei liste (de
exemplu lista cmpurilor);
valorile de tip Number sunt scrise direct, fr a fi ncadrate de nici un
alt caracter;
valorile de tip Text sunt ncadrate ntre caracterul apostrof (de
exemplu: Timioara);
valorile de tip dat calendaristic sunt ncadrate ntre caracterul diez
(de exemplu: #31/12/2011#).
36
Florescu V. (coord.), Ionescu B. (coord.), Cozgarea G., et al Baze de date, Editura Infomega,
Bucureti, 2009, p. 71
185
SQL
Number
Integer
Logical
Date
Text
186
187
188
189
190
Specificarea listei cmpurilor este opional. Dac lista cmpurilor este omis,
toate cmpurile din tabel vor fi completate, n ordinea n care ele au fost create,
cu valorile specificate n lista de valori.
Dac lista cmpurilor apare dar nu este complet, unele cmpuri lipsind, acele
cmpuri care nu apar n list vor fi completate cu valoarea NULL, sau cu
valoarea setat ca valoare implicit (DEFAULT). Din pcate, n standardul
minimal, setarea unei valori predefinite nu este permis.
Numrul cmpurilor din lista de cmpuri trebuie s fie identic cu numrul
valorilor din lista valorilor, iar valorile trebuie s corespund ca tip tipului de
date a cmpurilor din lista de cmpuri.
Exemplu: S se introduc o nregistrare n tabela Turiti i dou nregistrri n
tabela Contracte (presupunem c tabela are structura de la creare).
INSERT INTO Turisti VALUES (1711227136548, POP Ion,
TM569856, #27.12.1971#, 0730126589, 9856978);
INSERT INTO Contracte VALUES (1452, #04.11.2011#, Charter,
#30.12.2011#, #06.01.2012#, Cuba, POP Maria, POP Carla,
1711227136548);
INSERT INTO Contracte (nrc, datac, tip_serv, data_plec, data_sos, tara,
CNP_turist)
VALUES (1453, #25.11.2011#, Bilete avion, #08.04.2012#,
#18.04.2012#, Italia, 1711227136548);
191
comanda SELECT afieaz nregistrri din una sau mai multe tabele;
clauza From specific numele tabelei sau a tabelelor surs a interogrii.
Dac datele provin din mai multe tabele, este necesar adugarea unei
condiii de legtur n cadrul clauzei WHERE sau setarea unei jociuni
ntre tabele. Dac se dorete afiarea unui cmp care apare n dou
tabele, este necesar precizarea numelui tabelei din care acesta face
parte. Numele tabelei este separat de numele cmpului prin caracterul
punct (de exemplu: Produse.CodProdus);
nregistrrile pot fi distincte (dac clauza DISTINCT este selectat o
valoare va apare o singur dat) sau nu;
filtrarea nregistrrilor se face n funcie de evaluarea condiiei logice
din cadrul clauzei Where (dac aceasta este selectat);
dac se utilizez clauza Group By, aceasta va grupa nregistrrile n
funcie de criteriul de grupare. n acest caz pot fi adugate condiii
pentru grupurile astfel create utilizndu-se clauza Having;
poate fi impus o ordine de sortare dac se utilizeaz clauza Order by,
valoarea implicit fiind Ascending;
simbolul * semnific selecia tuturor cmpurilor din acea tabel. Dac
se dorete omiterea unor cmpuri, se va specifica lista cmpurilor fr a
specifica cmpurile respective. Ambele liste lista_campuri i
lista_tabele conin elemente desprite ntre ele prin virgul.
192
193
194
n mod uzual, compunerile de tabele au la baz condiii de tipul cheie primarcheie strin.
Considernd tabela Studenti creat anterior, se consider tabela Centrepractic,
cu structura: IDcentru, Den_centru, Adresa, Localitate, NumeTutore. n tabela
studeni se va aduga cmpul IDcentru (unui centru de practic sunt arondai
mai muli studeni).
37
Florescu V. (coord.), Ionescu B. (coord.), Cozgarea G., et al Baze de date, Editura Infomega,
Bucureti, 2009, p.93
195
38
Nstase P., Coscescu L., Covrig L., et al Tehnologia bazelor de date Access 2000, Editura
Economic, Bucureti, 2000, p. 197
196
unde:
197
6.2.6.4 Subinterogri
O subinterogare este format dintr-o interogare n care este plasat (imbricat) o
alt interogare.
Formatul general39:
SELECT [domeniu_selectie] lista_selectie
FROM numet1, numet2, ...
WHERE {numec1 expresie} operator_comparatie
(SELECT {campexpresie}
FROM numet1, numet2, ...
[WHERE criterii_selectie_subinterogare]);
unde operator_comparatie poate fi =, <, <=, >, >=, <>, IN, LIKE, Between.
Observaii:
subinterogrile trebuie incluse ntre paranteze rotunde;
subinterogrile trebuie plasate n partea dreapt a operatorului de
comparare;
nu se va aduga o clauz ORDER BY ntr-o subinterogare;
att n interogare ct i n subinterogare, sursa datelor poate fi simpl
(un singur tabel) sau compus (mai multe tabele), putnd fi chiar
identic, necesitnd crearea legturilor dintre tabele;
clauzele Group By, Having i Order pot s apar n ambele interogri;
dac se utilizeaz operatorul IN, rezultatul subinterogrii va fi o coloan
cu mai multe valori;
domeniul rezultatelor unei subinterogri poate fi influenat prin
recurgerea la urmtoarele cuvinte cheie: ALL, ANY i EXISTS. n
cazul n care se dorete negarea condiiei, se plaseaz operatorul NOT
n faa specificatorului:
- ANY/SOME comparaia este adevrat dac se gsete cel puin
o valoare n valorile din coloana returnat de subinterogare. n
cazul utilizrii acestui specificator, ;
- ALL comparaia este adevrat dac este verificat de toate
valorile din coloana returnat de subinterogare. n mod uzual,
comparaia const ntr-o inegalitate: <, <=, >, >=, <>. De
regul, rezultatul comparaiei este False;
39
Florescu V. (coord.), Ionescu B. (coord.), Cozgarea G., et al Baze de date, Editura Infomega,
Bucureti, 2009, p.101
198
199
200
6.3 Concluzii
SQL este unul dintre cele mai puternice i larg rspndite limbaje folosite
pentru definirea i accesarea bazelor de date relaionale. El permite consultarea
bazei de date sau efectuarea anumitor aciuni prin simpla specificare a
comenzilor, fr a fi necesar specificarea unor modaliti concrete sau a
algoritmilor de obinere a rezultatului. SQL este suportat de diferite sisteme de
gestiune a bazelor de date cum ar fi: MS Access, MS SQL Server, DB2,
Informix (IBM), Oracle, MySql, etc, diferenele dintre dialecte fiind minore40.
40
Florescu V. (coord.), Ionescu B. (coord.), Cozgarea G., et al Baze de date, Editura Infomega,
Bucureti, 2009, p.66
41
Nstase P., Coscescu L., Covrig L., et al Tehnologia bazelor de date Access 2000, Editura
Economic, Bucureti, 2000, p. 189
201
202
6.6 Exemple
6.6.1. Problem rezolvat Produse
S se creeze urmtoarea form de meniu.
Rezolvare:
Se creaz o nou baz de date cu numele Produse. Se creaz tabela Produse cu
urmtoarea structur: cod_p, den_p, um_p, stoc_p, pret_p, cod_magazin. Se vor
introduce 3 nregistrri n tabel.
Se creaz un nou formular folosind de pe bara de meniuri opiunea Create,
butonul Form Design.
De pe panglic se verific dac butonul Use Control Wizards
este selectat.
Acesta trebuie s fie deselectat pentru a permite crearea manual a controalelor,
fr ajutorul asistentului. n continuare se alege butonul Button, executndu-se
un clic pe form. Apelnd meniul contextual asociat butonului de comand de
pe form, se selecteaz opiunea Properties i se modific proprietile Name i
Caption pentru fiecare buton n parte. n total sunt 8 butoane de comand,
fiecare avnd un alt Name i Caption. Proprietatea Name va fi completat
ntotdeauna cu prefixul cmd urmat de un cuvnt sau alturare de cuvinte
semnificativ pentru aciunea executat de buton, fr caracterul spaiu ntre ele.
Numele butoanelor vor fi n ordine: cmdDesPr, cmdDesPr1, cmdInsPr,
cmdModDen, cmdCrTNou, cmdViz, cmdValoare, cmdIesire. Proprietatea
Caption va fi completat cu textul care apare pe butonul corespunztor din
figura 1 i admite orice fel de caractere, inclusiv caracterul spaiu. Se selecteaz
butonul dorit, iar n fereastra Property Sheet se modific cele dou proprieti
aflate pe pagina All. Dac fereastra Property Sheet nu apare, ea poate fi
203
204
DoCmd este o comand Visual Basic care permite execuia unei comenzi (Do
Command). Open Table este comanda care permite deschiderea unei tabele.
Numele tabelei este scris ntre ghilimele, iar parametrul acViewDesign
specific deschiderea tabelei n modul Design, nu n Datasheet View.
Private Sub cmdDesPr1_Click()
' se deschide tabela Produse pt. vizualizare in Datasheet View
DoCmd.OpenTable "Produse"
End Sub
Private Sub cmdInsPr_Click()
'adaugarea unei noi inregistrari
DoCmd.RunSQL "insert into produse values (cod_produs, den_produs,
um_produs, stoc_produs, pret_produs, cod_mag)"
End Sub
Comanda RunSQL este comanda care permite execuia unei instruciuni SQL
(Structured Query Language). Dintre cel mai des utilizate instruciuni SQL
amintim: SELECT, INSERT INTO, UPDATE, ALTER TABLE, DELETE
TABLE. Toate instruciunile SQL se scriu ntre ghilimele, simbolul ; de la
sfritul comenzilor SQL fiind ignorat.
n acest caz s-a folosit instruciunea INSERT INTO, care permite introducerea
unei singure nregistrri n tabela Produse. Pentru fiecare din parametrii din
parantez, acetia fiind considerai nite variabile, este creat automat un
InputBox (o caset de introducere a valorilor de la tastatur) care permite
citirea lor de la tastatur. Comanda Insert Into conine cuvntul Values, iar
numrul parametrilor din parantez (care ca nume sunt diferite de numele
cmpurilor din tabela Produse) trebuie s fie acelai cu numrul cmpurilor din
tabel i s corespund ca tip de valori i semnificaie. De exemplu, dac n
tabela Produse avem 5 cmpuri, n parantez, dup cuvntul Value, trebuie s
avem 5 parametrii, n aceeai ordine.
Private Sub cmdModDen_Click()
'modificarea denumirii unui produs la care este cunoscut codul
v_cod = InputBox("Introduceti codul produsului la care doriti sa ii modificati
denumirea:")
DoCmd.RunSQL "update produse set den_p=denumire where cod_p=" &
v_cod
End Sub
205
206
207
208
Rezolvare:
Se va crea o nou baz de date cu numele Aprovizionare. Table 1 se nchide,
fr a fi salvat. Tabelele nu vor fi create cu ajutorul instrumentelor vizuale, ci
tot cu ajutorul comenzilor SQL.
Construind matricea dependenelor funcionale se ajunge la urmtoarea
structur a bazei de date figura 6.
209
210
Observaii:
Fiecare constrngere (PRIMARY KEY, NOT NULL, FOREIGN KEY)
a fost denumit cu un nume format din prefixul pk pentru Primary Key,
nn pentru Not Null sau fk pentru Foreign Key. nainte de a specifica
constrngerea se adaug cuvntul predefinit CONSTRAINT apoi
numele constrngerii. n cazul unei chei primare compuse,
constrngerea este lsat la urm, dup ultimul cmp i definit ca fiind
combinaia dintre nrrec i codm.
Relaia dintre tabele este creat de la tabela referit (copil) la tabela de
referin (printe), setndu-se o constrngere de tip FOREIGN KEY pe
cmpul comun, utilizndu-se cuvntul predefinit REFERENCES, urmat
de numele tabelei de referin (printe) i cmpul de legtur din acea
tabel. Ambele cmpuri trebuie s fie definite ca fiind de acelai tip.
MSG este un nume de variabil, care va lua valoarea apsrii butonului
OK specificat n partea dreapt a egalitii. n partea din dreapta se
utilizez o comanda care afieaz pe ecran mesajul scris ntre ghilimele
i afieaz doar butonul OK.
2. Pentru a insera nregistrri n tabele se adaug un nou buton pe form
(se selecteaz butonul Button, apoi se execut clic pe formular). Se
modific proprietile butonului: Name: cmdInserare i Caption:
Inserare nregistrri. Pentru a asocia cod butonului, se apeleaz
meniul contextual al acestuia, se alege opiunea Build Event/Code
Builder.
Codul asociat butonului cmdInserare este prezentat n continuare:
Private Sub cmdInserare_Click()
DoCmd.RunSQL "INSERT INTO materiale VALUES (111,
'imprimanta','buc','cal.I')"
DoCmd.RunSQL "INSERT INTO materiale VALUES (112,
'mouse','buc','cal.I')"
DoCmd.RunSQL "INSERT INTO materiale VALUES (113,
'hartie','buc','cal.I')"
MSG = MsgBox("S-au introdus inregistrari in tabela materiale!",
vbOKOnly)
DoCmd.OpenTable "materiale"
DoCmd.RunSQL
"INSERT
(245369,#19/11/2011#)"
INTO
receptii
VALUES
211
DoCmd.RunSQL
"INSERT
INTO
receptii
VALUES
(245370,#25/11/2011#)"
DoCmd.RunSQL
"INSERT
INTO
receptii
VALUES
(245371,#25/11/2011#)"
MSG = MsgBox("S-au introdus inregistrari in tabela receptii!",
vbOKOnly)
DoCmd.OpenTable "receptii"
DoCmd.RunSQL "INSERT INTO receptiemateriale VALUES
(245369,111, 200, 500)"
DoCmd.RunSQL "INSERT INTO receptiemateriale VALUES
(245369,112, 25, 50)"
DoCmd.RunSQL "INSERT INTO receptiemateriale VALUES
(245369,113, 1000, 7)"
DoCmd.RunSQL "INSERT INTO receptiemateriale VALUES
(245370,111, 10, 560)"
DoCmd.RunSQL "INSERT INTO receptiemateriale VALUES
(245370,112, 15, 55)"
DoCmd.RunSQL "INSERT INTO receptiemateriale VALUES
(245371,111, 1, 600)"
DoCmd.RunSQL "INSERT INTO receptiemateriale VALUES
(245371,112, 10, 60)"
DoCmd.RunSQL "INSERT INTO receptiemateriale VALUES
(245371,113, 1, 100)"
MSG
=
MsgBox("S-au
introdus
inregistrari
in
tabela
receptiemateriale!", vbOKOnly)
DoCmd.OpenTable "receptiemateriale"
End Sub
3. Pentru a modifica structura tabelelor adaug un nou buton pe form (se
selecteaz butonul Button, apoi se execut clic pe formular). Se
modific proprietile butonului: Name: cmdModStruct i Caption:
Modificarea structuriilor tabelelor. Pentru a asocia cod butonului, se
apeleaz meniul contextual al acestuia, se alege opiunea Build
Event/Code Builder.
212
213
214
215
216
217
218
BIBLIOGRAFIE
1.
2.
3.
4.
5.
6.
Hurbean L., Dnia D., Negovan A.-M. (2008) Baze de date: de la teorie
la practic utiliznd Access 2007, Editura Mirton, Timioara
8. Florescu V. (coord.), Ionescu B. (coord.), Cozgarea G., et al (2009) Baze de
date, Editura Infomega, Bucureti
9. Fotache M. (1997) Baze de date relaionale, Editura Junimea, Iai
10. Giulvezan C., Mircea G., Trnveanu D., Margea C. (2009) Baze de date,
Editura Universitii de Vest, Timioara
11. Fleming, Candace, von Halle, Barbara (1989) Handbook of
7.
219
20. Tama I. (coord.), Stanciu V., Gheorghe M. (2010) Access 2007 Proiectare
i realizare pas cu pas, Editura Infomega, Bucureti
21. Whitehorne M., Marklyn B. (2007) Inside Relational Databases with
Examples in Access, Springer
220
GLOSAR DE TERMENI
Colecie
de date aflate n interdependen,
mpreun cu descrierea datelor i a relaiilor dintre
ele.
SGBD
Pachet software de nivel nalt, care permite
proiectarea, construirea i administrarea bazelor de
date dedicate rezolvrii problemelor din cele mai
variate domenii ale vieii reale
SGBDR
Este o un sistem de gestiune a bazelor de date care
folosete modelul relaional.
Nivelul intern al bazei de Este o colecie de fiiere coninnd datele fizice la
date
care se adaug diverse structuri auxiliare menite s
asigure accesul operativ la date.
Nivelul conceptual
Conine structura logic a bazei de date, aa cum
este ea vzut de administratorul bazei de date.
Nivelul extern
Este ceea ce vede acesta din baza de date, sau modul
cum vede acesta baza de date.
Proiectarea unei baze de Procesul de creare a unui proiect pentru baza de date
date
care s asigure desfurarea corect a activitilor i
rezolvarea cerinelor utilizatorilor.
Entitate
Mulimea tuturor elementelor de un anumit tip (care
prezint aceleai caracteristici).
Instan a unei entiti
nelegem un singur element, bine individualizat,
unic, din mulimea elementelor care formeaz
entitatea respectiv.
Atribut
O caracteristic a unei entiti.
Cheia primar
Un atribut sau cea mai mic mulime de atribute ale
unei entiti care iau, fiecare instan a entitii
respective, o valoare i numai una,
Relaie ntr-o baz de O legtur logic ntre dou sau mai multe entiti.
date
Normalizare
tehnic pentru proiectarea bazelor de date
relaionale
Redundan
o proprietate a unei colecii de date care se refer la
faptul c unele componente sunt memorate de mai
multe ori pe suportul de memorare
Baza de date
221
222
SELECT
UPDATE
223