Curs 1.pdf

  • Uploaded by: Adorol Ovidiu
  • 0
  • 0
  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Curs 1.pdf as PDF for free.

More details

  • Words: 6,247
  • Pages: 93
Sisteme Informatice de Gestiune Curs 1

BAZE DE DATE

© Conf. dr. ing. mat. Ovidiu Blăjină

SIG-Curs 1

Baze de date

1

1. Introducere 2. Tipologia bazelor de date 3. Modele de organizare a datelor în baze de date 4. Metode de accesare a datelor 5. Proiectarea bazelor de date relaţionale 6. Proiectarea bazelor de date orientate obiect SIG-Curs 1

Baze de date

2

1. Introducere

SIG-Curs 1

Baze de date

3

Baza de date este un ansamblu de date structurate, coerente, neredundante, independente de orice program şi accesibile după mai multe criterii. Baza de date este o colecţie persistentă şi coerentă din punct de vedere logic de date legate între ele, construită într-un scop precis. Baza de date este o colecţie structurată de date împreună cu descrierea lor, necesare şi suficiente unei anumite luări de decizii. Baza de date este un ansamblu de date, interconectate, împreună cu descrierea lor, care răspunde calităţilor de centralizare, coordonare, integrare şi difuzie a informaţiilor şi care asigură satisfacerea necesităţilor de prelucrare ale utilizatorilor. SIG-Curs 1

Baze de date

4

Baza de date este totalitatea exemplarelor înregistrărilor, seturilor de înregistrări şi zonelor, organizate printr-o anumită schemă. Cerinţe care se impun unei baze de date: ¾ să furnizeze în timp util informaţiile solicitate (timpul de răspuns la o interogare); ¾ să asigure costuri minime de prelucrare, întreţinere, redundanţă minimă; ¾ să aibă capacitatea de a satisface necesităţile informaţionale ale unui număr mare de utilizatori; ¾ să permită adaptarea la cerinţe noi, răspunsuri la interogări neprevăzute iniţial (flexibilitate); ¾ să asigure securitatea datelor prin mecanisme de protecţie împotriva accesului neautorizat (confidenţialitate); SIG-Curs 1

Baze de date

5

¾ să conţină facilităţi destinate validării datelor şi recuperării lor în cazul unor deteriorări accidentale (integritate); ¾ să permită valorificarea eforturilor anterioare şi anticiparea nevoilor viitoare (compatibilitate şi expandabilitate); ¾ să permită, prin ierarhizarea datelor după criteriul frecvenţei acceselor, reorganizări (eventual dinamice) care sporesc performanţele bazei de date. Avantajele organizării în baze de date: 1. Independenţa datelor memorate de aplicaţie. 2. Nivel redus de redundanţă 3. Posibilitatea aplicării de restricţii de securitate a datelor şi a protecţiei faţă de accesul neautorizat la date cu caracter confidenţial. SIG-Curs 1

Baze de date

6

4. Integritatea datelor 5. Facilităţi de utilizare a datelor fără ca utilizatorii să cunoască baza de date în întreaga complexitate. 6. Existenţa unor limbaje performante (conversaţionale) de regăsire a datelor. 7. Accesul la informaţii se poate face după o mulţime de criterii de regăsire. 8. Accesul la date şi chiar gestiunea datelor se pot realiza din diferite noduri ale reţelei de calculatoare, de către utilizatori diferiţi. Utilizatorii unei baze de date: 1) Utilizatori nespecialişti (conversaţionali), care au la dispoziţie o formă de comunicare cu baza de date apropiată de vorbirea curentă. Ei nu cunosc structura şi nici modul de lucru efectiv cu baza. SIG-Curs 1

Baze de date

7

2) Utilizatori specialişti, care cunosc strucutura bazei de date, au cunoştinţe de programare, cunosc problemele sistemului de operare, care le permit să folosească raţional baza de date şi să obţină avantaje maxime. 3) Administratorul bazei de date, care este o persoană sau grup de persoane responsabile cu: 9 întreţinerea dicţionarului datelor; 9 definirea regulilor de validare (verificare) a datelor de intrare; 9 asigurarea securităţii bazei; 9 efectuarea şi păstrarea copiilor bazei de date (pentru verificaea sau refacerea ei în caz de deteriorare parţială sau totală); SIG-Curs 1

Baze de date

8

Nivelele de abstractizare şi percepţie a datelor în cadrul unei baze de date:

Fig.1 SIG-Curs 1

Baze de date

9

1. Nivelul fizic (intern) este nivelul elementar şi descrie modalitatea efectivă în care datele sunt scrise (memorate) pe suportul de stocare (harddisc, CD, DVD, ori bandă magnetică). Structura datelor este descrisă detaliat, fiind accesibilă doar specialiştilor. La acest nivel structura BD se concretizează în schema internă. 2. Nivelul conceptual (global) priveşte datele prin prisma semanticii lor, vizând conţinutul lor efectiv şi relaţiile care le leagă de alte date. Obiectivul acestui nivel îl constituie modelarea realităţii: utilizatorii îşi exprimă cerinţele administratorului bazei de date, care este responsabil cu definirea schemei conceptuale a bazei de date. SIG-Curs 1

Baze de date

10

3. Nivelul logic (extern) descrie modul în care utilizatorii folosesc baza de date pentru propriile aplicaţii. Se au în vedere cerinţele unui utilizator/ grup de utilizatori, deoarece fiecare lucrează numai cu o porţiune a BD, în funcţie de nevoile şi atribuţiile sale. La acest nivel, structura BD se prezintă sub forma unor scheme externe, în funcţie de nevoile fiecărui utilizator. Nivelele de independenţă a datelor într-o bază de date: 1. Independenţa fizică asigură posibilitatea modificării schemei fizice a datelor, fără ca aceasta să oblige la modificarea schemei conceptuale, schemei logice şi a programelor de aplicaţie. SIG-Curs 1

Baze de date

11

