Sunteți pe pagina 1din 11

Informatică aplicată II Cursurile 9 și 10

Cursurile 9 și 10

7. Baze de date

7.1. Ce este o bază de date

Indiferent că ne dăm seama sau nu, folosim, direct sau indirect, baze de date în mod frecvent.
De fiecare dată când se selectează un nume din agenda cu adrese de e-mail se folosește o bază de
date. Când facem o rezervare on-line la avion se folosește o bază de date. Când se începe o sesiune
de lucru într-o rețea se validează numele și parola prin comparație cu datele dintr-o bază de date.
Dacă plătim o factură se consultă și se actualizează o bază de date. Când plătim cu cardul se
utilizează o bază de date pentru confirmarea codului PIN și verificarea stării contului, etc.
O bază de date reprezintă o colecție de date stocate într-o manieră organizată.
Ca să ne facem o imagine a ceea ce înseamnă o bază de date să facem o paralelă cu o bibliotecă.
Gestionarea eficientă a unui volum mare de cărți (în stoc sau împrumutate), verificarea rapidă a
titlurilor și a autorilor, găsirea ușoară a cărților solicitate, etc. presupune o formă de organizare
superioară care s-a perfecționat în timp. Fiecare carte din bibliotecă are o fișă de evidență, un
număr de inventar, un cod de clasificare. Aceste fișe sunt organizate după anumite criterii care să
permită o identificare ușoară și localizarea cărților la raft.
Avem nevoie de baze de date pentru a păstra într-un format utilizabil date și informații legate
de evenimente, tranzacții, etc. și la nevoie de a le regăsi și de a le prelucra după cum ne cer
împrejurările.
Gestiunea unei baze de date se face printr-un pachet de programe specializat, numit Sistem de
Gestiune a Bazelor de Date (SGBD).
Aceste programe permit crearea, citirea și actualizarea înregistrărilor dar și extragerea unor
informații de interes sub forma unor interogări.
Scopul unei baze de date este acela de a stoca volume mari de date într-un mod care să permită
o accesare rapidă și extragerea ușoară a informațiilor de interes legate de aceste date.
"Datele reprezintă ceea ce se stochează, informația reprezintă ceea ce se extrage."
Atunci când se vorbește despre o bază de date trebuie avute în vedere două aspecte
fundamentale ale acesteia: conținutul și forma de organizare.
Organizarea bazei de date se reflectă în schema sau structura sa și reprezintă un ansamblu de
instrumente pentru descrierea datelor, a relațiilor dintre acestea și a restricțiilor la care sunt supuse.
Ansamblul datelor stocate la un moment dat constituie conținutul bazei de date.
În timp ce conținutul evoluează în timp, organizarea unei baze de date rămâne relativ constantă
pe tot parcursul utilizării ei.

1
Informatică aplicată II Cursurile 9 și 10

Clasificarea bazelor de date

I. Din punct de vedere a localizării datelor


- Baze de date distribuite – la care datele sunt distribuite pe mai multe sisteme de calcul, aflate
în locuri diferite, conectate în rețea.
- Baze de date centralizate – când datele se află într-un singur loc, pe un singur sistem de calcul.

II. Din punct de vedere a modului de organizare


- Baze de date ierarhice – se dezvoltă pe baza unei structuri arborescente.
- Baze de date de tip rețea – o dezvoltarea a bazei de date ierarhice care folosește o structură
de tip rețea.
- Baze de date relaționale – se bazează pe existența unor tabele între care au fost stabilite
relații.
- Baze de date orientate pe obiecte – s-a dezvoltat de la programarea orientată obiect. Se
bazează pe operația de ”încapsulare” adică de reunire în aceeași
unitate a caracteristicilor statice și dinamice a obiectelor de
gestionat.

7.2. Bază de date relațională

