Universitatea “Dunărea de Jos” Galaţi

Baze de date aplicate în economie
Lect. dr. Lupaşc Adrian

Departamentul pentru Învăţământ la Distanţă şi cu Frecvenţă Redusă Galaţi - 2008

CUPRINS
Capitolul I – Fundamente ale bazelor de date............................................................3
Ce este baza de date? .........................................................................................................4 Arhitecturi ale sistemelor de baze de date .......................................................................6

Capitolul II – Proiectarea şi administrarea unei baze de date.................................13
Ciclul de viaţă al sistemelor informaţionale...................................................................14 Ciclul de viaţă al unui sistem de baze de date................................................................14 Proiectarea bazelor de date .............................................................................................17
Proiectarea conceptuală ...............................................................................................................17 Proiectarea logică ........................................................................................................................17 Proiectarea fizică .........................................................................................................................19

Proiectarea tranzacţiilor..................................................................................................19

Capitolul III – Sisteme de gestiune a bazelor de date ..............................................24
Evoluţia sistemelor de gestiune a bazelor de date .........................................................24 Facilităţi oferite de un SGBD ..........................................................................................27 Avantajele şi dezavantajele SGBD-urilor ......................................................................29 Componentele unui SGBD...............................................................................................35 Funcţiile SGBD-ului .........................................................................................................36

Capitolul IV – Abordarea relaţională a bazelor de date ..........................................43
Regulile lui Codd ..............................................................................................................43 Fundamente ale modelului relaţional .............................................................................45 Legături între relaţii.........................................................................................................50
Legătura binară 1-1 (unu la unu) .................................................................................................51 Legătura binară 1-n (unu la mai mulţi)........................................................................................52 Legătura binară n-n (mai mulţi la mai mulţi) ..............................................................................53 Legătura dintre trei sau mai multe relaţii.....................................................................................55

Algebra relaţională – operatorii relaţionali ...................................................................56 Probleme rezolvate ...........................................................................................................63

Bibliografie ................................................................................................................73

Fundamente ale bazelor de date

Capitolul I – Fundamente ale bazelor de date

**************************************************************************************** Obiectivele capitolului Capitolul I – Fundamente ale bazelor de date – prezintă evoluţia şi ascensiunea până în prezent a domeniului bazelor de date şi realizează o descriere succintă a aspectelor de bază care caracterizează domeniul. În acest context, am încercat să poziţionăm teoria bazelor de date în cadrul tehnologiilor informaţionale, am prezentat câteva definiţii relevante ale conceptului de bază de date formulate de cercetători şi profesori care s-au remarcat cu preocupări însemnate în cadrul domeniului şi au fost identificate şi analizate principalele arhitecturi specifice sistemelor de baze de date. Totodată, principalul scop avut în vedere este de a oferi o viziune clară şi o înţelegere generală a ceea ce reprezintă astăzi baza de date. **************************************************************************************** Tehnologiile informaţionale influenţează continuu şi produc modificări substanţiale asupra mijloacelor de lucru din întreaga lume. Informaţii care erau altădată stocate în depozite pline de dulapuri, pot fi accesate astăzi prin intermediul unei singure apăsări a butonului mouse-ului. Astfel, pentru stocarea informaţiilor din orice mediu imaginabil în zilele noastre sunt folosite sistemele de baze de date. De la bazele de date mari, aşa cum sunt sistemele care permit rezervarea on-line a biletelor pentru companiile aeriene şi până la fişele dintr-o bibliotecă, sistemele de baze de date sunt folosite pentru memorarea şi distribuirea datelor de care încep să depindă tot mai mult vieţile noastre. Până în urmă cu câţiva ani, sistemele mari de baze de date se găseau numai pe calculatoare de tip mainframe 1 . Însă, aşa cum era şi firesc, proiectarea, achiziţionarea sau întreţinerea unei astfel de maşini reprezenta o sarcină costisitoare şi dificil de realizat. Odată cu apariţia calculatoarelor din clasa staţiilor de lucru, pe care le întâlnim la tot pasul (biblioteci, laboratoare de informatică, departamente de lucru, etc.) şi care sunt puternice şi în acelaşi timp destul de ieftine, programatorii au posibilitatea de a proiecta rapid şi la costuri reduse produse informatice care să permită întreţinerea şi distribuirea datelor.

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.

1

Baze de date aplicate în economie

3

