Sunteți pe pagina 1din 26

Capitolul 1

Noţiuni introductive

1.1 Introducere
Bazele de date sunt o componentă intrinsecă din realitatea cotidiană a
unei societăţi moderne. Bazele de date pot avea dimensiuni (număr de
elemente) variate, de la câteva zeci de înregistrări (de exemplu, baza de date
pentru o agenda telefonică din telefonul mobil, lista de contacte Facebook,
sau lista de cumpărături) sau pot ajunge la zeci sau sute de milioane de
înregistrări (de exemplu, baza de date a birourilor de evidenţă a populaţiei sau
a administraţiei financiare).
Există o largă varietate de definiţii pentru termenul bază de date,
câteva dintre acestea fiind prezentate în cele ce urmează:
Definiţie 1: O bază de date (database) este o colecţie de date corelate
din punct de vedere logic, care reflectă un anumit aspect al lumii reale şi este
destinată unui anumit grup de utilizatori.

9
Definiţie 2: O bază de date, uneori numită și „bancă de date”,
reprezintă o modalitate de stocare a unor informații și date pe un suport
extern (un dispozitiv de stocare), cu posibilitatea extinderii ușoare și a
regăsirii rapide a acestora (Wikipedia.com).
Definitie 3: O bază de date (BD, eng.DB) este un ansamblu structurat
de date înregistrat pe suporturi accesibile calculatorului pentru a satisface
simultan cerințele mai multori utilizatori într-un mod selectiv și în timp util
(Rădulescu et al.).
Definiţie 4: O baza de date (database) este o colecție de date creată și
menținută computerizat, care permite operații de inserare, actualizare,
ștergere și interogare a datelor.
Definiţie 5: O bază de date conţine toate informaţiile necesare despre
obiectele ce intervin într-o mulţime de aplicaţii, relaţiile logice dintre aceste
informaţii şi tehnicile de prelucrare corespunzătoare.
Există două tipuri de baze de date, în funcţie de modalitatea de
realizare și prelucrare a datelor:
- create şi menţinute manual (de exemplu, fişele de evidenţă a cărţilor
dintr-o bibliotecă, aşa cum erau folosite cu ani în urmă) sau
- create și menţinute cu ajutorul calculatorului, aşa cum sunt
majoritatea bazelor de date folosite în momentul de faţă.

Utilizatorii unei baze de date au posibilitatea să efectueze mai multe


categorii de operaţii asupra datelor memorate:
 introducerea de noi date (insert);
 ştergerea unora din datele existente (delete);
 actualizarea datelor memorate (update);
 căutarea/consultarea/interogarea bazei de date
(query) pentru a regăsi anumite informaţii, selectate
după un criteriu ales.
O definiţie într-un sens mai restrâns a unei baze de date este
următoarea:
“O bază de date (database) este o colecţie de date creată şi menţinută
computerizat, care permite operaţii de introducere, ştergere,
actualizare şi interogare a datelor”.

Un sistem de baze de date (Database System)este un sistem


computerizat de menţinere a evidenţei aspect al vieţii reale, cu ajutorul
bazelor de date. Componentele unui sistem de baze de date sunt:
- hardware;
- software;
- utilizatori;
- date persistente.

10
SBD Utilizatori

Date persistente

Hardware
Software

Figura 1.1 Componentele unui SBD

1.2 Componentele unui sistem de baze de date


Un sistem de baze de date (SBD) are următoarele componente
(Figura 1.1): hardware, software, utilizatorii și datele.

1.2.1 Hardware
Hardware-ul reprezintă echipamentele fizice care există într-un sistem
de baze de date. În general, un sistem de baze de date este instalat pe un
sistem de calcul, astfel ca hardware-ul este acelaşi ca şi al acestuia. Există o
largă varietate de sisteme de calcul folosite pentru instalarea unui sistem de
baze de date – de la PC-uri cu performanţe medii, până la calculatoare
principale (mainframe) sau sisteme cu multiprocesoare. În mod evident,
caracteristicile sistemului de calul influenţează în mod direct funcţionarea
bazei de date. Cu toate acestea, principala caracteristică este considerată
volumul sau capacitatea de stocare (folosită în memorarea datelor). Pentru
memorarea datelor se folosesc în general discuri magnetice care au avantajul
ca oferă acces secvenţial la colecţiile de date.

1.2.2 Software
Pentru a putea folosi datele stocare în format electronic (baza de date stocată
pe discuri magnetice), utilizatorii sistemului folosesc un nivel software,
numit Sistem de Gestiune a Bazei de Date (SGBD) - (Database
Management System -DBMS). Acestarecepţionează cererile utilizatorilor de
acces la baza de date (pentru operaţii de introducere, ştergere, modificare sau
interogare), le interpretează, execută operaţiile corespunzătoare şi returnează
rezultatul către utilizatori.

11
Baza de date

Date
Date
Utilizator Aplicatie SGBD Date

Date
Date

Figura 1.2 Componente ale unui SBD

Sistemul SGBD oferă utilizatorilor o vedere(view) a bazei de date la


un nivel înalt astfel încât aceștia nu trebuie să cunoască module în care sunt
stocate datele, modul de organizare a fișierelor, structura datelor, etc. Mai
mult, sistemul de gestiune asigură protecţia datelor faţă de accese
neautorizate sau defecte de funcţionare, asigurând integritatea bazei de date.
Pe lângă SGBD, care este cea mai importantă componentă software a
unui sistem de baze de date, mai există şi alte componente: sistemul de
operare, care asigură controlul execuţiei programelor, biblioteci şi
instrumente software (toolset-uri) pentru proiectarea, dezvoltarea sau
exploatarea sistemelor de baze de date şi a aplicaţiilor de baze de date.
O aplicaţie de baze de date (Database Application) este un program
care oferă o anumită utilizare a unei baze de date într-un anumit scop. De
exemplu, programul care permite adminsitrarea studenților unei facultăți
folosind o bază de date cu informații despre aceștia (date personale, note etc.)
reprezintă o aplicaţie de baze de date.

