capitolul 1 introducere – concepte de baz privind ...webbut.unitbv.ro/carti...

33
Cap.1 Introducere - Concepte de bază privind sistemele de baze de date 1 CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZĂ PRIVIND SISTEMELE DE BAZE DE DATE Sistemele de baze de date sunt o componentă esenţială a vieţii de zi cu zi în societatea modernă. În cursul unei zile, majoritatea persoanelor desfăşoară activităţi care implică interacţiunea cu o bază de date: depunerea sau extragerea unor sume de bani din bancă, rezervarea biletelor de tren sau avion, căutarea unei referinţe într-o bibliotecă computerizată, cumpărarea unor produse etc. Bazele de date pot avea dimensiuni (număr de înregistrări) extrem de variate, de la câteva zeci de înregistrări (de exemplu, baza de date pentru o agendă cu numere de telefon) sau pot ajunge la zeci de milioane de înregistrări (de exemplu, baza de date pentru plata taxelor şi a impozitelor). Utilizatorii unei baze de date au posibilitatea să efectueze mai multe categorii de operaţii asupra datelor memorate: • introducerea de noi date (insert); ştergerea unora din datele existente (delete); • actualizarea datelor memorate (update); • interogarea bazei de date (query) pentru a regăsi anumite informaţii, selectate după un criteriu ales. În sensul cel mai larg, o bază de date (database) este o colecţie de date corelate din punct de vedere logic, care reflectă un anumit aspect al lumii reale şi este destinată unui anumit grup de utilizatori. În acest sens, bazele de date pot fi create şi menţinute manual (de exemplu, fişele de evidenţă a cărţilor dintr-o bibliotecă, aşa cum erau folosite cu ani în urmă) sau computerizat, aşa cum este majoritatea bazelor de date folosite în momentul de faţă. O definiţie într-un sens mai restrâns a unei baze de date este următoarea:

Upload: others

Post on 18-Oct-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

1

CCAAPPIITTOOLLUULL 11

IINNTTRROODDUUCCEERREE –– CCOONNCCEEPPTTEE DDEE BBAAZZĂĂ PPRRIIVVIINNDD

SSIISSTTEEMMEELLEE DDEE BBAAZZEE DDEE DDAATTEE

Sistemele de baze de date sunt o componentă esenţială a vieţii de zi cu zi în societatea modernă. În cursul unei zile, majoritatea persoanelor desfăşoară activităţi care implică interacţiunea cu o bază de date: depunerea sau extragerea unor sume de bani din bancă, rezervarea biletelor de tren sau avion, căutarea unei referinţe într-o bibliotecă computerizată, cumpărarea unor produse etc.

Bazele de date pot avea dimensiuni (număr de înregistrări) extrem de variate, de la câteva zeci de înregistrări (de exemplu, baza de date pentru o agendă cu numere de telefon) sau pot ajunge la zeci de milioane de înregistrări (de exemplu, baza de date pentru plata taxelor şi a impozitelor).

Utilizatorii unei baze de date au posibilitatea să efectueze mai multe categorii de operaţii asupra datelor memorate:

• introducerea de noi date (insert); • ştergerea unora din datele existente (delete); • actualizarea datelor memorate (update); • interogarea bazei de date (query) pentru a regăsi anumite

informaţii, selectate după un criteriu ales. În sensul cel mai larg, o bază de date (database) este o

colecţie de date corelate din punct de vedere logic, care reflectă un anumit aspect al lumii reale şi este destinată unui anumit grup de utilizatori. În acest sens, bazele de date pot fi create şi menţinute manual (de exemplu, fişele de evidenţă a cărţilor dintr-o bibliotecă, aşa cum erau folosite cu ani în urmă) sau computerizat, aşa cum este majoritatea bazelor de date folosite în momentul de faţă. O definiţie într-un sens mai restrâns a unei baze de date este următoarea:

Page 2: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

2

O bază de date (database) este o colecţie de date creată şi

menţinută computerizat, care permite operaţii de introducere,

ştergere, actualizare şi interogare a datelor.

Simple colecţii de fişe (documente pe hârtie) sau fişiere de date, care conţin înregistrări de date, dar nu permit operaţii de interogare, nu sunt considerate baze de date. De exempu, datele memorate în fişiere pe disc de un instrument de calcul tabelar (Microsoft Excel) sau documentele memorate de un editor de text (Microsoft Word) nu sunt considerate baze de date.

1.1. Componentele unui sistem de baze de date

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

sistem computerizat de menţinere a evidenţei unei anumite

activităţi, folosind baze de date. Componentele unui sistem de

baze de date sunt: hardware, software, utilizatori, date

persistente.

Hardware. Sistemele de baze de date sunt instalate, de regulă, pe calculatoare de uz general, de la calculatoare PC standard, până la staţii multiprocesor puternice. Bineînţeles, performanţele generale de operare ale calculatorului (numărul şi viteza procesoarelor, dimensiunea şi viteza de operare a memoriei principale etc.) influenţează în mod corespunzător performanţele sistemului de baze de date. Dar, ceea ce interesează în mod deosebit în utilizarea unui calculator pentru un sistem de baze de date, este volumul (capacitatea) memoriei secundare, utilizată pentru memorarea colecţiei de date persistente ale bazei de date.

Deoarece într-un sistem de baze de date este necesar accesul rapid la oricare din înregistrările de date, pentru memorarea acestora se folosesc discurile magnetice (hard-discuri). Benzile magnetice (care oferă acces secvenţial la înregistrările de date) sunt utilizate numai pentru duplicarea (back-up) şi salvarea/restaurarea datelor.

Page 3: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

3

Software. Între baza de date (colecţia de date memorate fizic în fişiere pe hard-discuri) şi utilizatorii sistemului există un nivel software, numit Sistem de Gestiune a Bazei de Date (SGBD) - (Database Management System -DBMS) - (fig. 1.1).

Fig. 1.1. Componente ale unui sistem de baze de date.

Sistemul de gestiune a bazei de date - SGBD - (Database

Management System - DBMS) recepţionează cererile

utilizatorilor de acces la baza de date (pentru operaţii de

introducere, ştergere, modificare sau interogare), le

interpretează, execută operaţiile corespunzătoare şi returnează

rezultatul către utilizatori.

Sistemul SGBD oferă utilizatorilor o viziune (vedere - view) a bazei de date la un nivel înalt şi îi eliberează de necesitatea de a cunoaşte organizarea particulară a sistemului (driverele de disc, structura înregistrărilor de date etc.).

Mai mult, sistemul de gestiune asigură protecţia datelor faţă de accese neautorizate sau defecte de funcţionare, asigurând integritatea bazei de date.

Pe lângă SGBD, care este cea mai importantă componentă software a unui sistem de baze de date, mai există şi alte componente: sistemul de operare, care asigură controlul execuţiei programelor, biblioteci şi instrumente software (toolset-uri) pentru proiectarea, dezvoltarea sau exploatarea sistemelor de baze de date şi a aplicaţiilor de baze de date.

O aplicaţie de baze de date (Database Application) este un

program care oferă o anumită utilizare a unei baze de date.

Page 4: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

4