fiind cele care se bazează pe o gândire orientată obiect. În prezent. chiar o necesitate în anumite situaţii. iar posibilităţile de căutare. ar fi aceea al transferului acestor date într-o bază de date creată cu ajutorul unui sistem de gestiune al bazelor de date. este adevărat. diminuarea semnificativă a preţurilor aferente atât componentei hardware cât şi a celei software şi. este important să menţionăm anumiţi factori care au contribuit la această explozie: noile tehnici şi instrumente de modelare. În acest context. evident dintr-o bază de date care gestionează produsele. tehnologiile specifice bazelor de date. În mod natural. Atunci când cumpărăm ceva de la un supermarket. arhitecturile şi cadrele conceptuale au fost tot mai bine consolidate în ultimile decade. pentru a obţine un stoc suplimentar din acel articol. ceea ce face ca soluţiile (privite iniţial ca fiind cele mai adecvate) să nu mai fie potrivite. apariţia procesării de tipul client-server. 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. probabil că va fi accesată o bază de date. contribuind într-o măsură relevantă la adoptarea celor mai adecvate decizii care să le poată garanta succesul în afaceri şi nu numai. care utilizează codul de bare pentru a identifica preţul produsului pe care l-am ales. în contextul unei cantităţi reduse de informaţii. Ce este baza de date? Majoritatea bazelor de date iau naştere începând cu o listă într-un editor de texte sau într-o foaie de calcul. pe măsură ce lista devine tot mai mare. o idee bună. ani care au condus în mod inevitabil la cele mai relevante şi importante dezvoltări ale ingineriei software. Datele devin greu de înţeles sub forma listei. Mai mult. dacă stocul pentru un produs scade sub o anumită limită. 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. regăsire şi extragere a subseturilor de date pentru revizuire. autor sau subiectul acesteia. Acesta este conectat la un sistem informatic pentru baze de date. În timp însă. Practic. cele mai importante. managementul bazelor de date a evoluat astfel încât bazele de date au devenit o componentă cheie a sistemelor informaţionale moderne. nu în ultimul rând.Fundamente ale bazelor de date Cercetarea aferentă bazelor de date are aproape 35 de ani de istorie. actualizare sau utilizare devin extrem de limitate. încât uneori nici măcar nu mai conştientizăm că le utilizăm. Mai mult. De asemenea. pentru a preîntâmpina anumite cerinţe. în ultimii ani. Odată cu apariţia acestor probleme. odată cu creşterea activităţii unei organizaţii. încep să apară redundanţe şi inconsistenţe la nivelul datelor gestionate. suntem tentaţi să credem că a fost aleasă cea mai bună soluţie. 4 Baze de date aplicate în economie . bazele de date fac parte tot mai mult din viaţa noastră de zi cu zi în aşa măsură. Acest aspect a provocat un impact adânc precum şi modificări semnificative în modul de lucru al instituţiilor şi organizaţiilor. aceste sisteme se bazează pe un index computerizat care permite cititorului să identifice o carte după titlu. atât timp cât necesităţile informaţionale sunt satisfăcute. La momentul respectiv. Casierul va trece un cititor de coduri de bare peste fiecare dintre articolele pe care le achiziţionăm. acest volum creşte (spre exemplu. este posibil ca sistemul să emită în mod automat o comandă către un furnizor.

Profesorul M. în sensul că mai multe fişiere sunt privite în ansamblu. Volumul tot mai însemnat de informaţii nu mai poate fi utilizat eficient cu ajutorul mijloacelor tradiţionale. adică mai mulţi utilizatori. ci numai de date. putem privi baza de date ca ansambluri unitare de date. structurat. „Totodată. în opinia acestuia.51]. indiferent de domeniul său de activitate. aşa cum reiese şi din arhitectura pe niveluri a unui sistem de baze de date. care se regăsesc în acelaşi loc sau sunt distribuite spaţial. 2003. 1997..Fundamente ale bazelor de date În prezent ne este tot mai clar faptul că explozia informaţională este de ani buni trăsătura definitorie care caracterizează activităţile fiecărei organizaţii sau instituţii. pot obţine informaţiile dorite atunci când au nevoie de ele. părere pe care o împărtăşim parţial şi numai în cazul în care se face referire la baza de date în general. care. accesibil mai multor utilizatori în timp real. „O bază de date conţine toate informaţiile necesare despre obiectele ce intervin într-o mulţime de aplicaţii. logic. În continuare vom prezenta câteva dintre ele. baza de date reprezintă un ansamblu structurat de fişiere care grupează datele prelucrate în aplicaţiile informatice ale unei persoane. autorul vede baza de date ca un ansamblu de informaţii. p. putem afirma că cea mai evoluată metodă de organizare a datelor în vederea prelucrării lor automate o întâlnim la bazele de date.63]. întreprinderi. numit sistem de gestiune a bazei de date” [Georgescu. structurate. concomitent.11]. corelate logic între ele şi memorate împreună cu descrierea formală a structurii lor şi a legăturilor logice dintre ele. acoperă cel mai bine conceptul de bază de date. p. Astfel. nu putem vorbi de informaţii. În literatura de specialitate există numeroase definiţii aferente conceptului de bază de date. Astfel. relaţii logice între aceste informaţii şi tehnicile de prelucrare corespunzătoare. În acest context. Referitor la definiţia prezentată anterior. Astfel. eliminânduse pe cât posibil acele informaţii redundante. etc. Practic. aceasta reprezintă un ansamblu de colecţii de date: • • • • • organizat. Este cert faptul că atunci când facem referire la baza de date relaţională. a mai multor persoane de pregătiri diferite. p. fizic). în opinia noastră. conform unui model de date pentru bazele de date. O definiţie completă şi explicativă a noţiunii de bază de date este oferită în [Velicanu et al. În bazele de date are loc o integrare a datelor. instituţii. care este asigurată prin modelul de date implementat şi prin tehnicile de proiectare ale bazei de date. 5 Baze de date aplicate în economie . putem spune că avem unele reţineri în ceea ce priveşte utilizarea conceptului de informaţie. cu redundanţă minimă şi controlată. 2005. De asemenea. coerent. dar nu şi la o bază de date relaţională. constatăm că procesul de prelucrare automată a datelor prin intermediul sistemelor electronice de calcul a devenit o necesitate pentru majoritatea domeniilor de activitate. Fotache prezintă şi analizează o definiţie academică a bazei de date. a cărui gestionare este realizată de un sistem software unitar şi specializat. care rezultă din modelul logic aferent. pe niveluri de organizare a datelor (conceptual. grup de persoane. este permis accesul simultan la aceleaşi date. Georgescu. fiecare cu stilul personal de lucru” [Bâscă. conform restricţiilor de integritate şi a legăturilor dintre date.

Totodată. 6 Baze de date aplicate în economie . proiectată pentru a satisface necesităţile informaţionale ale fiecărei organizaţii. Astfel.1. conform autorilor. Atributul este o proprietate care descrie un aspect oarecare al obiectului pe care dorim să-l înregistrăm. precum şi a legăturilor dintre ele. Plecând de la definiţiile prezentate anterior. partajată. dublarea lor fiind în acest caz minimală. astfel încât să se satisfacă toate necesităţile informaţionale ale utilizatorilor ei. putem spune că baza de date conţine entităţile. partajată. un concept sau un eveniment) care aparţine unei organizaţii şi care trebuie reprezentat în baza de date. În funcţie de ceea ce se evidenţiază grafic. ci constituie acum o resursă comună. p. Definiţia prezentată anterior trebuie analizată în detaliu pentru a putea fi în măsură să dobândim o mai bună înţelegere a conceptului de bază de date.13]. putem privi o bază de date ca un instrument pentru organizarea şi colectarea tuturor informaţiilor. rolul unei arhitecturi este de a realiza o reprezentare grafică a elementelor sistemului. 2005. În capitolul 4 vom arăta cum se concretizează din punct de vedere practic legăturile logice dintre relaţii. Astfel. Această soluţie substituie crearea mai multor fişiere separate cu date de cele mai multe ori considerate a fi redundante şi presupune integrarea tuturor datelor necesare. Arhitecturi ale sistemelor de baze de date În literatura de specialitate sunt prezentate mai multe tipuri de arhitecturi ale sistemelor de baze de date. defineşte baza de date ca „o colecţie de date aflate în interdependenţă. Atunci când analizăm necesităţile informaţionale ale unei organizaţii. definită riguros (formalizată) şi controlată la nivel central” [Fotache. aşa cum se poate observa în figura 1. între care există diferite legături logice (împreună cu o descriere a acestora). o colecţie de date folosită într-o organizaţie. putem afirma că o bază de date relaţională reprezintă o colecţie partajată de date. avem în vedere în principal identificarea entităţilor. întâlnite în literatură sub denumirea de metadate (date despre date). ci şi o descriere a acestora..14]. prin introducerea conceptului de cheie străină. un departament. De aici decurge un prim avantaj semnificativ: baza de date nu mai este deţinută de un singur departament. arhitectura pe componente – oferă o imagine asupra elementelor care formează un sistem de baze de date. Baza de date reprezintă un depozit de date unic. Putem privi o entitate ca un obiect distinct (o persoană. similar. atributelor şi relaţiilor. Nouă ne-au atras atenţia cele prezentate în [Velicanu et al. larg. p. Pe de altă parte. iar relaţia se referă la o asociaţie între diferite entităţi. 2003. care este definit o singură dată şi este utilizat simultan de diferite departamente sau utilizatori. colecţie care este automatizată. se folosesc două tipuri de arhitecturi: 1. baza de date conţine nu numai datele operaţionale ale unei organizaţii sau instituţii. atributele.Fundamente ale bazelor de date Din punct de vedere formal. împreună cu descrierea datelor şi relaţiilor dintre ele sau. dar şi relaţiile (legăturile) logice dintre ele. dar şi a inter-dependenţelor dintre ele.

elementele auxiliare – sunt componentele care contribuie la realizarea şi funcţionarea întregului sistem de baze de date: 1.1. în cea mai mare parte. datele – sunt organizate într-o bază de date care conţine: • • • colecţii de date propriu-zise. etc. 2. Arhitectura pe niveluri structurează un sistem de baze de date pe trei niveluri şi oferă o imagine despre modul de organizare şi funcţionare al acestuia (figura 1. software-ul – este aferent realizării şi exploatării bazei de date şi conţine: • • sistemul de gestiune a bazei de date. reglementări legale şi administrative. 3. un set de proceduri automate (rutine) şi manuale. mijloace hardware utilizate. 2. într-un sistem de gestiune a bazelor de date.). Arhitectura pe componente a unui sistem de baze de date Aşa cum se observă. restricţiile de integritate.Fundamente ale bazelor de date Date Software Elemente auxiliare Figura 1. fişierele anexe.1 sunt: a. c. persoane implicate pe categorii de utilizatori. programele de aplicaţie dezvoltate. componentele specifice arhitecturii din figura 1. dicţionarul de date (structura de date. vederile. Baze de date aplicate în economie 7 . aşa cum sunt cele de index. b.2). 4.

viziunea administratorului asupra bazei de date este independentă de aplicaţiile care vor fi dezvoltate (independenţa logică).2 sunt redate nivelurile de organizare (reprezentare) a datelor în baza de date şi legăturile dintre ele: nivelul conceptual. odată definită. schema conceptuală trebuie confruntată cu lumea reală pentru identificarea şi soluţionarea neconcordanţelor sau a omisiunilor. nivelul conceptual – este dat de viziunea administratorului bazei de date asupra datelor. p.2.. structura conceptuală este o reprezentare în interiorul sistemului a realităţii pe care baza de date o transcrie. • • • • • 2 SGBD – Sistem de Gestiune a Bazelor de Date 8 Baze de date aplicate în economie .. structura conceptuală se obţine utilizând un anumit model de date pentru baza de date. Logic Administrator baza de date SGBD S. datorită caracterului său global şi unitar. Structura externa (logica) .. se pot menţiona următoarele aspecte: • • administratorul realizează structura conceptuală a bazei de date. Legat de acest nivel. rezultatul nivelului conceptual este schema conceptuală. eventual cu ajutorul instrumentelor oferite de un SGBD2. realizarea schemei corespunde unei activităţi de modelare pentru că este vorba despre o transpunere în termeni abstracţi a entităţilor lumii reale. nivelul logic şi nivelul fizic.O. Arhitectura pe niveluri a unui sistem de baze de date În arhitectura prezentată în figura 1.. Georgescu. Structura conceptuala . Conceptual Inginer (analist) de sistem Bază de date Structura interna (fizica) Fizic Figura 1.. se recomandă ca schema conceptuală să fie gestionată de o singură persoană [Georgescu.67]. 2005. a. precum şi o tehnică de proiectare cât mai adecvată..Fundamente ale bazelor de date Vederi ale bazei de date Manipulare date Descriere date Niveluri de organizare date Programator de aplicatie Program aplicatie 1 .

nivelul logic – este dat de viziunea programatorului asupra datelor. 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. rezultatul nivelului logic este schema externă. Totodată. această schemă conceptuală constituie nivelul logic al bazei de date. Vederile sunt descrise prin intermediul unor subscheme în sublimbaje ale limbajului de descriere a datelor (LDD). implementată cu ajutorul unui SGBD. utilizatorii pot primi răspunsuri la cererile pe care le formulează prin intermediul limbajului de prelucrare a datelor. cum ar fi: • perspectiva utilizatorului. structura externă este dedusă din structura conceptuală. care priveşte baza de date ca pe o colecţie de fişiere memorate pe diferite medii externe. el coincide cu administratorul bazei de date. Baze de date aplicate în economie 9 • • . scrise într-un SGBD. 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. ca parte din schema conceptuală. viziunea programatorului este independentă de suportul tehnic de informaţie (independenţa fizică). numite vederi. Practic. perspectiva administratorului bazei de date. perspectiva implementatorului bazei de date – în foarte multe situaţii. Legat de acest nivel se pot prezenta următoarele aspecte: • • • • • • programatorul realizează programele de aplicaţie pentru descrierea şi manipularea datelor.Fundamente ale bazelor de date b. implementarea schemei interne se face cu ajutorul sistemului de gestiune a fişierelor (SGF) din cadrul SGBD-ului şi/sau din sistemul de operare. programele implementează structura externă (logică) a datelor. structura externă reprezintă viziunea programatorului asupra bazei de date pentru o anumită aplicaţie. care integrează toate vederile referitoare la baza de date într-un singur model numit schemă conceptuală. Aferent nivelului fizic putem menţiona următoarele: • • • • • analistul de sistem este cel căruia îi revine sarcina de a realiza structura internă (fizică). Acesta constituie nivelul fizic al bazei de date şi care este practic singurul nivel care există efectiv. Perspective asupra unei baze de date Fiecare bază de date o putem privi din diferite perspective. c. prin gestiunea fizică a perifericelor. rezultatul la nivelul fizic este schema internă (fizică) care se defineşte în termeni de fişiere şi înregistrări. care lucrează cu diferite părţi componente ale unei baze de date.

Definiţi conceptul de atribut. 4. Ce reprezintă o bază de date? 2. Referitor la o bază de date relaţională. Căror viziuni corespund cele trei niveluri ale arhitecturii pe niveluri? Teste grilă 1. datele. c. d. a preţurilor aferente componentelor c. Prezentaţi rolul nivelului logic aferent arhitecturii pe niveluri. d. colecţii organizate de date între care pot exista diferite legături. Prezentaţi rolul nivelului fizic aferent arhitecturii pe niveluri. Definiţi conceptul de entitate. 9. c. Care sunt componentele specifice arhitecturii pe componente? 7. creşterea semnificativă hardware şi software. 6. putem afirma că va conţine: a. 10. dezvoltarea prelucrărilor bazate pe tehnologia client-server. b. d. iar dacă există. dicţionarul de date. colecţii organizate de date între care există legături logice. 3. necesitatea unei administrări mai eficiente a unei cantităţi mai mari de informaţii. 2. Menţionaţi factorii care au permis domeniului bazelor de date să devină o componentă cheie a sistemelor informaţionale moderne. 8. apariţia tehnicilor bazate pe gandirea orientată-obiect. Identificaţi principalele motive care determină trecerea de la o organizare a datelor sub forma foilor de calcul Excel la cea sub forma bazei de date. Printre factorii care au contribuit la adoptarea în masă a sistemelor de baze de date se numără: a.Fundamente ale bazelor de date Întrebări recapitulative 1. Prezentaţi rolul nivelului conceptual aferent arhitecturii pe niveluri. sistemul de gestiune al bazei de date. colecţii organizate de date între care pot exista legături. b. b. colecţii organizate de date fără legături logice. 10 Baze de date aplicate în economie . 5. 3. ele sunt legături logice. Componenta software specifică arhitecturii pe componente a unui sistem de baze de date poate conţine: a. fişierele anexă.

5. c. viziunea programatorului şi al administratorului bazei de date este independentă de suportul tehnic de informaţie.Fundamente ale bazelor de date 4. programe de aplicaţii dezvoltate într-un sistem de gestiune a bazelor de date. viziunea programatorului asupra bazei de date este independentă de aplicaţiile care vor fi dezvoltate. viziunea utilizatorului final asupra bazei de date este independentă de aplicaţiile care vor fi dezvoltate. b. independenţa fizică se realizează indiferent de programatorului. Independenţa fizică se referă la faptul că: a. prin gestiunea fizică a perifericelor. pentru b. viziunea programatorului şi al administratorului asupra bazei de date este independentă de aplicaţiile care vor fi dezvoltate. Independenţa logică se referă la faptul că: a. Nivelul conceptual specific arhitecturii pe niveluri se referă la: a. Elementele auxiliare specifice arhitecturii pe componente se referă la: a. b. c. viziunea programatorului este independentă de suportul tehnic de informaţie. viziunea administratorului. d. viziunea administratorului asupra bazei de date este independentă de aplicaţiile care vor fi dezvoltate. viziunea administratorului asupra bazei de date este independentă de aplicaţiile care vor fi dezvoltate. c. la nivel logic: a. d. c. al programatorului şi al utilizatorului asupra modului de proiectare a bazei de date. d. În cadrul arhitecturii pe niveluri. b. viziunea programatorului este independentă de suportul tehnic de informaţie. structura datelor. viziunea programatorului asupra datelor. utilizatorului sau a administratorului. Baze de date aplicate în economie viziunea 11 . b. programatorul realizează programele de aplicaţie descrierea şi manipularea datelor. viziunea administratorului bazei de date este independentă de suportul tehnic de informaţie. d. viziunea administratorului bazei de date asupra datelor. implementarea schemei interne se face cu ajutorul sistemului de gestiune a fişierelor din cadrul SGBD-ului şi/sau din sistemul de operare. restricţiile de integritate şi vederile unei baze de date. 6. viziunea utilizatorului asupra modului de proiectare a bazei de date. scrise într-un SGBD. 8. c. 7. realizarea şi funcţionarea întregului sistem de baze de date. realizarea şi exploatarea bazei de date. d.

nivelului conceptual. nivelului fizic. Independenţa logică este specifică: a.Fundamente ale bazelor de date 9. dar nu descrie modul în care sunt stocate datele în baza de date. c. b. Nivelul fizic aferent arhitecturii pe niveluri se referă la: a. viziunea analistului de sistem asupra datelor şi descrie modul în care ele sunt stocate în baza de date. viziunea inginerului de sistem asupra datelor. nivelului logic. b. d. viziunea inginerului de sistem asupra datelor şi descrie modul în care sunt stocate datele în baza de date. 10. în funcţie de modul de proiectare al bazei de date. independenţa logică este specifică nivelului conceptual sau nivelului logic. viziunea administratorului bazei de date asupra datelor. d. 12 Baze de date aplicate în economie . c.

Practic. Însă. această ameliorare avea în vedere şi adaptarea acestor aplicaţii la platforme multiple. iar performanţele întârziau să apară (cam 80-90% din sisteme nu-şi atingeau scopul). întreţinerea se face tot mai greu. în mod normal. ca o soluţie care să permită ieşirea din criză şi Baze de date aplicate în economie 13 . capitolul II – Proiectarea şi administrarea unei baze de date – urmăreşte atingerea următoarelor obiective: • identificarea şi definirea principalelor caracteristici ale ciclului de viaţă al unui sistem de baze de date. aceste aplicaţii necesitau şi o întreţinere constantă. Astfel. Toate aceste aspecte specifice întreţinerii au condus la un consum tot mai însemnat de resurse. bugetul alocat lor devenea constant insuficient. din păcate. funcţionalitatea ei să nu fie afectată. definirea şi proiectarea tranzacţiilor. În ultimile decade am observat o expansiune a aplicaţiilor software. iar rezultatul nu a întârziat să apară: multe proiecte importante se aflau în întârziere. dacă privim evoluţia în timp a dezvoltării sistemelor software constatăm că nu este impresionantă. care urmărea în primul rând corectarea erorilor detectate. **************************************************************************************** În prezent observăm că avalanşa produselor software o depăşeşte net pe cea a componentelor hardware. destul de complexe şi care presupuneau scrierea a milioane şi milioane de linii de cod. astfel încât. până la cele mari. În acest context. Totodată. Însă. Printre principalele motive care au stat la baza acestei crize putem aminti: lipsa specificaţiilor complete referitoare la cerinţe. prezentarea tipurilor de proiectare: conceptuală. această situaţie a condus la ceea ce se numea la vremea respectivă „criza de software”. a unei metodologii adecvate de realizare. îmbunătăţirea funcţionalităţii prin implementarea altor cerinţe care veneau din partea utilizatorului. indiferent de locul în care rula aplicaţia. logică şi fizică. de la cele mici şi relativ simple şi care presupuneau câteva linii de cod. dar şi proasta partiţionare a proiectării în componente uşor de manevrat.Proiectarea şi administrarea unei baze de date Capitolul II – Proiectarea şi administrarea unei baze de date **************************************************************************************** Obiectivele capitolului Proiectarea şi administrarea sistemelor de baze de date reprezintă o sarcină dificilă şi importantă în cadrul ciclului de viaţă al unui sistem informatic care are drept scop gestionarea şi utilizarea unui anume volum de date stocate prin intermediul acestora. • • • detalierea procesului de proiectare a unei baze de date.

sistemul informatic este inclus în cel informaţional şi îi oferă acestuia noi valenţe. treptat. prototipizarea. Ciclul de viaţă al unui sistem de baze de date Etapele specifice ciclului de viaţă al unei aplicaţii de tip bază de date sunt prezentate în figura 2. prelucrarea. Trebuie menţionat că etapele ciclului de viaţă ale unei astfel de aplicaţii nu sunt strict secvenţiale. organizate într-o concepţie unitară şi care asigură legătura dintre sistemul decizional (de conducere) şi cel operaţional (de execuţie). dacă apar anumite probleme în timpul proiectării bazei de date. proiectarea (inclusiv a bazei de date). Acest aspect a avut ca rezultat crearea unor departamente funcţionale denumite administrarea datelor şi administrarea bazelor de date. Trebuie menţionat faptul că nu trebuie să confundăm sistemul informaţioanal cu cel informatic (din păcate.Proiectarea şi administrarea unei baze de date soluţionarea problemelor menţionate anterior. care trebuie tratată cu respect. transmiterea şi stocarea datelor cu ajutorul mijloacelor automate de prelucrare a datelor. Spre exemplu. Acest lucru se realizează prin implementarea de către sistemul informatic a unor modele matematice şi prin utilizarea tehnicii electronice de calcul. ci pot presupune revenirea la o etapă anterioară şi repetarea lor. Începând cu anii ’70. utilizat pentru culegerea. Ciclul de viaţă al sistemelor informaţionale Putem privi sistemul informaţional ca un ansamblu de fluxuri şi circuite informaţionale. se poate reveni la etapa anterioară care are drept obiectiv colectarea şi analiza cerinţelor. etapele aferente ciclului de viaţă al unui sistem informaţional includ: planificarea. În plus. am constatat că există studii sau păreri care le privesc pe cele două ca fiind unul şi acelaşi lucru). vitală în anumite situaţii. atât sub aspect calitativ. Scopul acestuia este de a automatiza procesul informaţional şi de a sta la baza fundamentării deciziilor. numită ciclu de viaţă al sistemelor informaţionale. cât şi cantitativ. În acelaşi timp. Astfel. care erau responsabile cu administrarea şi controlul datelor. a avut loc o recunoaştere treptată a faptului că datele constituie o resursă comună. 14 Baze de date aplicate în economie . ca toate celelalte resurse ale organizaţiei. considerăm că baza de date este o componentă de bază a unui sistem informaţional.1. ca parte a infrastructurii sistemelor informaţionale din cadrul unei organizaţii. ciclul de viaţă al sistemului informaţional dintr-o organizaţie este puternic legat de ciclul de viaţă al sistemului de baze de date care îl susţine. Astfel. sistemele de baze de date le-au luat locul celor bazate pe fişiere. a fost propusă o nouă abordare structurată privind dezvoltarea produselor software. iar dezvoltarea şi utilizarea sa trebuie privite şi analizate din perspectiva cerinţelor mai largi ale organizaţiei. În acest context. analiza cerinţelor. implementarea şi întreţinerea. sistemul informatic reprezintă un ansamblu structurat de elemente intercorelate funcţional. importantă. De obicei.

este foarte important să definim limitele (graniţele) sistemului avut în vedere şi modul în care acesta realizează interfaţa cu alte părţi ale sistemului informaţional al organizaţiei.Proiectarea şi administrarea unei baze de date Planificarea bazei de date Delimitarea granitelor sistemului Colectarea si analiza cerintelor Proiectarea bazei de date Proiectarea conceptuala Alegerea SGBD-ului Proiectarea logica Proiectarea aplicatiei Proiectarea fizica Prototipizarea Implementarea Testarea Întretinere operationala Figura 2. delimitarea graniţelor sistemului – se referă la specificarea scopului şi limitelor aplicaţiei. a utilizatorilor săi şi a domeniilor de aplicaţie.1. Ciclul de viaţă al unei aplicaţii de tip bază de date Principalele activităţi asociate fiecărei etape din ciclul de viaţă al aplicaţiei de tip bază de date sunt: • • planificarea bazei de date – presupune planificarea modului în care etapele ciclului de viaţă pot fi realizate cel mai eficient. Practic. Înainte de a începe proiectarea unei aplicaţii de tip bază de date. includerea şi delimitarea graniţelor 15 Baze de date aplicate în economie .

Această alegere poate fi făcută în orice moment anterior proiectării logice. întreţinerea operaţională – presupune o monitorizare continuă a aplicaţiei realizate. logică şi fizică. nu numai pentru utilizatorii şi aplicaţiile curente. În sens larg. oferirea unui model de date care să permită realizarea tranzacţiilor asupra datelor.Proiectarea şi administrarea unei baze de date unui sistem este o etapă importantă. să evalueze modul de funcţionare al noului sistem. principalele scopuri urmărite atunci când se doreşte proiectarea unei baze de date se referă la: reprezentarea datelor şi a relaţiilor logice dintre acestea. • colectarea şi analiza cerinţelor – are în vedere analiza cerinţelor colectate de la utilizatori. specificarea unui proiect minimal şi structurat în mod adecvat pentru realizarea cerinţelor stabilite referitoare la performanţele noului sistem. dar şi a domeniilor de aplicaţie. toate vederile specificate de către utilizatori sunt definite în această etapă. iar dacă este nevoie. necesare tuturor domeniilor de aplicaţie şi principalelor grupuri de utilizatori. parcurgând etapele precedente ale ciclului de viaţă. implementarea – la încheierea etapelor de proiectare. cum ar fi performanţa sau constrângerile de securitate şi integritate. ci şi pentru cele din viitor. proiectarea aplicaţiei – are în vedere proiectarea interfeţei cu utilizatorul şi a programelor care utilizează şi prelucrează baza de date. această etapă vizează procesul de culegere şi analiză a informaţiilor aferente organizaţiei pentru care se proiectează baza de date respectivă. ne aflăm în situaţia de a implementa baza de date şi programele aplicaţie. alegerea SGBD-ului – este o etapă opţională şi presupune alegerea unui SGBD adecvat pentru aplicaţia realizată. corespunzător sistemului de gestiune a bazelor de date ales. Implementarea bazei de date se realizează prin utilizarea limbajului de definire a datelor (LDD). dar şi utilizarea acestora în vederea identificării cerinţelor utilizatorilor privind noul sistem. Instrucţiunile limbajului LDD sunt compilate şi utilizate pentru a permite crearea schemei bazei de date. dar şi utilizatorului. Totodată. cu condiţia să fie disponibile suficiente informaţii referitoare la cerinţele sistemului. vor fi încorporate cerinţe noi. Mai precis. • 16 Baze de date aplicate în economie . testarea – este etapa în care se testează aplicaţia şi se identifică eventualele neconcordanţe dintre cerinţele utilizatorilor şi rezultatul furnizat de aceasta. prototipizarea – este tot o etapă opţională şi presupune construirea unui prototip de sistem care să permită proiectantului. proiectarea bazei de date – include proiectarea conceptuală.

2002. fizică – urmăreşte implementarea efectivă a bazei de date pe suportul de stocare. Totodată. 4 3 Baze de date aplicate în economie 17 . Modelul de date E-R – Entitate – Relaţie 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. acest model constituie o sursă importantă de informaţii pentru faza de proiectare logică. programele de aplicaţie. care vizează construirea unui model informaţional bazat pe unul din modelele tradiţionale (E-R3. OR5). cum ar fi: • • • compromiterea integrităţii datelor deoarece restricţiile de integritate nu pot fi proiectate sau implementate corect. iar aplicaţiile individuale se „aglomerează” în încercarea de a se asigura sincronizarea datelor. aceasta poate prezenta mai multe deficienţe. 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).281-282] identifică şi descriu trei tipuri de proiectări: • • conceptuală. performanţele sunt afectate deoarece este posibil ca pentru finalizarea unei instrucţiuni (spre exemplu. • Proiectarea corespunzătoare bazei de date este o etapă foarte importantă. În lipsa unei proiectări adecvate a bazei de date. inclusiv acele aspecte care ţin de asigurarea şi garantarea securităţii datelor. care se referă la dezvoltarea unui model informaţional independent de orice considerent privitor la aspectul fizic al datelor. cum ar fi elementele de software ale sistemului SGBD avut în vedere. 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. instrucţiunea Select 6 ) să fie necesare interogări suplimentare. logică. datele sunt redundante. acesta să fie permanent testat şi validat conform cerinţelor utilizatorului. Proiectarea conceptuală a bazei de date este complet independentă de detaliile de implementare. OO4. p. relaţional. Acest model de date va fi construit prin utilizarea informaţiilor aferente specificaţiilor cerinţelor utilizatorului. Practic. platforma hardware sau orice alte consideraţii fizice. dar independent de tipul SGBD-ului ales şi de alte aspecte fizice ale modelului. trebuie să menţionăm că este important ca pe tot parcursul procesului de realizare a modelului conceptual de date. mai ales că trebuie să fie capabilă să garanteze buna funcţionare a acesteia şi a oricărei aplicaţii care o utilizează.Proiectarea şi administrarea unei baze de date Proiectarea bazelor de date Connoly şi colaboratorii săi [Connoly et al..

Există un număr de reguli care se aplică în normalizare. Pe parcursul realizării modelului logic de date. • minimizarea numărului de anomalii ce pot apărea la actualizare (inserarea datelor. ierarhic sau orientat spre obiecte. Practic. care este independent de toate consideraţiile fizice. normalizarea garantează că relaţiile derivate din modelul de date nu prezintă redundanţe. astfel încât fiecare dintre ele va depinde în totalitate de cheia primară. Tehnica de normalizare este utilizată pentru a testa corectitudinea modelului logic de date. se efectueză testarea şi validarea permanentă a acestuia în conformitate cu cerinţele utilizatorului. Însă. Principalele obiective ale normalizării sunt [Fotache.Proiectarea şi administrarea unei baze de date conceptual creat în faza precedentă este rafinat şi transpus într-un model de date logic. 2. Această regulă se realizează prin repartizarea atributelor într-o relaţie. 3. care pot cauza anomalii (la implementare) la actualizarea bazei de date. Fiecare atribut trebuie să depindă în totalitate de cheia primară a relaţiei pe care o descrie (forma II normală). Altfel spus. • ameliorarea structurii bazei de date. modelul logic de date reprezintă o sursă importantă de informaţii pentru faza de proiectare fizică. modelul logic este creat plecând de la modelul de date principal al sistemului SGBD ţintă. Î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. care sunt foarte importante pentru a face ca proiectarea bazei de date să fie eficientă. Totodată. fiecare relaţie trebuie să aibă o singură cheie primară. Acesta este influenţat de către modelul de date avut în vedere pentru baza de date (spre exemplu. fiecare detaliu fizic. Toate atributele trebuie specificate o singură dată (forma I normală). punând la dispoziţia proiectantului bazei de date logice un mecanism care să-i permită realizarea negocierilor. Pentru a putea fi în forma III normală. Totodată. aşa cum sunt structurile de stocare. dar mai ales modificări şi ştergeri). de exemplu. p. reprezentarea diverselor conexiuni dintre atributele acesteia. • diminuarea nevoii de reorganizare periodică a modelului. 2005. • minimizarea riscului apariţiei de date inconsistente în cadrul bazei de date. Cu alte cuvinte. ştim că SGBD-ul este. modelul de date relaţional pe care îl vom detalia în capitolul IV). 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. acest model are un rol important în etapa de întreţinere 18 Baze de date aplicate în economie . se ignoră alte aspecte ale SGBD-ului ales şi. Spre deosebire de celălalt model. relaţional. 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. mai ales.41-42]: • minimizarea spaţiului necesar stocării datelor.

proiectarea mijloacelor care să asigure securitatea sistemului. Aşa cum am vazut deja. cu alte cuvinte se referea la definirea relaţiilor. 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. în [Georgescu.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. identificarea structurilor de stocare specifice şi metodelor de acces la date. Aceste tranzacţii trebuie aplicate bazei de date. din informaţiile prezentate în modelul logic de date (modelul global). Cu toate că această structură este independentă de SGBD-ul ales. Astfel. În cele mai multe situaţii. înregistrarea unei note obţinute de un student la o disciplină. în care proiectantul stabileşte cum va fi ea implementată. p. etc. deoarece pe parcursul proiectării fizice sunt luate decizii referitoare la îmbunătăţirea performanţelor. aşa cum este cel relaţional. • • Proiectarea tranzacţiilor În sens larg. Tranzacţiile reprezintă evenimente din lumea reală. cum ar fi adăugarea unui nou angajat. în cazul modelului relaţional. În realizarea proiectării fizice. 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. înregistrarea unui nou client. Baze de date aplicate în economie 19 . 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 pot însă afecta structura modelului logic de date. 2005. care accesează sau actualizează o bază de date. de modificarea structurii acesteia. faza precedentă presupunea realizarea unei structuri logice. ea se realizează conform unui model de date. proiectarea fizică este croită după modelul unui anumit SGBD. trebuie iniţial identificat sistemul de baze de date avut în vedere. Prin urmare. Dacă este întreţinut şi îmbunătăţit adecvat. etc. de adăugarea unei noi tabele. pentru asigurarea consistenţei şi siguranţei bazei de date. Între proiectarea fizică şi cea logică există o legătură. pentru a garanta că datele conţinute în aceasta rămân „la curent” cu situaţia din lumea reală. 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.Proiectarea şi administrarea unei baze de date operaţională din ciclul de viaţă al unei aplicaţii cu baze de date. De asemenea. Proiectarea fizică Proiectarea fizică a bazelor de date este a treia fază din procesul de proiectare a unei baze de date. aceasta presupune: • extragerea unui set de tabele relaţionale (relaţii) şi de constrângeri asupra acestora. dar şi pentru a susţine nevoile informaţionale ale utilizatorilor. astfel încât să se garanteze obţinerea unor performanţe optime cu sistemul respectiv. atributelor şi legăturilor dintre ele. Georgescu.

atunci. odată debitat primul cont şi încheiată tranzacţia. chiar în cazul unei defecţiuni. Totodată. Totuşi. Există numeroase tehnici de preluare şi generare a specificaţiilor cerinţelor. atunci când sunt analizate. Aceste tranzacţii pot constitui operaţii complexe care. din punctul de vedere al utilizatorului. SGBD-ul asigură coerenţa bazei de date. modificarea nu ar mai putea fi anulată (pentru situaţia în care creditarea nu s-ar realiza). SGBD-ul este în măsură să garanteze că modificările realizate de acesta sunt anulate. cum ar fi spre exemplu. aceste operaţii realizează o singură sarcină. care includ şi o notaţie pentru specificarea tranzacţiilor cerute de către utilizatori. Dacă dintr-un motiv oarecare. se dovedesc a fi compuse. transferul banilor dintr-un cont în altul. În exemplul menţionat anterior. de fapt.Proiectarea şi administrarea unei baze de date O tranzacţie poate fi formată din mai multe operaţii. SGBD-ul garantează şi faptul că odată tranzacţia finalizată. din mai multe operaţii. tranzacţia nu poate fi terminată. fiecare dintre acestea constituind câte o singură tranzacţie. modificările realizate sunt stocate permanent în baza de date şi nu pot fi pierdute sau anulate. Trebuie să mai menţionăm şi faptul că proiectarea unei tranzacţii se bazează pe informaţiile din specificaţiile cerinţelor utilizatorului. Din perspectiva SGBD-ului. SGBD-ul va anula şi debitarea. În cazul în care am defini cele două operaţii (debitarea şi creditarea) ca tranzacţii separate. o tranzacţie transferă baza de date dintr-o stare în alta. 20 Baze de date aplicate în economie . dacă banii sunt debitaţi într-un cont şi tranzacţia eşuează înaintea creditării celuilalt cont. cel al transferului de bani.

se poate reveni la o etapă anterioară numai după parcurgerea tuturor etapelor. Ce reprezintă întreţinerea operaţională? 4. sunt mereu secvenţiale. 6. c. c. b. întreţinere operaţională. Identificaţi şi prezentaţi pe scurt principalele scopuri ale proiectării unei baze de date. 3. Proiectarea conceptuală. prototipizare. Proiectarea logică. d. nu pot fi mereu secvenţiale. d. sistemul decizional şi cel operaţional. etapele ciclului de viaţă se pot derula secvenţial sau nu. Proiectarea fizică. testare. sistemul operaţional şi cel informatic. Ce reprezintă tranziţia? Teste grilă 1. 9. 8. Proiectarea tranzacţiilor. sistemul de conducere şi cel de execuţie. 7. Etapele ciclului de viaţă al unui sistem de baze de date: a. b. Ce reprezintă sistemul informaţional? 2. alegerea SGBD-ului. b. 2. Ce reprezintă tranzacţia? 10. Rolul sistemului informaţional este de a asigura legătura dintre: a.Proiectarea şi administrarea unei baze de date Întrebări recapitulative 1. Baze de date aplicate în economie 21 . 3. Proiectarea bazei de date se referă şi la: a. toate sistemele organizaţiei. depinde de maniera de proiectare a sistemului informatic: în funcţie de aceasta. c. d. Care sunt principalele tipuri de proiecări în viziunea cercetătorului Connoly şi a colaboratorilor săi? 5.

7. b. oferirea unui model de date care să permită realizarea tranzacţiilor şi a tranziţiilor asupra datelor. c. monitorizarea continuă a aplicaţiei şi încorporarea permanentă a unor noi cerinţe. o etapă obligatorie specifică proiectării bazei de date care permite proiectantului şi utilizatorului să evalueze modul de funcţionare a aplicaţiei. fără însă a se mai putea adăuga funcţionalităţi suplimentare aferente noilor cerinţe. monitorizarea continuă a aplicaţiei.Proiectarea şi administrarea unei baze de date 4. monitorizarea continuă a aplicaţiei şi încorporarea unor noi cerinţe. construirea unui model informaţional independent bazat pe unul din modelele tradiţionale. c. Întreţinerea operaţională se referă la: a. Proiectarea bazei de date se referă şi la: a. c. b. construirea unui model informaţional independent de fiecare considerent privitor la aspectul fizic al datelor. o etapă obligatorie specifică proiectării bazei de date care permite numai proiectantului să evalueze modul de funcţionare a aplicaţiei. b. d. implementarea efectivă a bazei de date. 5. construirea unui model informaţional dependent de fiecare considerent privitor la aspectul fizic al datelor. monitorizarea şi testarea continuă a aplicaţiei. proiectarea bazei de date nu se referă la oferirea unui model de date. 6. d. c. Proiectarea conceptuală se referă la: a. oferirea unui model de date care să permită realizarea tuturor tranziţiilor necesare. o etapă opţională specifică proiectării bazei de date care permite proiectantului şi utilizatorului să evalueze modul de funcţionare a aplicaţiei. d. d. o etapă opţională specifică proiectării bazei de date care permite numai proiectantului să evalueze modul de funcţionare a aplicaţiei. atunci când este cazul. Prototipizarea este: a. oferirea unui model de date care să permită realizarea tranzacţiilor. b. 22 Baze de date aplicate în economie .

proiectării tranzacţiilor. acţiuni care accesează sau actualizează baza de date. Tranzacţia se referă la: a. acţiuni care numai accesează baza de date. trecerea de la o realizare la alta a bazei de date. b. c. 10. imposibilitatea proiecării corecte a restricţiilor de integritate asupra datelor. d. c. b. proiectării fizice. proiectării logice. Proiectarea incorectă a bazei de date poate conduce la următoarele deficienţe: a. d. c. proiectării conceptuale. b. lipsa performanţelor dorite.Proiectarea şi administrarea unei baze de date 8. acţiuni care numai actualizează baza de date. d. Realizarea unui model de date logic este specific: a. neredundanţa datelor. afectarea integrităţii datelor. Baze de date aplicate în economie 23 . 9.

**************************************************************************************** În sens larg putem defini sistemul de gestiune a bazelor de date (SGBD) ca un sistem de programe care permite utilizatorilor definirea. 2007. apropiat de modul obişnuit de exprimare. asigurând legătura şi independenţa între elementele sistemului. Totodată. precum şi principalele avantaje şi dezavantaje pe care le aduc introducerea în practică a acestora.94] SGBD-ul este definit ca un ansamblu complex de programe care asigură interfaţa între o bază de date şi utilizatorii acesteia. autorii consideră SGBD-ul o componentă software a unui sistem de baze de date care este capabil să interacţioneze cu toate celelalte componente ale acestuia.. Totuşi. pentru a obţine informaţii. p. la modul de organizare a acestora pe suportul fizic de memorare. am tratat componentele unui sistem de gestiune a bazelor de date. în care să înceapă tratarea prin baze de date şi să înceteze sistemul bazat pe fişiere. Un SGBD oferă utilizatorului posibilitatea de a accesa datele prin intermediul unui limbaj de nivel înalt. Termenul de bază de date se va referi la datele de prelucrat. Evoluţia sistemelor de gestiune a bazelor de date Aşa cum se ştie. p. în cadrul capitolului trei. am descris evoluţia în timp a acestora şi am prezentat principalele facilităţi pe care le oferă. Astfel.. 2003. generarea şi întreţinerea unei baze de date. nu a existat un moment bine definit. SGBD-ul este practic o interfaţă între utilizatori şi sistemul de operare.Sisteme de gestiune a bazelor de date Capitolul III – Sisteme de gestiune a bazelor de date **************************************************************************************** Obiectivele capitolului Sistemul de gestiune a bazelor de date constituie în prezent un cadru de bază al sistemelor informaţionale şi a modificat fundamental modul de operare al unei organizaţii. sistemul bazat pe fişiere mai există încă şi astăzi în anumite domenii. iar termenul de gestiune va semnifica totalitatea operaţiilor ce se aplică asupra datelor din baza de date [Trandafir et al.10]. precum şi accesul controlat la aceasta. De fapt. S-a sugerat că SGBD-ul îşi are rădăcinile în proiectul de aselenizare Apollo din 24 Baze de date aplicate în economie . am definit sistemul de gestiune a bazelor de date. Totodată. utilizatorul făcând abstracţie de mijloacele şi metodele folosite pentru alegerea datelor implicate şi a modului de memorare a lor. predecesorul SGBD-ului a fost sistemul bazat pe fişiere. În [Velicanu et al. funcţiile lui.

Ca rezultat. ceea ce constituia o cerinţă de piaţă în acel moment. parţial.acum Rockwell International). În acel moment. Termenii de referinţă ai grupului DBTG constau în definirea de specificaţii standard pentru un mediu care să permită crearea de baze de date şi manipularea datelor. toate componentele mai mici constituie părţi ale unor componente mai mari şi aşa mai departe. • • 7 8 Acronim pentru Information Management System Acronim pentru Integrated Data Store 9 COnference on DAta SYstems Language 10 Data Base Task Group Baze de date aplicate în economie 25 . un limbaj de gestionare a datelor. mai ales benzi magnetice. IMS este încă cel mai important şi este utilizat de majoritatea calculatoarelor de tip mainframe. a dezvoltat un software cunoscut sub denumirea de GUAM (Generalized Update Access Methodh – metoda generală de acces prin reactualizare). compania North American Aviation (NAA . Această structură. Kennedy de a trimite un om pe lună până la sfârşitul deceniului. este cunoscută şi sub denumirea de structură ierarhică. Acest proiect a fost condus de către unul dintre pionierii sistemelor de baze de date. La mijlocul anilor 1960. cunoscut sub denumirea de sistem SGBD în reţea. a tipului fiecărei înregistrări şi a componentelor fiecărui tip de înregistrare. companiile IBM şi NAA au transformat sistemul GUAM în ceea ce este cunoscut sub denumirea de IMS7 (sistem de gestionare a informaţiilor). care să definească caracteristicile şi structura datelor şi care să le manipuleze. iar în 1971 raportul definitiv. Baza de date în reţea a fost realizată. redenumită Grupul Operativ pentru Baze de Date (DBTG10) în 1967.Sisteme de gestiune a bazelor de date anul 1960. pentru a impune un standard pentru bazele de date. subschema .partea din baza de date. Sistemul GUAM pornea de la ideea că. care a avut un efect profund asupra sistemelor informaţionale din acea generaţie. Propunerea grupului DBTG a identificat trei componente: • schema de reţea . Charles Bachrnann. La mijlocul anilor 1960. care a fost iniţiat ca răspuns la obiectivul preşedintelui J. până la asamblarea produsului final. Această realizare a dus la apariţia unui nou tip de sistem de baze de date. realizat de compania General Electric. s-a format Forţa Operativă de Prelucrare a Listelor. care seamănă cu un copac cu susul în jos.F. la care au participat reprezentanţi ai guvernului SUA şi ai lumii afacerilor şi comerţului. În 1969 a apărut un raport preliminar. parţial. la Conferinţa despre Limbajele Sistemelor de Date (CODASYL9) din 1965. Cu toate că este unul dintre primele sisteme SGBD. aşa cum este văzută de către utilizator sau de către programul aplicaţie. pentru a răspunde necesităţii de reprezentare a unor relaţii dintre date mai complexe decât se puteau modela cu ajutorul structurilor ierarhice şi. aşa cum este văzută de către administratorii bazei de date şi include o definire a denumirii bazei de date. Motivul pentru care cei de la IBM au restrâns sistemul IMS la administrarea ierarhiilor înregistrărilor a fost de a permite utilizarea unor dispozitive de stocare seriale.organizarea logică a întregii baze de date. primul contractant al proiectului. Această restricţie a fost abandonată ulterior. Pentru a contribui la stabilirea unor astfel de standarde. nu exista nici un sistem capabil să trateze şi să administreze cantităţile vaste de informaţii pe care le necesita proiectul. o altă realizare semnificativă a fost apariţia sistemului IDS8 (depozitul de date integrate).

apărut exact la momentul potrivit. E. În 1970. producerea de diverse sisteme SGBD relaţionale la scară comercială. Alte exemple de sisteme SGBD relaţionale multiutilizator sunt: CS-OpenIngres de la compania Computer Associates şi Informix de la Informix Software Inc. un limbaj de manipulare a datelor (LMD). Sistemele SGBD relaţionale sunt denumite sisteme SGBD din a doua generaţie. Paradox şi Visual dBase ale companiei Borland şi R:Base al companiei Microrim.. În prezent. grupul DBTG a specificat trei limbaje distincte: • • un limbaj de definire a datelor (LDD) pentru schemă. De-a lungul 11 Acronim pentru American National Standards Institute 26 Baze de date aplicate în economie . Acestea sunt cunoscute acum sub denumirea de sisteme CODASYL sau DBTG. care de atunci a devenit limbajul standard pentru sistemele SGBD relaţionale. pentru manipularea lor. De atunci. realizat la sfârşitul anilor 1970 [Astrahan et al. cât şi pentru microcalculatoare. Abordările de tip CODASYL şi ierarhice au reprezentat prima generaţie de SGBD-uri. Codd de la Laboratorul de Cercetare IBM a publicat un articol de foarte mare influenţă despre modelul de date relaţional. sistemele DB2 şi SQL/DS de la IBM şi Oracle de la compania cu acelaşi nume . Cu toate acestea. printre care cele mai importante sunt: • • • trebuie scrise programe complexe pentru a răspunde chiar şi la interogări simple. formal. există câteva sute de sisteme SGBD relaţionale. fapt care a avut două consecinţe majore: • • dezvoltarea unui limbaj de interogare structurat.Sisteme de gestiune a bazelor de date Pentru standardizare. în decursul anilor 1980. Totuşi. raportul nu a fost adoptat de către Institutul Naţional American pentru Standarde (ANSI11). analizează dezavantajele abordărilor prezentate mai sus. prin realizarea unei implementări a structurilor de date şi a operaţiilor acestuia. modelul relaţional a cunoscut şi eşecuri . au fost implementate multe sisteme SGBD relaţionale experimentale. atât pentru medii mainframe. Câteva exemple de sisteme SGBD relaţionale pentru microcalculatoare sunt: Access şi FoxPro ale companiei Microsoft. care permite administratorului bazei de date să definească schema. există o independenţă minimă de date. un limbaj de descriere a datelor pentru subschemă. denumit SQL. Acest proiect a fost îndeplinit pentru a demonstra caracterul practic al modelului relaţional. de exemplu. cu toate că multe dintre ele extind definiţia modelului relaţional. aceste două modele prezintă câteva dezavantaje fundamentale. bazate pe accesul navigaţional orientat spre înregistrări. De remarcat este proiectul System R. 1976]. care permite programelor aplicaţie să definească componentele bazei de date de care au nevoie. datorită capacităţilor sale de modelare limitate. nu există nici o bază teoretică larg acceptată. de la Laboratorul de Cercetare IBM din San Jose.în particular. primele produse comerciale apărând la sfârşitul anilor 1970 şi începutul anilor 1980. • Cu toate că. ulterior s-a realizat un număr de sisteme conform propunerii DBTG.F. Acest articol.

denumită limbaj de interogare. de obicei prin intermediul unui limbaj de definire a datelor (LDD). Î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. compoziţia acestora nu este clară. 12 13 Acronim pentru Object-Oriented DataBase Management System Acronim pentru Object-Relational DataBase Management System Baze de date aplicate în economie 27 . Printre principalele facilităţi care sunt oferite de un SGBD menţionăm: 1. În 1979. 2. iar această evoluţie reprezintă a treia generaţie de sisteme SGBD. Totuşi. în general. s-au efectuat multe cercetări care au încercat să rezolve această problemă. dar şi a extragerii lor prin intermediul limbajului de manipulare a datelor (LMD). Faptul că există un depozit central al tuturor datelor şi descrierilor acestora permite limbajului de manevrare să ofere o facilitate de interogare generală a acestor date. permite utilizatorului să definească baza de date. însuşi Codd a încercat să rezolve câteva dintre esecurile din lucrarea sa initială. în care declararea datelor este realizată în acelaşi loc cu prelucrarea lor. printr-o versiune extinsă a modelului relaţional. trebuie remarcat şi evidenţiat interesul tot mai mare faţă de utilizarea în practică a SGBD-urilor orientate obiect. unde utilizatorul este constrâns să lucreze cu un set fix de interogări pentru a evita proliferarea de programe. bazele de date dispun de limbaje separate pentru declarare şi prelucrare. Totodată. în timp ce într-o bază de date.Sisteme de gestiune a bazelor de date timpului. care permite fiecărui utilizator să specifice tipurile şi structurile de date. Această separare se justifică prin faptul că într-un program obişnuit datele există efectiv numai pe parcursul rulării lui. ştergere). un SGBD constă în elemente software care interacţionează cu programele aplicaţie ale utilizatorului şi cu baza de date. modificare. Ca răspuns la complexitatea crescândă a aplicaţiilor bazelor de date. În 1976. 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. În prezent. care creează probleme majore privind gestionarea acestora. Existenţa unui limbaj de interogare elimină dificultăţile sistemelor bazate pe fişiere. urmată mai recent de RM/V2 (1990). oferă posibilitatea actualizării datelor în baza de date (adăugare. datorită facilităţilor pe care le oferă. Facilităţi oferite de un SGBD Spre deosebire de un limbaj de programare obişnuit. au apărut două „noi” sisteme: sistemele SGBD orientate spre obiecte (OODBMS12) şi sistemele SGBD de obiecte relaţionale (ORDBMS13). în timp ce constrângerile asupra datelor sunt memorate în baza de date. care reprezintă acum o tehnică de proiectare a bazelor de date larg acceptată. Practic. ele sunt definite o singură dată şi nu sunt necesare redefiniri ulterioare pentru fiecare prelucrare realizată. denumită RM/T (1979). Chen a prezentat modelul Entitate-Relaţie. spre deosebire de modelele anterioare.

În consecinţă. care conţine descrieri ale datelor din baza de date. în timp ce limbajele neprocedurale operează asupra unor seturi de înregistrări. care previne accesarea bazei de date de către utilizatori neautorizaţi. Principala diferenţă între ele constă în faptul că. Modurile de vizualizare pot fi realizate astfel încât să nu includă datele ce nu trebuie cunoscute de anumiţi utilizatori. care permite fiecărui utilizator săşi definească propriul mod de vizualizare a bazei de date. s-ar putea modifica relaţiile. Totuşi. cunoscută sub denumirea de mecanism de vizualizare. sistemul SGBD prezintă o altă facilitate.pronunţat „Es-Q-L” sau. inclusiv detaliile despre salariu. ca urmare a unei defecţiuni la nivel hardware sau software. • un sistem de control al refacerii. limbajele procedurale tratează bazele de date înregistrare cu înregistrare. Pe lângă acesta. • un sistem de control al concurenţei. 5. poate furniza: • un sistem de securitate. 4. diviza. deoarece pe utilizatori nu-i interesează cât de complexă sau de uşoară este pentru sistem o anumită sarcină. oferă accesul controlat la baza de date. care permite accesul partajat la baza de date.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. în care acestea reprezintă un subset al bazei de date. Datorită funcţionalităţilor pe care le oferă. • un catalog accesibil utilizatorilor. De exemplu. care restaurează baza de date într-o stare precedentă concordantă. • un sistem de integritate. Cel mai obişnuit tip de limbaj neprocedural este limbajul structurat de interogare (SQL . care menţine concordanţa datelor stocate. oferă un anumit nivel de securitate. „Sii-Quel”). Limbajul LDD permite definirea de moduri de vizualizare. 3. de obicei. Ca o recunoaştere a acestei probleme. SGBD-urile constituie instrumente extrem de utile. neschimbată a structurii bazei de date. pot prezenta o imagine coerentă. s-ar putea adăuga sau elimina câmpuri. De exemplu. s-ar putea crea un al doilea mod de vizualizare. cât şi cel de facto pentru sistemele SGBD relaţionale. chiar dacă aceasta este modificată (de exemplu. uneori. deoarece acum se pot vedea mai multe date decât este cu adevărat necesar sau decât se doreşte. ce va fi utilizat de către ceilalţi angajaţi. limbajele procedurale specifică cum se va obţine rezultatul unei instrucţiuni LMD. care să excludă detaliile despre salariu. restructura sau 28 Baze de date aplicate în economie . iar cele neprocedurale descriu numai ce date vor fi obţinute. s-ar putea argumenta că sistemul SGBD a făcut ca lucrurile să devină mai complexe. 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. care reprezintă acum atât limbajul standard.

în zilele noastre. însă ar prezenta doar un control limitat al securităţii. aşa încât aceasta nu va putea deveni niciodată statică. De exemplu. în tratarea prin baze de date se încearcă eliminarea redundanţei prin integrarea fişierelor. pentru toţi utilizatorii. Prin contrast. Analiza prezentată mai sus este una generală. formate din milioane de linii de cod. dacă unele aplicaţii necesită stocarea de imagini grafice. iar sistemul este „conştient” de Baze de date aplicate în economie 29 . iar noua valoare este disponibilă imediat. Acesta este un rezultat al necesităţii de realizare a unor programe care să trateze cerinţe de o natură mai generală. s-ar putea ca un SGBD pentru un calculator personal să nu accepte accesul partajat concurent. Dacă un articol de date este stocat o singură dată în baza de date. modul de vizualizare contribuie la asigurarea independenţei program-date. toate SGBD-urile trebuie să evolueze şi să se dezvolte permanent. utilizarea unui SGBD necesită sisteme care să prezinte un grad de fiabilitate şi de disponibilitate de aproape 100%. Totuşi.Sisteme de gestiune a bazelor de date redenumi anumite fişiere). din păcate. astfel încât să nu se stocheze mai multe copii ale aceloraşi date. chiar în cazul unor defecţiuni. integrităţii şi refacerii. Totodată. fie software. produsele SGBD moderne. iar acestea nu sunt cerute de către modul de vizualizare.Controlul redundanţei datelor Aşa cum am mai menţionat. el nu este afectat de către modificarea realizată. Prin urmare. Alteori. Avantajele şi dezavantajele SGBD-urilor Aşa cum vom arăta în continuare. multiutilizator. Totuşi. SGBD-urile trebuie să se modifice. cu documentaţia constând în multe volume. pentru satisfacerea acestei pieţe. dar necesită şi o perfecţionare continuă pentru a preîntâmpina noile cerinţe ale utilizatorilor. pentru îmbunătăţirea performanţelor. prezintă toate funcţiile de mai sus şi încă multe altele. video. Uneori. există şi unele dezavantaje. utilizarea în practică a sistemelor de gestiune a bazelor de date beneficiază de promiţătoare avantaje potenţiale. este de dorit să se dubleze unele articole de date. este necesară dublarea unor articole de date cheie.Coerenţa datelor Prin eliminarea sau controlul redundanţei se reduce riscul apariţiei incoerenţei datelor. în tratarea prin baze de date nu se elimină în întregime redundanţa. 2. Mai mult. pentru modelarea relaţiilor. Dacă un articol de date este stocat de mai multe ori. Cel mai probabil că o nouă funcţionalitate va fi mereu necesară. în sistemele tradiţionale bazate pe fişiere se făcea risipă de spaţiu prin stocarea aceloraşi informaţii în mai multe fişiere. însă. Nivelul real de funcţionalitate a unui SGBD diferă de la produs la produs. Dacă sunt adăugate sau eliminate câmpuri dintr-un fişier. orice reactualizare a valorii sale trebuie realizată tot o singură dată. sunete. etc. De exemplu. fie la nivel hardware. Sistemele moderne sunt programe extrem de complexe. ci se controlează volumul inerent al acesteia în baza de date. Avantajele SGBD-urilor 1.

Mai multe informaţii de la aceeaşi cantitate de date Odată cu integrarea datelor operaţionale. ştergere). care să permită identificarea persoanelor autorizate să utilizeze baza de date (fiecare persoana poate accesa. reactualizare. o constrângere privind integritatea ar putea stabili că salariul unui angajat nu poate fi mai mare de o mie de euro sau că nota pe care o obţine un student la o disciplină nu poate fi mai mică de patru. pe care baza de date trebuie să le respecte. în funcţie de poziţia pe care o are în organizaţie. dar nu 30 Baze de date aplicate în economie . un manager de fIlială ar putea accesa doar datele legate de filiala respectivă. Mai departe. în timp ce un utilizator de la compartimentul Vânzări ar putea avea acces numai la datele referitoare la proprietăţi. mai mulţi utilizatori partajează o cantitate mai mare de date. Accesul la date permis unui utilizator autorizat poate fi limitat de tipul operaţiei efectuate (extragere. Totuşi. 5. În acest mod. baza de date aparţine întregii organizaţii sau instituţii şi poate fi partajată de către toţi utilizatorii autorizaţi. integritatea este exprimată în termeni de constrângeri. Din nou. Pe de altă parte.Partajarea datelor În general. integrarea face ca datele să fie mult mai vulnerabile decât în cazul sistemelor bazate pe fişiere. multe dintre sistemele SGBD actuale nu garantează automat acest tip de coerenţă.Sisteme de gestiune a bazelor de date aceasta. administratorul bazei de date are acces la toate datele din baza de date. 4. De obicei. Constrângerile se pot aplica articolelor de date dintr-o singură înregistrare sau relaţiilor dintre diferite înregistrări. se pot construi noi aplicaţii bazate pe datele existente în baza de date. integrarea permite administratorului bazei de date să definească (iar bazei de date să întărească) constrângerile privind integritatea. fişierele sunt deţinute de către persoanele sau departamentele care le utilizează. Aceasta se poate realiza prin atribuirea unor nume de utilizatori şi parole. 3. ar putea fi posibil ca organizaţia respectivă să extragă informaţii suplimentare din aceleaşi date. Din păcate. 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. un anumit set de date). De exemplu.Securitate sporită Securitatea se referă la protecţia bazei de date faţă de utilizatorii neautorizaţi. 6. el poate garanta că toate copiile articolului respectiv sunt menţinute coerente. care reprezintă reguli de coerenţă. integrarea va permite administratorului bazei de date să definească (iar bazei de date să întărească) securitatea acesteia. Spre exemplu. inserare.Integritatea crescută a datelor Integritatea bazei de date se referă la validitatea şi coerenţa datelor stocate. Fără măsuri de securitate clare şi adecvate. î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.

cu o putere de calcul sporită sau într-o reţea de calculatoare mai mici. Acestea ar putea include standarde departamentale. posibil în detrimentul celor mai puţin importante. acesta poate lua decizii privind proiectarea şi utilizarea operaţională a acesteia. 10. organizaţionale. Din moment ce baza de date se află sub controlul administratorului bazei de date. care permit utilizatorilor să formuleze întrebări adhoc şi să obţină aproape imediat afişarea informaţiilor cerute la terminal. De exemplu. prin simpla scriere a următoarei comenzi SQL la un terminal: Baze de date aplicate în economie 31 . un manager de filială ar putea lista toate apartamentele cu o chirie lunară de peste 400 euro. 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. standardele de documentare. fără a fi nevoie de un programator care să scrie un program de extragere a acestora din baza de date. care ar putea intra în conflict cu ale altora. Aceste decizii vor realiza performanţe optime ale aplicaţiilor majore.Echilibrul între cerinţele aflate în conflict Fiecare utilizator sau departament are propriile sale cerinţe. având ca rezultat o economie de scală. 9.Îmbunătăţirea accesibilităţii datelor şi capacităţii de răspuns Ca rezultat al integrării. datele care depăşesc graniţele unui departament sunt direct accesibile utilizatorilor finali.Aplicarea standardelor Din nou. naţionale sau internaţionale (pentru diferite aspecte. În acest caz. care să ducă la folosirea optimă a resurselor pentru organizaţia luată în ansamblu. cum ar fi formatul datelor) care să faciliteze schimbul de date între sisteme.Sisteme de gestiune a bazelor de date şi la datele „sensibile”. pentru furnizarea unor servicii mai bune utilizatorului final sau clienţilor organizaţiei. integrarea permite administratorului bazei de date să definească şi să aplice toate standardele necesare. de exemplu. 8. procedurile de reactualizare şi regulile de acces. cum ar fi detaliile despre salariile angajaţilor sau contractele încheiate. Aceasta ar putea consta într-un calculator cu o configuraţie mai bună.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. Aceasta creează un sistem cu o mult mai mare funcţionalitate potenţială decât ar putea fi folosită. 7. ceea ce ar putea duce la un total mai scăzut al cheltuielilor. convenţiile privind denumirile. Multe SGBD-uri oferă limbaje de interogare sau generatoare de rapoarte. Bugetul combinat poate fi utilizat pentru achiziţionarea unei configuraţii a sistemului mai adecvate cerinţelor şi necesităţilor organizaţiei respective.

La nivel fundamental. O modificare în structura datelor (de exemplu. Multe sisteme SGBD furnizează şi un mediu din a patra generaţie.Întreţinere îmbunătăţită datorită independenţei datelor Descrierile datelor şi logicii de accesare a lor în cadrul sistemelor bazate pe fişiere erau încorporate în fiecare program aplicaţie. cu influenţe negative asupra ceea ce înseamnă gestionarea eficientă a conţinutului unui baze de date. descrierile datelor sunt separate de aplicaţii. Astfel. fapt care are drept consecinţă garanţia evitării apariţiei unor astfel de probleme. în cazul unei aplicaţii bazate pe fişiere. atribuirea a 50 de caractere în loc de 40 pentru adresă sau schimbarea modului de stocare a datelor pe suport fizic) poate necesita schimbări importante în programele afectate de modificările produse. tipice în programele aplicaţie. 14. care constă în instrumente de simplificare a dezvoltării de aplicaţii în domeniul bazelor de date.Productivitate crescută Aşa cum am menţionat anterior. se întâmpla ca cele două accesări să se suprapună. una dintre sarcinile importante care-i revin acestuia se referă la administrarea accesului concurent la baza de date. 11. Prin contrast. în cazul unor defecţiuni ale sistemului de calculatoare sau ale programului aplicaţie. ceea ce face ca acestea să fie imune la modificările din descrierea datelor. un SGBD oferă multe dintre funcţiile standard. 32 Baze de date aplicate în economie . Realizarea independenţei datelor simplifică substanţial întreţinerea aplicaţiilor din baza de date. ceea ce făcea ca acestea să depindă de date. fără însă a se preocupa de detaliile de nivel jos privind implementarea.Îmbunătăţirea serviciilor de salvare de siguranţă şi refacere Multe sisteme bazate pe fişiere lasă în sarcina utilizatorului responsabilitatea de a lua măsuri de protecţie a datelor.Concurenţă îmbunătăţită Majoritatea sistemelor bazate pe fişiere se confruntau adesea cu o problemă importantă. pe care ar trebui să le scrie în mod normal programatorul. 13. întrun SGBD. În ceea ce priveşte un SGBD. dacă doi sau mai mulţi utilizatori aveau permisiunea de a accesa simultan acelaşi fişier. Această caracteristică este cunoscută sub denumirea de independenţă faţă de date (sau independenţa datelor).Sisteme de gestiune a bazelor de date SELECT* FROM proprietate_de_inchiriat WHERE type = 'Apartament' AND chirie> 400. 12. Furnizarea acestor funcţii permite programatorului să se concentreze mai mult asupra funcţionalităţii specifice cerute de către utilizatori. Aceasta are ca rezultat o productivitate crescută a programatorului şi un timp redus de programare (împreună cu reducerea corespunzătoare a costurilor). ceea ce avea evident ca rezultat pierderea informaţiilor sau chiar alterarea integrităţii datelor respective. SGBD-ul oferă toate rutinele de nivel jos pentru manevrarea fişierelor.

SGBD-urile moderne oferă facilităţi de minimizare a pierderilor (aferente prelucrărilor realizate) ca urmare a unei defecţiuni. Dezavantaje SGBD-urilor Pe lângă avantajele menţionate anterior. va avea drept consecinţă preluarea ultimei copii de siguranţă. pot conduce la consecinţe negative importante pentru fiecare organizaţie sau instituţie specializată care dispune de un astfel de sistem. 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. Mai există şi cheltuielile periodice anuale de întreţinere care reprezintă. Apariţia unei defecţiuni la un moment dat. Astfel. poate chiar unul destinat rulării SGBD-ului. care deserveşte sute de utilizatori.Complexitatea Proiectarea funcţionalităţii unui SGBD optim face ca acesta să devină un element software extrem de complex. în funcţie de mediu şi de funcţionalitatea pe care o oferă. Mai mult. precum şi reluarea muncii realizate în intervalul de timp scurs de la ultima salvare realizată. în fiecare zi). pentru un calculator personal. Baze de date aplicate în economie 33 . un procent din preţul acestuia. 1. administratorii de date şi de baze de date. pentru a putea profita de ea la maximum. O bază de date se spune că este distribuită dacă diferitele componente ale acesteia sunt memorate în staţiile şi/sau serverul reţelei. poate fi extrem de scump. poate costa numai 100 euro.Sisteme de gestiune a bazelor de date Aceasta ar putea presupune realizarea unei copii de siguranţă a datelor la intervale scurte de timp (spre exemplu. chiar în detaliu) această funcţionalitate. 3. multi-utilizator. de regulă. 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. un SGBD cu un singur utilizator. însă nu recomandăm nici achiziţionarea unui SGBD ieftin atunci când volumul de date. De exemplu. precum şi utilizatorii finali trebuie să cunoască (uneori. 2. dar şi cel al prelucrărilor de realizat este mare (mai ales în cazul gestionării datelor la nivelul bazelor de date distribuite14). în mod cert. ar putea fi necesară cumpărarea unui calculator mai performant. care.Costul Costul unui SGBD variază semnificativ. Cu toate acestea. În acest caz. iar cele mai importante sunt menţionate în continuare. fiecare SGBD comportă şi un număr de dezavantaje. Eşecul în înţelegerea sistemului poate cauza fundamentarea şi luarea unor decizii greşite aferente etapei de proiectare. Spre deosebire de acestea. Proiectanţii şi dezvoltatorii bazelor de date. pentru obţinerea performanţelor dorite.Costurile adiţionale specifice componentelor hardware Cerinţele de stocare pe suport fizic pentru un SGBD şi baza de date ar putea necesita achiziţionarea unui spaţiu de stocare suplimentar. un SGBD mainframe.

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. 7.Impactul crescut al unei defecţiuni Centralizarea resurselor măreşte vulnerabilitatea sistemului. Din moment ce toţi utilizatorii şi toate aplicaţiile se bazează pe disponibilitate din partea SGBD-ului, eşecul oricărei componente a acestuia poate duce la sistarea tuturor operaţiilor.

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 utilizatorului. • asistenţă on-line pentru autodocumentarea

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

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.

16

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. 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.se realizează prin operaţii automatizate sau programate ce asigură şi criteriile de validare necesare. mediu magnetic. În ceea ce-l priveşte. Ele pot avea cele mai diferite forme (punctuale. Actualizarea se realizează numai autorizat. şi anume: neinformaticieni. operaţii pregătitoare activităţii de regăsire a datelor. modificare şi ştergere de înregistrări. Menţionam în paragraful anterior că limbajul de manipulare a datelor este cel care asigură realizarea acestei funcţii.) a bazei de date într-o formă simplă şi interactivă. Această funcţie presupune derularea următoarelor activităţi: • • încărcarea datelor în baza de date . Documentele de ieşire pot fi intermediare sau finale şi se pot obţine pe diferiţi suporţi tehnici de informaţie (ecran. dar şi alte facilităţi de interogare (generatoare. efectuate asupra entităţilor bazei de date. hârtie. 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. un SGBD manipulează datele într-o manieră eficientă. etc. să asigure legătura dintre utilizator şi baza de date). SGBD-ul trebuie să ofere facilităţi pentru mai multe categorii de utilizatori ai bazei de date. SGBD-ul le oferă acestora limbaje neprocedurale. etc) şi se pot obţine după cele mai diferite criterii de regăsire. editarea unor documente de ieşire (rapoarte). răsfoire. 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ă. video. etc. SGBD-ul sprijinindu-i în manieră interactivă în utilizarea bazei de date. Acestea sunt. Utilizatorii neinformaticieni reprezintă principala categorie a beneficiarilor de informaţii (utilizatori finali şi intensivi) din baza de date. prin asigurarea unei protecţii corespunzătoare a datelor. 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. Multe din operaţiile de prelucrare sunt realizate cu ajutorul operatorilor din modelul de date pe care îl implementează SGBD-ul. specialişti (informaticieni) şi administratorul. rapoarte. Pentru realizarea acestei funcţii. Aceşti utilizatori nu trebuie să cunoască structura bazei de date şi nu trebuie să ştie să programeze. Practic. de obicei. imagini. pentru a se păstra coerenţa bazei de date. liste. imprimare pe hârtie). grafice. sunet. actualizarea bazei de date – se referă la operaţiile de adăugare. mediu optic). prelucrarea datelor – presupune realizarea operaţiilor de selecţie. În acest sens SGBD-ul oferă: Baze de date aplicate în economie 37 • • . utilitare. folosind în acest scop diferite tehnici şi metode de optimizare a accesului şi a alocării spaţiului din memoria calculatorului. regăsirea (interogarea) datelor – presupune realizarea operaţiilor de vizualizare (afişare pe ecran. ordonare.

asistenţi tip Wizard. de a realiza o serie de analize statistice din baza de date (număr şi tip de utilizatori. Administratorul. Astfel. proiectare şi programare. de a reface baza de date în caz de incidente (prin jurnalizare. 18 38 Baze de date aplicate în economie . etc. 1999. el organizează baza de date conform unei anumite metodologii. Cu aceste elemente el poate să descrie schema bazei de date şi să asigure manipularea complexă a datelor. ferestre de lucru. Pentru toate aceste aspecte. în anumite etape (sau în toate etapele) din ciclul de viaţă al unei aplicaţii. de la un SGBD la altul. rutine de optimizare). Administrarea bazei de date Funcţia de administrare este una destul de complexă şi din acest motiv se consideră că este doar de competenţa administratorului bazei de date. p. şabloane pentru diferite forme. administratorul îndeplineşte mai multe roluri: • • • • de a autoriza accesul la date (crează conturi de acces. care ajută la realizarea unui proiect software. Datorită importanţei acestei categorii de utilizatori. Spre deosebire de utilizatorii neinformaticieni. număr de actualizări. etc. autodocumentarea (help-uri. număr de accese. copii de siguranţă).Sisteme de gestiune a bazelor de date • • • • • meniuri cu opţiuni sugestive. SGBD-ul are o funcţie distinctă în acest sens. precum şi o serie de utilitare specializate. parole.). formate din mai multe componente. care are o bogată experienţă de analiză.123].). Instrumentele oferite de CASE sunt utilizabile din faza de definire a cerinţelor până la întreţinerea fizică a produsului informatic [Oprea. oferind atât elemente neprocedurale cât şi procedurale specialistului în informatică. de a utiliza eficient spaţiul de memorie internă şi externă (prin organizare. realizează schema conceptuală a acesteia şi coordonează proiectarea ei. Obiectivul principal al instrumentelor CASE constă în punerea în practică a produselor–program de proiectare şi realizarea software–lui cu ajutorul calculatorului. SGBD-ul oferă acestor utilizatori limbajul de descriere şi limbajul de manipulare a datelor precum şi interfeţe cu limbaje universale. mesaje/ferestre explicative). SGBD-ul oferă o serie de instrumente CASE18. Administratorul bazei de date este un utilizator special şi are un rol hotărâtor în ceea ce priveşte funcţionarea optimă a întregului sistem. cei specialişti în informatică sunt în măsură să creeze structura bazei de date şi să realizeze proceduri complexe de exploatare a acesteia. În etapa de exploatare a bazei de date. organizează şi administrează baza de date în toate etapele de realizare a acesteia. Instrumentele CASE (Computer Aided Software Engineering) sunt aplicaţii informatice. Acestea sunt de complexitate şi putere diferită.

Sisteme de gestiune a bazelor de date Pentru fiecare din activităţile menţionate mai sus. SGBD-ul oferă instrumente şi tehnici de lucru. în acest caz. Acest lucru este determinat de faptul că baza de date este. În cazul lucrului în reţea. datele sunt distribuite pe calculatoarele reţelei. iar utilizatorii sunt de toate tipurile şi în număr mare. Baze de date aplicate în economie 39 . SGBD-ul are dezvoltate foarte mult componentele destinate administratorului. de mare complexitate. cu baze de date distribuite.

d. Prezentaţi principale caracteristici ale subsistemului instrumentelor de proiectare. I-a generaţie. actualizarea datelor şi extragerea lor prin intermediul limbajului de manipulare a datelor. 40 Baze de date aplicate în economie . utilizatori şi sistemul de operare. b. sistemul de operare şi alt SGBD. La ce se referă costul conversiei? 7. Prezentaţi principale caracteristici ale subsistemului de execuţie. doar extragerea datelor prin intermediul limbajului de descriere a datelor. c. două sisteme de operare care rulează pe platforme diferite. doar actualizarea datelor din baza de date. Prezentaţi pe scurt componentele unui SGBD. doar extragerea datelor manipulare a datelor. b. dacă ele se găsesc pe platforme diferite. două sau mai multe SGBD-uri. SGBD-ul reprezintă o interfaţă între: a. Ce este SGBD-ul? 2. Care este diferenţa dintre limbajele procedurle şi cele neprocedurale? 3. SGBD-urile relaţionale sunt denumite SGBD-uri din: a. a III-a generaţie. c. Ce reprezintă coerenţa datelor? 4. 2. Un SGBD permite: a. c. Ce este motorul SGBD? 9. 8. Cum se poate realiza securitatea datelor la nivelul unui SGBD? 6. a II-a generaţie. a IV-a generaţie. Teste grilă 1. 3. 10. Ce reprezintă partajarea datelor? 5. d. b.Sisteme de gestiune a bazelor de date Întrebări recapitulative 1. prin intermediul limbajului de d.

structurii tabelelor din baza de date. c. limbajele procedurale tratează datele unei baze de date înregistrare cu înregistrare. d. limbajele neprocedurale tratează datele unei baze de date înregistrare cu înregistrare. b. Subsistemul instrumentelor de proiectare nu poate include: a. accesului fizic la datele bazei de date.Sisteme de gestiune a bazelor de date 4. Principala deosebire între limbajele procedurale şi cele neprocedurale constă în faptul că: a. se referă la: a. permite execuţia aplicaţiilor sau cererilor de consultare a bazei de date. conversia unui SGBD într-un sistem bazat pe fişiere. d. c. Costul conversiei. 5. permite definirea structurii tabelelor din baza de date. b. conversia aplicaţiilor existente la un moment dat într-o organizaţie. d. în timp ce cele procedurale lucrează cu limbajele de manipulare a datelor. are rolul de a asigura accesul fizic la datele bazei de date. limbaje de programare. în timp ce cele procedurale lucrează cu seturi de înregistrări. Subsistemul instrumentelor de proiectare nu permite definirea: a. conversia componentelor hardware în unele mai performante. c. d. conversia unei componente hardware în una software. b. limbaje de manevrare a datelor. 7. Baze de date aplicate în economie 41 . limbajele procedurale se bazează pe limbajele de descriere a datelor. b. în timp ce cele neprocedurale lucrează cu limbajele de manipulare a datelor. limbaje de descriere a datelor. c. d. machetelor de interfaţă cu utilizatorul. b. permite proiectarea şi generarea bazei de date şi a aplicaţiilor care descriu modul de utilizare a bazei de date. 8. limbajele neprocedurale se bazează pe limbajele de descriere a datelor. ca dezavantaj al SGBD-ului. limbaje de interogare a datelor. c. Motorul SGBD este componenta care: a. formatului rapoartelor şi cererilor de interogare a bazei de date. 6. în timp ce cele neprocedurale lucrează cu seturi de înregistrări.

d. poate permite modificarea structurii logice a bazei de date. poate crea conturi de acces la baza de date. c. 10. d. c. În etapa de exploatare a bazei de date. poate autoriza accesul la datele bazei de date. are rolul de a asigura accesul fizic la datele bazei de date. permite definirea structurii tabelelor din baza de date. permite proiectarea şi generarea bazei de date şi a aplicaţiilor care descriu modul de utilizare a bazei de date. b. administratorul: a. b. permite execuţia aplicaţiilor sau cererilor de consultare a bazei de date. Subsistemul de execuţie al SGBD-ului este componenta care: a. nu poate reface baza de date în cazul unor incidente. 42 Baze de date aplicate în economie .Sisteme de gestiune a bazelor de date 9.

ierarhic. Astfel. utilizat în prezent pe scară largă. În cadrul acestui capitol vom analiza detaliat cel mai utilizat model de reprezentare. „A relational Model of Data for Large Shared Data Banks”. 1970. • identificarea relaţional. Regulile lui Codd Pentru a fi considerat relaţional. fiecare sistem de gestiune a bazelor de date trebuie să respecte nişte reguli. întâlnite în literatură sub numele de regulile lui Codd. • şi prezentarea fundamentelor specifice modelului definirea tipurilor de chei întâlnite la nivelul unei relaţii. şi care aparţine cercetătorului Codd [Codd.Abordarea relaţională a bazelor de date Capitolul IV – Abordarea relaţională a bazelor de date **************************************************************************************** Obiectivele capitolului Principalul obiectiv al capitolului IV este acela de a oferi o viziune generală asupra relaţionării datelor dintr-o bază de date. • prezentarea principalilor operatori ai algebrei relaţionale. au existat în timp mai multe modele de reprezentare a informaţiilor la nivel logic şi de operare: • • • reţea.377-387]. p. Astfel. în acest capitol am urmărit: • prezentarea regulilor lui Codd pe care se bazează întreaga abordare relaţională. relaţional. şi anume modelul relaţional. înţelegerea mecanismului cheii străine. • definirea tipurilor de legături dintre relaţii. **************************************************************************************** Aşa cum reiese din literaura de specialitate. regulile enunţate de cercetător sunt prezentate în continuare: Baze de date aplicate în economie 43 . Modelul de stocare a datelor sub forma unei baze de date relaţionale s-a dezvoltat pornind de la un articol apărut în anul 1970.

R4 – Regula specifică metadatelor Informaţiile referitoare la descrierea bazei de date – metadatele – trebuie specificate la nivel logic în manieră identică cu descrierea datelor propriuzise. utilizatorul va aplica asupra descrierii bazei de date aceleaşi operaţii ca şi la datele obişnuite. R6 – Actualizarea bazei de date Fiecare SGBD trebuie să permită manipularea unei tabele (de bază sau virtuală). Rezultă că toate datele ar trebui să fie memorate şi prelucrate în manieră identică. precum şi a numelui de coloană. manevrarea datelor. a tabelelor virtuale.Abordarea relaţională a bazelor de date R0 – Gestionarea datelor la nivel de relaţie. 44 Baze de date aplicate în economie . trebuie să se lucreze la un moment dat pe o relaţie întreagă. Informaţiile referitoare la numele tabelelor. precum şi prezentarea limitelor tranzacţiilor. care să opereze la un moment dat pe o relaţie. atât în cazul actualizării datelor în baza de date. Valorile NULL (care sunt diferite de şirurile de caractere spaţiu sau de cele vide) sunt importante pentru implementarea restricţiilor de integritate (integritatea entităţii şi integritatea referenţială) aferente modelului relaţional. al restricţiilor de integritate trebuie să fie memorate tot în tabelele de date. al coloanelor. cât şi pentru operaţii de regăsire a acestora. a valorii cheii primare. Practic. definirea tuturor restricţiilor de integritate. şi anume cea relaţională. definiţiilor tabelelor virtuale. Informaţiile bazei de date relaţionale vor fi reprezentate în mod explicit la nivel logic într-un singur mod şi anume ca valori în tabelele de date. Rezultă că SGBD-ul trebuie să-şi îndeplineacă toate funcţiile utilizând ca unitate de informaţie mulţimea. cu semnificaţia unor date lipsă sau care nu pot fi aplicate. cu alte cuvinte. R3 – Regula aferentă valorii NULL Un SGBD trebuie să permită declararea şi utilizarea valorii NULL. R2 – Garantarea accesului la date Accesarea tuturor informaţiilor bazei de date se va realiza prin specificarea numelui tabelei respective. să utilizeze diferite limbaje. garantarea şi autorizarea accesului la date. R5 – Facilităţi ale limbajelor utilizate Un sistem relaţional trebuie să facă posibilă utilizarea mai multor limbaje. Toate informaţiile din baza de date sunt gestionate numai prin mecanisme relaţionale. în diferite moduri. În cazul unei operaţii care va modifica conţinutul unei baze de date. aşa cum este şi SQL. R1 – Reprezentarea logică a datelor. Sistemul nu trebuie să facă diferenţe între descrierea datelor şi a metadatelor utilizând o singură structură. Trebuie să existe cel puţin un limbaj de nivel înalt ale cărui instrucţiuni să poată exprima oricare din următoarele operaţii: definirea tabelelor. domeniilor.

La o simplă analiză a definiţiei. nu toate atributele sunt actualizabile. ceea ce înseamnă că nu toate tabelele virtuale pot fi actualizate. colecţii organizate de date. Atunci când luăm în discuţie abordarea relaţională a bazelor de date. Practic. În acest context. atunci acest limbaj nu trebuie folosit pentru a se evita restricţiile de integritate sau restricţiile introduse prin utilizarea limbajelor relaţionale de nivel înalt. R8 – Independenţa logică a datelor Programele de aplicaţie nu trebuie să fie afectate de modificările efectuate asupra relaţiilor care formează baza de date. observăm că ea impune două direcţii de studiu: 1. aflate în zone geografice diferite. După o îndelungă analiză şi sinteză a definiţiilor formulate de cercetătorii consacraţi ai domeniului. R11 – Actualizarea tabelelor virtuale În cadrul abordării relaţionale. pe parcursul capitolului. în această situaţie. utilizatorul ar trebui să perceapă aceste date ca fiind centralizate şi nu aparţinând unor staţii diferite de lucru. vom argumenta definiţia prezentată anterior şi implicit cele două direcţii de studiu. Fundamente ale modelului relaţional Înainte de a prezenta principalele aspecte care caracterizează modelul relaţional. 2. programele de aplicaţie să fie logic aceleaşi cu cele utilizate în cazul în care datele sunt fizic centralizate.Abordarea relaţională a bazelor de date R7 – Independenţa fizică a datelor Programele de aplicaţie nu trebuie să fie afectate de modificările realizate în modul de reprezentare a datelor sau în metodele de acces. R9 – Regula aferentă restricţiilor de integritate Toate restricţiile de integritate trebuie să poată fi definite prin intermediul limbajului folosit de SGBD pentru definirea datelor şi să fie memorate. putem afirma pe scurt că o bază de date relaţională reprezintă colecţii organizate de date şi corelate din punct de vedere logic. O schimbare a structurii fizice a datelor nu trebuie să blocheze funcţionarea programelor de aplicaţie. dar şi profesori de seama care au analizat această paradigmă. R12 – Prelucrarea datelor la nivel de bază Dacă SGBD-ul posedă un limbaj de bază de nivel scăzut orientat pe prelucrarea tuplurilor şi nu pe cea a relaţiilor. colecţii corelate logic. considerăm că este oportună definirea conceptului de bază de date relaţională. R10 – Distribuirea geografică a datelor În cazul în care datele sunt distribuite. vom analiza în principal trei direcţii: Baze de date aplicate în economie 45 . plecând de la prezentarea aspectelor fundamentale care caracterizează modelul relaţional al bazelor de date.

un tuplu se obţine prin atribuirea de valori atributelor relaţiei. În exemplul 4. spec. pren. facult. 46 Baze de date aplicate în economie . spec – definit pe domeniul specializare. Fiecare element al unei relaţii poartă numele de tuplu. lipsa unor restricţii de integritate ar putea avea ca efect alterarea conţinutului bazei de date şi obţinerea unor rezultate eronate. nr_matr – definit pe domeniul număr_matricol. putem spune că în exemplul 4. Exemplul 4. Aşa cum se observă. nume – definit pe domeniul nume. numite domenii. De asemenea.1: 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 În ceea ce priveşte o relaţie.1 am definit relaţia Student cu schema dată de atributele cnp.1. Altfel spus. spec) Astfel. • prelucrarea datelor – se realizează prin intermediul operaţiilor specifice algebrei relaţionale sau calculului relaţional. După cum sugerează şi numele. Fie relaţia din exemplul 4. nr_matr. Într-o relaţie. Student (cnp.1. numit atribut. nume. fiecare domeniu se identifică printr-un nume. modelul relaţional se bazează pe noţiunea de relaţie care este definită din punct de vedere matematic ca o submulţime a produsului cartezian a unei liste (finite) de mulţimi.2 sunt prezentate trei tupluri pentru relaţia Student defintă în exemplul 4. iar numărul de domenii se numeşte aritate. în exemplul anterior am definit relaţia Student care include atributele: • • • • • • cnp – definit pe domeniul cod numeric personal. În ceea ce priveşte tuplurile unei relaţii (care se mai numesc şi realizări) trebuie spus că nu pot exista două sau mai multe tupluri identice. formulând altfel. pren. facult – defint pe domeniul facultate. ordinea de apariţie a atributelor este absolut nesemnificativă şi acelaşi lucru îl putem spune şi despre tupluri. facult. iar mulţimea numelor atributelor unei relaţii formează schema acesteia. • integritatea datelor – se referă la definirea restricţiilor de integritate care au rolul de a proteja datele bazei de date. toate tuplurile unei relaţii trebuie să difere cel puţin prin valoarea unui atribut: cheia. nr_matr. nume.Abordarea relaţională a bazelor de date • structura datelor – are în vedere definirea domeniilor şi a relaţiilor corespunzătoare acestor domenii. pren – definit pe domeniul prenume.

În exemplul 4. Aşa cum aminteam anterior. vom alege ca şi cheie primară. este bine să reţinem că fiecare relaţie are o singură cheie primară. În cadrul abordării relaţionale există patru tipuri de chei care pot fi identificate: • • candidat. nici atributele facult şi spec nu sunt chei candidat deoarece la o facultate şi la o specializare sunt înscrişi mai mulţi studenţi. În general. restul cheilor candidat devenind chei alternante. Dintre cheile candidat identificate. se alege una ca fiind cheia primară a relaţiei respective. • alternantă (în funcţie de sursa citată. şi anume cnp şi nr_matr. atunci oricare din cheile candidat pot deveni cheie primară. Atunci când analizăm o relaţie.3 am redat alte tupluri pentru relaţia Student şi în care se poate observa că avem valori duplicate pe domeniile analizate. iniţial trebuie să identificăm cheile candidat ale relaţiei Student. vom folosi relaţia din exemplul 4. Cu siguranţă. abordate până acum doar la nivel teoretic. acest atribut nu poate fi considerat cheie deoarece oricând pot exista doi studenţi cu acelaşi nume.1. Acelaşi lucru putem afirma şi despre atributul pren. Pentru a exemplifica tipurile de chei. primele trei se analizează la nivelul unei singure relaţii.3 Student ( cnp 1701212120139 2731210176143 1801009129145 nr_matr 1234 1987 4432 nume Popa Darie Popa pren Dan Dan Ion facult FSE FD FSE spec ) IE AP IE În continuare ne vom opri asupra celor două atribute rămase. indiferent de numărul de tupluri ale relaţiei Student (iniţial se analizează atributele în mod individual şi apoi se fac combinaţii între ele. Cu alte cuvinte.Abordarea relaţională a bazelor de date Cheia reprezintă un atribut (sau un grup de atribute) care are rolul de a identifica în mod unic fiecare tuplu al unei relaţii. acea cheie candidat care este formată din numărul minim de atribute. întâlnim în litaratură şi termenul de cheie alternativă). Dintre cele patru tipuri de chei. • străină. că la întrebarea „Sunt atributele cnp şi Baze de date aplicate în economie 47 . astfel încât nu pot exista două tupluri diferite care să aibă valori identice pe domeniul unei chei. în timp ce cheia străină apare atunci când asociem două sau mai multe relaţii (este cea care asigură practic legătura logică între diferite relaţii). Exemplul 4. Deşi pot exista mai multe chei candidat. primară. Totodată. În cazul în care am identificat mai multe chei candidat şi fiecare dintre ele au acelaşi număr de atribute. Vom începe cu atributul nume: în mod cert. alegerea făcându-se în funcţie de opţiunea şi dorinţa proiectantului. care în anumite situaţii poate fi formată chiar din toate atributele ei. pentru a identifica în mod clar toate cheile). trebuie să identificăm acele atribute sau grupuri de atribute pentru care nu pot exista valori duplicate. primul pas pe care îl facem este acela al identificării cheilor candidat.

nici atributul cnp nu poate fi cheie candidat. alt nume sau alt prenume. atunci toate celelalte valori ar fi identice cu cele de la primul tuplu. un student cu o anumită matricolă (în cazul nostru 1234) nu poate avea alt cod numeric personal. Exemplul 4. considerăm că avem un tuplu care reprezintă un student cu numărul matricol 1234. ceea ce înseamnă că trebuia să ne gândim dacă pentru un anume CNP putem identifica cel puţin o valoare a unui alt atribut care să se modifice faţă de tuplul de la care am plecat. atunci cele două tupluri diferă.6). Dacă vom putea înlocui semnul întrebării aferent unui atribut cu o valoare diferită de cea aflată pe celălalt tuplu (evident.4 Student ( cnp 1701212120139 2731210176143 2731210176143 nr_matr 1234 1987 5634 nume Popa Darie Darie pren Dan Dan Dan facult FSE FD FSE spec ) IE AP FB Aşa cum observăm. Exemplul 4. o astfel de situaţie nu este permisă (acest aspect este reprezentat în exemplul 4.4. situaţie care ar face ca cele două tupluri să fie identice şi aşa cum aminteam în prima parte. Aşa să fie oare? Nu este aşa. De ce am ajuns să facem o astfel de greşeală şi să considerăm că cnp poate fi cheie? Probabil că ne-am gândit la faptul că nu pot existat două persoane cu acelaşi CNP. specializarea IE. putem spune că el este cheie candidat. Deci. Deci. Cum arătăm asta? Să plecăm de la situaţie din exemplul 4. În ceea ce priveşte atributul nr_matr. un student nu poate fi la două specializări diferite (în aceeaşi facultate sau în facultăţi diferite) având aceeaşi matricolă. Iar argumentul este dat de exemplul 4. pe domeniul aferent atributului cnp. pentru acelaşi atribut).6 Student ( cnp 1701212120139 1701212120139 nr_matr 1234 1234 nume Popa Popa pren Dan Dan facult FSE FSE spec ) IE IE 48 Baze de date aplicate în economie . ceea ce înseamnă că putem avea valori duplicate pe domeniul respectiv de valori. avem două valori identice: este situaţia în care o persoană este studentă la două facultăţi diferite (şi nu este singura situaţie posibilă).Abordarea relaţională a bazelor de date nr_matr chei candidat?” am primi un singur răspuns: „DA”. Este adevărat: nu există două persoane cu acelaşi CNP.5 Student ( Cnp 1701212120139 ? nr_matr 1234 1234 nume Popa ? pren Dan ? facult FSE ? spec ) IE ? Astfel. atributul nr_matr este cheie candidat a relaţiei Student. În mod cert. Asta înseamnă că dacă pe tuplul doi am avea 1234 ca matricolă. Exemplul 4. De asemenea.5. care este la facultatea FSE. însă schema relaţiei Student nu conţine doar atribute despre o persoană.

ar fi mai simplu dacă datele referitoare la facultăţi. nr_matr. poate fi la mai multe specializări (spre exemplu. spec) Aşa cum observăm.7. Astfel. în situaţia în care le analizăm pe toate trei am ajunge la concluzia că o persoană nu poate face aceeaşi specializare de două ori într-o facultate19. Student (cnp. Sintetizând. De ce toate trei? Dacă ne-am gândi la atributele cnp+facult am vedea că un student într-o facultate.8 vom descompune relaţia în alte trei relaţii: 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). Fotache: Proiectarea bazelor de date: Normalizare şi postnormalizare. În mod normal. Pentru cei interesaţi să ştie mai multe despre procesul de normalizare şi postnormalizare. procesul nu este finalizat. în final. Dintre cele două chei candidat. Implementări SQL şi Oracle. cheie alternantă: cnp+facult+spec. Astfel. ceea ce înseamnă că. În acest caz. pren. în final vom avea: • • • chei candidat: nr_matr. în relaţii de sine stătătoare. atributul/atributele care formează cheia primară a relaţiei vor apare subliniate. Dacă vom avea în vedere algoritmul descris anterior. respectiv specializări. în exemplul 4. relaţia noastră ar arăta astfel: Exemplul 4. le-am gestiona separat. cnp+facult+spec. cnp+facult+spec. pentru relaţia Student am identificat două chei candidat: • • nr_matr. În continuare va trebui să căutăm şi diferite combinaţii de atribute care ar putea fi cheie. Însă. la forme diferite de învăţământ) în timp ce pentru combinaţia de atribute cnp+spec ar putea apare valori duplicate în cazul în care mai multe facultăţi ar avea o aceeaşi specializare.Abordarea relaţională a bazelor de date Odată identificată o cheie candidat. vom mai identifica o cheie candidat: cnp+facult+spec. recomandăm cartea profesorului M. Astfel. Singurul lucru clar este acela că atributul nr_matr nu poate face parte din nici o cheie compusă (cheia trebuie să fie formată din numărul minim de atribute care identifică în mod unic tuplurile unei relaţii). 19 Baze de date aplicate în economie 49 . facult. nume. relaţia de mai sus este una nenormalizată şi este evident că ea introduce redundanţă. redundanţa ar fi în mare măsură înlăturată. iar procesul de identificare a cheilor ar fi mult simplificat. cheie primară: nr_matr. vom alege cheia primară ca fiind nr_matr deoarece are mai puţine atribute decât cealaltă cheie.

fără însă să putem spune la ce facultate sau specializare este un anume student. în sensul că aceleaşi date nu le mai gestionăm de mai multe ori în cadrul unei relaţii. date despre facultăţi (relaţia Facultate). abordarea relaţională propune patru tipuri de legături între relaţii. În acest context. 50 Baze de date aplicate în economie . formă_înv) În relaţia Facultate.7 erau disponibile informaţii complete despre student (nume.8.Abordarea relaţională a bazelor de date Exemplul 4.7. specializarea la care este înmatriculat). Facultate include ca realizări (tupluri) doar facultăţile gestionate. atributul facult este cheie primară deoarece considerăm că nu pot exista două facultăţi cu acelaşi nume în cadrul unei universităţi. Însă. pentru a putea oferi aceste informaţii. respectiv date despre specializări (relaţia Specializare).8 am argumentat prima parte a definiţiei bazei de date relaţionale. De asemenea. trebuie să asociem relaţiile modelului din exemplul 4. profil) Specializare (spec. nr_matr. Astfel. în exemplul 4. 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. Astfel. şi la Ifr). observăm că aceste informaţii nu le mai avem: există trei relaţii în care avem date personale despre studenţi (relaţia Student). facultatea la care studiază. pren) Facultate (facult. Odată cu descompunerea în mai multe relaţii. unde numele unei facultăţi ar fi apărut de fiecare dată când mai gestionam un student al aceleaşi facultaţi (realizarea FSE. ca valoare a atributului facult ar fi apărut de fiecare dată când am fi avut un student al acestei facultăţi).8 observăm că redundanţa datelor a fost înlăturată. specializarea Contabilitate şi Informatică de Gestiune are studenţi şi la forma de învăţământ Zi. prin descompunerea relaţiei iniţiale în cele trei relaţii din exemplul 4. în acelaşi timp. Legături între relaţii Dacă analizăm cu atenţie relaţiile din exemplul 4.8 Student (cnp. aşa cum se întâmpla în exemplul 4. Aşa cum observăm. Specializare care se referă la specializările fiecărei facultăţi gestionate. prenume. în acest moment structura noastră este formată din trei colecţii organizate în care: • • • Student conţine doar date de strudenţi. nume.

10. deoarece ambele relaţii sunt fiu. Baze de date aplicate în economie 51 . această constrângere este numită restricţie referenţială). Ca valori ale atributelor care formează cheia străină putem avea fie valori care se regăsesc pe domeniul cheii primare în relaţia din care provine cheia străină. este evident că o legitimaţie nu poate corespunde mai multor clienţi. Spunem despre o relaţie că este fiu atunci când unui tuplu din relaţia respectivă îi corespunde un singur tuplu în relaţia cu care s-a asociat. Pentru a realiza legătura dintre relaţiile asociate. Obs. Atunci când asociem două relaţii fiu. sub forma cheii străine în relaţiile corespunzătoare. Analizând în acelaşi mod. Definiţie. Cu alte cuvinte. În acelaşi mod. iar modelul va arăta ca în exemplul 4. Definiţie. atributul nr_leg va migra din relaţia Legitimaţie în relaţia Client. În cadrul unei asocieri binare. nu poate avea decât o singură legitimaţie care să-i permită accesul în supermarket. cât şi relaţie părinte. legătura dintre ele se realizează prin migrarea cheilor primare din fiecare relaţie. ceea ce înseamnă că unui tuplu din relaţia Client nu-i poate corespunde decât un singur tuplu în relaţia Legitimaţie.Abordarea relaţională a bazelor de date Legătura binară 1-1 (unu la unu) Definiţie. unde va îndeplini rolul de cheie străină. Astfel. Astfel.9: Fie următoarele două relaţii: Client ( cnp 1701212120139 2711010120121 1721209145123 nume Popa Darie Preda pren localitate ) Dan Alina Marin Galaţi Brăila Galaţi Legitimaţie ( nr_leg 12121 23456 187654 valabilitate ) 2 2 3 Prin intermediul relaţiilor Client şi Legitimaţie încercăm să modelăm situaţia accesului într-un supermarket pe baza unei legitimaţii.9. Exemplul 4. fie valoarea NULL (în literatura de specialitate. pentru exemplul 4. cheia străină este cea care permite crearea legăturilor logice dintre relaţii. Popa Dan nu poate avea decât o singură legitimaţie. tipul de legătură dintre cele două este 1-1. Cheia străină reprezintă un atribut (sau un grup de atribute) care îndeplineşte rolul de cheie primară în cadrul relaţiei din care a migrat. fiecare dintre cele două relaţii poate fi atât relaţie fiu. va trebui să identificăm mai întâi tipul relaţiilor (fiu sau părinte). Conform definiţiei enunţate. la un moment dat. Definiţie. observăm că ambele relaţii sunt fiu deoarece fiecare client. O relaţie este considerată părinte atunci când unui tuplu din relaţia respectivă îi pot corespunde mai multe tupluri în relaţia cu care s-a asociat. atributul cnp va migra din relaţia Client (unde este cheie primară) în relaţia Legitimaţie. Practic. pe baza definiţiilor prezentate anterior.

a.10: Client ( cnp 1701212120139 2711010120121 1721209145123 nume Popa Darie Preda pren Dan Alina Marin localitate nr_leg ) Galaţi Brăila Galaţi 23456 12121 187654 Legitimaţie ( nr_leg 12121 23456 187654 valabilitate 2 2 3 cnp ) 2711010120121 1701212120139 1721209145123 După migrarea cheii primare sub forma cheii străine. Exemplul 4.11: Student ( nr_matr 1111 2222 3333 cnp 1701212120139 2711010120121 1721209145123 nume Popa Darie Preda pren ) Dan Alina Marin Specializare ( cod_spec 61 51 52 spec CIG FB FB formă_înv ) ZI ZI IFR Pentru a avea o evidenţă clară a apartenenţei unui student la o specializare. şi de această dată vom pleca de la identificarea tipurilor de relaţii. Legătura binară 1-n (unu la mai mulţi) Definiţie. sau plecând de la numărul legitimaţiei. astfel încât să putem spune despre un client ce număr de legitimaţie are. va trebui să realizăm legătura dintre cele două relaţii. sub forma cheii străine în relaţiile fiu. dintre care una este relaţie fiu. nu 52 Baze de date aplicate în economie .8. La această întrebare. care are asociată o anumită matricolă. legătura dintre ele se realizează prin migrarea cheii primare din relaţia părinte. în timp ce alţii consideră că un student nu poate fi decât la o singură specializare. o parte din cititori ar putea spune că un student poate fi la una sau mai multe specializări. Atunci când asociem două relaţii. unde X şi Y sunt cele două relaţii pe care le asociem. să putem identifica fără ambiguitate care este deţinătorul acesteia. vom pleca de la relaţiile Student şi Specializare din exemplul 4. iar cealaltă este părinte. putem spune că am realizat legătura între relaţiile asociate. Pentru exemplificare. Răspunsul corect este cel de-al doilea deoarece un student. Identificarea tipului pentru relaţia Student: întrebarea la care trebuie să răspundem este: „Un student la câte specializări poate fi?”. răspunzând pe rând la întrebarea: „Unui tuplu din relaţia X câte tupluri în relaţia Y îi pot corespunde”.Abordarea relaţională a bazelor de date Exemplul 4. Ca şi în cazul primului tip de legătură.

valoarea aferentă cheii străine din relaţia Student. atunci când vom dori să aflăm care este specializarea şi forma de învăţământ a studentului Preda Marin. studentul Popa Dan cu matricola 1111 nu poate aparţine decât unei singure specializări. Legătura binară n-n (mai mulţi la mai mulţi) Definiţie. În acest caz. După parcurgerea secvenţială a tuplurilor din Specializare vom vedea că studentul este la specializarea CIG. poate fi la mai multe specializări.12 observăm că. b.13: Baze de date aplicate în economie 53 . Această nouă relaţie poate include şi alte atribute (în afara celor care formează cheia primară) care reies din contextul problemei modelate. după crearea legăturii. caz în care numărul matricol este altul. Altfel spus. iar modelul va arăta ca în exemplul 4. Concluzionând vom afirma despre Student că este relaţie fiu.Abordarea relaţională a bazelor de date poate fi la mai multe specializări. Specializare este relaţie părinte. forma de învăţământ ZI. ceea ce înseamnă că unui tuplu din relaţia Specializare îi corespund mai multe tupluri din relaţia Student. Atunci când asociem două relaţii părinte. Fie relaţiile Factură şi Produs din exemplul 4. Plecând de la analiza făcută anterior. Exemplul 4. se va realiza o interogare a datelor din relaţia Specializare şi se va identifica acel tuplu care are ca valoare a atributului cod_spec. am stabilit că relaţia Student este fiu în timp ce relaţia Specializare este părinte: legătura dintre cele două se va realiza prin migrarea cheii primare din relaţia părinte (cod_spec din Specializare) sub formă de cheie străină în relaţia Student. cu un anume cod numeric personal. Identificarea tipului pentru relaţia Specializare – în acest caz. adică 61. răspunsul la întrebarea: „La o specializare câţi studenţi pot fi înmatriculaţi?” este „mai mulţi”. Astfel. Este clar că o persoană.12: Student ( nr_matr 1111 2222 3333 cnp 1701212120139 2711010120121 1721209145123 nume Popa Darie Preda pren cod_spec ) Dan Alina Marin 61 52 61 Specializare ( cod_spec 61 51 52 spec CIG FB FB formă_înv ) ZI ZI IFR În exemplul 4. legătura dintre ele se realizează prin generarea unei noi relaţii care va avea ca şi cheie primară. cheile primare ale relaţiilor asociate.12. suntem în măsură să identificăm specializarea la care este înmatriculat fiecare student.

În cadrul relaţiei Aprovizionare observăm un nou atribut. si relaţia Produs este tot părinte deoarece un produs poate fi achiziţionat prin intermediul mai multor facturi.2008 Produs ( cod_produs 11 22 33 den_prod Telefon Nokia TV Samsung Laptop Asus um Buc Buc Buc stoc ) 0 2 2 Considerăm că relaţia Factură permite gestionarea facturilor primite de un comerciant. relaţia Factură este părinte deoarece considerăm că o factură poate conţine unul sau mai multe produse. care va avea cheia primară formată din cheile primare ale celor două relaţii asociate. Plecând de la cele două relaţii. 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). ambele relaţii sunt de tipul părinte. Exemplul 4. 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.10. în acelaşi timp. garantându-se astfel (prin semantica specificată) unicitatea valorilor pe domeniul atributului cod_produs.10. nici dacă există factura şi nu există produsul).13: Factură ( serie_fact DX VR DF nr_fact 1111 2222 3333 val_fact data_fact ) 100 200 300 10. vom identifica tipul relaţiilor pentru a putea realiza legătura dintre ele. Astfel. În cadrul acesteia. în timp ce în relaţia Produs sunt gestionate produsele comercializate.2008 10.2008 12.Abordarea relaţională a bazelor de date Exemplul 4.10. 54 Baze de date aplicate în economie . dar nu există factura şi. atributul stoc are rolul de a gestiona cantitatea aferentă unui produs care se găseşte la un moment dat în stocul comerciantului. care nu se regăsea la nivelul relaţiilor pe care le-am asociat. Iniţial.14: Aprovizionare ( serie_fact nr_fact cod_produs cant_aprov ) DX DX DF 1111 1111 3333 11 33 11 10 15 5 Aşa cum se observă. asta înseamnă că se va crea o nouă relaţie. Odată ce am considerat atributul cod_produs ca fiind cheia primară a relaţiei Produs vom presupune că nu vor exista două produse care să aibă acelaşi cod. legătura de tipul mai mulţi la mai mulţi a fost pusă în evidenţă prin noua relaţie generată: Aprovizionare. dorim să punem în evidenţă care este conţinutul fiecărei facturi (produsele şi cantităţile conţinute de fiecare factură). Totodată. Totodată. Deci.

