Documente Academic
Documente Profesional
Documente Cultură
Baze de Date Pentru Incepatori
Baze de Date Pentru Incepatori
BAZE DE DATE
I
UTILIZAREA ACESTORA
Adriana OLTEANU
Magdalena ANGHEL
2005
TEHNOLOGIA INFORMAIEI
Baze de date i utilizarea acestora
Adriana OLTEANU
Magdalena ANGHEL
2005
2005
Pagina
vi
1.1. Introducere
5
5
7
8
10
11
Bibliografie
12
14
14
14
15
16
16
17
19
2.4.Limbaje SGBD
20
2.5.Interfee SGBD
Interfee bazate pe meniuri
Interfee grafice
21
22
24
25
Biblliografie
27
28
29
32
34
34
35
36
37
38
39
40
41
44
44
45
46
46
47
48
50
51
52
53
ii
41
55
56
Biblliografie
57
61
4.1. Introducere
4.1.1. Deschiderea i nchiderea aplicaiei Microsoft Access
4.1.2. Crearea unei baze de date noi
4.1.3. nchiderea unei baze de date
62
62
63
63
64
66
68
68
69
72
73
74
74
74
75
77
79
79
90
92
93
94
99
84
85
86
iii
101
Biblliografie
102
104
105
105
105
105
109
112
113
114
Bibliografie
114
110
110
112
116
117
117
117
117
123
125
125
125
127
Biblliografie
127
iv
Introducere
Introducere
Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic, 1994
Bibliografia este prezentat i la sfritul fiecrei uniti de nvare
n cazul n care nu vei reui s rezolvai problemele propuse trebuie
recitite zonele de text care apar nainte de lucrarea de verificare. n
sperana c nu vor exista probleme v urm:
Spor la treab!
Autorii
vi
Pagina
1.1. Introducere
5
5
7
8
10
11
Biblliografie
12
1.1. Introducere
n ultimii ani, dezvoltarea sistemelor de baze de date
reprezint unul dintre cele mai importante aspecte n domeniul
tehnologiei informaiei, avnd un impact decisiv asupra modului de
organizare i funcionare a numeroaselor instituii i servicii.
Acestea sunt companiile de comunicaie, intreprinderile de comer,
serviciile bancare, serviciile de transport, asigurrile, universitile
etc. Acestea sunt dependente de funcionarea corect i
nentrerupt a sistemelor de baze de date.
Sistemele de baze de date sunt o component important a
vieii de zi cu zi n societatea modern. Zilnic, majoritatea
persoanelor desfoar activiti care implic interaciunea cu o
baz de date: depunerea sau extragerea unei sume de bani din
banc, rezervarea biletelor de tren sau de avion, cutarea unei
cri ntr-o bibliotec computerizat, gestiunea angajailor dintr-o
firm, cumprarea unor produse etc.
Bazele de date pot avea mrimi (numr de nregistrri) i
complexiti extrem de variate, de la cteva zeci de nregistrri (de
exemplu, baza de date pentru o agend de telefon a unei
persoane)
2
Test de autoevaluare
2. Dai o definiie a bazelor de date?
10
11
Bibliografie:
12
Pagina
14
14
14
15
16
16
17
19
2.4.Limbaje SGBD
20
2.5.Interfee SGBD
Interfee bazate pe meniuri
Interfee grafice
Interfee bazate pe forme
Interfee n limbaj natural
Interfee specializate aferente cererilor repetate
Interfee pentru administratorii bazelor de date
21
22
24
25
Biblliografie
27
13
14
Utilizator
Aplicatie
SGBD
Baza de date
15
17
Nivel extern
Nivel conceptual
Nivel intern
Vedere
grup
utilizator 1
Vedere
grup
utilizator n
Schema conceptuala
Schema interna
Date memorate
18
Test de autoevaluare
2. Ce reprezint structura unei baze de date?
19
21
Test de autoevaluare
6. Ce sunt interfeele sistemelor de gestiune a bazelor de date?
23
24
25
ntrebarea 7.
Cteva dintre cele mai importante sisteme de gestiune a bazelor
de date sunt: Microsoft SQL Server, Oracle, MySQL, IBM DB2,
Microsoft Access, Visual FOX PRO etc.
Bibliografie:
26
Pagina
28
29
32
34
34
35
36
37
38
39
40
41
44
44
45
46
46
47
48
50
51
52
53
55
56
Biblliografie
57
27
41
28
29
30
Exemplu:
Pe parcursul manualului vom proiecta i realiza o aplicaie
simplificat pentru gestiunea informaiilor referitoare la notele
obinute de studenii dintr-o universitate la anumite materii. Baza
de date se va numi Universitate. Pe parcursul acestui capitol
aceasta va fi rafinat la modelul entitate-relaie, un model
conceptual de nivel nalt. Acest model asigur perceperea de
ctre utilizatori fr s prezinte detaliile de stocare a datelor
pstrate n calculator. n faza preliminar, dup analiza cerinelor
se cunosc urmtoarele informaii :
Test de autoevaluare
1. Care sunt etapele ce trebuie parcurse pentru o proiectare corect
a bazei de date?
31
33
Test de autoevaluare
2. Care sunt obiectele bazei de date? Dai scurte definiii
pentru fiecare obiect i specificai ce termeni se mai folosesc
pentru fiecare dintre ele.
r2
r3
E21
E22
E23
E2
r1
r2
E12
E13
r7
E1
E21
E22
E23
E24
E25
E26
E27
E2
35
E11
r1
r2
E12
E13
E14
E1
r7
E21
E22
E23
E24
E25
E26
E27
E2
36
r1
E12
E13
E14
E1
37
Entitate tip
Entitate tip
Atribut
Atribut
Tipul relaiilor
Tip
relatie
Exemplu:
n continuare, se exemplific dezvoltarea
conceptual de nivel nalt al bazei de date Universitate.
Denumire
modelului
NumeDecan
Adresa
Facultate
Nume
1
Prenume
DataNast
Nota
CNP
1
Studeni
StudPersonal
Tata
Denumire
CodFac
Note
An
N
Materii
An
Profesor
Data
38
Test de autoevaluare
g
39
40
41
Exemplu:
Revenind la baza de date proiectat de noi, numit
Universitate vom defini cheile primare i cele strine din cadrul
fiecrei tabele. Cheile primare vor fi subliniate pentru o mai clar
interpretare.
42
Test de autoevaluare
5. Ce sunt constrngerile? Dai exemple de tipuri de constrngere.
43
CodMaterie
Denumire
An
NumeProfesor
Analiz matematic
45
Denumire
Analiz matematic
Analiz matematic
Analiz matematic
An
1
1
1
NumeProfesor
O.Stanil
P.Flondor
M.Olteanu
46
Exemplu:
S considerm baza de date Universitate, mai exact tabela
StudPersonal, care are structura:
StudPersonal (CodStud, CNP, Nume, Init, Prenume, DataNasterii,
LocNat, Tata, Mama, Adresa)
Nu are rost s stocm un alt cmp numit Vrsta, care se
poate calcula din DataNasterii.
3.7.4. Forma normal Boyce-Codd (FNBC)
Forma normal Boyce-Codd este o form strict FN3,
nelegnd prin aceasta c fiecare tabel FNBC este n acelai
timp o tabel FN3, cu toate c o tabel FN3 nu este n mod
necesar i o tabel FNBC. Cele dou forme sunt asemntoare,
ambele impunnd condiia ca atributul care determin funcional
alte atribute s fie o cheie a tabelei. Forma normal Boyce-Codd
este mai restrictiv dect FN3, deoarece n FNBC se impune
aceast condiie tuturor atributelor, prime sau neprime, pe cnd n
FN3 condiia se impune numai atributelor neprime. Atributele
prime sunt atributele care aparin unei chei, iar celelalte se
numesc atribute neprime.
Orice tabel format din dou atribute este FNBC, FN2 i
FN3.
Aceast tabel compus din dou atribute este FN2,
deoarece, fie cheia este format din ambele atribute i atunci nu
exist atribute neprime, fie cheia este format dintr-unul din
atribute, iar dependena funcional a celuilalt atribut (care este
atribut neprim) fa de cheie este total.
Aceast tabel compus din dou atribute este FN3
deoarece este FN2 i nu poate exista nici un atribut neprim care
s determine funcional un alt atribut neprim, deoarece o tabel cu
dou atribute nu poate avea dect cel mult un atribut neprim.
Test de autoevaluare
6. Ce reprezint procesul de normalizare i specificai formele
normale.
47
48
Tabela de date
Index
Acces
Criteriu
Criteriu
49
50
51
52
53
54
55
56
Bibliografie:
58
Pagina
61
4.1. Introducere
4.1.1. Deschiderea i nchiderea aplicaiei Microsoft
Access
4.1.2. Crearea unei baze de date noi
4.1.3. nchiderea unei baze de date
62
62
63
63
64
66
68
68
69
72
73
74
74
74
75
77
79
79
90
92
93
94
99
84
85
86
59
60
101
Biblliografie
102
61
4.1. Introducere
Pe parcursul acestui capitol vom face referire la baza de
date analizat i proiectat n capitolele anterioare. Aceast baz
de date se numete Universitate i conine urmtoarele tabele:
Facultate(CodFac, Denumire, Adresa, NumeDecan)
Studenti(CodStud, CodFac, An, Grupa, Media, Bursa)
StudPers(CodStud, CNP, Nume, Init, Prenume, DataNasterii,
LocNast, Tata, Mama, Adresa)
Materii(CodMaterie, Denumire, An, NumeProfesor)
Note(CodNota, CodStud, CodMatrie, Nota, Data)
Observaie: Cmpurile subliniate sunt chei primare n fiecare
tabel.
n acest capitol vor fi prezentate o serie de exemple pentru
nelegerea mai exact a limbajului de interogri SQL. Toate
exemplele au fost dezvoltate in sistemul de baze de date Microsoft
Access.
4.1.1. Deschiderea i nchiderea aplicaiei Microsoft Access
Pentru a deschide aceast aplicaie folosim meniul StartPrograms-Microsoft Access.
62
din bara de
63
Memo
Dimensiunea unui cmp de tipul Memo este de 64KB
(kilooctei), asta nsemnnd c putem stoca aproximativ 16 pagini
de text scris la un rnd pentru fiecare nregistrare. Cmpurile
memo constau numai din text. Pot fi incluse secvene de salt la
nceput de rnd sau salt la rnd nou, dar nu se accept opiuni de
formatare a textului sau indentarea unui paragraf.
Numr
Tipul numr (Number) include mai multe tipuri care difer
prin modul de stocare i viteza de rspuns. Acestea sunt:
1.
2.
3.
4.
5.
6.
Dat calendaristic/Or.
Microsoft Access stocheaz intern datele calendaristice sub
forma unor numere n virgul mobil pe 8 octei, ora fiind
reprezentat ca o fraciune dintr-o zi. n general este suficient n
majoritatea situaiilor opiunea Short Date (Forma scurt a datei),
dei s-ar putea s dorim ca anul s fie reprezentat pe formatul de
4 cifre.
Valut
.
65
Da/Nu
Tipul Da/Nu (Yes/No) stocheaz numai valori true sau false
(adevrat sau fals). O astfel de valoare poate fi afiat n una din
formele True/False, Yes/No sau On/Off.
Obiect OLE
Tipul de cmp OLE este destinat pstrrii datelor provenite
de la alte programe, care s-au nregistrat ele nsele ca servere
OLE n Windows.Aceasta permite bazei de date s stocheze
documentele create de programe de prelucrare a textelor, seturi
de foi de calcul, ilustraii, sunete, videoclipuri, etc.
OR
TRUE
FALSE
NULL
XOR
TRUE
FALSE
NULL
TRUE
FALSE NULL
TRUE
TRUE
NULL
TRUE NULL
FALSE NULL
NULL
NULL
TRUE
FALSE NULL
TRUE
FALSE
NULL
TRUE
FALSE NULL
FALSE NULL
67
FALSE
FALSE
FALSE
TRUE
TRUE
TRUE
TRUE
FALSE
68
simplificat
pentru
aceast
comand
este
69
70
71
72
73
75
Dup rularea acestei interogri se va terge nregistrarea a4-a, aceasta ndeplinind condiia media<7.
tergerea datelor dintr-o tabel n modul grafic se face
astfel: ne poziionm n obiectul Tables, unde sunt afiate toate
tabelele din baza de date, apsm clic dreapta de la mouse pe
tabelul din care dorim s tergem anumite date i facem opiunea
Open. Va aprea o fereastr cu datele existente n tabela
respectiv. Pentru a terge o nregistrare ne poziionm n partea
stng a nregistrrii dorite pentru tergere, apsm clic dreapta al
mouse-ului i facem opiunea Delete Record.
Va aprea un mesaj de confirmare:
76
77
Teste de autoevaluare
4. Care sunt operaiile care se pot efectua n cadrul unei baze de
date?
78
79
80
81
b. Alias de colan
n cazul n care clauza SELECT conine expresii, numele
coloanelor din rezultat sunt date de acestea. Dac se dorete ca
n rezultat coloana respectiv s aib alt nume, acesta se poate
specifica cu AS nume_nou.
Exemplu:
Afiarea numelui studentului cu denumirea Nume_Student, a
prenumelui cu denumirea Prenume_Student din tabela
StudPersonal.
select nume as Nume_Student, prenume as Prenume_Student
from StudPersonal;
82
c. Constante (literali)
Dac n lista SELECT se gsesc i constante atunci pe
acele coloane toate liniile rezultatului vor conine valorile
respective:
Exemplu:
Selectarea numelui studentului, textul este nscut la data de i
DataNasterii din tabela StudPersonal.
select nume, este nascut la date de, DataNasterii from
StudPersonal;
83
84
din
tabela
85
86
Exemplu:
Afiarea codului facultii, media, grupa, anul i valoarea bursei
pentru studenii care au bursa egal cu 4400000 i media mai
mare sau egal cu 9 sau sunt la facultatea cu codul 3.
select CodFac, Media, Grupa, An, Bursa from Studenti where
(Bursa=4400000 and media>=9) or CodFac=3;
Operatorul BETWEEN
87
Exemplu:
Afiarea codului facultii, media, grupa pentru studenii care au
media cuprins ntre 8 i 9 inclusiv.
select CodFac, Media, Grupa from Studenti where media between
8 and 9;
b.
Operatorul IN
Sintaxa: IN (v1,v2,...vk)
Operatorul IN indic apartenena la o mulime de valori
(v1,v2,...vk). Este de asemenea un operator derivat, dar este
foarte util pentru simplificarea scrierii cererilor n cazul n care
mulimea conine un numr mare de valori.
Exemplu:
Afiarea codului facultii, codul studentului, grupa, bursa pentru
studenii care au codul facultaii 1 sau 3.
select CodFac, CodStud, Grupa, Bursa from Studenti where
CodFac in (1,3);
c.
Operatorul IS NULL
88
Exemplu:
Afiarea codului facultii, codul studentului, grupa pentru studenii
care nu au bursa.
select CodFac, CodStud, Grupa from Studenti where bursa is null;
d.
Operatorul LIKE
89
91
92
93
94
95
Pasul 2:
Apsm dublu clic pe opiunea Create query in Design view i se
va deschide fereastra care conine toate tabelele din baza noastr
de date:
96
Pasul 3:
Alegem tabelele care ne sunt necesare pentru interogare. n cazul
nostru StudPersonal, Materii i Note, apsnd pe rnd butonul
Add.
Pasul 4:
Se aleg pentru fiecare tabel cmpurile care trebuie afiate i se
seteaz un criteriu dac acesta exist.
97
Pasul 5:
Se apas ! (Run) i se va afia rezultatul frazei SQL.
98
99
101
Bibliografie:
102
Pagina
104
105
105
105
105
109
112
113
114
Bibliografie
114
103
110
110
112
ce este un formular
104
105
106
Pas 2:
n aceast etap se alege modul n care s fie afiate atributele n
formular i se apas Next
Pas 3:
n aceast etap se pot alege din stilurile predefinite, stilul pe care
l dorii s l conin formularul.
107
Pas 4:
Aceasta este etapa final, n care v alagei numele dorit penrtu
formular i dac dorii s introducei date n tabel cu ajutorul
formularului.
108
109
Butonul
se folosete pentru poziionarea pe prima
nregistrare a tabelei
Butonul
se folosete
nregistrarea anterioar
Butonul
urmtoare
Butonul
se folosete pentru poziionarea pe ultima
nregistrare a tabelei
Butonul
nou.
pentru
rentoarcerea
la
110
Exemplu:
De exemplu, dorim s scriem n antet Formular pentru
introducerea datelor . Pentru asta va trebui s facem loc n partea
antetului csuei de text, trgnd efectiv cu mouse-ul antetul i
apoi n spaiul creat introducem textul dorit. Pentru a introduce un
text trebuie apsat butonul
de pe bara de instrumente. Dup
apsarea acestui buton selectai locul unde dorim poziionarea
textului i apoi vom introduce textul.
111
112
Teste de autoevaluare
1. Ce este un formular?
113
Bibliografie:
114
Pagina
116
117
117
117
117
123
125
125
125
127
Biblliografie
127
115
116
117
Exemplu:
Vom exemplifica crearea unui raport nou pentru afiarea
datelor n tabela Facultate, folosind opiunea Create report by
using wizard, urmnd paii necesari pentru a crea raportul dorit.
Pas 1:
Se alege tabela (sau tabelele) cre conine cmpurile care
trebuie s fie coninute n raport i se apas Next. Mai exact,
putem crea un raport care s conin numai anumite cmpuri
dintr-o tabel i alte cmpuri din alte tabele, acest lucru fcnduse alegnd tabela corespunztoare i selectnd cmpurile dorite.
Selectarea cmpurilor dintr-o tabel se face astfel: se
poziioneaz pe respectivul cmp i se apas butonul
. Dac
dorim ca toate cmpurile dintr-o tabel s apar n raport se
apas
butonul
Pentru
deselectrarea
cmpurilor
ne
, iar
118
119
120
Pas3:
La acest pas se pot grupa rezultatele care vor fi afiate n
raport dup anumite cmpuri folosind sgeile i apoi se apas
Next.
121
Pasul 6:
Se alege dintr-o list predefinite de stiluri un mod de afiare
a raportului.
Pasul 7:
Se denumete raportul cu un nume ales de utilizator i se
apas Next.
122
Pasul 8:
Se apas butonul Finish.
V vom prezenta mai jos un raport creat.
123
125
Teste de autoevaluare
1. Care sunt diferenele ntre un raport i un formular?
126
Bibliografie:
127
128