1.2.3 Utilizatorii BD
Din punct de vedere al unui sistem de baze de date, există trei
categorii principale de utilizatori: programatorii, utilizatorii finali şi
administratorul bazei de date.

Programatorii de aplicaţii sunt cei care realizează aplicaţiile de baze


de date, folosind limbaje de programare de nivel înalt (C, C++, Cobol) sau în
limbaje de programare specific (dBase, FoxPro etc.).
Utilizatorii finali sunt utilizatorii simpli, care acceseaza baza de date
prin intermediul programului aplicație pus la dispoziție de către
administrator.Aceștia au drepturi limitate de acces la date. De asemenea,
aceștia pot fi personae cu pregătire de specialitate minimă, care nu trebuie să
cunoască amănunte de proiectarea, structura sau funcționarea bazei de date pe
care o folosesc (trebuie doar să știe să folosească aplicația de baze de date).
De exemplu, utilizatorii finali ai unui sistem de realizare a polițelor de

12
asigurare sunt agenții de asigurări, care folosesc programul adecvat (scris de
programatorii de aplicaţii), fără a fi necesar ca aceștia să cunoască întreaga
structură a bazei de date.
Administratorii bazei de date (Database Administrator) stabilesc
structura iniţială a bazei de date şi modul de memorare a datelor la nivel fizic,
acordă utilizatorilor drepturi de acces la baza de date sau părţi ale ei, asigură
securitatea datelor, modifică structura şi întreţine baza de date ( de exemplu
operațiile periodice de salvare date – backup). Aceste persoane trebuie să
aibă o înaltă calificare.

Tipurile de utilizatori prezentaţi anterior asigură exploatarea unei baze


de date după ce aceasta a fost proiectată şi realizată. Activitatea de proiectare
a unei baze de date implică şi alte categorii de personal cu înaltă calificare
tehnică (proiectanţi, programatori) sau administrativă (administrator de
date). Proiectanţii bazelor de date au responsabilitatea de a analiza realitatea
reprezentată (modelată) de baza de date respectivă, de a identifica datele ce
necesită să fie memorate, pentru a asigura menţinerea evidenţei activităţii
dorite.

1.2.4 Datele
Datele memorate într-o bază de date sunt date persistente, adică date
care rămân memorate pe suport magnetic, independent de execuţia
programelor de aplicaţii. Datele persistente ale unei baze de date se introduc,
se şterg sau se actualizează folosind date de intrare (provenite de la tastatură,
din citirea unor fişiere de date sau din recepţionarea unor mesaje). Datele de
intrare sunt, în general, date nepersistente; ele sunt generate de utilizatori şi
sunt memorate (devenind date persistente) numai după ce au fost validate
(acceptate) de către SGBD. Datele de ieşire ale unui sistem de baze de date
sunt, de asemenea, date nepersistente; ele provin din operaţii de interogare a
bazei de date şi sunt puse la dispoziţia utilizatorului (sub formă de afişări,
rapoarte tipărite, etc).

1.3 Limbajele de programare si SGBD


Din punct de vedere al unui SGBD există două tipuri de limbaje
conceptuale:
- limbaje de descriere a datelor (LDD)şi
- limbaje de manipulare a datelor (LMD).

Limbajele de descriere a datelor - LDD - (Data Description


Languages - DDL) permit definirea conceptuală a datelor, fără referire la
modul de memorare fizică a acestora.

13
Limbajele de manipulare a datelor - LMD - (Data Manipulation
Languages - DML) permit specificarea operaţiilor de introducere, actualizare,
ştergere şi interogare a datelor.

1.4 Arhitectura unui SBD


Deși în literatura de specialitate există o varietate largă de propuneri pentru
arhitectura uni SBD, există totuși un model comun de la care se pleacă.
Acesta este propus prin standardul ANSI/X3/SPARC (1975) și conţine trei
niveluri(Figura 1.3):
- nivelul extern,
- nivelul conceptual şi
- nivelulintern.

Utilizator

SBD
Nivel extern

Nivel conceptual

Nivel intern

Sistemul de calcul

Figura 1.3 Arhitectura unui SBD

Nivelul extern este legătura cu lumea exterioară (cu utilizatorii bazei


de date). Acesta este de fapt o colecţie de scheme externe sau vederi ale
diferitelor grupuri de utilizatori (Figura 1.4). Fiecare grup de utilizatori
dispune de câte o vedere individuală a datelor, evident, în funcție de tipul de
utilizator, drepturile sale de acces asupra bazei de date etc.
Nivelul conceptual conţine schema logică (conceptuală)a bazei de
date, iar nivelul intern conţine schema internă (fizică) a bazei de date.
O schemă externă (external schema) sau vedere utilizator conţine
descrierea datelor care sunt folosite de un anumit grup de utilizatori (modul
în care un anumit utilizator priveşte datele din exterior).
Pe de altă parte, schema conceptuală a bazei de date (conceptual
schema) este o reprezentare univocăşi abstractă a datelor. Cu alte cuvinte,
schema conceptuală reprezintăun mod unic în care sunt reprezentate datele,

14
indiferent de tipul de utilizator care le folosește.Aceasta descrie care sunt
datele stocate în baza de date şi care sunt eventualele asocieri dintre acestea.

Utilizator 1 Utilizator 2 ....... Utilizator n


Nivel extern

Nivel conceptual Schema


conceptuala SGBD

Nivel intern Schema


interna

Date Date Date


memorate memorate memorate
fizic fizic fizic

Figura 1.4Arhitectura unui SBD

Schema internă (fizică) a bazei de date (internal schema) reprezintă


modul în care sunt stocate datele pe suportul extern (suportul fizic).
Din acest punct de vedere, un SBD are o schemă internă, o schemă
conceptuală şi mai multe scheme externe, însă toate aceste scheme sau
vederi sunt descrieri diferite ale datelor stocate, la nivel intern. Este sarcina
SGBD-ului să asigure corespondeţa (maparea) dintre cele trei scheme - între
schema externă şi schema conceptuală şi între schema conceptuală şi schema
internă. Există variante de SGBD care nu separă complet cele trei niveluri
funcţionale ale bazelor de date, existând posibilitatea de a specifica detalii ale
schemei interne sau ale schemelor externe în cadrul schemei conceptuale.

