7/31/2019 Curs1 Access Tabele-2007
1/18
1
Baze de date MS Access
1. TermeniDefiniie Un SGBD (Sistem deGestiune a Bazelor de Date) este un ansamblu complex
de programe care asigur interfaa ntre o baz de date i utilizatorii acesteia.SGBD este componenta software a unui sistem de baz de date care interacioneaz cu toate
celelalte componente ale acestuia, asigurnd legtura i interdependena ntre elementele
sistemului.
Clasificarea SGBD-ului:
1. Dup sistemele de calcul pe care se implementeaz:a. SGBD pentru calculatoare mari, se folosesc pentru bazele de date complexe i
foarte mari (ex.: Oracle, Db2, IMS)
b. SGBD pentru minicalculatoare, pentru BD complexe i mari (ex.Oracle);c. SGBD-uri pentru micro calculatoare se folosesc pentru BD complexe i de
mrim medie sau mic (ex.: Oracle, Access, FoxPro)
2. Dup limbajul de programare utilizat:a. SGBD-ul cu limbaj gazd este cel care are un limbaj de manipulare a datelor
bazat pe unul de nivel nalt;
b. SGBD-ul cu limbaj propriu este cel care are un limbaj de manipulare adatelor propriu(ex. Visual FoxPro)
3. Dup modelul logic de date implementat:a. SGBD ierarhic implementeaz un model de date arborescent
b. SGBD reea implementeaz modelul de date reea. Sunt dificil de utilizatc. SGBD relaional implementeaz modelul de date relaional (ex. Oracle,
Visual FoxPro, Paradox, Access,..)
d. SGBD orientat obiect implementeaz modelul de date orientat obiect i sepreteaz bine la problemele cu complexitate ridicat
O baz de date, reprezint o modalitate de stocare a unor informaii i date pe un
suport extern (un dispozitiv de stocare), cu posibilitatea regsirii rapide a acestora. O baz de
date este memorat ntr-unul sau mai multe fiiere. Bazele de date sunt manipulate cu ajutorul
sistemelor de gestiune a bazelor de date. Cel mai rspndit tip de baze de date este cel
relaional, n care datele sunt memorate n tabele.
n modelul relaional o tabel relaional are urmtoarele proprieti:
7/31/2019 Curs1 Access Tabele-2007
2/18
2
numele tabelei este unic n baza de date cmpurile (atributele, coloanele) au nume care sunt unice n cadrul tabelei n care au
fost definite
valorile cmpurilor sunt toate din acelai domeniu ordinea coloanelor nu are importan fiecarenregistrare (fiecare articol) este distinct; nu sunt articole duplicate exist o
cheie primar. Cheia primara identific n mod unic o nregistrare ntr-o tabel.
din punct de vedere teoretic ordinea articolelor nu are importan; practic acest lucrupoate afecta eficiena accesrii articolului.
ntr-o tabel nu exist articole duplicate (ntr-o relaie nu sunt tuple duplicate). Un
cmp sau o combinaie de cmpuri ale cror valori identific unic un articol dintr-o tabel se
numete supercheie. O supercheie care conine numrul minim de cmpuri necesare pentru
identificarea unic a articolului se numete cheie candidat.
O cheie candidat are urmtoarele proprieti:
Unicitate. Nu exist dou articole care s aib aceeai valoare a cheii candidate. Ireductibilitate. Nici o submulime proprie a cheii candidate nu are proprietatea de
unicitate.
O cheie care s-a construit folosind mai multe coloane se numete cheie compus. O
cheie care implic un singur atribut se numete cheie simpl. Fiecare tabel are cel puin o
cheie candidat.
Cheia candidat care este selectat pentru a reprezenta n mod unic un articol dintr-o
tabel se numete cheie primar. Cheile candidate care nu sunt selectate drept chei primare
se numesc cheialternative.
n general, dac un cmp apare n tabele diferite apare n tabele diferite, acest lucru
poate nsemna existena unei relaii ntre articolele din cele tabele.Se numete cheie strin(foreign key) un cmp sau un grup de cmpuri dintr-o tabel care
coincid cu cheia candidat dintr-o alt tabel.
Microsoft Access suport modelul relaional, iar o baz de date este format din mai
multe obiecte. Dintre obiecte enumerm:
- tabele conin nregistrrile propriu-zise- interogri selecteaz nregistrrile din tabel care satisfac anumite condiii;
7/31/2019 Curs1 Access Tabele-2007
3/18
3
- formulare afieaz nregistrrile din tabele, pe de-o parte, i permit adugareanregistrrilor n tabele;
- rapoarte permit tiprirea nregistrrilor din tabele sau interogri
1.2. Forme normale ale bazelor de date relaionale
E.F.Codd a propus, iniial, o procedur de normalizare a tabelelor ce intr n
componena unei baze de date, procedur care ulterior a fost mbuntit. Prin normalizare,
cmpurile sunt grupate n tabele, iar tabelele n baza de date, iar scopul normalizrii este:
- eliminarea redundanei din tabele;
- posibilitatea efecturii unor modificri ulterioare la structura datelor
- minimizarea impactului modificrii structurale a bazelor de date n aplicaii
Tabele n modelul relaional1, respect una din cele 5 forme normale:
a) Prima form normal (FN1)O tabel este n prima form normal dac valorile tuturor cmpurilor(atributelor) care o
compun sunt indivizibile (atomice) i n plus nu exist atribute sau grupuri de atribute
repetitive
Pt. Exemplificare considerm tabela PROGRAMARE cu urmtoarele cmpuri:
Id_curs Autonumber
Den_curs text
ziua - text
nregistrrile
Id_curs Den_curs Ziua
1 Informatica Luni 11.10-12.50
Vineri 12.40 14.10
2 Matematica Marti -11.10-12.50Miercuri 12.40-14.10
Tabela PROGRAMARE nu este n prima form normal, deoarece valorile
cmpurilor ziua nu sunt atomice. Pentru a nltura aceast situaie tabela cursuri poate fi
spart n 2 tabele: cursuri, programri
1 Modelul relaional a fost propus n 1970 de E.F.Codd
7/31/2019 Curs1 Access Tabele-2007
4/18
4
Tabela cursuri
Id_curs - Autonumber
Den_curs Text(30)
nregistrrile din tabela cursuri
Id_curs Den_curs
1 Informatica
2 Matematica
Tabela programari:
Id_programare - Autonumber
Id_curs - Number
Data text(20)
nregistrrile din tabela cursuri
Id_programare Id_curs data
1 1 Luni 11.10-12.50
2 1 Vineri 12.40 14.10
3 2 Marti -11.10-12.50
4 2 Miercuri 12.40-14.10
b) A doua form normal (FN2)O tabel este n a 2-a form normal dac este n FN1 i fiecare cmp (atribut) care
nu face parte din cheia primar este complet dependent funcional de cheia primar.
Fie X,Y cmpuri sau grupuri de cmpuri ale unei tabele. Domeniile valorilor
corespunztoare acestor cmpuri le notm Dom(X), respectiv Dom(Y). Spunem c Y este
dependent funcional de X, dac oricrui element din domeniul Dom(X) i corespunde un
singur element din Dom(Y).
c) A treia form normal (FN3)O tabel este n a treia form normal dac este n FN2 i fiecare cmp care nu
aparine cheii primare este netranzitiv dependent funcional de cheia primar ( cmpurile care
nu aparin cheii primare sunt reciproc independente)
7/31/2019 Curs1 Access Tabele-2007
5/18
5
2. Crearea unei baze de date n Microsoft Access
Figura 1. Crearea bazei de date
O baz de date n Access are extensia .accdb (Access 2007 data base) i conine
tabele, interogri, formulare, rapoarte si macro.
Pentru a crea o baz de date nou, se alege opiunea Blank database, se specific
numele dorit al bazei de date, iar apoi se selecteaz opiunea Create.
Pentru exemplificare, am ales s crem baza de date curs_MO.
Efect: n folder-ul specificat se va genera fiierul studenti cu extensia .accdb (access
data base).
3. Tabele n MS Access 2007
3.1. Crearea unei tabele
Pentru a crea o tabel, n cadrul unei baze de date, se alege din meniul CREATEopiunea TABLE.
7/31/2019 Curs1 Access Tabele-2007
6/18
6
Pentru a defini elementele tabelei se sugereaz s se utilizeze modul Design View .
Figura Proiectarea structurii logice modulDesign View
Modul Design View - - permite proiectarea structurii logice pentru o tabel. Structura
logic a tabelei se refer la :
- definirea cmpuriloro stabilirea tipului de dat, pentru fiecare cmpo stabilirea proprietilor cmpului, n funcie de tipul de dat ales
- alegerea cheii primare
Dup proiectarea structurii logice se poate trece la modificarea structurii fizice care
se refer lanregistrri.
7/31/2019 Curs1 Access Tabele-2007
7/18
7
3.2. Elementele unei tabele:
Informaia n tabele se regsete sub form tabelar. Coloanele corespund cmpurilor,
iar liniile nregistrrilor
1. cmpul - este o entitate logic caracterizat de un nume i un tip de dat. n funcie detipul de dat, asupra cmpului pot fi impuse restricii
2. nregistrarea cnd sunt introduse valori tuturor cmpurilor, spunem c am introdus onregistrare
3. cheia primar unul sau mai multe cmpuri, din cadrul tabelei, pot defini cheiaprimar. Dac cheia primar este format dintr-un singur cmp atunci spunem c avem
cheie primar simpl, iar n cazul n care cheia primar este format din mai multe
cmpuri, avem cheie primar compus. Cheia primar, la nivel de tabel, identific n
mod unic o nregistrare; cu alte cuvinte nu pot exista dou nregistrri cu aceeai
valoare a cheii primare.
3.3. Cmpuri definirea cmpurilor modul Design View
Cmpurile unui tabele se definesc n mod Design View, iar fiecare cmp este
caracterizat de atribute i proprieti.
Atributele cmpului se refer la:
- Numele cmpului (Field Name)- Tipul de dat pentru fiecare cmp este obligatoriu s se aleag unul din urmtoarele
tipuri de dat:
o Text n cmp se vor introduce un numr maxim de 255 caractereo Memo cnd n cmp se vor introduce mai mult de 255 caractereo Number cnd se dorete introducerea unor valori numericeo Date/Time se vor introduce date calendaristice sau ore;o Currency moned;o AutoNumber numerotare automato Yes/No cmpuri logiceo OleObject poze (nu accept formatul .jpg) sau secvene sonore; n general
fiiere create cu alte programe fiiere text, grafice din Excel, silde-uri
PowerPoint. Poate fi privit ca i cmp de tip attachement cu diferena c acesta
din urm este mult mai rapid i mai flexibil
o HyperLink legtur la alte fiiere sau site-uri
7/31/2019 Curs1 Access Tabele-2007
8/18
8
o Attachement ofer posibilitatea de a introduce date fcute n alte aplicaii,ns nu se accept caractere sau valori numerice.
o Lookup Wizard nu este un tip de dat propriu-zis. Este utilizat pentru a evitaintroducerea manual a cmpului i permite selectarea valorii dintr-o list sau
dintr-un combobox.
- Proprietile cmpurilor - n funcie de tipul de date, se pot trata diverse proprieti. Cai proprieti generice putem enumera:
o Field Size permite specificarea dimensiunii maxime sau a intervalului pentrudate de tip number
o Format stabilete modul de afiareo Input Mask masca de introducere a datelor (ex: nr. de telefon 0_ _/_ _ _ _ _ _)o Caption permite redenumirea cmpului. Numele cmpului rmne
neschimbat; se modific denumirea cmpului la afiare n mod DatasheetView
o Default Value valoarea implicit pe care o va la cmpulo Validation Rule restricia care trebuie s fie satisfcut de valoarea cmpuluio Validation Text mesajul care apare n cazul n care regula de validare
(Validation Rule) nu e satisfcut
o Indexed tabela este indexat dup acest cmp; pentru o accelerare a timpuluide cutare a nregistrrilor este indicat s se indexeze cmpul n cadrul tabelei
7/31/2019 Curs1 Access Tabele-2007
9/18
9
3.3.1. Proprietile cmpurilor
a)Cmpuri de tip Text. Proprieti
Cmpurile de tip text sunt utilizate pentru a salva caractere sau iruri de caractere.
- Field Size- se refer la numrul maxim de caractere pe care l poate conine un cmp- Input Mask masc de introducere a datelor (ex: se poate defini cmpul telefon de tip
text, iar la introducerea numrului s apar delimitrile specificate.
7/31/2019 Curs1 Access Tabele-2007
10/18
10
Figura Mti predefinite
3.3.2. Cmpuri de tip Number. Proprieti
7/31/2019 Curs1 Access Tabele-2007
11/18
11
- Field Size - se refer la tipul numrului. Dac valorile ce urmeaz a fi introduse ncmp sunt ntregi se pot alege urmtoarele tipuri de dat Byte (numere ntregi n
pozitive
7/31/2019 Curs1 Access Tabele-2007
12/18
12
intermediul cmpurilor care sunt chei primare, respectiv cheia primar din prima tabel i
cheia primar din a doua tabel
Exemplu: Fie dou tabele: STUDENT i DATE_PERSONALE, cu urmtoarele
structuri:
STUDENT: DATE_PERSONALE
- id_student AutoNumber(PK)
- nume Text(30)
- prenume Text(30)
- id Number(PK)
- data_nasterii Date/Time
- initialaT Text(2)
- locul_nasterii Text(30)
ntre cele dou tabele se definete o relaie astfel: pentru un student, din tabela
STUDENTI, exist o singur nregistrare, n tabela DATE_PERSONALE.
Relaia dintre cele dou tabele se realizeaz prin intermediul celor dou chei primare
asociate tabelelor: cmpurile id_student(din tabela STUDENT) i id (din tabela
DATE_PERSONALE).
Observaie:
Pentru a realiza o legtur ntre dou tabele, cmpurile trebuie s aib acelai tip de
dat.
Definirea relaiei:
Din meniul DatabaseTOOLS, grupul Show/Hide se alege RelationShips
Figura Relaie one-to-one
b) Relaie de tip one-to many pentru o nregistrare din tabela printe corespundmai multe nregistrri din tabela copil. Relaia se realizeaz prin intermediul cheii primare
7/31/2019 Curs1 Access Tabele-2007
13/18
7/31/2019 Curs1 Access Tabele-2007
14/18
14
STUDENTI: MATERII
- id_student AutoNumber(PK)
- nume Text(30)
- prenume Text(30)
- grad - Number
- id_materie Number(PK)
- den_materie Text(30)
- an_studiu Valori I,II sau III
- semestrul I sau II
Un student, are ntr-un semestru mai multe materii. O materie este studiat de mai
muli studeni. ntre cele dou tabele este o relaie many-to-many. Pentru a implementa relaia
se folosete o tabel intermediar, NOTE, care sparge relaia many-to-many n dou relaii
one-to-many
NOTE:- id_nota Autonumber(PK)- id_student Number aceleai valori cu cmpul id_student din tabela STUDENTI- id_materie Number - aceleai valori cu cmpul id_materie din tabela MATERII- nota Number, cu valori ntre 2 i 10- nota_re Number, cu valori ntre 2 i 10- nota_rere Number, cu valori ntre 2 i 10
Relaia iniial many-to-many se sparge n dou relaii one-to-many astfel:- pentru un student, exist mai multe note
- pentru o materie exist mai multe note
Figura Relaie many-to-many
7/31/2019 Curs1 Access Tabele-2007
15/18
15
4.1. Reguli de integritate referenial
ntre tabelele STUDENTI i NOTE exist o relaie de tip one-to-many, n sensul c
pentru un student exist mai multe note (la materii diferite). Cu alte cuvinte, pentru o
nregistrare din tabela printe (tabela din partea one a relaiei - studenti) exist mai multe mai
multe nregistrri n tabela copil (tabela din partea many note). Cu integritatea referenial ne
asigurm c nu exist nregistrri n tabela copil care nu au corespondent n tabela printe,
adic nu avem note care nu corespund niciunui student
Figura. Relaia ntre tabelele MATERII i NOTE
Dac nu avem stabilit regula de integritate referenial, atunci, n tabela note pot
exista nregistrri orfane, n sensul c pot fi note care nu corespund niciunui student.
nregistrrile din tabela printe studenti:
Figura nregistrrile din tabela STUDENTInregistrrile din tabela note
Figura: nregistrrile din tabela NOTE
n tabela note, la cmpul id_student, avem valoarea 10 care nu au corespunde
niciunei nregistrri din tabela studenti. Aceste nregistrri se numesc nregistrri orfane.
7/31/2019 Curs1 Access Tabele-2007
16/18
16
Pentru a evita aceste situaii, ntre dou tabele care sunt n relaie se definete regula de
integritate referenial.
Regulile de integritate referenial menin consistena nregistrrilor din tabele.
Figura Integritate referenial
Dac este stabilit regula de integritate referenial ntre cele dou tabele, nu mai pot fi
introduse nregistrri orfane.
tergerea nregistrrilor
Dac se dorete tergerea nregistrrilor din tabela printe (materii), iar nregistrrile
au corespondent n tabela copil (note), atunci nregistrrile nu pot fi terse. Trebuie terse mai
nti nregistrrile din tabela copil i apoi nregistrrile din tabela printe.
Pentru a face tergerea direct, fr o tergere prealabil n tabela copil, trebuie
selectat opiunea Cascade Delete Related Records.
TabelaPRINTE Tabela
COPIL
7/31/2019 Curs1 Access Tabele-2007
17/18
17
Tema de laboratorT1S se proiecteze baza de date academie cu urmtoarele tabele :
- Tabela GRADE:o id_grad Autonumbero den_grad Text(30)- Tabela STUDENTI:o nr_matricol Autonumbero nume Text(40)o prenume Text(40)o grad valoare din tabela GRADEo data_nasterii Date/Timeo specializarea MO, MEF sau APo grupa valorile 11, 12,... 20o solda - Currencyo poza Ole Objecto observatii memoo liceu_militar Yes/Noo site hyperlink
- Tabela MATERIIo id_materie Autonumbero den_materie Text(50)o an_studiu O valoare 1, 2 sau 3o semestrul o valoare 1 sau 2o credite o valoare numeric, ntre 1 i 6
- Tabela NOTEo id_nota- Autonumbero id_stud Number (acelai cmp cu cel din tabela STUDENTI)o id_mat Number (acelai cmp cu cel din tabela MATERII)o nota Number(Byte )- valoare cuprins ntre 1 i 10o nota_re Number(Byte) - valoare cuprins ntre 1 i 10o nota_rere Number(Byte) - valoare cuprins ntre 1 i 10o nota_marire Number(Byte) - valoare cuprins ntre 1 i 10
Relaii:- ntre tabelele grade i studeni se definete o relaie one-to-many.- ntre tabelele materii i studenti o relaie many-to-many spart de tabela note
Obs! Cmpurile subliniate sunt chei primare n tabele
7/31/2019 Curs1 Access Tabele-2007
18/18
18
T2Construii o baz de date care s conin tabelele:CRIcota_cartetitlu
autordomeniunr_exemplarepret
CITITORInr_matricolnume
prenumeadresa
Cerine: n MS Access construii tabelele. Stabilii tipul de relaie i apoi o implementai,stabilind i integritatea referenial.
T3Se consider urmtoarele tabele:MAINI
nrmarcamodel
OFERI
id_sofernumeprenume
Construii n Access tabelele implementnd tipul de relaie corespunztoare.
T4Construii 3 baze de date, la alegere, n care s avei implementate toate tipurile de relaii.