2. Independenţa logică asigură posibilitatea modificării schemei conceptuale a datelor fără ca aceasta să oblige la modificarea schemei logice şi a programelor de aplicaţie. 3. Independenţa faţă de strategiile de acces permite programului să precizeze data pe care doreşte să o acceseze, dar nu modul cum accesează această dată. SGBD va stabili drumul optim de acces la date. Cel mai răspândit tip de sistem informatic este cel orientat spre tranzacţii. Tranzacţia este un set de instrucţiuni elementare de interogare şi/sau modificare a BD, ce se execută sau se anulează împreună. O tranzacţie se consideră efectuată când toate operaţiile ei au fost executate cu succes. SIG-Curs 1

Baze de date

12

În cazul accesului simultan al mai multor utilizatori la BD, BD este protejată de interferenţa tranzacţiilor ce acţionează simultan asupra sa. BD este protejată împotriva deteriorărilor parţiale sau totale, întâmplătoare sau intenţionate. Se realizează prin efectuarea şi păstrarea unor copii (backup) ale imaginilor trecute ale BD şi prin înregistrarea detaliilor schimbărilor efectuate asupra BD. Frecvenţa efectuării copiilor pentru refacerea sau restaurarea (recovery) BD depinde de frecvenţa schimbărilor ei. Se poate copia mai frecvent decât restul şi separat numai acea parte din BD care se schimbă mai des. BD se poate avaria între două copieri, când au fost executate operaţii de modificare prin tranzacţii. SIG-Curs 1

Baze de date

13

Pentru a reface efectul tranzacţiilor pierdute, se ţine o evidenţă a acestora într-un fişier numit jurnal, prin memorarea valorilor câmpurilor înainte şi după modificare (numite imagini anterioare, respectiv, imagini ulterioare). BD se poate avaria şi pe parcursul execuţiei unei tranzacţii, care rămâne neterminată, cu datele în zonele tampon sau în fişiere temporare. Pentru restaurare, informaţia despre derularea fiecărei tranzacţii se memorează în acelaşi jurnal, dar nu în imagini, ci în punctul de verificare. Problema securităţii copiilor şi a jurnalelor se poate parţial rezolva prin efectuarea unor copii în mai multe exemplare, a căror deteriorare simultană are o probabilitate mult mai mică. SIG-Curs 1

Baze de date

14

2. Tipologia bazelor de date

SIG-Curs 1

Baze de date

15

Bazele de date s-au impus rapid ca soluţie eficace şi eficientă de gestiune a colecţiilor de date structurate şi voluminoase din firme. Extinderea utilizării tehnologiilor informaţionale în procese operaţionale, informaţionale şi de decizie a dus la tipizarea bazelor de date în funcţie de rolul lor. Din perspectiva utilizatorului, BD pot fi: • Baze de date operaţionale, ce stochează datele cu privire la sistemele operaţionale din întreprinderi. Se mai numesc şi baze de date de domeniu întrucât stochează date privind tranzacţiile dintr-un anumit domeniu de activitate. Exemple: BD de gestiune a producţiei, BD de gestiune a resurselor umane etc. SIG-Curs 1

Baze de date

16

În această categorie sunt incluse şi BD suport pentru sistemele de schimb informatizat de date (Electronic Data Interchange). BD operaţionale constituie nucleul sistemelor informaţionale. • Baze de date de informare a executivului, care stochează rezultate ale prelucrării datelor din bazele de date operaţionale şi/sau din bazele de date externe Ele constuituie suportul sistemelor informatice ale executivului (Executive Information System) • Baze de date multidimensionale, ce sunt baze de date integrate, nevolatile şi istorizate, organizate pentru a ajuta în procesul de management. Ele regrupează şi integrează date: - din surse diferite: interne (BD operaţionale pe domenii de activitate) sau externe (BD on-line, BD ale SIG-Curs 1

Baze de date

17

unor organisme specializate (ex. camera de comerţ şi industrie). - din perioade diferite, timpul fiind o dimensiune de bază în analiza datelor. - nevolatile, ca o consecinţă a istorizării. O interogare efectuată la momente diferite trebuie să ducă la obţinerea aceluiaşi rezultat la momente diferite. - de detaliu sau agregate. Datele de detaliu sunt deduse din sistemele de tranzacţie prin procese de extragere şi de transformare. Datele agregate se materializează în structuri multidimensionale care permit utilizatorilor să efectueze intersecţii de date. • Baze de date externe, ce pot conţine date comerciale sau date statistice şi pot fi accesate on-line liber sau printr-un anumit tarif. SIG-Curs 1

Baze de date

18

Interdependenţa datelor din baze de date tip impune o abordare federativă a bazei de date a unei firme (fig.2). Baza de date a unei firme este concepută ca o federaţie de baze de date legate funcţional (corespunzător funcţiunilor) sau procesual (corespunzător proceselor de conducere pe niveluri ierarhice). Componenta principală a federaţiei o constituie bazele de date operaţionale, pentru că aceasta reprezintă sursa principală de date pentru celelalte baze de date care, în fapt, conţin date rezultate prin agregarea datelor din bazele de date operaţionale. Tot mai multe baze de date vor funcţiona în sisteme federative deschise spre Intranet/Internet. SIG-Curs 1

Baze de date

19

Fig.2 SIG-Curs 1

Baze de date

20

După modul de accesare bazele de date pot fi: • BD colective, accesate de către mai mulţi utilizatori (eventual simultan). Majoritatea BD sunt colective. Sunt organizate, de regulă, pe funcţii ale întreprinderii şi utilizate de către cei ce-şi desfăşoară activitatea în compartimentele corespunzătoare. Fiecare utilizator are un anume rol în sistemul funcţional din care decurge şi rolul său în utilizarea bazelor de date. • BD individuale, accesate exclusiv de către cel care le gestionează. Ele se întâlnesc mai rar în unităţile economice. Ţin mai mult de practica unor cadre de conducere pentru informaţii personale. SIG-Curs 1

Baze de date

21

După modul de localizare (stocare) al datelor, bazele de date pot fi: • BD locale, stocate de regulă pe server-ul unei reţele locale de calculatoare şi utilizate de pe mai multe calculatoare Client (posturi de lucru în reţeaua locală); • BD distribuite, stocat parţial sau total în diferite puncte ale une reţele distribuite de calculatoare (recomadate îndeosebi pentru domeniul instituţiilor bancare). Gestiunea BD distribuite ridică probleme specifice referitoare îndeosebi la soluţia de stocare a datelor (prin replicare sau prin fragmentare) şi la interogare a acestora (făcând abstracţie sau ţinând cont de localizare). SIG-Curs 1

Baze de date

22

După tipul datelor gestionate şi specificitatea lor, bazele de date pot fi: • BD convenţionale, ce conţin date alfanumerice clasice; • BD multimedia, ce conţin date multimedia (imagini, sunete etc.); • BD textuale, ce conţin documente.

SIG-Curs 1

Baze de date

23

3. Modele de organizare a datelor în baze de date 3.1. Modelul ierarhic 3.2. Modelul reţea 3.3. Modelul entitate-asociere 3.4. Modelul relaţional 3.5. Modelul orientat-obiect 3.6. Modelul obiect-relaţional

SIG-Curs 1

Baze de date

24

Un model este un ansamblu de instrumente conceptuale ce permit descrierea datelor, a relaţiilor dintre ele, a semanticii lor, ca şi a restricţiilor la care sunt supuse. Un model trebuie să ofere conceptele de bază şi notaţiile care să permită proiectanţilor BD şi utilizatorilor să comunice cum înţeleg ei realitatea, de o manieră coerentă şi neambiguă. Un model de date cuprinde trei componente: • partea de structurare, care constă dintr-un set de reguli care arată cum va fi structurată BD; • partea de manipulare, care defineşte tipurile de operaţii care sunt permise asupra datelor; SIG-Curs 1

Baze de date

25

• regulile de integritate, care asigură consistenţa datelor din BD. În practică sunt disponibile mai multe clase de modele: 1) modele logice bazate pe obiect (modelul entitateasociere, modelul funcţional, modelul orientat pe obiecte); 2) modele logice bazate pe înregistrare (modelul relaţional, modelul reţea, modelul ierarhic); 3) modele fizice. Primele două clase vizează modelarea nivelelor conceptual şi extern de abstractizare a datelor, în timp ce modelele fizice vizează modelarea la nivel fizic. SIG-Curs 1

