suport curs bd[1]

Upload: croitorularisa

Post on 12-Jul-2015

1.276 views

Category:

Documents


0 download

TRANSCRIPT

DUMITRU TODOROI ELENA NECHITA GLORIA-CERASELA CRIAN

BAZE DE DATE PENTRU ECONOMITI

2

DUMITRU TODOROI ELENA NECHITA GLORIA-CERASELA CRIAN

BAZE DE DATEPENTRU ECONOMITI

EDITURA PERFORMANTICA 2005

3

Referent tiin ific: Prof. univ. dr. Dan Rotar

4

CUPRINSPrefa 1. Introducere n domeniul bazelor de date 1.1 Informa ii. Date. Colec ii de date 1.2 Organizri ale datelor 1.2.1 Organizarea datelor n fiiere 1.2.2 Organizarea datelor n baze de date 1.3 Conceptul de baz de date 1.4 Sisteme de gestiune a bazelor de date 2. Niveluri de reprezentare a unei baze de date 2.1 Modelarea conceptual 2.1.1 Modelul Entitate - Asociere 2.1.2 Diagrama Entitate - Asociere 2.2. Modele de date 2.2.1 Modelul ierarhic 2.2.2 Modelul re ea 3. Modelul rela ional 3.1 Conceptele modelului rela ional 3.2 Sisteme de gestiune a bazelor de date rela ionale 4. Noi func ionalit i ale bazelor de date 4.1 Partajarea bazelor de date 4.2 Baze de date distribuite 4.3 Baze de date deductive 4.4 Baze de date multidimensionale 4.5 Baze de date orientate obiecte 4.6 Alte tipuri de baze de date 4.7 Sisteme Client / Server 4.8 Bazele de date i sistemele informa ionale din organiza ii 5. Forme normale. Normalizare 5.1 Dependen e func ionale 5.1.1 Descompunerea 5.1.2 Asocierile i proiectarea schemelor 9 11 11 13 13 15 15 16 18 18 18 20 20 20 21 23 24 25 26 26 26 28 28 28 30 30 31 33 33 33 34

5

5.2 Dependen e multivaloare 5.3 Forme normale ale bazelor de date 5.3.1. Date ne-normalizate 5.3.2 Prima form normal (FN1) 5.3.3 A doua form normal (FN2) 5.3.4 A treia form normal (FN3) 5.3.5 Forma normal Boyce-Codd (FNBC) 5.3.6 A patra form normal (FN4) 5.3.7 A cincea form normal (FN5) 5.3.8. Procesul normalizrii rela iilor 6. Limbaje utilizate n lucrul cu baze de date 6.1 Limbajul de definire a datelor pentru modelul rela ional 6.2 Limbajul de manipulare a datelor pentru modelul rela ional 6.2.1 Algebra Rela ional 6.2.2 SQL 6.2.3 Calculul Rela ional orientat pe tupluri 6.2.4 Calculul Rela ional orientat pe domenii 7. Restric iile de integritate ale modelului rela ional 7.1 Restric ii de integritate minimale 7.2 Alte restric ii de integritate 7.3 Aspecte privind integritatea 8. Depozite de date 8.1. Concepte de baz n data warehouse 8.2. Diferen e ntre bazele de date i depozitele de date 8.3. Arhitectura depozitelor de date 9. Baze de cunotin e 10. Aplica ii Access 10.1. Baz de date pentru activit i colare 10.2. Baz de date pentru o activitate comercial 10.3. Baz de date pentru gestiunea unui parc auto 10.4. Baz de date pentru contabilitatea TVA 11. Teste 11.1 Testul 1

34 35 35 36 36 37 38 38 39 40 41 41 42 42 46 46 47 48 48 49 50 51 51 52 53 58 61 61 79 90 104 116 116

6

11.2 Testul 2 11.3 Testul 3 11.4 Testul 4 11.5 Testul 5 11.6 Testul 6 11.7 Testul 7 Bibliografie

118 120 122 125 127 129 131

7

8

Order is not sufficient. What is required, is something much more complex. It is order entering upon novelty; so that the massiveness of order does not degenerate into mere repetition; and so that the novelty is always reflected upon a background of system.'' (Alfred North Whitehead)

Prefa

Aceast carte are la baz cursurile de Baze de date sus inute de autori studen ilor ce urmeaz specializri din domeniu Economic, la Academia de Studii Economice a Moldovei i la Universitatea din Bacu. Este cunoscut faptul c domeniul bazelor de date este unul de mare interes pentru absolven ii domeniului Informatic, dar la fel de important devine i pentru economiti, crora transformrile din societate le impun adaptarea la instrumentele informatice moderne. Avnd n vedere c exist o vast bibliografie pentru domeniul bazelor de date, s-a realizat o prezentare succint a conceptelor clasice i s-au dezvoltat mai mult conceptele i orientrile moderne privind bazele de date. n afar de cr ile indicate n bibliografie, fiecare capitol con ine adresele unor resurse web. n acest sens, amintim cititorilor c Internetul este un mediu extrem de dinamic i prin urmare este posibil ca diverse transformri s nu mai permit, la un moment dat, accesul la resursele indicate. La data publicrii cr ii, toate adresele au fost verificate de autori. Partea de aplica ii este destinat familiarizrii cu SGBD Access. Exemplele considerate sunt descrise n detaliu, pentru a se constitui n modele ce pot fi studiate n ideea dezvoltrii unor noi aplica ii. Testele incluse n carte vin n sprijinul pregtirii examenelor la disciplina Baze de date, propunnd spre rezolvare att elemente teoretice ct i elemente practice. Ne propunem o continuare a acestei lucrri, n care s abordm un domeniu de mare actualitate, referitor la baze de date i Internet. Sugestiile i observa iile cititorilor referitor materialul de fa se vor reflecta n noul volum. Autorii Iai, aprilie 2005

9

10

1. Introducere n domeniul bazelor de date 1.1 Informa ii. Date. Colec ii de dateInforma iile i cunotin ele au o mare importan , att pentru dezvoltarea personalit ii umane, ct i pentru evolu ia vie ii i societ ii. Nici societatea i nici indivizii ei nu pot progresa satisfctor n lips de informa ii. Prin intermediul informa iilor se asigur transferul cunotin elor de la o genera ie la alta, se asigur accesul la cele mai avansate realizri ale omenirii. Conceptul de informa ie reprezint o no iune de maxim generalitate care semnific o comunicare, o veste, o tire, un mesaj, un semnal etc. despre evenimente, fapte, stri, obiecte, despre forme de manifestare a realit ii care ne nconjoar. Informa ia reprezint cantitatea de noutate adus de un mesaj din lumea real. Informa ia, energia i materia sunt cei mai importan i factori ai economiei moderne pe lng pmnt, capital i for a de munc. Fa de materie, informa ia prezint caracteristici distincte: Se poate combina aproape nelimitat. Este puternic condensabil. Se percepe ca o anumit msur a ordinii, ntruct ea anihileaz incertitudinea i nedeterminarea. O msur a ordonrii este entropia negativ, termen care a luat natere prin analogie cu entropia, care este, n termodinamic, o msur (exprimabil matematic) a neordonrii. Calitatea unei informa ii const n gradul de probabilitate cu care creeaz utilizatorului certitudinea unei afirma ii. Oamenii ajung la informa ii direct, prin intermediul altor oameni sau prin purttori de informa ie, precum ziare, cr i, imagini, videocasete, CD-uri, discuri sau echipamente de comunica ie (radio, televizor, fax, telefon sau calculator). Deci informa ia reprezint o component esen ial a lumii reale, ce face posibil caracterizarea diferitelor elemente ale naturii (fiin e, obiecte, stri, fenomene) i permite comunicarea. Din punct de vedere conceptual, informa ia reprezint o reflectare n planul gndirii umane a legturilor de cauzalitate, privind aspecte din realitatea ce ne nconjoar. Informa ia are deci sens de noutate pentru cel cruia i se adreseaz, indiferent de forma pe care o ia (tire, semnal, comunicare). Putem spune deci c informa ia este un mesaj, dar cu precizarea c nu orice mesaj este o informa ie. Dac mesajul nu transmite o noutate i nu are suport real, atunci nu prezint interes pentru receptor i deci nu are caracter de informa ie. Informa ia primete totdeauna atributul domeniului pe care l reprezint. De exemplu, realit ile din domeniul economic se reflect n informa ii economice. Procesul de sesizare, n elegere i nsuire a informa iilor dintr-un anumit domeniu reprezint un proces de informare. Informa iile dobndite n urma unui proces de informare ntr-un anumit domeniu formeaz cunotin ele despre acel domeniu, iar mul imea acestora reprezint baza de cunotin e. Cunotin ele reprezint deci o nsumare a tuturor informa iilor dobndite ntr-un anumit domeniu, sau care se refer la un anumit obiect. n sintez, putem aprecia cunotin ele c sunt elemente abstracte i individuale despre obiectele i domeniile lumii reale, nsuite i/sau dobndite. Aproape orice activitate are i o latur informa ional. De exemplu, n paralel cu procesul de producere de bunuri i servicii se desfoar i un proces informa ional, constnd din fluxuri de documente prin care se ine eviden a activit ii desfurate. Atunci cnd informa ia este gestionat cu ajutorul tehnicii de calcul, ea devine dat. Data este forma de reprezentare accesibil a informa iei prelucrate. Ea reprezint suportul formal al informa iei, care se concretizeaz n: cifre, litere, simboluri, coduri i alte nsemne. Exist o coresponden determinat ntre informa ie, simbol i dat astfel c, foarte adesea, n practic, termenul de informa ie este utilizat pentru a desemna date, iar expresia prelucrarea informa iilor nlocuiete expresia prelucrarea datelor. Putem considera c

11

datele prelucrate, n msura n care afecteaz n sens pozitiv comportamentul receptorilor (oameni sau maini), au calitatea de informa ii. n procesul prelucrrii i utilizrii informa iilor, acestea sunt privite din patru puncte de vedere: Din punct de vedere sintactic, atunci cnd se urmrete aspectul admisibil al acestora, n sensul c informa iile trebuie s capete anumite forme de reprezentare, ce respect riguros anumite reguli. Din punct de vedere semantic, urmrindu-se semnifica ia, n elesul informa iei (con inutul real al informa iei) ce deriv din datele prelucrate. Din punct de vedere pragmatic, urmrindu-se utilitatea pentru receptori, efectul asupra acestora (msura n care acestea satisfac cerin ele utilizatorului). Din punct de vedere sigmatic, se trateaz raportul dintre semne i obiecte, caz n care se poate vorbi despre cunotin e obiective. n locuri publice, semnalizarea i direc ionarea cu ajutorul indicatoarelor trebuie s fie att sugestiv, compact, ct i independent de limb sau cultur. Pictogramele pentru indicarea cabinelor telefonice, zonelor de fumtori, ghieelor de informa ii sau punctelor medicale reprezint cunotin e obiective. Datele reprezint aadar informa ii care fac obiectul prelucrrii pe sistemele de calcul i pot fi: Elementare (numite i simple sau scalare) atunci cnd sunt indivizibile n raport cu prelucrrile la care pot fi supuse. Compuse (numite i complexe) atunci cnd sunt alctuite din mai multe date elementare, deci sunt la rndul lor divizibile n date mai simple. Exemplu. n cazul unei persoane: vrsta, nl imea, greutatea, codul numeric personal sunt date elementare. Domiciliul (format din ora, strad, numr) este o dat compus. Observa ie. O dat poate fi considerat elementar dintr-un punct de vedere i compus din altul, aceasta n func ie de prelucrrile necesare. Unei date i se atribuie un nume identificatorul su, prin intermediul creia ea se distinge de celelalte i prin care poate fi adresat. O caracteristic de baz a unei date este tipul su. Acesta determin modul n care data respectiv va fi memorat pe suporturi de memorare i modul n care ea va fi prelucrat (adic operatorii i func iile ce i se pot aplica). n cadrul unui limbaj de programare, de exemplu, exist o serie de tipuri de date de baz (elementare), prestabilite de ctre proiectan ii limbajului i, de cele mai multe ori, exist posibilitatea definirii de noi tipuri, prin combinarea celor elementare. Marea majoritate a limbajelor permit manipularea datelor numerice (ntregi i reale), a caracterelor i irurilor de caractere, a tablourilor uni- i multi-dimensionale. O colec ie de date reunete date despre o anume clas de obiecte (reale sau conceptuale). Exemplu. Colec ia de date prezentat mai jos reunete date cu privire la clasa de obiecte denumit CONTURI: Cod_cont 101 104 105 106 933 Denumire_cont Capital social Prime legate de capital Diferen e din reevaluare Rezerve Costul produc iei n curs de execu ie

