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

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

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

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

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

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

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

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

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

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

care urmărea în primul rând corectarea erorilor detectate. În acest context. iar performanţele întârziau să apară (cam 80-90% din sisteme nu-şi atingeau scopul). iar rezultatul nu a întârziat să apară: multe proiecte importante se aflau în întârziere. dar şi proasta partiţionare a proiectării în componente uşor de manevrat. definirea şi proiectarea tranzacţiilor. **************************************************************************************** Î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. din păcate. aceste aplicaţii necesitau şi o întreţinere constantă. În ultimile decade am observat o expansiune a aplicaţiilor software. Însă. de la cele mici şi relativ simple şi care presupuneau câteva linii de cod. Totodată. • • • detalierea procesului de proiectare a unei baze de date. astfel încât. Printre principalele motive care au stat la baza acestei crize putem aminti: lipsa specificaţiilor complete referitoare la cerinţe.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. Toate aceste aspecte specifice întreţinerii au condus la un consum tot mai însemnat de resurse. Practic. logică şi fizică. prezentarea tipurilor de proiectare: conceptuală. întreţinerea se face tot mai greu. această situaţie a condus la ceea ce se numea la vremea respectivă „criza de software”. Însă. dacă privim evoluţia în timp a dezvoltării sistemelor software constatăm că nu este impresionantă. bugetul alocat lor devenea constant insuficient. până la cele mari. în mod normal. 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. indiferent de locul în care rula aplicaţia. Astfel. ca o soluţie care să permită ieşirea din criză şi Baze de date aplicate în economie 13 . a unei metodologii adecvate de realizare. funcţionalitatea ei să nu fie afectată. îmbunătăţirea funcţionalităţii prin implementarea altor cerinţe care veneau din partea utilizatorului. această ameliorare avea în vedere şi adaptarea acestor aplicaţii la platforme multiple.

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

Înainte de a începe proiectarea unei aplicaţii de tip bază de date.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. 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. Practic.1. includerea şi delimitarea graniţelor 15 Baze de date aplicate în economie . 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. delimitarea graniţelor sistemului – se referă la specificarea scopului şi limitelor aplicaţiei. a utilizatorilor săi şi a domeniilor de aplicaţie.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