este un caz particular al legăturii binare mai mulţi la mai mulţi. se va genera o nouă relaţie care se va identifica prin intermediul atributelor nr_matr.8. Revenind la exemplul 4. facult şi cod_spec. putem spune despre Preda Marin că este student la facultatea de Ştiinţe Economice. legătura dintre ele se realizează prin definirea unei noi relaţii. vom asocia cele trei relaţii cu scopul de a putea preciza cu claritate facultatea şi specializarea la care este înmatriculat fiecare student.Abordarea relaţională a bazelor de date Legătura dintre trei sau mai multe relaţii Atunci când asociem mai mult de două relaţii. Practic. aşa cum se observă în exemplul 4.15 Student ( nr_matr 111 222 333 nume Preda Darie Ionescu pren ) Marin Alina Cătălin Facultate ( facult Ştiinţe Economice Drept profil ) Economic Administrativ Specializare ( cod_spec 751 752 662 Spec FB FB AP formă_înv ZI IFR IFR În urma asocierii celor trei relaţii. În acest fel.16 Studiu ( nr_matr 111 222 333 facult Ştiinţe Economice Drept Ştiinţe Economice cod_spec ) 751 662 751 Cu ajutorul acestei noi relaţii. împreună cu alte atribute care reies din contextul problemei modelate. prin intermediul comenzilor de Baze de date aplicate în economie 55 .16. utilizatorul va putea. forma de învăţământ IFR. Abia în acest moment putem spune că am argumentat pe deplin definiţia bazei de date relaţionale: am creat diferite colecţii de date organizate. Exemplul 4. Exemplul 4. la specializarea FB. fără însă să mai necesite în prealabil identificarea tipului fiecărei relaţii. după care am stabilit legăturile logice dintre acestea pentru a avea o viziune completă asupra întregului volum de date care formează respectiva bază de date. care va avea cheia primară formată din cheile primare ale tuturor relaţiilor.

2001. diferenţa. Aceste operaţii specifice algebrei relaţionale sunt folosite pentru formalizarea limbajului de cereri al sistemului de gestiune al bazelor de date relaţionale. În prezentarea operaţiilor. Cererile specifice algebrei relaţionale se pot exprima prin cinci operaţii asupra relaţiilor.F. Exemplul 4. întâlnite în literatură sub numele de operaţii de bază. p. este o relaţie care va avea schema identică cu a relaţiilor reunite şi care va include ca tupluri. rezultatul aplicării acestuia la una sau la două relaţii va fi tot o relaţie.17 Stud1 ( nr_matr 111 222 333 nume Preda Darie Ionescu pren ) Marin Alina Cătălin pren ) Stud2 ( nr_matr nume 444 Manea Oana 333 Ionescu Cătălin 555 Dragomir Alina Stud1 ∪ Stud2 = pren ) ( nr_matr Nume 111 Preda Marin 222 Darie Alina 333 Ionescu Cătălin 444 Manea Oana 555 Dragomir Alina 20 Relaţiile A şi B trebuie să aibă aceeaşi schemă definită pe aceleaşi domenii. Codd. şi anume: reuniunea.Abordarea relaţională a bazelor de date interogare specifice SGBD-ului utilizat. În funcţie de aritatea operatorului. 56 Baze de date aplicate în economie . Reuniunea. 2005. notată A ∪ B . proiecţia şi selecţia. produsul cartezian. toate tuplurile celor două relaţii. primele trei presupun existenţa a două relaţii în timp ce următoarele se aplică pentru o singură relaţie. să acceseze şi să utilizeze în acelaşi timp toate datele gestionate în baza de date. 1. Georgescu. fiind concepută de cercetătorul E. p. Ele sunt implementate în funcţiile de manevrare a datelor aferent sistemului de gestiune şi sunt disponibile utilizatorului cu ajutorul comenzilor limbajului de manevrare a datelor sau a limbajului de interogare ale sistemului de gestiune [Georgescu. considerate o singură dată.93]. Dintre aceste cinci operaţii. vom pleca de la presupunerea că fiecare relaţie are un număr finit de tupluri distincte şi sunt descrise prin intermediul unei mulţimi finite de atribute [Riccardo. Algebra relaţională – operatorii relaţionali Algebra relaţională se referă la diferiţi operatori care au ca operanzi relaţiile. Reuniunea a două relaţii A şi B20.54].

Produsul cartezian. aritatea va fi 6 (relaţia rezultată în urma operaţiei Student × Disciplină va avea şase atribute). aritatea ambelor relaţii este 3. atunci în schema produsului cartezian. 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. însă cu nume diferite (o relaţie nu poate avea două atribute cu acelaşi nume). Trebuie menţionat faptul că atunci când schemele celor două relaţii includ şi atribute comune. Produsul cartezian al celor două relaţii. ceea ce înseamnă că după realizarea produsului cartezian asupra celor două relaţii. rezultatul este următorul: Stud1 \ Stud2 = ( nr_matr nume pren ) 111 Preda Marin 222 Darie Alina 3. Diferenţa. notat A × B este o relaţie care are aritatea a+b şi care va conţine toate tuplurile rezultate prin concatenarea unui tuplu din A cu fiecare tuplu din B. Diferenţa a două relaţii A şi B21.Abordarea relaţională a bazelor de date 2. aşa cum se observă mai jos: Student × Disciplină ( nr_matr 111 111 111 222 222 222 333 333 333 nume Preda Preda Preda Darie Darie Darie Ionescu Ionescu Ionescu pren Marin Marin Marin Alina Alina Alina Cătălin Cătălin Cătălin cod_disc SE1 SE2 SE3 SE1 SE2 SE3 SE1 SE2 SE3 denumire Informatică Informatică Contabilitate Informatică Informatică Contabilitate Informatică Informatică Contabilitate tip_disc ) curs laborator seminar curs laborator seminar curs laborator seminar 21 22 Relaţiile A şi B trebuie să aibă aceeaşi schemă definită pe aceleaşi domenii.18 Student ( nr_matr 111 222 333 nume Preda Darie Ionescu pren ) Marin Alina Cătălin tip_disc ) Disciplină ( cod_disc denumire SE1 Baze de date curs SE2 Baze de date laborator SE3 Contabilitate Seminar Aşa cum se observă. cele două atribute vor apare de două ori. Exemplul 4. Schemele relaţiilor A şi B sunt diferite. dar pot exista atribute comune. Baze de date aplicate în economie 57 . Astfel.17. dacă realizăm diferenţa relaţiilor Stud1 şi Stud2 din exemplul 4. notată A \ B . Fie relaţiile A (cu aritatea a) şi B (cu aritatea b)22.

an. a2. pren (Student) = ( nr_matr nume pren ) 1111 2222 3333 Popa Dan Darie Alina Preda Marin 5. a1. Totodată. Proiecţia. nume.00 Plecând de la relaţia de mai sus. relaţia obţinută după realizarea proiecţiei va avea acelaşi număr de tupluri ca relaţia iniţială. Selecţia se defineşte pentru o singură relaţie A de aritate a. dacă dorim să realizăm o selecţie a studenţilor cu media mai mare sau egală cu opt. vom obţine următoarea relaţie: π nr_matr. Exemplul 4. vom ajunge la următoare relaţie: σ media >=8 ( Student ) = ( nr_matr nume 2222 3333 pren media ) 8. Utilizarea în practică a operaţiilor derivate oferă o flexibilitate sporită a cererilor de interogare a bazei de date şi facilitează.00 2222 Darie Alina 8. Exemplul 4. se mai pot utiliza şi alte operaţii. numite operaţii derivate şi care se bazează pe operaţiile de bază. în cele mai multe situaţii.00 3333 Preda Marin 9.00 Darie Alina Preda Marin Pe lângă operaţiile amintite anterior. nume şi pren. Selecţia.20 Fie relaţia Student: Student ( nr_matr nume pren media ) 1111 Popa Dan 7. Astfel. Proiecţia se aplică unei singure relaţii A de aritate a.00 9. Noua relaţie va avea aceeaşi schemă ca relaţia iniţială şi va conţine doar acele tupluri care respectă condiţia după care se realizează selecţia. se notează cu σ şi se realizează pe baza unei condiţii logice. …. obţinerea 58 Baze de date aplicate în economie . se notează cu π şi se realizează după un număr de atribute.Abordarea relaţională a bazelor de date 4.19 Fie relaţia Student: Student ( nr_matr cnp nume pren ) 1111 1701212120139 Popa Dan 2222 2711010120121 Darie Alina 3333 1721209145123 Preda Marin Plecând de la această relaţie. care trebuie să fie incluse în schema relaţiei A. dorim să realizăm proiecţia după atributele nr_matr. Noua relaţie va avea schema dată de atributele după care se realizează proiecţia.

selecţia tuplurilor conform condiţiei logice. Exemplul 4. Intersecţia a două relaţii A şi B23. uniunea a două relaţii se realizează în doi paşi: a. operaţia se numeşte semi-uniune-stânga. notată A ∩ B . Baze de date aplicate în economie 59 . Uniunea. atunci operaţia se numeşte echiuniune. În plus. În cazul în care condiţia c este de egalitate. cele două atribute trebuie să fie câte unul din fiecare relaţie. iar ca realizări doar tuplurile comune celor două relaţii.21 Stud1 ( nr_matr 111 222 333 nume Preda Darie Ionescu pren ) Marin Alina Cătălin pren ) Stud2 ( nr_matr nume 444 Manea Oana 333 Ionescu Cătălin 555 Dragomir Alina Stud1 ∩ Stud2 = pren ) ( nr_matr nume 333 Ionescu Cătălin 7. Cu alte cuvinte. Intersecţia. respectiv b). iar dacă se face după atributele relaţiei din dreapta (a doua relaţie) se va numi semi-uniunedreapta. Uniunea se defineşte pentru două relaţii A şi B (de aritate a. În cazul uniunii. este o relaţie care va avea schema identică cu a relaţiilor intersectate. realizarea produsului cartezian dintre relaţii. o condiţie logică între două valori ale unor atribute ce aparţin celor două relaţii24 şi se notează A | X | B . dacă vom realiza o proiecţie după atributele primei operaţii. b. cu schema dată de reuniunea atributelor celor două relaţii şi care va conţine toate tuplurile aferente produsului cartezian dintre A şi B care respectă condiţia menţionată. Rezultatul uniunii va fi o relaţie de c aritate a+b. Dintre operaţiile derivate utilizate mai frecvent amintim: 6. 23 24 Relaţiile A şi B trebuie să aibă aceeaşi schemă definită pe aceleaşi domenii.Abordarea relaţională a bazelor de date unor răspunsuri mai rapide. În continuare vom exemplifica uniunea şi echiuniunea.

în relaţia Comandă avem o evidenţă a produselor comandate. Aprov X Comandă= ( s_fact nr_fact cod_prod cant_a cod_cmd cant_c ) DX 1122 P1 20 C1 20 DX 1122 P1 20 C2 12 DX 1122 P1 20 C3 10 DX 1122 P2 10 C1 20 DX 1122 P2 10 C2 12 DX 1122 P2 10 C3 10 JZ 2233 P3 15 C1 20 JZ 2233 P3 15 C2 12 JZ 2233 P3 15 C3 10 După realizarea produsului cartezian. • cant_c – reprezintă cantitatea comandată prin intermediul unei comenzi. Aprov cant _ a <= cant _ c | X | Comandă= ( s_fact nr_fact cod_prod cant_a cod_cmd cant_c ) DX DX DX DX JZ 1122 1122 1122 1122 2233 P1 P2 P2 P2 P3 20 10 10 10 15 C1 C1 C2 C3 C1 20 20 12 10 20 60 Baze de date aplicate în economie .Abordarea relaţională a bazelor de date Exemplul 4. iar semantica atributelor este următoarea: • • • s_fact – reprezintă seria unei facturi. nr_fact – reprezintă numărul facturii. aminteam anterior că primul pas care trebuie făcut este realizarea produsului cartezian. cod_prod – codul produsului achiziţionat prin intermediul unei facturi. • cant_a – se referă la cantitatea aferentă unui produs care se găseşte pe o factură.22 Fie următoarele relaţii: Aprov ( s_fact DX DX JZ nr_fact 1122 1122 2233 cod_prod cant_a ) P1 20 P2 10 P3 15 Comandă ( cod_cmd cand_c ) C1 20 C2 12 C3 10 În cadrul relaţiei Aprov se presupune că avem situaţia aprovizionărilor. vom face selecţia tuplurilor pe baza condiţiei cant_a <= cant_c. • cod_cmd – codul unei comenzi (se presupune că două comenzi diferite vor avea coduri diferite). Pentru a realiza uniunea celor două relaţii.

notată | A X B | se poate realiza numai în cazul în care cele două relaţii au un set de atribute comune.Abordarea relaţională a bazelor de date În cazul în care condiţia este cant_a=cant_c. uniunea naturală se obţine prin selectarea din produsul cartezian al celor două relaţii a tuplurilor ce conţin valori comune pentru atributele cu acelaşi nume.23: Echiuniunea relaţiilor Aprov şi Comandă. Astfel. atunci vom avea o echiuniune a celor două relaţii.23: Exemplul 4. Se realizează produsul cartezian al celor două relaţii: Student X Disc = ( s. atributul comun celor două relaţii este nr_matr.nr_matr nume 111 111 111 222 222 222 333 333 333 Popa Popa Popa Darie Darie Darie Moga Moga Moga pren den_disc d. Schema relaţiei va fi dată de reuniunea atributelor celor două relaţii (ceea ce înseamnă că atributele comune vor apare o singură dată). ceea ce înseamnă că uniunea naturală se va face pe baza condiţiei Student. c. Uniunea naturală. Aşa cum observăm.nr_matr.nr_matr = Disc. aşa cum se observă în exemplul 4. Exemplul 4. După identificarea condiţiei. Uniunea naturală a relaţiilor A şi B. La acest pas va trebui să determinăm condiţia după care se va realiza selecţia.23: Fie următoarele relaţii: Student ( nr_matr 111 222 333 nume Popa Darie Moga pren ) Dan Alin Dana Disc ( den_disc nr_matr notă ) Finanţe 333 9 Birotică 222 10 Birotică 333 8 a.nr_matr notă ) Dan Finanţe 333 9 Dan Birotică 222 10 Dan Birotică 333 8 Alin Finanţe 333 9 Alin Birotică 222 10 Alin Birotică 333 8 Dana Finanţe 333 9 Dana Birotică 222 10 Dana Birotică 333 8 b. Aprov | X | Comandă= cant _ a = cant _ c ( s_fact DX DX nr_fact 1122 1122 cod_prod P1 P2 cant_a 20 10 cod_cmd C1 C3 cant_c ) 20 10 8. ea se va aplica asupra produsului cartezian realizat la punctul a: Baze de date aplicate în economie 61 .

tuplul va fi adăugat în relaţia aferentă uniunii externe. În dreptul acestor valori se va trece valoarea NULL (exemplul 2. se regăsesc în relaţia Student pe domeniul de valori al atributului nr_matr). Uniunea externă (outer join) va include toate tuplurile uniunii naturale. la care se adaugă câte un tuplu pentru acele tupluri dintr-o relaţie care nu au corespondent în cealaltă relaţie. Uniunea externă se notează astfel: A | ⊗ | B.nr_matr 222 333 333 notă ) 10 9 8 d.nr _ matr ( Student X Disc) = ( s.23 şi de la uniunea naturală Student | X | Disc.Abordarea relaţională a bazelor de date σ Student . În final. relaţia va conţine toate tuplurile uniunii naturale la care se vor adăuga cele ale primei relaţii (considerată relaţia din stânga) care nu au corespondent în relaţia din dreapta. De asemenea. Uniunea externă. iar valorile aferente atributelor din relaţia Disc pentru care nu există corespondent vor primi valoarea NULL.nr _ matr = Disc. Plecând de la relaţiile Student şi Disc din exemplul 4. se realizează o proiecţie asupra relaţiei obţinute la punctul c după mulţimea atributelor celor două relaţii. În ceea ce priveşte uniunea externă stânga. ca realizări ale atributului nr_matr în relaţia Disc. în relaţia Student există un singur tuplu care nu are corespondent în relaţia Disc: în acest caz. numai că în acest caz 62 Baze de date aplicate în economie . există două operaţii derivate din uniunea externă şi anume uniune externă stânga (left outer join) şi uniune externă dreapta (right outer join). vom obţine: | Student X Disc |= (nr_matr nume 222 333 333 Darie Moga Moga pren Alin Dana Dana den_disc Birotică Finanţe Birotică notă ) 10 9 8 9. Tuplurile adăugate au valoarea NULL pentru toate atributele ce nu apar în relaţia din care provin.25). În ceea ce priveşte relaţia Disc. valorile 222 şi 333. După realizarea proiecţiei. În mod similar se realizează uniunea externă stânga. unde A şi B sunt cele două relaţii.24 Student | ⊗ | Disc = (nr_matr 111 222 333 333 nume pren den_disc notă ) Popa Dan NULL NULL Darie Alin Birotică 10 Moga Dana Finanţe 9 Moga Dana Birotică 8 Aşa cum se observă. vom avea următoarea uniune externă: Exemplul 4. considerate o singură dată. nu există nici un tuplu care să nu aibă corespondent în relaţia Student (altfel spus.nr_matr 222 333 333 nume Darie Moga Moga pren Alin Dana Dana den_disc Birotică Finanţe Birotică d.

După ce am identificat aceste colecţii. ceea ce înseamnă că va trebui Baze de date aplicate în economie 63 .26 Student ⊗ | Disc = (nr_matr 222 333 333 nume pren den_disc notă ) Popa Dan NULL NULL Darie Alin Birotică 10 Moga Dana Finanţe 9 Moga Dana Birotică 8 nume pren den_disc notă ) Darie Alin Birotică 10 Moga Dana Finanţe 9 Moga Dana Birotică 8 În exemplul 4. pentru problema noastră. Cu alte cuvinte. b) definirea relaţiilor pe baza atributelor identificate la punctul a).26. Mai multe societăţi comercializează pe bază de factură diferite produse.Abordarea relaţională a bazelor de date vor fi adăugate uniunii naturale doar tuplurile relaţiei din dreapta (exemplul 2. produse şi facturi. Pentru a soluţiona problema propusă anterior. c) crearea legăturilor dintre relaţiile identificate la punctul b). uniunea externă dreapta este identică cu uniunea naturală deoarece nu există tupluri în relaţia din dreapta (relaţia Disc în cazul nostru) care să nu aibă corespondent în cealaltă relaţie.26). va trebui să descriem minim două atribute care caracterizează fiecare din aceste colecţii de date. Exemplul 4. va trebui ca înainte de a identifica atributele să răspundem la următoarea întrebare: „Pentru problema dată. Probleme rezolvate 1. dacă încercăm să răspundem la această întrebare. Este important ca atunci când identificăm atributele. a) Pentru a avea garanţia unei rezolvări corecte a unei probleme. aceste colecţii pe care le-am identificat acum vor reprezenta relaţiile pe care le vom defini la punctul b). să se pună în evidenţă emitentul şi conţinutul fiecărei facturi. Folosind abordarea relaţionlă. va trebui să parcurgem următoarele etape: a) identificarea atributelor care reies din contextul problemei. avem nevoie de atribute pentru cine. vom constata că va trebui să identificăm atribute despre societăţi.25 Student | ⊗ Disc = (nr_matr 111 222 333 333 Exemplul 4. sau pentru ce?” Astfel. să avem în vedere că fiecare relaţie are în mod obligatoriu o cheie primară.

• cod_prod – codul fiecărui produs. Astfel sintetizând cele menţionate anterior. vom constata că mai avem nevoie de un atribut. Referitor la acest atribut. În ceea ce priveşte factura. la punctul a) vom avea următoarele atribute (pentru claritate. unitatea de măsură şi eventual cantitatea care există în stoc la un moment dat. • cant – cantitatea (aferentă unui produs) care se găseşte în stoc la un moment dat. 25 64 Baze de date aplicate în economie . Practic. în dreptul fiecărui atribut vom menţiona şi semantica corespunzătoare): • • cui – codul unic de identificare al fiecărei societăţi. Totodată. data – data emiterii facturii. trebuie să precizăm faptul că.Abordarea relaţională a bazelor de date să ne gândim încă de la acest pas care va fi atributul sau atributele care vor avea rolul de a identifica în mod unic fiecare tuplu al relaţiilor de la punctul b). ca să dispunem de o realizare a acestui atribut va trebui să existe atât factura cât şi produsul. putem considera că referitor la o societate ne va interesa codul unic de identificare al acesteia (care este unic pentru toate societăţile descrise) şi denumirea ei. cele două atribute vor putea identifica unic fiecare factură25. astfel încât să putem evidenţia conţinutul fiecărei facturi. 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. val – valoarea unei facturi. Referitor la seria şi numărul facturii. um – unitatea de măsură specifică fiecărui produs. den_s – denumirea societăţii. cu alte cuvinte. • cant_aprov – cantitatea aferentă unui produs aprovizionat prin intermediul unei facturi. dacă ne gândim la un atribut care să identifice unic fiecare produs. • • den_prod – denumirea produsului gestionat. tot referitor la un produs considerăm că ne mai interesează denumirea acestuia. În ceea ce priveşte produsul. prin conţinutul fiecărei facturi înţelegem că trebuie să punem în evidenţă produsele care se găsesc pe fiecare factură primită de societăţile gestionate şi cantităţile aferente. nr – numărul facturii. menţionăm faptul că vom avea o realizare a acestuia numai atunci când este emisă o factură pe care se găseşte un produs gestionat. dacă analizăm cu atenţie cerinţa problemei. în cazul nostru. Astfel. atributul de care vom avea nevoie se va referi la cantitatea aprovizionată dintr-un produs pe o factură. se presupune că nu există două produse gestionate care să aibă acelaşi cod. ştim cu toţii că aceasta se identifică printro serie şi un număr şi că fiecare factură are o valoare şi o dată a emiterii. Altfel spus. atunci acesta poate fi cod_produs. numai luate împreună. • • • • serie – seria unei facturi. pentru care introducem o semantică suplimentară şi spunem că nu pot exista două produse care să aibă acelaşi cod. De asemenea.