Fiecare obiect de acest tip are o existen a proprie i este bine definit de aceleai caracteristici, respectiv codul contului i denumirea contului. Contul cu codul 101 i denumirea Capital social constituie o realizare sau o instan a obiectului tip CONTURI, pentru care caracteristicile Cod_cont, Denumire_cont iau valorile 101 i respectiv Capital social. Alte exemple. Datele referitoare la materialele dintr-un depozit. Datele referitoare la cr ile dintr-o bibliotec. Datele referitoare la pacien ii unui spital.

12

Datele ce descriu situa ia contabil a unei firme. Omogenitatea datelor dintr-o colec ie de date trebuie n eleas n sens larg, sub forma unei propriet i comune sau a unui obiectiv urmrit. No iunile de informa ie i dat sunt, prin urmare, diferite. Informa iile sunt n elese de o persoan, n timp ce datele sunt modele stocate pe un mediu pasiv, ca de exemplu discul hard al unui calculator. Scopul unui sistem care gestioneaz o colec ie de date este s reduc distan a ntre informa ii i date astfel, datele stocate n memoria sau pe discurile unui calculator s fie convertite n informa ii utilizabile la momentul dorit.

1.2 Organizri ale datelorOrganizarea datelor n vederea prelucrrii lor cu calculatorul este o activitate tot att de important ca i cea de realizare a programelor. Datele i programele se gsesc ntr-o strns corela ie. Un program, orict de complex ar fi, nu va furniza rezultate satisfctoare dac structura datelor cu care lucreaz nu este bine gndit. Invers, o structur de date bine pus la punct nu va fi suficient, dac programul care o prelucreaz nu este corect conceput i realizat. Din punct de vedere informatic ne putem referi la dou tipuri de organizare a datelor: Organizarea in memoria intern a calculatorului i Organizarea n memoria extern. Organizarea n memoria extern a cunoscut, de-a lungul timpului, mai multe stadii: Fiiere i Baze de date. 1.2.1 Organizarea datelor n fiiere Un fiier este un ansamblu de nregistrri fizice, omogene din punct de vedere al con inutului i al prelucrrii. O nregistrare fizic este format din una sau mai multe nregistrri logice, o nregistrare logic fiind un ansamblu de cmpuri care con in date referitoare la un obiect, proces sau fenomen din lumea real. Exemplu. Fiierul de date STOCURI con ine date privind stocurile de produse. Pentru fiecare produs se memoreaz: codul, denumirea, unitatea de msur, pre ul de referin i cantitatea aflat n stoc. Iat (schematic reprezentat) o nregistrare logic pentru un produs aflat n stoc: 401 TV PANASONIC BUC 1000 20

nregistrrile privind produsele aflate n stoc sunt memorate pe suporturi tehnice i formeaz, mpreun, fiierul STOCURI_PRODUSE. Exist dou metode de organizare a datelor n fiiere: Organizare secven ial nregistrrile sunt memorate pe suport tehnic n ordinea introducerii datelor i sunt accesate n ordinea n care ele sunt memorate. Organizarea indexat la memorarea nregistrrilor pe suport tehnic, Sistemul de Gestiune a Fiierelor creeaz, separat, un tabel n care, pentru fiecare nregistrare de date, sunt memorate dou elemente: cheia de identificare a nregistrrii i adresa la care nregistrarea este memorat pe suport tehnic. Exemplu.Tabel cu indeci nregistrri de date

350 401 420

A1 A2 A3

A2 A1 A3

401 350 420

TV PANASONIC RADIO SAMSUNG VIDEO SAMSUNG

BUC BUC BUC

1000 100 900

20 30 10

13

A1 reprezint adresa (care face referire, n cazul HD, la cilindru, pist i sector) la care este memorat nregistrarea cu valoarea din cmpul de indexare (aici codul produsului) cu valoarea 350, .a.m.d. Tabelul cu indeci permite astfel localizarea rapid a nregistrrilor pe suportul tehnic. Aceast metod presupune existen a unui atribut ale crui valori s permit identificarea nregistrrilor. Acest atribut are rolul de cheie de identificare (indexare). Deci, un fiier de date este bine definit cnd se precizeaz identificatorul de fiier, structura nregistrrii i modul de organizare. Exemplu. Fiierul: STOCURI Structura nregistrrii: CodMat, numeric DenMat, Text UM, Text PretRef, Numeric CantStoc, Numeric Organizare: indexat Cheie identificare: CodMat Limite ale organizrii datelor n fiiere Descrierea datelor se face n fiecare program n care ele sunt utilizate; spunem c datele sunt dependente de programe. Lipsa unui formalism riguros de definire i validare a datelor. Performan e sczute pentru procesarea datelor, ndeosebi cnd este necesar s se fac asocieri ntre date memorate n fiiere distincte. Men inerea unei redundan e ridicate n cadrul colec iilor de date memorate pe suporturi tehnice. Deci abordarea tradi ional asocia fiecrei aplica ii informatice propriile fiiere. n mod evident, anumite date se regseau n fiierele asociate mai multor aplica ii. Schematic, aceast metod poate fi reprezentat astfel:

P1

P2

Pn

Aceast abordare ducea la memorarea repetat a unor date i implicit la un volum mare de memorie extern ocupat. De exemplu, dac ntr-o fabric se folosesc materiale pentru realizarea unor produse, atunci datele necesar a fi memorate pentru fiecare material sunt (cel pu in) cele men ionate n cazul fiierului STOCURI: Cod un cod asociat fiecrui material, necesar identificrii acestuia i altfel dect prin nume (de exemplu: 5289); Denumire denumirea materialului (de exemplu: lemn de brad); Um unitatea de msur (de exemplu: mc, aici, metru cub); Pre este vorba de pre ul unitar (pre ul pentru un metru cub de lemn de brad); Cantitate cantitatea existent la un moment dat n fabric. Aceste date i altele, specifice, vor fi prelucrate pentru diferite compartimente: aprovizionare (pentru recep ia materialului), gestiune (pstrarea ntr-o magazie), produc ie (consumul materialului respectiv n procesul de produc ie), contabilitate (pentru calcula ia costului produselor finite). Deci cel pu in patru programe ar utiliza aceste date i ar fi prin urmare dezavantajoas memorarea lor pe un suport fizic (n diferite fiiere) de tot attea ori.

14

Cu toate aceste limite, organizarea datelor n fiiere mai este utilizat i astzi, ndeosebi pentru aplica ii dezvoltate folosind limbajele clasice de programare. Progresele n domeniul tehnologiilor informa ionale au marcat o cretere considerabil a capacit ii de memorare a suporturilor tehnice de date i a vitezei de procesare a datelor. La acestea se adaug i posibilitatea stocrii i procesrii datelor netradi ionale cum ar fi, de exemplu, imaginea i sunetul (a se vedea [Tod04]). 1.2.2 Organizarea datelor n baze de date Limitele organizrii datelor n fiiere i posibilit ile oferite de noile tehnologii informa ionale au dus la promovarea metodei de organizare a datelor n baze de date. Ideea a fost de a colecta toate datele, a le organiza ntr-un mod convenabil (specific realit ii pe care acele date le modeleaz) i a proiecta programe care s consulte i s actualizeze aceast colec ie de date. Schematic, aceast abordare se poate reprezenta astfel: P2 Baz de date

P1

Pn

Prin urmare, o baz de date se definete ca fiind un ansamblu de date elementare sau structurate, accesibile unei comunit i de utilizatori. O defini ie mai apropiat de reprezentarea fizic ar fi cea conform creia o baz de date este un ansamblu de fiiere intercorelate, care con in nucleul de date necesare unei aplica ii informatice complexe. Astfel, n figura precedent, legturile desenate ntre fiiere reprezint aceste intercorelri (adic, fiierele corelate modeleaz o legtur logic ntre datele pe care le con in) iar aplica iile ce acceseaz datele pot fi privite ca apar innd la diferi i utilizatori sau grupuri de utilizatori, care vd baza de date ntr-un mod propriu (cu alte cuvinte, acceseaz din toat colec ia de date ceea ce le este necesar).

1.3 Conceptul de baz de daten lucrarea Bases de donnes et systmes relationnels, Dunod Informatique, Paris, 1982, C. Delobel i M. Adiba definesc baza de date astfel: Baza de date este un ansamblu structurat de date nregistrate pe suporturi accesibile de ctre calculator pentru a satisface, chiar simultan, mai mul i utilizatori, de o manier selectiv i n timp oportun. ntr-o baz de date sunt nregistrate date despre obiecte reale sau abstracte, dar i asocierile (rela iile) care se pot stabili ntre acestea. Spunem c ntre datele unei baze de date exist o interdependen logic. Considerarea interdependen elor ce se pot stabili ntre colec iile de date memorate ntr-o baz de date contribuie la asigurarea integrit ii func ionale a bazei de date. O baz de date este un model al unui sistem real. Con inutul unei baze de date (numit uneori i extensie) reprezint, la un moment dat, o stare a sistemului care se modeleaz. Schimbrile n baza de date reprezint evenimente care au loc n mediu i care schimb starea sistemului modelat. Este evident c este de dorit s structurm o baz de date astfel nct aceasta s oglindeasc sistemul care se dorete modelat.

15