Baza de date relațională se bazează pe existența unor tabele între care au fost stabilite relații.
Într-o bază de date relațională datele sunt memorate în tabele, dar nu oricum. Un tabel poate
conține o listă de clienți, un catalog de produse sau orice altă listă de informații care se referă la
un obiect (entitate).
Ideea centrală este că datele stocate în tabel se referă la o aceeași entitate. Niciodată nu se
stochează două entități diferite într-un singur tabel al bazei de date (de exemplu lista de comenzi
și lista de clienți) pentru că se îngreunează operațiile ulterioare de regăsire și acces.
Fiecare tabel dintr-o bază de date are un nume care îl identifică. Numele respectiv este
întotdeauna unic.
Fiecare coloană a tabelului va conține același tip de informație, având același tip de date și
aceleași caracteristici. Fiecare coloană reprezintă o caracteristică (atribut) al obiectului descris.
Coloana tabelului este denumită și câmp.
Câteva exemple:
- Într-un tabel cu informații despre clienți pot fi următoarele coloane:
cod client, nume client, adresă, cod poștal, fax.
- Dacă se consideră o carte într-o bibliotecă pentru entitatea CARTE se pot asocia următoarele
atribute:
nume autor, prenume autor, titlu, cota cărții, tematică, editură, anul apariției, cod ISBN.
- Pentru entitatea ANGAJAT se pot considera următoarele atribute:
marcă, nume, prenume, inițiala tatălui, data nașterii, data angajării, adresă, funcție, stare civilă.

2
Informatică aplicată II Cursurile 9 și 10

Fiecare atribut poate lua anumite valori. Valorile sunt informațiile din fiecare rând al tabelei.
Mulțimea valorilor de pe un rând se numește înregistrare. De exemplu, un tabel pentru entitatea
ANGAJAT conține pe fiecare rând date referitoare la un anumit angajat. Datele de pe o coloană
formează un domeniu de valori.
Să considerăm următorul tabel pentru entitatea STUDENT.
Entitate
STUDENT
Atribute (caracteristici)
Număr matricol Nume Prenume Media
11111 Brad Maria 8.54
11112 Craus Eugenia 9.82 Înregistrare
.
.
. Valori
.
.
20000 Zaharia Tudor 6.35

Fiecare rând dintr-un tabel trebuie să aibă o coloană (sau un set de coloane) care îl identifică
în mod unic. În tabela STUDENT coloana care identifică în mod unic fiecare rând este Număr
matricol.
Coloana (sau setul de coloane) care identifică în mod unic fiecare rând dintr-un tabel se
numește cheie primară.

Structura unei baze de date

Un fișier de tip bază de date conține următoarele obiecte:


1) Tabele (Tables) – sunt utilizate pentru a asigura funcția de stocare a datelor. O bază de date
trebuie să conțină cel puțin un tabel pentru a exista. Celelalte obiecte sunt
opționale.
2) Formulare (Forms) – oferă o interfață, care poate fi personalizată, pentru a prezenta datele
conținute în tabele (sau interogări) sub o formă ușor de înțeles. Cu ajutorul
formularelor se pot introduce date în tabele. Orice modificare efectuată la
nivelul lor conduce la modificarea informațiilor stocate în tabele.
3) Interogări (Queries) – selectează dintr-o mulțime de date o submulțime formată din date ce
satisfac anumite proprietăți. Interogările pot fi privite ca întrebări care se pun
bazei de date și la care aceasta răspunde.
4) Rapoarte (Reports) – reprezintă colecții de date din tabele sau interogări, organizate conform
necesităților utilizatorului, într-o formă care să poată fi tipărită pe suport de
hârtie.

3
Informatică aplicată II Cursurile 9 și 10

Proiectarea bazelor de date

Înainte de a trece efectiv la operația de creare a unei baze de date are loc operația de proiectare
a acesteia, ce presupune parcurgerea următoarelor etape:
1) Se stabilește necesitatea noii baze de date.
2) Se decid tabelele ce vor intra în componența bazei de date.
3) Se definește structura tabelelor (se precizează natura datelor ce vor fi reținute în baza de
date – se specifică câmpurile).
4) Se stabilesc legăturile între tabele.
5) Se introduc datele în baza de date.
6) Se crează formulare, intrerogări, rapoarte.