De exemplu, programul care permite menţinerea şi urmărirea activităţii angajaţilor unei întreprinderi (încadrare, calificare, salarizare etc.), folosind informaţiile despre angajaţi memorate într-o bază de date, reprezintă o aplicaţie de baze de

date. Utilizatorii unui sistem de baze de date se pot împărţi în

câteva categorii: programatorii de aplicaţii, utilizatorii finali şi administratorul bazei de date.

Programatorii de aplicaţii sunt cei care scriu (dezvoltă) aplicaţiile de baze de date, folosind limbaje de programare de nivel înalt (Cobol, PL/1, Fortran, C, C++, Java, Basic) şi biblioteci care permit încorporarea operaţiilor de acces la baza de date. Aplicaţiile rezultate pot fi aplicaţii cu execuţie independentă (batch-processing) sau pot fi aplicaţii interactive (on-line) folosite de utilizatorii finali ai sistemului pentru a accesa (într-un mod mai eficient şi mai sigur) baza de date.

Utilizatorii finali sunt acei utilizatori care accesează baza de date prin intermediul unui program de aplicaţie care le conferă drepturi limitate de acces la date pentru anumite operaţii de prelucrare. Utilizatorii finali sunt persoane cu pregătire tehnică minimală, care efectuează un volum mare de operaţii asupra bazei de date, dar nu trebuie să cunoască mai mult decât posibilităţile oferite de programul pe care îl utilizează. De exemplu, utilizatorii finali ai unui sistem de rezervare a bietelor de avion sunt agenţii de vânzări, care folosesc programul adecvat (scris de programatorii de aplicaţii), fără a fi necesar să cunoască întreaga structură a bazei de date.

Administratorul bazei de date (Database Administrator) este o persoană (sau un grup de persoane) cu înaltă calificare

tehnică care are ca sarcină menţinerea funcţionalităţii bazei de

date prin stabilirea drepturilor de acces ale diferitelor

categorii de utilizatori, prin efectuarea operaţiilor periodice de

Page 5: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

5

salvare a datelor (backup), prin monitorizarea performanţelor

sistemului şi refacerea datelor atunci când este necesar.

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

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

Orice SGBD suportă două categorii de limbaje conceptuale: limbaje de descriere a datelor şi limbaje de manipulare a datelor.

Limbajele de descriere a datelor - LDD - (Data

Description Languages - DDL) permit definirea conceptuală a

datelor, fără referire la modul de memorare fizică a acestora.

Limbajele de manipulare a datelor - LMD - (Data

Manipulation Languages - DML) permit specificarea

Page 6: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

6

operaţiilor de introducere, actualizare, ştergere şi interogare a

datelor.

1.2. Arhitectura internă a sistemelor de baze de date

Arhitectura internă a unui sistem de baze de date propusă prin standardul ANSI/X3/SPARC (1975) conţine trei niveluri funcţionale: nivelul extern, nivelul conceptual şi nivelul intern (fig. 1.2). Nivelul extern este o colecţie de scheme externe, care sunt vederi ale diferitelor grupuri de utilizatori, existând câte o vedere individuală a datelor pentru fiecare grup; nivelul conceptual conţine schema conceptuală (logică) a bazei de date, iar nivelul intern conţine schema internă (fizică) a bazei de date.

Fig. 1.2. Arhitectura internă a unui sistem de baze de date.

O schemă externă (vedere utilizator), (external schema,

user’s view), conţine o subschemă conceptuală a bazei de date,

mai precis, descrierea datelor care sunt folosite de acel grup

de utilizatori.

Schema conceptuală a bazei de date (conceptual schema), corespunde unei reprezentări unice (pentru toţi utilizatorii) şi

Page 7: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

7

abstracte a datelor, descriind ce date sunt stocate în baza de

date şi care sunt asocierile dintre acestea.

Schema internă (fizică) a bazei de date (internal schema), specifică modul de reprezentare a datelor pe suportul fizic.

Un sistem de baze de date suportă o schemă internă, o schemă conceptuală şi mai multe scheme externe. Toate aceste scheme sunt descrieri diferite ale aceleiaşi colecţii de date, care există doar în nivelul intern.

Toate aceste reprezentări ale datelor sunt gestionate de către SGBD care asigură, de asemenea şi cele două corespondenţe (mappings): între schemele externe şi schema conceptuală şi între schema conceptuală şi schema internă.

Unele sisteme SGBD nu separă complet cele trei niveluri funcţionale ale bazelor de date, existând posibilitatea de a specifica detalii ale schemei interne sau ale schemelor externe în cadrul schemei conceptuale.

1.3. Avantajele oferite de sistemele de baze de date

Faţă de vechile metode de înregistrare a datelor privind diferite activităţi pe fişe (documente scrise) sau chiar în fişiere pe disc, sistemele de baze de date oferă avantaje considerabile, ceea ce explică utilizarea extinsă a acestora. Câteva dintre avantajele oferite sunt prezentate în continuare.

• Compactitate ridicată: volumul ocupat de sistemele de baze de date este mult mai redus decât volumul ocupat de documente scrise sau de fişierele necorelate.

• Viteză mare de regăsire şi actualizare a informaţiilor. • Redundanţă scăzută a datelor memorate, care se obţine

prin partajarea datelor între mai mulţi utilizatori şi aplicaţii. În stocarea pe fişe sau în fişiere a datelor, fiecare aplicaţie conţinea propriile seturi de date. În sistemele de baze de date, mai multe aplicaţii pot folosi date comune, memorate o singură dată. De exemplu, o aplicaţie de personal şi o aplicaţie de rezultate la examene dintr-o universitate care exploatează o

Page 8: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

8

singură bază de date, pot folosi aceleaşi informaţii referitoare la structurarea facultăţilor şi a secţiilor.

• Posibilitatea de introducere a standardelor privind modul de stocare a datelor, ceea ce permite interschimbul informaţiilor între diferite organizaţii.

• Menţinerea integrităţii datelor prin politica de securitate (drepturi de acces diferenţiate în funcţie de rolul utilizatorilor), prin gestionarea tranzacţiilor şi prin refacerea datelor în caz de funcţionare defectuoasă a diferitelor componente hardware sau software.

• Independenţa datelor faţă de suportul hardware utilizat. Sistemele de gestiune a bazelor de date oferă o vedere (view) externă a datelor, care nu se modifică atunci când se schimbă suportul de memorare fizic, ceea ce asigură imunitatea structurii bazei de date şi a aplicaţiilor la modificări ale sistemului hardware utilizat.

1.4. Clasificarea sistemelor de baze de date

Se pot lua în consideraţie mai multe criterii de clasificare ale sistemelor de baze de date.

Clasificarea după modelul de date. Majoritatea sistemelor de baze de date actuale sunt realizate în modelul de date relaţional sau în modelul de date obiect. Dezvoltarea continuă a acestor modele a condus către o nouă categorie de baze de date, numite obiect-relaţionale, care combină caracteristicile modelului relaţional cu cele ale modelului obiect. De asemenea, mai sunt încă în funcţiune baze de date în modele mai vechi (modelul ierarhic sau modelul reţea). Modelele de date utilizate de sistemele SGBD vor fi prezentate în secţiunea următoare.