1.5 Avantaje şi dezavantaje ale SBD-urilor


1.5.1 Avantaje
 Volum scăzut de stocare: volumul ocupat de sistemele de baze de date
este mult mai redus decât volumul ocupat de documente scrise sau de
fişiere necorelate
 Acces simulatn la date: baza de date poate fi folosită în mod
concurent de un număr variat de utilizatori; diferiţi utilizatori pot
accesa aceleaşi date în acelaşi timp
 Viteză mare de căutare, regăsire şi actualizare a informaţiilor.
 Redundanţă scăzută a datelor memorate, care se obţine prin
partajarea datelor între mai mulţi utilizatori şi aplicaţii. În stocarea

15
pe fişe sau în fişiere a datelor, fiecare aplicaţie conţinea propriile
seturi de date. În sistemele de baze de date, mai multe aplicaţii pot
folosi date comune, memorate o singură dată. De exemplu, o aplicaţie
de personal şi o aplicaţie de rezultate la examene dintr-o universitate
care exploatează o singură bază de date, pot folosi aceleaşi informaţii
referitoare la structurarea facultăţilor şi a secţiilor.
 Posibilitatea de introducere a standardelor privind modul de stocare
a datelor, ceea ce permite interschimbul informaţiilor între diferite
organizaţii.
 Menţinerea integrităţii datelor prin politica de securitate (drepturi de
acces diferenţiate sau privilegii diferite în funcţie de rolul şi tipul
utilizatorilor), prin gestionarea tranzacţiilor şi prin refacerea datelor în
caz de funcţionare defectuoasă a diferitelor componente hardware sau
software.
 Independenţa datelor faţă de limbaj sau suportul hardware utilizat.
Sistemele de baze de date sunt independente de limbaj, astfel că
acestea pot fi folosite cu limbaje și platforme diferite. Sistemele de
gestiune a bazelor de date oferă o vedere (view) externă a datelor, care
nu se modifică atunci când se schimbă suportul de memorare fizic.
 Costuri scăzute de instruire: utilizatorii adesea consideră mai uşor de
învăţat folosirea acestor sisteme.

1.5.2 Dezavantaje
 SBD-urile sunt complexe, proiectarea acestora fiind dificilă şi
consumatoare de timp
 Costuri hardware şi software iniţiale considerabile
 Erorile aparute la baza de date afectează toate aplicatiile existente
 Costuri mari de conversie de la sisteme clasice la sisteme de baze de
date
 Instruire iniţială necesară pentru toţi programatorii şi utilizatorii

1.6 Taxonomii de SBD


Există mai multe criterii după care se poate realiza o clasificare a
sistemelor de baze de date:
 Clasificare după numărul de utilizatori. Majoritatea sistemelor de
baze de date sunt sisteme multiutilizator, adică permit accesul
concurent (în acelaşi timp) a mai multor utilizatori la aceeaşi bază de
date. Un număr redus de sisteme de baze de date sunt de tip
monoutilizator, adică suportă accesul doar al unui singur utilizator
(la un moment dat).

16
 Clasificare după modelul de date. Majoritatea sistemelor de baze de
date actuale sunt realizate în modelul de date relaţional sau în modelul
de date obiect. Dezvoltarea continuă a acestor modele a condus către
o nouă categorie de baze de date, numite obiect-relaţionale, care
combină caracteristicile modelului relaţional cu cele ale modelului
obiect. De asemenea, mai sunt încă în funcţiune baze de date în
modele mai vechi (modelul ierarhic sau modelul reţea).
Aplicatie
Client

SGBD

Server BD

Figura 1.5 SBD centralizat mono-utilizator

 Clasificare după numărul de staţii pe care este stocată baza de


date. Există două categorii de sisteme de baze de date: centralizate şi
distribuite.
• Un sistem de baze de date centralizat (Centralized Database
System) este un sistem de baze de date în care datele şi
sistemul de gestiune sunt stocate pe un singut sistem de calcul
(calculator sau staţie). Un sistem centralizat poate suporta unul
sau mai mulţi utilizatori, dar, în orice situaţie, datele şi
sistemul de gestiune se află în totalitate pe o singură staţie;
• Un sistem de baze de date distribuit (Distributed Database
System) este repartizat în mai multe locaţii, astfel că poate
avea atât datele, cât şi sistemul de gestiune, distribuite în mai
multe staţii interconectate printr-o reţea de comunicaţie.
Sistemele de baze de date pot fi reprezentate din punct de vedere al
funcţionării lor printr-o arhitectură de tip client-server.Într-un sistem
centralizat există un singur server, care este chiar sistemul SGBD, care
răspunde cererilor unui singur client (în sistemele mono-utilizator) sau mai
multor clienţi (în sistemele multi-utilizator), care accesează baza de date
respectivă. Clienţiisunt programe de aplicaţii oferite de furnizorul sistemului
de gestiune sau dezvoltate de programatori (vezi figura 1.5 si 1.6).Aplicaţiile
client pot fi executate pe staţii diferite, conectate printr-o reţea de

17
comunicaţie cu staţia pe care rulează serverul.Această arhitectură permite o
prelucrare distribuită a datelor şi, mai mult, o configurare a sistemului
adaptată cerinţelor de calcul particulare.Avantajul unei astfel de abordări este
acela că se poate folosi un sistem de calcul puternic, cu performanţe ridicate,
pentru server, iar pentru client, o staţie de lucru cu performanţe
corespunzătoare aplicaţiilor de baze de date care se utilizează.

Aplicatie Aplicatie ............... Aplicatie


Client Client Client

Retea de Comunicatie

SGBD

Server BD

Figura 1.6 SBD centralizat multi-utilizator

Aplicatie Aplicatie Aplicatie


...............
Client Client Client

Retea de Comunicatie

SGBD SGBD
...............

Server BD Server BD

Figura 1.7 SBD distribuit multi-utilizator

O bază de date distribuită este o colecţie de date care aparţin din