32 Baze de date aplicate în economie . în cazul unei aplicaţii bazate pe fişiere. Realizarea independenţei datelor simplifică substanţial întreţinerea aplicaţiilor din baza de date. Furnizarea acestor funcţii permite programatorului să se concentreze mai mult asupra funcţionalităţii specifice cerute de către utilizatori. ceea ce avea evident ca rezultat pierderea informaţiilor sau chiar alterarea integrităţii datelor respective. 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). SGBD-ul oferă toate rutinele de nivel jos pentru manevrarea fişierelor. Astfel. fapt care are drept consecinţă garanţia evitării apariţiei unor astfel de probleme. în cazul unor defecţiuni ale sistemului de calculatoare sau ale programului aplicaţie. În ceea ce priveşte un SGBD. 11. 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. ceea ce făcea ca acestea să depindă de date. care constă în instrumente de simplificare a dezvoltării de aplicaţii în domeniul bazelor de date. Aceasta are ca rezultat o productivitate crescută a programatorului şi un timp redus de programare (împreună cu reducerea corespunzătoare a costurilor).Productivitate crescută Aşa cum am menţionat anterior. tipice în programele aplicaţie. cu influenţe negative asupra ceea ce înseamnă gestionarea eficientă a conţinutului unui baze de date. 14.Î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. La nivel fundamental. O modificare în structura datelor (de exemplu. se întâmpla ca cele două accesări să se suprapună. Multe sisteme SGBD furnizează şi un mediu din a patra generaţie. Prin contrast. fără însă a se preocupa de detaliile de nivel jos privind implementarea. descrierile datelor sunt separate de aplicaţii.Sisteme de gestiune a bazelor de date SELECT* FROM proprietate_de_inchiriat WHERE type = 'Apartament' AND chirie> 400. 12. 13. ceea ce face ca acestea să fie imune la modificările din descrierea datelor. întrun SGBD. una dintre sarcinile importante care-i revin acestuia se referă la administrarea accesului concurent la baza de date.Î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.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. un SGBD oferă multe dintre funcţiile standard.

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

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

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

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

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

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

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

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

utilizat în prezent pe scară largă. 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. ierarhic. • identificarea relaţional. **************************************************************************************** Aşa cum reiese din literaura de specialitate. şi care aparţine cercetătorului Codd [Codd. 1970. • prezentarea principalilor operatori ai algebrei relaţionale. şi anume modelul relaţional. Astfel. întâlnite în literatură sub numele de regulile lui Codd. în acest capitol am urmărit: • prezentarea regulilor lui Codd pe care se bazează întreaga abordare relaţională. înţelegerea mecanismului cheii străine. • şi prezentarea fundamentelor specifice modelului definirea tipurilor de chei întâlnite la nivelul unei relaţii. Regulile lui Codd Pentru a fi considerat relaţional. • definirea tipurilor de legături dintre relaţii. fiecare sistem de gestiune a bazelor de date trebuie să respecte nişte reguli. regulile enunţate de cercetător sunt prezentate în continuare: Baze de date aplicate în economie 43 .377-387]. „A relational Model of Data for Large Shared Data Banks”. relaţional. În cadrul acestui capitol vom analiza detaliat cel mai utilizat model de reprezentare. au existat în timp mai multe modele de reprezentare a informaţiilor la nivel logic şi de operare: • • • reţea. p.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. Astfel.

44 Baze de date aplicate în economie . trebuie să se lucreze la un moment dat pe o relaţie întreagă. a tabelelor virtuale. cu semnificaţia unor date lipsă sau care nu pot fi aplicate. Toate informaţiile din baza de date sunt gestionate numai prin mecanisme relaţionale. definiţiilor tabelelor virtuale. în diferite moduri. R6 – Actualizarea bazei de date Fiecare SGBD trebuie să permită manipularea unei tabele (de bază sau virtuală). care să opereze la un moment dat pe o relaţie. 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. Practic. În cazul unei operaţii care va modifica conţinutul unei baze de date. al coloanelor. Rezultă că toate datele ar trebui să fie memorate şi prelucrate în manieră identică. 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. R3 – Regula aferentă valorii NULL Un SGBD trebuie să permită declararea şi utilizarea valorii NULL.Abordarea relaţională a bazelor de date R0 – Gestionarea datelor la nivel de relaţie. atât în cazul actualizării datelor în baza de date. utilizatorul va aplica asupra descrierii bazei de date aceleaşi operaţii ca şi la datele obişnuite. cu alte cuvinte. garantarea şi autorizarea accesului la date. să utilizeze diferite limbaje. a valorii cheii primare. Sistemul nu trebuie să facă diferenţe între descrierea datelor şi a metadatelor utilizând o singură structură. R5 – Facilităţi ale limbajelor utilizate Un sistem relaţional trebuie să facă posibilă utilizarea mai multor limbaje. Rezultă că SGBD-ul trebuie să-şi îndeplineacă toate funcţiile utilizând ca unitate de informaţie mulţimea. cât şi pentru operaţii de regăsire a acestora. precum şi a numelui de coloană. domeniilor. 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. aşa cum este şi SQL. 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. R2 – Garantarea accesului la date Accesarea tuturor informaţiilor bazei de date se va realiza prin specificarea numelui tabelei respective. precum şi prezentarea limitelor tranzacţiilor. Informaţiile referitoare la numele tabelelor. manevrarea datelor. al restricţiilor de integritate trebuie să fie memorate tot în tabelele de date. definirea tuturor restricţiilor de integritate. şi anume cea relaţională. R1 – Reprezentarea logică a datelor.

programele de aplicaţie să fie logic aceleaşi cu cele utilizate în cazul în care datele sunt fizic centralizate. aflate în zone geografice diferite. colecţii corelate logic. utilizatorul ar trebui să perceapă aceste date ca fiind centralizate şi nu aparţinând unor staţii diferite de lucru. R11 – Actualizarea tabelelor virtuale În cadrul abordării relaţionale. La o simplă analiză a definiţiei. nu toate atributele sunt actualizabile. Fundamente ale modelului relaţional Înainte de a prezenta principalele aspecte care caracterizează modelul relaţional. dar şi profesori de seama care au analizat această paradigmă. în această situaţie. colecţii organizate de date. pe parcursul capitolului. Atunci când luăm în discuţie abordarea relaţională a bazelor de date. 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. 2. După o îndelungă analiză şi sinteză a definiţiilor formulate de cercetătorii consacraţi ai domeniului. 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. vom argumenta definiţia prezentată anterior şi implicit cele două direcţii de studiu. O schimbare a structurii fizice a datelor nu trebuie să blocheze funcţionarea programelor de aplicaţie. putem afirma pe scurt că o bază de date relaţională reprezintă colecţii organizate de date şi corelate din punct de vedere logic.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. 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. vom analiza în principal trei direcţii: Baze de date aplicate în economie 45 . Practic. În acest context. 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. considerăm că este oportună definirea conceptului de bază de date relaţională. observăm că ea impune două direcţii de studiu: 1. plecând de la prezentarea aspectelor fundamentale care caracterizează modelul relaţional al bazelor de date. R10 – Distribuirea geografică a datelor În cazul în care datele sunt distribuite. ceea ce înseamnă că nu toate tabelele virtuale pot fi actualizate.

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

alegerea făcându-se în funcţie de opţiunea şi dorinţa proiectantului. În general. Pentru a exemplifica tipurile de chei. astfel încât nu pot exista două tupluri diferite care să aibă valori identice pe domeniul unei chei. Dintre cheile candidat identificate. • străină. î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). Cu alte cuvinte. primară. şi anume cnp şi nr_matr. acea cheie candidat care este formată din numărul minim de atribute. primul pas pe care îl facem este acela al identificării cheilor candidat. este bine să reţinem că fiecare relaţie are o singură cheie primară. Deşi pot exista mai multe chei candidat. vom alege ca şi cheie primară.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. atunci oricare din cheile candidat pot deveni cheie primară. În cazul în care am identificat mai multe chei candidat şi fiecare dintre ele au acelaşi număr de atribute. • alternantă (în funcţie de sursa citată. primele trei se analizează la nivelul unei singure relaţii. Cu siguranţă. acest atribut nu poate fi considerat cheie deoarece oricând pot exista doi studenţi cu acelaşi nume.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. În cadrul abordării relaţionale există patru tipuri de chei care pot fi identificate: • • candidat. În exemplul 4. Aşa cum aminteam anterior. abordate până acum doar la nivel teoretic. Acelaşi lucru putem afirma şi despre atributul pren. se alege una ca fiind cheia primară a relaţiei respective. trebuie să identificăm acele atribute sau grupuri de atribute pentru care nu pot exista valori duplicate. Atunci când analizăm o relaţie. că la întrebarea „Sunt atributele cnp şi Baze de date aplicate în economie 47 . 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. iniţial trebuie să identificăm cheile candidat ale relaţiei Student. vom folosi relaţia din exemplul 4. care în anumite situaţii poate fi formată chiar din toate atributele ei. 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. Exemplul 4. Dintre cele patru tipuri de chei. Totodată. întâlnim în litaratură şi termenul de cheie alternativă).3 am redat alte tupluri pentru relaţia Student şi în care se poate observa că avem valori duplicate pe domeniile analizate. restul cheilor candidat devenind chei alternante. Vom începe cu atributul nume: în mod cert. pentru a identifica în mod clar toate cheile).1.

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

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

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