Clasificarea după numărul de utilizatori. Majoritatea sistemelor de baze de date sunt sisteme multiutilizator, adică permit accesul concurent (în acelaşi timp) a mai multor utilizatori la aceeaşi bază de date. Un număr redus de sisteme

Page 9: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

9

de baze de date sunt de tip monoutilizator, adică suportă accesul la un moment dat, doar al unui singur utilizator.

Clasificarea după numărul de staţii pe care este stocată baza de date. Există două categorii de sisteme de baze de date: centralizate şi distribuite.

Un sistem de baze de date centralizat (Centralized

Database System), este un sistem de baze de date în care datele

şi sistemul de gestiune sunt stocate pe o singură staţie

(calculator).

Un sistem centralizat poate suporta unul sau mai mulţi utilizatori, dar, în orice situaţie, datele şi sistemul de gestiune rezidă în întregime pe o singură staţie.

Un sistem de baze de date distribuit (Distributed Database

System) poate avea atât datele, cât şi sistemul de gestiune,

distribuite în mai multe staţii interconectate printr-o reţea de

comunicaţie.

Sistemele de baze de date pot fi reprezentate din punct de vedere al funcţionării lor printr-o arhitectură de tip client-

server.

Într-un sistem centralizat (fig. 1.3) există un singur server, care este chiar sistemul SGBD, care răspunde cererilor unui singur client (în sistemele mono-utilizator, fig. 1.3, a) sau mai multor clienţi (în sistemele multi-utilizator, fig. 1.3, b), care accesează baza de date respectivă. Clienţii sunt programe de aplicaţii oferite de furnizorul sistemului de gestiune sau dezvoltate de programatori.

Aplicaţiile client pot fi executate pe staţii diferite, conectate printr-o reţea de comunicaţie cu staţia pe care rulează serverul. Această arhitectură permite o prelucrare distribuită a datelor, mai mult chiar, o configurare a sistemului adaptată cerinţelor de calcul particulare. Astfel, serverul bazei de date poate fi un sistem puternic, echipat corespunzător (cu volum mare de memorie secundară), în timp ce fiecare client este o staţie personală, cu putere de calcul adecvată aplicaţiei executate.

Page 10: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

10

Fig. 1.3. Sisteme de baze de date centralizate: a- monoutilizator; b-

multiutilizator. Sistemele de baze de date distribuite pot fi reprezentate într-

un mod asemănător din perspectiva structurării client-server (fig. 1.4).

Fig. 1.4. Sistem de baze de date distribuit.

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

aparţin din punct de vedere logic aceluiaşi sistem, dar care pot să fie din punct de vedere fizic, memorate în mai multe staţii de calcul (locaţii - sites) conectate printr-o reţea de comunicaţie. Sistemul software care gestionează o astfel de bază de date se

Page 11: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

11

numeşte Sistem de Gestiune a Bazei de Date Distribuite - SGBDD - (Distributed Database Management System -

DDBMS). Aplicaţiile client rulează pe alte staţii din reţea şi solicită servicii de la sistemul de gestiune distribuit.

Există numeroase avantaje ale sistemelor de baze de date distribuite (creşterea capacităţii de stocare şi prelucrare a datelor, creşterea disponibilităţii şi a partajării datelor etc.), dar şi o creştere considerabilă a complexităţii acestora.

Cea mai importantă cerinţă pe care trebuie să o îndeplinească sistemele de gestiune a bazelor de date distribuite este de a asigura administrarea transparentă a datelor. Transparenţa se referă la capacitatea unui sistem distribuit de a ascunde detaliile de implementare, astfel încât utilizatorii să poată accesa datele pe baza unui model de nivel înalt, fără a fi necesară cunoaşterea exactă a modului de amplasare, replicare sau comunicare a datelor.

Sistemele de gestiune a bazelor de date distribuite comerciale nu oferă în momentul de faţă un nivel suficient de transparenţă a localizării datelor, dar dezvoltarea continuă a acestora va putea să asigure în viitor această cerinţă.

1.5. Modelarea datelor

Un model este o abstractizare a unui sistem, care captează cele mai importante trăsături caracteristice ale sistemului (concepte), relevante din punct de vedere al scopului pentru care se defineşte modelul respectiv. Tehnica de identificare a trăsăturilor caracteristice esenţiale ale unui sistem se numeşte abstractizare.

Un model de date stabileşte regulile de organizare şi interpretare a unei colecţii de date. În proiectarea bazelor de date se folosesc, de regulă, mai multe modele de date, care se pot clasifica în două categorii: modele conceptuale de nivel

înalt şi modele specializate.

Page 12: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

12

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

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

1.5.1. Modele conceptuale de nivel înalt

Cel mai utilizat model conceptual de nivel înalt este modelul Entitate-Asociere (E-A) care reprezintă schema conceptuală de nivel înalt a bazei de date prin mulţimi de entităţi şi asocieri dintre acestea. Dezvoltarea acestui model, astfel încât să permită extinderea tipurilor de entităţi, este cunosută sub numele de model Entitate-Asociere Extins (E-AE). Proiectarea modelului E-A sau al modelului E-AE este, de regulă, una din primele etape în proiectarea bazelor de date, etapă numită proiectarea schemei conceptuale.

1.5.1.1. Modelul Entitate-Asociere

Modelul Entitate-Asociere (Entity-Relationship Model),

introdus în 1976 de P.S. Chen (Chen76), este un model

conceptual de nivel înalt al unei baze de date, care defineşte

Page 13: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

13

mulţimile de entităţi şi asocierile dintre ele, dar nu impune nici

un mod specific de structurare şi prelucrare (gestiune) a

datelor.

Elementele esenţiale ale modelului Entitate-Asociere folosit în proiectarea bazelor de date sunt entităţile (entities) şi asocierile dintre acestea (relationships).

O entitate (entity), „orice poate fi identificat în mod

distinctiv"; o entitate se referă la un aspect al realităţii

obiective care poate fi deosebit de restul universului şi poate

reprezenta un obiect fizic, o activitate, un concept etc. Orice entitate este descrisă prin atributele sale.

Un atribut (attribute), este o proprietate care descrie un

anumit aspect al unei entităţi.

Atributele prin care este descrisă o entitate se aleg pe baza criteriului relevanţei relativ la domeniul de interes pentru care se defineşte modelul respectiv, astfel încât să asigure diferenţierea acelei entităţi faţă de restul universului.

Toate entităţile similare, care pot fi descrise prin aceleaşi atribute, aparţin unui acelaşi tip de entitate (entity type), iar colecţia tuturor entităţilor de acelaşi tip dintr-o bază de date constituie o mulţime de entităţi (entities set). În general, în modelul E-A se foloseşte aceeaşi denumire atât pentru un tip de

entitate cât şi pentru mulţimea entităţilor de acel tip. De exemplu, tipul de entitate „angajat” (al unei instituţii)