Astfel. în timp ce Factură este relaţie fiu deoarece o factură nu poate fi emisă decât unei singure societăţi (reamintim că o relaţie este considerată fiu atunci când unui tuplu din acea relaţie îi va corespunde un singur tuplu în relaţia cu care s-a asociat şi este părinte atunci când îi vor corespunde mai multe tupluri). De asemenea. Astfel.11. legătura este de tipul n-n (mai mulţi la mai mulţi) deoarece ambele relaţii sunt părinte: fiecare factură poate conţine unul sau mai multe produse. ceea ce înseamnă că atributele care formează cheia primară în relaţia părinte vor migra sub forma cheii străine în relaţia fiu: atributul cui din relaţia Societate va migra sub forma cheii străine în relaţia Factură. vom descrie şi trei tupluri care să ne ajute la identificarea corectă a cheilor primare ale relaţiilor): Societate den_s ) ( cui R111111 Rione SRL R222222 Selena SRL R333333 Select SRL Produs ( cod_prod um cant ) den_prod 11 Telefon Nokia B 2 22 Telefon Samsung B 3 33 Laptop Dell B 0 data ) Factură ( serie val nr DX 1111 2000 10. vom avea următoarele relaţii (pentru fiecare relaţie. Aşa cum am menţionat în subcapitolul în care am descris legăturile dintre relaţii. A doua cerinţă este cea prin care ni se cere să punem în evidenţă conţinutul fiecărei facturi. Pentru aceasta. Astfel. Analizând cele două relaţii. Conform regulii menţionate. vom asocia relaţiile Societate şi Factură. Baze de date aplicate în economie 65 . Aşa cum am procedat anterior. vom asocia relaţiile Factură şi Produs. observăm că Societate este relaţie părinte deoarece fiecare societate poate primi una sau mai multe facturi. legătura este de tipul 1-n (unu la mai mulţi). În acest caz. va trebui să definim relaţiile din cadrul cărora ele vor face parte.Abordarea relaţională a bazelor de date b) După identificarea atributelor.11. legătura se va realiza prin generarea unei noi relaţii care va avea cheia primară formată din cheile primare ale celor două relaţii asociate. Prima se referă la punerea în evidenţă a emitentului fiecărei facturi.2008 JW 1111 6500 11. în timp ce un produs poate fi aprovizionat prin intermediul uneia sau a mai multor facturi. această nouă relaţie va include şi atributul cant_aprov care ne va permite să punem în evidenţă cantitatea aprovizionată dintr-un produs pe o factură. pentru a identifica tipul legăturii va trebui să vedem rolul fiecărei relaţii în cadrul modelului: fiu sau părinte.2008 c) La acest pas va trebui să soluţionăm două cerinţe.11. şi în acest caz va trebui să identificăm iniţial tipul relaţiilor pentru a determina tipul legăturii.2008 DX 2222 8500 10.