această constrângere este numită restricţie referenţială).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. În acelaşi mod. Practic. fiecare dintre cele două relaţii poate fi atât relaţie fiu. unde va îndeplini rolul de cheie străină. Exemplul 4. Pentru a realiza legătura dintre relaţiile asociate. tipul de legătură dintre cele două este 1-1. Conform definiţiei enunţate. Baze de date aplicate în economie 51 . Astfel. nu poate avea decât o singură legitimaţie care să-i permită accesul în supermarket. ceea ce înseamnă că unui tuplu din relaţia Client nu-i poate corespunde decât un singur tuplu în relaţia Legitimaţie. cât şi relaţie părinte. 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. deoarece ambele relaţii sunt fiu. Definiţie. va trebui să identificăm mai întâi tipul relaţiilor (fiu sau părinte). la un moment dat. Cu alte cuvinte. fie valoarea NULL (în literatura de specialitate.Abordarea relaţională a bazelor de date Legătura binară 1-1 (unu la unu) Definiţie. Analizând în acelaşi mod. Definiţie. este evident că o legitimaţie nu poate corespunde mai multor clienţi. În cadrul unei asocieri binare. Popa Dan nu poate avea decât o singură legitimaţie. Definiţie. cheia străină este cea care permite crearea legăturilor logice dintre relaţii. 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. pe baza definiţiilor prezentate anterior. observăm că ambele relaţii sunt fiu deoarece fiecare client.9. sub forma cheii străine în relaţiile corespunzătoare. pentru exemplul 4.10. 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. 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ă. atributul cnp va migra din relaţia Client (unde este cheie primară) în relaţia Legitimaţie. Astfel. atributul nr_leg va migra din relaţia Legitimaţie în relaţia Client. iar modelul va arăta ca în exemplul 4. legătura dintre ele se realizează prin migrarea cheilor primare din fiecare relaţie. Obs. Atunci când asociem două relaţii fiu.

a. legătura dintre ele se realizează prin migrarea cheii primare din relaţia părinte.Abordarea relaţională a bazelor de date Exemplul 4. vom pleca de la relaţiile Student şi Specializare din exemplul 4. Identificarea tipului pentru relaţia Student: întrebarea la care trebuie să răspundem este: „Un student la câte specializări poate fi?”. în timp ce alţii consideră că un student nu poate fi decât la o singură specializare. sub forma cheii străine în relaţiile fiu. şi de această dată vom pleca de la identificarea tipurilor de relaţii. Exemplul 4. Ca şi în cazul primului tip de legătură. La această întrebare. o parte din cititori ar putea spune că un student poate fi la una sau mai multe specializări. dintre care una este relaţie fiu. sau plecând de la numărul legitimaţiei.8. Legătura binară 1-n (unu la mai mulţi) Definiţie. astfel încât să putem spune despre un client ce număr de legitimaţie are. Pentru exemplificare. putem spune că am realizat legătura între relaţiile asociate. Atunci când asociem două relaţii.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.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. răspunzând pe rând la întrebarea: „Unui tuplu din relaţia X câte tupluri în relaţia Y îi pot corespunde”. care are asociată o anumită matricolă. unde X şi Y sunt cele două relaţii pe care le asociem. nu 52 Baze de date aplicate în economie . iar cealaltă este părinte. va trebui să realizăm legătura dintre cele două relaţii. să putem identifica fără ambiguitate care este deţinătorul acesteia. Răspunsul corect este cel de-al doilea deoarece un student.

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

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

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. legătura dintre ele se realizează prin definirea unei noi relaţii.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. facult şi cod_spec. Practic.16. aşa cum se observă în exemplul 4. vom asocia cele trei relaţii cu scopul de a putea preciza cu claritate facultatea şi specializarea la care este înmatriculat fiecare student. prin intermediul comenzilor de Baze de date aplicate în economie 55 . este un caz particular al legăturii binare mai mulţi la mai mulţi. utilizatorul va putea. În acest fel.8. fără însă să mai necesite în prealabil identificarea tipului fiecărei relaţii. Revenind la exemplul 4. la specializarea FB. Exemplul 4. putem spune despre Preda Marin că este student la facultatea de Ştiinţe Economice.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. forma de învăţământ IFR. se va genera o nouă relaţie care se va identifica prin intermediul atributelor nr_matr. împreună cu alte atribute care reies din contextul problemei modelate.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. care va avea cheia primară formată din cheile primare ale tuturor relaţiilor. Exemplul 4. 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.

Abordarea relaţională a bazelor de date interogare specifice SGBD-ului utilizat. Georgescu.54]. considerate o singură dată. 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. să acceseze şi să utilizeze în acelaşi timp toate datele gestionate în baza de date. Reuniunea a două relaţii A şi B20. şi anume: reuniunea. Reuniunea. 56 Baze de date aplicate în economie . 2005. primele trei presupun existenţa a două relaţii în timp ce următoarele se aplică pentru o singură relaţie. p. Cererile specifice algebrei relaţionale se pot exprima prin cinci operaţii asupra relaţiilor. În funcţie de aritatea operatorului. este o relaţie care va avea schema identică cu a relaţiilor reunite şi care va include ca tupluri. notată A ∪ B . Codd.F.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. produsul cartezian. Algebra relaţională – operatorii relaţionali Algebra relaţională se referă la diferiţi operatori care au ca operanzi relaţiile. toate tuplurile celor două relaţii. 1.93]. În prezentarea operaţiilor. întâlnite în literatură sub numele de operaţii de bază. rezultatul aplicării acestuia la una sau la două relaţii va fi tot o relaţie. Aceste operaţii specifice algebrei relaţionale sunt folosite pentru formalizarea limbajului de cereri al sistemului de gestiune al bazelor de date relaţionale. 2001. Exemplul 4. fiind concepută de cercetătorul E. proiecţia şi selecţia. diferenţa. p. Dintre aceste cinci operaţii. 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.