reprezintă orice persoană angajată a instituţiei, care are o anumită funcţie şi primeşte un anumit salariu. Acest tip de entitate poate fi descris prin mai multe atribute, dintre care o parte sunt atribute de identificare a persoanei (Nume, Prenume, DataNaşterii, Adresă), iar altele sunt atribute legate de activitatea acesteia în instituţia respectivă (Funcţie, Salariu).

Prin analogie cu modelul obiect, se poate spune că un tip de entitate corespunde unei clase, o entitate este o instanţă a unui tip de entitate şi corespunde unui obiect, iar mulţimea

Page 14: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

14

entităţilor de un tip dat corespunde mulţimii obiectelor (instanţelor) unei clase.

În proiectarea bazelor de date se consideră două categorii de entităţi: entităţi normale (puternice, obişnuite - regular

entities) şi entităţi slabe (dependente - weak entities). Entităţile normale au o existenţă proprie în cadrul

modelului, în timp ce entităţile slabe nu pot exista decât dacă există o entitate normală (puternică) cu care sunt asociate. De exemplu, o entitate „dependent” poate să reprezinte o persoană care depinde de un angajat al unei instituţii (adică se află în întreţinerea acestuia). O entitate „angajat” este o entitate puternică, deoarece ea există în mod normal în modelul activităţii instituţiei, în timp ce o entitate “dependent” este o entitate slabă: nu se va înregistra o astfel de persoană decât dacă părintele (susţinătorul) acesteia este angajat în acea instituţie.

În proiectarea bazelor de date se definesc asocieri între mulţimile de entităţi componente, pentru a reprezenta anumite aspecte ale realităţii pe care baza de date o modelează.

O asociere (relationship) este o corespondenţă între entităţi

din două sau mai multe mulţimi de entităţi. Gradul unei asocieri este dat de numărul de mulţimi de

entităţi asociate. Asocierile pot fi binare (de gradul 2, între 2 mulţimi de entităţi) sau multiple (între k mulţimi de entităţi, k>2).

Asocierile binare sunt, la rândul lor, de trei categorii, după numărul elementelor din fiecare dintre cele două mulţimi puse în corespondenţă de asocierea respectivă (fig. 1.5). Fiind date două mulţimi de entităţi, E

1 şi E

2, se definesc următoarele

categorii de asocieri binare: • Asocierea “unul-la-unul” (one-to-one) este asocierea prin

care unui element (entitate), din mulţimea E1

îi corespunde un

singur element din mulţimea E2 şi reciproc; se notează cu 1:1.

Page 15: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

15

• Asocierea „unul-la-multe” (one-to-many) este asocierea prin care unui element din mulţimea E

1 îi corespund unul sau

mai multe elemente din mulţimea E2, dar unui element din E

2 îi

corespunde un singur element în mulţimea E1; se notează cu

1:N. • Asocierea „multe-la-multe” (many-to-many) este

asocierea prin care unui element din mulţimea E1

îi corespund

unul sau mai multe elemente din mulţimea E2 şi reciproc; se

notează cu M:N. Cardinalitatea (multiplicitatea) unei asocieri faţă de o

mulţime de entităţi (cardinality, multiplicity), este numărul

maxim de elemente din acea mulţime care pot fi asociate cu un

element din altă mulţime a asocierii.

Fig. 1.5. Categorii de asocieri între două mulţimi de entităţi: a - asociere

1:1; b - asociere 1:N; c- asociere M:N. De exemplu, asocierea 1:N dintre mulţimile E

1 şi E

2

prezintă multiplicitatea 1 faţă de mulţimea E1 şi multiplicitatea

N (se înţelege o valoare oarecare N > 1) faţă de mulţimea E2.

Raportul dintre valorile cardinalităţilor unei asocieri binare faţă de cele două mulţimi de entităţi se numeşte raport de cardinalitate (cardinality ratio). Se poate observa că cele trei

Page 16: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

16

categorii de asocieri descrise mai sus diferă între ele prin raportul de cardinalitate.

Asocierile multiple (k-are, k > 2) prezintă câte un raport de cardinalitate pentru fiecare pereche de mulţimi de entităţi pe care le asociază.

O asociere între două sau mai multe mulţimi de entităţi este, în acelaşi timp, o asociere între tipurile de entităţi corespunzătoare.

Diagrama Entitate-Asociere (Entity-Relationship

Diagram), reprezintă modelul Entitate-Asociere prin mulţimile

de entităţi şi asocierile dintre acestea.

Există numeroase variante de notaţii pentru redarea diagramei E-A. Una dintre cele mai folosite notaţii reprezintă un tip de entitate (precum şi mulţimea de entităţi de acel tip) printr-un dreptunghi, iar atributele tipului de entitate prin elipse conectate printr-o linie continuă la acesta (fig. 1.6).

Fig. 1.6. Notaţiile diagramei Entitate-Asociere (E-A).

Pentru entităţile puternice se utilizează un dreptunghi

încadrat cu o linie simplă, iar pentru entităţile slabe se utilizează un dreptunghi încadrat cu linie dublă.

O asociere (tip de asociere) dintre două sau mai multe tipuri de entităţi se reprezintă printr-un romb conectat prin link-uri (linii continue, formate din unul sau mai multe segmente) la tipurile de entităţi asociate. O asociere poate să aibă sau nu un

Page 17: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

17

nume; dacă are un nume, acesta poate fi înscris în rombul respectiv sau în vecinătatea acestuia. Categoria asocierii se notează prin înscrierea multiplicităţii pe fiecare link care conduce la un tip de entitate. Este posibil ca o asociere să prezinte ea însăşi atribute şi aceste atribute se reprezintă prin elipse conectate la asocierea respectivă.

Exemplul 1.1. În continuare se exemplifică dezvoltarea modelului conceptual de nivel înalt al unei baze de date a unei instituţii şi diagrama E-A corespunzătoare, definind câteva tipuri de entităţi şi asocierile între acestea. Diagrama E-A a acestui mic model de bază de date este prezentată în fig. 1.7.

Fig. 1.7. Exemplu de diagramă E-A.

Tipul de entitate „secţie” reprezintă o unitate de organizare

a instituţiei şi este un tip de entitate puternică (de sine stătătoare). Acest tip se caracterizează prin mai multe atribute, de exemplu: un număr al secţiei, numele secţiei şi bugetul alocat. Mulţimea de entităţi care grupează toate entităţile de acest tip se poate denumi SECTIE sau SECTII (oricare variantă poate fi folosită) şi este caracterizată prin aceleaşi atribute care caracterizează tipul entităţii:

SECTIE(Numar,Nume,Buget)

Page 18: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

18

Tipul de entitate „angajat” reprezintă o persoană angajată în instituţie şi este de asemenea un tip de entitate puternică. Acest tip de entitate, ca şi mulţimea de entităţi care grupează toate entităţile de acest tip, se poate defini astfel: ANGAJAT(Nume, Prenume, DataNaşterii, Adresa, Funcţie, Salariu)

Tipul de entitate „proiect” reprezintă o activitate a instituţiei, este de asemenea un tip de entitate puternică, care poate fi caracterizat prin numele proiectului, data începerii, termen de realizare, bugetul proiectului:

PROIECT(Nume,DataInceperii,Termen,Buget)