Baze de date

26

3.1. Modelul ierarhic Din punct de vedere cronologic, modelul ierarhic este primul utilizat pentru organizarea datelor în baze de date. Este fundamentat pe structura arborescentă, care are pe primul nivel rădăcina (nod-părinte), iar pe nivelurile următoare diferite elemente subordonate (noduri-fiu). Nodul-părinte poate avea subordonate mai multe noduri-fiu, în timp ce un nod-fiu nu poate avea decât un singur părinte. Nodul-fiu poate fi la rândul său părinte pentru alte noduri. Modelul are dezavantaje pentru operaţiile de actualizare. Astfel, adăugarea de noi înregistrări (cu SIG-Curs 1

Baze de date

27

excepţia celor din colecţia de date rădăcină) se poate efectua numai cu specificarea colecţiilor de date superioare, iar ştergerea unei înregistrări duce la eliminarea fizică a tuturor înregistrărilor subordonate. Modelul mai are o anumită limită: nu se poate reprezenta un fiu care este subordonat mai multor părinţi; aceasta presupune reprezentarea repetată a acestuia, deci un grad ridicat de redundanţă a datelor.

SIG-Curs 1

Baze de date

28

Fig.3. Arbore de structură specific modelului ierarhic

SIG-Curs 1

Baze de date

29

3.2. Modelul reţea Modelul reţea reprezintă o dezvoltare a modelului ierarhic, care elimină redundanţele specifice acestuia, bazându-se pe structurile reţea şi pe relaţiile de tip 1-1, 1-n şi n-m. Înregistrările apar în baza de date ca o colecţie de grafuri: mai multe noduri interconectate prin linii de legătură. Atât modelul ierarhic, cât şi cel reţea nu permit realizarea unei independenţe logice satisfăcătoare între date şi programe, deoarece relaţiile dintre date trebuie referite şi în programele de aplicaţii. SIG-Curs 1

Baze de date

30

Fig.4. Graf de date specific modelului reţea

SIG-Curs 1

Baze de date

31

3.3. Modelul entitate-asociere (E-A) Acest model a fost introdus în 1976 de către cercetătorul american Peter Chen, cu obiectivul de a crea un model care să permită "o viziune unificată, globală asupra datelor". Modelul E-A (denumit şi E-R, după denumirea originală: Entity-Relationship) are la bază percepţia lumii reale sub forma unei colecţii de obiecte, denumite entităţi, unite prin asociaţii. Este un model semantic de date, simplu şi atractiv datorită reprezentării grafice. Este utilizat în multe metode de analiză şi proiectare (ex. MERISE). Conceptele de bază utilizate sunt: entitate, atribut, clasă de entităţi, asociaţie. SIG-Curs 1

Baze de date

32

Entitatea este considerată un obiect concret sau abstract din "lumea observată" având o existenţă proprie, care poate fi identificat şi descris printr-un ansamblu de atribute, care îl diferenţiază de alte obiecte. Atributul reprezintă o caracteristică/însuşire a unui obiect, fiind o informaţie elementară care este definită pe un domeniu de valori. Clasa de entităţi reprezintă un ansamblu de entităţi de aceeaşi natură, deci descrise prin aceleaşi atribute, fiecare entitate fiind identificată într-o manieră unică. Numărul de atribute este stabilit de către proiectant. Reprezentarea clasei se realizează printr-un nume şi printr-un ansamblu de atribute de descriere. SIG-Curs 1

Baze de date

33

Exemplu: Clasa STUDENT se poate defini (în mod simplificat) prin atributele: Număr matricol, Nume şi prenume, Specializare, An, Grupă şi se reprezintă:

