28791840 Baze de Date Access Curs Mocian Ioan

download 28791840 Baze de Date Access Curs Mocian Ioan

of 239

Transcript of 28791840 Baze de Date Access Curs Mocian Ioan

  • Ioan Mocian

    Baze de date - pentru uzul studenilor -

    - 2008 -

  • Tehnoredactare computerizat: Ioan Mocian Tiparul executat la Atelierul de multiplicare al Universitii Petru Maior Copyright Ioan Mocian

  • 3

    Cuvnt nainte

    O carte despre bazele de date nu e uor de scris, cel puin din dou motive: sunt foarte multe astfel de cri i sunt foarte muli cunosctori ai domeniului. Pe de alt parte sunt i multe persoane care ar dori s se iniieze n domeniu, dar crile pe care le-au deschis i-au descurajat, datorit nivelului ridicat de prezentare. Acestora li se adreseaz aceast carte, oameni cu pregtire academic ntr-un domeniu conex, dar care au nevoie de cunotine pentru a nelege bazele de date, fie pentru cultura general, fie pentru necesiti profesionale.

    Pentru a nelege i utiliza bazele de date nu trebuie s fii informatician, trebuie s ai dorina de a studia i s ai o carte bun, orientat spre scopul imediat i uurat de balastul greoi al explicaiilor teoretice de strict specialitate, care oricum nu vor fi nelese de un nceptor i nu le va folosi niciodat. n acest spirit a fost scris aceast carte, pentru oameni care doresc s aplice imediat cunotinele dobndite.

    Cartea e structurat pe 5 capitole ntr-o cronologie logic, de la explicarea noiunilor i conceptelor pn la conceperea de aplicaii n ACCESS.

    Capitolul 1 este axat pe prezentarea domeniului bazelor de date relaionale unde se folosesc i la ce sunt folosite acestea.

    Capitolul 2 se ocup cu prezentarea termenilor i conceptelor folosite n bazele de dare relaionale, pentru ca acestea s fie corect nelese i folosite.

    Capitolul 3 este consacrat iniierii n proiectarea bazelor de date relaionale, avnd n vedere c muli specialiti i manageri sunt implicai n proiectarea de baze de date i sisteme informatice fr s aib un minim de pregtire n domeniu. Se pleac de la constatarea c proiectarea bazelor de date nu are legtur cu implementarea lor (pe care o fac specialitii n informatic), iar cei care dau, n ultim instan, specificaiile sunt chiar utilizatorii finali. De fapt, sunt aceia care formuleaz cerinele i obiectivele bazei de date, prin intermediul caietului de sarcini.

    Capitolul 4 este dedicat iniierii n limbajul SQL, un limbaj apropiat de limbajul uman i uor de neles. Practica mi-a demonstrat c limbajul SQL este repede asimilat i folosit pentru interogarea bazelor de date de ctre nceptori. Exemplele prezentate aici sunt foarte sugestive, bine alese i pot fi folosite ca modele pentru situaii concrete.

    Capitolul 5 este dedicat iniierii n sistemul de gestiune a bazelor de date ACCESS, folosind cunotinele dobndite n capitolele anterioare. Aici se nva crearea tabelelor, formularelor, interogrilor i rapoartelor.

  • 4

    Exemplele prezentate sunt inspirate din situaii concrete, reale, care sunt bune modele pentru propriile aplicaii. Expresiile SQL vor fi acum testate pe viu putndu-se verifica imediat corectitudinea lor i rezultatele obinute.

    Tot aici sunt prezentate modalitile de transpunere a rapoartelor n format HTML pentru a fi publicate pe Internet.

    Lucrarea se adreseaz studenilor facultilor de inginerie, dar este util i persoanelor care au nvat bazele de date din mers i doresc s-i verifice i s-i sistematizeze cunotinele.

    Dup ce ai parcurs acest curs, trebuie s dobndii capacitatea:

    de a proiecta baze de date simple la nceput, a cror complexitate s creasc odat cu experiena acumulat;

    de a implementa aplicaii de baze de date n ACCESS, la nivelul firmelor mici i instituiilor;

    de a avea o baz de plecare pentru un viitor job ntr-o echip profesionist de dezvoltare a aplicaiilor de baze de date.

    Dac aceast carte a reuit s v mbogeasc bagajul de cunotine generale, dac ai reuit s nelegei ce este o baz de date i la ce este bun, dac ai reuit s creai o baz de date ACCESS i s o folosii ntr-un scop util, dac ai reuit s publicai pe Internet cel puin un raport din baza de date pe care ai creat-o sau din alta, nseamn c efortul depus pentru scrierea ei nu a fost zadarnic.

    Tg. Mure, 2008 Autorul

  • 5

    Cuprins Cuvnt nainte ............................................................................................... 3 Capitolul 1. Noiuni de baz despre bazele de date ................................... 11

    Modelul de baz de date relaional .......................................................... 12

    Regsirea datelor ....................................................................................... 13

    Sisteme de gestiune a bazelor de date relaionale ..................................... 14

    Dincolo de modelul relaional ................................................................... 15

    ntrebri pentru autoevaluare .................................................................... 16

    Capitolul 2. Terminologia bazelor de date relaionale ............................. 17

    Importana terminologiei .......................................................................... 17

    Termeni referitori la valoare ..................................................................... 18

    Date i informaii ................................................................................. 18

    Valoare nul ......................................................................................... 19

    Termeni referitori la structur ................................................................... 20

    Tabel .................................................................................................... 20

    Cmp .................................................................................................... 22

    nregistrare ........................................................................................... 23

    Vedere .................................................................................................. 24

    Chei ...................................................................................................... 26

    Index .................................................................................................... 28

    Termeni referitori la relaie ....................................................................... 29

    Relaii ................................................................................................... 29

    Relaii unu cu unu ................................................................................ 30

    Relaii unu cu mai muli ....................................................................... 31

    Relaii mai muli cu mai muli ............................................................. 32

    Tipuri de participare ............................................................................. 34

    Gradul de participare ............................................................................ 35

    Termeni referitori la integritate ................................................................. 36

    Specificaie de cmp ............................................................................ 36

    Integritatea datelor ............................................................................... 36

    ntrebri pentru autoevaluare .................................................................... 37

    Capitolul 3. Proiectarea bazelor de date relaionale ................................. 39

  • 6

    Etapa 1 Definirea unei declaraii de intenie i a obiectivelor misiunii .. 40

    Compunerea unei declaraii de intenie ................................................ 41

    Definirea obiectivelor misiunii ............................................................. 42

    ntrebri pentru autoevaluare ................................................................ 43

    Etapa 2 - Analiza bazei de date curente .................................................... 44

    ntrebri pentru autoevaluare ................................................................ 46

    Etapa 3 - Crearea structurilor de date ........................................................ 46

    Definirea listei finale de tabele ............................................................. 47

    Asocierea cmpurilor fiecrui tabel ...................................................... 50

    Utilizarea unui cmp ideal pentru rezolvarea anomaliilor .................... 52

    Stabilirea cheilor pentru fiecare tabel ................................................... 53

    ntrebri pentru autoevaluare ................................................................ 56

    Revizuirea structurilor iniiale de tabel ................................................ 57

    Specificaii de cmp ............................................................................. 58

    Anatomia unei specificaii de cmp .................................................. 60

    ntrebri pentru autoevaluare ............................................................... 66

    Etapa 4 - Determinarea i instituirea relaiilor ntre tabele ...................... 67

    Diagrama relaiilor unu cu unu ............................................................ 67

    Diagrama relaiilor unu cu mai muli ................................................... 70

    Diagrama relaiilor mai muli cu mai muli ......................................... 73

    Relaii cu autoreferire .......................................................................... 77

    Identificarea relaiilor existente ........................................................... 80

    Stabilirea caracteristicilor relaiilor ..................................................... 87

    Definirea unei reguli de tergere ....................................................... 87

    Identificarea tipului de participare a fiecrui tabel ........................... 88

    Identificarea gradului de participare a fiecrui tabel ........................ 90

    Integritatea la nivel de relaie .............................................................. 92

    Etapa 5 - Determinarea i definirea regulilor de desfurare a activitii 93

    Reguli specifice cmpurilor ................................................................. 93

    Reguli specifice relaiilor ..................................................................... 96

    Tabele de validare ................................................................................ 97

    Etapa 6 - Determinarea i definirea vederilor .......................................... 98

    Etapa 7 - Revizuirea integritii datelor ................................................... 102

    Revizuirea i mbuntirea integritii datelor ................................... 103

  • 7

    Alctuirea documentaiei bazei de date ............................................... 105

    Studiu de caz. Proiectarea unei baze de date ............................................ 106

    Declaraia de intenie ........................................................................... 106

    Obiectivele misiunii ............................................................................. 106

    Analiza bazei de date curente .............................................................. 106

    Crearea structurilor de date ................................................................. 107

    Determinarea i instituirea relaiilor ntre tabele ................................. 110

    Determinarea i definirea regulilor de desfurare a activitii ........... 111

    Determinarea i definirea vederilor ..................................................... 115

    Verificarea integritii datelor ............................................................. 118

    Concluzii privind proiectarea bazelor de date relaionale ................... 118

    Capitolul 4. Iniiere n limbajul SQL ......................................................... 120

    Prezentare general ................................................................................... 120

    Operaiuni simple folosind limbajul SQL ................................................. 122

    Regsirea datelor ............................................................................... 122

    Sortarea datelor ................................................................................. 123

    Filtrarea datelor ................................................................................. 124

    Operatorii clauzei WHERE .................................................. 125

    Filtrare avansat ................................................................... 126

    Operaiuni avansate folosind limbajul SQL .............................................. 132

    Cmpuri calculate ............................................................................. 132

    Funcii pentru manipularea datelor ................................................... 134

    Gruparea datelor ............................................................................... 137

    Crearea grupurilor ................................................................ 137

    Filtrarea grupurilor ............................................................... 139

    Lucrul cu subselecii ......................................................................... 141

    Unirea tabelelor ................................................................................ 147

    Crearea unei uniri simple ..................................................... 147

    Uniri avansate ...................................................................... 138

    Compunerea interogrilor ................................................................. 151

    Inserarea, actualizarea i tergerea datelor ........................................ 155

    Inserarea datelor ................................................................... 155

    Actualizarea datelor ............................................................. 157

    tergerea datelor .................................................................. 159

  • 8

    Principii privind actualizarea i tergerea datelor ................ 160

    Crearea i manipularea tabelelor ....................................................... 162

    Elemente performante ale limbajului SQL ................................................ 164

    Concluzii ........................................................................................... 167

    Capitolul 5. Utilizarea programului ACCESS .......................................... 168

    Prezentare general ................................................................................... 168

    Interfaa programului Access ..................................................................... 170

    Crearea tabelelor ....................................................................................... 172

    Relaii ntre tabele ............................................................................. 174

    Crearea relaiilor cu Lookup Wizard ................................................ 177

    Introducerea datelor n tabele ........................................................... 179

    Formulare .................................................................................................. 181

    Crearea unui formular ....................................................................... 181

    Crearea automat a unui formular ......................................... 182

    Crearea manual a unui formular ......................................... 185

    Formulare cu subformulare ............................................................... 189

    Interogri ................................................................................................... 195

    Crearea interogrilor folosind limbajul SQL .................................... 195

    Crearea interogrilor cu aplicaia Wizard(Design view) .................. 196

    Legarea permanent a dou tabele .................................................... 200

    Interogri cu parametri ...................................................................... 203

    Rapoarte .................................................................................................... 206

    Crearea unui raport simplu ................................................................ 206

    Crearea unui raport cu Report Wizard .............................................. 208

    Particularizarea unui raport ............................................................... 214

    Macro-uri ................................................................................................... 217

    Crearea macrocomenzilor cu o singur aciune ................................. 218

    Crearea macrocomenzilor cu mai multe aciuni ................................ 220

    Rularea macrocomenzilor .................................................................. 221

    Rularea unei macrocomenzi din fereastra Database ............ 222

    Rularea unei macrocomenzi dintr-un grup ........................... 222

    Utilizarea aciunii RunMacro ............................................... 222

    Macrocomenzi ataate evenimentelor .................................. 223

    Utilizarea macrocomenzilor AutoExec i AutoKeys ........... 223

  • 9

    Metod rapid de pornire a aplicaiilor ............................... 224

    Publicarea datelor pe Internet ................................................................... 225

    Pagini Web statice ............................................................................ 226

    Pagini Web dinamice ........................................................................ 228

    Crearea unei pagini dinamice de date cu AutoPage .......... 228

    Crearea paginilor dinamice cu Page Wizard ....................... 229

    Comunicarea ntre aplicaiile pachetului Office ....................................... 231

    Exportul i importul de date ............................................................. 232

    Recomandri privind crearea aplicaiilor Access ..................................... 232

    Anexe ............................................................................................................. 235

    Anexa A. Administratorul de baz de date .......................................... 235

    Anexa B. Sintaxa instruciunilor SQL ................................................. 237

    Bibliografie ..................................................................................................... 239

  • 10

    Pagin goal

  • Baze de date Capitolul 1

    11

    Noiuni de baz despre bazele de date

    Sintagma baz de date este folosit att n viaa de zi cu zi, n mijloacele de comunicare n mas, ct i de specialitii din domeniul tehnologiei informaiei. E greu s ne gndim la un domeniu de activitate care s nu foloseasc, ntr-un fel sau altul, baze de date. Astfel, cnd scoatem bani de la bancomat, parola noastr este verificat cu o baz de date, medicul ne identific dintr-o baz de date cu pacieni, cnd ne prezentm la vot suntem identificai dintr-o baz de date, iar exemplele pot continua.

    Exist mai multe definiii ale bazelor de date, dar cea mai simpl pentru aceast faz de studiu este: baza de date este un set de date stocate ntr-un mod organizat. nelegerea acestei definiii va fi uurat de un exemplu. Astfel, crile dintr-o bibliotec nu sunt puse la ntmplare, ele sunt aezate pe rafturi, dup o anumit logic, mprite pe domenii, pentru ca atunci vrem s ajungem la o carte, ea s poat fi localizat uor. Prin urmare, este clar c atunci cnd cutm o carte n biblioteca personal, o gsim mai uor dac este ordine i o gsim greu sau deloc dac ne inem crile n dezordine. Aceast idee o s fie aplicat n proiectarea bazelor de date, unde este foarte important organizarea corect a informaiilor.

    Termenul de baz de date este folosit de multe ori n mod eronat, confundndu-se cu softul pentru baz de date care este utilizat. n realitate, softul pentru baze de date este numit sistem de gestiune a bazelor de date (SGBD), iar baza de date este

    recipientul care conine informaiile, recipient creat i manipulat prin intermediul SGBD. Coninutul acestui recipient se schimb foarte des, atunci cnd se lucreaz cu baza de date (adugri, tergeri i modificri de informaii).

    Baza de date este perceput de multe persoane ca fiind un simplu tabel. Acest lucru nu este greit, atta vreme ct la studiul limbajului Excel am descoperit tabele la care le spuneam i baze de date. ntr-adevr, acele tabele erau baze de date foarte simple care aveau nite comenzi i funcii cu care le putem sorta, filtra i chiar fceam unele calcule cu ele. Cu aceste baze de date puteam rezolva multe probleme de gestionare a unor informaii.

    Bazele de date clasice conin mai multe tabele care sunt legate ntre ele prin relaii care vor fi studiate mai trziu. Exist mai multe modele de baze de date clasice:

    Model de baz de date ierarhic Model de baz de date reea

  • Baze de date Capitolul 1

    12

    Model de baz de date relaional

    Primele dou modele au numai valoare istoric, se mai folosesc foarte puin sau deloc, aa c nu ne vom opri asupra lor. Modelul relaional este cel care se folosete astzi datorit avantajelor pe care l prezint i care va fi studiat n aceast carte.

    Modelul de baz de date relaional

    Baza de date relaional a fost conceput n anul 1969 i este azi cel mai folosit model de baze de date n gestiunea bazelor de date. Acest model este fundamentat pe dou ramuri ale matematicii teoria mulimilor i logica predicatelor de ordinul nti. ntr-adevr, numele modelului provine de la termenul relaie, care constituie o parte a teoriei mulimilor.

    O concepie greit, larg rspndit, este aceea c modelul relaional i-ar fi preluat numele de la faptul c ntre tabelele unei baze de date relaionale exist relaii.

    O baz de date relaional stocheaz datele n relaii, pe care un utilizator le percepe ca pe nite tabele. Fiecare relaie este compus din nregistrri i cmpuri, iar ordinea fizic a nregistrrilor sau a cmpurilor dintr-un tabel este complet lipsit de importan, iar fiecare nregistrare a tabelului este identificat, nu dup locul unde se afl, ci dup un cmp care conine o valoare unic. Prin urmare, utilizatorul nu este obligat s cunoasc locaia fizic a unei nregistrri aa cum se ntmpl la celelalte modele de baz de date (ierarhic i reea), pentru regsirea datelor.

    Modelul relaional clasific relaiile ca fiind de tip: unu la unu, unu la mai muli i mai muli la mai muli. Aceste relaii vor fi studiate n detaliu mai trziu. O relaie dintre dou tabele este stabilit n mod implicit prin intermediul valorilor

    echivalente ale unui anumit cmp. n figura 1, tabelele tblStudenti i

    tblSectii sunt corelate prin intermediul cmpului SectiaID; un anumit student este corelat cu o secie prin intermediul unui identificator de secie identic.

    Atta timp ct utilizatorul cunoate relaiile dintre tabelele incluse ntr-o baz de date, poate avea acces la date ntr-un mare numr de moduri. De exemplu, dup cum se vede n figura 1.1, prin intermediul acelei relaii, putem afla numele seciei i crei faculti aparine. Dac tabelul ar conine mai multe coloane, am avea acces la toate coloanele, aa cum vom vedea mai trziu.

  • Baze de date Capitolul 1

    13

    tblSectii

    SectiaID Denumire Facultate

    1 TCM Inginerie

    2 IEI Inginerie

    3 Informatica Stiinte

    4 Istorie Stiinte

    Regsirea datelor

    Datele stocate ntr-o baz de date trebuie regsite rapid ori de cte ori este nevoie de ele. Datele dintr-o baz de date relaional se regsesc prin intermediul unui limbaj specializat de interogare numit SQL(Structured Query Language). SQL

    este limbajul standard folosit pentru crearea, modificarea, ntreinerea i interogarea bazelor de date relaionale. n figura 1.2 este prezentat un exemplu de interogare SQL pe care o putem utiliza pentru a obine o list cu studenii de la IEI.

    SELECT Nume, Prenume, Telefon

    FROM tblStudenti

    WHERE SectiaID = 2

    ORDER BY Nume, Prenume

    Aceast instruciune s-ar putea traduce astfel: extrage din tabelul tblStudenti

    cmpurile Nume, Prenume i Telefon, nregistrrile care au valoarea

    cmpului SectiaID egal cu 2, ceea ce corespunde seciei IEI. Ordoneaz lista

    dup cmpul Nume.

    tblStudenti

    StudentID Nume Prenume SectiaID Telefon

    1 Pop Ioan 1 234675

    2 Ban Lucia 2 234375

    3 Pop Dorin 3 234076

    4 Lazar Liviu 2 233777

    Fig. 1.1. Exemplu de tabele corelate

    Fig. 1.2. Exemplu de instruciune de interogare SQL

  • Baze de date Capitolul 1

    14

    Cele trei componente fundamentale ale unei interogri SQL le reprezint instruciunea SELECTFROM, clauza WHERE i clauza ORDER BY. Dar despre toate acestea vom discuta detaliat n capitolul 4.

    Sistemele de gestiune a bazelor de date relaionale

    Un sistem de gestiune a bazelor de date relaionale (SGBDR) este un program software folosit pentru crearea, ntreinerea, modificarea i manipularea unei baze de date relaionale. Numeroase programe SGBDR furnizeaz i instrumentele necesare pentru a putea crea aplicaii destinate utilizatorilor finali care lucreaz cu datele din baza de date. Numeroasele faciliti oferite de diferii productori evolueaz foarte rapid, devenind din ce n ce mai performante.

    Primele SGBDR-uri au fost concepute pentru sisteme de tip desktop. Acestea

    presupun existena unei copii a bazei de date pe fiecare calculator care nu este un mare avantaj, n ceea ce privete actualizarea datelor. n acest context a aprut necesitatea amplasrii n mod centralizat a ntregii baze de date care s fie accesat de toi utilizatorii. Aa au aprut SGBDR-urile de tip client-server n care bazele de date se stocheaz pe un server de baze de date, iar utilizatorii interacioneaz cu datele prin intermediul unor aplicaii rezidente pe propriul calculator numit clientul bazei de date.

    Creatorul de baze de date folosete programul client-server SGBDR pentru a crea i ntreine programele de aplicaie de baze de date i programele accesorii pentru utilizatorul final. Acesta implementeaz integritatea i securitatea datelor din serverul de baze de date, avnd astfel posibilitatea de a fundamenta o diversitate de aplicaii utilizator pe acelai set de date, fr a afecta integritatea i securitatea datelor.

    Cele mai cunoscute SGBDR-uri sunt:

    Microsoft Access

    Microsoft SQL Server

    Oracle

    MySQL

    PostgreSQL

    Microsoft Access este un SGBDR comercial de tip desktop, folosit pentru

    gestionarea bazelor de date de dimensiuni mici i medii. Poate acoperi fr probleme segmentul firmelor mici i mijlocii. Este sistemul de gestiune pe care l vom studia i noi n aceast carte.

  • Baze de date Capitolul 1

    15

    Microsoft SQL Server este un SGBDR de tip client-server care accept baze de date foarte mari i un numr foarte mare de tranzacii i ruleaz numai pe sistemele de operare Windows. Este soluia ideal pentru firmele mari, la un pre de cost relativ sczut.

    Oracle este liderul mondial al pieei SGBDR-urilor de tip client-server. Oracle accept baze de date enorme i un numr imens de tranzacii. Oracle ruleaz pe numeroase sisteme de operare, este un SGBDR complex a crui operare i ntreinere trebuie fcute de un administrator special instruit pentru acest scop. Se ntlnete la marile companii transnaionale, deoarece preul su este pe msura performanelor.

    MySQL este un SGBDR din categoria open-source(codul surs este pus gratuit la dispoziia utilizatorilor) fiind unul din liderii pieei. MySQL este rapid, stabil i accept baze de date de mari dimensiuni, dar i lipsesc cteva din caracteristicile importante ale limbajului SQL. Versiunile viitoare i propun includerea acestor caracteristici. Ruleaz pe mai multe sisteme de operare i este gratuit pentru utilizarea n scopuri personale(care nu aduc un ctig).

    PostgreSQL este un SGBDR din categoria open-source, fiind unul din liderii

    pieei. Accept baze de date de mari dimensiuni, este recunoscut pentru setul su bogat de caracteristici.

    Dincolo de modelul relaional

    Programele SGBDR au fost acceptate pe scar larg fiind utilizate n aplicaii de afaceri concrete, precum inventarele, gestiunea pacienilor, a materialelor i pieselor, n domeniul bancar, dar s-au dovedit a lipsi n aplicaii de genul proiectrii asistate de calculator (CAD), sisteme informaionale geografice (GIS) i sisteme de stocare multimedia. Ca rspuns la aceast problem au aprut dou noi modele de baz de date: modelul orientat spre obiect i modelul relaional obiect.

    Modelul orientat spre obiect ncorporeaz toate caracteristicile unui limbaj de programare orientat spre obiect, iar baza de date relaional este retrogradat la statutul de magazie de date. Ideea fundamental este c dezvoltatorul bazei de date trateaz fiecare aspect al acesteia, inclusiv setul de operaiuni care manipuleaz datele din baza de date, din interiorul limbajului de programare a bazei de date orientat obiect. Nu mai exist o diferen clar ntre programul de baz de date i programul de realizare a aplicaiilor.

    Dei este un pas nainte, modelul orientat spre obiect nu ntrunete consensul tuturor specialitilor din domeniu. Viitorul va da ns verdictul n aceast problem delicat.

  • Baze de date Capitolul 1

    16

    Modelul relaional obiect a extins modelul bazei de date relaionale prin ncorporarea a diferite elemente i caracteristici orientate spre obiect, precum clase, ncapsulare i motenire. Ideea era ca aceste extensii s permit unei baze de date relaionale s gestioneze i s manipuleze tipuri de date complexe, precum secvene audio sau video i desene sau reprezentri grafice.

    Modelul relaional obiect nc nu a fost definitivat, se mai lucreaz la el, majoritatea specialitilor consider c aceasta este direcia corect. El este exploatat i rafinat n continuare.

    Internetul exercit o mare influen asupra modului de utilizare a bazelor de date n cadrul organizaiilor. Multe companii i afaceri folosesc Web-ul pentru a-i extinde baza de consumatori, iar o bun parte din datele oferite acestor consumatori, respectiv pe care le preiau de la acetia, sunt stocate ntr-o baz de date. Internetul a generat un limbaj numit XML (eXtensible Markup Language)

    capabil s partajeze date din diferite sisteme eterogene. Muli productori de SGBDR se orienteaz spre ncorporarea a ct mai multe caracteristici XML n propriile produse.

    Cu toate noile orientri prezentate, bazele de date relaionale pe care le vom studia nu vor dispare n viitorul apropiat.

    ntrebri pentru autoevaluare

    De unde vine termenul de baz de date relaional?

    Cum se stocheaz datele ntr-o baz de date relaional?

    Denumii cele trei tipuri de relaii existente ntr-o baz de date relaional.

    Indicai cteva avantaje ale bazelor de date relaionale.

    Ce este un sistem de gestiune a bazelor de date relaionale?

    Care sunt cele mai cunoscute sisteme de gestiune a bazelor de date

    relaionale?

  • Baze de date Capitolul 2

    17

    Capitolul 2. Terminologia bazelor de date relaionale

    n acest capitol vom clarifica termenii folosii n teoria i practica bazelor de date relaionale, pentru a evita confuziile fcute de unii membri implicai n procesul de proiectare sau exploatare.

    Importana terminologiei

    Este important s nelegem termenii prezentai n acest capitol nainte de a ncepe studiul bazelor de date relaionale. Proiectarea bazelor de date are un set de termeni specifici ca, de altfel, orice profesie, meserie sau

    disciplin.

    Iat cteva motive care justific importana nvrii acestor termeni:

    Termenii respectivi sunt utilizai pentru a exprima i defini ideile i conceptele speciale ale modelului de baze de date relaionale. O bun parte din terminologie deriv din ramurile matematice ale teoriei mulimilor i respectiv logicii predicatelor de ordinul nti.

    Termenii respectivi sunt utilizai pentru a exprima i defini nsui procesul de proiectare a bazelor de date. Procesul de proiectare devine

    mai clar i mult mai simplu de neles, dup ce v-ai familiarzat cu aceti termeni.

    Termenii respectivi sunt utilizai oriunde se discut despre o baz de date relaional sau despre un program SGBDR. Vei ntlni aceti termeni n publicaii cum ar fi reviste de comer, manuale de programare SGBDR, suporturi de cursuri etc. De asemenea, vei auzi aceti termeni n conversaiile ntre diferite categorii de profesioniti din domeniul bazelor de date.

    Exist patru categorii de termeni de care o s ne ocupm n acest capitol, termeni referitori la: valoare, structur, relaie i integritate.

  • Baze de date Capitolul 2

    18

    Total plat: 57.50

    Total plat: 57.50

    Total plat: 57.50

    Termeni referitori la valoare

    Date i informaii

    Valorile pe care le stocm n bazele de date se numesc date. Acestea sunt statice n sensul c rmn aceleai pn nu intervine o modificare manual sau automat. n figura 2.1 este prezentat un exemplu de date.

    La prima vedere, aceste date sunt lipsite de sens pentru c nu ne putem da seama ce reprezint numrul 6582421 sau celelalte, chiar dac observm c una din valori este o dat calendaristic iar ultima este un numr zecimal. Nu ne putem da seama pn nu prelucrm datele.

    Informaiile reprezint date pe care le prelucrm ntr-un mod care le confer semnificaie i utilitate pentru noi atunci cnd lucrm cu respectivele date. Informaiile sunt dinamice, n sensul c se modific n permanen dup cum se modific datele din baza de date, dar i n sensul c pot fi prelucrate ntr-un numr nelimitat de moduri. Ideea care trebuie reinut este c trebuie s prelucrm datele pentru a le putea transforma n informaii cu sens.

    Figura 2.2 demonstreaz un mod n care datele din exemplul precedent pot fi prelucrate i transformate n iformaii. Datele respective au fost manipulate nct au ajuns ntr-o factur pentru un pacient nct acum au sens pentru oricine le citete.

    Spitalul Municipal Tg. Mures Pacient: George Fodor Str. Clinicilor nr.66 Cod pacient: 6582421 Sectia Cardiologie Data consultaiei: 12/05/2004 Medic: dr. Hipocrate B. Consultaii Analize

    General 30.00 Snge

    EKG 27.50 Urina

    Ultrasunete Glicemie

    George Fodor 6582421 12/05/2004

    57.50

    George Fodor 6582421 12/05/2004

    57.50

    George Fodor 6582421 12/05/2004

    57.50

    George Fodor 6582421 12/05/2004

    57.50

    Fig. 2.1. Exemplu de date elementare

    x

    x

    Fig. 2.2. Exemplu de date transformate n informaii

  • Baze de date Capitolul 2

    19

    Este foarte important s nelem diferena dintre date i informaii. O baz de date este proiectat astfel nct s furnizeze informaii semnificative pentru orice persoan abilitat din cadrul unei firme sau organizaii. Aceste informaii pot fi puse la dispoziie numai dac datele corespunztore exist n baza de date i dac aceasta din urm este astfel structurat nct s permit obinerea informaiilor respective.

    Dac uitai vreodat care este diferena dintre date i informaii, reinei urmtoarea axiom:

    Datele se stocheaz, iar informaiile se regsesc.

    Din pcate, exist cri comerciale n care se confund datele cu informaiile.

    Valoare nul

    O valoare nul reprezint o valoare care lipsete sau care nu este cunoscut. Deseori, valoarea nul se confund cu un zero sau unul sau mai multe spaii albe, ceea ce este total greit, din urmtoarele motive:

    Un zero poate avea mai multe semnificaii cum ar fi nivelul stocului unui anumit produs, numrul de apariii a unui cod etc.

    Dei un ir text format din unul sau mai multe spaii albe nu nseamn nimic pentru cei mai muli dintre noi, reprezint categoric semnificaie pentru un limbaj de interogare cum ar fi SQL. Un spaiu alb este un caracter ca oricare altul cum ar fi a.

    Un ir de lungime zero adic dou ghilimele consecutive fr spaiu ntre ele , este de asemenea o valoare acceptabil pentru limbaje precum SQL i poate fi semnificativ n anumite circumstane.

    De menionat faptul c n practic, apar multe cazuri cnd la completarea unui cmp al unui tabel este mpiedicat de necunoaterea, pe moment, a valorii respective i n acest caz va apare o valoare nul. Acest cmp poate fi completat ulterior, dup ce se afl valoarea respectiv (ex., un numr de telefon, un cod etc.).

    Principalul dezavantaj al valorilor nule este acela c pot avea efect negativ asupra calculelor matematice, tiut fiind c rezultatul unei operaii matematice n care este implicat o valoare nul, este o valoare nul. Problema valorilor absente, necunoscute, precum i faptul c vor fi folosite

  • Baze de date Capitolul 2

    20

    sau nu n expresii matematice sau funcii agregat, vor fi luate n considerare n decursul procesului de proiectare a bazelor de date relaionale.

    Termeni referitori la structur

    Tabel

    n conformitate cu modelul relaional, datele dintr-o baz de date relaional sunt stocate n relaii, care sunt percepute de utilizator sub form de tabele. Fiecare relaie este alctuit din nregistrri (tupluri) i cmpuri (atribute). n figura 2.3 este prezentat o structur de tabel caracteristic.

    Fig. 2.3. O structur de tabel

    Tabelele reprezint structurile eseniale dintr-o baz de date, iar fiecare tabel reprezint ntotdeauna un singur subiect concret, cum ar fi studeni, produse, vnzri etc. Ordinea logic a nregistrrilor i a cmpurilor din cadrul unui tabel nu are nici o importan, iar fiecare tabel conine cel puin un cmp cunoscut sub numele de cheie primar care identific n mod unic fiecare nregistrare a tabelului. n figura 2.3, StudentID este cheia primar a tabelului tblStudenti.

    Datele dintr-o baz de date relaional pot exista independent de modul n care sunt stocate fizic n calculator, datorit acestor ultime dou caracteristici ale unui tabel. Pentru utilizator acest lucru este foarte bun,

    deoarece acesta nu mai trebuie s cunoasc locaia fizic a unei nregistrri pentru a putea regsi datele.

    StudentID Nume Prenume Sectia

    5001 Pop Mariana TCM

    5002 Ban Ioan TCM

    5012 Lazr Ana IEI

    5065 Ban Lucia IMPI

    5032 Pop Dorin MEC

    Cmpuri

    nregistrri

  • Baze de date Capitolul 2

    21

    Subiectul pe care l reprezint un tabel dat poate fi un obiect sau un eveniment. Cnd subiectul este un obiect, tabelul reprezint o cantitate palpabil, precum o persoan, un produs sau un lucru oarecare. Indiferent de tipul su, un obiect are caracteristici care pot fi stocate sub form de date, care vor putea fi prelucrate ulterior ntr-un numr mare de moduri.

    Cnd subiectul unui tabel este un eveniment, nseamn c tabelul reprezint ceva care se produce la un anumit moment de timp i care are caracteristici pe care dorii s le nregistrai. Exemplul clasic care se poate da aici este tabelul cu consultaiile inute de un medic de familie. n figura 2.4 este prezentat un astfel de tabel.

    PacientID Data cons. Ora cons. Medic Tensiune

    92001 12-1-2005 8:30 Avram I. 120/80

    97004 12-1-2005 9:00 Avram I. 125/80

    98023 12-1-2005 9:30 Popescu D. 130/82

    93034 12-1-2005 10:30 Popescu D. 145/90

    94001 12-1-2005 11:45 Avram I. 132/86

    Fig. 2.4. Tabel care reprezint un eveniment

    Tabelele pot fi, ntr-o alt clasificare, de dou tipuri:

    Tabele de date care furnizeaz date folosite pentru furnizarea de informaii i reprezint tipul de tabel cel mai frecvent ntlnit ntr-o baz de date. Datele din acest tip de tabel sunt dinamice deoarece se pot manipula

    (modificare, tergere) i converti n informaii ntr-o anumit form sau manier. Cu astfel de tabele vei lucra foarte frecvent n decursul lucrului cu baza de date.

    Tabele de validare care stocheaz date pe care le vei folosi cu scopul precis de a implementa integritatea datelor. De obicei, un tabel de validare

    conine nume de localiti, coduri de produse, categorii de activiti etc. Datele din acest tip de tabel sunt statice, adic se modific foarte rar.

    n figura 2.5 este prezentat un tabel de validare pentru seciile facultii de inginerie.

    SectieID Denumire

    11 TCM

    13 IEI

    12 Mecatronica

    15 Ingineria mediului

    19 Design

    Fig. 2.5. Tabel de validare

    Fig. 2.5. Tabel de validare

  • Baze de date Capitolul 2

    22

    n loc s introducem greit ntr-un alt tabel, numele unei secii, vom introduce codul su, asigurnd n acest fel integritatea datelor.

    Cmp

    Un cmp reprezint cea mai mic structur din baza de date i reprezint o caracteristic a subiectului tabelului cruia i aparine. Cmpurile sunt structurile care stocheaz efectiv datele, care apoi pot fi regsite i prezentate ca informaii n aproape orice configuraie pe care o putei imagina.

    Calitatea informaiilor pe care o vei obine din datele pe care le avei este direct proporional cu timpul dedicat asigurrii integritii structurale i de date a cmpurilor nsei.

    Fiecare cmp dintr-o baz de date corect proiectat conine singur valoare, iar numele su va identifica tipul de valoare admis. Astfel, procesul de introducere a datelor devine foarte intuitiv. Dac vedei cmpuri cu nume precum Nume, Prenume, Judet, Localitate, Telefon sau Cod postal, atunci vei ti exact ce tipuri de date vei introduce n fiecare cmp. De asemenea, va fi foarte simplu s sortai datele n funcie de jude ori s cutai persoanele dintr-o anumit localitate a unui jude.

    ntr-o baz de date slab proiectat sau proiectat inadecvat, vei ntlni n mod caracteristic alte trei tipuri de cmpuri, dup cum urmeaz:

    Un cmp multiplu (numit i cmp cu mai multe pri) care conine dou sau mai multe elemente distincte n cadrul valorii acestuia.

    Un cmp cu valori multiple (numit i cmp cu mai multe valori) care conine mai multe apariii ale aceluiai tip de valoare.

    Un cmp calculat, care conine o valoare de text concatenat sau rezultatul unei expresii matematice.

    n figura 2.6 este prezentat un tabel care conine cte un cmp din fiecare tip amintit mai sus.

  • Baze de date Capitolul 2

    23

    nregistrare

    O nregistrare reprezint o instan unic a subiectului unui tabel. nregistrarea este alctuit din ntregul set de cmpuri dintr-un tabel, indiferent dac respectivele cmpuri conin sau nu valori. Datorit modalitii de definire a unui tabel, fiecare nregistrare este definit n baza de date prin intermediul unei valori unice a cmpului cheie primar a nregistrrii respective. Astfel, dac avem un tabel de persoane, o nregistrare din tabel trebuie s identifice fiecare persoan din tabel, care este un unicat.

    n figura 2.6, fiecare nregistrare reprezint un produs unic din cadrul tabelului, iar cmpul ProdusID este folosit pentru a identifica un produs din cadrul bazei de date. La rndul su, fiecare nregistrare include toate cmpurile din tabel, iar fiecare cmp descrie un aspect al produsului reprezentat de nregistrare.

    nregistrrile reprezint un element cheie pentru nelegerea relaiilor dintre tabele, deoarece va trebui s cunoatei relaia dintre o nregistrare a unui tabel i alte nregistrri din alt tabel.

    ProdusID Denumire Furnizor Pret Cant Valoare Loc, Judet Agent

    5001 Planetara SC Lion 900 5 4500 Dej, Cluj Pop, Rusu

    6023 Rulment SC RPA 23 10 230 Brasov,Bra

    sov

    Danciu

    6034 Acumulat

    or

    SC

    Rulment

    ul

    500 4 2000 Bistrita,

    Bistrita

    Danciu

    5098 Bujie SC ARC 12 100 1200 Cluj,Cluj Danciu, Pop

    5067 Antigel SC Lion 10 40 400 Dej, Cluj Pop, Rusu

    Fig. 2.6. Tabel cu cmpuri normale, calculate, multiple

    Cmp calculat

    Cmp multiplu

    Valori multiple

  • Baze de date Capitolul 2

    24

    Vedere

    O vedere este un tabel virtual compus din cmpuri dintr-unul sau mai multe tabele ale bazei de date; tabelele care alctuiesc vederea sunt cunoscute sub numele de tabele de baz. Modelul relaional i atribuie unei vederi atributul de virtual deoarece i preia datele din tabele de baz, nu-i stocheaz propriile sale date. De fapt, singurele informaii referitoare la o vedere care sunt stocate n baza de date se refer la structura vederii respective. Numeroase programe SGBDR principale lucreaz cu vederi, dar unele (precum Microsoft Access) le denumesc interogri salvate. Programul SGBDR pe care l utilizai va determina dac obiectul respectiv va fi denumit interogare sau vedere.

    Vederile permit privirea informaiilor din baza dumneavoastr de date din diferite unghiuri, furniznd o mare flexibilitate n lucrul cu datele. Putei crea vederi ntr-o varietate de moduri, iar o vedere este util mai ales cnd se bazeaz pe mai multe tabele corelate. ntr-o baz de date cu orare colare, de exemplu, putei crea o vedere care sintetizeaz date din tabelele ELEVI, CURSURI i ORARE CURSURI.

    n figura 2.7 este prezentat o vedere cu situaia mprumuturilor de cri, ale crei date au fost extrase din trei tabele: Studenti, Imprumuturi, Carti.

  • Baze de date Capitolul 2

    25

    Studenti

    Imprumuturi

    Carti

    Exist trei motive majore care confer importan vederilor:

    Vederile permit lucrul simultan cu date preluate din mai multe tabele, ntre care exist relaii.

    Vederile permit mpiedicarea anumitor utilizatori de a vedea sau manipula anumite cmpuri dintr-un tabel sau grup de tabele. Aceast posibilitate se poate dovedi foarte avantajoas din punctul de vedere al securitii datelor.

    StudentID Nume Prenume Telefon

    60001 Crian Ovidiu 0745-328092 ..

    60002 Lazr Denisa 0722-7575823 ..

    60003 Mocean Gabriel 0744-7575939 ..

    60004 Mocean Olimpiu 0723-6564321 ..

    StudentID CarteID Data

    60001 1001 3/10/2004

    60002 1001 3/10/2004

    60003 1099 5/10/2004

    60004 1099 5/11/2004

    CarteID Denumire Categorie

    1001 PUC P1 ......

    1099 Baze de date P1 ......

    1023 Fizica F1 .....

    1009 Chimie F1 ..

    Nume Prenume Denumire Data

    Crian Ovidiu PUC 3/10/2004

    Lazr Denisa PUC 3/10/2004

    Mocean Gabriel Baze de date 5/10/2004

    Mocean Olimpiu Baze de date 5/11/2004

    Situatie mprumuturi (vedere)

    Fig. 2.7. Un exemplu de vedere caracteristic

  • Baze de date Capitolul 2

    26

    Vederile se pot utiliza pentru implementarea integritii datelor, numite n acest caz vederi de validare.

    Chei

    Cheile sunt acele cmpuri speciale care ndeplinesc roluri foarte bine determinate n cadrul unui tabel, iar tipul cheii definete rolul acesteia n interiorul tabelului. Un tabel poate conine numeroase tipuri de chei, dar cele mai importante sunt cheia primar i cheia extern.

    O cheie primar este un cmp sau un grup de cmpuri care identific n mod unic fiecare nregistrare din cadrul unui tabel; dac o cheie primar este compus din dou sau mai multe cmpuri, este cunoscut sub numele de cheie primar compozit. O valoare a unei primare identific o anumit nregistrare din ntreaga baz de date. Cheia primar impune integritatea la nivel de tabel i faciliteaz stabilirea relaiilor cu alte tabele din baza de date.

    Reinei faptul c o cheie primar are valori unice n cadrul unui, aceasta fiind cea mai important proprietate a acesteia. De regul, cheile primare vor fi nite coduri numerice, uneori generate chiar de sistemul de gestiune a bazei de date, cum ar fi sistemul Access, pe care o s-l studiem n cadrul acestui curs i care tipul de dat AutoNumber, special gndit pentru generarea cheilor primare.

    O cheie extern dintr-un tabel este acea cheie care este cheie primar n alt tabel. Ea nu trebuie s fie unic dup cum vei observa n urmtorul exemplu, rolul ei este, n special, de a asigura legtura cu alt tabel. n figura 2.8 se pot vedea o cheie primar i o cheie extern.

  • Baze de date Capitolul 2

    27

    Impresari

    Cheie primar

    Sportivi

    Cheie extern

    Fig. 2.8. Exemplu de cmpuri cheie primar i cheie extern

    Se observ cum cmpul ImpresarID este cheie primar pentru tabelul Impresari i cheie extern pentru tabelul Sportivi. Acolo unde este cheie extern, valoarea ei se poate repeta, ceea ce este firesc, deoarece un impresar poate avea mai muli sportivi. Cmpul ImpresarID din cele dou tabele asigur legtura dintre ele, asigurnd n acelai timp i integritatea datelor, adic fiecare sportiv are un impresar valabil.

    Cnd determinai c ntre dou tabele exist o relaie, n mod caracteristic stabilii relaia respectiv prelund o copie a cheii primare din primul tabel i ncorpornd-o n structura celui de-al doilea tabel, unde devine cheie extern. Numele de cheie extern deriv din faptul c al doilea tabel are deja o cheie primar proprie, iar cheia primar pe care o introducei din primul tabel este extern pentru al doilea tabel.

    Dincolo de facilitatea stabilirii relaiilor dintre perechi de tabele, cheile externe contribuie i la implementarea i asigurarea integritii la nivel de relaie. Aceasta nseamn c nregistrrile din ambele tabele vor fi ntotdeauna corelate n mod adecvat, deoarece valorile unei chei externe trebuie s fie identice cu valorile existente ale cheii primare la care face referire. O greeal frecvent care se face de ctre nceptori, este c dau tipuri de dat diferite unor cmpuri pe care doresc s le foloseasc pentru legtura a dou tabele.

    De asemenea, integritatea la nivel de relaie permite evitarea periculoaselor nregistrri orfane, un exemplu clasic n acest sens reprezentndu-l

    ImpresarID Nume Prenume Telefon

    100 Becali Ioan 0745-655482

    101 Popescu Gic 0745-658312

    102 Becali Victor 0744-547212

    SportivID ImpresarID Nume sportiv Telefon

    8001 100 Mutu Adrian 0745-657329

    8002 101 Neaga Ioan 0744-768432

    8003 100 Chivu Cristian 0723-546291

    Cheie primar

  • Baze de date Capitolul 2

    28

    nregistrarea unei comenzi fr un client asociat. Dac nu tii cine a emis comanda, nu o putei prelucra i, evident, nu o putei factura, iar asta o s v duc de rp vnzrile trimestriale.

    Cmpurile cheie joac un rol important ntr-o baz de date relaional, iar dumneavoastr trebuie s nvai s le creai i s le utilizai.

    Index

    Un index este o structur pe care un program SGBDR o pune la dispoziie pentru mbuntirea procesului de prelucrare a datelor. Un index nu are nici o legtur cu structura logic a bazei de date. Unicul motiv pentru care discutm despre termenul index n acest capitol este faptul c oamenii l confund deseori cu termenul cheie.

    Index i cheie reprezint o alt pereche de termeni folosii eronat n mod frecvent i pe scar larg n industria bazelor de date. (Mai inei minte deosebirile dintre date i informaii?). Vei sesiza ntotdeauna diferena dintre cei doi termeni dac reinei c, n timp ce cheile sunt structuri logice pe care la identificarea nregistrrilor dintr-un tabel, indecii reprezint structuri fizice utilizate la optimizarea procesului de prelucrare a datelor.

    Prin folosirea indecilor, sortrile i filtrrile unei baze de date se face ntr-un timp mult mai scurt.

  • Baze de date Capitolul 2

    29

    Studenti

    Termeni referitori la relaie

    Relaii

    ntre dou tabele exist o relaie atunci cnd nregistrrile din primul tabel pot fi asociate cu nregistrrile din al doilea tabel. Relaia se poate stabili prin intermediul unui set de chei primare i chei externe sau cu ajutorul unui al treilea tabel, numit tabel de legtur (cunoscut i sub numele de tabel asociativ).

    Figura 2.8 ilustreaz o relaie stabilit prin intermediul cheilor primare i al cheilor externe, iar figura 2.9 exemplific o relaie stabilit cu ajutorul unui tabel de legtur.

    StudID Nume Prenume OrasStudent

    6001 Pop Remus Reghin ........

    6002 Szabo Zoltan Oradea ........

    6003 Costea Florian Zalau ........

    6004 Timocea Sebastian Brasov ........

    6004 Mocean Vasile Fagaras ........

    CursID Denumire Credite ProfesorID

    C001 PUC 5 25461

    C213 Baze de date 5 25461

    C032 SIM 4 56821

    C015 GD 5 12843

    G001 AutoCAD 4 32584

    G004 Inventor 5 3212

    G007 Intellicad 4 25461

    StudID CursID

    6001 C001

    6002 C213

    6002 C001

    6001 C213

    6002 C015

    6003 C001

    6003 C213

    6001 C015

    6003 G001

    6001 G001

    Fig.2.9. O relaie stabilit ntre dou tabele prin intermediul unui tabel de legtur

    Orar student(table de legtur) Cursuri

  • Baze de date Capitolul 2

    30

    Salariai

    O relaie este o component important a unei baze de date relaionale. O relaie permite crearea de vederi din tabele multiple i este crucial pentru integritatea datelor, ntruct contribuie la cantitii de date redundante i la eliminarea datelor duplicate. Putei caracteriza o relaie n trei moduri: n funcie de tipul relaiei dintre tabele, de maniera n care fiecare tabel particip la relaie i de gradul de participare al fiecrui tabel.

    Relaii unu cu unu

    Dou tabele au o relaie unu cu unu cnd o singur nregistrare din primul tabel este corelat cu o singur nregistrare din al doilea tabel i o singur nregistrare din al doilea tabel este corelat cu o singur nregistrare din primul tabel. n figura 2.10 este reprezentat o astfel de relaie.

    ntr-o asemenea relaie, un tabel servete ca tabel printe, iar cellalt ndeplinete rolul de tabel copil. Relaia se stabilete prin preluarea unei cpii a cheii primare a tabelului printe i ncorporarea acesteia n structura tabelului copil, unde devine o cheie extern. Acesta este un tip special de relaie, deoarece este unicul n cadrul cruia ambele tabele pot folosi efectiv aceeai cheie primar.

    n figura 2.10 este prezentat un exemplu clasic de relaie unu la unu. n acest caz SALARIAI este tabelul printe, iar SALARIU este tabelul copil. Se observ c fiecare salariat din primul tabel are un singur corespondent din al doilea tabel.

    SalariatID Nume Prenume Telefon

    100 Ban Ioan 0745-646321 ..

    101 Pop Dorin 0723-548211 ..

    102 Lazr Liviu 0264-542138 ..

    103 Crian Ovidiu 0740-764282 ..

    SalariatID Salar orar Sporuri

    100 34.50 10% ..

    101 23.00 5% ..

    102 17.45 20% ..

    103 16.00 18% ..

    Salariu

  • Baze de date Capitolul 2

    31

    Fig. 2.11. Exemplu de relaie unu cu mai muli

    Imprumuturi

    Fig. 2.10. Exemplu de relaie unu la unu

    Relaia unu la unu poate fi imaginat ca o rupere n dou a tabelului. Dei cmpurile din aceste tabele pot fi combinate ntr-un singur tabel, proiectantul bazei de date a ales s plaseze n tabelul SALARIAI cmpurile ce pot fi vzute de orice membru al organizaiei i n tabelul SALARIU cmpurile ce pot fi vzute doar de personalul autorizat, tiut fiind c salariile sunt, de obicei, confideniale.

    Relaii unu cu mai muli

    ntre dou tabele exist o relaie unu cu mai muli cnd o nregistrare din primul tabel poate fi corelat cu una sau mai multe nregistrri din al doilea tabel, n timp ce o nregistrare din al doilea tabel poate fi corelat cu o singur nregistrare din primul tabel. S studiem un exemplu generic pentru acest tip de relaie.

    Modelul printe/copil pe care l-am utilizat pentru a descrie o relaie unu cu unu se aplic i n acest caz, partea unu a relaiei este tabelul printe, iar tabelul din partea mai muli este tabelul copil. O relaie de tipul unu cu mai muli se stabilete prin preluarea unei cpii a cheii primare a tabelului printe i ncorporarea acesteia n structura tabelului copil, unde devine o cheie extern.

    Exemplul din figura 2.11 ilustreaz o relaie de tip unu cu mai muli caracteristic.

    ClientID Nume Prenume

    9001 Pop Dorin .......

    9002 Ban Ion .......

    9003 Lazr Ana .......

    9004 Buzan Maria .......

    9005 Beldean Vian .......

    ClientID CarteID Data

    9002 5648 ....

    9001 690423 ....

    9004 6563 ....

    9003 65323 ....

    9003 09542 ....

    9003 64823 ....

    9002 75001 ....

    9005 10045 ....

    9005 76100 ....

    Clienti

  • Baze de date Capitolul 2

    32

    O singur nregistrare din tabelul CLIENTI poate fi corelat cu una sau mai multe nregistrri din tabelul IMPRUMUTURI, dar o nregistrare din tabelul IMPRUMUTURI este corelat cu o singur nregistrare din tabelul CLIENTI. Dup cum probabil ai dedus, cmpul ClientID este o cheie extern n tabelul IMPRUMUTURI.

    Relaia unu cu mai muli este cea mai obinuit relaie care exist ntre dou tabele dintr-o baz de date i este cea mai uor de identificat. Relaia este extrem de important din punct de vedere al integritii datelor, deoarece ea v ajut s eliminai datele duplicate.

    Relaii de tip mai muli cu mai muli

    ntre dou tabele exist o relaie de mai muli cu mai muli cnd o nregistrare din primul tabel poate fi corelat cu una sau mai multe nregistrri din al doilea tabel i o nregistrare din al doilea tabel poate fi corelat cu una sau mai multe nregistrri din primul tabel. O relaie din aceast categorie se stabilete cu ajutorul unui tabel de legtur. Un tabel de legtur faciliteaz asocierea nregistrrilor dintr-un tabel cu nregistrrile din cellalt tabel i asigur lipsa oricror probleme la operaiile de adugare, tergere sau modificare a datelor corelate.

    Un tabel de legtur se definete prin preluarea unor cpii ale cheii primare din fiecare tabel i utilizarea lor pentru a forma structura noului tabel. n realitate, aceste cmpuri ndeplinesc dou roluri distincte: mpreun formeaz cheia primar compozit a tabelului de legtur, iar separat, fiecare poate fi asimilat unei chei externe.

    O relaie de tip mai muli cu mai muli care nu este stabilit n mod corespunztor se numete nerezolvat. Figura 2.12 prezint un exemplu clasic i clar de relaie de tip mai muli cu mai muli nerezolvat. n acest exemplu, o nregistrare din tabelul STUDENTI poate fi corelat cu mai multe nregistrri din tabelul CURSURI, n timp ce o singur nregistrare din tabelul CURSURI poate fi corelat cu mai multe nregistrri din tabelul STUDENTI.

  • Baze de date Capitolul 2

    33

    Cursuri

    Studenti

    Aceast relaie este nerezolvat datorit particularitii intrinseci a relaiei de tip mai muli cu mai muli. Principala problem este urmtoarea: cum se pot asocia cu uurin nregistrri din primul tabel cu nregistrrile din al doilea tabel? Pentru a reformula ntrebarea folosind tabelele din figura 2.12, cum se asociaz un student cu mai multe cursuri sau un anumit curs cu mai muli studeni? Se insereaz cteva cmpuri Student n tabelul CURSURI sau mai multe cmpuri Curs n tabelul STUDENTI? Oricare din aceste metode va ngreuna lucrul cu datele i va afecta n mod negativ integritatea datelor. Cea mai bun metod const n din crearea i utilizarea unui tabel de legtur, care va rezolva relaia de tip mai muli cu mai muli n maniera cea mai adecvat i mai eficient. Figura 2.13 prezint implementarea practic a cestei soluii.

    Este important ca dumneavoastr s cunoatei tipul de relaie care exist ntre tabelele dintr-o pereche, deoarece acesta determin modul n care sunt corelate tabelele, dac nregistrrile din tabele sunt interdependente sau nu, precum i numrul minim i maxim de nregistrri corelate care pot exista n cadrul relaiei.

    StudID Nume Prenume OrasStudent

    6001 Pop Remus Reghin ........

    6002 Szabo Zoltan Oradea ........

    6003 Costea Florian Zalau ........

    6004 Timocea Sebastian Brasov ........

    6004 Mocean Vasile Fagaras ........

    CursID Denumire Credite ProfesorID Sala

    C001 PUC 5 25461 208 ........

    C213 Baze de date 5 25461 208 ........

    C032 SIM 4 56821 209 ........

    C015 GD 5 12843 207 ........

    G001 AutoCAD 4 32584 207 ........

    G004 Inventor 5 3212 208 ........

    G007 Intellicad 4 25461 208 ........

    Fig. 2.12. Un exemplu tipic de relaie mai muli cu mai muli nerezolvat

  • Baze de date Capitolul 2

    34

    Tipuri de participare

    Cnd stabilii o relaie ntre dou tabele, fiecare tabel particip la relaie ntr-o manier particular. Tipul de participare pe care l atribuii unui tabel dat determin dac n respectivul tabel trebuie s existe o nregistrare nainte de a putea introduce nregistrri n tabelul corelat. Exist dou tipuri de participri:

    Obligatorie - tabelul trebuie s conin cel puin o nregistrare nainte de a putea introduce nregistrri n tabelul corelat.

    Opional nu este obligatoriu ca tabelul s conin vreo nregistrare nainte de a putea introduce nregistrri n tabelul corelat.

    StudID Nume Prenume OrasStudent

    6001 Pop Remus Reghin ........

    6002 Szabo Zoltan Oradea ........

    6003 Costea Florian Zalau ........

    6004 Timocea Sebastian Brasov ........

    6004 Mocean Vasile Fagaras ........

    StudID CursID

    6001 C001

    6002 C213

    6002 C001

    6001 C213

    6002 C015

    6003 C001

    6003 C213

    6001 C015

    6003 G001

    6001 G001

    CursID Denumire Credite ProfID

    C001 PUC 5 25461

    C213 Baze de date 5 25461

    C032 SIM 4 56821

    C015 GD 5 12843

    G001 AutoCAD 4 32584

    G004 Inventor 5 3212

    G007 Intellicad 4 25461

    Fig.2.13. Rezolvarea unei relaii de tip mai muli cu mai muli cu ajutorul unui tabel de legtur

    Studenti

    Orar

    Studenti

    Cursuri

  • Baze de date Capitolul 2

    35

    De obicei, pentru majoritatea tabelelor, vei determina tipul de participare dup ce definii regulile de lucru cu baza de date. n majoritatea cazurilor, tipul de participare este evident, este de bun sim sau este n concordan cu un anumit set de standarde.

    S examinm perechea de tabele din figura 2.11, care se gsesc ntr-o relaie unu cu mai muli. Ne propunem s stabilim tipul de participare a celor dou tabele n aceast relaie. Pentru aceasta trebuie s rspundem la cteva ntrebri. Putem introduce nregistrri n tabelul CLIENTI dac nu avem nici o nregistrare n tabelul IMPRUMTURI? Rspunsul este DA, pentru c tabelul cu potenialii clieni se completeaz la nceput, deci tabelul IMPRUMUTURI are un tip de participare opional, pentru aceast relaie. La ntrebarea dac putem introduce nregistrri n tabelul IMPRUMTURI dac nu avem nici o nregistrare n tabelul CLIENTI, rspunsul este NU, pentru c trebuie s avem cel puin un client la care s mprumutm, deci tabelul CLIENTI are un tip de participare obligatorie, pentru aceast relaie.

    Gradul de participare

    Gradul de participare determin numrul minim de nregistrri existente ntr-un tabel al unei relaii, asociate cu o singur nregistrare a unui tabel corelat, respectiv numrul maxim de nregistrri care pot exista ntr-un tabel al unei relaii, asociate cu o singur nregistrare din tabelul corelat.

    S lum n considerare, o relaie dintre dou tabele A i B. Se stabilete gradul de participare pentru tabelul B prin indicarea numrului minim, respectiv maxim de nregistrri din tabelul B, prin indicarea numrului minim, respectiv maxim de nregistrri din tabelul B care pot fi corelate cu o singur nregistrare din tabelul A. Dac o nregistrare din tabelul A poate fi corelat cu minimum o nregistrare din tabelul B, respectiv cu maximum 10 nregistrri din tabelul B, atunci gradul de participare al tabelului B, la respectiva relaie, este 1,10. (Gradul de participare se noteaz cu numrul minim n stnga i numrul maxim n dreapta, separate prin virgul). Putei stabili gradul de participare pentru tabelul A, n acelai mod. Putei identifica gradul de participare, pentru fiecare tabel al unei relaii prin determinarea modului de corelare a datelor din fiecare tabel, precum i a modului de utilizare a datelor respective.

    S lu din nou exemplul din figura 2.11, care reprezint dou tabele care se gsesc ntr-o relaie unu cu mai muli. Dac se impune (de ctre conducere)

  • Baze de date Capitolul 2

    36

    ca un cititor (client) s poat mprumuta ntre 1 i 4 cri, atunci gradul de participare al tabelului IMPRUMUTURI este 1,4. Dac dorii s impunei ca un cititor s poat mprumuta numai o carte, atunci vei indica gradul de participare ca fiind 1,1.

    Termeni referitori la integritate

    Specificaii de cmp

    O specificaie de cmp reprezint toate elementele unui cmp. Fiecare specificaie de cmp ncorporeaz trei tipuri de elemente: generale, fizice i logice.

    Elementele generale reprezint informaiile fundamentale referitoare la cmp i includ elemente precum numele cmpului, descrierea i tabelul printe.

    Elementele fizice determin modul de construire a unui cmp i modul de reprezentare a acestuia pentru persoana care l utilizeaz. Aceast categorie include elemente precum tipul de date, lungimea i formatul de afiare.

    Elementele logice descriu valorile stocate ntr-un cmp i includ articole precum valoarea obligatorie, intervalul de valori i valoarea prestabilit.

    Aceste specificaii de cmp o s le completai folosindu-v de nite formulare, care vor fi descrise n detaliu n capitolul urmtor.

    Integritatea datelor

    Prin integritatea datelor se nelege validitatea, consecvena i acurateea datelor incluse ntr-o baz de date. Nu pot accentua suficient faptul c nivelul de acuratee al informaiilor pe care le regsii din baza de date este direct proporional cu nivelul de integritate al datelor pe care l impunei bazei de date. Integritatea datelor reprezint unul dintre cele mai importante aspecte ale procesului de proiectare a bazelor de date i nu v este permis s-l subestimai, s-l trecei cu vederea i nici mcar s-l neglijai parial. Trebuie s fii contient de faptul c dac nu respectai regulile de integritate, suntei pasibili de a obine informaii cu grave erori, care sunt greu de depistat. Gndii-v numai la implicaiile posibile atunci

  • Baze de date Capitolul 2

    37

    cnd baza dumneavoastr de date e folosit pentru tranzacii comerciale sau financiare.

    Exist patru tipuri de integritate a datelor pe care le vei implementa pe durata procesului de proiectare a bazelor de date. Trei dintre acestea se

    bazeaz pe diferite aspecte ale structurii bazei de date i sunt denumite n conformitate cu zona (nivelul) la care opereaz. Cel de-al patrulea tip de integritate a datelor se bazeaz pe modul n care o organizaie i percepe i i utilizeaz datele.

    n continuare vor fi prezentate descrierile fiecrui tip de integritate.

    Integritatea la nivel de tabel asigur lipsa nregistrrilor duplicate n interiorul tabelului i faptul c acel cmp care identific fiecare nregistrare din tabel este unic i nu are niciodat valoare nul.

    Integritatea la nivel de cmp asigur faptul c structura fiecrui cmp este solid, c valorile din fiecare cmp sunt valide, consecvente i precise, precum i c se asigur o definire consecvent, n ntreaga baz de date, a cmpurilor de acelai tip (Cod postal, de exemplu).

    Integritatea la nivel de relaie (cunoscut i sub numele de integritate referenial) asigur soliditatea relaiei dintre dou tabele, precum i faptul c nregistrrile din tabele sunt sincronizate ori de cte ori se introduc, se actualizeaz sau se terg date din oricare dintre cele dou tabele.

    Reguli de desfurare a activitii impun restricii sau limitri asupra anumitor aspecte ale bazei de date, pe baza modalitilor n care o organizaie i percepe i i actualizeaz datele. Aceste restricii pot afecta aspecte ale proiectrii bazelor de date, precum i intervalul i tipurile de valori stocate ntr-un cmp, tipul i gradul de participare a fiecrui tabel n cadrul unei relaii, precum i tipul de sincronizare utilizat pentru integritatea la nivel de relaie, n anumite relaii.

    ntrebri pentru autoevaluare

    1. De ce este important terminologia?

    2. Care sunt cele patru mari categorii de termeni?

    3. Care este diferena dintre date i informaii?

    4. Ce reprezint valoarea nul i de ce este important?

  • Baze de date Capitolul 2

    38

    5. Care sunt principalele structuri ale unei baze de date?

    6. Denumii cele dou tipuri de tabele?

    7. Ce este o vedere?

    8 .Care este diferena dintre o cheie i un index?

    9. Care sunt cele trei tipuri de relaii care pot exista ntre dou tabele?

    10. Ce este o specificaie de cmp?

    11. Care sunt cele trei grupe de elemente ale unei specificaii de cmp?

    12. Ce este integritatea datelor? Care sunt tipurile de integritate?

  • Baze de date Capitolul 3

    39

    Capitolul 3. Proiectarea bazelor de date relaionale

    Acest capitol va defini paii prin care trebuie s trecem pentru a proiecta corect o baz de date relaional. Cunotinele dobndite v vor permite s putei proiecta singuri o astfel de baz de date.

    Acum cnd am vzut din ce e format o baz de date, cnd cunoatem i nelegem termenii bazelor de date relaionale, e momentul s trecem la proiectarea acestora. A nelege cum se proiecteaz o baz de date relaional nu este foarte complicat, e cu mult mai simplu dect ne imaginm. Totui, este foarte important s avei o idee de ansamblu cu privire la procesul de proiectare a bazelor de date relaionale, precum i o imagine general a etapelor pe care le implic procesul respectiv.

    nainte de a implementa o baz e date, aceasta trebuie proiectat, chiar dac este una mai simpl. De menionat faptul c indiferent de baza de date proiectat, trebuie parcuri aceeai pai sau etape. Acestea sunt:

    Etapa 1 Definirea unei declaraii de intenie i a obiectivelor misiunii;

    Etapa 2 Analiza bazei de date curente;

    Etapa 3 Crearea structurilor de date;

    Etapa 4 Determinarea i instituirea relaiilor ntre tabele;

    Etapa 5 Determinarea i definirea regulilor de desfurare a activitii;

    Etapa 6 Determinarea i definirea vederilor;

    Etapa 7 Verificarea integritii datelor.

    Trebuie s mai menionez faptul c ntregul proces de proiectare se face fr ajutorul vreunui program, calculatorul este folosit numai la editarea documentelor acestui proces, aa cum vom vedea mai departe i la orele de laborator.

    n continuare se vor detalia etapele de proiectare a unei baze de date relaionale.

  • Baze de date Capitolul 3

    40

    Etapa 1 Definirea unei declaraii de intenie i a obiectivelor misiunii

    Prima faz n procesul de proiectare a bazelor de date const din definirea unei declaraii de intenie i a obiectivelor misiunii bazei de date. Aceast declaraie stabilete finalitatea bazei de date i ofer o orientare distinct pentru activitatea de proiectare.

    Fiecare baz de date este creat cu un anumit rost, fie pentru rezolvarea unei anumite probleme de afaceri, gestiunea unor tranzacii zilnice, gestiunea unei magazii, fie pentru a fi utilizat ca parte a unui sistem informaional. Destinaia bazei dumneavoastr de date este identificat i definit ntr-o declaraie de intenie. Aceasta contribuie la asigurarea dezvoltrii unei structuri de baze de date adecvate, precum i identificarea acelor date care duc la atingerea scopului propus.

    Pe lng declaraia de intenie, n aceast etap trebuie definite i obiectivele misiunii. Obiectivele misiunii sunt declaraii care reprezint sarcinile generale pe care utilizatorii le pot ndeplini folosind baza de date. Aceste obiective sprijin i completeaz declaraia de intenie, determinnd n acelai timp diferitele aspecte ale structurii bazei de date. Obiectivele misiunii se mai pot numi i caiet de sarcini, termen nc folosit pentru definirea cerinelor beneficiarului.

    Declaraia de intenie i obiectivele misiunii fiind documente foarte importante n proiectarea unei baze de date se pune ntrebarea, cine elaboreaz aceste documente?

    Declaraia de intenie este elaborat de dezvoltatorul bazei de date (Dvs.) mpreun cu conductorul(patronul) firmei i personalul de conducere care este responsabil de definirea acesteia. Este necesar participarea celor dou pri pentru a se putea ajunge la o exprimare corect care s fe neleas la fel att de dezvoltator ct i de beneficiar, altfel s-ar putea ajunge la situaii de genul nu asta am cerut sau eu altceva am neles din aceast fraz.

    Obiectivele misiunii sunt elaborate de dezvoltatorul bazei de date (Dvs.)

    mpreun cu personalul de conducere i utilizatorii finali (cei care vor lucra efectiv cu aplicaia). Aceast componen este necesar pentru c utilizatorii finali pot avea idei valoroase pentru proiectarea corect a bazei de date.

  • Baze de date Capitolul 3

    41

    Compunerea unei declaraii de intenie

    O declaraie de intenie bun este succint i la obiect. Declaraiile vagi sau ambigui nu fac altceva dect, mai degrab, s ascund scopul bazei de date.

    Iat o declaraie de intenie bun:

    Rolul bazei de date Clieni/Furnizori este de a ine la zi situaiile de pli i ncasri, precum i de a furniza situaii concrete referitoare la un anume client sau furnizor, ntr-un anumit interval de timp sau la o anumit dat.

    Aceast declaraie este foarte general, nu conine date inutile, este scurt i se vede clar la ce va fi folosit: s furnizeze informaii despre starea unui client sau furnizor, att de importante n activitatea unei firme. Facei analogia dintre o declaraie de intenie i o lumnare cu care traversm un tunel ntunecos, adic lumnarea nu ne d amnunte despre cum s traversm tunelul dar ne ghideaz spre captul lui.

    Iat un exemplu de declaraie de intenie formulat defectuos:

    Rolul bazei de date a firmei SC AZUR SRL const din a pstra evidena aplicaiilor pentru utilizarea terenurilor, pstrarea datelor cu privire la solicitani, pstrarea unei nregistrri a tuturor audierilor, a tuturor deciziilor, a tuturor apelurilor, pstrarea datelor referitoare la angajaii departamentului i ntreinerea datelor n vederea utilizrii generale n cadrul biroului.

    Aceast declaraie de intenie are urmtoarele neajunsuri:

    este prolix, adic nu este succint i la obiect;

    finalitatea bazei de date nu este clar; este astfel scris nct este dificil de identificat finalitatea bazei de date;

    descrie numeroase operaii concrete, care nu-i au rostul.

    Cum am putea corecta aceast declaraie de intenie? Iat un exemplu:

    Rolul bazei de date a firmei SC AZUR SRL const din a pstrarea datelor utilizate de biroul judectorului de instrucie pentru luarea de decizii privind solicitrile de utilizare a terenurilor trimise de cetenii judeului X.

  • Baze de date Capitolul 3

    42

    Se observ c finalitatea bazei de date a devenit mult mai clar, s-au eliminat operaiile i nu d impresia c ar fi incomplet.

    Compunerea unei declaraii de intenie presupune din partea dumneavoastr, a dezvoltatorului purtarea de discuii cu patronul sau managerul societii respective, pentru aflarea de informaii despre aceasta, profilul ei de activitate etc. Deci, prima discuie cu patronul apoi cu ceilali membrii ai conducerii sau ali specialiti indicai de patron. Ai putea s v ntrebai de ce atta zarv pentru una sau dou fraze pe care le conine declaraia de intenie? Nu uitai c declaraia de intenie este sinteza unor discuii, preri contradictorii, opinii ale mai multor persoane i c ea trebuie s fie lumina cluzitoare pentru finalizarea proiectului bazei de date.

    Cel mai important aspect care trebuie reinut este acela c declaraia de intenie trebuie s fie logic pentru dumneavoastr (dezvoltatorul bazei de date) i beneficiarii bazei de date. Tipul de declaraii difer de la un grup de persoane la altul, iar formularea depinde mult de terminologia specific domeniului de activitate. Declaraia dumneavoastr de intenie este complet atunci cnd conine o propoziie care descrie finalitatea concret a bazei de date, care este neleas i aplicat de toate prile implicate.

    Definirea obiectivelor misiunii

    Obiectivele misiunii sunt declaraii care reprezint sarcinile generale acceptate de datele pstrate n baza de date. Fiecare obiectiv reprezint o singur sarcin. Obiectivele misiunii furnizeaz informaii pe care le vei folosi n decursul procesului de proiectare a bazei de date. De exemplu, obiectivele misiunii permit definirea structurii tabelelor, a specificaiilor de cmp, a caracteristicilor de relaie i a vederilor. De asemenea, v ajut s impunei integritatea datelor i s definii regulile de desfurare a activitii. n final, obiectivele misiunii sunt de natur s ndrume demersurile de dezvoltare i asigur faptul c structura final a bazei de date permite ndeplinirea declaraiei de intenie.

    Un obiectiv de misiune bine scris reprezint o propoziie cu caracter declarativ, care definete fr echivoc o sarcin de ordin general i care este lipsit de detalii inutile. Un obiectiv se exprim n termeni generali, succint, la obiect i fr ambiguiti. Iat cteva exemple de obiective de misiune caracteristice:

  • Baze de date Capitolul 3

    43

    Dorim s pstrm informaii complete despre studeni.

    Dorim s pstrm evidena tuturor facturilor emise.

    Dorim s pstrm evidena tuturor recepiilor.

    Dorim s ne asigurm c un agent de vnzri nu rspunde de mai mult de 15 clieni.

    Dorim s pstrm evidena tuturor reparaiilor mainilor din dotare.

    Dorim s generm agende cu numerele de telefon ale angajailor.

    Dup cum se observ, obiectivele prezentate sunt foarte clare i uor de neles. Fiecare obiectiv reprezint o sarcin unic de ordin general i definete clar sarcina respectiv, fr detalii inutile. De exemplu, ultimul obiectiv de misiune prezentat n lista anterioar indic faptul c se dorete generarea unor liste cu angajai nu i modul n care vor fi generate. Nu este necesar indicarea modalitii de generare a listelor de angajai, deoarece acest aspect face parte din procesul de dezvoltare a aplicaiei.

    De reinut c finalitatea unui obiectiv de misiune const din definirea diferitelor structuri din compoziia bazei de date i din orientarea direciei generale a dezvoltrii bazei de date.

    Dac un obiectiv de misiune reprezint mai multe sarcini generale, acesta va trebui descompus n dou sau mai multe obiective de misiune.

    n concluzie, aceast etap are ca rezultat un document care ne spune de ce trebuie s proiectm baza de date (declaraia de intenie) i cam ce probleme rezolvm cu ea (obiectivele misiunii).

    ntrebri pentru autoevaluare

    1. Ce este o declaraie de intenie ?

    2. Indicai dou caracteristici ale unei declaraii de intenie bine scrise.

    3. Dai exemple de declaraii de intenie.

    4. Cnd se consider finalizat o declaraie de intenie?

    5. Ce este un obiectiv de misiune?

    6. Indicai dou caracteristici ale unui obiectiv de misiune bine scris.

    7. Dai exemple de obiective de misiune.

    8. Cine concepe declaraia de intenie i obiectivele misiunii?

  • Baze de date Capitolul 3

    44

    Etapa 2 - Analiza bazei de date curente

    nainte de a ncepe proiectarea noii noastre baze de date trebuie s fim contieni c nu suntem pe un pmnt virgin, c naintea noastr s-au mai folosit baze de date, s-au manipulat informaii, aa c este nelept s vedem ce exist pentru a putea prelua unele informaii. De multe ori chiar exist o baz de date care a fost proiectat dup posibilitile de atunci. Aceast baz de date poate fi folosit ca resurs pentru noua baz de date.

    Fiind n etapa 2-a de proiectare, deja tii obiectivele pe care trebuie s le ndeplineasc noua baz de date. Pentru v face o imagine despre organizaie (firm) i informaiile cu care lucreaz, va trebui s rspundei la urmtoarele ntrebri:

    Ce tipuri de date folosete organizaia?

    Cum folosete organizaia datele respective?

    Cum gestioneaz i pstreaz organizaia datele respective?

    Rspunsurile la aceste ntrebri, v ofer informaii vitale, pe care le putei utiliza eficient n proiectarea bazei de date care rspunde cel mai bine cerinelor organizaiei. Actorii acestei etape sunt, pe de o parte dezvoltatorul bazei de date (cel care pune ntrebri i prelucreaz rspunsurile) i beneficiarii (cei care rspund la ntrebri). Este foarte probabil ca organizaia s utilizeze un tip sau altul de baz de date care ar putea fi asociat cu una din urmtoarele categorii:

    Baze de date pe suport de hrtie sunt formate din diferite formulare i documente manuscrise stocate n dosare. Dosarele sunt identificate cu ajutorul unor coduri scrise pe ele, apoi sunt puse n fiete prin intermediul unei scheme de codificare, n funcie de dimensiunea bazei de date. Aceste baze de date sunt mai dificil de neles, de aceea este necesar conlucrarea cu persoane din firm care lucreaz efectiv cu aceste informaii.

    Baze de date motenite sunt acele baze de date care au existat i au fost folosite mai muli ani. Ele sunt alctuite din diferite tipuri de structuri de date i ecrane de interfa cu utilizatorul, care se gsesc toate ntr-un calculator personal. Randamentul, funcionalitatea i eficiena structurilor i ecranelor sunt extrem de dependente de limbajul de programare i programele de gestiune a bazelor de date folosit. n general, structurile i

  • Baze de date Capitolul 3

    45

    ecranele sunt nefinisate conform standardelor moderne, deoarece au fost

    create atunci cnd aceste standarde nu existau.

    Baze de cunotine umane se bazeaz pe memoria unuia sau mai multor angajai din cadrul organizaiei. Aceste persoane posed un anumit volum de informaii (de exemplu date despre clieni, furnizori sau detalii despre un anumit produs) care sunt foarte importante pentru derularea activitii organizaiei respective. Aceste informaii trebuie interceptate n vederea introducerii lor n baza de date pe care o proiectai.

    Obiectivul analizei dumneavoastr const n a determina tipul de date pe care le folosete organizaia, modul n care le gestioneaz i pstreaz, modul n care le vizualizeaz i le utilizeaz. n decursul analizei vei trece n revist diferitele moduri n care organizaia i colecteaz i prezint datele, dup serii de discuii purtate cu utilizatorii direci i cu personalul de conducere.

    Cum se procedeaz? Informaiile pe care le-ai adunat le folosii pentru a sintetiza o list iniial de cmpuri. Apoi rafinai aceast list pentru eliminarea cmpurilor duplicate i a celor calculate i plasarea acestora din urm ntr-o list separat, care va fi folosit mai trziu n procesul de proiectare. Lista rafinat constituie necesitile informaionale ale organizaiei respective i furnizeaz un punct de nceput pentru proiectarea unei noi baze de date.

    Dup cum se tie, nimic nu este niciodat finalizat, aa c nici lista noastr de cmpuri, orict de rafinat ar fi, va fi modificat de multe ori. Dup ce ai finalizat lista de cmpuri, trimitei-o utilizatorilor i personalului de conducere, pentru o examinare succint i posibile modificri. ncurajai opiniile celorlali i luai n considerare sugestiile lor de modificare.

    n concluzie, aceast etap se va ncheia cu un document care conine o list preliminar de cmpuri i o list de cmpuri calculate.

    ntrebri pentru autoevaluare

    1. n ce const analiza bazei de date curente?

    2. Care sunt cele trei surse pe care le analizm?

    3. Care este rolul dezvoltatorului i al beneficiarului?

  • Baze de date Capitolul 3

    46

    4. Cum se finalizeaz aceast etap?

    Etapa 3 - Crearea structurilor de date

    n aceast etap se definesc tabelele cu cmpurile lor, se stabilesc cheile i se stabilesc specificaii pentru fiecare cmp.

    Tabelele sunt primele structuri care se definesc ntr-o baz de date. Determinarea diferitelor subiecte pe care le vor reprezenta tabelele se

    execut pe baza obiectivelor misiunii, pe care le-ai determinat n timpul primei faze a procesului de proiectare i a necesitilor de date pe le-ai adunat pe durata celei de-a doua faze. n principiu, un subiect trebuie s se regseasc ntr-un tabel, care la rndul su conine un numr de cmpuri care definesc complet acel subiect.

    Cum se procedeaz? Iat paii care vor trebui parcuri:

    Se face o list preliminar cu toate tabelele identificate;

    Fiecrui tabel i se definesc cmpurile;

    Se stabilesc cheile adecvate pentru fiecare tabel, principala grij fiind aceea ca fiecare tabel s aib cheie primar corect definit. Aceast cheie identific n mod unic fiecare nregistrare din tabel;

    Pasul final al acestei etape const n stabilirea specificaiilor de cmp aferente fiecrui cmp al bazei de date.

    Dup ce au fost parcuri aceti pai se vor purta discuii cu utilizatorii i personalul de conducere pentru a verifica nc o da