Sunteți pe pagina 1din 13

Baze de date relationate in Microsoft

ACCESS (p. a II-a)


Vom implementa o baza de date ce modeleaza activitatea studentilor din cadrul unei
universitati. Datele principale sunt informatiile despre studenti (de exemplu, numele,
prenumele, anul nasterii, CNP-ul) si informatiile despre cursuri (de exemplu, numele
cursului, numele profesorului ce tine cursul respectiv etc).

Avem mai multe obiecte: STUDENTI, GRUPE, CURSURI pe care le vom modela prin
tabele. Putem adauga obiectul ORAR pentru a gestiona orarul universitatii respective.

Deschideti Access. Creati si salvati baza de date cu numele universitate.mdb in


directorul X:\public_html.

Baza de date va cuprinde 4 tabele: STUDENTI, GRUPE, CURSURI, ORAR:

Vom crea tabelele in modul Design.Ca urmare apare o fereastra ca mai jos:
In zona Field Name se stabilesc denumirile campurilor tabelului iar in Data Type tipul de
camp, prin alegere dintr-o lista derulanta atasata. In partea de jos e ferestrei sunt vizibile
o serie de proprietati ale campurilor pe care utilizatorul le poate modifica.

De exemplu:

 Field size: determina numarul maxim de caractere ce pot fi stocate intr-un camp
 Format: determina modul in care Access va afisa articolul
 Input Mask: determina masca care se va suprapune datelor introduse, de exemplu
la campul IntervalOrar putem scrie masca ##.##/-##.##, astfel un camp
IntervalOrar corect este si 10.00-12.00
 Caption: da titlul care apare pentru campul respectiv in formulare

 Primul tabel pe care il vom crea va fi STUDENTI care are in structura sa 6 campuri.

Primul camp: IDStudent va fi de tip Autonumber si va fi cheia primara (Primary Key) a


tabelului. Campul Autonumber este o valoare numerica care este introdusa in mod
automat de Access la fiecare noua inregistrare care se adauga in tabel. Cheile primare
(Primary Keys) reprezinta o componenta esentiala a oricarei baze de date relationale.
Orice tabel trebuie sa aiba un camp cu valoare unica pentru fiecare inregistrare (campul
principal). Atunci cand se alege un camp cheie primara, trebuie avute in vedere
urmatoarele aspecte:

 Un camp cheie primara trebuie sa contina date unice;


 Access nu va permite intr-un camp cheie primara articole duplicate sau valori
nule.
Deci pentru a realiza cheia primara pentru campul IdStudent, faceti click dreapta pe
sageata de pe linia corespunzatoare campului si selectati Primary Key:

Urmatorul camp este Nume. El va fi de tip Text. La Field Size scriem 25 de caractere,
lungimea maxima pe care o va ocupa. Tot asa se defineste si campul Prenume.

Campul AnNastere va fi de tip number, integer.

Campul CNP va fi de tip Text cu Field Size = 13 deoarece acest camp are 13 cifre.

Ultimul camp IdGrupa va fi evident de tip Number (cheie straina) deoarece trebuie sa fie
corelat cu un camp Autonumber cheie primara din alt tabel. Tabelul se salveaza cu
numele STUDENTI.

Urmatorul tabel GRUPE are 4 campuri: Primul camp IdGrupa va fi Autonumber cheie
primara. Campul Grupa (Ex 112C) contine si litere si cifre si va fi de tip Text cu maxim 5
caractere deci selectam Text, Field Size = 5.

Campul Facultate va fi de tip Text, la fel si campul Specialitate.

Tabelul se salveaza cu numele GRUPE.

Cel de al treilea tabel CURSURI contine si el 4 campuri.

Ca mai sus, campul IdCurs va fi de tip Autonumber si cheie primara.


Campurile NumeCurs si Profesor vor fi de tip Text in timp ce IdGrupa va fi number,
cheie straina corelata cu cheia primara din tabelul Grupe. Tabelul se salveaza cu numele
CURSURI.

Cel de al patrulea tabel, ORAR are 4 campuri. Trebuie sa decideti singuri asupra tipurilor
de date pentru toate campurile acestui tabel. Ce trebuie mentionat, este ca campul Ziua va
avea maxim 8 caractere iar IntervalOrar maxim 11 caractere cu Input Mask = ##.##-
##.##. De exemplu 12.00-15.00 va fi o inregistrare corecta pentru campul IntervalOrar.
Tabelul se salveaza cu numele ORAR.