Fie relaţiile A (cu aritatea a) şi B (cu aritatea b)22. Diferenţa. Baze de date aplicate în economie 57 . aritatea va fi 6 (relaţia rezultată în urma operaţiei Student × Disciplină va avea şase atribute). ceea ce înseamnă că după realizarea produsului cartezian asupra celor două relaţii. Produsul cartezian. Trebuie menţionat faptul că atunci când schemele celor două relaţii includ şi atribute comune. Produsul cartezian al celor două relaţii. 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. 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. Schemele relaţiilor A şi B sunt diferite. aritatea ambelor relaţii este 3. dar pot exista atribute comune.Abordarea relaţională a bazelor de date 2. dacă realizăm diferenţa relaţiilor Stud1 şi Stud2 din exemplul 4. atunci în schema produsului cartezian. cele două atribute vor apare de două ori.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ă. rezultatul este următorul: Stud1 \ Stud2 = ( nr_matr nume pren ) 111 Preda Marin 222 Darie Alina 3. notată A \ B . Exemplul 4. însă cu nume diferite (o relaţie nu poate avea două atribute cu acelaşi nume). Diferenţa a două relaţii A şi B21.17. 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. Astfel.

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

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

nr_fact – reprezintă numărul facturii. în relaţia Comandă avem o evidenţă a produselor comandate.Abordarea relaţională a bazelor de date Exemplul 4.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. Pentru a realiza uniunea celor două relaţii. 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 . • cant_a – se referă la cantitatea aferentă unui produs care se găseşte pe o factură. 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. cod_prod – codul produsului achiziţionat prin intermediul unei facturi. • cod_cmd – codul unei comenzi (se presupune că două comenzi diferite vor avea coduri diferite). iar semantica atributelor este următoarea: • • • s_fact – reprezintă seria unei facturi. vom face selecţia tuplurilor pe baza condiţiei cant_a <= cant_c. • cant_c – reprezintă cantitatea comandată prin intermediul unei comenzi. aminteam anterior că primul pas care trebuie făcut este realizarea produsului cartezian.