STUDENT Număr matricol Nume şi prenume Specializare An Grupă Există entităţi cu existenţă fizică (mijloace fixe, produse, angajaţi, clienţi etc.) şi entităţi conceptuale (casare, închiriere, vânzare, pontaj etc.) SIG-Curs 1

Baze de date

34

O asociere (relaţie) reuneşte două sau mai multe entităţi, printr-o legătură semantică. O asociaţie "leagă" între ele entităţile. Ea primeşte un nume (de regulă un verb) care o descrie. Ansamblul asociaţiilor de acelaşi tip formează o clasă de asociaţii. Structura de ansamblu a unei baze de date poate fi descrisă printr-o diagramă E-A care conţine simboluri grafice asociate elementelor ce definesc modelul. În practică sunt utilizate mai multe formalisme de reprezentare, cele mai cunoscute fiind CHEN şi MERISE. Formalismul CHEN utilizează următoarele simboluri: dreptunghi pentru clasa de entităţi; elipsă pentru atribut; romb pentru clasa de asociaţii. SIG-Curs 1

Baze de date

35

Liniile pun în legătură clasele de entităţi cu atributele lor, ca şi entităţile cu asociaţiile. Exemplu: Diagrama E-A, în formalismul lui Chen, pentru o variantă simplistă a bazei de date despre facturile primite de la furnizori, referitoare la achiziţiile de la aceştia.

Fig.5 SIG-Curs 1

Baze de date

36

3.4. Modelul relaţional Modelul relaţional a fost propus în 1970, de E.F. Codd şi se fundamentează pe teoria matematică a relaţiilor şi pe algebra relaţională. Ideea unui model asamblist de date i-a aparţinut lui D. F. Childs, care în 1968 a demonstrat că orice structură de date poate fi reprezentată sub formă de tabele (unul sau mai multe) în interiorul cărora trebuie să existe şi informaţie de legătură. Datele şi legăturile dintre ele sunt reprezentate sub formă de tabele, alcătuite din linii şi coloane, fiecare din acestea reprezentând un element distinct al bazei. SIG-Curs 1

Baze de date

37

Fig.6. Exemplu de tabele relaţionale

SIG-Curs 1

Baze de date

38

3.5. Modelul orientat obiect În pofida faptului că modelul relaţional este cel mai utilizat la ora actuală, el nu permite: - descrierea structurilor de date complexe (date în format multimedia, documente electronice, grafice); - definirea unor tipuri de date-utilizator; - partajarea/reutilizarea structurilor de date; - declararea prelucrărilor aferente structurilor de date (datele sunt descrise separat de prelucrări). În anii '90 modelul bazat pe obiecte a fost prezentat drept viitorului de organizare a datelor. Nu există încă un model unic, unanim recunoscut şi utilizat, de bază de date obiectuală. Modelul obiectual derivă din limbajele-obiect şi modelele de date semantice.

SIG-Curs 1

Baze de date

39

Modelarea orientată-obiect se bazează pe conceptele: obiect, abstractizare, încapsulare, moştenire, polimorfism. În esenţă, modelul orientat obiect permite modelarea directă a realităţii prin intermediul obiectelor definite ca entităţi cu identitate proprie şi caracterizate prin stare şi comportament. Orice entitate din lumea reală este un obiect, şi reciproc, orice obiect reprezintă o entitate din realitate. Obiectele pot "comunica" între ele prin intermediul mesajelor. Identitatea unui obiect este proprietatea acestuia care îl distinge de alte obiecte şi este de regulă o adresă logică invariantă (pointer). SIG-Curs 1

Baze de date

40

Spre deosebire de modelul relaţional în care datele sunt identificate prin valori ale cheilor primare desemnate de utilizator, în modelul orientat obiect, identificarea obiectelor este asigurată automat de sistem şi este transparentă utilizatorului. Două obiecte Ol şi O2 sunt identice (se notează Ol==O2) dacă au acelaşi identificator, adică egalitatea obiectelor este de fapt o egalitate de pointeri. În schimb, două obiecte O1 şi O2 sunt egale (se scrie Ol=O2) dacă au aceleaşi valori (aşadar Ol==O2 implică O1=O2, reciproca fiind falsă). Starea unui obiect este definită de valorile (realizările) atributelor sale. Un atribut este definit printr-un nume şi poate lua valori elementare (numeric, alfanumeric etc.) sau SIG-Curs 1

Baze de date

41

complexe (structuri de valori multiple, referinţe spre alte obiecte, tipuri utilizator etc). Atributele se pot concretiza în locaţii de memorie în care sunt stocate datele aferente. Exemple: Furnizorul FZ1: Cod-1010, Denumire="S.C. Gamma", Adresă="str. Progresului, nr. 23, Piteşti"; Factura FACT1: Număr=354363, Data=20/04/2001 CotaTVA=19% Furnizor=FZl Comportamentul unui obiect este definit de setul de operaţii (metode) aplicabile acelui obiect. SIG-Curs 1

Baze de date

42

Operaţiile unui obiect constituie de regulă, modalităţi de răspuns la mesaje primite din exterior. O operaţie este definită printr-o semnătură compusă din denumire, un set opţional de parametri de apel şi un set opţional de parametri de retur. Operaţiile sunt de regulă proceduri sau funcţii ce acţionează asupra atributelor obiectului respectiv. Exemplu: Factura FACT1: ReturneazăValoareTVAQ : real ReturneazăValoareFactura(): real Abstractizarea este procesul prin care obiectele cu aceleaşi atribute şi cu un comportament comun sunt grupate în tipuri abstracte de date numite şi clase. Obiectele devin astfel realizări (instanţieri) ale claselor. SIG-Curs 1

Baze de date

43

În timp ce obiectele descriu anumite entităţi din lumea reală, clasele sunt reprezentări (modele) abstracte, conceptuale ale acestor entităţi. Exemple: Factura, Furnizor, Persoană Paralelă între modelul relaţional şi cel obiect:

Modelul O.O. Clasa Obiect Atribut Operaţie (metodă) SIG-Curs 1

Modelul relaţional Tabel (relaţie) Tuplu (înregistrare) Câmp Baze de date

44

Încapsularea constă în capacitatea obiectelor (claselor) de a conţine la un loc atât date cât şi operaţii, dintre care numai o parte sunt vizibile din exterior. În acest fel, obiectele/clasele apar ca nişte cutii negre care ascund detaliile de implementare, oferind în schimb o interfaţă mai simplă pentru rezolvarea problemei (v. fig.7).

SIG-Curs 1

Baze de date

45

Exemplu: Se consideră clasa Persoană descrisă prin atributele invizibile (private) din exteriorul clasei: CNP, NutnePrenume, DataNaşterii, Sex şi operaţiile accesibile din exterior (publice): Crează(CNP, NumePren, DataNastere, Sex) ReturneazăCNP(): întreg ReturneazăNumePrenume() : text ReturneazăDataNasteref): data ReturneazăSex(): text ReturneazăVârsta(AnReferinţă):intreg Datele unei anumite persoane Popescu Ion sunt atribuite numai la crearea instanţei (obiectului) respectiv, prin apelarea metodei-constructor (vizibilă din exteriorul obiectului): SIG-Curs 1

Baze de date

46

Crează (1600423275941, "Popescu Ion", 24-04-1960,"Masculin") După ce un obiect a fost creat, datele aferente persoanei respective nu mai pot fi modificate, ci numai citite prin intermediul metodelor de tip Returnează. Utilizatorul va percepe un obiect Persoană numai prin datele (read-only): cod-numeric-personal, nume-prenume, data naşterii, sex şi vârsta. Este exclusă astfel posibilitatea modificării datelor unei persoane ulterior creării sale. Se asigură deci o securitate a datelor stocate de un obiect împotriva modificărilor neautorizate sau/şi accidentale. SIG-Curs 1

Baze de date

47

Moştenirea este procesul prin care toate atributele şi metodele publice (vizibile din exterior) ale unei clase (clasa de bază) sunt preluate automat de o altă clasă înrudită (clasa derivată sau subclasa). Clasele derivate pot conţine şi atribute sau metode specifice. Moştenirea este o tehnică care încurajează reutilizarea/partajarea datelor. Se pot exprima relaţii între clase: clasificare, generalizare, specializare. Exemplu: Se consideră clasa Persoană definită prin atributele publice (vizibile din afara clasei): CNP, NumePrenume, DataNeşterii, Sex şi metoda publică ReturneazăVârsta (AnReferinţă) SIG-Curs 1

Baze de date

48

Clasa Persoană poate fi derivată în clasele Student şi Angajat de acelaşi tip cu prima, astfel încât fiecare student angajat va fi descris prin CNP, nume şi prenume, data naşterii, sex şi vârsta calculată în funcţie de un anumit an. Clasa Student poate conţine ca atribute specifice NumărMatricol, AnStudii, precum şi prin metoda proprie MediaGenerală(). Clasa Angajat poate fi descrisă prin atributele proprii Marca, DataAngajat, precum şi prin metoda ReturneazăVechime().

SIG-Curs 1

Baze de date

49

Clasa PERSOANĂ Atribute: CNP NumePrenume DataNaşterii Sex Metode:

Clasa STUDENT Superclasa: PERSOANĂ Atribute: NumărMatricol AnStudii … Metode: ReturneazăVârsta() MediaGenerală() ReturneazăVechime() … … … SIG-Curs 1

Clasa SALARIAT Superclasa: PERSOANĂ Atribute: Marca DataAngajării … Metode:

Baze de date

50

Polimorfismul semnifică posibilitatea unui obiect, instanţă a unei clase, să răspundă diferit la primirea aceluiaşi mesaj. Polimorfismul poate fi asigurat prin două căi: - redefinirea(rescrierea) metodelor moştenite în clasele derivate; - supraîncărarea unei metode în cadrul aceleiaşi clase (crearea unor metode cu acelaşi nume, dar cu parametrii diferiţi). Polimorfismul măreşte flexibilitatea modelului orientat obiect în reprezentarea cât mai sintetică a realităţii. Exemplu: Fie clasa Furnizor definită prin atributele: Cod, Denumire, Adresa SIG-Curs 1

Baze de date

51

şi metodele asociate: Şterge(Cod: Integer); Şterge(Denumire: String). Clasa se va comporta diferit la primirea mesajului de ştergere (polimorfism prin supraîncărcarea metodei Şterge): dacă mesajul conţine un parametru întreg (codul unui furnizor), atunci se va elimina obiectul-furnizor ce va conţine acest cod; - dacă cererea de ştergere conţine ca parametru un şir de caractere, atunci va fi eliminat furnizorul cu denumirea respectivă.

SIG-Curs 1

Baze de date

52

Schema unei BDOO se compune din definiţii de clase, legături între aceste clase şi restricţii de integritate. Definiţia unei clase conţine atribute şi operaţii (metode) folosind un SGBDO. Schema obiect a unei baze de date se poate prezenta grafic folosind notaţiile UML. Exemplu: Fig.8 defineşte schema bazei de date obiect pentru gestiunea proiectelor de cercetare elaborate într-o unitatea de învăţământ superior. Se consideră că un proiect este elaborat de către una sau mai multe persoane: profesor, în sensul de cadru didactic şi/sau student. Un proiect este compus din una sau mai multe mai multe teme de cercetare. SIG-Curs 1

Baze de date

53

Fig.8 SIG-Curs 1

Baze de date

54

3.6. Modelul obiect-relaţional Modelul relaţional se bazează pe principii bine definite şi are un atu important prin limbajul de interogare SQL. Marele său dezavantaj este că nu poate susţine obiecte complexe, necesare în noile generaţii de aplicaţii, în special multimedia. Pentru a depăşi acest handicap, producătorii de baze de date relaţionale au introdus un gen de suport pentru obiecte, prin introducerea de noi tipuri de date. Modelul orientat-obiect permite definirea şi manipularea de structuri complexe, dar prezintă deficienţe la reprezentarea relaţiilor şi la interogarea bazelor de date. SIG-Curs 1