11. De asemenea. respectiv 20 unităţi. Spre exemplu. respectiv 2222 (pentru nr). În acest fel vom constata că factura DX 2222 este emisă de Select SRL.Abordarea relaţională a bazelor de date După crearea acestor legături. Conţinutul fiecărei facturi este evidenţiat prin intermediul relaţiei Conţinut_factură. în cadrul relaţiei Factură se argumentează şi regula entităţii. R333333) şi vom căuta această valoare pe domeniul de valori aferent atributului care este cheie primară în relaţia din care a migrat. după identificarea tuplului. iar cantitatea aprovizionată este de 10. vom merge în relaţia Societate şi pe domeniul cheii primare vom căuta acel tuplu pentru care valoarea atributului cui este R333333. vom identifica în cadrul relaţiei Factură care este tuplul care are ca realizare a atributelor serie şi nr valorile DX (pentru serie). modelul relaţional va arătat astfel: Societate den_s ) ( cui R111111 Rione SRL R222222 Selena SRL R333333 Select SRL Produs ( cod_prod um cant ) den_prod 11 Telefon Nokia B 2 22 Telefon Samsung B 3 33 Laptop Dell B 0 Factură ( serie val cui ) nr data DX 1111 2000 10.2008 R222222 DX 2222 8500 10. Pentru exemplul nostru.2008 R333333 JW 1111 6500 11. putem observa că în cazul în care unul din cele două atribute care formează cheia primară nu are valoare. Astfel. 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). Apoi. vom prelua valoarea cheii străine (în cazul nostru. În acest fel constatăm că produsul Telefon Nokia este achiziţionat prin intermediul a două facturi (DX 1111 şi JW 1111). dacă dorim să aflăm cine a emis factura DX 2222.11. 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). atunci există posibilitatea ca pe 66 Baze de date aplicate în economie . ceea ce argumentează legătura de tipul mai mulţi la mai mulţi. Totodată. 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ă).11.2008 R222222 cod_prod cant_aprov ) Conţinut_factură ( serie nr DX 1111 11 10 DX 1111 33 15 JW 1111 11 20 Astfel.

deoarece. am putea identifica următoarele atribute: • • • nr_matr – numărul matricol al studentului. laborator sau proiect). b) Relaţiile pe care le identificăm sunt următoarele: Student ( nr_matr nume pren ) 111 Popa Alin 222 Marin Daniela 333 Mihnea Ioana Specializare ( cod_spec den_spec ) 76 Contabilitate şi Informatică de Gestiune 75 Finanţe Bănci 70 Informatică Economică Baze de date aplicate în economie 67 . pentru problema dată. • cod_spec – codul unei specializări care aparţine unei facultăţi. ceea ce înseamnă că nu mai poate îndeplini rolul de cheie primară a relaţiei. • den_spec – denumirea specializării. precum şi disciplinele studiate de aceştia. Astfel. vom presupune că nu există două facultăţi care să aibă acelaşi cod. Deşi poate am fi tentaţi să credem că am avea nevoie şi de atribute despre facultate. seminar. ceea ce nu ar fi permis.Abordarea relaţională a bazelor de date domeniul de valori respectiv să avem valori duplicate. • • den_disc – denumirea disciplinei studiate. indiferent de forma disciplinei (curs. nu este aşa. aceasta ar avea un singur tuplu şi nu se justifică generarea unei relaţii care să aibă o singură realizare. atunci vom ajunge în situaţia în care avem două valori duplicate pe domeniul respectiv de valori. în cazul în care am avea relaţia facultate. în funcţie de specializare. dacă vom da valori numai atributului serie. ca şi în cazul codului specializării. • cod_disc – codul disciplinei. • semestru – semestrul în care este studiată o disciplină. nume – numele studentului. specializare şi disciplină. tip_disc – tipul unei discipline. o disciplină poate fi studiată în semestre diferite de studenţii acesteia. Să se pună în evidenţă specializarea de care aparţine fiecare student. Deci. şi aici vom presupune că două discipline diferite au coduri diferite. Fie descrierea studenţilor unei facultăţi care studiază diferite discipline în funcţie de specializarea fiecăruia. va trebui să identificăm atribute despre student. Spre exemplu. pren – prenumele unui student. a) Pentru problema menţionată anterior. 2. trebuie să nu omitem să dăm valori tuturor atributelor care formează cheia primară a unei relaţii.