Tipul de entitate „dependent” reprezintă o persoană care depinde de un angajat al instituţiei (adică se află în întreţinerea acestuia). Acest tip de entitate este un tip de entitate slabă: nu se va înregistra o astfel de persoană decât dacă întreţinătorul acesteia este angajat în acea instituţie. Acest tip se poate defini astfel:

DEPENDENT(Nume,Prenume,DataNasterii,Grad

Rudenie)

Asocierea SECTIE-ANGAJAT, este o asociere 1:N, dacă se consideră că o secţie cuprinde mai mulţi angajaţi, iar un angajat aparţine unei singure secţii.

Asocierea ANGAJAT-PROIECT, este o asociere M:N, dacă se consideră că la fiecare proiect lucrează mai mulţi angajaţi şi fiecare angajat poate lucra la mai multe proiecte.

Asocierea ANGAJAT-DEPENDENT, este o asociere de tipul 1:N, deoarece un angajat poate întreţine mai multe persoane (fii, părinţi etc.), iar o persoană dependentă este în întreţinerea unui singur susţinător.

Raportul de cardinalitate al unei asocieri este stabilit de proiectant astfel încât să reflecte cât mai corect modul de organizare a activităţii modelate. De exemplu, asocierea ANGAJATI-PROIECTE are raportul de cardinalitate M:N

dacă în instituţia respectivă se admite ca un angajat să lucreze

Page 19: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

19

la mai multe proiecte; dacă s-ar impune ca un angajat să lucreze la un singur proiect, atunci asocierea respectivă ar avea raportul de cardinalitate N:1. În ambele situaţii se admite că la un proiect lucrează mai mulţi angajaţi.

Sunt de remarcat câteva caracteristici generale ale modelului E-A:

a) Modul de stabilire a tipurilor de entităţi şi a asocierilor dintre acestea nu este unic, deoarece graniţa dintre entităţi şi asocieri nu este, în general, una bine precizată. Aceeaşi funcţionalitate se poate obţine printr-o varietate de diagrame E-A, depinzând de felul în care proiectantul dezvoltă modelul conceptual. O asociere poate fi considerată şi ca un tip de entitate. De exemplu, pentru baza de date a unei facultăţi (şcoli) se definesc tipurile (mulţimile) de entităţi:

STUDENTI(Nume,Prenume,Adresa,...)

DISCIPLINE(Denumire,Credite,...)

Între aceste mulţimi de entităţi se poate defini asocierea STUDENTI-DISCIPLINE, cu raportul de cardinalitate M:N. Această asociere reprezintă (în general) studierea unor discipline de către studenţi, cu atribute ca: Nota (examenului la disciplina respectivă), DataExamen etc. Dar, la fel de bine, este posibil să se definească tipul de entitate NOTE, aflat în asociere N:1 cu fiecare din tipurile de entităţi STUDENTI şi DISCIPLINE (fig. 1.8).

Fig. 1.8. Diferite moduri de definire a tipurilor de entităţi şi a asocierilor: a- asociere M:N între mulţimile de entităţi STUDENTI şi DISCIPLINE;

b - mulţimea de entităţi EXAMENE este asociată cu raportul de cardinalitate N:1 cu fiecare din mulţimile de entităţi STUDENTI şi DISCIPLINE.

Page 20: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

20

b) În modelul E-A, tipul de entitate (şi mulţimea de entităţi corespunzătoare) semnifică un substantiv, în timp ce o asociere semnifică un verb. Nu este obligatoriu ca numele dat unei asocieri să fie un verb (de cele mai multe ori, nici nu este), dar o asociere reprezintă o interacţiune între tipurile de entităţi (şi mulţimile de entităţi corespunzătoare), care poate fi exprimată printr-un verb. De exemplu, în diagrama E-A din fig. 1.7, asocierea SECTIE-ANGAJAT poate fi exprimată prin verbul cuprinde, asocierea ANGAJATI-DEPENDENTI poate fi exprimată prin verbul întreţine, asocierea ANGAJATI-

PROIECTE poate fi exprimată prin verbul lucrează etc. c) Modelul E-A nu precizează modul cum sunt realizate

asocierile între mulţimile de entităţi. Acest aspect depinde de modelul de date specializat utilizat pentru definirea bazei de date. De exemplu, în modelele ierarhic şi reţea, asocierile sunt realizate explicit, prin pointeri de la o entitate la entităţile asociate, în timp ce în modelul relaţional asocierea se realizează prin egalitatea valorilor unor atribute comune ale entităţilor (chei).

1.5.1.2. Modelul Entitate-Asociere Extins

Modelul Entitate-Asociere Extins (Enhanced Entity-

Relationship Model) permite definirea de subtipuri ale unui tip

de entităţi, care moştenesc atribute de la tipul de entitate pe

care il extind (care, în acest context, se numeşte supertip) şi au

în plus atribute specifice semnificaţiei lor. Prin definirea

tipurilor şi a subtipurilor de entităţi se pot crea ierarhii de

tipuri de entităţi pe mai multe niveluri.

Modelul E-A prezentat în capitolul precedent este suficient pentru modelarea aplicaţiilor de baze de date „tradiţionale”, adică bazele de date utilizate pentru activităţi financiare şi industriale, în care se folosesc tipuri de date simple. Odată cu dezvoltarea sistemelor de baze de date, domeniile în care acestea se folosesc au devenit tot mai numeroase, de exemplu:

Page 21: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

21

telecomunicaţiile, proiectarea tehnologică, sistemele de informaţii geografice, seviciul Web etc. Tipurile de entităţi definite în astfel de baze de date sunt mult mai complexe, iar pentru reprezentarea lor cât mai intuitivă şi mai compactă au fost propuse mai multe concepte noi, care au fost introduse în modelul E-A extins.

Modelul E-A extins se reprezintă printr-o diagramă E-A

extinsă. Ierarhiile de tipuri se pot crea prin specializare sau generalizare.

Specializarea (specialization), este un proces de

abstractizare a datelor prin care, pornind de la un tip de

entitate dat, se definesc unul sau mai multe subtipuri,

diferenţiate între ele în funcţie de rolul specific pe care îl au în

modelul de date.

De exemplu, pornind de la tipul de entitate ANGAJAT se definesc prin specializare subtipurile: SECRETARA, TEHNICIAN, INGINER, pentru a diferenţia funcţiile pe care angajaţii le pot avea în întreprinderea respectivă (Fig. 1.9). Litera “d” din marcajul de specializare a tipurilor indică o constrângere de disjuncţie impusă specializării, care va fi descrisă mai jos.

Subtipurile de entităţi moştenesc atribute ale tipului iniţial şi fiecare dintre ele are atribute suplimentare, specifice rolului lor. De exemplu, atributele: (Nume,Prenume,DataNasterii,Adresa,Salariu) ale tipului de entitate ANGAJAT sunt moştenite de fiecare din subtipurile acestuia. Atributul Functie nu este moştenit, deoarece specializarea subtipurilor s-a efectuat după acest atribut. Ca atribute specifice, subtipul SECRETARA are atributul VitezaRedactare, care este o măsură a calificării, subtipul TEHNICIAN are atributul Calificare, care reprezintă gradul de calificare, iar subtipul INGINER are