Baze de date

55

Îmbinând facilităţile modelului orientat obiect (structuri de date complexe, moştenire) cu cele ale modelului relaţional (tabele bidimensionale, acces optimizat şi concurent, standardizare etc), modelul relaţional-obiect (fig.9) pare a fi (deocamdată) soluţia la dilema existentă în domeniul bazelor de date: relaţional sau orientat obiect ? Modelul obiect-relaţional constituie o extensie a modelului relaţional. Principala îmbunătăţire adusă modelului relaţional o constituie tipurile abstracte de date (TAD) care permit: 9 partajarea datelor; 9 utilizarea structurilor de date complexe; 9 încapsularea; 9 moştenirea. SIG-Curs 1

Baze de date

56

Fig.9 SIG-Curs 1

Baze de date

57

Tipurile abstracte de date (TAD) reprezintă tipuri de date definite de utilizator, diferite de tipurile implicite (numeric, şir de caractere etc), ce pot fi utilizate la definirea tabelelor. Deosebirea fundamentală dintre un TAD şi o clasă constă în faptul că în timp ce clasa admite instanţieri directe, un TAD serveşte numai ca model (template) la definirea structurii unuia sau mai multor tabele (partajarea TAD-lui). Exemplu: TAD-uI Persoana (CNP, NumePrenume, Adresa) poate servi drept structură pentru tabelele Angajat şi Student: Angajat (Pers: Persoana, Salariu: real) Student (Pers: Persoana, AnStudii) SIG-Curs 1

Baze de date

58

Complexitatea unui TAD rezidă în faptul că un câmp din structura sa poate fi un tip elementar (numeric, şir de caractere), un alt TAD sau o colecţie. Imbricarea TAD-lor se poate realiza fie direct, fie prin intermediul pointerilor. Exemplu: Fie TAD Persoana (CNP:text, NumePrenume:text, Adresa:text) Acest tip poate fi utilizat la definirea TAD-lui Angajat prin două variante: => Angajat (Pers:Persoana, SalariulTarifar) în care tipul Angajat conţine elementul Pers de tip Persoana: SIG-Curs 1

Baze de date

59

=> Angajat (Pers:REF Persoana,SalariulTarifar) în care tipul Angajat conţine o referinţă (pointer) către o Persoană:

Pentru a reprezenta copiii unui angajat se poate recurge la folosirea unei colecţii (set) de tip Persoana: Angajat (Pers:REF Persoana,SalariulTarifar, Copii SET(Persoana) ) SIG-Curs 1

Baze de date

60

Tabelele tblPersoană şi tblAngajat, create pe baza celor două TAD-ri sunt descrise în fig:

TAD-urile pot sa conţină atât date/câmpuri cât şi metode/operaţii implementate prin proceduri sau funcţii utilizator (încapsulare). SIG-Curs 1

Baze de date

61

Exemplu: TAD-ul Persoana poate fi definit prin: atributele CNP, NumePrenume, Adresa şi metoda Varsta(AnReferinţă):Integer În modelul obiect-relaţional, moştenirea constă în posibilitatea derivării unui TAD generic în TAD-uri specializate. Prin moştenire, un TAD derivat va prelua structura (datele) şi metodele TAD-lui de bază. Totodată, un TAD derivat poate fi descris şi prin date şi metode specifice.

SIG-Curs 1

Baze de date

62

Exemplu: Fie TAD-ul Persoana(CNP, NumePrenume, Adresa). Acest tip generic poate fi derivat în două subtipuri: Angajat Under Persoana (Vechime, SalariulTarifar); Student Under Persoana (AnStudii,Specializare).

Fig.10 SIG-Curs 1

Baze de date

63

Schema unei BDOR conţine schemele TADurilor, ale tabelelor, relaţiile dintre acestea, precum şi restricţiile de integritate. Din punct de vedere grafic, schema BDOR poate fi reprezentată folosind formalismul UML utilizat pentru BDOO. Mulţi producători de baze de date au adoptat o strategie de extindere graduală a modelului relaţional, care a încorporat elemente de programare orientată obiect, dar a păstrat tehnologiile relaţionale în definirea şi manipularea datelor (Visual FoxPro). Alţi producători au mers pe ideea de a păstra modelul de date orientat pe obiect şi de a extinde cu funcţii noi limbajul de interogare după sintaxa limbajului SQL, păstrând astfel compatibilitatea cu programele SQL existente (Sybase). SIG-Curs 1

Baze de date

64

4. Metode de accesare a datelor

SIG-Curs 1

Baze de date

65

Modelul fizic al datelor descrie structura sub care înregistrările logice se regăsesc efectiv pe suportul tehnic de date sau în memoria internă a calculatorului. Fiecare înregistrare logică este scrisă la o anumită adresă fizică reprezentată prin cilindru, pistă şi sector (fig.11):

Fig.11 SIG-Curs 1

Baze de date

66

Colecţiile de date înregistrate pe memorii externe sunt accesate din diverse motive: citirea unor înregistrări, regăsirea unor date, ordonarea înregistrărilor după anumite criterii etc. Accesarea datelor organizate în colecţii de date se poate realiza prin două metode: ¾ metoda secvenţială; ¾ metoda indexată. Regăsirea unei înregistrări prin metoda secvenţială presupune parcurgerea în secvenţă a colecţiei de date, începând cu prima înregistrare, până la înregistrarea căutată (dacă există) sau până la ultima înregistrare (dacă înregistrarea căutată nu există). SIG-Curs 1

Baze de date

67