Astfel. ceea ce înseamnă că vom avea o legătură mai-mulţi-la-mai-mulţi. Astfel. după crearea legăturilor. fiecare specializare va avea mai mulţi studenţi. în această situaţie se va genera o nouă relaţie. legătura dintre cele două relaţii este de tipul unu-la-mai-mulţi. Astfel. Aşa cum ştim deja. ceea ce înseamnă că va migra cheia primară din relaţia Specializare sub forma cheii străine în relaţia Student. vom asocia relaţiile Student şi Specializare. prin intermediul atributului cod_spec din relaţia Student putem să aflăm la ce specializare este înmatriculat fiecare student. în mod evident.Abordarea relaţională a bazelor de date Disciplină ( cod_disc tip_disc ) den_disc D11 Baze de date Curs D12 Baze de date Laborator D21 Contabilitate financiară Seminar c) Pentru a evidenţia specializarea de care aparţine fiecare student. Dacă dorim să determinăm disciplinele studiate de fiecare student. Cele două relaţii sunt părinte deoarece un student studiază una sau mai multe discipline. iar fiecare disciplină este studiată de nici un student (pot exista discipline opţionale care nu se aleg din pachetul de opţionale) sau de mai mulţi studenţi. Relaţia Student este o relaţie fiu deoarece un student cu o anumită matricolă nu poate fi înmatriculat la mai multe specializări. vom asocia relaţiile Student şi Disciplină. în timp ce relaţia Specializare este una părinte întrucât. modelul relaţional este următorul: cheia straina pren cod_spec ) Student ( nr_matr nume 111 Popa Alin 76 222 Marin Daniela 75 333 Mihnea Ioana 76 Specializare ( cod_spec 76 75 70 den_spec ) Contabilitate şi Informatică de Gestiune Finanţe Bănci Informatică Economică tip_disc ) Disciplină ( cod_disc den_disc D11 Baze de date Curs D12 Baze de date Laborator D21 Contabilitate financiară Seminar Studiu ( nr_matr cod_disc semestru ) 111 D11 3 111 D12 3 333 D21 2 68 Baze de date aplicate în economie .

Abordarea relaţională a bazelor de date Astfel. dar şi perioada în care acestea sunt parcurse. astfel: • • prin intermediul atributului nr_matr identificăm studentul. Baze de date aplicate în economie 69 . relaţia Studiu este cea care ne permite să identificăm disciplinele studiate de fiecare student. • atributul semestru ne arată perioada în care un student studiază o anumită disciplină. cu ajutorul atributului cod_disc vedem disciplina studiată de un student.

c. b. 70 Baze de date aplicate în economie . La ce se referă legătura de tipul unu-la-mai-mulţi? 9. La ce se referă legătura de tipul unu-la-unu? 8. una. La ce se referă regula reprezentării logice a datelor? 2. c. una primară şi cel puţin una străină. d. La ce se referă legătura de tipul mai-mulţi-la-mai-mulţi? 10. mai multe candidat. Regula lui Codd specifică reprezentării fizice a datelor se referă la faptul că: a. Câte chei poate avea o relaţie? a. nici una.Abordarea relaţională a bazelor de date Întrebări recapitulative 1. sau mai multe alternante. Ce reprezintă cheia străină? 5. programele de aplicaţie pot fi afectate de modificările realizate în modul de reprezentare a datelor sau în metodele de acces. sau mai multe alternante şi cel puţin una străină. colecţii corelate din punct de vedere logic. d. una străină si una alternantă. una sau mai multe candidat. 2. Ce este relaţia fiu? Dar cea părinte? 6. 3. Ce reprezintă legătura logică? 7. una sau mai multe candidat. una primară şi nici una. b. O bază de date relaţională se referă la: a. Ce reprezintă baza de date relaţională? 3. Cum se realizează legătura dintre trei sau mai multe relaţii? Teste grilă 1. colecţii organizate şi corelate fizic pe suportul de stocare. programele de aplicaţie pot fi afectate de modificările realizate asupra relaţiilor bazei de date. d. una primară. programele de aplicaţie nu pot fi afectate de modificările realizate în modul de reprezentare a datelor sau în metodele de acces. c. b. colecţii organizate şi corelate din punct de vedere logic. programele de aplicaţie nu pot fi afectate de modificările realizate asupra relaţiilor bazei de date. colecţii organizate de date. una. una primară. Ce reprezintă cheia primară? 4.

c. 6. 7. Un tuplu se obţine prin atribuirea de valori: a.Abordarea relaţională a bazelor de date 4. însă atunci când este nevoie. un atribut (grup de atribute) care poate deveni fie cheie primară. d. în funcţie de relaţia în care migrează. identifică în mod unic toate celelalte atribute ale relaţiei din care face parte. 5. are o singură cheie primară. se asociază cu încă două relaţii. Cheia candidat reprezintă: a. unui tuplu din relaţia respectivă îi corespunde un singur tuplu în relaţia cu care s-a asociat. Fiecare relaţie: a. b. fie cheie străină. b. c. d. se poate identifica cel mult încă una. c. d. Cheia primară reprezintă un atribut sau un grup de atribute care: a. O relaţie este părinte dacă: a. cheii străine. b. identifică unic fiecare tuplu. unui tuplu din acea relaţie nu-i corespunde nici un tuplu în relaţia cu care s-a asociat. un atribut (grup de atribute) care poate deveni fie cheie primară. atributelor cheie. d. un singur atribut care poate fi cheie primară sau cheie alternantă. b. unui tuplu din relaţia respectivă îi corespund mai multe tupluri în relaţia cu care s-a asociat. c. fie cheie străină. nu poate migra niciodată din relaţia din care face parte. are o singură cheie primară. Baze de date aplicate în economie 71 . atributelor unei relaţii. nu contează câte chei primare are o relaţie. d. 8. pentru acele atributute care au valoarea NULL. c. identifică unic fiecare tuplu al unei relaţii. are mai multe chei primare. b. un atribut (grup de atribute) care poate deveni fie cheie alternantă. fie cheie alternantă.

presupune existenţa a două relaţii cu aritate diferită şi pe baza unei condiţii logice. Legătura de tipul unu-la-mai-mulţi se realizează atunci când: a. c. presupune existenţa a două relaţii cu scheme diferite. unui tuplu din fiecare relaţie îi corespund mai multe tupluri din cealaltă relaţie. în timp ce unui tuplu din a doua relaţie îi corespunde un singur tuplu din prima. unui tuplu din prima relaţie îi corespund mai multe tupluri în cea de-a doua relaţie. 72 Baze de date aplicate în economie . 10. unui tuplu din fiecare relaţie îi corespunde cel mult un tuplu din cealaltă relaţie.Abordarea relaţională a bazelor de date 9. c. se asociază cel puţin trei relaţii. se aplică unei singure relaţii şi se realizează după diferite tupluri ale relaţiei. se aplică unei singure relaţii şi se realizează după diferite atribute ale relaţiei. dar care pot avea şi atribute comune. d. d. b. b. Operaţia proiecţie din algebra relaţională: a.

H. 19. Baze de date. 2001. ediţia a II-a.. Korth. R. H. 1999.. [Harrington. Gehrke. Bucureşti. [Fotache.. ed. 1999] Gerald. McFadden. Editura All. ed. 12. ed. The complete Book. 2002. Iaşi. Ghe.R.L.. Morgan Kaufman. 15. 5. J. Implementation and Management. Gehrke. 2000] Ramakrishnan. 2004. 2000] Diaz. J. Design and Innovation. Data Modeling Essentials.. Editura All. [Riordan. 2000. Principles of Database Systems – with Internet and Java Application. [Bâscă. Piattini. J.. 3. 2002] Garcia-Molina. 2005] Georgescu. Bucureşti.. M..A. C. ed.. 1997] Silbershartz. [Diaz. 8. 10. [Hoffer et al. 2002. [Lungu. [Popescu. SGBD. C. Bucureşti. Proiectarea bazelor de date. F. A. An introduction to database systems. Upper Saddle Riner. 6. 2001] Riccardo.B. Ivancenco. 4. 1994] Date. Bodea. Addison Wesley. I. ediţia a VIII-a. 1997] Bâscă. Korth. Widom. 1995. ed. 2002... O. 2001] Simsion. T.. Microsoft Press. Database Systems – A practical Approach to Design. Database Management Systems. 16. Relational Database Design Clearly Explained.. [Ramakrishnan. M. Begg. 2002] Hoffer.. J. Designing Relational Database Systems... Bodea. 2000. V. Pearson Addison Wesley... Prescott. 2002] Harrington.. [Simsion. 2005] Fotache. Georgescu. [Silbershartz. Editura Tehnică. 2005. Advanced database technology and design. ed..A.. [Riccardo.. 1995] Lungu. Baze de date aplicate în economie 73 . 17. V. O. Bucureşti.. Database Systems. 2001. [Date. Mc Graw Hill. Mareş. Editura All. 2002. Addison Wesley. Implementări SQL şi Oracle. G. J.. Database Management Systems. [Georgescu. C... Analysis.. H. 1997. G. 13.. 2001] Popescu. 2001. J. Amsterdam. Mc Graw Hill. Bucureşti. 2004] Date. 2005. 1994] Popa. Ullman. Editura Polirom. [Gerald.. 1999] Riordan. [Popa et al. proiectare şi implementare. Editura Didactică şi Pedagogică R. Addison Wesley Limited.. Georgescu. 2002] Connoly. 11. [Connoly et al. 1994.Bibliografie Bibliografie 1. Prentice-Hall. 1997. I. A. Second Edition. 1999.. Strachan. 1994. Normalizare şi postnormalizare. [Garsia-Molina et al. Addison Wesley... P. A. 9. Prentice Hall. Baze de date – organizare. Stanciu. Modern Database Management. 2.. Modelarea bazelor de date. ediţia a II-a. Baze de date relaţionale şi multidimensionale. 14. M. Addison Wesley. An introduction to Database Systems. [Date. 7. R.. 18.. Database system concepts..

Bibliografie 20. Bucureşti.. 2003. Sisteme de baze de date – teorie şi practică.. I. I. Ioniţă.. Bucureşti.. Mierluş-Mazilu. I.. 22. http://vega. 74 Baze de date aplicate în economie . Lungu.. Bodea. Baze de date relaţionale. Nistorescu. Bădescu.unitbv. S.ro/~cataron/Courses/BD/BD_Cap_2. 21. M. Sisteme de gestiune a bazelor de date.. Editura Petrion. Lungu. 23.. C. 2007. M. [Velicanu et al.pdf. 2000. Muntean.. R. 2000] Velicanu. M. I. Bucureşti... [Velicanu et al.. 2007] Trandafir.. G... [Trandafir et al. Editura Petrion. 2003] Velicanu. Ionescu. M.

Sign up to vote on this title
UsefulNot useful