Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
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ţă.
10
SBD Utilizatori
Date persistente
Hardware
Software
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
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.
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.
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).
13
Limbajele de manipulare a datelor - LMD - (Data Manipulation
Languages - DML) permit specificarea operaţiilor de introducere, actualizare,
ştergere şi interogare a datelor.
Utilizator
SBD
Nivel extern
Nivel conceptual
Nivel intern
Sistemul de calcul
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.
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
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
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ă.
Retea de Comunicatie
SGBD
Server BD
Retea de Comunicatie
SGBD SGBD
...............
Server BD Server BD
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.
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).
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).
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
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
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
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ă.
Tip entitate
Tip de entitate slabă
1 N
Asociere 1:N între două
A entități
STUDENTI Nume
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
STUDENTI
Participa
N
CURSURI
Nume Cod
curs Sala
curs
Figura 2.6 Reprezentarea relaţiei între entităţile STUDENŢI şi CURSURI
1 1
NOTE
STUDENTI (Catalog)
Are
M
Participa
N
N M
CURSURI PROFESORI
Preda
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.
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
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.
STUDENTI
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
PROFESORI
N
p1 p2 p3 ...
PROFESORI PROFESORI
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
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