Avantaje: 9complexitate redusă; 9colecţia de date nu se încarcă cu date suplimentare Dezavantajul major: viteza redusă cu care este efectuată operaţia pe colecţii mari de date. Metoda indexată permite regăsirea unei înregistrări într-un timp mult mai redus decât metoda precedentă. Metoda presupune utilizarea unui tabel de indecşi pentru fiecare câmp, ce va permite o astfel de căutare. Tabelele de indecşi conţin două atribute: - realizările ordonate (crescător/descrescător) ale câmpului de indexare; - adresele fizice relative ale fiecărei realizări. SIG-Curs 1

Baze de date

68

Exemplu: Tabelul index asociat câmpului CodMaterial va conţine următoarele date:

Fig.12

Pentru regăsirea unei realizări a câmpului CodMaterial (câmpul indexat) se parcurg etapele: 1) Se localizează realizarea respectivă în tabelul de index (această operaţie se poate realiza rapid cu un algoritm de căutare în mulţimi ordonate). SIG-Curs 1

Baze de date

69

2) Dacă valoarea există, atunci se memorează adresa fizică relativă corespunzătoare şi se localizează înregistrarea logică aflată la adresa memorată anterior. Această metodă poate fi folosită numai pentru suporturi de date direct adresabile (hard-disk, floppydisk, CD etc). Avantaj: operaţia de căutare a unei valori se realizează foarte rapid în comparaţie cu metoda secvenţială. Dezavantaje: - tabelele de indecşi supraîncarcă colecţia de date; - orice actualizare a colecţiei de date presupune o actualizare şi a tabelelor de indecşi. SIG-Curs 1

Baze de date

70

5. Proiectarea bazelor de date relaţionale

SIG-Curs 1

Baze de date

71

Proiectarea modelului relaţional al datelor are ca scop obţinerea unor colecţii de date ce respectă atât cerinţele informaţionale ale utilizatorului, cât şi restricţiile impuse de modelul relaţional. În funcţie de complexitatea bazei de date, există două metode de proiectare a modelului relaţional: a) Conceperea modelului relaţional pe baza unui model conceptual semantic (entitate-asociere). Modelul entitate-asociere permite modelarea realităţii prin intermediul unor concepte abstracte: entităţi, asocieri şi atribute. Aceasta este metoda cea mai utilizată în practică, mai ales în cazul unor baze de date complexe. SIG-Curs 1

Baze de date

72

b) Obţinerea modelului relaţional prin procesul de normalizare, proces ce presupune aplicarea formelor normale asupra unui set de atribute ce formează iniţial un singur tabel. În urma normalizării va rezulta un set de tabele normalizate. Această metodă se poate aplica numai în cazul unor baze de date de dimensiuni mici. Oricare din metode se va alege pentru o temă dată, se pot obţine mai multe soluţii. Aceasta, deoarece modelarea este un proces subiectiv, în care realitatea poate fi percepută diferit de utilizatori diferiţi sau chiar de acelaşi utilizator în perioade diferite.

SIG-Curs 1

Baze de date

73

Proiectarea modelului relaţional prin normalizare Proiectarea prin normalizare, este un proces laborios şi riguros ce permite obţinerea unui model relaţional pe baza unor atribute (câmpuri) şi a dependenţelor dintre acestea. Metoda se bazează pe primele trei forme normale (FN1, FN2, FN3) şi presupune parcurgerea următoarelor etape: 1. Inventarierea atributelor. Proiectantul va selecta atributele din diverse documente utilizate în circuitul informaţional: nomenclatoare (nomenclatorul materialelor, lista furnizorilor etc), documente primare şi centralizatoare (facturi, chitanţe, situaţia aprovizionărilor, balanţa stocurilor etc). SIG-Curs 1

Baze de date

74

Exemplu: Număr factură Data factură Cod furnizor Denumire furnizor Adresa 2. Specificarea regulilor de gestiune: diversele restricţii/condiţii impuse datelor sunt atent studiate deoarece vor constitui logica dependenţelor dintre atribute şi a regulilor de validare. Exemplu: - o factură este emisă de un singur furnizor; - codul materialului este unic; - o factură conţine mai multe materiale - furnizorii pot fi numai persoane juridice etc. SIG-Curs 1

Baze de date

75

Algoritmii de calcul sunt asimilaţi regulilor de gestiune. Exemplu: Valoare material facturat = Cantitate facturată ×  × Preţ facturare Dobânda = ValoareCredit × RataDobândă SoldFinal = Soldlniţial + lntrări - leşiri. 3. Întocmirea dicţionarului de date: atributele obţinute în prima fază sunt înscrise într-un dicţionar al datelor cu respectarea următoarelor reguli: a. Un atribut poate fi înscris o singură dată în dicţionar. b. Sunt eliminate atributele sinonime. Exemplu: CodMaterial=Cod material facturat AdresaAngajat=DomiciliuAngajat SIG-Curs 1

Baze de date

76

c. Dicţionarul datelor nu admite atribute derivate/ calculate. Exemple: Valoare(Cantitate*Pret), Dobânda, SoldFinal. Dicţionarul datelor obţinut în baza listei de atribute de mai sus poate fi reprezentat într-o formă simplificată:

Fig.13 SIG-Curs 1

Baze de date

77

4. Stabilirea dependenţelor dintre atribute: dependenţele sunt descrise fie printr-o matrice (conţine ca linii şi coloane toate atributele din dicţionar în aceeaşi ordine) fie printr-un graf al dependenţelor. Sunt vizate îndeosebi dependenţele funcţionale. Dependenţele funcţionale tranzitive sunt evidenţiate în mod distinct. Exemplu:

Fig.14 SIG-Curs 1

Baze de date

78

Dependenţele funcţionale dintre atribute sunt reprezentate prin valoarea 1, pe linie, iar cele tranzitive au fost marcate cu 1T. Dependenţele dintre atribute pot fi reprezentate şi prin intermediul unui graf (cele funcţionale prin săgeţi, cele tranzitive prin săgeţi punctate) (fig.15).

Fig.15 SIG-Curs 1

Baze de date

79