Relationarea tabelelor sau corelatii intre tabele

O corelatie (relationship) este o asociere (legatura) intre doua campuri similare, aflate in
tabele diferite (poate exista o corelatie intre doua tabele care partajeaza aceleasi date.

De exemplu in tabelul GRUPE din baza de date se atribuie fiecarai grupe un numar
(identificator), atunci se va folosi acel numar si pentru a identifica grupa in care este un
student din tabelul STUDENTI.

O relatie intre doua tabele functioneaza pe baza concordantei datelor din campuri cheie –
de obicei un camp cu acelasi nume in ambele tabele. Campurile prin intermediul carora
se creeaza legatura reprezinta cheia primara (primary key) dintr-un tabel (care furnizeaza
un identificator unic pentru fiecare inregistrare) si o cheie straina (foreign key) in al
doilea tabel (un camp dintr-un tabel care refera cheia primara din alt tabel).

Exista 3 tipuri de corelatii. Cele mai folosite sunt:

 Corelatia 1-n (one-to-many relationship) (cea mai folosita) – o inregistrare din


tabelul A poate avea 0, 1 sau mai multe inregistrari corespondente in tabelul B, in
timp ce fiecarei inregistrari din tabelul B ii corespunde cel mult o inregistrare din
tabelul A. De exemplu legatura dintre tabelele CURSURI si ORAR.
 Corelatia n-m (many-to-many relationship) in care o inregistrare din tabelul A
poate avea 0, 1 au mai multe inregistrari corespondente in tabelul A. Acest tip de
relatie este posibil numai prin definirea unui al treilea tabel (numit tabel de
jonctiune) a carui cheie primara consta din doua campuri – cheile straine ale
tabelelor A si B. O astfel de relatie este reprezentata de doua relatii one-to-many.
In cazul nostru, tabelele Studenti si Cursuri sunt legate printr-o relatie many-to-
many mediata prin tabelul de jonctiune Grupe.

Un student poate participa la mai multe cursuri iar un curs poate fi audiat de mai multi
studenti. Se observa astfel ca intre obiectele STUDENTI si CURSURI avem o relatie mai
multi la mai multi (“many-to-many”). O astfel de relatie se modeleaza printr-un obiect
intermediar si doua relatii unul la mai multi (one-to-many). Acest obiect il reprezinta
grupele. Astfel o grupa contine mai multi studenti iar un student nu poate face parte decat
dintr-o singura grupa (avem relatia one-to-many). Deasemenea o grupa poate audia mai
multe cursuri dar in general (si in cazul exemplului nostru) un curs nu este predat decat la
o singura grupa.

Pentru a crea o legatura intre tabele se procedeaza astfel:

1. se deschide fereastra Relationships selectand din meniul Tools, Relationships.


2. se deschide fereastra Show Table ca in imaginea de mai jos:

De aici se aduc tabelele intre care se vor crea legaturi (toate tabelele) prin selectare si
actionarea butonului Add dupa care fereastra se inchide (Close).

3. Se stabilesc campurile care se leaga si se trage cu mouseul de la cheia primara la


cheia straina corespunzatoare (de exemplu s trage campul IdGrupa din tabelul
STUDENTI peste campul IdGrupa din tabelul GRUPE). Pentru fiecare legatura
va aparea figura:
 

4. Se selecteaza optiunile (cele 3 check box-uri) si se apasa Create.

In final relationarile trebuie sa arate in felul urmator:

Formulare pentru introducerea datelor


Datele pot fi introduse direct in tabele. O metoda mai buna de introducere a datelor este
insa crearea unui formular. Formularele simplifica vizualizarea, introducerea si
modificarea datelor.

Un formular se asociaza unui tabel. Campurile inregistrarilor (structura) au fost stabilite


si salvate intr-un tabel iar cu ajutorul unui formular se introduc datele.

Crearea unui formular

Se pot crea formulare pornind de la zero sau cu ajutorul unui vrajitor (Wizard). Cu ultima
metoda se lucreaza mai usor. De altfel se poate crea un formular cu ajutorul unui vrajitor
iar apoi sa particularizam structura formularului dupa cum vrem noi.

Se vor crea 4 formulare asociate celor 4 tabele (Forms -> Create Form by using Wizard).
Va aparea:

In lista derulanta Tables/Queries se selecteaza cate un tabel (din cele 4) din care se pot
alege campuri disponibile pentru formularul respectiv. In zona Available Fields apar
campurile care se trec in formular cu butoanele > (pentru un camp) si >> (pentru  toate
campurile simultan). Se da click pe Finish si formularul este gata. Procedati similar cu
celelalte formulare. In final ar trebui a aveti:
 

Introducerea datelor intr-un formular

Se vor introduce mai intai 5 inregistrari in formularul Grupe care trebuie completat
primul deoarece datele vor fi necesare in formularul Studenti si Cursuri.

Se introduc 10 inregistrari in formularul Studenti, 5 inregistrari in formularul Cursuri si 5


inregistrari in formularul Orar.

Mai jos sunt prezentate niste exemple de date, este la latitudinea dumeavoastra ce
introduceti in formulare. Cheile primare de mai jos nu incep de la 1, sa nu va sperie acest
lucru, cheile sunt Autonumber si sunt generate automat de calculator:
 

Interogari

Interogarile (Queries) sunt de fapt intrebari pe care le punem bazei de date. Selectam
Queries-> Create Query in Desgn View. Trebuie sa apara o imagine ca mai jos:
Vom face mai intai o interogare care sa ne dea orarul. Adaugam tabelele Cursuri, Grupe,
Orar. Apoi se adauga campurile Grupa, Facultate din tabelul Grupe, campurile Ziua,
IntervalOrar din tabelul Orar si campul NumeCurs din tabelul Cursuri (prin dublu click
pe campul din tabelul respectiv sau tragand cu mouseul campul din tabel in dreptul
campului Field din interogare).

Inchidem fereastra, suntem intrebati daca vrem sa o salvam si o vom salva cu numele
QueryOrar.

Ca sa vizualizam interogarea facem dublu click pe QueryOrar.

Facem apoi o interogare prin care sa aflam orarul unei persoane introduse anterior in
Studenti. Adaugam tabelele Cursuri, Grupe, Orar, Studenti. Adaugam aceleasi campuri ca
la interogarea anterioara si in plus campurile Nume si Prenume din tabelul Studenti. Sub
nume si prenume in dreptul randului Criteria scriem numele si prenumele studentului al
carui orar dorim sa-l aflam. Inchidem fereastra si salvam cu numele QueryOrarStudent.

Realizati in mod similar o interogare care sa contina Grupa, Facultate din tabelul Grupe si
Nume, Prenume din tabelul Studenti. Salvati cu numele QueryGrupe.

Rapoarte

Rapoartele reprezinta o modalitate de a vizualiza informatiile din tabele sau interogari


inr-o maniera sugestiva in functie de cerintele noastre.

Sa luam ca exemplu Crearea unui raport pentru QueryOrar. Selectam Reports->Create


report by using wizard. Selectam QueryOrar astfel:
Selectam toate campurile apasand >> si apoi apasam next. Selectam apoi By Grupe
(pentru a vedea datele grupate dupa Grupe) si apasam Finish. Avem astfel raport pentru
orarul grupelor.
Realizati ca tema un raport similar pentru QueryGrupe (elementele vor fi grupate in
functie de grupe si cu numele studentilor in ordine alfabetica).

Salvati baza de date in directorul X:\public_html cu numele universitate.mdb si faceti


un link catre ea din pagina web personala creata la laboratorul 3.

Tema

Se va realiza o baza de date pentru un magazin al unei ‘‘cooperative’’, adica exista mai
multe persoane si fiecare persoana fabrica mai multe produse. Dupa cum se observa un
fabricant produce mai multe produse; daca am realiza o baza de date in Excel (tabela
unica), se observa ca numele fabricantului (si alte date personale) se vor repeta de atatea
ori cate produse are fabricantul. Pentru a elimina redundanta datelor, singurul tabel care
ar exista in Excel va trebui descompus in mai multe tabele.

Mai jos este dat tabelul din Excel care trebuie descompus in mai multe tabele in Access:

Este la latitudinea voastra sa alegeti modul in care impartiti datele in tabele.


Dupa ce ati realizat tabelele si relationarile, creati formularele si introduceti date cum
vreti. Apoi realizati o interogare (de exemplu produsele care costa mai putin de 100) si un
raport cu acea interogare.

Salvati baza de date in directorul X:\public_html cu numele cooperativa.mdb si faceti un


link catre ea din pagina web personala creata la laboratorul 3.

S-ar putea să vă placă și