23: Echiuniunea relaţiilor Aprov şi Comandă. ceea ce înseamnă că uniunea naturală se va face pe baza condiţiei Student.nr_matr = Disc. Uniunea naturală a relaţiilor A şi B. 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. aşa cum se observă în exemplul 4. Se realizează produsul cartezian al celor două relaţii: Student X Disc = ( s. Uniunea naturală.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. La acest pas va trebui să determinăm condiţia după care se va realiza selecţia. ea se va aplica asupra produsului cartezian realizat la punctul a: Baze de date aplicate în economie 61 . Schema relaţiei va fi dată de reuniunea atributelor celor două relaţii (ceea ce înseamnă că atributele comune vor apare o singură dată).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.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.nr_matr. 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. notată | A X B | se poate realiza numai în cazul în care cele două relaţii au un set de atribute comune. atributul comun celor două relaţii este nr_matr. Exemplul 4. atunci vom avea o echiuniune a celor două relaţii. Astfel. După identificarea condiţiei.Abordarea relaţională a bazelor de date În cazul în care condiţia este cant_a=cant_c. Aşa cum observăm.23: Exemplul 4.

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

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

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

Conform regulii menţionate.2008 JW 1111 6500 11. 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. Baze de date aplicate în economie 65 .Abordarea relaţională a bazelor de date b) După identificarea atributelor. A doua cerinţă este cea prin care ni se cere să punem în evidenţă conţinutul fiecărei facturi. vom asocia relaţiile Factură şi Produs. Astfel. Aşa cum am menţionat în subcapitolul în care am descris legăturile dintre relaţii. De asemenea. vom avea următoarele relaţii (pentru fiecare relaţie. vom asocia relaţiile Societate şi Factură. 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ă. pentru a identifica tipul legăturii va trebui să vedem rolul fiecărei relaţii în cadrul modelului: fiu sau părinte. 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.11. Aşa cum am procedat anterior. Analizând cele două relaţii.11.2008 c) La acest pas va trebui să soluţionăm două cerinţe. Astfel. Pentru aceasta. Prima se referă la punerea în evidenţă a emitentului fiecărei facturi.11. În acest caz. 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. Astfel. în timp ce un produs poate fi aprovizionat prin intermediul uneia sau a mai multor facturi. legătura este de tipul 1-n (unu la mai mulţi). observăm că Societate este relaţie părinte deoarece fiecare societate poate primi una sau mai multe facturi. î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). ş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. 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ă. va trebui să definim relaţiile din cadrul cărora ele vor face parte.