5. Pentru atributele rămase izolate se vor căuta grupuri de câmpuri ce pot constitui determinanţi ai acestora. 6. Toate atributele (grupuri de atribute) determinante devine chei candidate. Cheile candidate ce vor aparţine aceluiaşi tabel sunt caracterizate prin dependenţe funcţionale reciproce (CodFurnizor<-> DenumireFunizor, CodFurnizor<->Adresa) 7. Se stabilesc cheile primare dintre atributele candidate. Exemplu: CodFurnizor, NumărFactură 8. Cu fiecare cheie primară şi atributele determinate direct (netranzitiv) de aceasta se va forma un tabel. SIG-Curs 1

Baze de date

80

Exemplu: Furnizor (CodFurnizor, DenumireFurnizor, AdresaFurnizor) Factură (NumărFactură, Data, CodFurnizor) 9. Se stabilesc cheile externe (atribute comune ale tabelelor şi care sunt chei primare în alte tabele) Exemplu: Furnizor (CodFurnizor, DenumireFurnizor, AdresaFurnizor) Factură (NumărFactură, Data, CodFurnizor)

SIG-Curs 1

Baze de date

81

Fig.16 SIG-Curs 1

Baze de date

82

6. Proiectarea bazelor de date orientate obiect

SIG-Curs 1

Baze de date

83

Proiectarea schemei obiect a unei baze de date se realizează în următoarele etape: a) identificarea obiectelor şi a claselor; b) identificarea asocierilor; c) identificarea atributelor, a restricţiilor din interiorul unei clase şi a metodelor specifice fiecărei clase; d) validarea modelului obiect şi eventual revenirea în etapele anterioare. Un prim pas în proiectarea bazelor de date orientate pe obiecte îl constituie identificarea tipurilor de obiecte, respectiv, a claselor de obiecte.

SIG-Curs 1

Baze de date

84

Cum se identifică clasele de obiecte din specificaţiile de definire a datelor întocmite de utilizatori ? Se optează pentru analiza speficaţiilor utilizatorilor şi delimitarea substantivelor care se regăsesc în aceste specificaţii. Exemplu: Fie specificaţia: O firmă este organizată pe departamente şi ţine o evidenţă strictă a aplicaţiilor cumpărate şi instalate. Cum aplicaţia poate fi instalată pe mai multe calculatoare, departamentele ţin o evidenţă a numărului de licenţe pentru fiecare aplicaţie. La o primă analiză rezultă că substantivele departamente şi aplicaţii exprimă clase de obiecte gestionate în cadrul firmei. SIG-Curs 1

Baze de date

85

Un departament deţine un anumit număr de licenţe din fiecare aplicaţie. DeţineLicenţe constituie o clasă-asociere între clasele Aplicaţii şi Departamente. Elementele astfel identificate se pot reprezenta grafic folosind limbajul universal de modelare UML (fig.17):

Fig.17 SIG-Curs 1

Baze de date

86

Cum asocierea leagă instanţieri ale claselor este necesar să se precizeze cardinalităţile (ele se citesc în sensul clasă către asociere) şi opţional rolurile jucate de fiecare clasă (în exemplul Utilizate şi, respectiv, Utilizează) (v.fig.18):

Fig.18 SIG-Curs 1

Baze de date

87

Pentru a face referiri şi la numărul instanţelor legate prin asociere se precizează cardinalităţile, adică numărul minim obligatoriu şi maxim autorizat: 0, pentru un minim; 1, pentru un minim şi/sau un maxim; *, pentru a indica un număr întreg superior lui 1. Trebuie precizate atributele şi metodele proprii fiecărei clase identificate. Exemplul considerat este simplu fără atribute multivaloare (valorile lor reprezintă instanţe ale altor clase) şi fără atribute compuse (care se constituie în noi clase). Convenţii pentru prezentarea metodelor: +, pentru public; #, pentru protejat (vizibil subclaselor) -, pentru privat. SIG-Curs 1 88 Baze de date

Fig.19. Schema obiect a bazei de date

Schema obiect a bazei de date se poate implementa în una din variantele: - un SGBD relaţional (ex: ACCESS); - un SGBD obiect-relaţional (ex: Oracle 9i); - un SGBD obiect. SIG-Curs 1

Baze de date

89

Primele două variante sunt cele mai utilizate în practică. Acesta impune conversia schemei în formatul cerut la implementare.

Fig.20. Schema relaţională a bazei de date SIG-Curs 1

Baze de date

90

Reguli de conversie din modelul obiect în relaţional: 1) O clasă este reprezentată printr-o tabelă (fiecare tabelă posedă, în principiu, o cheie primară); 2) O asociere cu cardinalităţile x..1 - x..n se reprezintă în modelul relaţional prin includerea în tabela corespunzătoare clasei cu cardinalitatea x..1 a cheii primare din clasa corespondentă. 3) O clasă-asociere este reprezentată printr-o tabelă care are o cheie primară compusă din cheile primare ale claselor asociate (ex. CodAplicatie şi CodDepartament) şi eventual atribute proprii (ex. NrLicenţe); 4) O specializare a clasei de obiecte CO în mai multe sub-clase SCO1, SCO2,.. SCOn se poate traduce prin repetarea cheii din tabela CO în tabelele corespunzătoare sub-claselor SCO1, SCO2, .. SCOn. SIG-Curs 1

Baze de date

91

Exemplu: Elaborarea modelului obiect al bazei de date privind contabilitatea financiară. Modelul trebuie să formalizeze majoritatea datelor cu care operează contabilitatea şi să permită furnizarea principalelor situaţii şi rapoarte contabile. Prezentarea grafică a modelului obiect folosind UML este ilustrată în fig.21.

SIG-Curs 1

Baze de date

92

Fig.21 SIG-Curs 1

Baze de date

93

Related Documents

Chile 1pdf
December 2019 139
Theevravadham 1pdf
April 2020 103
Majalla Karman 1pdf
April 2020 93
Rincon De Agus 1pdf
May 2020 84
Exemple Tema 1pdf
June 2020 78

More Documents from "Alexandra"