7.2. Baze de date în ACCESS

Microsoft ACCESS este un sistem de gestiune a bazelor de date relațional.


Toate informațiile conținute de o bază de date ACCESS sunt reunite într-un singur fișier, de
tip Microsoft Access Database (*.accdb). Acest fișier va conține toate obiectele care se vor crea
(tabele, interogări, formulare, rapoarte).
Deschiderea unei baze de date noi se va face cu opțiunea Blank desktop database. La
deschidere se va alege locul unde se va face salvarea (cu ajutorul butonului Browse) și se va
completa în caseta File Name numele bazei de date nou create (Fig.1).

Browse

Fig. 1 Deschiderea unei baze de date noi

Fereastra bazei de date va afișa în partea stângă obiectele conținute.

4
Informatică aplicată II Cursurile 9 și 10

7.3.1. Tabele

Crearea tabelelor în modul Design View

Modul de proiectare Design View se selectează din comanda View (Home, Fields) și este modul
recomandat de realizare a unui tabel (Fig. 2).

Fig. 2 Selectarea modului de proiectare Design View

După stabilirea numelui tabelului (Fig. 3) va fi afișată fereastra de proiectare.

Fig. 3 Stabilirea numelui pentru tabel

Fereastra de proiectare (Fig. 4) conține două zone:


- zona pentru introducerea câmpurilor – se introduc numele, tipul de dată, precum și o scurtă
descriere;
- zona cu proprietățile câmpurilor – permite introducerea altor opțiuni pentru fiecare câmp
(dimensiunea câmpului, formatul, reguli de validare etc.).

5
Informatică aplicată II Cursurile 9 și 10

zona pentru introducerea câmpurilor

zona cu proprietățile câmpurilor

Fig. 4 Fereastra de proiectare pentru tabele

Denumirea fiecărui câmp va fi completată în coloana Field Name.