punct de vedere logic aceluiaşi sistem, dar care pot să fie, din punct de

18
vedere fizic, memorate în mai multe staţii de calcul (locaţii - sites) conectate
printr-o reţea de comunicaţie. Sistemul software care gestionează o astfel de
bază de date se numeşte Sistem de Gestiune a Bazei de Date Distribuite -
SGBDD - (Distributed Database Management System - DDBMS). Aplicaţiile
client rulează pe alte staţii din reţea şi solicită servicii de la sistemul de
gestiune distribuit. O astfel de abordare oferă o serie de avantaje, dintre care
se menționează creşterea capacităţii de stocare şi de prelucrare a datelor,
creşterea disponibilităţii şi partajării datelor, toate acestea în detrimentul
creşterii complexităţii sistemului de baze de date. În plus, o caracteristică
foarte importantă a unui sistem de baze de date distribuit este aceea de a
asigura mecanisme de administrare transparentă a datelor (utilizatorii
lucrează cu datele, fără să realizeze că acestea sunt memorate în mai multe
staţii, în diferite locaţii).

19
Capitolul 2
Modelarea datelor

2.1 Introducere
Un model este o schemă teoretică elaborată în diferite ştiinţe pentru a
reprezenta elementele fundamentale ale unuia sau mai multor fenomene sau
lucruri. Acesta captează cele mai importante trăsături caracteristice ale
sistemului (concepte), relevante din punct de vedere al scopului pentru care
se defineşte modelul respectiv. Procesul prin care se identifică aceste trăsături
se numește abstractizare. Modelul de date reprezintă ansamblul de concepte
şi instrumente necesare pentru a construi oschemă a bazei de date. Modelarea
datelor poate viza totalitatea datelor din cadrul bazei de date saudoar o parte a
acestora. Acesta stabileşte regulile de organizare şi interpretare a unei colecţii
de date.
Există două categorii de modele de date care se folosesc în proiectarea
bazelor de date:

20
 modele conceptuale de nivel înalt şi
 modele specializate.

Un model conceptual de nivel înalt al datelor conţine o descriere


concisă a colecţiilor de date care modelează activitatea dorită (numită schemă
conceptuală de nivel înalt), fără să detalieze modul de reprezentare sau de
prelucrare a datelor.

Modelele specializate de date (cum sunt: modelul ierarhic, modelul


reţea, modelul relaţional, etc.) impun anumite structuri speciale de
reprezentare a mulţimilor de entităţi şi a asocierilor dintre acestea, structuri
pe baza cărora sunt dezvoltate sistemele de gestiune a bazelor de date. Într-un
astfel de model de date, o bază de date este reprezentată printr-o schemă
conceptuală (logică) specifică. Trecerea de la modelul conceptual de nivel
înalt la un model de date specific reprezintă etapa de proiectare logică a bazei
de date care asigură corespondenţa dintre schema conceptuală de nivel înalt a
bazei de date şi schema conceptuală specifică modelului de date respectiv.

2.2 Modele conceptuale de nivel înalt


2.2.1 Modelul E-A
Modelul Entitate-Asociere (Entity-Relationship Model), introdus în
1976 de P.S. Chen, este un model conceptual de nivel înalt al unei baze de
date, care defineşte mulţimile de entităţi şi asocierile dintre ele, dar nu
impune nici un mod specific de structurare şi prelucrare (administrare) a
datelor. Elementele acestui model sunt entităţile (entities) şi asocierile
dintre acestea (relationships).
Conform Wikipedia.com “o entitate poate fi definită ca un lucru
care este recunoscut ca fiind capabil să existe independent și care poate fi
identificat în mod unic. O entitate este o abstractizare a complexității unui
anumit domeniu”. O entitate (entity) este „orice poate fi identificat în mod
distinctiv". Aceasta se referă la un aspect al realităţii obiective care poate fi
deosebit de restul universului şi poate reprezenta un obiect fizic, o activitate,
un concept, o organizație, o persoană etc. Fiecare tip de entitate se defineşte
prin mulţimea caracteristicilor comune entităţilor aparţinândtipului.
Atributul defineşte o proprietate distinctă a unei entităţi. Fiecare
atribut prezintă un domeniu,adică o mulţime de valori admise. Într-o entitate
se regăsesc realizări corespunzătoare caracteristicilordefinitorii pentru tipul
de entitate.Atributele pot fi clasificate în funcţie de mai multe criterii:
a) după complexitate atributele sunt:
 elementare sau simple, ale căror realizări nu pot fi
descompuse (exemplu: unitate monetară, preţ unitar, etc).

21
 complexe sau decompozabile ale căror realizări sunt
decompozabile (ex: data calendaristică – se poatedescompune
în zi, lună, an; CNP – se poate descompune în gen, data
nașterii, etc).
b) după realizările pe care le pot prezenta atributele pot fi:
 obligatorii (trebuie să prezinte obligatoriu o realizare) sau
opţionale care sunt atribute care pot să nu prezinte nici o
valoare (realizare) în cadrul unei entităţi (deexemplu
atributele: telefon, fax- nu toate persoanele au telefon sau fax);
 monovaloare: atribute care prezintă o singură valoare în
cadrul unei entităţi (exemplu: numele student, data naşterii,
CNP etc.) sau multivaloare: atribute care prezintă mai multe
realizări în cadrul aceleiaşi entităţi (de exemplu, întipul de
entitate Student, entitatea Ionescu Vasile poate prezenta pentru
atributul Limba străină maimulte valori: engleză, franceză,
germană, rusă, altele).

Tip de entitate reprezintă un concept generic desemnând mulţimea