2008 R222222 cod_prod cant_aprov ) Conţinut_factură ( serie nr DX 1111 11 10 DX 1111 33 15 JW 1111 11 20 Astfel.11. respectiv 20 unităţi.11. vom identifica în cadrul relaţiei Factură care este tuplul care are ca realizare a atributelor serie şi nr valorile DX (pentru serie). ceea ce argumentează legătura de tipul mai mulţi la mai mulţi. vom merge în relaţia Societate şi pe domeniul cheii primare vom căuta acel tuplu pentru care valoarea atributului cui este R333333.11. dacă dorim să aflăm cine a emis factura DX 2222. Astfel. Totodată. în cadrul relaţiei Factură se argumentează şi regula entităţii. putem observa că în cazul în care unul din cele două atribute care formează cheia primară nu are valoare. R333333) şi vom căuta această valoare pe domeniul de valori aferent atributului care este cheie primară în relaţia din care a migrat. De asemenea. atunci există posibilitatea ca pe 66 Baze de date aplicate în economie . 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. Pentru exemplul nostru. prin intermediul acestei noi relaţii am pus în evidenţă faptul că o factură poate conţine mai multe produse (factura cu seria şi numărul DX 1111 conţine produsele cu codurile 11 şi 33). dar şi faptul că un produs se poate găsi pe mai multe facturi (produsul cu codul 11 se găseşte atât pe factura cu seria şi numărul DX 1111 cât şi pe JW 1111). În acest fel constatăm că produsul Telefon Nokia este achiziţionat prin intermediul a două facturi (DX 1111 şi JW 1111). vom prelua valoarea cheii străine (în cazul nostru. 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.2008 R333333 JW 1111 6500 11. Apoi. iar cantitatea aprovizionată este de 10. Spre exemplu. Conţinutul fiecărei facturi este evidenţiat prin intermediul relaţiei Conţinut_factură. după identificarea tuplului.2008 R222222 DX 2222 8500 10. 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ă).