Page 22: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

22

atributul Specialitate, care este o precizare a domeniului în care lucrează (mecanic, electric etc.).

Generalizarea (generalization), este procesul de

abstractizare invers specializării, prin care se crează un

supertip de entitate pornind de la mai multe tipuri de entităţi.

Pentru definirea unei generalizări, se identifică atributele comune ale mai multor tipuri de entităţi, aceste atribute vor caracteriza supertipul de entitate, iar atributele care diferă de acestea rămân specifice fiecărui tip.

De exemplu, dacă au fost definite tipurile de entităţi: AUTOMOBIL(NrInregistrare,Marca,

VitezaMaxima,Pret,NumarPasageri)şiCAMION

(NrInregistrare,Marca,VitezaMaxima,Pret,

Tonaj), se poate defini un supertip al acestor tipuri: VEHICUL(NrInregistrare,Marca,VitezaMaxima,

Pret). Acest tip va cuprinde toate atributele comune, iar tipurile iniţiale, AUTOMOBIL şi CAMION, devin subtipuri ale tipului VEHICUL, fiecare conţinând atributele specifice (NumarPasageri pentru tipul AUTOMOBIL şi Tonaj pentru tipul CAMION).

Rezultatul obţinut prin generalizare este ca şi în cazul specializării, o ierarhie de tipuri de entităţi, ceea ce diferă este modul în care se definesc nivelurile ierarhiei.

Fig.1.9. Diagrama E-A extinsă cu ierarhie de tipuri de entităţi.

Page 23: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

23

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

Moştenirea dintre un subtip de entităţi şi supertipul acestuia se reprezintă în diagrama E-A extinsă printr-o legătură (link) între subtip şi supertipul de entitate corespunzător pe care este plasat un semicerc orientat către subtip (fig. 1.9).

Este evidentă asemănarea dintre ierarhiile de tipuri de entităţi din modelul E-A extins şi ierarhiile de clase din modelul obiect-orientat, dar modelul E-A extins este un model de date mult mai general (de nivel înalt), care poate fi transpus în diferite modele de date specializate, inclusiv modelul obiect-orientat. Aceste transpuneri se fac în funcţie de suportul oferit de modelul specializat respectiv pentru reprezentarea entităţilor, asocierilor, moştenirilor etc.

1.5.1.3. Modelul de date ierarhic

În modelul ierarhic (Hierarchical Model) o bază de date se

reprezintă printr-o structură ierarhică de înregistrări de date

(records) conectate prin legături (links). Modelul de date ierarhic a fost primul model folosit pentru

dezvoltarea bazelor de date. Cea mai cunoscută realizare de SGBD ierarhic este sistemul IMS (Information Management

System) dezvoltat de firma IBM în cadrul programului de cercetări Apollo, în perioada anilor 1960.

O înregistrare de date în modelul ierarhic este o instanţă a unui tip de înregistrare (record type) şi constă dintr-o colecţie de câmpuri (fields), fiecare câmp conţinând valoarea unui atribut. Un tip de înregistrare corespunde unui tip de entitate, iar o înregistrare corespunde unei entităţi din modelul E-A.

Un tip de legătură în modelul ierarhic este un tip de asociere cu raportul de cardinalitate 1:N (de tip părinte-fiu)

Page 24: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

24

între două tipuri de înregistrări. Tipul de înregistrare din partea cu multiplicitatea 1 a asocierii este numit tip de înregistrare părinte, iar tipul din partea cu multiplicitatea N a asocierii este numit tip de înregistrare fiu.

Schema conceptuală a unei baze de date în modelul ierarhic se reprezintă printr-un număr oarecare de scheme ierarhice (fig. 1.10). O schemă ierarhică este un arbore direcţionat, reprezentat pe mai multe niveluri, în care nodurile sunt tipurile de înregistrări, iar arcele sunt tipurile de legături. Fiecare nod (cu excepţia nodului rădăcină), are o singură legătură către un nod de pe un nivel superior (nodul părinte) şi fiecare nod (cu excepţia nodurilor frunză) are una sau mai multe legături către noduri de pe nivelul imediat inferior (noduri fii).

Se poate stabili o corespondenţă între o schemă conceptuală ierarhică şi o diagramă E-A: tipurile de înregistrări corespund tipurilor de entităţi, iar tipurile de legături corespund tipurilor de asocieri. (fig. 1.10, a şi b).

În modelul ierarhic nu sunt admise decât legături de tipul părinte-fiu, care corespund asocierilor 1:1 şi asocierilor 1:N din modelul E-A. Asocierile M:N din modelul E-A nu se pot reprezenta în mod direct în modelul ierarhic, ci numai prin multiplicarea înregistrărilor de tip fiu, atunci când sunt referite de mai multe înregistrări de tip părinte. Acest lucru conduce la o mare redundanţă a datelor.

Corespunzător schemei ierarhice a unei baze de date se pot reprezenta mai mulţi arbori de instanţiere a datelor, care sunt, de asemenea, arbori direcţionaţi (fig. 1.10, c). Fiecare arbore de instanţiere conţine ierarhii pe mai multe niveluri de înregistrări între care există legături de tipul părinte-fiu.

Page 25: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

25

Fig. 1.10. Bază de date ierarhică: a - diagrama E-A; b - schema conceptuală

a bazei de date ierarhice; c - arbori de instanţiere a datelor. Avantajele modelul ierarhic sunt simplitatea şi eficienţa de

calcul, dar în momentul de faţă, pentru realizarea bazelor de date sunt preferate modele de date mai puternice (modelul relaţional, modelul obiect-orientat).

1.5.1.4. Modelul de date reţea

Modelul reţea (Network Model) foloseşte o structură de

graf pentru definirea schemei conceptuale a bazei de date;

nodurile grafului sunt tipuri de entităţi (înregistrări - records),

iar muchiile grafului reprezintă în mod explicit asocierile

(legăturile-links) dintre tipurile de entităţi.

Apărut după modelul ierarhic, modelul reţea de reprezentare a bazelor de date a fost standardizat în 1971, de o comisie DBTG (Database Task Group). Modelul reţea a avut mai multe implementări ca sisteme de gestiune comerciale: IDS II (Honeywell), UNISYS (Burroughs), IDMS (Computer

Associates). Deosebirea faţă de modelul ierarhic constă în aceea că în

modelul reţea, asocierile M:N se reprezintă fără duplicarea înregistrărilor, fiecare înregistrare putând fi referită de mai multe înregistrări, ceea ce elimină redundanţa.

Page 26: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

26

La fel ca şi la modelul ierarhic, dezavantajul principal al modelului reţea este acela că fiecare interogare trebuie să fie prevăzută încă din faza de proiectare, prin memorarea explicită a legăturilor între tipurile de entităţi. În plus, complexitatea reprezentării datelor în modelul reţea este deosebit de ridicată, iar programatorii trebuie să o cunoască pentru a putea realiza aplicaţiile necesare.

