Professional Documents
Culture Documents
****************************************************************************************
Obiectivele capitolului
****************************************************************************************
1
Mainframe reprezintă un tip de calculator de mare putere care este utilizat cel mai adesea
pentru gestiunea bazelor de date de dimensiuni foarte mari, precum şi a altor aplicaţii
asemănătoare, care necesită o capacitate de stocare foarte mare şi o interacţiune puternică
cu un număr mare de utilizatori, concretizată printr-un volum foarte mare de comunicaţii de
date.
Baze de date aplicate în economie 3
Fundamente ale bazelor de date
Cercetarea aferentă bazelor de date are aproape 35 de ani de istorie,
ani care au condus în mod inevitabil la cele mai relevante şi importante
dezvoltări ale ingineriei software. În mod natural, tehnologiile specifice
bazelor de date, arhitecturile şi cadrele conceptuale au fost tot mai bine
consolidate în ultimile decade. Mai mult, în ultimii ani, managementul bazelor
de date a evoluat astfel încât bazele de date au devenit o componentă cheie
a sistemelor informaţionale moderne. Acest aspect a provocat un impact
adânc precum şi modificări semnificative în modul de lucru al instituţiilor şi
organizaţiilor, contribuind într-o măsură relevantă la adoptarea celor mai
adecvate decizii care să le poată garanta succesul în afaceri şi nu numai. În
acest context, este important să menţionăm anumiţi factori care au contribuit
la această explozie: noile tehnici şi instrumente de modelare, cele mai
importante, fiind cele care se bazează pe o gândire orientată obiect, apariţia
procesării de tipul client-server, diminuarea semnificativă a preţurilor aferente
atât componentei hardware cât şi a celei software şi, nu în ultimul rând,
necesitatea unei administrări eficiente şi corecte a cantităţilor tot mai mari de
informaţii care caracterizează activităţile fiecărei organizaţii din zilele noastre.
În prezent, bazele de date fac parte tot mai mult din viaţa noastră de zi
cu zi în aşa măsură, încât uneori nici măcar nu mai conştientizăm că le
utilizăm. Atunci când cumpărăm ceva de la un supermarket, probabil că va fi
accesată o bază de date. Casierul va trece un cititor de coduri de bare peste
fiecare dintre articolele pe care le achiziţionăm. Acesta este conectat la un
sistem informatic pentru baze de date, care utilizează codul de bare pentru a
identifica preţul produsului pe care l-am ales, evident dintr-o bază de date
care gestionează produsele. De asemenea, dacă stocul pentru un produs
scade sub o anumită limită, este posibil ca sistemul să emită în mod automat
o comandă către un furnizor, pentru a obţine un stoc suplimentar din acel
articol.
Atunci când vizitaţi o bibliotecă (!dacă se mai întâmplă acest lucru…)
constataţi că există o bază de date care conţine informaţii detaliate despre
cărţile care formează fondul de carte al bibliotecii. Practic, pentru a
preîntâmpina anumite cerinţe, aceste sisteme se bazează pe un index
computerizat care permite cititorului să identifice o carte după titlu, autor sau
subiectul acesteia.
Date
Software
Elemente auxiliare
SGBD
Administrator Structura
baza de date conceptuala Conceptual
S.O. ...
Inginer
Structura interna
(analist) de Bază de date (fizica) Fizic
sistem
2
SGBD – Sistem de Gestiune a Bazelor de Date
8 Baze de date aplicate în economie
Fundamente ale bazelor de date
b. nivelul logic – este dat de viziunea programatorului asupra datelor. Legat
de acest nivel se pot prezenta următoarele aspecte:
• programatorul realizează programele de aplicaţie pentru descrierea şi
manipularea datelor, scrise într-un SGBD;
• programele implementează structura externă (logică) a datelor;
• structura externă este dedusă din structura conceptuală;
• structura externă reprezintă viziunea programatorului asupra bazei de
date pentru o anumită aplicaţie;
• viziunea programatorului este independentă de suportul tehnic de
informaţie (independenţa fizică);
• rezultatul nivelului logic este schema externă, ca parte din schema
conceptuală, implementată cu ajutorul unui SGBD.
c. nivelul fizic – este dat de viziunea analistului (inginerului) de sistem
asupra datelor şi are rolul de a descrie modul în care sunt stocate datele
în baza de date. Aferent nivelului fizic putem menţiona următoarele:
• analistul de sistem este cel căruia îi revine sarcina de a realiza
structura internă (fizică);
• structura internă este dedusă din cea externă conform unor tehnici şi
metode de alocare pe suport fizic;
• structura internă corespunde descrierii datelor pe suportul fizic de
informaţie;
• rezultatul la nivelul fizic este schema internă (fizică) care se defineşte
în termeni de fişiere şi înregistrări;
• implementarea schemei interne se face cu ajutorul sistemului de
gestiune a fişierelor (SGF) din cadrul SGBD-ului şi/sau din sistemul de
operare, prin gestiunea fizică a perifericelor.
Teste grilă
****************************************************************************************
Obiectivele capitolului
****************************************************************************************
Planificarea
bazei de date
Delimitarea granitelor
sistemului
Colectarea si
analiza cerintelor
Proiectarea
bazei de date
Proiectarea conceptuala
Alegerea SGBD-ului
Proiectarea fizica
Prototipizarea Implementarea
Testarea
Întretinere operationala
Proiectarea conceptuală
Proiectarea conceptuală este prima fază din procesul de proiectare a
unei baze de date şi presupune crearea unui model de date conceptual
pentru partea care se doreşte a fi modelată (parte din activitatea unei
organizaţii). Acest model de date va fi construit prin utilizarea informaţiilor
aferente specificaţiilor cerinţelor utilizatorului. Proiectarea conceptuală a
bazei de date este complet independentă de detaliile de implementare, cum
ar fi elementele de software ale sistemului SGBD avut în vedere, programele
de aplicaţie, platforma hardware sau orice alte consideraţii fizice. Totodată,
trebuie să menţionăm că este important ca pe tot parcursul procesului de
realizare a modelului conceptual de date, acesta să fie permanent testat şi
validat conform cerinţelor utilizatorului. Practic, acest model constituie o
sursă importantă de informaţii pentru faza de proiectare logică.
Proiectarea logică
Această fază are ca rezultat crearea unui model de date logic aferent
activităţilor sau proceselor pe care dorim să le modelăm. Modelul de date
3
E-R – Entitate – Relaţie
4
OO – Orientat Obiect
5
OR – Obiectual – Relaţional
6
Select este o instrucţiune specifică limbajului SQL – Structured Query Language – care
permite extragerea datelor din baza de date.
Baze de date aplicate în economie 17
Proiectarea şi administrarea unei baze de date
conceptual creat în faza precedentă este rafinat şi transpus într-un model de
date logic. Acesta este influenţat de către modelul de date avut în vedere
pentru baza de date (spre exemplu, modelul de date relaţional pe care îl vom
detalia în capitolul IV).
Spre deosebire de celălalt model, care este independent de toate
consideraţiile fizice, modelul logic este creat plecând de la modelul de date
principal al sistemului SGBD ţintă. Cu alte cuvinte, ştim că SGBD-ul este, de
exemplu, relaţional, ierarhic sau orientat spre obiecte. Însă, se ignoră alte
aspecte ale SGBD-ului ales şi, mai ales, fiecare detaliu fizic, aşa cum sunt
structurile de stocare.
Pe parcursul realizării modelului logic de date, se efectueză testarea şi
validarea permanentă a acestuia în conformitate cu cerinţele utilizatorului.
Tehnica de normalizare este utilizată pentru a testa corectitudinea modelului
logic de date. Practic, normalizarea garantează că relaţiile derivate din
modelul de date nu prezintă redundanţe, care pot cauza anomalii (la
implementare) la actualizarea bazei de date. Altfel spus, normalizarea este
procesul prin care se elimină redundanţa datelor din baza de date şi se
construieşte un model de bază de date care susţine diverse cerinţe
funcţionale şi structuri alternative ale bazei de date.
Normalizarea presupune împărţirea unei relaţii (care include la
momentul respectiv toate atributele necesare problemei) în mai multe relaţii
între care se definesc diferite legături logice. Principalele obiective ale
normalizării sunt [Fotache, 2005, p.41-42]:
• minimizarea spaţiului necesar stocării datelor;
• minimizarea riscului apariţiei de date inconsistente în cadrul bazei de
date;
• minimizarea numărului de anomalii ce pot apărea la actualizare
(inserarea datelor, dar mai ales modificări şi ştergeri);
• ameliorarea structurii bazei de date, reprezentarea diverselor
conexiuni dintre atributele acesteia;
• diminuarea nevoii de reorganizare periodică a modelului.
Există un număr de reguli care se aplică în normalizare. În continuare
vom prezenta doar primele trei reguli care sunt în măsură să garanteze
definirea unei structuri logice a bazei de date într-o formă acceptabilă (în
care însă redundanţa nu este eliminată complet):
1. Toate atributele trebuie specificate o singură dată (forma I normală);
2. Fiecare atribut trebuie să depindă în totalitate de cheia primară a relaţiei
pe care o descrie (forma II normală). Această regulă se realizează prin
repartizarea atributelor într-o relaţie, astfel încât fiecare dintre ele va
depinde în totalitate de cheia primară.
3. Pentru a putea fi în forma III normală, fiecare relaţie trebuie să aibă o
singură cheie primară.
Totodată, modelul logic de date reprezintă o sursă importantă de
informaţii pentru faza de proiectare fizică, punând la dispoziţia proiectantului
bazei de date logice un mecanism care să-i permită realizarea negocierilor,
care sunt foarte importante pentru a face ca proiectarea bazei de date să fie
eficientă. Totodată, acest model are un rol important în etapa de întreţinere
18 Baze de date aplicate în economie
Proiectarea şi administrarea unei baze de date
operaţională din ciclul de viaţă al unei aplicaţii cu baze de date. Dacă este
întreţinut şi îmbunătăţit adecvat, modelul de date permite efectuarea unor
modificări viitoare în programele aplicaţie şi reprezentarea corectă şi eficientă
a datelor de către baza de date.
Proiectarea fizică
Proiectarea fizică a bazelor de date este a treia fază din procesul de
proiectare a unei baze de date, în care proiectantul stabileşte cum va fi ea
implementată. Aşa cum am vazut deja, faza precedentă presupunea
realizarea unei structuri logice, cu alte cuvinte se referea la definirea relaţiilor,
atributelor şi legăturilor dintre ele. Cu toate că această structură este
independentă de SGBD-ul ales, ea se realizează conform unui model de
date, aşa cum este cel relaţional. În realizarea proiectării fizice, trebuie iniţial
identificat sistemul de baze de date avut în vedere. Prin urmare, proiectarea
fizică este croită după modelul unui anumit SGBD. Între proiectarea fizică şi
cea logică există o legătură, deoarece pe parcursul proiectării fizice sunt
luate decizii referitoare la îmbunătăţirea performanţelor, care pot însă afecta
structura modelului logic de date.
În cele mai multe situaţii, obiectivul principal al proiectării fizice este de
a descrie cum se intenţionează realizarea implementării fizice a proiectului
logic al unei baze de date. Astfel, în cazul modelului relaţional, aceasta
presupune:
• extragerea unui set de tabele relaţionale (relaţii) şi de constrângeri asupra
acestora, din informaţiile prezentate în modelul logic de date (modelul
global);
• identificarea structurilor de stocare specifice şi metodelor de acces la date,
astfel încât să se garanteze obţinerea unor performanţe optime cu
sistemul respectiv;
• proiectarea mijloacelor care să asigure securitatea sistemului.
Proiectarea tranzacţiilor
În sens larg, putem defini o tranzacţie ca o acţiune sau o serie de
acţiuni efectuate de utilizator sau de un program de aplicaţie, care accesează
sau actualizează o bază de date. De asemenea, în [Georgescu, Georgescu,
2005, p.71] tranzacţia este definită ca unitatea logică de prelucrare asupra
unei baze de date care include setul complet de operaţii elementare ce
trebuie executat în vederea realizării unei tranziţii, pentru asigurarea
consistenţei şi siguranţei bazei de date. Aceeaşi autori consideră că o
tranziţie se referă la trecerea de la o realizare la alta a unei baze de date şi
poate fi produsă de modificarea conţinutului unei tabele a bazei de date, de
modificarea structurii acesteia, de adăugarea unei noi tabele, etc.
Tranzacţiile reprezintă evenimente din lumea reală, cum ar fi
adăugarea unui nou angajat, înregistrarea unui nou client, înregistrarea unei
note obţinute de un student la o disciplină, etc. Aceste tranzacţii trebuie
aplicate bazei de date, pentru a garanta că datele conţinute în aceasta
rămân „la curent” cu situaţia din lumea reală, dar şi pentru a susţine nevoile
informaţionale ale utilizatorilor.
Baze de date aplicate în economie 19
Proiectarea şi administrarea unei baze de date
O tranzacţie poate fi formată din mai multe operaţii, cum ar fi spre
exemplu, transferul banilor dintr-un cont în altul. Totuşi, din punctul de vedere
al utilizatorului, aceste operaţii realizează o singură sarcină. Din perspectiva
SGBD-ului, o tranzacţie transferă baza de date dintr-o stare în alta. SGBD-ul
asigură coerenţa bazei de date, chiar în cazul unei defecţiuni. Totodată,
SGBD-ul garantează şi faptul că odată tranzacţia finalizată, modificările
realizate sunt stocate permanent în baza de date şi nu pot fi pierdute sau
anulate. Dacă dintr-un motiv oarecare, tranzacţia nu poate fi terminată,
SGBD-ul este în măsură să garanteze că modificările realizate de acesta
sunt anulate. În exemplul menţionat anterior, cel al transferului de bani, dacă
banii sunt debitaţi într-un cont şi tranzacţia eşuează înaintea creditării
celuilalt cont, SGBD-ul va anula şi debitarea. În cazul în care am defini cele
două operaţii (debitarea şi creditarea) ca tranzacţii separate, atunci, odată
debitat primul cont şi încheiată tranzacţia, modificarea nu ar mai putea fi
anulată (pentru situaţia în care creditarea nu s-ar realiza).
Trebuie să mai menţionăm şi faptul că proiectarea unei tranzacţii se
bazează pe informaţiile din specificaţiile cerinţelor utilizatorului. Există
numeroase tehnici de preluare şi generare a specificaţiilor cerinţelor, care
includ şi o notaţie pentru specificarea tranzacţiilor cerute de către utilizatori.
Aceste tranzacţii pot constitui operaţii complexe care, atunci când sunt
analizate, se dovedesc a fi compuse, de fapt, din mai multe operaţii, fiecare
dintre acestea constituind câte o singură tranzacţie.
Întrebări recapitulative
Teste grilă
****************************************************************************************
Obiectivele capitolului
****************************************************************************************
7
Acronim pentru Information Management System
8
Acronim pentru Integrated Data Store
9
COnference on DAta SYstems Language
10
Data Base Task Group
Baze de date aplicate în economie 25
Sisteme de gestiune a bazelor de date
Pentru standardizare, grupul DBTG a specificat trei limbaje distincte:
• un limbaj de definire a datelor (LDD) pentru schemă, care permite
administratorului bazei de date să definească schema;
• un limbaj de descriere a datelor pentru subschemă, care permite
programelor aplicaţie să definească componentele bazei de date de care
au nevoie;
• un limbaj de manipulare a datelor (LMD), pentru manipularea lor.
Cu toate că, formal, raportul nu a fost adoptat de către Institutul
Naţional American pentru Standarde (ANSI11), ulterior s-a realizat un număr
de sisteme conform propunerii DBTG. Acestea sunt cunoscute acum sub
denumirea de sisteme CODASYL sau DBTG. Abordările de tip CODASYL şi
ierarhice au reprezentat prima generaţie de SGBD-uri. Totuşi, aceste două
modele prezintă câteva dezavantaje fundamentale, printre care cele mai
importante sunt:
• trebuie scrise programe complexe pentru a răspunde chiar şi la interogări
simple, bazate pe accesul navigaţional orientat spre înregistrări;
• există o independenţă minimă de date;
• nu există nici o bază teoretică larg acceptată.
În 1970, E.F. Codd de la Laboratorul de Cercetare IBM a publicat un
articol de foarte mare influenţă despre modelul de date relaţional. Acest
articol, apărut exact la momentul potrivit, analizează dezavantajele
abordărilor prezentate mai sus. De atunci, au fost implementate multe
sisteme SGBD relaţionale experimentale, primele produse comerciale
apărând la sfârşitul anilor 1970 şi începutul anilor 1980. De remarcat este
proiectul System R, de la Laboratorul de Cercetare IBM din San Jose,
realizat la sfârşitul anilor 1970 [Astrahan et al., 1976]. Acest proiect a fost
îndeplinit pentru a demonstra caracterul practic al modelului relaţional, prin
realizarea unei implementări a structurilor de date şi a operaţiilor acestuia,
fapt care a avut două consecinţe majore:
• dezvoltarea unui limbaj de interogare structurat, denumit SQL, care de
atunci a devenit limbajul standard pentru sistemele SGBD relaţionale;
• producerea de diverse sisteme SGBD relaţionale la scară comercială, în
decursul anilor 1980; de exemplu, sistemele DB2 şi SQL/DS de la IBM şi
Oracle de la compania cu acelaşi nume .
În prezent, există câteva sute de sisteme SGBD relaţionale, atât
pentru medii mainframe, cât şi pentru microcalculatoare, cu toate că multe
dintre ele extind definiţia modelului relaţional. Alte exemple de sisteme SGBD
relaţionale multiutilizator sunt: CS-OpenIngres de la compania Computer
Associates şi Informix de la Informix Software Inc. Câteva exemple de
sisteme SGBD relaţionale pentru microcalculatoare sunt: Access şi FoxPro
ale companiei Microsoft, Paradox şi Visual dBase ale companiei Borland şi
R:Base al companiei Microrim. Sistemele SGBD relaţionale sunt denumite
sisteme SGBD din a doua generaţie.
Cu toate acestea, modelul relaţional a cunoscut şi eşecuri - în
particular, datorită capacităţilor sale de modelare limitate. De-a lungul
11
Acronim pentru American National Standards Institute
26 Baze de date aplicate în economie
Sisteme de gestiune a bazelor de date
timpului, s-au efectuat multe cercetări care au încercat să rezolve această
problemă. În 1976, Chen a prezentat modelul Entitate-Relaţie, care
reprezintă acum o tehnică de proiectare a bazelor de date larg acceptată. În
1979, însuşi Codd a încercat să rezolve câteva dintre esecurile din lucrarea
sa initială, printr-o versiune extinsă a modelului relaţional, denumită RM/T
(1979), urmată mai recent de RM/V2 (1990). Încercările de realizare a unui
model de date care să reprezinte mai îndeaproape „lumea reală” au primit
denumirea nu prea inspirată de modelare semantică a datelor.
Ca răspuns la complexitatea crescândă a aplicaţiilor bazelor de date,
au apărut două „noi” sisteme: sistemele SGBD orientate spre obiecte
(OODBMS12) şi sistemele SGBD de obiecte relaţionale (ORDBMS13). Totuşi,
spre deosebire de modelele anterioare, compoziţia acestora nu este clară, iar
această evoluţie reprezintă a treia generaţie de sisteme SGBD.
În prezent, datorită facilităţilor pe care le oferă, constatăm că cea mai
mare partea bazelor de date sunt realizate cu ajutorul unor SGBD-uri
relaţionale şi tot mai puţine se bazează pe cele de generaţia I. Totodată,
trebuie remarcat şi evidenţiat interesul tot mai mare faţă de utilizarea în
practică a SGBD-urilor orientate obiect.
12
Acronim pentru Object-Oriented DataBase Management System
13
Acronim pentru Object-Relational DataBase Management System
Baze de date aplicate în economie 27
Sisteme de gestiune a bazelor de date
Există două tipuri de limbaje de manipulare a datelor:
• procedurale
• neprocedurale
care se pot deosebi în funcţie de operaţiile de extragere. Principala
diferenţă între ele constă în faptul că, de obicei, limbajele procedurale
tratează bazele de date înregistrare cu înregistrare, în timp ce limbajele
neprocedurale operează asupra unor seturi de înregistrări. În consecinţă,
limbajele procedurale specifică cum se va obţine rezultatul unei
instrucţiuni LMD, iar cele neprocedurale descriu numai ce date vor fi
obţinute. Cel mai obişnuit tip de limbaj neprocedural este limbajul
structurat de interogare (SQL - pronunţat „Es-Q-L” sau, uneori, „Sii-Quel”),
care reprezintă acum atât limbajul standard, cât şi cel de facto pentru
sistemele SGBD relaţionale.
3. oferă accesul controlat la baza de date. De exemplu, poate furniza:
• un sistem de securitate, care previne accesarea bazei de date
de către utilizatori neautorizaţi;
• un sistem de integritate, care menţine concordanţa datelor
stocate;
• un sistem de control al concurenţei, care permite accesul
partajat la baza de date;
• un sistem de control al refacerii, care restaurează baza de date
într-o stare precedentă concordantă, ca urmare a unei defecţiuni
la nivel hardware sau software;
• un catalog accesibil utilizatorilor, care conţine descrieri ale
datelor din baza de date.
Datorită funcţionalităţilor pe care le oferă, SGBD-urile constituie
instrumente extrem de utile. Totuşi, deoarece pe utilizatori nu-i
interesează cât de complexă sau de uşoară este pentru sistem o anumită
sarcină, s-ar putea argumenta că sistemul SGBD a făcut ca lucrurile să
devină mai complexe, deoarece acum se pot vedea mai multe date decât
este cu adevărat necesar sau decât se doreşte. Ca o recunoaştere a
acestei probleme, sistemul SGBD prezintă o altă facilitate, cunoscută sub
denumirea de mecanism de vizualizare, care permite fiecărui utilizator să-
şi definească propriul mod de vizualizare a bazei de date. Limbajul LDD
permite definirea de moduri de vizualizare, în care acestea reprezintă un
subset al bazei de date.
4. oferă un anumit nivel de securitate. Modurile de vizualizare pot fi realizate
astfel încât să nu includă datele ce nu trebuie cunoscute de anumiţi
utilizatori. De exemplu, s-ar putea crea un mod de vizualizare care să
permită unui administrator de filială şi departamentului Contabilitate să
afişeze toate datele referitoare la personalul unei instituţii, inclusiv detaliile
despre salariu. Pe lângă acesta, s-ar putea crea un al doilea mod de
vizualizare, care să excludă detaliile despre salariu, ce va fi utilizat de
către ceilalţi angajaţi;
5. pot prezenta o imagine coerentă, neschimbată a structurii bazei de date,
chiar dacă aceasta este modificată (de exemplu, s-ar putea adăuga sau
elimina câmpuri, s-ar putea modifica relaţiile, diviza, restructura sau
28 Baze de date aplicate în economie
Sisteme de gestiune a bazelor de date
redenumi anumite fişiere). Dacă sunt adăugate sau eliminate câmpuri
dintr-un fişier, iar acestea nu sunt cerute de către modul de vizualizare, el
nu este afectat de către modificarea realizată. Prin urmare, modul de
vizualizare contribuie la asigurarea independenţei program-date.
Analiza prezentată mai sus este una generală. Nivelul real de
funcţionalitate a unui SGBD diferă de la produs la produs. De exemplu, s-ar
putea ca un SGBD pentru un calculator personal să nu accepte accesul
partajat concurent, însă ar prezenta doar un control limitat al securităţii,
integrităţii şi refacerii. Totuşi, produsele SGBD moderne, multiutilizator,
prezintă toate funcţiile de mai sus şi încă multe altele. Sistemele moderne
sunt programe extrem de complexe, formate din milioane de linii de cod, cu
documentaţia constând în multe volume. Acesta este un rezultat al necesităţii
de realizare a unor programe care să trateze cerinţe de o natură mai
generală. Mai mult, în zilele noastre, utilizarea unui SGBD necesită sisteme
care să prezinte un grad de fiabilitate şi de disponibilitate de aproape 100%,
chiar în cazul unor defecţiuni, fie la nivel hardware, fie software. Totodată,
toate SGBD-urile trebuie să evolueze şi să se dezvolte permanent, dar
necesită şi o perfecţionare continuă pentru a preîntâmpina noile cerinţe ale
utilizatorilor. De exemplu, dacă unele aplicaţii necesită stocarea de imagini
grafice, video, sunete, etc. pentru satisfacerea acestei pieţe, SGBD-urile
trebuie să se modifice. Cel mai probabil că o nouă funcţionalitate va fi mereu
necesară, aşa încât aceasta nu va putea deveni niciodată statică.
Avantajele SGBD-urilor
2.Coerenţa datelor
Prin eliminarea sau controlul redundanţei se reduce riscul apariţiei
incoerenţei datelor. Dacă un articol de date este stocat o singură dată în
baza de date, orice reactualizare a valorii sale trebuie realizată tot o singură
dată, iar noua valoare este disponibilă imediat, pentru toţi utilizatorii. Dacă un
articol de date este stocat de mai multe ori, iar sistemul este „conştient” de
Baze de date aplicate în economie 29
Sisteme de gestiune a bazelor de date
aceasta, el poate garanta că toate copiile articolului respectiv sunt menţinute
coerente. Din păcate, multe dintre sistemele SGBD actuale nu garantează
automat acest tip de coerenţă.
4.Partajarea datelor
În general, fişierele sunt deţinute de către persoanele sau
departamentele care le utilizează. Pe de altă parte, baza de date aparţine
întregii organizaţii sau instituţii şi poate fi partajată de către toţi utilizatorii
autorizaţi. În acest mod, mai mulţi utilizatori partajează o cantitate mai mare
de date. Mai departe, se pot construi noi aplicaţii bazate pe datele existente
în baza de date, în timp ce datele adiţionale (care nu sunt stocate în mod
curent) se pot adăuga fără a fi necesară definirea repetată a tuturor cerinţelor
referitoare la acestea. Noile aplicaţii se pot baza şi pe funcţiile oferite de
către sistemul SGBD (cum ar fi definirea şi manipularea datelor şi controlul
concurenţei şi refacerii) în loc de a fi necesar să le furnizeze ele însele.
6.Securitate sporită
Securitatea se referă la protecţia bazei de date faţă de utilizatorii
neautorizaţi. Fără măsuri de securitate clare şi adecvate, integrarea face ca
datele să fie mult mai vulnerabile decât în cazul sistemelor bazate pe fişiere.
Totuşi, integrarea va permite administratorului bazei de date să definească
(iar bazei de date să întărească) securitatea acesteia. Aceasta se poate
realiza prin atribuirea unor nume de utilizatori şi parole, care să permită
identificarea persoanelor autorizate să utilizeze baza de date (fiecare
persoana poate accesa, în funcţie de poziţia pe care o are în organizaţie, un
anumit set de date). Accesul la date permis unui utilizator autorizat poate fi
limitat de tipul operaţiei efectuate (extragere, inserare, reactualizare,
ştergere). De exemplu, administratorul bazei de date are acces la toate
datele din baza de date, un manager de fIlială ar putea accesa doar datele
legate de filiala respectivă, în timp ce un utilizator de la compartimentul
Vânzări ar putea avea acces numai la datele referitoare la proprietăţi, dar nu
7.Aplicarea standardelor
Din nou, integrarea permite administratorului bazei de date să
definească şi să aplice toate standardele necesare. Acestea ar putea include
standarde departamentale, organizaţionale, naţionale sau internaţionale
(pentru diferite aspecte, cum ar fi formatul datelor) care să faciliteze schimbul
de date între sisteme, convenţiile privind denumirile, standardele de
documentare, procedurile de reactualizare şi regulile de acces.
8.Economia de scală
Combinarea tuturor datelor operaţionale ale organizaţiei într-o singură
bază de date şi crearea unui set de aplicaţii care să funcţioneze pentru
această unică sursă de date pot avea ca rezultat micşorarea costurilor. În
acest caz, s-ar putea combina bugetele care ar fi fost alocate în mod normal
fiecărui departament pentru dezvoltarea şi întreţinerea propriului sistem
bazat pe fişiere, ceea ce ar putea duce la un total mai scăzut al cheltuielilor,
având ca rezultat o economie de scală. Bugetul combinat poate fi utilizat
pentru achiziţionarea unei configuraţii a sistemului mai adecvate cerinţelor şi
necesităţilor organizaţiei respective. Aceasta ar putea consta într-un
calculator cu o configuraţie mai bună, cu o putere de calcul sporită sau într-o
reţea de calculatoare mai mici.
11.Productivitate crescută
Aşa cum am menţionat anterior, un SGBD oferă multe dintre funcţiile
standard, pe care ar trebui să le scrie în mod normal programatorul, în cazul
unei aplicaţii bazate pe fişiere. La nivel fundamental, SGBD-ul oferă toate
rutinele de nivel jos pentru manevrarea fişierelor, tipice în programele
aplicaţie. Furnizarea acestor funcţii permite programatorului să se
concentreze mai mult asupra funcţionalităţii specifice cerute de către
utilizatori, fără însă a se preocupa de detaliile de nivel jos privind
implementarea. Multe sisteme SGBD furnizează şi un mediu din a patra
generaţie, care constă în instrumente de simplificare a dezvoltării de aplicaţii
în domeniul bazelor de date. Aceasta are ca rezultat o productivitate crescută
a programatorului şi un timp redus de programare (împreună cu reducerea
corespunzătoare a costurilor).
13.Concurenţă îmbunătăţită
Majoritatea sistemelor bazate pe fişiere se confruntau adesea cu o
problemă importantă, cu influenţe negative asupra ceea ce înseamnă
gestionarea eficientă a conţinutului unui baze de date. Astfel, dacă doi sau
mai mulţi utilizatori aveau permisiunea de a accesa simultan acelaşi fişier, se
întâmpla ca cele două accesări să se suprapună, ceea ce avea evident ca
rezultat pierderea informaţiilor sau chiar alterarea integrităţii datelor
respective. În ceea ce priveşte un SGBD, una dintre sarcinile importante
care-i revin acestuia se referă la administrarea accesului concurent la baza
de date, fapt care are drept consecinţă garanţia evitării apariţiei unor astfel
de probleme.
Dezavantaje SGBD-urilor
Pe lângă avantajele menţionate anterior, fiecare SGBD comportă şi un
număr de dezavantaje, iar cele mai importante sunt menţionate în continuare.
1.Complexitatea
Proiectarea funcţionalităţii unui SGBD optim face ca acesta să devină
un element software extrem de complex. Proiectanţii şi dezvoltatorii bazelor
de date, administratorii de date şi de baze de date, precum şi utilizatorii finali
trebuie să cunoască (uneori, chiar în detaliu) această funcţionalitate, pentru a
putea profita de ea la maximum. Eşecul în înţelegerea sistemului poate
cauza fundamentarea şi luarea unor decizii greşite aferente etapei de
proiectare, care, în mod cert, pot conduce la consecinţe negative importante
pentru fiecare organizaţie sau instituţie specializată care dispune de un astfel
de sistem.
2.Costul
Costul unui SGBD variază semnificativ, în funcţie de mediu şi de
funcţionalitatea pe care o oferă. De exemplu, un SGBD cu un singur utilizator,
pentru un calculator personal, poate costa numai 100 euro. Cu toate acestea,
un SGBD mainframe, multi-utilizator, care deserveşte sute de utilizatori,
poate fi extrem de scump. Mai există şi cheltuielile periodice anuale de
întreţinere care reprezintă, de regulă, un procent din preţul acestuia. În acest
caz, este clar că vom alege un SGBD pentru gestionarea unei activităţi
numai în concordanţă cu necesităţile curente: nu are sens să achiziţionăm un
SGBD scump dacă nevoia nu o cere, însă nu recomandăm nici
achiziţionarea unui SGBD ieftin atunci când volumul de date, dar şi cel al
prelucrărilor de realizat este mare (mai ales în cazul gestionării datelor la
nivelul bazelor de date distribuite14).
14
Baza de date distribuită reprezintă un set de baze de date aflate pe mai multe calculatoare
şi care este văzut de către aplicaţie ca fiind o singură bază de date (aflată pe un singur
calculator) – adică baza de date văzută de către aplicaţie este fragmentată şi împărţită pe
mai multe calculatoare din reţea. O bază de date se spune că este distribuită dacă diferitele
componente ale acesteia sunt memorate în staţiile şi/sau serverul reţelei.
Baze de date aplicate în economie 33
Sisteme de gestiune a bazelor de date
este clar că achiziţionarea de componente hardware adiţionale conduce la
creşterea cheltuielilor.
4.Costul conversiei
În unele cazuri, costul unui SGBD şi al componentelor hardware
adiţionale poate fi nesemnificativ, comparativ cu costul conversiei aplicaţiilor
existente, necesare ca acestea să poată funcţiona în noul SGBD şi în noua
configuraţie hardware. Acest cost include şi preţul instruirii personalului
pentru a putea utiliza noile sisteme şi, posibil, angajarea unui personal
specializat, care să ajute la conversia şi funcţionarea sistemului. Aceste
cheltuieli reprezintă unul dintre motivele principale pentru care unele
organizaţii se „împiedică” de sistemele existente şi nu pot trece la tehnologia
modernă specifică bazelor de date. Termenul de sistem moştenit este utilizat
uneori pentru a se face referire la un sistem mai vechi, de obicei inferior din
punct de vedere al funcţionalităţii.
Totodată, există şi situaţii în care anumite organizaţii renunţă la
actualizarea permanentă a componentelor hardware, determinate de
conversiile realizate la nivel software în detrimentul achiziţionării unui produs
software nou şi care este în concordanţă cu necesităţile cerute. Însă, această
soluţie este una importantă, cu implicaţii directe asupra cheltuielilor realizate,
dar şi a modului de lucru specific personalului de care se dispune la un
moment dat.
5.Dimensiunea
Complexitatea şi extinderea funcţionalităţii fac din SGBD-uri elemente
software destul de cuprinzătoare, ce ocupă mult spaţiu pe suportul fizic şi
necesită o memorie15 substanţială pentru a funcţiona eficient şi corect.
6.Performanţa
De obicei, un sistem bazat pe fişiere este realizat pentru o anumită
aplicaţie, cum ar fi facturarea. Ca rezultat, performanţele sunt, de regulă,
foarte bune. Totuşi, SGBD-ul este creat pentru a fi mai general, pentru a oferi
mai multe funcţionalităţi, nu una singură. Rezultatul este că unele aplicaţii ar
putea să nu mai funcţioneze tot atât de rapid sau la fel de eficient.
15
Evident, ne referim la memoria RAM (Random Access Memory) a calculatorului pe care
se găseşte şi rulează SGBD-ul respectiv.
34 Baze de date aplicate în economie
Sisteme de gestiune a bazelor de date
Componentele unui SGBD
Principalele componente ale unui SGBD sunt [Georgescu, Georgescu,
2005, p.75-81]:
• motorul SGBD – este componenta care asigură interfaţa dintre
subsistemul de proiectare şi cel de execuţie pe de o parte, şi datele bazei
de date pe de altă parte şi are rolul de a asigura accesul fizic la datele
bazei de date. Toate acţiunile motorului SGBD sunt realizate unitar şi
respectă restricţiile impuse de legăturile dintre date, dar şi de regulile de
integritate ale bazei de date definite în dicţionarul de date. Principalele
responsabilităţi ale motorului SGBD sunt:
realizează gestionarea tranzacţiilor la nivelul unei baze de date;
permite regăsirea datelor pe baza informaţiilor de adresare din
fişierele de index;
salvarea şi restaurarea datelor;
blocarea şi deblocarea datelor în cazul operaţiilor fizice la nivelul
memoriei externe;
• subsistemul instrumentelor de proiectare – dispune de un set de
instrumente software care permit proiectarea şi generarea bazei de date
şi a aplicaţiilor care descriu modul de utilizare a bazei de date. Această
componentă permite definirea:
structurii tabelelor din baza de date;
machetelor de interfaţă cu utilizatorul;
a formatului rapoartelor şi cererilor de interogare a bazei de date.
Subsistemul instrumentelor de proiectare poate include:
limbaje de descriere a datelor (LDD)16;
limbaje de manevrare a datelor;
limbaje de interogare a datelor din baza de date;
editoare de cod;
generatoare de cod care să permită definirea interfeţei cu
utilizatorul, a rapoartelor, meniurilor, etc.;
un sistem de asistenţă on-line pentru autodocumentarea
utilizatorului.
• subsistemul de execuţie – permite execuţia aplicaţiilor sau cererilor de
consultare a bazei de date, formulate prin utilizarea instrumentelor
subsistemului de proiectare, prin consultarea dicţionarului de date şi
generarea tranzacţiilor. Aceasta este componenta care garantează
autonomia logică a datelor în baza de date şi are rolul de a intermedia
operaţiile cu baza de date prin consultarea descrierii organizării logice a
datelor memorate în structura bazei de date. Practic, fiecare operaţie de
actualizare sau consultare a bazei de date se realizează prin identificarea
16
Un limbaj de descrierea a datelor permite descrierea componenţei bazei de date, a structurii
acesteia , a relaţiilor dintre componentele ei, precum şi a tuturor drepturilor de acces ale utilizatorilor
la baza de date.
Baze de date aplicate în economie 35
Sisteme de gestiune a bazelor de date
formatelor de descriere a datelor din dicţionarul de date şi conectarea
acestor descrieri din schema internă a bazei de date
Funcţiile SGBD-ului
În [Velicanu et al., 2003, p.104-107] se arată că îndeplinirea tuturor
obiectivelor unui SGBD se realizează prin intermediul unor componente care
permit efectuarea unor operaţii specifice. În funcţie de natura lor, dar şi de
scopul urmărit, operaţiile pot fi grupate pe activităţi. Activităţile acceptă şi ele
o grupare pe funcţii astfel încât, una sau mai multe activităţi, relativ omogene,
vor realiza o funcţie anume. Ţinând cont de complexitatea unui SGBD, de
facilităţile pe care le pune la dispoziţie, de limbajele utilizate, precum şi de
modul de implementare al modelului de date, gruparea activităţilor pe funcţii
are un anumit caracter relativ.
Plecând de la modelul de date pe care îl implementează, SGBD-urile
se caracterizează printr-un număr de particularităţi identificate prin operaţii şi
activităţi specifice. În pofida acestor particularităţi, există câteva funcţii
general valabile pentru toate tipurile de SGBD; acestea sunt funcţii
importante, pe care un sistem software, dacă nu le are în totalitate, nu poate
fi considerat SGBD. Astfel, principalele funcţii pe care le putem atribui unui
SGBD sunt: descrierea datelor, manipularea datelor, utilizarea şi
administrarea bazei de date.
Descrierea datelor
Prin intermediul funcţiei de descriere a datelor, fiecare SGBD permite
definirea unei structuri a bazei de date cu ajutorul limbajului de definire a
datelor (LDD). Definirea datelor poate fi realizată la nivel conceptual, logic şi
fizic. Se descriu atributele din cadrul structurii bazei de date, legăturile dintre
entităţile acesteia sau dintre atributele aceleiaşi entităţi, se definesc criteriile
de validare a datelor (dacă este cazul), metodele care asigură accesarea
datelor, precum şi aspectele care se referă la asigurarea integrităţii datelor.
Concretizarea acestei funcţii este schema bazei de date, memorată în cod
intern. Memorarea se face într-un fişier, ceea ce permite afişarea şi
actualizarea structurii bazei de date, în orice moment de timp.
Această funcţie a fost mult automatizată în timp, limbajul de descriere
a datelor beneficiind în prezent de puţine comenzi. Acest limbaj este specific
fiecărui SGBD, dar el mereu realizează descrierea lor conform elementelor
modelului de date pe care îl implementează SGBD-ul respectiv. Astfel se
realizează definirea şi descrierea entităţilor şi a caracteristicilor lor, definirea
legăturilor dintre obiectele identificate (asocierile) şi a regulilor de integritate
specifice modelului de date.
Manipularea datelor
Funcţia de manipulare a datelor este cea mai complexă şi realizează
actualizarea şi regăsirea datelor din baza de date, cu ajutorul limbajului de
manipulare a datelor17.
17
În literatură întâlnim frecvent şi Limbaj de Manevrare a Datelor
36 Baze de date aplicate în economie
Sisteme de gestiune a bazelor de date
Manipularea datelor este cea mai folosită funcţie în bazele de date,
fiind cea mai bine suportată de sistemul de gestiune a bazelor de date faţă
de oricare alt sistem de gestionare a datelor din memoria externă. Practic, un
SGBD manipulează datele într-o manieră eficientă, folosind în acest scop
diferite tehnici şi metode de optimizare a accesului şi a alocării spaţiului din
memoria calculatorului.
Menţionam în paragraful anterior că limbajul de manipulare a datelor
este cel care asigură realizarea acestei funcţii. În ceea ce-l priveşte, acest
limbaj trebuie să respecte restricţiile de integritate a datelor şi să
implementeze operatorii din modelul de date pe care se bazează SGBD-ul
căruia îi aparţine.
Această funcţie presupune derularea următoarelor activităţi:
• încărcarea datelor în baza de date - se realizează prin operaţii
automatizate sau programate ce asigură şi criteriile de validare necesare;
• actualizarea bazei de date – se referă la operaţiile de adăugare,
modificare şi ştergere de înregistrări. La operaţiile de adăugare şi de
modificare se păstrează aceleaşi criterii de validare care s-au folosit şi la
activitatea de încărcare a datelor. Actualizarea se realizează numai
autorizat, prin asigurarea unei protecţii corespunzătoare a datelor, pentru
a se păstra coerenţa bazei de date.
• prelucrarea datelor – presupune realizarea operaţiilor de selecţie,
ordonare, etc. efectuate asupra entităţilor bazei de date. Acestea sunt, de
obicei, operaţii pregătitoare activităţii de regăsire a datelor. Multe din
operaţiile de prelucrare sunt realizate cu ajutorul operatorilor din modelul
de date pe care îl implementează SGBD-ul.
• regăsirea (interogarea) datelor – presupune realizarea operaţiilor de
vizualizare (afişare pe ecran, imprimare pe hârtie), răsfoire, editarea unor
documente de ieşire (rapoarte). Documentele de ieşire pot fi intermediare
sau finale şi se pot obţine pe diferiţi suporţi tehnici de informaţie (ecran,
hârtie, mediu magnetic, mediu optic). Ele pot avea cele mai diferite forme
(punctuale, liste, rapoarte, grafice, imagini, sunet, video, etc) şi se pot
obţine după cele mai diferite criterii de regăsire.
Funcţia de utilizare
Această funcţie are rolul de a asigura interfeţele necesare care să
permită comunicarea utilizatorilor cu baza de date (cu alte cuvinte, să asigure
legătura dintre utilizator şi baza de date). Pentru realizarea acestei funcţii,
SGBD-ul trebuie să ofere facilităţi pentru mai multe categorii de utilizatori ai
bazei de date, şi anume: neinformaticieni, specialişti (informaticieni) şi
administratorul.
Utilizatorii neinformaticieni reprezintă principala categorie a
beneficiarilor de informaţii (utilizatori finali şi intensivi) din baza de date.
SGBD-ul le oferă acestora limbaje neprocedurale, dar şi alte facilităţi de
interogare (generatoare, utilitare, etc.) a bazei de date într-o formă simplă şi
interactivă. Aceşti utilizatori nu trebuie să cunoască structura bazei de date şi
nu trebuie să ştie să programeze, SGBD-ul sprijinindu-i în manieră interactivă
în utilizarea bazei de date. În acest sens SGBD-ul oferă:
18
Instrumentele CASE (Computer Aided Software Engineering) sunt aplicaţii informatice, formate din
mai multe componente, care ajută la realizarea unui proiect software, în anumite etape (sau în toate
etapele) din ciclul de viaţă al unei aplicaţii. Obiectivul principal al instrumentelor CASE constă în
punerea în practică a produselor–program de proiectare şi realizarea software–lui cu ajutorul
calculatorului. Instrumentele oferite de CASE sunt utilizabile din faza de definire a cerinţelor până la
întreţinerea fizică a produsului informatic [Oprea, 1999, p.123].
1. Ce este SGBD-ul?
2. Care este diferenţa dintre limbajele procedurle şi cele neprocedurale?
3. Ce reprezintă coerenţa datelor?
4. Ce reprezintă partajarea datelor?
5. Cum se poate realiza securitatea datelor la nivelul unui SGBD?
6. La ce se referă costul conversiei?
7. Prezentaţi pe scurt componentele unui SGBD.
8. Ce este motorul SGBD?
9. Prezentaţi principale caracteristici ale subsistemului instrumentelor de
proiectare.
10. Prezentaţi principale caracteristici ale subsistemului de execuţie.
Teste grilă
****************************************************************************************
Obiectivele capitolului
****************************************************************************************
Exemplul 4.2
Student ( cnp nr_matr nume pren facult spec )
1701212120139 1234 Popa Dan FSE IE
2731210176143 1987 Darie Alina FD AP
1801009129145 4432 Mihnea Ion FSE FB
Exemplul 4.3
Student ( cnp nr_matr nume pren facult spec )
1701212120139 1234 Popa Dan FSE IE
2731210176143 1987 Darie Dan FD AP
1801009129145 4432 Popa Ion FSE IE
În continuare ne vom opri asupra celor două atribute rămase, şi
anume cnp şi nr_matr. Cu siguranţă, că la întrebarea „Sunt atributele cnp şi
Exemplul 4.4
Student ( cnp nr_matr nume pren facult spec )
1701212120139 1234 Popa Dan FSE IE
2731210176143 1987 Darie Dan FD AP
2731210176143 5634 Darie Dan FSE FB
Exemplul 4.5
Student ( Cnp nr_matr nume pren facult spec )
1701212120139 1234 Popa Dan FSE IE
? 1234 ? ? ? ?
Exemplul 4.6
Student ( cnp nr_matr nume pren facult spec )
1701212120139 1234 Popa Dan FSE IE
1701212120139 1234 Popa Dan FSE IE
48 Baze de date aplicate în economie
Abordarea relaţională a bazelor de date
19
Mecanismul de identificare corectă şi completă a cheilor unei relaţii se va realiza numai după
parcurgerea şi înţelegerea procesului de normalizare a unei baze de date relaţionale (la pagina 18 au
fost prezentate succint câteva aspecte de bază specifice normalizării). Pentru cei interesaţi să ştie mai
multe despre procesul de normalizare şi postnormalizare, recomandăm cartea profesorului M. Fotache:
Proiectarea bazelor de date: Normalizare şi postnormalizare. Implementări SQL şi Oracle.
Baze de date aplicate în economie 49
Abordarea relaţională a bazelor de date
Exemplul 4.8
Student (cnp, nr_matr, nume, pren)
Facultate (facult, profil)
Specializare (spec, formă_înv)
În relaţia Facultate, atributul facult este cheie primară deoarece
considerăm că nu pot exista două facultăţi cu acelaşi nume în cadrul unei
universităţi. De asemenea, atributele spec şi formă_înv formează cheia
primară în relaţia Specializare numai luate împreună deoarece o anumită
specializare poate apare la diferite forme de învăţământ (spre exemplu,
specializarea Contabilitate şi Informatică de Gestiune are studenţi şi la forma
de învăţământ Zi, şi la Ifr).
Astfel, prin descompunerea relaţiei iniţiale în cele trei relaţii din
exemplul 4.8 am argumentat prima parte a definiţiei bazei de date relaţionale.
Aşa cum observăm, în acest moment structura noastră este formată din trei
colecţii organizate în care:
• Student conţine doar date de strudenţi;
• Facultate include ca realizări (tupluri) doar facultăţile gestionate;
• Specializare care se referă la specializările fiecărei facultăţi gestionate.
După migrarea cheii primare sub forma cheii străine, putem spune că
am realizat legătura între relaţiile asociate, astfel încât să putem spune
despre un client ce număr de legitimaţie are, sau plecând de la numărul
legitimaţiei, să putem identifica fără ambiguitate care este deţinătorul
acesteia.
Exemplul 4.11:
Student ( nr_matr cnp nume pren )
1111 1701212120139 Popa Dan
2222 2711010120121 Darie Alina
3333 1721209145123 Preda Marin
Exemplul 4.12:
Student ( nr_matr cnp nume pren cod_spec )
1111 1701212120139 Popa Dan 61
2222 2711010120121 Darie Alina 52
3333 1721209145123 Preda Marin 61
Exemplul 4.14:
Aprovizionare ( serie_fact nr_fact cod_produs cant_aprov )
DX 1111 11 10
DX 1111 33 15
DF 3333 11 5
Aşa cum se observă, legătura de tipul mai mulţi la mai mulţi a fost
pusă în evidenţă prin noua relaţie generată: Aprovizionare. În cadrul acesteia,
pe primele două tupluri am pus în evidenţă faptul că o factură (DX 1111)
poate conţine mai multe produse (conţine produsele cu codul 11 şi 33) în
timp ce un produs (cel cu codul 11) poate fi achiziţionat prin intermediul mai
multor facturi (se găseşte atât pe factura DX 1111 cât şi pe DF 3333).
În cadrul relaţiei Aprovizionare observăm un nou atribut, care nu se
regăsea la nivelul relaţiilor pe care le-am asociat. Acest atribut apare în
cadrul acestei noi relaţii deoarece o realizare a acestuia are loc numai atunci
când asociem câte un tuplu din fiecare relaţie (nu putem avea o cantitate
aprovizionată dacă există produsul, dar nu există factura şi, în acelaşi timp,
nici dacă există factura şi nu există produsul).
Atunci când asociem mai mult de două relaţii, legătura dintre ele se
realizează prin definirea unei noi relaţii, care va avea cheia primară formată
din cheile primare ale tuturor relaţiilor, împreună cu alte atribute care reies
din contextul problemei modelate. Practic, este un caz particular al legăturii
binare mai mulţi la mai mulţi, fără însă să mai necesite în prealabil
identificarea tipului fiecărei relaţii.
Revenind la exemplul 4.8, vom asocia cele trei relaţii cu scopul de a
putea preciza cu claritate facultatea şi specializarea la care este înmatriculat
fiecare student.
Exemplul 4.15
Student ( nr_matr nume pren )
111 Preda Marin
222 Darie Alina
333 Ionescu Cătălin
Exemplul 4.16
Studiu ( nr_matr facult cod_spec )
111 Ştiinţe Economice 751
222 Drept 662
333 Ştiinţe Economice 751
Exemplul 4.17
Stud1 ( nr_matr nume pren )
111 Preda Marin
222 Darie Alina
333 Ionescu Cătălin
20
Relaţiile A şi B trebuie să aibă aceeaşi schemă definită pe aceleaşi domenii.
56 Baze de date aplicate în economie
Abordarea relaţională a bazelor de date
2. Diferenţa. Diferenţa a două relaţii A şi B21, notată A \ B , este o relaţie care
va avea schema identică cu a relaţiilor iniţiale şi ca realizări toate tuplurile
primei relaţii care nu se regăsesc în cea de-a doua relaţie.
Astfel, dacă realizăm diferenţa relaţiilor Stud1 şi Stud2 din exemplul
4.17, rezultatul este următorul:
Exemplul 4.18
Student ( nr_matr nume pren )
111 Preda Marin
222 Darie Alina
333 Ionescu Cătălin
21
Relaţiile A şi B trebuie să aibă aceeaşi schemă definită pe aceleaşi domenii.
22
Schemele relaţiilor A şi B sunt diferite, dar pot exista atribute comune.
Baze de date aplicate în economie 57
Abordarea relaţională a bazelor de date
4. Proiecţia. Proiecţia se aplică unei singure relaţii A de aritate a, se notează
cu π şi se realizează după un număr de atribute, a1, a2, …, an, care trebuie
să fie incluse în schema relaţiei A. Noua relaţie va avea schema dată de
atributele după care se realizează proiecţia, Totodată, relaţia obţinută după
realizarea proiecţiei va avea acelaşi număr de tupluri ca relaţia iniţială.
Exemplul 4.21
Stud1 ( nr_matr nume pren )
111 Preda Marin
222 Darie Alina
333 Ionescu Cătălin
23
Relaţiile A şi B trebuie să aibă aceeaşi schemă definită pe aceleaşi domenii.
24
În cazul uniunii, cele două atribute trebuie să fie câte unul din fiecare relaţie.
Baze de date aplicate în economie 59
Abordarea relaţională a bazelor de date
Exemplul 4.22 Fie următoarele relaţii:
Aprov ( s_fact nr_fact cod_prod cant_a )
DX 1122 P1 20
DX 1122 P2 10
JZ 2233 P3 15
DX 1122 P1 20 C1 20
DX 1122 P2 10 C1 20
DX 1122 P2 10 C2 12
DX 1122 P2 10 C3 10
JZ 2233 P3 15 C1 20
DX 1122 P1 20 C1 20
DX 1122 P2 10 C3 10
Exemplul 4.24
Student | ⊗ | Disc = (nr_matr nume pren den_disc notă )
111 Popa Dan NULL NULL
222 Darie Alin Birotică 10
333 Moga Dana Finanţe 9
333 Moga Dana Birotică 8
Exemplul 4.25
Student | ⊗ Disc = (nr_matr nume pren den_disc notă )
111 Popa Dan NULL NULL
222 Darie Alin Birotică 10
333 Moga Dana Finanţe 9
333 Moga Dana Birotică 8
Exemplul 4.26
Student ⊗ | Disc = (nr_matr nume pren den_disc notă )
222 Darie Alin Birotică 10
333 Moga Dana Finanţe 9
333 Moga Dana Birotică 8
Probleme rezolvate
25
Această regulă este întâlnită în literatură sub numele de regula entităţii şi menţionează
faptul că toate atributele care formează cheia primară trebuie să primească valori.
64 Baze de date aplicate în economie
Abordarea relaţională a bazelor de date
b) După identificarea atributelor, va trebui să definim relaţiile din cadrul
cărora ele vor face parte. Astfel, vom avea următoarele relaţii (pentru fiecare
relaţie, vom descrie şi trei tupluri care să ne ajute la identificarea corectă a
cheilor primare ale relaţiilor):
Astfel, prin intermediul atributului cheie străină cui din relaţia Factură
putem să punem în evidenţă care este emitentul fiecărei facturi (ce societate
a emis o factură). Spre exemplu, dacă dorim să aflăm cine a emis factura DX
2222, vom identifica în cadrul relaţiei Factură care este tuplul care are ca
realizare a atributelor serie şi nr valorile DX (pentru serie), respectiv 2222
(pentru nr). Apoi, după identificarea tuplului, vom prelua valoarea cheii
străine (în cazul nostru, R333333) şi vom căuta această valoare pe domeniul
de valori aferent atributului care este cheie primară în relaţia din care a
migrat. Pentru exemplul nostru, vom merge în relaţia Societate şi pe
domeniul cheii primare vom căuta acel tuplu pentru care valoarea atributului
cui este R333333. În acest fel vom constata că factura DX 2222 este emisă
de Select SRL.
Conţinutul fiecărei facturi este evidenţiat prin intermediul relaţiei
Conţinut_factură. În acest fel constatăm că produsul Telefon Nokia este
achiziţionat prin intermediul a două facturi (DX 1111 şi JW 1111), iar
cantitatea aprovizionată este de 10, respectiv 20 unităţi. Totodată, prin
intermediul acestei noi relaţii am pus în evidenţă faptul că o factură poate
conţine mai multe produse (factura cu seria şi numărul DX 1111 conţine
produsele cu codurile 11 şi 33), dar şi faptul că un produs se poate găsi pe
mai multe facturi (produsul cu codul 11 se găseşte atât pe factura cu seria şi
numărul DX 1111 cât şi pe JW 1111), ceea ce argumentează legătura de
tipul mai mulţi la mai mulţi.
De asemenea, în cadrul relaţiei Factură se argumentează şi regula
entităţii. Astfel, putem observa că în cazul în care unul din cele două atribute
care formează cheia primară nu are valoare, atunci există posibilitatea ca pe
66 Baze de date aplicate în economie
Abordarea relaţională a bazelor de date
domeniul de valori respectiv să avem valori duplicate, ceea ce înseamnă că
nu mai poate îndeplini rolul de cheie primară a relaţiei. Spre exemplu, dacă
vom da valori numai atributului serie, atunci vom ajunge în situaţia în care
avem două valori duplicate pe domeniul respectiv de valori, ceea ce nu ar fi
permis. Deci, trebuie să nu omitem să dăm valori tuturor atributelor care
formează cheia primară a unei relaţii.
Teste grilă
1. [Bâscă, 1997] Bâscă, O., Baze de date, Editura All, Bucureşti, 1997.
2. [Connoly et al., 2002] Connoly, T., Begg, C., Strachan, A., Database
Systems – A practical Approach to Design, Implementation and
Management, Second Edition, Addison Wesley Limited, 2002.
3. [Date, 1994] Date, J., An introduction to Database Systems, ed. Addison
Wesley, 1994.
4. [Date, 2004] Date, J., An introduction to database systems, ediţia a VIII-a,
Pearson Addison Wesley, 2004.
5. [Diaz, 2000] Diaz, O., Advanced database technology and design, ed.
Piattini, 2000.
6. [Fotache, 2005] Fotache, M., Proiectarea bazelor de date. Normalizare şi
postnormalizare. Implementări SQL şi Oracle, Editura Polirom, Iaşi, 2005.
7. [Garsia-Molina et al., 2002] Garcia-Molina, H., Ullman, H., Widom, J.,
Database Systems. The complete Book, Prentice Hall, Upper Saddle
Riner, 2002.
8. [Georgescu, Georgescu, 2005] Georgescu, C., Georgescu, M., Baze de
date relaţionale şi multidimensionale, Editura Didactică şi Pedagogică
R.A., Bucureşti, 2005.
9. [Gerald, 1999] Gerald, P., Database Management Systems, ed. Mc Graw
Hill, 1999.
10. [Harrington, 2002] Harrington, J.L., Relational Database Design Clearly
Explained, ediţia a II-a, Morgan Kaufman, Amsterdam, 2002.
11. [Hoffer et al., 2002] Hoffer, J.A., Prescott, M.B., McFadden, F.R., Modern
Database Management, Prentice-Hall, 2002.
12. [Lungu, Bodea, 1995] Lungu, I., Bodea, C., Baze de date – organizare,
proiectare şi implementare, Editura All, Bucureşti, 1995.
13. [Popa et al., 1994] Popa, Ghe., Stanciu, A., Ivancenco, V., Mareş, V.,
SGBD, Editura All, Bucureşti, 1994.
14. [Popescu, 2001] Popescu, I., Modelarea bazelor de date, Editura Tehnică,
Bucureşti, 2001.
15. [Ramakrishnan, Gehrke, 2000] Ramakrishnan, R., Gehrke, J., Database
Management Systems, ed. Mc Graw Hill, 2000.
16. [Riccardo, 2001] Riccardo, G., Principles of Database Systems – with
Internet and Java Application, ed. Addison Wesley, 2001.
17. [Riordan, 1999] Riordan, R., Designing Relational Database Systems,
Microsoft Press, 1999.
18. [Silbershartz, Korth, 1997] Silbershartz, A., Korth, H., Database system
concepts, ed. Addison Wesley, 1997.
19. [Simsion, 2001] Simsion, G., Data Modeling Essentials. Analysis, Design
and Innovation, ediţia a II-a, Addison Wesley, 2001.