în funcţie de specializare. şi aici vom presupune că două discipline diferite au coduri diferite. vom presupune că nu există două facultăţi care să aibă acelaşi cod. va trebui să identificăm atribute despre student. deoarece. Să se pună în evidenţă specializarea de care aparţine fiecare student. atunci vom ajunge în situaţia în care avem două valori duplicate pe domeniul respectiv de valori. Astfel. 2. Fie descrierea studenţilor unei facultăţi care studiază diferite discipline în funcţie de specializarea fiecăruia.Abordarea relaţională a bazelor de date domeniul de valori respectiv să avem valori duplicate. Spre exemplu. • den_spec – denumirea specializării. Deşi poate am fi tentaţi să credem că am avea nevoie şi de atribute despre facultate. Deci. trebuie să nu omitem să dăm valori tuturor atributelor care formează cheia primară a unei relaţii. • cod_disc – codul disciplinei. specializare şi disciplină. a) Pentru problema menţionată anterior. indiferent de forma disciplinei (curs. nu este aşa. ceea ce nu ar fi permis. am putea identifica următoarele atribute: • • • nr_matr – numărul matricol al studentului. precum şi disciplinele studiate de aceştia. 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 . aceasta ar avea un singur tuplu şi nu se justifică generarea unei relaţii care să aibă o singură realizare. dacă vom da valori numai atributului serie. pentru problema dată. seminar. tip_disc – tipul unei discipline. • 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. laborator sau proiect). în cazul în care am avea relaţia facultate. o disciplină poate fi studiată în semestre diferite de studenţii acesteia. • • den_disc – denumirea disciplinei studiate. pren – prenumele unui student. ca şi în cazul codului specializării. nume – numele studentului. • semestru – semestrul în care este studiată o disciplină.

Aşa cum ştim deja. Dacă dorim să determinăm disciplinele studiate de fiecare student. legătura dintre cele două relaţii este de tipul unu-la-mai-mulţi. după crearea legăturilor.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. Cele două relaţii sunt părinte deoarece un student studiază una sau mai multe discipline. fiecare specializare va avea mai mulţi studenţi. în această situaţie se va genera o nouă relaţie. vom asocia relaţiile Student şi Disciplină. ceea ce înseamnă că va migra cheia primară din relaţia Specializare sub forma cheii străine în relaţia Student. ceea ce înseamnă că vom avea o legătură mai-mulţi-la-mai-mulţi. 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 . Relaţia Student este o relaţie fiu deoarece un student cu o anumită matricolă nu poate fi înmatriculat la mai multe specializări. prin intermediul atributului cod_spec din relaţia Student putem să aflăm la ce specializare este înmatriculat fiecare student. 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. Astfel. în mod evident. vom asocia relaţiile Student şi Specializare. în timp ce relaţia Specializare este una părinte întrucât. Astfel. Astfel.

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

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

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

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

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

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