Numele câmpului trebuie să respecte următoarele specificații:
- lungimea maximă de 64 de caractere;
- poate fi orice combinație de litere, cifre, spații și caractere speciale cu excepția
punctului ( . ), a semnului exclamării ( ! ) a parantezelor pătrate ( [ ] ) și a
accentului grav ( ` );
- nu poate începe cu caracterul spațiu;
- nu poate fi cuvânt cheie rezervat de Acces ( Date(), Between, And, Or ș.a.).
Pentru fiecare câmp trebuie specificat în coloana Data Type tipul de dată ce va fi memorat în
câmpul respectiv (Fig. 5).

Fig. 5 Alegerea tipului de dată

6
Informatică aplicată II Cursurile 9 și 10

Există următoarele tipuri de dată:


- Short Text - șir de cel mult 255 de caractere. Numerele pot fi considerate text dacă nu
necesită operații de calcul (de exemplu, numerele de telefon);
- Long Text - blocuri de text de cel mult 63999 de caractere ce conțin descrierea elementelor
(comentarii descriptive). Un astfel de bloc nu poate fi cheie primară și nu se
poate indexa după el;
- Number - date de tip numeric. Subtipul se alege prin proprietatea Field Size (Fig. 6), în
zona din subsolul ecranului.

Fig. 6 Alegerea unui subtip pentru date de tip numeric


Există următoarele subtipuri:
 Byte – valori întregi pozitive între 0 și 255;
 Integer – valori întregi cuprinse în intervalul [-32 768 , 32 767];
 Long Integer – valori întregi cuprinse în intervalul
[-2 147 483 648 , 2 147 483 647];
 Single – numere fracționare (cu virgulă) cu 7 cifre zecimale și valori
între -3.4·1038 și +3.4·1038;
 Double – numere fracționare cu 15 cifre zecimale și valori între
-1.7976·10308 și +1.7976·10308;
 Decimal – numere fracționare cu 28 de cifre zecimale și valori între
-1028 și +1028;
 Replication ID – identificator unic global pentru bazele de date la care
trebuie realizată sincronizarea unor date de la mai multe site-uri;
- Date/Time - date calendaristice sau de tip oră. Formatul se selectează din proprietatea
Format (de exemplu, Short Date, Long Time etc.). Pentru ani sunt permise
valori între 100 și 9999;
- Currency - tipul valută, format fix cu 4 zecimale pentru valori monetare;
- Autonumber - se generează automat o valoare numerică de tip Long Integer, prin
incrementare sau aleatoriu, pe care Access o completează în mod automat
pentru fiecare înregistrare adăugată în tabel. Nu există două înregistrări cu
aceeași valoare. În cazul ștergerii unei înregistrări acest număr nu va mai fi
generat;
- YES/NO - dată de tip logic: adevărat sau fals (1 sau 0);

7
Informatică aplicată II Cursurile 9 și 10

- OLE object - desemnează un obiect creat în Windows (o foaie de calcul Excel, un document
Word, fișiere grafice sau audio, etc.). Acest obiect va fi inclus în câmpul
tabelei;
- Hyperlink - combinații de caractere reprezentând o adresă de pagină Web;
- Attachment - pentru atașarea unui fișier de orice tip (ca la un e-mail);
- Lookup Wizard - se creează un câmp care permite alegerea valorilor din alte tabele sau
dintr-o listă de valori care se va defini (de exemplu, o listă care să conțină
numărul grupei: 10101, 10102, 10103 și 10104).

Opțional, pentru o mai bună înțelegere a datelor, în coloana Description se pot completa
comentarii sau observații.
Fiecare câmp din cadrul unui tabel deține un set de proprietăți care poate diferi pentru două
câmpuri, în funcție de tipul de dată ales pentru fiecare atribut în parte.
Specificarea proprietăților se face cu ajutorul subferestrelor General și Lookup din zona Field
Properties. Cele mai importante proprietăți care pot fi atribuite câmpurilor sunt:
- lungimea câmpului (Field Size) – Se stabilește pentru Short Text, Number, AutoNumber.
Permite modificarea dimensiunii implicite corespunzătoare tipului definit.
Pentru tipul Short Text se precizează dimensiunea șirului de caractere (între 0 și
255). Pentru tipul Number se selectează unul din subtipurile prezentate mai
devreme la definirea tipului Number (Integer, Single etc.)
- formatul (Format) de afișare a datelor. Această proprietate vizează atribute definite cu tipul
numeric, dată calendaristică și logic. Formatul dorit poate fi ales prin selectarea
dintr-o listă predefinită a proprietății Format (Fig. 7 ).

Fig. 7 Formatul de afișare a datelor


De exemplu, pentru câmpurile de tip numeric se poate opta pentru următoarele
formate de afișare:
 General Number – afișează numărul cum a fost introdus.
 Standard - folosește pentru afișare separatorul zecimal (.), separatorul
ordinelor de mărime (,) și convenția pentru reprezentarea
numerelor negative.

8
Informatică aplicată II Cursurile 9 și 10

 Percent - multiplică valoarea cu 100 și adaugă caracterul procent (%).


 Scientific - folosește notația științifică a numărului (exemplu, 0.15E-05).
- regula de validare (Validation Rule) - Permite definirea restricțiilor referitoare la domeniul de
valori pe care câmpul respectiv le poate lua (Fig. 8).

Fig. 8 Stabilirea unei reguli de validare


Aceste reguli de validare a valorilor pentru atributul în cauză se definesc prin
intermediul unor expresii Access. Exemplu de reguli de validare:
 >=100 and <=1000 – se acceptă pentru câmpul curent valori mai mari sau
egale cu 100 și mai mici sau egale cu 1000;
 “inginer” or “economist” - se acceptă pentru câmpul curent una din cele
două valori;
 < Date() - se acceptă pentru câmpul curent date calendaristice anterioare
datei curente;
 >=#1.05.1990# - se acceptă pentru câmpul curent date calendaristice după
1 mai 1990;
 [Pret]>=1000 – valoarea din câmpul Pret trebuie să fie mai mare sau egală
cu 1000.
În cazul în care data introdusă nu se încadrează în domeniul definit, nu va fi acceptată de baza
de date și va fi afișat un mesaj de eroare corespunzător.
- textul de validare (Validation Text) – mesajul de eroare particularizat care va apărea în cazul în
care valoarea introdusă nu respectă criteriul impus de regula de validare;
- dată cerută obligatoriu (Required) – se stabilește dacă este obligatorie completarea respectivului
câmp (Yes) sau nu (No). În cazul în care se stabilește opțiunea Yes completarea
câmpului este obligatorie, altfel nu are loc validarea întregii înregistrări;
- numărul de cifre zecimale (Decimal Places) – numărul de cifre zecimale folosit la afișarea
numărului. Opțiunea Auto stabilește automat numărul de cifre zecimale în
funcție de formatul ales;
- valoarea inițială (Default Value) – se stabilește o valoare implicită care se afișează automat pentru
câmpul în cauză, în momentul în care se adaugă o înregistrare nouă, ușurându-
se astfel munca operatorului;
- indexat (Indexed) – permite definirea unui fișier index pe atributul respectiv. Acest fișier ajută la
regăsirea mai rapidă a datelor din cadrul câmpului respectiv.

9
Informatică aplicată II Cursurile 9 și 10

Fiecare tabel trebuie să aibă o cheie primară – unul sau mai multe câmpuri cu o valoare unică
pentru fiecare înregistrare.
La crearea unui tabel, în mod implicit Access introduce la începutul tabelului un câmp nou
(ID), cheie primară, de tip Autonumber. Acest câmp poate fi modificat.
Pentru definirea unei chei primare se selectează câmpul sau câmpurile dorite și apoi se
selectează comanda Primary Key din bara de instrumente (Fig. 9) sau din meniul de comenzi
rapide.

Fig. 9 Definirea cheii primare

Câmpul sau câmpurile care formează cheia primară pot fi recunoscute prin cheia care le
însoțește în dreptul capului de rând (Fig. 10).

Fig. 10 Câmpul Număr matricol este cheie primară

Crearea unui tabel nou presupune parcurgerea următoarelor etape:


1. Introducerea numelor pentru fiecare câmp, stabilirea tipului de dată și, opțional, descrierea
câmpului;
2. Setarea unei chei primare;
3. Crearea de indexuri pentru anumite câmpuri;
4. Salvarea tabelei.

Completarea tabelelor

Se poate face în două moduri, și anume:


1. În modul Datasheet View (din comanda View). Completarea se face pe rânduri, înregistrare
cu înregistrare (Fig. 11). Trecerea la următorul rând se realizează cu tasta Tab.
sau
2. Cu ajutorul unui formular.

10
Informatică aplicată II Cursurile 9 și 10

Fig. 11 Completarea tabelului în modul Datasheet View


Modificarea tabelelor

Unui tabel îi pot fi adăugate nu numai articole noi, ci și câmpuri noi, iar unele câmpuri pot fi
desființate, structura tabelului putând fi modificată. În cazul modificării structurii unui tabel,
interogările, formularele și rapoartele care se bazează pe tabelul reproiectat trebuie refăcute.
Câmpurile pot fi și redimensionate (Field Size). Dacă modificarea se face în sensul creșterii
dimensiunii câmpului, datele mai mici vor încăpea fără probleme în noile câmpuri. Invers, dacă
noile dimensiuni ale câmpurilor sunt mai mici decât dimensiunea datelor introduse, aceste date
vor fi trunchiate și s-ar putea pierde parțial sau total semnificația valorii acestora. Din această
cauză nu se recomandă o reducere a dimensiunii unui câmp.
Pentru a se evita problemele de dimensiune câmpurile se pot alege la valoarea maximă, dar va
apărea dezavantajul spațiului mare ocupat de o înregistrare, deoarece chiar dacă unele câmpuri nu
sunt completate spațiul ocupat va fi cel dat de dimensiunile maxime ale câmpurilor (declarate).

Adăugarea unui tabel nou

Din tab-ul Create se alege opțiunea Table (Fig. 12 ).

Fig. 12 Adăugare tabel nou

11