tuturor entităţilor prezentând aceleaşi caracteristici constructive (entități
similare). De exemplu, tipul de entitate „cadru didactic” (al unei universități)
reprezintă orice persoană angajată a universității, care are o anumită
specializare, funcție (asistent, șef lucrări, conferențiar, profesor etc.) şi
primeşte un anumit salariu în consecință. Acest tip de entitate poate fi descris
prin mai multe atribute, dintre care o parte sunt atribute de identificare a
persoanei (Nume,Prenume,DataNașterii,Adresa, CNP), iar altele sunt atribute
legate de activitatea acesteia în instituţia respectivă (Funcție, Specializare,
Salariu).
Prin analogie cu modelul obiect din programare, un tip de entitate
corespunde unei clase, o entitate este o instanţă a unui tip de entitate şi
corespunde unui obiect, iar mulţimea entităţilor de un tip dat corespunde
mulţimii obiectelor (instanţelor) unei clase.
Există două categorii de entităţi:
 entităţi normale (puternice, obişnuite - regular entities) şi
 entităţi slabe (dependente - weak entities).
Entităţile normale au o existenţă proprie în cadrul modelului, în timp
ce entităţile slabe nu pot exista fără entitățile normale (puternice) cu care sunt
asociate. De exemplu, o entitate „dependent” poate să reprezinte o persoană
care depinde de un angajat al unei universităţi (adică se află în întreţinerea
acestuia - de exemplu copii minori, bătrâni etc.). O entitate „cadru didactic”
este o entitate puternică, deoarece ea există în mod normal în modelul
activităţii universităţii, în timp ce o entitate “dependent” este o entitate slabă:
nu se vor stoca informaţii despre o astfel de persoană decât dacă părintele sau
susţinătorul financiar al acesteia este angajat în acea organizaţie.

22
În proiectarea bazelor de date se definesc asocieri între mulţimile de
entităţi componente, pentru a reprezenta anumite aspecte ale realităţii pe care
baza de date o modelează. O asociere (relationship) este o corespondenţă
între entităţi din două sau mai multe mulţimi de entităţi. Gradul unei asocieri
este dat de numărul de mulţimi de entităţi asociate. Asocierile pot fi binare
(de gradul 2, între 2 mulţimi de entităţi) sau k-are sau multiple (între k
mulţimi de entităţi, k > 2).

2.2.1.1 Asocierile binare


Fiind date două mulţimi de entităţi, E1şi E2, se definesc următoarele categorii
de asocieri binare:

• Asocierea “unul-la-unul” (one-to-one) este asocierea prin


care unui element (entitate) din mulţimea E1îi corespunde un
singur element din mulţimea E2, şi reciproc; se notează cu 1:1.

E1 E2
e11 e21

e12 e22

e13 e23

e14 e24

e15 e25

Lista_note Lista_studenti

Cod - Number
Examen1 - Text Nume - Text
Nota1 - Number 1:1 Prenume - Text
Examen2 - Text Cod - Number
Nota2 - Number
Cheie primara - Cod Cheie primara - Cod

Figura 2.1Asocierea 1:1

23
• Asocierea „unul-la-multe” (one-to-many) este asocierea prin
care unui element din mulţimea E1îi corespund unul sau mai
multe elemente din mulţimea E2, dar unui element din E2îi
corespunde un singur element în mulţimea E1; se notează cu
1:N.

E1 E2
e11 e21
e22
e12
e23
e24
e13 e25
e26
e14 e27

Lista_studenti Lista_cursuri
1:n
Cod_curs - Number
Nume - Text Cod - Number
Prenume - Text Nume_curs - Text
Cod - Number Sala - Text

Cheie primara - Cod Cheie primara - Cod_curs

Figura 2.2Asocierea 1:N

• Asocierea „multe-la-multe” (many-to-many) este asocierea


prin care unui element din mulţimea E1îi corespund unul sau
mai multe elemente din mulţimea E2şi reciproc; se notează cu
M:N.

24
E1 E2
e11 e21
e22
e12
e23
e24
e13 e25
e26
e14 e27

Lista_profesori Lista_cursuri
n:n
Cod_curs - Number
Nume - Text Nume_curs - Text
Prenume - Text Sala - Text
Cod - Number

Cheie primara - Cod Cheie primara - Cod_curs

Figura 2.3Asocierea M:N

Se definește cardinalitatea (multiplicitatea) unei asocieri faţă de o


mulţime de entităţi (cardinality, multiplicity) ca numărul maxim de elemente
din acea mulţime care pot fi asociate cu un element din altă mulţime a
asocierii. De exemplu, asocierea 1:N dintre mulţimile E1şi E2prezintă
multiplicitatea 1 faţă de mulţimea E1şi multiplicitatea N (se înţelege o valoare
oarecare N > 1) faţă de mulţimea E2.Raportul dintre valorile cardinalităţilor
unei asocieri binare faţă de cele două mulţimi de entităţi se numeşte raport de
cardinalitate (cardinality ratio).Asocierile multiple (k-are, k > 2) prezintă câte
un raport de cardinalitate pentru fiecare pereche de mulţimi de entităţi pe care
le asociază.

2.2.1.2 Diagrama Entitate-Asociere (Entity-RelationshipDiagram)


Diagrama Entitate-Asociere reprezintă modelul Entitate-Asociere
prin mulţimile de entităţi şi asocierile dintre acestea.Există diferite variante
de notaţii pentru diagrama E-A.Tabelul 2.1 prezintă una dintre cele mai
folosite notaţii. Astfel, un tip de entitate (precum şi mulţimea de entităţi de

25
acel tip) se reprezintă printr-un dreptunghi, iar atributele tipului de entitate
prin elipse conectate printr-o linie continuă la acesta. Pentru entităţile
puternice se utilizează un dreptunghi desenat cu linie simplă, iar pentru
entităţile slabe se utilizează un dreptunghi desenat cu linie dublă.

Tabelul 2.1 Notaţii folosite la diagrama E-A


Tip entitate Tip de entitate puternică

Tip entitate
Tip de entitate slabă

Nume atribut Atribut

1 N
Asociere 1:N între două
A entități

O asociere (tip de asociere) dintre două sau mai multe tipuri de


entităţi se reprezintă printr-un romb conectat prin link-uri (linii continue,
formate din unul sau mai multe segmente) la tipurile de entităţi asociate. O
asociere poate să aibă sau nu un nume; dacă are un nume, acesta poate fi
înscris în rombul respectiv sau în vecinătatea acestuia. Categoria asocierii se
notează prin înscrierea multiplicităţii pe fiecare legătură care conduce la un
tip de entitate. Este posibil ca o asociere să prezinte ea însăşi atribute.În acest
caz, aceste atribute se reprezintă prin elipse conectate la asocierea
respectivă.În figurile ce urmează este prezentat un exemplu de modelare a
unei baze de date din cadrul unei facultăţi: studenţi, note, cursuri, profesori.