Obiective fundamentale ale unei baze de date Centralizarea datelor. Permite controlul centralizat al datelor i eliminarea repetrilor (numite redundan e). O eliminare total a redundan elor nu este posibil, dar controlul asupra lor duce la o utilizare eficient a spa iului de memorie extern. Independen a ntre date i prelucrri. Baza de date, fiind un model al unei realit i, se schimb mereu (de exemplu, ntr-o banc au loc: numeroase tranzac ii financiare, schimbri de personal, schimbri de parteneri de afaceri etc.). Acest lucru nu trebuie s afecteze programele de prelucrare a datelor i invers, dac este necesar operarea de schimbri n anumite programe, datele nu trebuie s fie afectate. Realizarea de legturi ntre date. Datele ce reprezint modelul unui sistem nu sunt disparate, ntre ele exist legturi logice. Aceste legturi vor fi surprinse n baza de date. Integritatea datelor. Asigur fiabilitatea i coeren a bazei de date. Securitatea datelor. Baza de date trebuie s fie protejat mpotriva distrugerilor logice (greeli la actualizare) i/sau fizice (deteriorri ale supor ilor fizici, pierderi de date datorate unor accidente naturale (calamit i, incendii etc.). Confiden ialitatea datelor. Se refer la caracterul secret al datelor, ce pot fi accesate doar de ctre cei autoriza i. Partajarea datelor. Permite deservirea utilizatorilor care acceseaz simultan aceleai date din baz.

1.4 Sisteme de gestiune a bazelor de dateSistemul de programe care permite construirea unei baze de date, introducerea informa iilor n baza de date i dezvoltarea de aplica ii se numete sistem de gestiune a bazei de date (pe scurt, SGBD). Un SGBD d utilizatorului posibilitatea s aib acces la date folosind un limbaj de nivel nalt, adic apropiat de modul obinuit de exprimare, pentru a ob ine informa ii. Nu este necesar ca utilizatorul s cunoasc modul n care sunt selectate datele pe care le dorete, ori modul de memorare al lor. Spunem de aceea c SGBD-ul este o interfa ntre utilizatori i baza de date, un instrument de asamblare, codificare, aranjare, protec ie i regsire a datelor n baza de date. Principalele func ii ale unui SGBD Memorarea datelor pe suportul extern (prin intermediul sistemului de gestiune a fiierelor); Gestiunea datelor i a legturilor dintre acestea, n vederea unei regsiri rapide prin intermediul sistemului de acces; Introducerea i extragerea datelor din/spre exterior, n forma cerut de utilizator. SGBD-ul poate prelucra mai multe cereri, provenind de la mai multe programe de aplica ii. Totodat, majoritatea SGBD-urilor asigur i controlul transmisiei datelor la i de la terminale. SGBD-ul pune la dispozi ia utilizatorilor limbaje distincte pentru: Descrierea bazei de date: Limbajul de Descriere a Datelor (LDD). Utilizarea (manipularea) bazei de date: Limbajul de Manipulare a Datelor (LMD). Limbajele de manipulare (interogare) a bazelor de date pot fi: Declarative permit utilizatorului s declare de CE informa ii are nevoie. Procedurale care oblig utilizatorul s descrie CUM ob ine informa iile. Realizarea pe plan mondial a unor re ele de calculatoare care permit conectarea mai multor baze de date a condus la apari ia bazelor de date distribuite i, implicit, la apari ia SGBD pentru astfel de baze. Bazele de date distribuite reprezint un salt calitativ superior n acest domeniu, oferind noi perspective pentru realizarea sistemelor informatice. Un sistem de baze de date distribuite este o colec ie de baze de date locale, amplasate geografic n puncte diferite i legate logic prin rela ii func ionale, astfel nct apar, la nivel global, ca o singur baz de date. n func ie de modul n care exploateaz baza de date, utilizatorii pot fi mpr i i n urmtoarele clase: Utilizatorii obinui i, care pot s ob in informa iile dorite fr s aib cunotin e de programare, prin comenzi cunoscute i eventual rspunznd la diferitele op iuni pe care le indic sistemul la un moment dat.

16

Programatorii de aplica ii, care realizeaz programele ce vor fi memorate i ulterior lansate n execu ie de utilizatori prin invocarea numelui asociat lor. Administratorul bazei de date, care stabilete structura ini ial a bazei de date i modul de memorare a datelor la nivel fizic, acord utilizatorilor drepturi de acces la baz sau la pr i ale ei, stabilete condi iile pentru asigurarea securit ii i integrit ii datelor, modific structura bazei atunci cnd este nevoie, asigur ntre inerea bazei fcnd periodic copii i reconstruind baza de date n cazul n care au aprut erori datorate componentelor soft, hard sau utilizrii i rspunde, n general, de modul de utilizare al bazei de date. Cele mai multe SGBD-uri con in i o colec ie de utilitare folosite n diferite aplica ii: procesoare pentru limbaje de cereri, editoare de rapoarte, sisteme de reprezentri grafice, posibilit i de lucru cu tabele, programe statistice, de copiere, generatoare de aplica ii i alte posibilit i de dezvoltare a unor aplica ii de tip CASE (computer-aided software engineering). Pentru a facilita munca administratorului de sistem, un SGBD con ine o serie de componente care permit: crearea unei versiuni ini iale a bazei, salvarea i rencrcarea (efectuarea de copii periodice i posibilitatea refacerii bazei plecnd de la aceste copii), reorganizarea (rearanjarea datelor n scopul mbunt irii unor performan e), statistici i analize asupra exploatrii bazei de date. Evolu ia tehnologiilor informa ionale face ca n prezent majoritatea SGBD-urilor: S gestioneze date tradi ionale, dar i date netradi ionale (video, foto, sunet etc.). S permit lucrul n re ea de calculatoare. Sa pun la dispozi ia utilizatorului att limbaje declarative, ct i limbaje procedurale.

Materiale introductive privind domeniul bazelor de date:Cursuri generale de baze de date: 1. 2. 3. 4. 5. 6. 7. www.cs.washington.edu/education/courses/444/98wi www.albany.edu/acc/courses/acc682.fall98/ www.cs.umbc.edu/461/461.shtml www-db.stanford/edu/~ulmann/fcdb.html www.developer.com/db/article.php/719041 www.servicearchitecture.com/database/articles webmonkey.wired.com/webmonkey/backend/databases/tutorial/tutorial1.html Despre alegerea sistemului potrivit de baze de date

8. [Bas97] Tipuri de organizare a fiierelor i metode de cutare n fiiere Descrierea unor SGBD-uri de tipuri diferite

17

2. Niveluri de reprezentare a unei baze de dateBazele de date pot fi analizate pe diferite nivele: Nivelul conceptual ce corespunde modelelor semantice de date este un model de nivel nalt, specific omului i nu sistemelor de calcul. Nivelul aplica ie ce poate fi privit, la rndul su, din dou puncte de vedere: Logic referitor la organizarea datelor, organizare prin care se implementeaz o anumit cantitate de informa ie i Fizic referitor la stocarea efectiv a informa iei (grupare, parti ionare, indexare, etc.)

2.1 Modelarea conceptualNivelul conceptual ne permite s modelm aplica iile n termeni independen i de orice model de date particular. Este un instrument convenabil care ne permite s structurm o baz de date astfel nct aceasta s evolueze n timp odat cu mediul modelat, cu necesit ile utilizatorilor i cu schimbrile care apar privind cererile de informa ie. Modelele conceptuale furnizeaz un mediu pentru dezvoltarea structurii unei baze de date ntr-o manier de sus n jos (top-down). Cel mai utilizat model conceptual este Modelul Entitate Asociere. 2.1.1 Modelul Entitate - Asociere Modelul entitate-asociere este un instrument pentru analiza acelor aspecte semantice ale unei aplica ii, care sunt independente de evenimente. Modelul entitate-asociere reduce redundan a datelor. Aceasta abordare utilizeaz urmtoarele nota ii grafice: dreptunghiuri pentru entit i, romburi pentru asocieri (rela ii) i cercuri sau elipse pentru atribute. Pentru situa ii complexe, o diagram entitate-asociere par ial (care nu include detalii despre atribute) poate fi utilizat pentru a prezenta o sintez a entit ilor i rela iilor. Diagrama entitate-asociere furnizeaz o metod eficient pentru vizualizarea legturilor ntre entit i, pentru o aplica ie dat. Acest instrument s-a dovedit util pentru a face tranzi ia de la descrierea unei aplica ii la o schem formal a bazei de date. Modelul entitateasociere este astfel realizat fr a fi necesar aten ia asupra proiectrii fizice a bazei de date. Diagramele entitate-asociere sunt ulterior transformate ntr-o schem conceptual n unul din modelele n care baza de date se va implementa efectiv. n continuare sunt prezentate defini iile unor termeni de baz utiliza i pentru descrierea conceptelor importante ale modelului entitate-asociere. Entitate - O entitate este un obiect concret sau abstract care poate fi clar delimitat n mediu. o Instan de entitate - O instan este o apari ie particular a unei entit i. De exemplu, fiecare persoan n parte poate fi o instan a unei entit i PERSOANE, fiecare main n parte poate fi o instan a unei entit i MAINI, etc. o Tip de entitate Un grup de entit i similare poart numele de clas de entit i sau tip de entitate. O clas de entit i are propriet i comune.

Atribute Atributele descriu propriet ile entit ilor i rela iilor i pot fi: o Simple (scalare) sunt cele mai mici unit i semantice de date, atomice (fr structur intern), de exemplu: oraul. o Compuse reprezint grupuri de atribute privite unitar, de exemplu: adresa (strad, numr, ora, cod potal ). o Multivaluate (liste) - reprezint valori multiple, de exemplu: note, cursuri, etc.

18

Domeniile sunt mul imile de defini ie ale atributelor: mul imi precizate de valori scalare de acelai tip sau mul imi de valori posibile.

Rela iile O rela ie este o legtur ntre dou clase de entitate. De exemplu, o rela ie ntre entit ile PERSOANE i MAINI poate fi cea de proprietate (automobilele sunt n proprietatea oamenilor). o Gradul unei rela ii indic numrul de entit i implicate n rela ie. o Cardinalitatea unei rela ii indic numrul de instan e din clasa de entit i E1 care poate sau trebuie asociat cu instan e din clasa de entit i E2: Rela ii 1-1 (One to One relationship) Pentru fiecare entitate dintro clas exist cel mult o entitate asociat n cealalt clas. De exemplu, fiecare persoan are un card de identitate (i exist copii, care nc nu au). Rela ii 1-n (One to Many relationships) O entitate din clasa E2 este asociat cu zero sau mai multe entit i din clasa E1, dar fiecrei entit i din E1 i se asociaz cel mult o entitate n E2. De exemplu, o femeie poate avea mai mul i copii dar orice copil are o singur mam. Rela ii m-n (Many to Many relationships) Nu exist restric ii asupra numrului de entit i dintr-o clas, ce pot fi asociate cu o entitate din cealalt clas. De exemplu, rela ia ntre studen i i cursuri. Fiecare student merge la mai multe cursuri i fiecare curs are mai mul i studen i. Poate fi obligatorie, op ional sau fixat. o Ierarhiile Isa (Is a) reprezint un tip special de rela ie ce permite motenirea atributelor. De exemplu, a spune c un camion este un automobil i un automobil are un fabricant, un model i un numr de serie implic faptul c un camion are, de asemenea, un fabricant, un model i un numr de serie. Cheile Cheile identific n mod unic o entitate de alta, ntr-o clas de entit i. o Cheia primar Identificator utilizat pentru a identifica n mod unic o instan particular a unei entit i. Poate fi reprezentat de unul sau mai multe atribute. Trebuie s fie unic n domeniul su (i nu doar n setul de date curent). Valorile sale nu se schimb n timp. Trebuie s aib totdeauna o valoare. Poate fi creat cnd nu este evident nici un atribut. Fiecrei instan e i se asociaz o valoare. o Cheie candidat Cnd exist mai multe chei primare posibile, fiecare este o cheie candidat. o Cheie concatenat Este o cheie realizat din componente care, atunci cnd sunt considerate mpreun, identific n mod unic entitatea. Cheile atribute multiple sunt chei concatenate. o Atribute cheie mprumutate dac exist o rela ie isa, cheia clasei mai generale este, de asemenea, o cheie pentru subclas. De exemplu, dac numrul de serie pentru automobile este cheie, va fi cheie i pentru camioane. o Chei secundare Refer un tabel aflat n rela ie, prin cheia primar a acelui tabel. Restric ia de integritate referen ial Pentru fiecare valoare a unei chei secundare, exist o cheie primar cu acea valoare n tabelul referit. De exemplu, dac un numr de cont se utilizeaz ntr-un tabel pentru intrri, atunci numrul de cont trebuie s existe tabelul cu numerele de cont. Evenimente Evenimentele schimb entit ile i/sau rela iile.

19

2.1.2 Diagrama Entitate - Asociere Simbolurile utilizate n diagrama entitate asociere includ: Dreptunghiuri Reprezint clasele (tipurile) de entitate. Cercuri reprezint atributele. Romburi reprezint rela iile. Arce Au rolul de a conecta entit ile prin rela ii i, de asemenea, de a conecta atributele la entit i. Unele modele de diagram entitate asociere utilizeaz sge i sau sge i duble pentru a indica diferitele tipuri de rela ii. Sublinierea Atributele cheie ale entit ilor sunt subliniate.

Iat un fragment dintr-o diagram entitate asociere:

Tip de entitate

Rela ie 1 Primesc N

Tip de entitate

CLIEN I

FACTURI

Cod

Nume

Adr.

Codf

Data

Val.

2.2. Modele de datePrincipalele clase de modele logice utilizate n gestiunea bazelor de date sunt urmtoarele: Modelul ierarhic Modelul re ea Modelul rela ional. Un alt model care trebuie men ionat este modelul punctual. O baz de date cu un singur fiier (tabel) reprezint o structur punctual. O astfel de structur este util doar n cazuri extrem de simple, pentru cele mai multe aplica ii din domeniul economic fiind insuficient. Multe procesoare de tabele includ facilit i de baze de date, cum ar fi sortarea, numrarea sau filtrarea datelor care satisfac anumite criterii. Toate facilit ile de baze de date incluse n procesoarele de tabele se refer la structura punctual. n cele ce urmeaz se vor prezenta pe scurt primele dou modele, detaliind ntr-un capitol separat modelul rela ional care este, n prezent, cel mai utilizat. 2.2.1 Modelul ierarhic Modelul de date ierarhic este o colec ie de structuri arborescente, fiind fondat pe reprezentarea arborescent a schemei conceptuale a bazei de date, n care nodurile reprezint clasele de obiecte, iar arcele legturile ntre acestea. Modelul ierarhic este, prin urmare, un arbore de nregistrri n care fiecare nregistrare con ine dou elemente rdcin sau un cmp master (o cheie), care identific tipul, loca ia sau ordinea nregistrrilor cmpurile subordonate, ce reprezint restul datelor dintr-o nregistrare Toate cmpurile au numai un nod printe, fiecare nod printe putnd avea mai mul i fii. Opera iile din bazele de date de tip ierarhic se traduc n procese de parcurgere a arborilor. Avantaje: vitez i eficien pentru anumite tipuri de aplica ii. Modelul ierarhic este o alegere bun atunci cnd datele au o structur natural de arbore. Astfel de aplica ii pot fi, de exemplu, inventarele, sistemele de documentare bibliografice, unele sisteme de luare a

20

deciziilor i de gestionare de tip ierarhic, sistemele de informare i operare bazate pe lucrul cu meniuri i altele asemntoare. Probleme: modul de definire a datelor este predefinit; fiecare asociere trebuie s fie definit explicit, la crearea bazei de date. Modelul ierarhic este un caz special al modelului re ea. Cel mai cunoscut SGBD de tip ierarhic este IMS (Information Management System) de la IBM. A fost construit n 1968 n scopul prelucrrii datelor din industria aerospa ial. Ini ial a fost un sistem pur ierarhic, dar a cptat unele trsturi non-ierarhice, ca rezultat al necesit ilor practice. Exemplu. Structura arborescent prezentat n continuare se refer la o baz de date a unei agen ii de vnzri de locuin e: JUDETE (NUMER) OFICII (ORAS, ADROF) AGENTI (NUMEA, VANZARI) ANGAJAT (NR_AN, NUMEAN, ADRAN, SALARIU) OFERTE (ADROF, PRET) CLIENTI (NUMEC, ADRC) i poate fi descris prin urmtoarea succesiune de instruc iuni n SGBD IMS: TREE AGENTIE RECORD JUDETE ROOT NUMER CHAR(20) RECORD OFICII PARENT=JUDETE ORAS CHAR(20) ADROF CHAR(30) RECORD AGENTI PARENT=OFICII NUMEA CHAR(20) VANZARI INTEGER RECORD ANGAJAT PARENT=OFICII NR_AN INTEGER NUMEAN CHAR(20) ADRAN CHAR(30) SALARIU INTEGER RECORD OFERTE PARENT=OFICII ADROF CHAR(30) PRET INTEGER RECORD CLIENTI PARENT=AGENTI NUMEC CHAR(20) ADRC CHAR(30) 2.2.2 Modelul re ea Modelul de date re ea este cel mai apropiat de forma de reprezentare a bazelor de date sub forma diagramelor entitate-asociere. Deosebirea const doar n faptul c toate rela iile ce apar pot fi numai binare i de tipul 1-1 sau 1-n. Aceast restric ie permite reprezentarea grafic a unei baze de tip re ea sub forma unui orientat numit re ea. n acest graf, nodurile corespund entit ilor iar rela iile sunt reprezentate prin sge i de la tat la fiu i anume: sge i simple dac rela ia este de tip 1-1 i sge i duble dac rela ia este de tip 1-n. Iat cteva caracteristici ale modelului re ea: Creeaz asocieri ntre date printr-o list de legturi n care nregistrrile subordonate (membre) pot fi legate la mai mult de un element (proprietar). Un element poate fi parte a mai multor asocieri. Pointer legtur explicit, pstrnd adrese ce con in loca ia nregistrrii asociate. Complexitate pentru fiecare mul ime de elemente asociate trebuie pstrat o pereche de pointeri. Utiliznd acest model, este dificil s se structureze, din punct de vedere conceptual, structuri de date complexe.

21

Vitez legturile directe conduc la viteze de lucru mari ale sistemelor care implementeaz modelul re ea.

Exemplu. SGBD SOCRATE este de tip re ea, fiind totodat i unul din primele sisteme de gestiune a bazelor de date. A fost realizat de firma CII n colaborare cu ECA-Automation pentru sisteme de tip IRIS, fiind folosit i n ara noastr pe vechile sisteme de tip Felix. Sistemul con ine un limbaj de descriere pentru date (identificarea datelor, a propriet ilor lor i eventual a criteriilor de validare), un limbaj de cereri, un macrogenerator (pentru generarea unor macrocomenzi care permit utilizarea produsului i de ctre nespecialiti), un modul de metode de acces (care permite utilizarea unor programe de accesare a datelor scrise n diverse limbaje de programare), un editor de texte (pentru gestionarea textelor programelor i a celor din baza de date), componente pentru asigurarea securit ii i confiden ialit ii datelor din baz, pentru reorganizarea bazei i alte programe utilitare. Poate lucra att autonom, con innd toate elementele necesare func ionrii sale, ct i ca metod de acces, fiind deschis prin interfe e pentru a putea func iona mpreun cu alte programe. Poate opera att programabil ct i conversa ional. n al doilea caz, poate lucra n regim multiutilizator.

Materiale privind modelarea:1. http://www.utexas.edu/its/windows/database/datamodeling/rm/rm7.html Curs de ini iere in modelarea datelor la University of Texas at Austin

Despre modelele ierarhic i re ea: 2. 3. 4. http://unixspace.com/context/databases.html www.ittia.com/dbstar/whitepapers/technicalmodel.pdf www.staff.brad.ac.uk/ckarazai/Lecture3.pdf

Despre modelul entitate-asociere: 5. 6. 7. 8. www.campus.ncl.ac.uk/databases/design/design.html http://databases.about.com/od/Specificproducts http://ycmi.med.yale.edu/nadkarni/IntroductiontoEAVSystems.htm http://wofford.org/ecs/DataAudVisualization/ermodel/material.htm

22

3. Modelul rela ionaln modelul rela ional, baza de date este reprezentat de un grup de tabele corelate. Modelul rela ional a fost propus n 1970 de ctre cercettorul american E.F. Codd, n lucrarea A relational model of large shared data banks i este, n prezent, cel mai popular model. Simplitatea matematic i uurin a vizualizrii modelului rela ional au contribuit la succesul acestuia. n plus, modelul rela ional de date nu este legat de un tip anume de structur de date (cum este, de exemplu, modelul ierarhic). Modelul rela ional se bazeaz pe teoria matematic a rela iilor. Formal, o rela ie n-ar R pe domeniile X1, X2, ,Xn este o submul ime a produsului cartezian X1xX2x xXn i se noteaz R(X1,X2, ,Xn). X1, X2, ,Xn se mai numesc constituen i. Exemplu. Fie o ntreprindere i clasa de obiecte autoturisme fabricate n ntreprindere. Fiecare produs are ca atribute: codul produsului, denumirea produsului i pre ul de referin . S considerm datele ce caracterizeaz mpreun un anume produs: 1555, OPEL VECTRA, 15000 1555 reprezint codul, OPEL VECTRA reprezint numele iar 15000, pre ul. Datele reprezint valori ale atributelor, valori ce se plaseaz ntr-un domeniu de defini ie corespunztor. Domeniul de defini ie se poate preciza implicit sau explicit. n acest caz, atributului pre de referin i se atribuie valori n mul imea numerelor ntregi. Dac pre urile autoturismelor fabricate au valori cuprinse ntre 10000 i 30000, atunci domeniul de defini ie se poate preciza ca fiind secven a numerelor ntre 10000 i 30000. Este important ca pentru fiecare atribut s se cunoasc domeniul de defini ie, deoarece la introducerea datelor n baza de date nu vor fi acceptate dect datele care reprezint valori plasate n domeniile de defini ie ale atributelor. Validarea datelor la introducere poate fi foarte complex, avnd ca obiectiv asigurarea integrit ii datelor. Ansamblul valorilor afectate atributelor pentru un obiect real sau abstract din domeniul supus studiului formeaz un tuplu (sau o realizare, sau o nregistrare de date). Tuplurile unei rela ii trebuie s fie unice. Se observ c datele pot fi organizate, n mod eficient, ntr-un tabel. De altfel, organizarea tabelar este foarte mult folosit n practic. Tuplurile vor fi liniile tabelului, n timp ce atributele sunt regsite pe coloane. Ordinea liniilor i coloanelor nu prezint nici o importan . Validarea datelor la nivelul realizrii unei rela ii nseamn, n plus, respectarea regulilor de integritate stabilite la nivel de rela ie. Exemplu. Pentru rela ia SALARIAT, cu atributele: Maca, Nume, Data_angajarii. La nivelul acestei rela ii se poate stabili regula de integritate: An(Data_angajarii)>=An(Data_nasterii)+18. Regulile pentru asigurarea integrit ii datelor pot viza i asocieri ce se stabilesc ntre realizri ale rela iilor din baza de date. Exemplu. O realizare a rela iei facturi de la furnizori se asociaz cu o realizare a rela iei furnizori. Nu se pot nregistra datele dintr-o factur, dac anterior nu s-a nregistrat, n baza de date, furnizorul. Acesta este un exemplu de regul de integritate referen ial a bazei de date. Dintre cele trei modele de baze de date prezentate, modelul rela ional se impune prin: simplitate, structuri de date simple, operatori simpli (fr mari diferen e ntre sisteme), mecanismul vederilor, o baz teoretic solid, un numr mic de concepte, aplicarea principiului dualit ii accesului (prin program i interactiv), independen a fizic a datelor, independen a logic a datelor, uurin a dezvoltrii aplica iilor, a instalrii i operrii, simplificarea proiectrii bazelor de date, integrarea dic ionarelor, posibilitatea dezvoltrii bazelor de date distribuite, performan e i posibilit i de extindere. Data_nasterii,

23

3.1 Conceptele modelului rela ionalConceptele modelului rela ional sunt prezentate n urmtoarea sintez: Rela ie - Un tabel (bidimensional). Rela ia nsi corespunde no iunii noastre obinuite de tabel. O rela ie este deci o colec ie de tuple (termenul vine de la tuplu, nota ie folosit i n matematic, adic o succesiune de t elemente), fiecare con innd valori ale unui numr fix de atribute. Rela iile mai sunt uneori referite i ca fiiere, din cauza asemnrii lor cu o secven nestructurat de articole. Fiecare tuplu al unei rela ii trebuie s fie unic (deci, nu exist duplicate). Atribut Este o coloan a tabelului. Al i termeni utiliza i n mod obinuit pentru atribut sunt proprietate i cmp. Mul imea valorilor permise pentru fiecare atribut se numete domeniul acelui atribut. Tuplu Este un rnd al tabelului. Un tuplu este o instan a unei entit i sau asocieri. Cheie Un singur atribut sau o combina ie de atribute ale cror valori identific n mod unic tuplurile rela iei. Deci, fiecare rnd are o valoare diferit pentru atributul cheie. Modelul rela ional cere ca fiecare rela ie s aib o cheie astfel nct: o o Oricare dou tupluri nu pot avea aceiai valoare a cheii Fiecare tuplu trebuie s aib o valoare pentru atributul cheie (cmpurile cheie nu pot avea valori nenule).

Exist dou restric ii ale modelului rela ional care, n practic, sunt uneori nerespectate: 1. Nu sunt permise tupluri duplicate. Dac sunt introduse dou tuple cu aceeai valoare pentru fiecare din atribute, ele de fapt sunt considerate a fi acelai tuplu. Aceast restric ie este uneori rezolvat prin asignarea unui numr de linie (sau de tuplu) unic pentru fiecare intrare, ceea ce asigur unicitatea. 2. Nu se presupune nici o ordine a tuplurilor n cadrul rela iei. n practic, totui, se folosete deseori o metod de ordonare a tuplurilor. Exemplu de extensie a unei rela ii:

Atribut sau cmp sau coloan Numele atributelor sunt parte a schemei COD_CLIENT 19283 Tuplu sau nregistrare sau rnd 35231 NUME ELBAC S.A. SUBEX S.A. ADRES os. Oituz 34 os. Iaului 12 CREDIT_LIMIT 300000000 500000000

34567

MICROSISTEM os. Alba 23 S.A.

250000000

Exist urmtoarea distinc ie ntre schema unei rela ii i extensia unei rela ii. Schema este cadrul pentru rela ie. Ea definete rela ia, adic: Numrul atributelor Numele atributelor i domeniile acestora Atributul cheie primar Extensia rela iei este con inutul rela iei, adic mul imea tuplurilor care formeaz rela ia. Extensia unei rela ii poate varia foarte mult n timp, dar schema este stabil. Antetele coloanelor din figura de mai sus pot fi privite ca o parte a schemei, iar tuplurile de sub antete, ca fiind extensia.

24

n termeni conceptuali, o rela ie este o structur care pstreaz valori ale atributelor unei clase particulare de entit i, sau ale unei clase particulare de asocieri. Exemplul reprezint o rela ie ce descrie membrii unei clase de entitate numit CLIEN I. Rela iile pot, de asemenea, s descrie asocieri. Observa ie. A nu se confunda, din cauza omonimiei, rela ia, care este o construc ie la nivel de date a modelului rela ional, cu asocierea (pentru care se folosete i termenul de rela ie), care este o no iune la nivel conceptual. n rela ia CLIEN I, cheia pentru fiecare realizare de entitate este pstrat n atributul COD_CLIENT. Cheile compuse sunt folosite, de obicei, n cazul asocierilor. De exemplu, dac am crea o rela ie care s reprezinte asocierea dintre studen i i cursuri am avea nevoie de o cheie, care ar putea fi combina ia dintre cheia pentru studen i i cheia pentru cursuri. Urmtoarele reguli permit (n cele mai multe cazuri) conversia unei diagrame entitateasociere ntr-o schem rela ional: Este necesar cte o rela ie (tabel) pentru fiecare clas de entit i i fiecare rela ie de tip m-n; Nu sunt necesare rela ii pentru a reprezenta rela iile de tip 1-1 sau 1-n; Cnd se construiete o rela ie (tabel) pentru reprezentarea unei asocieri m-n, cheia trebuie s con in toate atributele cheie ale rela iilor implicate. Exemplul din 10.1 reprezint un model rela ional.

3.2 Sisteme de gestiune a bazelor de date rela ionaleBazele de date la organizarea crora se utilizeaz modelul rela ional se numesc baze de date rela ionale (BDR). SGBD-urile care permit gestiune bazelor de date rela ionale se numesc sisteme de gestiune a bazelor de date rela ionale (SGBDR). Dintre sistemele de gestiune a bazelor de date rela ionale men ionm: Visual Fox, Access, Db2, Oracle, Informix. Unele dintre aceste SGBDR-uri au interfe e proprii pentru interogarea bazelor de date rela ionale, toate implementnd limbajul standard SQL. Multe SGBDR-uri fac obiectul unor extinderi, pentru a fi adaptate noilor cerin e, cum ar fi: orientarea obiect, analiza multidimensional, sisteme expert, sisteme multimedia, sisteme client-server. Pentru gestiunea bazelor de date de dimensiuni mari (cu nregistrri ce depesc ordinul sutelor de mii) se recomand utilizarea unor sisteme de gestiune a bazelor de date performante, cum ar fi Oracle, SQL Server i Informix. Avnd in vedere performan ele oferite pentru gestiunea bazelor de date rela ionale dar i necesit ile didactice, n cadrul acestui curs vom prezenta aplica ii realizate n Access.

Materiale privind modelul rela ional:1. [Fel96] Despre bazele de date rela ionale 2. http://databases.about.com/compute/databases/mbody.htm Despre baze de date n general, cu informa ii despre modelul rela ional 3. http://www.sqlmag.com/Articles/Index.cfm?ArticleID=5113 SQL. Despre alegerea cheii primare 4. http://www.acm.org/classics/nov95/ Extrase din lucrarea lui Codd privind modelul rela ional

25

4. Noi func ionalit i ale bazelor de date 4.1 Partajarea bazelor de daten condi iile lucrului n re ea, este posibil s se stocheze baza de date pe un calculator ce are rol de server. To i utilizatorii de la posturile de lucru pot accede simultan la baza de date; ei partajeaz baza de date. Lucrul n sistem multiutilizator impune rezolvarea unor probleme care vizeaz: asigurarea integrit ii datelor (ndeosebi n cazul n care doi sau mai mul i utilizatori vor s realizeze n acelai timp opera ii de actualizare a bazei de date); asigurarea confiden ialit ii datelor; prevederea unor mecanisme de protec ie mpotriva unor opera ii neautorizate, care vizeaz ndeosebi modificarea structurii unor componente ale bazei de date; Administratorul bazei de date are sarcini privind: modelarea datelor implementarea bazei de date definirea utilizatorilor i a drepturilor de acces ntre inerea bazei de date. Drepturile de acces la nivel de utilizator vizeaz opera iile pe care acetia le pot realiza. Se poate merge pn la detalii, preciznd chiar tabelele la care un anume utilizator va avea acces. n practica dezvoltrii sistemelor cu baze de date se poate opta pentru dezvoltarea unor interfe e de acces la baze de date partajate la nivel de utilizator / grup de utilizatori (fiecare interfa utilizeaz, de regul, numai tabele ale bazei de date ce este stocat pe server).

4.2 Baze de date distribuiten numeroase situa ii bazele de date sunt dispersate geografic se spune c sunt distribuite (BDD). O baz de date distribuit permite ca o colec ie arbitrar de rela ii, dintr-o colec ie arbitrar de baze de date, , aflate pe o mare varietate de maini ce lucreaz sub diverse sisteme de operare i sunt legate prin diferite re ele de comunica ie, s poat fi utilizate ca i cum ar fi o singur baz de date pe o singur main. Principalele cerin e pe care trebuie s le asigure un sistem de baze distribuite sunt: autonomia local n organizarea i prelucrarea datelor, posibilitatea de lucru continuu al nodurilor, independent de schimbrile n configura iile de lucru (adugri sau eliminri de noduri), independen a localizrii i fragmentrii datelor (transparen a fizic), posibilit i de replicare (copiere) i independen a copiilor, prelucrarea distribuit a cererilor, administrarea distribuit a tranzac iilor, independen a de hardware, de sistem de operare, de re ea i de SGBD. Exemplu. Considerm o banc ce are filiale n 20 de localit i. Fiecare agen ie posed un sistem de calcul propriu i propria baz de date (baz de date local). Banca central posed, de asemenea, un sistem de calcul pentru prelucrarea ansamblului datelor de la toate filialele. Tranzac iile efectuate in conturi pot fi locale sau globale. S presupunem c de la filiala din Constan a a bncii se face o depunere de 20 000 lei n contul cu numrul 456 al persoanei X. Dac persoana X a deschis contul la filiala din Constan a, tranzac ia este local. Dac persoana X are contul deschis la filiala din Bucureti, tranzac ia este considerat global. Fiecare filial are acces la baza de date a unei alte filiale pentru realizarea unui set finit de opera ii. Lucrul n re ele de calculatoare permite distribuirea unei baze de date, din punct de vedere fizic, pe mai multe site-uri. Fiecare site gzduiete un sistem local de gestiune a bazelor de date. Utilizatorii unui site au acces la baza de date local i, n plus, la bazele de date distribuite n celelalte site-uri. Conexiunile ntre site-uri pot fi stabilite n diverse maniere.

26

Topologiile de racordare (stea, inel, combinate) se prezint sub form de grafuri, ale cror noduri corespund site-urilor. Un utilizator particular va folosi baza de date fr s fac referiri concrete i fr s se preocupe de locul unde aceasta este memorat fizic. Figura urmtoare prezint o posibil arhitectur pentru baza de date distribuit a unei bnci:Centru regional 1 Centru regional 2

Centru regional N

Centre regionale cu Mainframe

LAN Agen ia 1

LAN Agen ia 2

LAN Agen ia M

n cazul unei ntreprinderi s-ar putea opta pentru solu ia unei baze de date distribuite pe func ii, ca n figura urmtoare:Gestiunea resurselor umane i a salariilorInfrastructur pentru comunica ie

Gestiunea resurselor materiale

Gestiunea produc iei

Contabilitate i control de gestiune

Exist mai multe arhitecturi pentru baze de date distribuite: Cu replicare diversele site-uri stocheaz o copie a bazei de date. Cu fragmentare baza de date este fragmentat, iar fiecare fragment este gzduit de ctre un site. Fragmentarea poate fi: orizontal, vertical sau mixt. Cu replicare i fragmentare. Sistemele cu baze de date distribuite comport dou subsisteme: Gestionarul de tranzac ii - a crui func ie este de a gestiona tranzac iile relative la datele site-ului; fiecare tranzac ie poate fi local (executabil integral n cadrul siteului) sau poate s fac parte dintr-o tranzac ie global (interesnd mai multe site-uri); Coordonatorul tranzac iilor al crui rol este de a coordona executarea diverselor tranzac ii (locale sau globale); el trebuie s execute un protocol da validare a tranzac iei. Avantaje. Avantajele repartizrii bazelor de date sunt: partajarea datelor i gestiunea distribuit a acestora; fiabilitatea i disponibilitatea; prelucrarea accelerat a cererilor. Principala dificultate n dezvoltarea sistemelor cu baze de date distributive provine din necesitatea de a coordona ansamblul site-urilor. Un sistem cu baza de date distribuit ridic problemele specifice sistemelor multiutilizator, la care se adaug cele ale distribuirii bazelor de date.

27

4.3 Baze de date deductiveBazele de date deductive se fundamenteaz pe cuplarea unei baze de date rela ionale cu un procesor din clasa sistemelor expert. n figura urmtoare se prezint o arhitectur simplificat a unei baze de date deductive. INTERFA A

Interpretor PROLOG Se vor prezenta detalii n capitolul 9.

SGBDR

4.4 Baze de date multidimensionaleBazele de date multidimensionale au aprut ca urmare a necesit ilor crescnde de procesare multidimensional a datelor. Aplica iile care se bazeaz pe analiza multidimensional a datelor sunt cunoscute sub numele de OLAP (On Line Analytical Processing). Se face astfel distinc ie ntre: OLTP (On Line Transactional Processing) - care privilegiaz: integritatea i securitatea datelor i tratarea cererilor informa ionale simple de ctre servicii opera ionale (produc ie, comercial, resurse umane etc.) i OLAP care privilegiaz: analiza i manipularea datelor folosind cereri complexe, n vederea elaborrii strategiei i sunt destinate ndeosebi conducerii i controlului de gestiune. Conceptul de baz este cel de hipercub, ilustrat n figura urmtoare:

4

Datele se regsesc la intersec ia liniilor marcate pe hipercub i au pentru coordonate atributele ce definesc dimensiunile hipercubului. Hipercubul din figura de mai sus poate fi utilizat, de exemplu, pentru a reprezenta date despre vnzri pe trei dimensiuni: dimensiunea localitate; dimensiunea produs; dimensiunea timp (lunile anului).

4.5 Baze de date orientate obiecteDei succesul SGBDR-urilor n dezvoltarea aplica iilor economice este nc destul de mare, ele prezint i anumite limite. Este vorba, n primul rnd, de faptul c pentru orice aplica ie informatic se delimiteaz net trei domenii: interfa a; datele; prelucrrile.

28

Tehnologia orientat pe obiecte reduce cele trei formalisme la unul singur: obiectul. Aplicarea tehnologiei orientate obiect n domeniul bazelor de date a determinat apari ia bazelor de date orientate pe obiecte. Primele baze de date orientate pe obiecte au aprut la sfritul anilor '80, dar nu au atins un nivel de dezvoltare prea ridicat, datorit: lipsei produselor CASE, care s permit o proiectare corect; limbajelor de interogare, care erau deficitare; faptului c nu existau standarde acceptate. O baz de date orientat pe obiecte trebuie s ndeplineasc dou cerin e fundamentale: s ndeplineasc cerin ele unei baze de date; s fie un sistem care s aib la baz tehnologia orientat obiect. Un obiect poate fi definit ca reuniune ntr-o aceeai capsul a unui ansamblu de date i a prelucrrilor (standard) asociate (urmtoarea figur). ncapsularea este reuniunea defini iei statice a unui obiect prin atributele sale i definirea dinamic a acestui obiect (cu ajutorul regulilor de comportament). Aceste reguli sunt traduse cu ajutorul metodelor, care reprezint prelucrrile asociate obiectelor. Obiectele sunt caracterizate printr-o structur i o interfa . Structura obiectului este reperat printr-un identificator intern unic i posed o stare care regrupeaz n general atribute cu datele de tratat. Interfa a unui obiect este compus din selectorul de metode (partea vizibil a obiectului). Structura este cunoscut numai de ctre obiect. Un obiect nu poate fi manipulat dect via metodele asociate. ObiectDescrierea dinamic (modele de prelucrare) Descrierea static (modele de date)

Date

Multe dintre obiectele manipulate posed n comun aceeai structur i acelai comportament. O clas descrie obiectele care au caracteristici statice i dinamice comune. Exemple. Super-Clasa Persoana Atribute Nume Adresa DataNasterii Metode Nume Returneaza(Self.Nume) Adresa Returneaza(Self.Adresa) DataNasterii Returneaza(Self.DataNasterii)

Clasa Salariat Atribute SalariuIncadrare LocMunca Responsabil Metode SalariuIncadrare Returneaza(Self.SalariuIncadrare) NumeResponsabil Returneaza(Self.NumeResponsabil)

29

O clas (clas derivat) poate moteni de la o alt clas (clasa de baz) atribute i metode. n exemplul de mai sus, clasa Salariat motenete atributele i metodele clasei Persoana. Tehnica motenirii permite mpr irea eficace a anumitor cunotin e despre obiecte pentru a ob ine o reprezentare mai bogat n semantic. Datele cele mai generale se grupeaz n clase care sunt n continuare specializate n subclase ce comport atribute i comportamente din ce n ce mai particulare. La nivelul cel mai nalt va exista o superclas obiect de la care toate celelalte motenesc (atribute, metode). Clasa Salariat motenete atributele, selectorii i metodele superclasei Persoana. Ea posed n plus atribute i metode proprii. Realizrile clasei Salariat pot fi utilizate ca realizri ale clasei Persoana i pot poseda propriet i suplimentare. Obiectele definite se integreaz n sistem i prezint conexiuni cu alte obiecte. Aceste conexiuni sunt materializate prin mesaje pe care obiectele le schimb ntre ele. Aplicarea unei metode la un obiect corespunde cu trimiterea unui mesaj. Receptorul mesajului se numete Self. Bazele de date orientate pe obiecte (BDOO) sunt gestionate folosind sisteme de gestiune orientate pe obiecte (SGOO). Principala caracteristic a BDOO este viteza de acces la date (n compara ie cu celelalte tipuri de Baze de date). Acest acces este asigurat prin intermediul unei hr i a ierarhiilor i rela iilor claselor de obiecte, pe care BDOO o stocheaz. De asemenea, permit gruparea sau parti ionarea fizic a datelor, tehnic numit clustering. BDOO asigur accesarea eficient a obiectelor necesare la un moment dat unei cereri utilizator, minimiznd traficul prin re ea. Domeniile n care este eficient utilizarea BDOO sunt: - simularea si modelarea diferitelor fenomene i procese - administrarea documentelor - proiectele CASE (Computer Aided Software Engineering), CAD (Computer Aided Design), CAM (Computer Aided Manufacturing), CAE (Computer Aided Engineering) - multimedia - ingineria cunoaterii.

4.6 Alte tipuri de baze de dateBazele de date textuale gestioneaz documente electronice. Principalele opera ii asigurate sunt: stocarea, cutarea, modificarea i asamblarea de documente i alte informa ii stocate cu titlu de date textuale n aceste baze de date. Bazele de date multimedia extind aria de gestiune incluznd ndeosebi imagini, sunete, etc.

4.7 Sisteme Client / ServerSistemele Client/Server se fondeaz pe partajarea sarcinilor ntre dou entit i: server i client. Tehnologia client/server presupune dou aplica ii (urmtoarea figur): serverul, care furnizeaz diverse servicii; clientul, care este beneficiarul serviciilor oferite de server.Cerere Rspuns

Aplica ie client

Aplica ie server

Cele mai rspndite aplica ii client/server sunt cele cu baze de date; soft-ul pentru baza de date este executat pe calculatorul server, iar programul care acceseaz baza de date pe un calculator client.

30

4.8 Bazele de date i sistemele informa ionale din organiza iiBazele de date constituie componenta central a sistemelor informa ionale din ntreprinderi, n cadrul reprezentat n figura urmtoare:

SLIC

SISE

SIT

B D

SIMSIAD SIR

SIIO

unde nota iile reprezint: SIT sisteme informa ionale tranzac ionale (sisteme informa ionale opera ionale); SLIC - sisteme de lucru bazate pe informa ie i cunotin e; SIIO - sisteme informa ionale inter-organiza ionale (multe dintre aceste sisteme sunt de tip tranzac ional); SISE - sisteme informa ionale suport pentru executiv SIM - sisteme informa ionale pentru management, care includ: o SIAD - sisteme informa ionale de asistare a deciziei i o SIR sistemele informa ionale de raportare. Bazele de date sunt alimentate n principal de sistemele opera ionale i sistemele inter-organiza ionale (sisteme de comer electronic, sisteme de pl i electronice etc.) i sunt accesate de sistemele de management i de sistemele suport pentru executiv. Ele pot fi, de asemenea, accesate de sistemele de lucru bazate pe informa ie i cunotin e (cum ar fi, spre exemplu, sistemele expert). Structurile func ionale i de conducere din ntreprinderi impun organizarea de sisteme de baze de date care comunic ntre ele. n figura urmtoare prezentm o viziune (conform J. OBrien, Les systmes dinformation de gestion, 1995) a principalelor tipuri de baze de date utilizate de ctre organiza ii i utilizatori.

BD distribuit

Post de lucru al utilizatorului

Server de Baze de date

BD externe

BD individual

BD opera ionale Depozite de date

31

Materiale privind func ionalit ile moderne ale bazelor de date:1. www.extropia.com/tutorials/sql/toc.html Introducere n domeniul bazelor de date, pentru dezvoltatorii de web

2. http://www.service-architecture.com/object-oriented-databases/ Articole despre bazele de date orientate obiect i produse pentru acestea Despre baze de date multimedia 3. http://sunsite.berkeley.edu/Imaging/Databases/ 4. [Tod04]

32

5. Forme normale. Normalizare 5.1 Dependen e func ionaleAtributul Y este dependent func ional de atributul X dac i numai dac fiecare valoare a atributului X este asociat cu exact o valoare a atributului Y. Se spune c X este determinant al lui Y, sau c X determin pe Y i se noteaz XY. Asocierile 1-1 prezint dou dependen e func ionale. De exemplu, ntre numele unei persoane i codul su numeric personal exist o dependen 1-1, cele dou atribute determinndu-se reciproc. Asocierile 1-n prezint o dependen func ional. De exemplu, ntre numele unui student i numrul su matricol: un numr matricol se asociaz exact unui student; dar mai mul i studen i pot avea acelai nume, astfel c un nume poate avea mai multe numere matricole asociate. Asocierile m-n nu prezint dependen e func ionale. De exemplu, ntre studen i i cursuri exist o coresponden de acest tip: fiecare student poate urma mai multe cursuri i fiecare curs poate avea mai mul i studen i, fr a se observa vreo corela ie ntre valori, n sensul defini iei dependen ei func ionale.

Utilizatorul care proiecteaz o aplica ie determin dependen ele func ionale examinnd mediul real. Deseori dependen ele nglobeaz anumite restric ii referitoare la aplica ia respectiv. Este o problem de conven ie, de exemplu, ca un student s poat urma mai multe cursuri, dar nu dintre cele care au loc n acelai interval de timp. Sau, ca un student s aib un singur numr matricol i ca un numr matricol s poat fi asociat unui singur student.

5.1.1 Descompunerea Termenul descompunere se refer la faptul c informa ia inclus ntr-o rela ie poate fi splitat n dou sau mai multe rela ii separate, fiecare dintre acestea avnd mai pu ine atribute dect rela ia original. Cu alte cuvinte, atributele sunt plasate n tabele diferite. Tuplele din noile rela ii vor fi determinate de atributele incluse. Scopurile descompunerii unei rela ii sunt: S reduc redundan a datelor. S pstreze capacitatea de a recrea rela ia original, fr a pierde tupluri sau a aduga noi tupluri. Procesul recrerii tabelului original se numete uniune sau jonc iune (join). A se vedea 6.2.1. Exemplu. n exemplul de mai jos sunt prezentate tabelele ini iale, precum i rezultatul opera iei join pe atributul Profesie. Persoane Nume Profesie Andrei inginer Carmen profesor Silvia inginer Traian pilot Calit i Profesie inginer profesor pilot Rezultatul opera iei join Nume Profesie Calitate Andrei inginer pragmatism Carmen profesor tact Silvia inginer pragmatism Traian pilot curaj

Calitate pragmatism tact curaj

Este important ca descompunerile ce se realizeaz ntr-o baz de date s aib loc fr pierderi de informa ie, cci n caz contrar, informa ia trebuie restaurat.

33

5.1.2 Asocierile i proiectarea schemelor Elegan a matematic a modelului rela ional suport o teorie a proiectrii schemelor. Teoria indic, ntr-o anumit msur, ce structuri au probleme poten iale i ar trebui evitate. Teoria normalizrii ofer multe elemente foarte utile n procesul de proiectare a bazelor de date. Dup cum am observat deja, asocierile ntre datele apar innd la dou domenii, fie acestea A i B, se pot clasifica n trei categorii: asocieri 1-1 asocieri n-1 asocieri n-m Vom ilustra fiecare tip de asociere n contextul unui exemplu. Asocierile 1-1 sunt acelea n care fiecrui element din A i se pune n coresponden un unic element din B i reciproc. De exemplu, fiecare student are un numr matricol i fiecare numr matricol se asigneaz unui singur student. Tabelul urmtor prezint o astfel de asociere: Numr matricol 21350 21351 21576 21577 Nume student Ionescu Alina Mircea Diana Traian Alexandru Miron Vladimir

Vom nota sintetic: Numr matricol (1-1) Nume student ntr-o asociere n-1, fiecrui element din B i se asociaz un unic element din A, dar fiecrui element din A i se pot asocia mai multe elemente din B. De exemplu, dac plecm de la ipoteza c un student nu poate urma dect o specializare, atunci: un student urmeaz o specializare, dar o specializare are mai mul i studen i. Aceasta este o rela ie n-1 ntre studen i i specializri (sau 1-n ntre specializri i studen i). Tabelul urmtor prezint o astfel de asociere: Numr matricol 21350 21351 21576 21577 Specializare Informatic Informatic Biologie Biologie

Vom nota sintetic: Numr matricol (n-1) Specializare Asocierile n-m sunt acelea n care nici unui element nu i se asociaz un singur partener. O astfel de rela ie este cea ntre studen i i cursuri. Fiecare student urmeaz mai multe cursuri, iar fiecare curs are mai mul i studen i. Nu exist limite n ceea ce privete numrul partenerilor de asociere. Vom nota sintetic: Numr matricol (n-m) Cursuri

5.2 Dependen e multivaloareFie R o schem rela ional, X i Y submul imi ale lui R. Spunem c exist o dependen multivaloare a lui Y de X sau c X determin multivaloare pe Y i notm XY dac, pentru orice valoare a atributelor lui X sunt asociate valori pentru atributele lui Y care nu sunt corelate n nici un fel cu atributele din R-X-Y.

34

Exemplu. Fie rela ia ORAR CURS Algebr Algebr Programare Programare Englez Englez Englez PROFESOR Ionescu T. Ionescu T. Dinu A. Dinu A. Bonta E. Bonta E. Bonta E. ORA 10 10 8 8 16 16 18 LOCATIE A45 A45 C9 C9 C22 C22 C22 STUDENT Miron Clin Matei Ruxandra Gruia Alina Traian Maria Miron Clin Matei Ruxandra Horia Anca AN-STUDIU 1 1 2 2 1 1 3

Se manifest urmtoarele dependen e func ionale: CURS PROFESOR (fiecare curs are un singur profesor) ORA, LOCATIE CURS (la o or dat, ntr-o anumit sal se poate ine un singur curs) ORA, PROFESOR LOCATIE (la o anumit or, un profesor se poate afla n cel mult o sal) CURS, STUDENT AN-STUDIU (fiecare student urmeaz un curs ntr-un anumit an de studiu) ORA, STUDENT LOCATIE (fiecare student se poate afla n cel mult o sal, la un moment dat). Au loc dependen ele multivaloare CURS ORA, LOCATIE care semnific faptul c fiecrui curs i se asociaz o mul ime de perechi de ore i sli care nu depind n nici un fel de celelalte informa ii. n schimb nu au loc, n general, dependen ele multivaloare CURS ORA sau CURS LOCATIE.

5.3 Forme normale ale bazelor de dateO form normal se refer la o clas de scheme rela ionale care se supun unui set de reguli. O schem care satisface regulile corespunztoare unui set se spune c este n forma normal respectiv. De obicei, proiectantul unei baze dorete ca rela iile s se afle n ct mai multe forme normale posibil. 5.3.1. Date ne-normalizate Urmtorul tabel con ine date ne-normalizate. Coloanele 2, 3 i 4 con in liste de valori, iar coloana 5 con ine un atribut compus. ListLegitima ie Cod Calificri

ListCategorie Calificri

ListProfil

Valori compuseNume Vrst Birou nr. Ora Superior

21 35 50 77

113 113 170 200 170 150 200

Sisteme Sisteme Taxe Audit Taxe Consultan Audit

3 5 7 4 3 5 8

Mare Ana Ionescu Dan Mircea Clin Traian Raluca

29 33 35 28

1 2 2 1

Iai Bucureti Bucureti Iai

Ion Damian Damian Ion

35

5.3.2 Prima form normal (FN1) O rela ie se prezint n FN1 dac valorile fiecrui cmp sunt ne-decompozabile (atomice) i fiecare tuplu este unic. Atributele care se pot parti iona n sub-atribute sau grupurile repetitive, care sunt foarte comune n bazele de date, nu sunt permise. De exemplu, o persoan poate avea mai multe calificri. Dac acestea sunt listate n acelai cmp (ca n tabloul de mai sus), atunci rela ia nu se afl n prima form normal. La fel, dac un cmp este comun, n genul unei adrese, formate din ora, strad, numr, cod potal. Dac un cmp este considerat structurat sau nu, aceasta depinde n mare msur de aplica ie. Dac prelucrrile nu necesit acces dup ora, sau strad, sau cod potal atunci este potrivit sa pstrm aceste date ntr-un singur cmp, dar dac este necesar s sortm dup unul din aceste elemente, de exemplu dup cod potal, atunci aceast abordare nu mai este potrivit. Utilitatea FN1 este evident. Grupurile repetitive stric natura tabelar a rela iei. Este dificil s se refere un element anume din grupul repetitiv, cci ar trebui specificat o informa ie cu privire la pozi ia sa n grup. Mai mult, diferite pr i ale atributului se pot comporta foarte diferit din punct de vedere al dependen elor. Regula FN1 surprinde cerin a natural ca fiecare atribut s aib propriul su nume. Urmtorul tabel prezint datele tabelului anterior, structurate n FN1. n toate rela iile ce vor fi prezentate, cheia primar este subliniat.

Legiti ma ie

Cod Califi cri

Categorie Calificri

Pro fil

Nume

Prenu me

Vr st

Bi rou nr.

Ora

Superior

21 35 35 35 50 77 77

113 113 170 200 170 150 200

Sisteme Sisteme Taxe Audit Taxe Consultan a Audit

3 5 7 4 3 5 8

Mare Ionescu Ionescu Ionescu Mircea Traian Traian

Ana Dan Dan Dan Clin Raluca Raluca

29 33 33 33 35 28 28

1 2 2 2 2 1 1

Iai Bucureti Bucureti Bucureti Bucureti Iai Iai

Ion Damian Damian Damian Damian Ion Ion

Informa iile aflate doar n FN1 prezint un nalt grad de redundan . Pentru a reduce redundan a vom converti datele la a doua form normal. Formele normale mai mari dect FN1 au fost motivate de descoperirea anomaliilor, deci a opera iilor pe rela ii din care rezult inconsisten e sau pierderi nedorite ale datelor. nlturarea anomaliilor necesit trecerea progresiv prin diferite nivele ale formelor normale. Aceast transformare urmrete un ideal: fiecare informa ie care presupune asocieri ntre date s apar o singur dat n baz i s nu depind de prezen a altor asocieri. 5.3.3 A doua form normal (FN2) O rela ie este n FN2 dac este n FN1 i toate atributele sale sunt dependente de ntreaga cheie (adic, nici unul din atributele non-cheie nu este rela ionat doar cu o parte a cheii). Tehnica de descompunere pentru ob inerea FN2 este foarte simpl: presupune construirea unei rela ii separate care sa nglobeze dependen ele par iale i s nlture atributele dependente din rela ia original. Pentru exemplul considerat, n urma eliminrii dependen elor par iale s-au ob inut urmtoarele trei rela ii. Rela ia CADRE:Legiti ma ie Nume Prenu me Vr st Bi rou nr. Ora Superior

21 35 50 77

Mare Ionescu Mircea Traian

Ana Dan Clin Raluca

29 33 35 28

1 2 2 1

Iai Bucureti Bucureti Iai

Ion Damian Damian Ion

36

Se observ c numele i prenumele, vrsta i informa iile referitoare la grupul din care persona face parte (numrul biroului, oraul, eful direct) sunt corelate direct cu numrul de legitima ie (am putea spune c depind de numrul de legitima ie) i nu depind de calificare. Rela ia CALIFICRI:Cod Calificri Categorie Calificri

113 170 200 150

Sisteme Taxe Audit Consultan a

n acest caz, categoria calificrii este determinat de codul calificrii i nu depinde de numerele de legitima ie ale cadrelor. Rela ia COMPETEN E:Legiti matie Cod Calificri Competen e

21 35 35 35 50 77 77

113 113 170 200 170 150 170

3 5 7 4 3 5 8

n acest caz, competen a este determinat de combina ia celor dou chei (legitima ie i cod calificare). 5.3.4 A treia form normal (FN3) O rela ie este n FN3 dac este n FN2 i nu exist nici un fel de dependen e tranzitive (adic, nici unul din atributele non-cheie nu este dependent de alt atribut, care la rndul su este dependent de cheia rela iei). Aceasta nseamn c nu exist nici o pereche (sau o pereche de mul imi de atribute) X i Y pentru care s apar succesiunea: Cheie X X Y unde X este o cheie non-candidat. O alt modalitate de a privi a treia form normal este dat de faptul c ea rezult din rela ii ce reprezint entit i i rela ii ce reprezint asocieri ntre entit i. O descompunere corespunztoare, prin care o schem se poate converti la a treia form normal, este aceea prin care acele atribute care nu sunt direct (sau, sunt doar tranzitiv) dependente de cheie sunt plasate ntr-o rela ie separat. Aceast descompunere prezint dou caracteristici importante: Fiecare dependen este concretizat printr-o rela ie (deci descompunerea pstreaz dependen ele). Dac o extensie a rela iei originale este descompus, ea poate fi reconstruit prin intermediul unui JOIN, din componente (fr pierderi). n general, orice schem poate fi adus la a treia form normal, cu pstrarea dependen elor i cu opera ii join fr pierderi de date. Pentru exemplul considerat, datele n FN3 se prezint dup cum urmeaz. Rela ia CADRE:Legiti ma ie Nume Prenu me Vr st Bi rou nr. Ora Superior

21 35 50 77

Mare Ionescu Mircea Traian

Ana Dan Clin Raluca

29 33 35 28

1 2 2 1

Iai Bucureti Bucureti Iai

Ion Damian Damian Ion

37

Rela ia BIROURI:Bi rou nr. Ora Superior

1 2

Iai Bucureti

Ion Damian

Rela ia CALIFICRI:Cod Califi cri Categorie Calificri

113 170 200 150

Sisteme Taxe Audit Consultan a

Rela ia COMPETEN E:Legiti matie Cod Calificri Competen e

21 35 35 35 50 77 77

113 113 170 200 170 150 170

3 5 7 4 3 5 8 5.3.5 Forma normal Boyce-Codd (FNBC)

Spunem c o rela ie R cu dependen ele F se afl n forma normal Boyce-Codd (FNBC) dac, oricare ar fi dependen a XA cu A atribut necon inut n X, exist o cheie a lui R con inut n X. Orice rela ie n forma normal Boyce-Codd este n FN3, dar reciproca nu este adevrat. Exemplu. Rela ia R cu schema R(A, B, C), cu cheile AC i BC i cu dependen ele func ionale F={ABC, CA}. R este n a treia form normal, dar nu este n forma normal Boyce-Codd deoarece cheile acestei rela ii sunt AC i BC, iar pentru dependen a CA partea stng nu con ine nici una din cele dou chei. Pentru problema de a determina dac o rela ie este n FNBC nu exist (n general) algoritmi eficien i de rezolvare. 5.3.6 A patra form normal (FN4) Fie R o schem rela ional i D o mul ime de dependen e func ionale i multivaloare pe R. Spunem c R este n FN4 dac, pentru orice dependen multivaloare XY cu Y neinclus n X i XY inclus n R, exist cheie a lui R inclus n X. Cu alte cuvinte, o rela ie R este n FN4 dac este n FNBC i orice dependen multivaloare este, de fapt, o dependen func ional. Dac D con ine numai dependen e func ionale i R este n FN4, atunci R este n FNBC. Exemplu. Fie rela ia ORAR prezentat n 5.2. Singura cheie a rela iei este format din atributele STUDENT i ORA. Dependen a CURS ORA, LOCATIE nu respect condi ia din FN4 deoarece CURS nu con ine o cheie. Vom descompune rela ia n:

38

CURSURI CURS Algebr Programare Englez

ORA 10 8 16

LOCATIE A45 C9 C22

care are cheia ORA, LOCATIE i este n FN4 i ORAR1 CURS Algebr Algebr Programare Programare Englez Englez Englez PROFESOR Ionescu T. Ionescu T. Dinu A. Dinu A. Bonta E. Bonta E. Bonta E. STUDENT Miron Clin Matei Ruxandra Gruia Alina Traian Maria Miron Clin Matei Ruxandra Horia Anca AN-STUDIU 1 1 2 2 1 1 3

care are cheia CURS, STUDENT dar nu este n FN4 deoarece prezint dependen a CURS PROFESOR care rezult din CURS PROFESOR i CURS nu con ine o cheie. Descompunem ORAR1 n: PROFESORI CURS Algebr Programare Englez i STUDENTI CURS Algebr Algebr Programare Programare Englez Englez Englez STUDENT Miron Clin Matei Ruxandra Gruia Alina Traian Maria Miron Clin Matei Ruxandra Horia Anca AN-STUDIU 1 1 2 2 1 1 3 PROFESOR Ionescu T. Dinu A. Bonta E.

care sunt ambele n FN4. Deci, descompunerea rela iei ORAR n {CURSURI, PROFESORI, STUDENTI} se afl n FN4 i este fr pierderi la uniune. 5.3.7 A cincea form normal (FN5) Se spune c o rela ie R satisface dependen a de uniune (join dependency) i se noteaz cu *(X,Y,,Z) dac i numai dac R este egal cu uniunea proiec iilor lui R pe X,Y,,Z, acestea fiind submul imi ale lui R. O rela ie R este n FN5 (numit i forma normal proiec ie-uniune) dac i numai dac orice dependen de uniune a lui R este o consecin a unei chei candidat a lui R. Orice rela ie care este n FN5 este i n FN4, deoarece fiecare dependen multivaloare poate fi privit ca un caz particular de dependen de uniune. Orice rela ie poate fi descompus fr pierderi la uniune ntr-o mul ime de rela ii care sunt n FN5. Pentru a preciza dac o rela ie este n FN5, este suficient s cunoatem cheile candidate i toate dependen ele de uniune din R.

39

5.3.8. Procesul normalizrii rela iilor Procesul de normalizare a rela iilor se poate descrie n felul urmtor: 1. Se proiecteaz rela ia ini ial, aflat n FN1, pe alte rela ii, pentru a elimina dependen ele func ionale care nu sunt complete. Se ob ine o mul ime de rela ii n FN2. 2. Se proiecteaz rela iile ob inute n pasul 1 pe alte rela ii, pentru a elimina dependen ele func ionale tranzitive. Se ob ine o mul ime de rela ii n FN3. 3. Se proiecteaz rela iile ob inute n pasul 2 pe alte rela ii, pentru a elimina dependen ele n care partea din stnga nu este o supracheie. Se ob ine o mul ime de rela ii n FNBC. 4. Se proiecteaz rela iile ob inute n pasul 3 pe alte rela ii, pentru a elimina toate dependen ele multivaloare care nu sunt i dependen e func ionale. Se ob ine o mul ime de rela ii n FN4. 5. Se proiecteaz rela iile ob inute n pasul 4 pe alte rela ii, pentru a elimina orice dependen de uniune care nu este implicat de o cheie. Se ob ine o mul ime de rela ii n FN5. De obicei, forma normal FN3 este suficient, iar alteori chiar FN2 este suficient.

Materiale privind normalizarea:1. [Fel96] Dependen e ntre date 2. [Bas97] Forme normale i normalizare 3. http://databases.about.com/od/ specificproducts/a/normalization.htm Despre normalizare 4. http://en.wikipedia.org/wiki/Database_normalization Defini ia normalizrii n enciclopedia wikipedia 5. http://www.datamodel.org/NormalizationRules.html 5 reguli pentru normalizarea datelor 6. http://www.fmsinc.com/tpapers/datanorm/ Fundamente ale normalizrii datelor

40

6. Limbaje utilizate n lucrul cu baze de date 6.1 Limbajul de definire a datelor pentru modelul rela ionalSchema unei baze de date rela ionale este declarat utiliznd un limbaj de definire a datelor (LDD). Un LDD rela ional este simplu. Fiecare rela ie trebuie s fie declarat: atributele sale s fie definite, trebuie s fie specificat un domeniu pentru fiecare atribut i trebuie aleas o cheie. O abordare simpl, valabil pentru multe baze de date rela ionale, este aceea prin care fiecrei rela ii i se asociaz un fiier. Sunt posibile i alte abordri, dar necesit implementri mult mai complexe. Imaginile urmtoare prezint modalitatea de definire a atributelor unei noi rela ii n ACCESS, precum i adugarea rela iei la baz.

41

6.2 Limbajul de manipulare a datelor pentru modelul rela ionalSe cunosc foarte multe abordri n ceea ce privete limbajele de manipulare a datelor (LMD) organizate rela ional. Cele mai multe dintre acestea sunt interactive, proiectate pentru folosirea conversa ional de ctre un utilizator care ateapt un rspuns imediat. Exist patru sarcini de baz pe care trebuie s le realizeze un limbaj de manipulare a datelor: Inserarea datelor noi. tergerea datelor vechi. Actualizarea datelor. Consultarea datelor. Aceste func ii se regsesc ntr-o form sau alta n orice limbaj de manipulare a datelor. Complexitatea cea mai mare a opera iilor unui limbaj de manipulare a datelor se refer la ultima categorie de prelucrri: consultarea datelor. Inserarea, tergerea i actualizarea sunt, de obicei, opera ii clare i sunt realizate de un utilizator experimentat (sau de un program de aplica ie), cunoscndu-se exact ce trebuie modificat i unde. Opera iile de consultare sau cerere de date (query), pe de alt parte, sunt deseori realizate de utilizatori care fie nu tiu de la nceput ce caut, fie i exprim cerin ele ntr-un mod foarte complicat. Din aceast cauz, limbajele de manipulare a datelor sunt uneori numite limbaje de cereri (query languages). n cele ce urmeaz vom prezenta, prin intermediul unor exemple, trei abordri ale limbajului de cereri n modelul rela ional: Algebra rela ional. Calculul pe tupluri. Calculul pe domenii. Aceste trei limbaje s-au dovedit a fi echivalente, n sensul c orice cerere ce poate fi exprimat n unul din limbaje poate fi exprimat i n celelalte dou. Diferen a const n facilitatea scrierii cererii respective. 6.2.1 Algebra Rela ional Algebra Rela ional furnizeaz instrumente pentru exprimarea procedural a cererilor de date. Const dintr-o colec ie de opera ii pe rela ii, fiecare opera ie avnd drept operanzi una sau mai multe rela ii i producnd ca rezultat o alt rela ie. E.F. Codd a introdus Algebra Rela ional Standard, constituit din: 5 opera ii de baz: o Reuniunea o Diferen a o Produsul cartezian o Proiec ia o Selec ia 3 opera ii derivate: o Jonc iunea o Intersec ia o Diviziunea. Ulterior, la Algebra Rela ional Standard au fost adugate i alte opera ii, aa-numitele opera ii adi ionale sau extensii ale Algebrei Rela ionale Standard, cum ar fi: o Complementara o Splitarea o nchiderea tranzitiv. n cele ce urmeaz presupunem c rela ia R are gradul r iar S are gradul s. Reuniunea. Pentru dou rela ii R i S se poate nota: RUS, UNION(R,S), ADD(R,S). Reuniunea rela iilor R i S este mul imea tuplurilor care se gsesc n cel pu in una din rela iile R sau S. Aceast opera ie se poate aplica numai n cazul n care R i S au aceeai schem. Dac atributele au nume se cere ca, n plus, cele dou liste de nume s coincid i rezultatul va avea aceeai list de nume pentru atribute.

42

Diferen a. Pentru dou rela ii R i S se poate nota: R-S, MINUS(R,S), REMOVE(R,S). Diferen a rela iilor R i S este mul imea tuplurilor din R care nu sunt n S. Este necesar s fie ndeplinite aceleai condi ii ca pentru reuniune. Produsul cartezian. Pentru dou rela ii R i S se poate nota: RS, PRODUCT(R,S), TIMES(R,S). Produsul cartezian al rela iilor R i S este mul imea tuplurilor cu r+s componente, n care primele r componente reprezint un tuplu n R iar ultimele s componente reprezint un tuplu n S. Dac atributele au nume, lista numelor atributelor din rezultat este reuniunea disjunct a celor dou liste (folosind calificri sau redenumiri pentru atributele cu aceleai nume n cele dou rela ii). Proiec ia. Fie rela ia R de grad r. Proiec ia rela iei R dup atributele c1, c2,, ck (ks i S. Diviziunea sau ctul lui R prin S, notat RS, este mul imea tuplurilor a de aritate r-s astfel nct, pentru orice tuplu b al lui S, tuplul ab este n R. Dac atributele celor dou rela ii au nume, atunci lista atributelor lui S trebuie s fie o submul ime a listei atributelor lui R iar rezultatul are ca list de atribute diferen a celor dou liste. Ctul se poate exprima prin opera iile de baz cu formula: RS= 1, 2,, r-s(R)- 1, 2,, r-s(1, 2,, r-s(R)S)-R).

Exemplul 1. Fie rela iile R i S, cu schemele i extensiile prezentate mai jos: R A a d c B b a b C c f d S D b d E g a F a f

43

n acest caz, rezultatele aplicrii operatorilor: reuniune, diferen , produs cartezian, proiec ie, selec ie i intersec ie asupra rela iilor R i S (cu precizrile indicate pentru proiec ie i selec ie) sunt: RUS a d c b RS a a d d c c R-S a c b b c d

b a b g

c f d a

A,C(R),b b a a b b b b c c f f d d c d b d b d b d RS d g a g a g a a a f a f a f f a d c c f d

B=b (R),a c

Exemplul 2. Fie rela iile R i S, cu schemele i extensiile urmtoare: R A a a b e e a B b b c d d b C c e e c e d D d f f d f e S E c e F d f

n acest caz, ctul lui R prin S este: RS a e

b d

Exemplul 3. Fie rela iile R i S, cu schemele i extensiile de mai jos: R A 1 4 7 B 2 5 8 C 3 6 9 S D 3 6 E 1 2

n acest caz, jonc iunea lui R cu S cu B Me![Data Sfarsit] Then MsgBox "Data de sfarsit nu poate fi inaintea datei de start" Cancel = -1 End If End If End If Exit_Data_Start_Exit: Exit Sub Err_Data_Start_Exit: MsgBox Err.Description Resume Exit_Data_Start_Exit End Sub Private Sub DeleteBtn_Click() On Error GoTo Err_DeleteBtn_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Exit_DeleteBtn_Click: Exit Sub Err_DeleteBtn_Click: MsgBox Err.Description Resume Exit_DeleteBtn_Click End Sub Private Sub Distanta_Exit(Cancel As Integer) On Error GoTo Err_Distanta_Exit If IsNull(Me![Distanta]) Or Me![Distanta] = 0 Then MsgBox "Distanta cursei trebuie sa fie mai mare ca zero" Cancel = -1 End If DoCmd.Requery DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 [Note].SetFocus Exit_Distanta_Exit: Exit Sub Err_Distanta_Exit: MsgBox Err.Description Resume Exit_Distanta_Exit End Sub Private Sub Open_Soferi_Click() On Error GoTo Err_Open_Soferi_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "Soferi"

97

DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Open_Soferi_Click: Exit Sub Err_Open_Soferi_Click: MsgBox Err.Description Resume Exit_Open_Soferi_Click End Sub Private Sub Open_Masini_Click() On Error GoTo Err_Open_Masini_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "Masini" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Open_Masini_Click: Exit Sub Err_Open_Masini_Click: MsgBox Err.Description Resume Exit_Open_Masini_Click End Sub Private Sub TabCtl10_Change() On Error GoTo Err_TabCtl10_Change DoCmd.Requery DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 Exit_TabCtl10_Change: Exit Sub Err_TabCtl10_Change: MsgBox Err.Description Resume Exit_TabCtl10_Change End Sub Private Sub PreviewBtn_Click() On Error GoTo Err_PreviewBtn_Click Dim stDocName As String stDocName = "Curse" DoCmd.OpenReport stDocName, acPreview Exit_PreviewBtn_Click: Exit Sub Err_PreviewBtn_Click: MsgBox Err.Description Resume Exit_PreviewBtn_Click End Sub Private Sub PrintBtn_Click() On Error GoTo Err_PrintBtn_Click Dim stDocName As String stDocName = "Curse" DoCmd.OpenReport stDocName, acNormal Exit_PrintBtn_Click: Exit Sub Err_PrintBtn_Click: MsgBox Err.Description Resume Exit_PrintBtn_Click End Sub

Formularul Maini permite vizualizarea datelor i introducerea de noi articole n baza de date.

98

Butonul

ac ionat cu dublu clic deschide forma de editare/adugare item list. Butonul permite tiprirea

permite vizualizarea unui raport asupra mainilor. Butonul acestui raport, iar butonul

permite tergerea unui maini din baza noastr de date.

Formularul Tip_Transport este mai simplu:

Codul VBA al acestui formular este urmtorul: Option Compare Database Private Sub Form_Load() If Me.OpenArgs = "GotoNew" And Not IsNull([Cod Tip Transport]) Then

99

DoCmd.DoMenuItem acFormBar, 3, 0, , acMenuVer70 End If End Sub Private Sub SaveBtn_Click() On Error GoTo Err_SaveBtn_Click DoCmd.DoMenuItem acFormBar, acMenuVer70 Exit_SaveBtn_Click: Exit Sub Err_SaveBtn_Click: MsgBox Err.Description Resume Exit_SaveBtn_Click End Sub