În momentul de faţă modelul de date reţea este foarte rar utilizat pentru baze de date de uz general (care implică operaţii de interogare), dar există unele domenii în care structurarea ca graf a datelor permite o parcurgere eficientă a acestora. De exemplu, majoritatea bazelor de date grafice folosite în modelarea scenelor tridimensionale din realitatea virtuală sunt baze de date reţea, (Ion96a).

1.5.1.5. Modelul de date relaţional

Modelul relaţional (Relational Model) se bazează pe

noţiunea de relaţie (relation) din matematică, care corespunde

unei mulţimi de entităţi de acelaşi tip.

Modelul de date relaţional a fost propus de cercetătorul E.F. Codd de la compania IBM, care a publicat în anul 1970 lucrarea "Un model Relaţional de Date pentru Bănci Mari de Date Partajate", (Codd70). Alte lucrări ale lui Codd, ca şi ale altor cercetători (C.J. Date, P. Chen, R. Boyce, J.D. Ullman, R. Fagin, W.W. Armstrong, M. Stonebraker etc.) au perfecţionat modelul de date relaţional şi au permis dezvoltarea fără precedent a sistemelor de gestiune a bazelor de date, datorită simplităţii şi a fundamentării matematice a modelului.

Primul Sistem de Gestiune a Bazelor de Date Relaţionale (SGBDR) a fost prototipul System R, dezvoltat la compania IBM în anii 1970, după care numeroase companii au realizat sisteme de gestiune relaţionale (Oracle, Microsoft, Ingres, Sybase etc.) iar aplicaţiile de baze de date relaţionale au căpătat o amploare deosebită.

Page 27: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

27

Pe lângă avantajul unui model de date precis şi simplu, sistemele de baze de date relaţionale mai beneficiază şi de un limbaj de programare unanim recunoscut şi acceptat, limbajul SQL (Structured Query Language), pentru care au fost emise mai multe standarde de către ISO (International

Standardization Office). Majoritatea SGBD-urilor relaţionale actuale implementează versiunea SQL92 (sau SQL2).

1.5.1.6. Modelul de date obiect-orientat

Modelul obiect (Object Model) este un concept unificator

în ştiinţa calculatoarelor, fiind aplicabil în programare, în

proiectarea hardware-ului, a interfeţelor, a bazelor de date,

etc. Sistemele de baze de date obiect-orientate se bazează pe

limbaje de programare obiect-orientate cu capacităţi de

persistenţă, în care datele sunt independente de timpul de viaţă

al programelor care le creează, prin memorare pe suport

magnetic (disc).

Oricât de folositor este modelul de date relaţional pentru realizarea bazelor de date, există unele domenii (în special acele domenii în care se manevrează tipuri de date complexe), în care modelul relaţional s-a dovedit a fi insuficient de expresiv şi cu performanţe de execuţie reduse. Domenii ca: proiectarea asistată de calculator, sisteme de informaţii geografice, medicină etc., au impulsionat cercetări pentru găsirea unor modele mai performanţe, dintre care modelul obiect-orientat şi modelul obiect-relaţional au cunoscut şi cunosc în continuare o dezvoltare semnificativă.

Caracteristicile importante ale modelului obiect (abstractizarea, moştenirea, încapsularea, modularitatea) sunt intens dezbătute şi analizate mai ales din perspectiva proiectării şi programării obiect-orientate (Booch87), (Con00).

Din perspectiva realizării bazelor de date, o altă proprietate a modelul obiect, persistenţa, este cea care asigură memorarea

Page 28: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

28

transparentă pe suport magnetic a obiectelor care alcătuiesc o bază de date obiect-orientată.

Pentru dezvoltarea unui Sistem de Gestiune a Bazelor de Date Obiect-Orientate (SGBDOO) se poate aborda una din următoarele strategii:

• Extinderea unui limbaj de programare obiect-orientat cu capacităţi de administrare a obiectelor persistente. Sistemul GemStone este un astfel de SGBDOO, dezvoltat prin extinderea limbajelor C++ şi Java.

• Extinderea unui limbaj de programare relaţional cu capacităţi de orientare spre obiecte. Un astfel de limbaj este limbajul ODL (sau Object SQL – Object Query Language), specificat prin standardul propus de consorţiul Object

Database Management Group, din care fac parte principalii producători de sisteme de baze de date obiect-orientate. Există mai multe astfel de sisteme, cum sunt: Ontos, Versant, O

2.

• Dezvoltarea unui limbaj obiect-orientat pentru baze de date complet nou, care să asigure crearea şi interogarea obiectelor persistente. Există şi astfel de produse, de exemplu sistemul SIM (Semantic Information Manager).

Dintre avantajele cele mai importante ale sistemelor de baze de date dezvoltate în modelul obiect se evidenţiază capacitatea acestora de a defini şi manevra tipuri de date complexe (clase), care se pot extinde prin mecanismul de moştenire, ceea ce contribuie la creşterea performanţelor în aplicaţiile de baze de date avansate.

Există, bineînţeles şi dezavantaje ale sistemelor de baze de date obiect-orientate, care le fac să aibă o utilizare limitată, mult mai redusă decât cea a sistemelor de baze de date relaţionale (sub 5% din piaţa sistemelor de baze de date). Principalul dezavantaj îl constitue complexitatea de dezvoltare a bazei de date şi a aplicaţiilor, datorită faptului că proiectanţii şi programatorii trebuie să prevadă în structura obiectelor toate asocierile (legăturile), necesare tuturor interogărilor. Cu cât

Page 29: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

29

interogările sunt mai complexe, cu atât sunt necesare mai multe asocieri între obiecte şi deci se complică structura acestora. La acest dezavantaj se adaugă şi altele, cum ar fi lipsa unui standard de limbaj de interogare care să fie unanim (sau cât mai larg), acceptat.

1.5.1.7. Modelul de date obiect-relaţional

Modelul obiect-relaţional (Object-Relational Model) reprezintă extinderea modelului relaţional cu caracteristici ale

modelului obiect, extindere necesară pentru realizarea bazelor

de date care definesc şi prelucrează tipuri de date complexe.

În esenţă, modelul obiect-relaţional păstrează structurarea datelor în relaţii (reprezentate ca tabele), dar adaugă posibilitatea definirii unor noi tipuri de date, pentru domeniile de valori ale atributelor. Tipurile de date definite de utilizator pot fi extinse prin mecanismul de moştenire, iar pentru fiecare tip sau subtip se pot defini metode pe care le pot executa obiectele de acel tip.

În general, dezvoltarea sistemelor de gestiune a bazelor de date obiect-relaţionale (SGBDOR) se realizează prin extinderea sistemelor relaţionale, de cele mai multe ori în mod gradat, adăugându-se de la o versiune la alta cât mai multe caracteristici posibile ale modelului obiect şi păstrând în continuare toate caracteristicile modelului relaţional.

O astfel de abordare asigură rularea în continuare a aplicaţiilor relaţionale existente în noile versiuni de sisteme SGBDOR, ceea ce permite producătorilor să-şi păstreze clienţii şi domeniile de utilizare. Mai mulţi dintre principalii producători de sisteme de gestiune (Oracle, Informix şi IBM) au extins în acest mod sistemele lor relaţionale pentru a deveni sisteme obiect-relaţionale. Este o tendinţă firească, dat fiind că prin aceasta se păstrează toată experienţa şi rezultatele obţinute cu sistemele relaţionale şi se pot dezvolta şi aplicaţii complexe, obiect-relaţionale.