Cod Nume Prenume


PROFESORI

STUDENTI Nume

Cod Examen1 Nota1 Examen2 Nota2


CURSURI

NOTE Nume Cod


curs curs Sala
(Catalog)
Figura 2.4 Reprezentarea entităţilor STUDENŢI, NOTE, PROFESORI şi
CURSURI

26
Cod Nume Prenume Cod Examen1 Nota1 Examen2 Nota2

1 1
NOTE
STUDENTI (Catalog)
Are
Figura 2.5 Reprezentarea relaţiei între entităţile STUDENŢI şi NOTE

Cod Nume Prenume

STUDENTI

Participa
N

CURSURI

Nume Cod
curs Sala
curs
Figura 2.6 Reprezentarea relaţiei între entităţile STUDENŢI şi CURSURI

Cod Nume Prenume Cod Examen1 Nota1 Examen2 Nota2

1 1
NOTE
STUDENTI (Catalog)
Are
M

Participa
N

N M
CURSURI PROFESORI

Preda

Nume Cod Nume


curs Sala
curs

Figura 2.7 Diagrama E-A pentru baza de date aunei facultăţi

27
Modul de stabilire a tipurilor de entităţi şi a asocierilor dintre acestea
nu este unic, deoarece graniţa dintre entităţi şi asocieri nu este, în general,
una bine precizată. Acesta depinde de modul în care proiectantul realizează
modelul conceptual. În acest fel se pot obține mai multe diagrame E-A pentru
aceeași baze de date, plecându-se însă de la un model conceptual diferit. Cu
toate acestea, proiectantul modelează aceeași realitate obiectivă.De exemplu,
pentru baza de date a facultăţii prezentată anterior se definesc tipurile
(mulţimile) de entităţi:
 STUDENTI(Cod, Nume,Prenume,Adresa,...)
 CURSURI (Nume curs, Cod curs, Sala, Credite,...)
Între aceste mulţimi de entităţi se poate defini asocierea STUDENTI-
CURSURI, cu raportul de cardinalitate M:N. Cu alte cuvinte, un student
participă la anumite cursuri.Însă, este posibil să se definească tipul de entitate
NOTE, aflat în asociere N:1 cu fiecare din tipurile de entităţi STUDENȚI şi
DISCIPLINE pentru a modela acelaşi lucru (a se vedea Figura 2.8).
În general, în modelul E-A, tipul de entitate semnifică un substantiv,
iar o asociere reprezintă un verb.

Cod Nume Prenume

1
NOTE
STUDENTI (Catalog)
Are

N
1

da
P re
CURSURI

Nume Cod
curs Sala
curs
Figura 2.8 Varianta diferită a diagramei E-A pentru baza de date a unei
facultăţi

2.2.2 Modelul E-A Extins (E-AE)


Ulterior apariţiei modelului EA, în scopul extinderii capacităţii de
modelare a cunoştinţelor din modelul EA, au fost propuse mai multe modele
semantice pentru date. În cele mai multe dintre acestea, a fost urmărită
includerea unor modalităţi de modelare care să permită ca în proiectarea