Page 30: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

30

Standardele limbajelor de programare pentru sistemele de gestiune obiect-relaţionale sunt extensii ale standardului SQL (de exemplu, versiunea din anul 1999, denumită SQL3).

1.5.1.8. Complexitatea datelor şi a interogărilor

M. Stonebraker a oferit o reprezentare în patru cadrane a universului bazelor de date (fig. 1.11), deosebit de simplă şi de interesantă, bazată numai pe complexitatea datelor şi a interogărilor (Ston96). Propusă în anul 1996, această clasificare nu include modelele prerelaţionale (modelul ierarhic şi modelul reţea), considerate depăşite în această fază de dezvoltare a bazelor de date.

Pe abscisa diagramei este reprezentată capacitatea de definire a tipurilor de date complexe, iar pe ordonată este reprezentată capacitatea de interogare a bazelor de date.

În cadranul din stânga jos sunt acele aplicaţii care prelucrează tipuri de date simple şi nu necesită interogarea datelor. Astfel de tipuri de aplicaţii (cum sunt procesoarele de texte – Word, Framemaker) folosesc direct sistemul de fişiere al sistemului de operare pentru memorarea datelor persistente.

Fig. 1.11. Clasificarea sistemelor de gestiune a bazelor de date.

În cadranul din stânga sus sunt Sistemele de Gestiune a

Bazelor de Date Relaţionale (SGBDR), care prelucrează tipuri simple de date, dar permit interogări complexe.

În cadranul din dreapta jos sunt Sistemele de Gestiune a Bazelor de Date Obiect-Orientate (SGBDOO), care

Page 31: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

31

prelucrează tipuri de date complexe, dar în care rezolvarea interogărilor este destul de dificilă, dat fiind că pentru fiecare interogare trebuie să fie prevăzute legăturile necesare în structura obiectelor.

În cadranul din dreapta sus sunt reprezentate Sistemele de Gestiune Obiect-Relaţionale (SGBDOR), care permit prelucrarea datelor complexe şi rezolvarea interogărilor complexe. Modelul obiect-relaţional este, evident, cel mai complet, deoarece admite atât tipuri de date definite de utilizator cât şi interogări complexe. În aceeaşi lucrare, Stonebraker denumeşte sistemele de gestiune a bazelor de date obiect-relaţionale ca fiind sisteme de baze de date universale.

În momentul de faţă este evidentă tendinţa producătorilor de sisteme de gestiune a bazelor de date de a trece la sisteme obiect-relaţionale, în general, această trecere se realizează prin adăugarea treptată a caracteristicilor modelului obiect în sistemele de gestiune relaţionale. Oferta de sisteme de gestiune a bazelor de date este deosebit de generoasă, pe o scară extinsă de performanţe şi costuri, de la sisteme care se pot folosi gratuit (fără licenţă sau cu licenţă publică), până la sisteme cu înalte performanţe, a căror utilizare necesită plata licenţelor respective. Chiar şi pentru astfel de sisteme există versiuni de test (trial versions) care pot fi obţinute gratuit prin Internet (de la adresele indicate în Bibliografie), astfel încât pot fi folosite pentru a înţelege şi a executa exemplele propuse în această lucrare.

Sistemul Oracle este un sistem de gestiune a bazelor de

date multi-utilizator puternic, cu implementări pe toate platformele (Windows, Unix, Linux), care oferă atât performanţe de execuţie ridicate, cât şi un grad înalt de protecţie şi securitate a datelor. În toate versiunile, Oracle oferă implementarea completă a caracteristicilor modelului relaţional (conform standardului SQL2), iar ultimele versiuni (Oracle8i,

Page 32: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

32

Oracle9i şi Oracle 10g) sunt sisteme de gestiune obiect-relaţionale distribuite, implementând extensiile obiect-orientate prevăzute în standardul SQL3 şi oferind posibilitatea de dezvoltare a bazelor de date distribuite. Sistemele de gestiune Oracle, dar şi diferite instrumente de dezvoltare a aplicaţiilor de baze de date (Oracle Application Server, JDeveloper, Oracle Forms etc.), se pot obţine de la adresa http://www.oracle.com , iar termenii licenţei permit utilizarea acestor sisteme în scopuri necomerciale pe o perioadă nelimitată; pentru utilizarea în scopuri comerciale trebuie să fie plătite licenţele corespunzătoare

SQL Server este sistemul de gestiune a bazelor de date

relaţionale dezvoltat de firma Microsoft pentru sistemele de operare Windows. Au existat mai multe versiuni, versiunea actuală (2007) fiind SQL Server 2005. În toate versiunile sistemul SQL Server suportă complet standardul SQL2, cu implementarea performantă a trăsăturilor avansate de stocare şi prelucrare a datelor (integritate referenţială, subinterogări, triggere, gestiunea tranzacţiilor etc). De la adresa http://www.microsoft.com/sql se poate obţine gratuit o versiune de test a sistemului SQL Server sau se poate cumpăra o versiune completă. În plus, pachetul de dezvoltare .NET SDK (.NET Software Development Kit), care se poate obţine gratuit de la adresa http://msdn.microsoft.com/downloads , conţine o versiune mai simplă de server de baze de date numit Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) care poate fi folosită pentru dezvoltarea şi execuţia exemplelor prezentate în lucrare.

Microsoft Access este unul din cele mai cunoscute sisteme

de gestiune a bazelor de date relaţionale pe platforme de calculatoare personale. MS Access dispune de un sistem de control al bazei de date (database engine) şi o interfaţă grafică

Page 33: CAPITOLUL 1 INTRODUCERE – CONCEPTE DE BAZ PRIVIND ...webbut.unitbv.ro/Carti on-line/Ratiu/BD/Cap.1.pdf · computerizat, a şa cum este majoritatea bazelor de date folosite în momentul

Cap.1 Introducere - Concepte de bază privind sistemele de baze de date

33

pentru interacţiunea cu utilizatorul. Aplicaţiile de baze de date în MS Access se pot dezvolta cu multă uşurinţă datorită generatoarelor de aplicaţii (Wizards) care permit proiectarea vizuală a bazelor de date şi a formularelor (forms) pentru interfeţele grafice. MS Access este folosit în special pentru aplicaţii personale sau pentru mici afaceri şi licenţa acestuia se poate cumpăra odată cu licenţa produsului Microsoft Office.

MySQL este un sistem de gestiune a bazelor de date

relaţionale cu implementări pentru sistemele de operare Windows, Linux, Unix. La adresa http://www.mysql.com , se găseşte ultima versiune şi documentaţia sistemului de gestiune a bazelor de date MySQL care se poate utiliza gratuit (open

source). Acest sistem este compatibil cu standardul SQL2, dar unele prevederi ale standardului sunt implementate parţial. Versiunea actuală 2007, este versiunea 5.0 care oferă vederi, proceduri stocate şi triggere (caracteristici care lipseau in versiunile precedente).