28
structurii conceptuale să se ţină seama la un anumit nivel superior de
restricţiile semantice. În acest fond a apărut modelul entitate asociere extins
(EAE), care dezvoltă modelul EA original prin folosirea unor proceduri mai
avansate de modelare conceptuală, proceduri aplicate de modelele semantice
de date.Modelul Entitate-Asociere Extins (Enhanced Entity-Relationship
Model) permite definirea de subtipuri ale unui tip de entităţi, care moştenesc
atribute de la tipul de entitate pe care îl extind (şi care, în acest context, se
numeşte supertip) şi au în plus atribute specifice semnificaţiei lor. Prin
definirea tipurilor şi a subtipurilor de entităţi se pot crea ierarhii de tipuri de
entităţi pe mai multe niveluri.Modelul E-A extins se reprezintă printr-o
diagramă E-A extinsă. Ierarhiile de tipuri se pot crea prin operaţiile de
specializare sau generalizare.
Specializarea (specialization) este un proces de abstractizare a
datelor prin care, pornind de la un tip de entitate dat, se definesc unul sau mai
multe subtipuri, diferenţiate între ele în funcţie de rolul specific pe care îl au
în modelul de date. De exemplu, din entitateaSTUDENȚI se definesc prin
specializare subtipurile STUDENȚI_LICENȚĂ, MASTERANZI și
DOCTORANZI pentru a diferenţia tipurile de student dintr-o facultate.Litera
“d” din marcajul de specializare a tipurilor indică o constrângere de disjuncţie
impusă specializării. Subtipurile de entităţi moştenesc atribute ale tipului
iniţial. Ele pot de asemenea avea şi atribute suplimentare, specifice rolului
lor. De exemplu, atributele (Cod, Nume,Prenume) ale tipului de entitate
STUDENȚI sunt moştenite de fiecare din subtipurile acestuia. Ca atribute
specifice, subtipul STUDENȚI_LICENȚĂ are atributul Specializare, care
reprezintă specializarea la care acesta este student la licență, subtipul
MASTERANZI are atributul Tip, care reprezintă tipul de masterand,
respectiv la un master de cercetare sau la un master didactic, iar subtipul
DOCTORANZI are atributul Conducător științific, care este o precizare a
conducătorului științific al lucrării.
Generalizarea (generalization) este procesul de abstractizare invers
specializării, prin care se crează un supertip de entitate pornind de la mai
multe tipuri de entităţi. Pentru definirea unei generalizări, se identifică
atributele comune ale mai multor tipuri de entităţi şi aceste atribute vor
caracteriza supertipul de entitate, iar atributele care diferă de acestea rămân
specifice fiecărui tip.
De exemplu, dacă au fost definite tipurile de entităţi:
 PC(Procesor, Memorie, Capacitate hard disk, porturi, tip carcasă)
 LAPTOP(Procesor, Memorie, Capacitate hard disk, autonomie baterie
 NETBOOK(Procesor, Memorie, Capacitate hard disk, autonomie
baterie, porturi)
se poate defini un supertip al acestor tipuri: CALCULATOR(Procesor,
Memorie, Capacitate hard disk, porturi). Acest tip va cuprinde toate atributele
comune, iar tipurile iniţiale, PC, LAPTOP şi NETBOOK, devin subtipuri ale

29
tipului CALCULATOR, fiecare conţinând atributele specifice (autonomie
baterie pentru tipul LAPTOP, NETBOOK şi Tip carcasă pentru tipul PC).
Rezultatul obţinut prin generalizare este, ca şi în cazul specializării, o
ierarhie de tipuri de entităţi; ceea ce diferă este modul în care se definesc
nivelurile ierarhiei.

Cod Nume Prenume

STUDENTI

STUDENTI MASTERANZI DOCTORANZI


LICENTA

Specializarea Tip Conducator


stiintific

Figura 2.9 Specializarea

Moştenirea atributelor. Proprietatea principală a ierarhiilor de tipuri


de entităţi create prin specializare sau generalizare este moştenirea
atributelor: atributele tipurilor de entităţi de nivel ridicat (supertipuri) sunt
moştenite de tipurile de entităţi de nivel scăzut (subtipuri).

2.2.3 Modelul Ierarhic


Modelul ierarhic este primul model care a fost dezvoltat, dar nu
există un standard în acest sens. SGBD-ul de referință pentru modelul
ierarhic este IMS (Information Management System) dezvoltat de IBM și
North American Association începând din anii 1960 în legatură cu proiectul
APOLLO.În modelul ierarhic (Hierarchical Model) o bază de date se
reprezintă printr-o structură ierarhică de înregistrări de date (records)
conectate prin legături (links). Se ajunge astfel la o reprezentare arborescentă.
O înregistrare de date în modelul ierarhic este o instanţă a unui tip de
înregistrare (record type) şi constă dintr-o colecţie de câmpuri (fields),
fiecare câmp conţinând valoarea unui atribut. Un tip de înregistrare
corespunde unui tip de entitate, iar o înregistrare corespunde unei entităţi din
modelul E-A (a se vedea Figura 2.10).
Legăturile între înregistrări în modelul ierarhic sunt de tip 1:N
(inclusiv cazul particular 1:1).Acestea se realizează între înregistrări de tip
părinte (corespunzătoare multiplicității 1 a asocierii) și înregistrări de tip fiu

30
(corespunzatoare multiplicității N a asocierii). Schema ierarhică este astfel un
arbore direcţionat, în care nodurile sunt tipurile de înregistrări. Structura
arborescentă se realizează pe mai multe niveluri, corespunzatoare tipurilor de
înregistrări. Între nodurile de pe un nivel există o singură legatură cu un nod
de pe un nivel superior, cu excepția nodului rădăcină. De asemenea, fiecare
nod are una sau mai multe legături către nodurile de pe nivelul imediat
inferior, cu excepția nodurilor frunză.
STUDENTI

STUDENTI s1 s2 s3 ...
STUDENTI

N
CURSURI

CURSURI CURSURI c1 c2 c3 ...


M

PROFESORI
N

p1 p2 p3 ...
PROFESORI PROFESORI

a) diagrama E-A b) schema conceptuala c) modelul ierarhic


Figura 2.10 Trecerea de la diagrama E-A la schema conceptuală și apoi la
modelul ierarhic

Se poate stabili o corespondenţă între o schemă conceptuală ierarhică


şi o diagramă E-A: tipurile de înregistrări corespund tipurilor de entităţi, iar
tipurile de legături corespund tipurilor de asocieri (Figura 2.10).
În modelul ierarhic nu sunt admise decât legături de tipul părinte-fiu,
care corespund asocierilor 1:1 şi asocierilor 1:N din modelul E-A. Asocierile
M:N din modelul E-A nu se pot reprezenta în mod direct în modelul ierarhic.
În mod indirect însă, se pot multiplica înregistrările fiu, atunci când există
legături (Asocieri) cu mai multe înregistrări părinte. În acest caz însă,
modelul crează o mare redundanță a datelor.Pentru evitarea redundanţelor în
modelul ierarhic, se foloseşte noţiunea de element virtual, care înlocuieşte
dublura unui element prin adresa elementului respectiv, fiecare element
apărând în baza de date reală o singură dată.
Operaţiile din bazele de date de tip ierarhic se traduc în procese de
parcurgere a arborilor. Elementele virtuale permit legarea informaţiilor din
aceeaşi entitate sau din entităţi diferite.
Avantajele modelul ierarhic sunt simplitatea şi eficienţa de calcul, dar
în prezent sunt preferate modele de date mai puternice (modelul relaţional,
modelul obiect-orientat).
31
2.2.4 Modelul Retea
Modelul reţea este cel mai apropiat de forma de reprezentare a bazelor de
date sub forma diagramelor entitate-relaţie. Deosebirea constă în faptul că
toate relaţiile ce apar pot fi numai binare şi de tipul 1:1 sau 1:N (similar ca și
în cazul modelului ierarhic). Această restricţie permite reprezentarea grafică a
unei baze de date de tip reţea sub forma unui graf direcţionat
numit reţea.Într-o reţea, nodurile corespund entităţilor şi relaţiile sunt
reprezentate prin săgeţi între noduri (de la tată la fiu) şi anume săgeţi simple
dacă relaţia este de tipul 1:1 şi săgeţi duble dacă relaţia este de tipul 1:N.
Deosebirea faţă de modelul ierarhic constă în aceea că în modelul reţea
asocierile M:N se reprezintă fără duplicarea înregistrărilor, fiecare
înregistrare putând fi referită de mai multe înregistrări, ceea ce elimină
redundanţa.

În modelul reţea, entităţilor le corespund fişiere logice care au drept


câmpuri atributele entităţii şi eventuale câmpuri de legătură pentru relaţii.
Fiecărui element al entităţii îi corespunde o înregistrare logică. Dacă
înregistrările sunt identificate numai prin relaţia cu alte entităţi, atunci se mai
adaugă la înregistrarea logică încă un câmp ce cuprinde un număr de ordine
care permite identificarea acestor înregistrări.

Dezavantajul modelului rețea derivă din complexitatea reprezentării


datelor și a faptului că fiecare interogare trebuie să fie cunoscutăa priori încă
din faza de proiectare.

2.2.5 Modelul relațional


Modelul relaţional (Relational Model) se bazează pe noţiunea de
relaţie (relation) din matematicăşi a fost introdus de E.F. Codd (IBM). Primul
SGBD relațional a fost System R(IBM, 1970), după care numeroase
companii au realizat sisteme de gestiune relaţionale (Oracle, Microsoft,
Ingres, Sybase, etc.), iar aplicaţiile de baze de date relaţionale începând să fie
folosite pe scară largă. Pe lângă avantajul unui model de date precis şi
simplu, sistemele de baze de date relaţionale mai beneficiază şi de un limbaj
de programare unanim recunoscut şi acceptat, limbajul SQL (Structured
Query Language), pentru care au fost emise mai multe standarde de către ISO
(International Standardization Office). Majoritatea SGBD-urilor relaţionale
actuale implementează versiunea SQL92 (sau SQL2). Marea majoritate a
SGBD-urilor moderne sunt SGBD-uri relaţionale.
Se caracterizează prin reprezentarea datelor sub formă de
structuribidimensionale, asemănătoare tabelelor.Avantajele pe care le
prezintă acest model sunt:
 asigură metode şi tehnici eficiente de verificare a coerenţei şi
redundanţeidatelor;

32
 dispune de un suport teoretic puternic din punct de vedere matematic;
 asigură un grad înalt de independenţă în raport cu sistemele de calcul;
 oferă posibilitatea utilizării de limbaje procedurale bazate pe
algebrarelaţională;
 defineşte modul de manipulare a datelor la nivel de relaţie (limbajul
SQL)
În modelul relaţional, un tabel (table) este o reprezentare a unei relaţii
şi este compus din următoarele părţi (Figura 2.11):
 Numele tabelului, care este identic cu numele relaţiei pe care o
reprezintă.
 Un număr de coloane egal cu numărul de atribute ale relaţiei,
fiecare coloană reprezentând un atribut.
 Capul tabelului, în care se înscriu numele atributelor relaţiei,
fiecare atribut fiind înscris în coloana corespunzătoare.
 Liniile tabelului: ficare linie corespunde unei entităţi; în
fiecare element al unei linii există valoarea atributului
corespunzător.

Numele
Atribute
relaţiei

Figura 2.11 Tabelul în modelul relaţional


Trebuie facută distincţia între table şi relaţie. Relaţia este ceva
abstract, iar tabelul este reprezentarea relaţiei.

2.2.6 Modelul orientat pe obiecte


Modelul orientat pe obiecte este cel mai nou tip de SGBD, care
integreazăprincipiile programării orientate pe obiecte şi ale bazelor de date.
Introducereaconceptului de obiect în cadrul SGBD-urilor a permis utilizarea
tipurilor de date neconvenţionale. Acest model constituie suportul logic
pentru gestiunea obiectelor complexe (texte, grafice, imagini, sunete) şi a
obiectelor dinamice (programe, simulări).

33
2.3 Exemple de SGBD-uri
În momentul de față, pe piață există o ofertă foarte mare desisteme de
gestiune a bazelor de date, de la sisteme care se potfolosi gratuit, până la
sisteme de înaltă performanță, a căror licenţă poate costa foarte mult.
Câteva exemple de SGBD-uri sunt prezentate în cele ce urmează:
 Microsoft SQL Server este sistemul de gestiune a bazelor de date
relaționale multi-utilizator dezvoltat de firma Microsoftpentru
sistemele de operare Windows. Au existat mai multe versiuni care
suportă standardul SQL2, cu implementarea perfomantă a
trăsăturilor avansate de stocare şi prelucrare a datelor. Pentru a
obţine gratuit o versiune de test se poate accesa
www.microsoft.com.
 Microsoft Access este unul din cele mai cunoscute sistemede
gestiune a bazelor de date relaţionale pe platforme decalculatoare
personaleşi este parte integrantă a pachetului de birotică Microsoft
Office. Microsoft Access dispune de un sistem decontrol al bazei
de date (database engine) şi o intefață grafică pentru interacţiunea
cu utlizatorul. Versiunea actuală este Microsoft Access 2011.
 Sistemul Oracle este un sistem de gestiune al bazelor de date
multi-utilizator foarte puternic, cu implementări pe toate
platformele (Windows, Linux, Unix), care oferă atât performanţe
de execuție ridicate, cât şi un grad mare de protecţie şi securitate a
datelor. În toate versiunile, Oracle oferă implementarea completă
a caracteristicilor modelului relaţional, conform standardului
SQL2, iar ultimele versiuni sunt sisteme de gestiune
obiect-relaţionale distribuite, implementând extensiile orientate
obiect prevăzute în standardul SQL3 şi oferind posibilitatea de
dezvoltare a bazelor de date distribuite. Mai multe informaţii sau
versiuni de test pot fi obţinute pe www.oracle.com.
 MySQL este un sistem de gestiune a bazelor de daterelaţionale
cu implementări pentru sistemele de operare Linux, Unix,
Windows. Acest sistem se poate utiliza gratuit, fiind de tipul
opensource. (www.mysql.com).
 IBM DB2 este un sistem de gestiune al bazelor de date alfirmei
IBM. Acest sistem asigură integritatea datelor, oferă o securitate
sporită pentru date, are o interfață grafică pentru gestionarea bazei
de date. Dispune, ca şi Microsoft SQL Server şi Oracle de
posibilitatea creării de proceduri stocate, acestea fiind nişte
proceduri care rulează pe server şi asigură o viteză mai mare de
răspuns (www.ibm.com).

34