Sunteți pe pagina 1din 88

UNIVERSITATEA TEFAN CEL MARE SUCEAVA

FACULTATEA DE TIINE ECONOMICE I ADMINISTRAIE PUBLIC

TEHNICI AVANSATE DE ORGANIZARE I EXPLORARE A DATELOR

Curs Master Semestrul II

2012 - 2013

Program de studiu MAAFAD

Conf. univ. dr. Nicolae Morariu Curs 1 1.1. Organizarea i gestionarea datelor n memoria extern
Datele rezult din observaii i msurtori efectuate asupra lumii reale i au un grad redus de abstractizare. Prin interpretarea datelor de ctre un anumit subiect se obin informaii care pot fi utilizate de ctre acesta n luarea deciziilor. Aceleai date pot fi interpretate n mod diferit de ctre subieci diferii i deci pot genera informaii diferite. Dup unii autori, datele reprezint ceea ce este efectiv stocat pe suporturile de memorare, iar informaia reprezint semnificaia acestor date pentru un anumit utilizator [DATE04]. n acest context se poate meniona c sistemele de calcul prelucreaz date i nu informaii. Cunotinele cuprind att fapte ce reprezint lucruri adevrate despre lumea real, ct i proceduri de raionament care permit urmrirea raionamentului ntre fapte. Diferena existent ntre cunotine i date este ilustrat de E. Feigenbaum, un nume de referin n inteligena artificial, prin urmtorul exemplu [FLAM02]: un medic care trateaz un pacient folosete cunotine i date. Datele sunt reprezentate de fia pacientului: simptome, boli anterioare, tratament prescris, reacie la tratament, etc. Cunotinele utilizate n tratarea pacientului reprezint tot ceea ce medicul a nvat n facultate i n decursul ntregii lui cariere prin practic, studiu, experien, n legtur cu modul de vindecare a bolii. Aceste cunotine se refer la fapte, teorii, tratament i, cel mai important, la cunotine euristice. Astfel, cunotinele necesit i includ utilizarea datelor dar sunt mai mult dect acestea. Pentru luarea deciziilor corecte omul modern utilizeaz cunoaterea acumulat n timp i informaiile rezultate din interpretarea datelor. n vederea obinerii informaiilor necesare lurii de decizii corecte omul din societatea modern se confrunt cu necesitatea prelucrrii unui volum imens de date care trebuiesc culese, organizate i stocate pe suporturi externe de memorare, apoi actualizate n permanen, regsite i prelucrate n timp util. Utilizarea sistemelor de calcul n vederea realizrii dezideratelor mai sus menionate presupune un anumit mod de organizare a datelor. Principalele metode de organizare a datelor pe suporturile externe de memorare sunt fiierul i baza de date.

1.1.1. Concepte fundamentale n organizarea datelor


Se definesc urmtoarele concepte: 1. Data elementar, cmp elementar - este o dat care nu mai poate fi descompus; Exemplu: nume (nume persoan din descrierea unui grup de persoane) 2. Data grupat, cmp grupat este o grupare logic de date; Exemplu: - adresa: - localitate - strada - numr; 3. nregistrarea logic sau articolul o colecie de date ce descriu un acelai obiect; 4. nregistrarea fizic sau pagina - unitatea de transfer ntre memoria extern i memoria intern i poate conine una sau mai multe nregistrri logice, nefiind ns exclus nici situaia n care o nregistrare logic mare se poate ntinde pe mai multe pagini. 5. Fiierul un ansamblu de nregistrri logice
2

Fiierul este o organizare a datelor preluat din sistemul manual i adaptat la cerinele impuse de utilizarea sistemelor de calcul. Un fiier poate fi privit din dou puncte de vedere i anume: - la nivel logic, fiierul este un ansamblu de nregistrri logice sau articole ce reprezint o clas de obiecte definit printr-un set de proprieti; - la nivel fizic, avnd n vedere modul n care sunt nregistrate datele pe suportul extern, fiierul este un ansamblu de nregistrri fizice (pagini). Moduri de organizare a fiierelor: - fiiere secveniale datele sunt nregistrate secvenial pe suportul de memorare i pot fi consultate secvenial (pentru a regsi o nregistrare se parcurge fiierul de la nceput pn la nregistrarea n cauz); - fiiere secvenial indexate - nregistrrile sunt ordonate dup valorile unui cmp numit cheie de indexare (unu sau mai multe cmpuri ale nregistrrii). nregistrrile pot fi accesate fie secvenial fie direct pe o nregistrare de cheie dat. n afara datelor propriu-zise fiierul mai conine tabele de index care memoreaz corespondena ntre cheile nregistrrilor i adresele fizice pe suportul de memorare (disc); - fiiere n acces direct - nregistrrile sunt stocate n pagini a cror adres este calculat cu ajutorul unei funcii numit funcie hash pe baza unuia sau mai multor cmpuri din nregistrare. Organizarea datelor n fiiere prezint urmtoarele deficiene: - datele sunt izolate n fiiere separate, programele de aplicaie trebuie s realizeze sincronizarea prelucrrii a dou sau mai multor fiiere; - dependena de date - fiecare program de aplicaie trebuie s descrie datele pe care le utilizeaz i prin urmare, modificri n structura datelor necesit modificri n programe; - formate de fiiere incompatibile - structura fiierelor fiind ncorporat n programul de aplicaie, este dependent de limbajul n care este scris aplicaia; - nu este asigurat accesul concurent la date; - aceleai date pot apare n fiiere diferite (redundana datelor); - nu este asigurat protecia i securitatea datelor. Aceste deficiene se datoreaz urmtoarelor cauze: 1) definiia datelor este ncorporat n programele de aplicaie n loc s fie stocat separat i independent; 2) nu exist un control privind accesul i manipularea datelor n afara celuia impus de aplicaie. O alt etap o constituie trecerea de la organizarea datelor n fiiere specifice fiecrei aplicaii la definirea i utilizarea fiierelor integrate care reprezint un ansamblu de fiiere definite plecnd de la legturile logice existente ntre date i care sunt utilizate n comun de ctre mai multe aplicaii. Principalul obiectiv urmrit la definirea fiierelor integrate este eliminarea redundanei datelor. Un salt calitativ net superior are loc odat cu trecerea la un nou mod de organizare a datelor prin definirea conceptului de baz de date avnd n vedere eliminarea tuturor deficienelor semnalate n organizarea datelor n fiiere. Baza de date este o colecie partajat de date, care conine datele propriuzise, relaiile logice dintre acestea, precum i descrierea datelor (structura datelor). O baz de date poate fi privit [COBS01] ca un depozit de date unic, definit o singur dat pentru a satisface necesitile informaionale ale unei organizaii i care poate fi utilizat simultan de ctre mai multe departamente i utilizatori. O definiie mai precis,

avnd n vedere noiunea de persisten, este dat de C. J. Date [DATE04] astfel: baza de date este o colecie de date persistente, care sunt folosite de ctre sistemele de aplicaii ale unei organizaii. Pe lng datele operaionale propriuzise, baza de date conine i descrierea datelor i a legturilor dintre acestea (structura datelor inclusiv constrngerile de integritate) cunoscut sub denumirea de catalog sau dicionar de date sau meta-date (datele despre date). Dicionarul de date mai poate conine [ORA92] i alte informaii cum ar fi cele privind utilizatorii i drepturile de acces, definiiile unor interogri (vederile), indexuri i structuri de stocare utilizate, etc. Memorarea dicionarului de date n baza de date asigur independena programelor de datele pe care le prelucreaz. n aplicaiile de baze de date se urmrete stocarea unor volume mari de date pe suporturi externe de memorare adresabile, care s poat fi regsite i prelucrate n timp util de ctre utilizatori concureni cu vederi diferite asupra datelor, accentul fiind pus pe operaiile de regsire i mai puin pe operaii complexe de prelucrare. De aceea, baza de date este dup [DORO98] o form de organizare centralizat a datelor asemntoare organizrii bibliotecilor tradiionale. n cele ce urmeaz sunt prezentate o serie de concepte definite n domeniul bazelor de date.

1.1.2. Arhitectura unei baze de date


Organizarea datelor n baze de date impune adoptarea unei arhitecturi n care pot fi identificate urmtoarele 3 nivele de abstractizare [DORO98] (3 nivele distincte la care pot fi descrise datele) i anume: nivelul extern (subschema, vedere), nivelul conceptual (schema conceptual), nivelul intern. Schema general a unei baze de date n contextul unei arhitecturi ANSI-SPARC pe cele 3 nivele este reprezentat n figura 1.1.
Utilizator 1 Nivel extern
Subschema 1 (Vedere 1)

Utilizator 2
Subschema 2 (Vedere 2)

Utilizator n

Subschema n (Vedere n)

Sistemul de Operare

(SO)

Nivel conceptual

Schema Conceptual

Sistemul de Gestiune a Bazelor de Date (SGBD)

Nivel intern

Baza de date fizic Fig.1.1 Schema general a unei baze de date Nivelul extern reprezint vederea utilizatorului asupra bazei de date (subschema, schema extern). Fiecare utilizator are o vedere asupra bazei de date, care include numai entitile, atributele i relaiile din lumea real de care este interesat utilizatorul respectiv. Utilizatori diferii pot avea vederi diferite asupra

acelorai date (exemplu data calendaristic poate fi vzut de un utilizator sub forma an/lun/zi, iar de un alt utilizator sub forma zi/lun/an). n vederi pot fi incluse i date derivate sau calculate din datele stocate n baza de date (ex. vrsta, plecnd de la data naterii i data curent). Nivelul conceptual vederea general a bazei de date. La acest nivel este reprezentat structura logic a ntregii baze de date aa cum este vzut de administratorul bazei de date (spre exemplu sunt definite concepte de tipul : Angajai, Servicii, Produse, Beneficiari, Furnizori , precum i relaiile existente ntre aceste concepte, constrngeri de integritate, etc.). Nivelul intern corespunde reprezentrii fizice a datelor n baza de date. La acest nivel, baza de date este o colecie de fiiere coninnd datele i legturile dintre acestea, la care se adaug diverse structuri auxiliare (indeci, pointeri, tabele de dispersie etc.) pentru asigurarea accesului operativ la date. Transformarea de la nivelul conceptual la nivelul intern i invers se realizeaz prin comunicarea dintre SGBD i sistemul de operare. Orice comunicare ntre nivele se realizeaz sub controlul SGBD. Adoptarea arhitecturii pe cele 3 nivele asigur independena logic i fizic a datelor. Independena logic a datelor asigur independena schemelor externe (vederilor utilizatorilor) fa de modificri efectuate n schema conceptual. Adugarea sau eliminarea de noi entiti, atribute sau relaii trebuie s fie posibil fr a afecta schemele externe existente. Independena fizic a datelor asigur independena schemei conceptuale fa de modificrile efectuate n structura intern de memorare a datelor. Modificri efectuate n schema intern cum ar fi utilizarea unor organizri de fiiere diferite, a unor dispozitive diferite de stocare, modificarea de indeci sau de algoritmi hash, trebuie s fie posibil fr a fi necesar schimbarea schemei conceptuale sau a schemelor externe i reciproc.

1.1.3. Sistemul de gestiune a bazelor de date (SGBD)


Sistemul de gestiune a bazelor de date referit prescurtat SGBD sau DBMS (Data Base Management System) este un sistem de programe care permite definirea, crearea i ntreinerea bazei de date, precum i accesul controlat la baza de date. Un SGBD ofer urmtoarele faciliti pentru crearea i exploatarea bazelor de date: - faciliti de descriere a datelor, prin intermediul unui limbaj de descriere a datelor DDL (Data Description Language) care permite utilizatorului s descrie structurile de date ce vor fi memorate n baza de date; - faciliti de manipulare a datelor, prin intermediul unui limbaj de manipulare a datelor DML (Data Manipulation Language) care permite utilizatorului s insereze, actualizeze, tearg, s prelucreze i s extrag date din baza de date; - controlul accesului la baza de date prin intermediul unui limbaj de control DCL (Data Control Language) care asigur: - sistem de securitate, previne accesarea bazei de date de ctre utilizatori neautorizai; - sistem de integritate, menine concordana datelor stocate n baza de date; - sistem de control al concurenei, permite accesul partajat la baza de date; - sistem de control al refacerii, permite recuperarea bazei de date n urma unor defeciuni hard sau soft; - mecanism de vizualizare, prin care un utilizator poate vedea acea parte a bazei de date care l intereseaz.
5

n majoritatea produselor comerciale de baze de date , cele trei limbaje se regsesc reunite n cadrul unui singur limbaj (spre exemplu limbajul SQL).

1.1.4. Administratorul bazei de date


Administratorul bazei de date referit prescurtat DBA (Data Base Administrator), este o persoan sau un grup de persoane care coordoneaz i rspunde de ansamblul activitilor privind baza de date, ncepnd din faza de proiectare i continund cu celelalte etape pe ntreaga perioad de via a bazei de date. Astfel, n faza de proiectare a bazei de date, administratorul stabilete SGBD-ul ce va fi utilizat, echipamentele necesare, structurile de date plecnd de la necesitile de informaie ale tuturor utilizatorilor bazei de date, drepturile de acces la date ale fiecrui utilizator. Rezultatul fazei de proiectare este concretizat prin elaborarea modelului conceptual (schema general a bazei de date), modelului extern (subschema proprie fiecrui utilizator) i stabilirea modalitilor de reprezentare a structurilor de date la nivel fizic pe suporturile de memorare externe utilizate. Drepturile de acces la baza de date pot fi definite [ORA92] fie pentru fiecare utilizator n parte, fie pentru grupuri de utilizatori (denumite Role), fiecare utilizator fiind apoi asignat unui grup. Dup proiectarea bazei de date, administratorul va menine permanent legtura cu utilizatorii acesteia pentru rezolvarea cerinelor utilizatorilor i impunerea unei discipline n vederea alinierii la standardele existente. Administratorul va realiza, ori de cte ori se impune, reorganizarea structurii fizice a datelor n vederea optimizrii parametrilor de funcionare a ntregului sistem i va stabili proceduri de arhivare a datelor i proceduri de recuperare a bazei de date la avarii i defecte. Pentru a preveni accesul neautorizat la date, n cadrul sistemului de securitate pot fi prevzute [DATE04] i alte mecanisme i anume: evidena de auditare, criptarea datelor. Evidena de auditare const dintr-un fiier n care sistemul nregistreaz automat toate operaiile efectuate asupra datelor, fiier ce va putea fi consultat de ctre persoane autorizate pentru a verifica efectuarea unor operaii neautorizate. O nregistrare din evidena de auditare va conine urmtoarele informaii: textul surs al operaiei neautorizate, terminalul de la care a fost lansat operaia, utilizatorul care a lansat operaia, data i ora operrii, obiectele bazei de date afectate, imaginile datelor afectate nainte de efectuarea operaiei, imaginile datelor afectate dup efectuarea operaiei. Pentru a preveni accesul unor intrui la baza de date, care ncearc s ocoleasc sistemul, se utilizeaz criptarea datelor, mecanism ce const n stocarea i transmiterea datelor pe cile de comunicaie sub form cifrat. Criptarea se realizeaz cu ajutorul unor algoritmi de criptare printre care cel mai recent este standardul american de criptare avansat AES (Advanced Encryption Standard).

1.1.5. Gestiunea tranzaciilor i controlul concurenei


Tranzacia este unitatea logic de prelucrare constnd dintr-o secven de operaii efectuate asupra bazei de date de ctre un singur utilizator astfel nct s fie asigurat consistena i sigurana bazei de date. Consistena const n respectarea tuturor constrngerilor de integritate definite asupra datelor, iar sigurana const n rezistena la defecte i capacitatea de recuperare din avarii. O baz de date trebuie s fie consistent att naintea ct i dup execuia unei tranzacii, ns n timpul execuiei tranzaciei pot apare situaii n care baza se afl temporar ntr-o stare inconsistent. O tranzacie poate consta din execuia uneia sau mai multor comenzi (instruciuni ale unui limbaj de programare) asupra bazei de date. Pentru a defini

(delimita) explicit o tranzacie, unele limbaje pentru baze de date (spre exemplu SQL) conin instruciunile BEGIN TRANSACTION i END TRANSACTION, iar pentru acceptarea (validarea) respectiv anularea (abortarea) tranzaciei, instruciunile COMMIT respectiv ROLLBACK. Raportat la conceptul de tranzacie, execuia unui program sau aplicaii poate reprezenta execuia uneia sau mai multor tranzacii. Se subliniaz faptul c toate aciunile efectuate asupra bazei de date n cadrul unei tranzacii vor fi operate efectiv n baza de date numai dup validarea tranzaciei (execuia instruciunii COMMIT), ceea ce nseamn c operaiile unei tranzacii sau sunt executate n totalitate , sau ntreaga tranzacie este anulat (abortat), deci execuia unei tranzacii se bazeaz pe principiul ori totul, ori nimic. Dac n cadrul unui program, tranzaciile nu sunt delimitate, ntregul program este considerat o tranzacie i SGBD-ul execut automat o instruciune COMMIT dac programul s-a terminat normal, sau o instruciune ROLLBACK dac programul s-a terminat anormal. O tranzacie trebuie (Haerder i Reuter, 1983) s satisfac urmtoarele proprieti cunoscute n literatura de specialitate [DORO98], [COBS01], [DATE04] sub acronimul ACID: - Atomicitatea tranzacia este indivizibil (ori este efectuat n totalitate, ori nu este efectuat deloc); - Consistena (Coerena) tranzacia trebuie s transforme baza de date dintr-o stare consistent n alt stare consistent; - Izolarea modificrile efectuate de o tranzacie sunt inaccesibile altei tranzacii concurente pn n momentul validrii acesteia; - Durabilitatea dup validarea unei tranzacii, rezultatele acesteia devin permanente i vor fi operate n baza de date chiar dac n timpul scrierii n baza de date apare un incident care mpiedic nregistrarea rezultatelor tranzaciei, acestea vor fi operate n baza de date dup reluarea activitii. Pentru bazele de date accesate simultan de ctre mai muli utilizatori, se pune problema rezolvrii situaiilor de conflict care pot apare datorit accesului concurent la aceleai date. Dac baza de date este accesat doar n citire de ctre utilizatorii concureni, atunci rezolvarea problemei privind accesul concurent se realizeaz prin secvenializarea accesului utilizatorilor de ctre sistemul de operare care stabilete ordinea de satisfacere a cererilor de acces avnd n vedere minimizarea timpului total de satisfacere a cererilor. Sistemele de operare care conin mecanisme ce pot trata independent operaiile de intrare/ieire concomitent cu efectuarea altor operaii de ctre unitatea central de prelucrare, permit executarea simultan a dou sau mai multor tranzacii. ns dac doi sau mai muli utilizatori concureni acceseaz simultan baza de date, iar unul dintre ei actualizeaz date care ar putea fi accesate de ali utilizatori, pot apare interferene ce pot conduce la incoerene. Dou tranzacii T1, T2 pot conduce la interferene dac rezultatul execuiei lor secveniale difer de rezultatul execuiei lor concurente. Astfel de tranzacii concurente i care pot conduce la interferen sunt numite conflictuale. Pentru evitarea situaiilor de conflict, n cadrul sistemelor SGBD se utilizeaz urmtoarele dou metode: - controlul concurenei prin blocare; - controlul concurenei prin mrci de timp. Pentru controlul concurenei prin blocare, sistemele SGBD dispun de dou funcii primitive i anume LOCK() i UNLOCK(), sau de un mecanism de zvorre, care utilizate pentru o tranzacie T prin intermediul componentei lock manager realizeaz blocarea respectiv deblocarea accesului altor tranzacii la elemente (uniti de acces) din baza de date utilizate de tranzacia T. Unitile de acces sunt
7

elemente ale bazei de date care pot constitui obiectul unei operaii de blocare n timpul execuiei tranzaciei. O problem sensibil care poate apare prin mecanismul de blocare este interblocarea sau impasul, care apare n situaia n care o tranzacie T1 este blocat de o alt tranzacie T2 care la rndul su este blocat de tranzacia T1, astfel nct nici una din tranzacii nu i poate continua execuia. O astfel de situaie nu poate fi rezolvat dect fie printr-o intervenie din exterior, fie printr-un modul software special realizat n acest sens. O atenie deosebit n sistemele concurente trebuie acordat prevenirii interblocrilor, care poate fi realizat prin impunerea unor condiii pe care trebuie s le satisfac tranzaciile, caz n care se introduc restricii la resurse fapt ce poate conduce la scderea nivelului de concuren al sistemului. Astfel, n locul metodelor de prevenire a interblocrii se pune problema utilizrii unor metode de evitare a interblocrii prin utilizarea mrcilor de timp asociate tranzaciilor prin care se stabilete o ordine de prioritate pentru lansarea tranzaciilor n execuie i evitarea interblocrilor prin abortarea tranzaciilor dup ordinea lor de prioritate, problem ce trebuie tratat cu atenie deosebit n cazul bazelor de date n timp real [IEEE101], [IEEE02]. Pentru evitarea interblocrii se utilizeaz algoritmii cunoscui n literatura de specialitate [DORO98] sub denumirile de WAIT-DIE i WOUND-WAIT, care pot fi descrii prin urmtoarele reguli: WAIT-DIE: if m(Ti) < m(Tj) then Ti ateapt else aborteaz Ti WOUND-WAIT: if m(Ti) < m(Tj) then aborteaz Tj else Ti ateapt unde cu m(T) s-a notat marca de timp a unei tranzacii T. Avnd n vedere problemele prezentate n cadrul acestui paragraf, rezult c prin execuia concurent a unui set de tranzacii se pot obine rezultate diferite fa de cazul n care tranzaciile respective ar fi executate independent. Pentru precizarea condiiilor de execuie corect a unui set de tranzacii concurente se definesc noiunile de serializabilitate i planificare. Execuia independent a tranzaciilor se numete execuie serial. Execuia concurent a unui set de tranzacii se consider corect numai atunci cnd rezultatul acesteia este acelai cu rezultatul execuiei seriale. Se numete planificare a unui set de tranzacii concurente, o secven de operaii care reprezint ordinea de execuie a pailor elementari ai tranzaciilor setului. Execuia fiecrei tranzacii const din execuia unui numr de operaii (parcurgerea unor pai elementari). n execuia concurent a unui set de tranzacii paii elementari ai unor tranzacii diferite pot interfera, ns ordinea pailor unei tranzacii trebuie respectat. O planificare se numete serial dac paii fiecrei tranzacii apar n poziii consecutive ale planificrii (fr interferene ale tranzaciilor). O planificare serial a unui set de tranzacii, determin o execuie serial a tranzaciilor. O planificare a unui set de tranzacii concurente se numete serializabil dac i numai dac rezultatul execuiei sale este acelai cu rezultatul execuiei seriale a tranzaciilor. 1.1.6. Rezistena la defecte i recuperarea din avarii n timpul exploatrii curente a unei baze de date centralizate sau distribuite pot apare diverse incidente (defecte, avarii, pene), fie n funcionarea echipamentelor , fie software. Se pune astfel problema utilizrii unor instrumente i tehnici pentru a elimina sau mcar pentru a reduce la minimum efectele apariiei unui defect. Comportarea unui sistem n condiiile apariiei unor astfel de incidente hardware sau software sau altfel spus tolerana fa de defecte i capacitatea sistemului de recuperare din avarii este cunoscut n literatura de specialitate sub denumirea de rezisten la defecte.

Att pentru bazele de date centralizate ct mai ales pentru bazele de date distribuite se pune problema realizrii unor sisteme fiabile care s funcioneze corect ntr-un interval de timp dat. Exist situaii cnd astfel de sisteme trebuie s funcioneze corect fr ntreruperi, 7 zile pe sptmn, 24 ore pe zi (aanumitele sisteme cu grad ridicat de disponibilitate cum ar fi spre exemplu sistemele pentru programele spaiale sau sistemele pentru centralele nucleare). n cadrul unui sistem cu baze de date, principalele elemente utilizate sunt: memoria principal (buffer), memoria secundar (suportul extern de memorare), echipamentele i liniile de comunicaie, software de sistem i software de aplicaie. Astfel, principalele tipuri de defecte ce pot apare n funcionarea sistemului sunt: - defecte hardware (cderi ale memoriei principale, memoriei secundare sau a altor componente hardware ale sistemului de calcul); - defecte software care se datoreaz funcionrii defectuoase ale unor componente ale sistemului de operare, sistemului SGBD, sau a unor programe de aplicaie; - defecte ale sistemului de comunicaii, datorate unor cderi de linii de comunicaie sau funcionrii defectuoase a unor echipamente de comunicaie. n vederea asigurrii funcionrii corecte n condiiile apariiei unor incidente, sistemul SGBD dispune de o component numit modulul de recuperare care permite recuperarea din avarii (refacerea bazei de date n urma apariiei unor incidente) prin cooperare cu componenta numit buffer manager. Principalele funciuni realizate de modulul de recuperare sunt: commit, rollback, backup-recovery. Pentru a putea realiza recuperarea bazei de date, sistemul SGBD faciliteaz utilizarea unor mecanisme de asisten a refacerii i anume: - realizarea de copii de siguran periodice ale bazei de date; - crearea fiierului jurnal (log) care este un fiier secvenial ce conine o istorie a tuturor actualizrilor, la nivel de tranzacie, efectuate asupra bazei de date; - crearea de puncte de control (puncte de reluare) prin care se salveaz starea sistemului n memoria secundar la diverse momente de timp i pentru fiecare punct de reluare se scrie n jurnal o nregistrare corespunztoare. Punctele de reluare pot fi create fie la diverse momente de timp, fie dup memorarea unui numr de nregistrri n fiierul jurnal. Dac este necesar recuperarea bazei de date vor fi utilizate cel mult ultimele dou puncte de reluare. O metod mai convenabil prin care s nu fie perturbat funcionarea sistemului, este crearea de puncte de reluare fuzzy prin care salvarea strii sistemului n memoria secundar are loc n paralel cu operarea normal a tranzaciilor n baza de date. Este posibil ca starea salvat n memoria secundar s nu ndeplineasc condiia de consisten, ns aceasta poate fi transformat ntr-o stare consistent prin operarea asupra sa a tuturor modificrilor nscrise n jurnal pe durata crerii punctului de reluare. - Utilizarea mecanismului UNDO/REDO care permite recuperarea bazei de date dup o cdere a sistemului att pentru tranzaciile ncheiate n memoria principal dar netransferate n totalitate n memoria secundar, ct i pentru tranzaciile neterminate n momentul cderii sistemului. Pentru primul caz, pentru operarea tranzaciilor n memoria secundar se parcurge fiierul jurnal nainte de la ultimul punct de reluare pn la sfrit i se opereaz n baza de date (operaie de tip REDO), iar n cel de-al doilea caz pentru tranzaciile nevalidate n momentul cderii sistemului, acestea vor trebui abortate, ceea ce se realizeaz prin parcurgerea fiierului jurnal de la sfrit spre nceput i anularea tuturor operaiilor efectuate de tranzaciile nevalidate (operaie de tip UNDO).

1.1.7. Baze de date distribuite


Spre deosebire de o baz de date centralizat, care este stocat pe un singur calculator (server) i aflat sub controlul unui singur sistem SGBD, o baz de date distribuit este o colecie de date distribuit fizic pe mai multe baze de date gestionate de diverse sisteme SGBD pe mai multe maini sub diverse sisteme de operare n cadrul unei reele de calculatoare. Un sistem SGBD distribuit (SGBDD) este un sistem pentru gestiunea bazelor de date distribuite astfel nct distribuirea s fie transparent pentru utilizatori. Din punct de vedere utilizator, baza de date distribuit este format dintr-o singur baz de date logic constituit dintr-un numr de fragmente, fiecare fragment fiind stocat pe unul sau mai multe calculatoare (site, nod) interconectate n reea, putnd fi reprodus i fiind controlat de un SGBD. Tratarea distribuit este motivat din urmtoarele considerente: - reelele de calculatoare au aprut i s-au dezvoltat din necesitatea descentralizrii; - n mod natural o organizaie este constituit din uniti funcionale distribuite local sau la distan; - fiecare unitate funcional din cadrul unei organizaii i ntreine propriile date operaionale; - datele trebuie stocate i ntreinute ct mai aproape de sursele care le genereaz. Un sistem de baze de date distribuite poate fi omogen, caz n care n toate nodurile sistemului se utilizeaz acelai SGBD, sau poate fi eterogen, caz n care n noduri diferite pot fi utilizate sisteme SGBD diferite eventual de tipuri diferite (ierarhice, reea, relaionale, orientate obiect). Sistemele eterogene necesit realizarea comunicrii ntre diverse tipuri de sisteme SGBD, care trebuie s fie transparent pentru utilizator astfel nct acesta s poat formula cereri n limbajul sistemului SGBD local. Comunicarea ntre diverse SGBD-uri n cadrul unui sistem distribuit eterogen se realizeaz de regul prin utilizarea unor pori care translateaz interogrile dintr-un limbaj n alt limbaj fr a realiza controlul unor procese cum ar fi de exemplu administrarera tranzaciilor, controlul concurenei, etc. O modalitate privind accesul i interoperabilitatea bazelor de date deschise n vederea comunicrii ntre sisteme SGBD diferite o constituie utilizarea driver-elor ODBC (Open Data Base Connectivity). n cadrul arhitecturii de referin a unui sistem de baze de date distribuite, pot fi puse n eviden urmtoarele scheme [COBS01]: un set de scheme globale externe, o schem conceptual global, o schem de fragmentare, o schem de alocare, un set de scheme pentru fiecare SGBD local dup arhitectura ANSI-SPARC pe trei nivele. Schema conceptual global conine descrierea la nivel logic a ntregii baze de date. Schemele externe globale corespund vederilor utilizatorilor asupra bazei de date distribuite. Schema de fragmentare definete fragmentele de date la nivel logic. Schema de alocare descrie locul unde vor fi stocate datele i reproducerile acestora. Fiecrui nod al reelei n care sunt stocate date n cadrul sistemului SGBDD i corespunde o schem local conform arhitecturii ANSI-SPARC pe 3 nivele, altfel spus fiecrui SGBD local i corespunde o arhitectur ANSI-SPARC pe 3 nivele (nivelul extern, nivelul conceptual, nivelul intern), n cadrul nivelului extern fiind realizat corespondena dintre fragmentele din schema de alocare i obiectele externe din baza de date local. Aplicaiile locale (care nu necesit date din alte

10

noduri ale reelei) pot fi tratate autonom n cadrul SGBD-ului local. n cadrul sistemului pot exista noduri care s nu aib propria lor baz de date local. Aceste aspecte privind bazele de date distribuite sunt ilustrate n figura 1.2. n cele ce urmeaz vor fi prezentate o serie de strategii utilizate n proiectarea bazelor de date distribuite n cadrul modelului relaional, privind fragmentarea bazei de date, alocarea fragmentelor; reproducerea fragmentelor, precum i o serie de aspecte privind: transparena n sistemele de baze de date distribuite, implicaii ale distribuirii datelor n administrarea tranzaciilor, controlul concurenei i rezistena la defecte n sistemele de baze de date distribuite. n cadrul unui sistem multiutilizator, fiecare utilizator are acces, prin intermediul aplicaiilor, la o anumit parte a datelor din baza de date, aspect care n sistemele SGBD relaionale este tratat cu ajutorul vederilor. Avnd n vedere faptul c n cadrul modelului relaional att baza de date ct i interogrile bazei de date sunt reprezentate prin relaii, o aplicaie va prelucra subseturi de relaii, iar pentru unele relaii doar anumite tuple sau valori pentru anumite atribute ale relaiei. Astfel apare necesitatea gruprii relaiilor n subseturi i mpririi unor relaii n subrelaii, operaie care n cadrul sistemelor distribuite este numit fragmentare i prin care, baza de date este mprit n fragmente ca uniti de distribuire a datelor avnd n vedere creterea performanelor n ntreinerea i exploatarea datelor prin reducerea traficului n reea astfel nct majoritatea operaiilor s fie efectuate local.
S1 Schem extern global S2 Schem extern global Schema conceptual global Schema de fragmentare Schema de alocare S1 Schem local Nivel extern S2 Schem local Nivel extern Sn Sn Schema extern global

Schem local Nivel extern

Nivel conceptual

Nivel conceptual

Nivel conceptual

Nivel intern BD

Nivel intern BD

Nivel intern BD

Fig.1.2. Arhitectura de referin a unui sistem SGBDD (adaptare dup [COBS01])

Prin fragmentare fiecare relaie poate fi mprit ntr-un numr de subrelaii numite fragmente. Mulimea tuplelor unei relaii poate fi mprit n submulimi de

11

nregistrri, sau n submulimi de valori ale unor anumite atribute ale relaiei i corespunztor se va obine o fragmentare orizontal respectiv o fragmentare vertical. Fragmentarea orizontal reprezint o operaie de selecie, iar fragmentarea vertical o operaie de proiecie. Poate fi avut n vedere i fragmentarea mixt care poate fi realizat printr-o operaie de selecie aplicat asupra rezultatului unei operaii de proiecie aplicate asupra unei relaii. Pentru definirea fragmentelor trebuie avute n vedere urmtoarele aspecte: modul de utilizare a datelor n cadrul aplicaiilor, stocarea datelor ct mai aproape de locul unde sunt utilizate, evitarea redundanei datelor, asigurarea consistenei i integritii bazei de date, creterea gradului de concuren. Fragmentarea va trebui realizat astfel nct s se asigure posibilitatea obinerii relaiei iniiale din fragmentele corespunztoare cu pstrarea dependenelor funcionale i fr pierdere de informaie. Alocarea fragmentelor este operaia prin care se efectueaz amplasarea datelor pe serverele de date ale reelei de calculatoare realiznd astfel distribuirea datelor. Pentru aceasta pot fi utilizate [COBS01] urmtoarele patru strategii de alocare: centralizat, partiionat, reproducere complet, reproducere selectiv. n strategia centralizat denumit i prelucrare distribuit, se creaz o singur baz de date amplasat pe un singur server central sub controlul unui singur SGBD cu utilizatori distribuii n cadrul reelei. n strategia partiionat sau fragmentat, baza de date este partiionat n fragmente disjuncte, fiecare fragment fiind alocat unui server de date avnd n vedere precizrile de mai sus privind fragmentarea. n strategia de reproducere complet se pstreaz o copie complet (replic) a bazei de date n fiecare nod al reelei. Pentru a reduce costurile de stocare i de comunicaie, uneori se utilizeaz instantanee, un instantaneu fiind o copie a datelor la un anumit moment de timp, datele urmnd a fi actualizate periodic, fiind astfel posibil ca datele s nu fie ntotdeauna la zi. n strategia de reproducere selectiv sunt combinate faciliti ale celorlalte tipuri de strategii de alocare, astfel c unele articole de date sunt fragmentate, alte articole utilizate n mai multe noduri ale reelei i care nu sunt frecvent actualizate sunt reproduse n nodurile respective, iar celelalte articole de date sunt centralizate. Transparena unui sistem distribuit are n vedere ascunderea aspectelor privind distribuirea fa de utilizator, astfel nct utilizarea unei baze de date distribuite este realizat n acelai mod ca utilizarea unei baze de date centralizate. n acest sens, un utilizator nu trebuie s tie cum a fost realizat fragmentarea, unde sunt amplasate datele, cum sunt reproduse datele, ce sisteme SGBD sunt utilizate n celelalte noduri ale reelei, etc. Referitor la controlul concurenei n bazele de date distribuite, cea mai mare parte dintre conceptele i algoritmii definii pentru bazele de date centralizate este utilizat cu eventuale extinderi pentru sistemele distribuite. Astfel pentru conceptul de planificare se definete cte o planificare local pentru fiecare nod prin care se precizeaz ordinea de execuie a tranzaciilor n nodul respectiv i conceptul de planificare global ca reuniune a planificrilor locale. Pentru o baz de date nereplicat, dac toate planificrile locale sunt serializabile, atunci i planificarea global este serializabil cu condiia ca ordinea de serializare pentru tranzaciile comune n planificrile locale s fie aceeai. Pentru bazele de date replicate este necesar ca actualizrile s se efectueze asupra tuturor copiilor, ceea ce se realizeaz prin protocoale de control al replicilor. Pentru controlul concurenei n bazele de date distribuite se utilizeaz, ca i n cazul bazelor de date centralizate, mecanismul de blocare i mrcile de timp, cu o serie de extensii i protocoale

12

specifice impuse de problemele suplimentare care apar n sistemele distribuite. Spre exemplu, referitor la crearea i utilizarea mrcilor de timp, pentru fiecare nod local exist un contor local care genereaz mrci de timp unice pentru nodul local, iar la nivel global mrcile de timp sunt perechi de forma: <marc de timp local , identificator nod> identificatorul nodului fiind plasat pe poziia a doua (mai puin semnificativ) pentru a asigura c evenimentele sunt ordonate dup apariia lor i nu dup locul n care au fost declanate. Rezistena la defecte a unei baze de date are n vedere validarea tranzaciilor i recuperarea bazei de date la apariia unui defect. n cazul bazelor de date distribuite pentru realizarea acestor operaii trebuie avut n vedere n plus fa de cazul bazelor de date centralizate, coordonarea aciunilor din nodurile n care se execut tranzaciile. Funcionarea unui sistem distribuit depinde de capacitatea de comunicare n siguran a tuturor nodurilor din reea. Recuperarea unui nod din reea necesit consultarea altor noduri n care se afl tranzacii n execuie ntruct operaia de recuperare trebuie s asigure atomicitatea i durabilitatea att pentru subtranzaciile locale ct i pentru tranzaciile globale, sau altfel spus pentru tranzaciile distribuite (tranzaciile care se execut n mai multe noduri). La apariia unui defect ntr-un nod al reelei, sistemul SGBDD trebuie s realizeze urmtoarele operaii: - abortarea tuturor tranzaciilor n execuie afectate de defectul detectat; - marcarea nodului n cauz ca inaccesibil pentru celelalte noduri din reea pe durata recuperrii sale; - refacerea la repornire, a bazei de date locale din nodul defect i a copiilor sale. n acest sens, pentru validarea tranzaciilor distribuite se utilizeaz protocolul de validare n dou faze 2PC (two-phase commit) care este implementat n majoritatea sistemelor SGBDD. Acest protocol presupune existena unui nod coordonator care de regul este nodul n care a fost iniiat tranzacia, iar celelalte noduri se numesc participani. Protocolul se execut n dou faze i anume: - faza de consultare sau votare, n care toi participanii sunt ntrebai de coordonator dac sunt gata pentru a valida tranzacia; - faza de decizie, n care, n baza votului participanilor, coordonatorul decide validarea tranzaciei. Pe parcursul derulrii protocolului, este posibil blocarea unor noduri participante la efectuarea tranzaciei, caz n care acest mod de lucru eueaz i pentru astfel de situaii a fost propus un protocol fr blocare numit protocolul n trei faze 3PC n care, ntre faza de votare i faza de decizie, se introduce o a treia faz numit de pre-efectuare prin care, dup primirea tuturor voturilor, coordonatorul trimite tuturor participanilor un mesaj PRE-COMMIT i acetia confirm coordonatorului primirea mesajului. Dup primirea tuturor confirmrilor de la participani, coordonatorul va decide validarea global a tranzaciei. Pentru recuperarea unui nod scos temporar din funciune n urma apariiei unui defect, se va utiliza jurnalul propriu nodului respectiv, care trebuie s conin toate informaiile necesare recuperrii, informaii ce sunt nregistrate n jurnal prin protocoalele de validare a tranzaciilor. Avnd n vedere dificultatea soluionrii problemelor ridicate de utilizarea bazelor de date distribuite, la ora actual sistemele SGBD distribuite nu sunt larg acceptate, fiind preferabil o tratare simplificat a distribuirii datelor prin reproducerea datelor n servere de reproducere. Reproducerea const n crearea i ntreinerea mai multor copii ale datelor n unul sau mai multe noduri ale reelei,
13

oferind astfel o serie de faciliti sporite privind disponibilitatea datelor, refacerea n urma unor incidente i funcionalitatea sistemului. Operaia de reproducere a datelor poate fi realizat n dou moduri i anume: - reproducerea sincron, caz n care datele reproduse sunt actualizate imediat ce sunt actualizate datele surs (exemplu protocolul 2PC); - reproducerea asincron, caz n care reproducerile datelor (instantanee) pot fi actualizate dup o ntrziere fa de momentul actualizrii datelor surs, ntrzierea putnd fi de ordinul secundelor, orelor sau chiar zilelor acolo unde se pot utiliza reproduceri care nu trebuie s fie neaprat sincronizate sau ntreinute la zi. Reactualizarea unor seturi de date reproduse poate fi realizat, fie de ctre un singur nod numit master sau primar care pune la dispoziie aceste date pentru citire altor noduri numite slave (modelul master/slave), fie n cadrul unui flux de activiti prin care datele reproduse actualizate sunt mutate de la un nod la altul la diverse momente de timp ns la un moment dat un singur nod poate reactualiza acel set de date, fie n mai multe noduri ale reelei (metoda reactualizare oriunde sau reproducere simetric) caz n care mai multe noduri au drepturi egale de a reactualiza datele reproduse. O alt modalitate de tratare a reproducerilor o constituie crearea de ctre utilizatori a unor aplicaii proprii de reproducere numite declanatoare de baze de date, care conin cod ce va fi executat la declanarea anumitor evenimente cum ar fi spre exemplu inserarea unei nregistrri, modificarea unei nregistrri existente, etc.

1.1.8. Baze de date multimedia


Conceptul multimedia reprezint capacitatea de achiziionare, stocare, manipulare i redare informaii obinute de la diverse surse ce conin text, grafic, sunet, imagine static sau dinamic, grupate n documente electronice. Organizarea informaiei sub form de documente electronice i accesarea acestora a devenit posibil odat cu apariia Web-ului. Crearea documentelor electronice pe Web se realizeaz cu ajutorul limbajului HTML (HyperText Markup Language) bazat pe hiperlegturi (legturi ctre date stocate ierarhic), iar accesarea acestora se face cu ajutorul unor programe numite navigatoare (Internet Explorer, Netscape). Pentru realizarea de pagini Web dinamice se utilizeaz limbaje specializate cum ar fi JavaScript, care permit ncorporarea unor programe simple n documentul HTML i care vor fi executate de ctre programul navigator. Organizarea i gestionarea eficient a informaiei multimedia se realizeaz n cadrul sistemelor de gestiune a bazelor de date multimedia (SGBD MM). n cadrul unor sisteme SGBD comerciale, informaia multimedia poate fi stocat direct n baza de date n tipuri de cmpuri speciale, sau baza de date poate conine locaiile (cile de acces) la fiierele externe ce conin informaia multimedia. O baz de date multimedia trebuie s permit stocarea i regsirea informaiei multimedia n condiii optime privind necesarul de suport i timpul de rspuns. Dei exist la ora actual o serie de modele teoretice de obiecte multimedia, acestea sunt specifice anumitor aplicaii, sunt limitate ca funcionalitate i nu au fost nc implementate n produse SGBD comerciale. Aceste produse au faciliti de stocare, ns multe din operaiile de prelucrare a unor tipuri de date multimedia trebuie realizate n cadrul aplicaiei multimedia prin intermediul unui limbaj gazd.

14

1.1.9. Arhitecturi client-server pentru sistemele SGBD


Sistemele client-server au aprut ca urmare a descentralizrii activitii din diverse domenii, ceea ce presupune o repartizare a realizrii sarcinilor pe cele dou nivele: client, server. De obicei clienii reprezint utilizatorii finali care vor comunica cu serverul bazei de date n cadrul unei reele de calculatoare. Dup rolul pe care l are fiecare din componentele client, server, se pot distinge [COBS01] trei arhitecturi de baz pentru un sistem client-server (Loomis 1992) i anume: arhitectura de tip server de obiecte n care se distribuie prelucrarea ntre cele dou componente (server, client). Serverul este responsabil de administrarea memoriei i zvoarelor, efectuarea operaiilor n memoria secundar, securitatea, integritatea i recuperarea bazei de date, executarea procedurilor stocate i optimizarea interogrilor. Clientul este responsabil de administrarea tranzaciilor i realizarea interfeei cu limbajul de programare; arhitectura de tip server de pagini cea mai mare parte a prelucrrilor este realizat de ctre client. Serverul este responsabil de memoria secundar i furnizeaz paginile corespunztor cererilor formulate de client; arhitectura de tip server de baz de date cea mai mare parte din prelucrrile bazei de date este efectuat de ctre server. Clientul transmite cererea serverului, primete rezultatele i le transmite aplicaiei. Este modul utilizat frecvent de ctre sistemele relaionale. n fiecare dintre cele trei cazuri serverul se gsete pe aceeai main ca i baza de date fizic. Clientul se poate afla pe aceeai main sau pe una diferit. n cazul bazelor de date distribuite pe mai multe maini, clientul va comunica cu cte un server de pe fiecare main. De asemenea mai muli clieni pot comunica concomitent cu acelai server (accesul concurent). Arhitectura tradiional a sistemelor client-server este o arhitectur pe dou nivele (etaje), n care la primul nivel (clientul) se realizeaz interfaa cu utilizatorul i logica principal a aplicaiei, iar la al doilea nivel (serverul) se realizeaz validarea datelor i accesul la baza de date. Necesitatea rezolvrii unor probleme complexe care presupun accesul la baza de date a unui numr mare de utilizatori, utilizarea unor platforme hard-soft diferite, precum i integrarea bazelor de date n mediul Web, au impus definirea unei noi arhitecturi client-server n care sunt definite trei nivele i anume: - nivelul client, la care se realizeaz interfaa cu utilizatorul aplicaiei; - nivelul server de aplicaie, la care se realizeaz logica aplicaiei i prelucrrii datelor; - nivelul server de baze de date, la care se realizeaz validarea datelor i accesul la baza de date. Un server de aplicaie poate servi mai muli clieni, fiind conectat fizic att la nivelul client ct i la nivelul server de baze de date. Spre exemplu n mediul Web, clientul poate fi un browser Web, iar serverul de aplicaie poate fi un server Web.

15

1.2.

Evoluia sistemelor de baze de date

Modelarea datelor Prin modelarea datelor se urmrete organizarea unei colecii de date astfel nct pe de o parte s reprezinte ct mai fidel situaia din lumea real, iar pe de alt parte s faciliteze reprezentarea i prelucrarea datelor pe calculator. O etap important n definirea modelului conceptual al unei baze de date o constituie identificarea categoriilor de obiecte (tipuri de entiti), a proprietilor (atributelor) caracteristice fiecrei categorii i a legturilor (relaiilor) dintre tipurile de entiti. Generalizarea i formalizarea proprietilor caracteristice ale datelor, conduc la definirea conceptului de model de date. Un model de date este [DORO98] un instrument teoretic care permite identificarea semnificaiei sau coninutului de informaie pentru o colecie de date, vzut n ansamblul ei, prin contrast cu valorile individuale ale datelor. Din punct de vedere tehnic un model de date este un formalism avnd dou componente: - un set de reguli pentru organizarea i structurarea datelor; - un set de reguli (operaii) pentru manipularea datelor. Modelele de date se pot clasifica [DORO98] n: - modele de date strict tipizate - sunt acele modele n care fiecare dat trebuie s aparin unei categorii. Datele care nu se ncadreaz n mod natural ntr-o categorie vor trebui forate n una din categoriile modelului; - modele de date slab tipizate - sunt modele n care datele individuale pot exista prin ele nsele i pot fi legate de alte date. Categoriile sunt permise numai n msura n care sunt utile. Modelele strict tipizate impun anumite restricii asupra categoriilor de obiecte i asupra legturilor dintre acestea, ceea ce le face mai puin expresive n modelarea situaiilor din lumea real fa de modelele slab tipizate. Prin ncadrarea obiectelor n categorii omogene, modelele strict tipizate faciliteaz transpunerea pe calculator n scopul prelucrrii unor volume mari de date i din acest motiv modelele de date care stau la baza proiectrii SGBD-urilor sunt pn la ora actual modele strict tipizate. Un model conceptual sau schem cuprinde numele categoriilor (tipurilor de entiti), proprietile caracteristice ale acestora (atribute) i legturile dintre categorii. n cadrul unui model, un tip de entitate corespunde unei categorii de obiecte din lumea real. Un obiect al unei categorii sau o entitate reprezint o realitate obiectiv care exist prin ea nsi. Orice entitate aparine unui tip de entitate i este definit prin valorile atributelor ce definesc tipul de entitate corespunztor. Dup identificarea tipurilor de entiti i a legturilor dintre acestea se identific atributele ce definesc fiecare tip de entitate. Prima form de structurare a datelor realizeaz asocierea atributelor pentru a descrie tipul de entitate. Toate modelele de date utilizate pn n prezent realizeaz definirea entitilor prin structuri de tip nregistrare care se obin prin concatenarea valorilor atributelor ce definesc tipul de entitate respectiv. Un tip de entitate poate fi descris convenabil prin intermediul unui tabel astfel: - capul de tabel descrie tipul de entitate; - liniile tabelului definesc fiecare entitate n parte. A doua form de structurare a datelor n cadrul modelului conceptual al unei baze de date are n vedere reprezentarea legturilor ntre mulimile de entiti ale bazei de date. Modelele de date utilizate pn n prezent difer ntre ele n principal prin modul de realizare a legturilor dintre tipurile de entiti. ntre dou tipuri de entiti E1, E2 pot exista urmtoarele tipuri de legturi:

16

- relaie 1 : 1 unei entiti din E1 i corespunde o singur entitate n E2 i reciproc (relaie de tip so soie , fig. 1.3).
E1 e11 e12 e13 E2 e21 e22 e23

Fig. 1.3. Reprezentare relaie 1:1 Corespondena ntre elementele mulimilor E1, E2 este dat mai jos. e11 -> e21 e12 -> e22 e13 -> e23 - relaie 1 : n unei entiti din E1 i corespund una sau mai multe entiti din E2, dar fiecrei entiti din E2 i corespunde o singur entitate din E1 (relaie de tip tat fiu, fig. 1.4).
E1 E2

e11 e12 e13

e21 e22 e23 e24 e25 e26

Fig. 1.4. Reprezentare relaie 1:n Corespondena ntre elementele mulimilor E1, E2 este dat mai jos. e11 -> e21, e24, e25 e12 -> e22 e13 -> e23, e26 - relaie m : n unei entiti din E1 i corespunde una sau mai multe entiti din E2 i reciproc (relaie de tip prietenprieten, fig. 1.5).
E1 e11 e12 e13 e14 E2 e21 e22 e23 e24 e25 e26

Fig. 1.5. Reprezentare relaie m:n

17

Corespondena ntre elementele mulimilor E1, E2 este dat mai jos. e11 -> e21 , e24 e12 -> e22 e13 -> e23 , e25 e14 -> e21 , e23

Orice relaie de tip m-n poate fi descompus n dou relaii de tip 1-n definind o legtur (relaie) auxiliar L (E1->E2 este descompus n E1->L , E2->L , fig. 1.6).
L E1 e11 e12 e13 e14 E2 e21 e22 e23 e24 e25 e26

l1 l2 l3 l4 l5 l6 l7 l8

Fig. 1.6. Descompunere relaie m:n n dou relaii 1:n

1.2.1. Modele de date utilizate n proiectarea SGBD-urilor


Funcie de modul n care sunt reprezentate relaiile (legturile) ntre tipurile de entiti au fost definite n ordine cronologic urmtoarele tipuri de modele de date [DORO98]: modelul ierarhic, modelul reea, modelul relaional.

Modelul de date ierarhic


Este primul model de date care a stat la baza realizrii unor SGBD-uri. Cel mai reprezentativ SGBD realizat dup acest model este sistemul IMS (Information Management System) al firmei IBM dezvoltat n cadrul programului de cercetri spaiale APOLLO. Structurile de date sunt reprezentate prin intermediul diagramei structurii de date care este un graf orientat reprezentnd tipurile de entiti i legturi funcionale ntre acestea. Nodurile grafului reprezint tipurile de entiti iar arcele grafului, legturile ntre tipurile de entiti de la extremitile arcului respectiv. Un arc de la tipul de entitate origine ctre tipul de entitate extremitate reprezint o legtur 1 : n ). n cadrul modelului exist un tip de entitate numit rdcin care nu este subordonat nici unui alt tip de entitate. Fiecare tip de entitate poate avea unul sau mai multe tipuri de entitate subordonate cu excepia nodurilor finale (de la care nu mai pleac arce). Deci nodurile sunt organizate pe nivele sub forma unui arbore ordonat. Fiecare nod cu excepia nodului rdcin are o singur legtur ctre nivelul imediat superior (nodul tat ) i un numr de legturi ctre noduri de pe nivelul imediat inferior (noduri fiu). O astfel de reprezentare poart numele de arbore de definiie ierarhic. n figura 1.7. este reprezentat un exemplu de arbore de definiie (diagrama structurii datelor) pentru o structur de date pe trei nivele.

18

E0 (rdcin)

E1

E2

En

E21

E2k

Fig. 1.7. Diagrama structurii datelor n modelul ierarhic Descrierea simplificat a structurii de date reprezentat n figura 1.7. n cadrul sistemului ierarhic IMS este redat n continuare. TREE S3 RECORD E0 ROOT <Descriere atribute ce definesc tipul de entitate E0> RECORD E1 PARENT = E0 <Descriere atribute ce definesc tipul de entitate E1> RECORD E2 PARENT = E0 <Descriere atribute ce definesc tipul de entitate E2> ... RECORD En PARENT = E0 <Descriere atribute ce definesc tipul de entitate En> RECORD E21 PARENT = E2 <Descriere atribute ce definesc tipul de entitate E21> . RECORD E2k PARENT = E2 <Descriere atribute ce definesc tipul de entitate E2k> O relaie de tip 1: n ntre dou tipuri de entiti este reprezentat printr-o colecie de arbori avnd n rdcin o instaniere a entitii printe i ca descendeni un numr de instanieri a entitii fiu. Reprezentarea relaiilor de tip m:n introduce o mare redundan de date (nregistrarea corespunztoare apare n baza de date de mai multe ori). Avnd n vedere c interogrile se realizeaz prin parcurgerea arborilor, anumite interogri pot fi dificil de realizat. Modelul ierarhic este indicat pentru structuri natural-ierarhice (relaii de tip 1 : n). Pot fi folosite pentru memorarea datelor i suporturi cu acces strict secvenial.

Modelul de date reea


Standardul pentru bazele de date de tip reea este definit n documentele emise de comisia DBTG (Data Base Task Group) nfiinat cu ocazia conferinei CODASYL din anul 1971. Reprezentarea structurii datelor n modelul reea este realizat prin diagrama structurii datelor care este un graf oarecare n care nodurile reprezint tipurile de entiti iar arcele sunt etichetate i reprezint legturile ntre tipurile de entiti. In sistemul DBTG aceste arce se numesc tip de set i reprezint o legtur ntre dou tipuri de nregistrri i anume: tipul de nregistrare proprietar, tipul de nregistrare membru. Fiecare nregistrare de tip proprietar poate fi legat de zero, una sau mai multe nregistrri de tip membru, iar colecia de arce corespunztoare este numit set sau fan-set. Pot fi reprezentate doar legturile de tip 1:1 i 1: n. Spre deosebire de modelul ierarhic, n modelul reea un tip de entitate poate fi legat

19

la unul sau mai multe tipuri de entitate printe sau chiar prin mai multe arce la acelai tip de entitate printe (din acest motiv arcele sunt etichetate). Pot exista i tipuri de entitate fr legturi. Un exemplu de structur de tip reea este reprezentat n figura 1.8.
E1 LE1E2 E2 LE3E6 E6 LE8E6 E8 LE6E7 LE9E7 E9 LE1E3 E3 L1E3E7 E7 E10 LE1E4 E4 L2E3E7 LE1E5 E5 LE5E5

Fig. 1.8. Diagrama structurii datelor n modelul reea n majoritatea sistemelor de tip reea implementarea seturilor se realizeaz prin lanuri de pointeri avnd drept cap de lan o nregistrare de tip proprietar i se prezint sub forma unei liste circulare cap_lan, nregistrare membru,, cap_lan. Pot fi utilizate urmtoarele tipuri de pointeri: - NEXT realizeaz nlnuirea nainte a nregistrrilor (este obligatoriu); - PRIOR realizeaz nlnuirea napoi a nregistrrilor (este opional); - OWNER leag o nregistrare de tip membru de nregistrarea proprietar corespunztoare (este opional). Rezult c pot fi definite: structuri cu pointeri NEXT, structuri cu pointeri NEXT i PRIOR, structuri cu pointeri NEXT i OWNER, structuri cu pointeri NEXT, PRIOR, OWNER O reprezentare a celor trei tipuri de pointeri este ilustrat n figura 1.9.
NEXT

PRIOR

OWNER

M1

M2

Mn

Fig. 1.9. Tipuri de pointeri utilizai n modelul reea Utilizarea diferitelor tipuri de pointeri trebuie fcut justificat, deoarece afecteaz performanele de timp i spaiu de stocare. Descrierea n limbajul LDD a unei structuri de tip reea conform standardului DBTG va conine descrierea fiecrui tip de entitate i descrierea fiecrei legturi ntre dou tipuri de entiti. Astfel, pentru fiecare tip de entitate, se va realiza o descriere RECORD NAME IS <nume tip entitate> <descriere atribute> i pentru fiecare legtur ntre dou tipuri de entiti, o descriere SET NAME IS <nume legtur>

20

OWNER IS <nume tip entitate proprietar> MEMBER IS <nume tip entitate membru> < tipuri de pointeri> n cadrul modelului, o relaie de tip m:n poate fi transformat n dou relaii de tip 1:n cu ajutorul unei entiti de legtur care poate conine atribute sau poate fi vid (conine doar pointerii de nlnuire). Definirea unei relaii de tip m:n poate fi realizat i prin multiplicarea nregistrrilor. Dezavantajele modelului reea sunt datorate urmtoarelor aspecte: - gestionarea pointerilor de nlnuire cade n sarcina utilizatorului; - cu ct numrul de entiti crete cu att structura devine mai complicat i dificil de utilizat; - posibilitile de interogare sunt determinate de legturile definite ntre tipurile de entiti. SGBD-urile realizate la sfritul anilor 60 i nceputul anilor 70 au la baz modelul ierarhic i modelul reea, constituind prima generaie de sisteme SGBD . Principalele dezavantaje ale acestor dou modele sunt: - necesitatea scrierii unor programe complexe pentru realizarea interogrilor, bazate pe acces navigaional orientat pe nregistrri; - inexistena unui fundament teoretic; - independena de date este minimal. Cercetrile efectuate pentru eliminarea acestor neajunsuri au condus la definirea unui model de date care a revoluionat domeniul bazelor de date.

Modelul de date relaional


La nceputul anilor 70 E.F. Codd a pus bazele modelului relaional fundamentat pe algebra relaiilor i calculul relaional. SGBD-urile realizate dup acest model constituie a doua generaie de sisteme SGBD cu o larg rspndire (exist astzi peste 100 de sisteme SGBDR att pentru calculatoare mainframe ct i pentru calculatoare PC). ntruct modelul relaional este fundamentat pe teoria matematic a relaiilor, n cele ce urmeaz se va defini conceptul de relaie i o serie de noiuni utilizate n cadrul acestui model. Se consider mulimile D1, D2, Dn nu neaprat distincte. Se definete R ca fiind o relaie pe aceste mulimi dac este o mulime de tuple ordonate (d1, d2, ., dn) astfel nct d1 D1, d2 D2, ., dn Dn. D1, D2, ., Dn se numesc domeniile relaiei R, iar n este gradul relaiei R. O relaie R pe mulimile D1, D2, ., Dn, este o submulime a produsului cartezian D1xD2x.xDn. Un domeniu a unei relaii R, este ansamblul valorilor admisibile pentru o component a relaiei. Un domeniu cu numele su reprezint un atribut. O relaie fiind o mulime de tuple rezult c asupra acestora se pot aplica proprietile din teoria mulimilor. Urmtoarele dou proprieti au o importan major n teoria relaiilor: 1. O mulime fiind o colecie de elemente fr repetiie rezult c ntr-o relaie nu pot exista dou tuple identice. 2 Ordinea elementelor ntr-o mulime fiind nerelevant rezult c prin schimbarea ordinii tuplelor unei relaii, relaia rmne neschimbat. Din proprietatea 1 rezult c fiecare tupl poate fi identificat n mod unic prin valorile atributelor sale, cu meniunea c poate exista un subset de atribute ale relaiei prin

21

care s se realizeze identificarea unic a fiecrei tuple. Aceast observaie conduce la definirea noiunii de cheie a unei relaii. O cheie a unei relaii R este un subset K de atribute ale relaiei, care satisface proprietile: 1) identific unic tuplele relaiei; 2) subsetul K este minimal (eliminarea oricrui atribut din K duce la pierderea proprietii de identificare unic). Orice atribut ce face parte dintr-o cheie se numete atribut prim. Celelalte atribute ale relaiei care nu fac parte din nici o cheie se numesc atribute neprime. Din precizrile de mai sus rezult c pentru o relaie pot fi definite mai multe chei. Una dintre chei se desemneaz ca fiind primar (celelalte numindu-se candidate) i va fi folosit de SGBD pentru identificarea unic a tuplelor. Cheia primar este comunicat SGBDului prin limbajul LDD i pentru atributele ce compun aceast cheie se impun restriciile: - nu sunt admise valori nedefinite pentru atributele ce compun cheia primar; - nici o valoare a unui atribut ce compune o cheie primar nu poate fi modificat n cadrul operaiilor de actualizare. O cheie a unei relaii utilizat n alte relaii poart numele de cheie strin (foreign key) n aceste relaii i este utilizat pentru definire legturi ntre tuplele relaiilor. Reprezentarea structurii datelor n cadrul modelului relaional se realizeaz prin schema relaional care const din una sau mai multe scheme de relaie. O schem de relaie este definit de numele relaiei i atributele sale. Fie schemele de relaie R1(A1,B1,C1), R2(A2,B2) care reprezint descrierea a dou tipuri de entiti E1 respectiv E2. Pentru reprezentarea legturilor ntre tipurile de entiti pot fi utilizate urmtoarele dou tehnici: 1) propagarea cheilor (pentru relaiile 1:1, 1:n) spre exemplu, atributul A1 propriu tipului de entitate E1 este preluat n schema de relaie R2(A2,B2) care devine R2(A1,A2,B2) pentru a reprezenta legturile de tip 1:n. Dac A1 este cheie primar n schema de relaie R1(A1,B1,C1), atunci A1 va fi cheie strin n schema de relaie R2(A1,A2,B2) 2) crearea unei scheme de relaie separate (pentru reprezentarea legturilor m : n) care va conine cheile celor dou tipuri de entiti i eventual i alte atribute spre exemplu R12(A1,A2), dac se consider c atributul A1 este cheie pentru tipul de entitate E1 iar atributul A2 este cheie pentru tipul de entitate E2 . Fiecare schem de relaie se poate reprezenta printr-un tabel n care coloanele sunt domeniile (atributele) relaiei iar liniile (rndurile tabelului) sunt nregistrrile corespunztoare tipului de entitate descris de relaia respectiv. O posibil descriere a schemei relaionale de mai sus n limbajul SQL este redat mai jos. CREATE TABLE R1(A1 INTEGER (3) NOT NULL, B1 CHAR (15), C1 CHAR (20)) CREATE TABLE R2(A2 INTEGER (5) NOT NULL, B2 CHAR (6) NOT NULL) n cele ce urmeaz sunt enumerate principalele caracteristici definitorii pentru modelul relaional: - n modelul relaional att tipurile de entiti ct i legturile dintre ele sunt reprezentate prin relaii; - orice interogare a bazei de date este definit tot printr-o relaie; - fiecare relaie conine o mulime de tuple care pot fi reprezentate convenabil printr-un tabel n care fiecare tupl este un rnd al tabelului i poate fi interpretat ca o propoziie adevrat;
22

fiecare relaie are [DATE04] un titlu sau antet (un set de perechi nume-coloan, tip-dat) i un cuprins (o mulime de rnduri care se conformeaz titlului). Titlul poate fi privit ca un predicat n care argumentele sunt numele coloanelor, iar fiecare rnd al cuprinsului poate fi interpretat ca fiind o propoziie adevrat obinut prin nlocuirea argumentelor predicatului cu valorile corespunztoare; - modelul dispune de operatori care permit procesul de inferen a unor propoziii adevrate noi din propoziiile existente la un moment dat. n acest sens, sunt deosebit de importani operatorii de restricie (extragerea anumitor rnduri din tabel), proiecie (extragerea anumitor coloane din tabel) i uniune (combinarea a dou tabele ntr-una singur pe baza valorilor comune din cadrul unor coloane comune), care utilizai pentru consultarea datelor, permit derivarea de tabele noi din tabele existente. Avnd n vedere faptul c rezultatele aplicrii operatorilor sunt tot tabele, deci intrrile i ieirile sunt de acelai tip (proprietate a sistemelor relaionale numit de nchidere), se pot construi expresii relaionale imbricate (expresii relaionale n care operanzii pot fi ei nii expresii relaionale); - o baz de date relaional este o colecie de relaii de diverse grade (gradul unei relaii este dat de numrul de atribute ce definesc relaia respectiv). Avnd n vedere faptul c prin operaia de actualizare la momente diferite de timp coninutul bazei de date se modific, Date definete n [DATE04] variabila de relaie ca fiind variabila care la un moment dat conine valoarea relaiei respective i astfel o baz de date relaional este definit de o colecie de variabile de relaie. Raportat la reprezentarea structurii datelor n modelul relaional, variabilei de relaie i corespunde schema de relaie. Variabilele de relaie iniiale se numesc variabile de relaie de baz, iar cele definite prin intermediul unor expresii relaionale utiliznd variabile de relaie de baz sunt numite variabile de relaie derivate. O categorie important de variabile de relaie derivate n modelul relaional o constituie vederile, care sunt relaii (tabele) virtuale pentru care n baza de date se va memora doar expresia relaional de definire a vederii i care vor putea fi utilizate ca i tabelele reale. n mod analog cu vederile se definesc instantaneele prin care se realizeaz copii ale anumitor date din baza de date i care pe lng definiia interogrii conin i datele rezultate din interogare numai pentru citire, putnd fi remprosptate periodic prin reluarea interogrii corespunztoare. SGBD-urile realizate dup modelul relaional constituie a doua generaie de sisteme SGBD. Majoritatea sistemelor SGBD comerciale din prima i a doua generaie, aflate n exploatare au fost proiectate pentru a satisface cerinele aplicaiilor din domeniul afacerilor i anume: probleme de gestiune a ntreprinderilor (personal, salarii, magazii, producie), sisteme de rezervare a locurilor (transporturi, staiuni, hoteluri, etc.), sisteme de gestiune biblioteci, sisteme financiar-bancare, aplicaii care se caracterizeaz prin efectuarea unor operaii relativ simple asupra unor volume mari de date. Limbajele de manipulare utilizate n cadrul acestor sisteme rezolv problema accesului operativ la volume mari de date, ns au o putere de expresie limitat considerabil mai redus fa de cea a limbajelor de programare convenionale cum ar fi: PASCAL, COBOL, FORTRAN etc. Spre exemplu, limbajele LMD utilizate n cadrul SGBD-urilor relaionale, nu permit exprimarea operaiilor cu caracter recursiv. Limitarea limbajelor LMD la posibilitatea exprimrii doar a unor operaii simple s-a impus din urmtoarele dou motive: - optimizarea timpului de rspuns prin utilizarea optimizatoarelor; - simplitatea utilizrii acestor limbaje le face accesibile unor categorii largi de utilizatori. -

23

ntrebri
1. Principalele modaliti de organizare a datelor pe suporturi externe de memorare sunt: a) Fiierul; b) Tabela; c)nregistrarea; d) Dosarul; e) Baza de date. 2. O baz de date este: a) o colecie de date organizat i gestionat sub un software numit SGBD; b) un ansamblu de date n memoria intern a calculatorului; c) o aplicaie care gestioneaz un volum mare de date. 3. Sistemul de Gestiune a Bazei de Date (SGBD) este: a) Un pachet de programe pentru realizarea asistat de calculator a sistemelor informatice; b) Un sistem de programe care permite definirea, crearea ntreinerea i interogarea bazei de date precum i accesul controlat la baza de date; c) Un sistem de programe pentru interogarea bazei de date. 4. Prezentai cele 3 nivele ale arhitecturii ANSI-SPARC pe 3 nivele ale unei baze de date i definii independena logic i independena fizic de date. 5. Prezentai tipurile de legturi care se pot defini ntre dou mulimi de entiti. 6. Enumerai tipurile de aplicaii din domeniul afacerilor. 7. Definii baza de date distribuit. 8. Definii conceptul multimedia n domeniul bazelor de date. 9. Definii arhitectura client-server pentru o baz de date. 10. Modelele de date utilizate n proiectarea SGBD-urilor sunt: a) Modelul conceptual; b) Modelul fizic; d) Modelul relaional; e) Modelul semantic; g) Modelul relaional cu obiecte; h) Modelul orientat obiect; c) Modelul logic; f) Modelul ierarhic; i) Modelul reea.

11. n modelul relaional reprezentarea structurii datelor se realizeaz prin: a) relaii; b) diagrama structurii datelor; c) schema relaional; d) entiti. 12. n modelul relaional legturile dintre tipurile de inregistrri pot fi realizate prin: a) Multiplicarea nregistrrilor; b) Pointeri; c) Propagarea cheilor; d) Crearea unor scheme de relaie separate. 13. O cheie a unei relaii poate fi: a) Unul sau mai multe atribute oarecare, care identific n mod unic tuplele relaiei; b) Orice atribut din cadrul relaiei; c) Un subset K de atribute din cadrul relaiei care identific unic tuplele relaiei, subsetul K fiind minimal (eliminarea oricrui atribut din K duce la pierderea proprietii de identificare unic).

24

Curs 2 Tehnologii / Modele / Sisteme pentru aplicaii avansate de baze de date


SGBD-urile realizate la sfritul anilor 60 i nceputul anilor 70 au la baz modelul ierarhic i modelul reea, constituind prima generaie de sisteme SGBD. Principalele dezavantaje ale acestor dou modele sunt: necesitatea scrierii unor programe complexe pentru realizarea interogrilor, bazate pe acces navigaional orientat pe nregistrri, inexistena unui fundament teoretic, independena de date minimal. La nceputul anilor 70 E.F. Codd a pus bazele modelului relaional fundamentat pe algebra relaiilor i calculul relaional. SGBD-urile realizate dup acest model constituie a doua generaie de SGBD-uri cu o larg rspndire (exist astzi peste 100 de sisteme SGBDR att pentru sisteme mainframe ct i pentru sisteme PC). Majoritatea sistemelor SGBD comerciale aflate n exploatare au fost proiectate pentru a satisface cerinele aplicaiilor din domeniul afacerilor i anume : - probleme de gestiune a ntreprinderilor (personal, salarii, magazii, producie, etc.); - sisteme de rezervare a locurilor (transporturi, staiuni, hoteluri, etc.); - sisteme de gestiune biblioteci; - sisteme financiar-bancare, etc. care se caracterizeaz prin efectuarea unor operaii relativ simple asupra unor volume mari de date. Limbajele de manipulare utilizate n cadrul acestor sisteme, rezolv problema accesului operativ la volume mari de date, ns au o putere de expresie limitat, considerabil mai redus fa de cea a limbajelor de programare convenionale cum ar fi: PASCAL, COBOL, FORTRAN etc. Spre exemplu, limbajele LMD utilizate n cadrul SGBD-urilor relaionale, nu permit exprimarea operaiilor cu caracter recursiv. Reducerea limbajelor LMD la posibilitatea exprimrii doar a unor operaii simple s-a impus din urmtoarele dou motive: - optimizarea timpului de rspuns mai ales n cazul cnd se opereaz asupra unor volume mari de date - prin utilizarea optimizatoarelor care pot exploata informaii privind structurile fizice auxiliare (indeci, tabele de dispersie, etc.) de care utilizatorul nu trebuie s aib cunotin. Prin optimizare, se poate obine o reducere considerabil a timpului de rspuns la interogri (ex.100.000 ori ); - simplitatea (uurina) utilizrii acestor limbaje le face accesibile unor categorii largi de utilizatori. Una din deficienele modelelor de date utilizate n proiectarea SGBD-urilor din prima i a doua generaie, o constituie posibilitile limitate de modelare. Astfel a fost definit conceptul de model semantic sau model extins nc din 1976, cnd Chen a prezentat modelul Entitate-Relatie (E/R), care constituie astzi o tehnic larg acceptat pentru proiectarea bazelor de date. Modelul E/R permite proiectantului bazei de date s elaboreze un model conceptual, fr a ine seama de anumite constrngeri impuse de cele trei modele care stau la baza proiectrii SGBD-urilor, ceea ce permite o reprezentare mai fidel a realitii avute n vedere. Modelul conceptual astfel realizat const dintr-o diagram E/R, care ulterior poate fi transpus n cadrul unuia din modelele : ierarhic, reea, relaional. Deci modelul E/R constituie o etap intermediar n proiectarea unei baze de date, fiind din acest punct de vedere asemntor pseudocodului utilizat n activitatea de programare.
25

Necesitatea rezolvrii unor probleme complexe care nu se ncadreaz n clasa de probleme din domeniul afacerilor pentru care au fost proiectate SGBD-urile din prima i a doua generaie, impune elaborarea de limbaje de manipulare cu putere de expresie mult mai apropiat de cea a limbajelor de programare convenionale. Aceste aplicaii sunt cunoscute [COBS01] sub denumirea de aplicaii avansate de baze de date, sau [DATE04] aplicaii complexe i includ : - Proiectarea asistat de calculator CAD (Computer Aided Design); - Fabricarea asistat de calculator CAM (Computer Aided Manufacturing); - Ingineria programrii asistat de calculator CASE (Computer Aided Software Engineering); - Sistemele informaionale de birou OIS (Office Information Systems) i sistemele multimedia; - Editarea digital (stocarea electronic a crilor, revistelor, ziarelor, articolelor i furnizarea lor la consumatori prin reele foarte rapide); - Sistemele informaionale geografice GIS (Geographical Information Systems); - Aplicaii tiinifice i medicale (ex. date complexe pentru modelele moleculare ale compuilor chimici sintetici, date complexe privind materialul genetic, etc.); - Sisteme expert (cunotine i baze de reguli pentru aplicaii de inteligen artificial). Aplicaiile avansate de baze de date de tipul celora enumerate mai sus necesit accesarea i manipularea unor volume mari de date ca i n cazul SGBD-urilor clasice, precum i efectuarea unor operaii mai complexe dect cele posibile n cadrul SGBD-urilor clasice. Pentru soluionarea acestor probleme cercetrile sunt ndreptate n dou direcii [DORO98] i anume: - utilizarea tehnologiei orientate obiect; - utilizarea limbajelor de programare logic. Utilizarea tehnologiei orientate obiect are n vedere realizarea unor sisteme de gestiune a bazelor de date prin care structurile de date sunt definite i manipulate ca obiecte complexe avnd fiecare o identitate proprie i putnd fi grupate n clase ierarhizate pe nivele cu motenirea proprietilor dinspre nivelele superioare ctre nivelele inferioare ale ierarhiei i cu posibilitatea de a defini proceduri specifice pentru accesarea i manipularea obiectelor de un anumit tip astfel nct o parte din complexitatea prelucrrilor este memorat n cadrul structurii de date. Abordarea logic are n vedere dezvoltarea de sisteme denumite SGBC (Sisteme de Gestiune a Bazelor de Cunotine) [DORO98], sau Sisteme de Baze de Date Inteligente [IDBS02], sau SGBD deductive [PARC02], [SPAS02], [DATE04], care s rspund pe de o parte cerinelor oferite de un SGBD i pe de alt parte s posede un limbaj declarativ cu o putere de expresie apropiat de cea a limbajelor convenionale. Cercetrile desfurate n aceast direcie au n vedere adaptarea limbajelor logice de tip PROLOG la cerinele impuse de manipularea unor volume mari de date ntlnite n cadrul SGBD-urilor. n acest sens sunt avute n vedere limbajele din familia DATALOG, care sunt considerate a fi intermediare ntre limbajele relaionale i limbajul PROLOG. Aceste limbaje sunt privite din dou puncte de vedere opuse i anume: - un limbaj DATALOG este o extensie recursiv a unui limbaj relaional; - un limbaj de tip DATALOG este un limbaj PROLOG liber de funcii, rezultat prin eliminarea argumentelor de tip funcie ale predicatelor n programele PROLOG.

26

2.1. Utilizarea tehnologiei orientate obiect


Tehnologia orientat spre obiecte reprezint o disciplin important n domeniul ingineriei software i are n vedere faptul c utilizatorii trebuie s poat manipula obiecte i operaii cu acestea ct mai apropiate de echivalentele lor din lumea real. Pentru a reprezenta n memoria calculatorului obiectele fizice sau noiunile din lumea real trebuie s avem n vedere att proprietile caracteristice acestora ct i operaiile care pot fi efectuate, deci trebuie s avem n vedere datele ce descriu proprietile precum i operaiile care pot fi aplicate datelor. n cadrul tehnologiei orientate obiect informaiile specifice obiectelor din lumea real trebuie s fie pstrate la un loc (ntr-o zon compact) i s poat fi prelucrate ca un tot unitar. De asemenea trebuie s avem n vedere modul cum reacioneaz obiectul atunci cnd este supus la aciuni exterioare. Reprezentarea datelor se va realiza prin intermediul tipurilor de date, iar a operaiilor ce acioneaz asupra datelor, prin intermediul funciilor. Spre sfritul anilor 80 s-a pus problema utilizrii acestei tehnologii i n domeniul bazelor de date.

2.1.1. Concepte utilizate n tehnologia orientat obiect


Un obiect este o entitate unic identificabil, definit de un set de proprieti (atribute) i de aciunile (operaiile) asociate acestuia. Identificarea aspectelor eseniale ale unei entiti i ignorarea proprietilor nesemnificative se realizeaz prin operaia de abstractizare care presupune att ncapsularea ct i ascunderea informaiilor. Pentru a proteja proprietile unui obiect la accesul din exterior n vederea meninerii coerenei valorilor memorate n interiorul obiectului este preferabil ca acele proprieti s poat fi modificate doar de operaii definite n cadrul obiectului, operaii ce vor verifica noile valori nainte de a face modificarea (se consider n acest caz c proprietile obiectului sunt ncapsulate n interiorul acestuia [ROEU96]). Altfel spus [COBS01], ncapsularea presupune c un obiect conine att structura de date ct i operaiile care pot fi utilizate pentru a-l manipula, iar ascunderea informaiilor presupune separarea aspectelor externe ale unui obiect de detaliile sale interne care sunt ascunse fa de lumea exterioar, astfel nct detaliile interne s poat fi schimbate fr a afecta aplicaiile care l utilizeaz, cu condiia ca detaliile externe s rmn aceleai. De asemenea obiectul ncapsuleaz i modul de funcionare a operaiilor lui specifice, din exterior putndu-se observa doar modul de apelare a acestor operaii i rezultatele apelurilor. Protejarea i ncapsularea proprietilor i operaiilor unui obiect face ca utilizatorul obiectului respectiv s fie independent de detaliile constructive ale obiectului, structura intern a obiectului putnd fi schimbat i perfecionat fr ca funcionalitatea de baz s fie afectat. Pentru fiecare proprietate i operaie a unui obiect se va specifica care sunt utilizatorii care au acces i cei care nu au acces. n unele limbaje de programare orientate obiect, ncapsularea este realizat cu ajutorul unor tipuri de date abstracte ADT (Abstract Data Type), caz n care un obiect are [COBS01] : - o parte de interfa care asigur specificarea operaiilor care pot fi executate asupra obiectului; - o parte de implementare care const n structura de date pentru tipurile ADT i funciile care realizeaz interfaa. Numai partea de interfa este vizibil pentru alte obiecte sau utilizator. n cazul bazelor de date, acesta este modul corect de ncapsulare prin care se asigur

27

accesul doar la partea de interfa, putnd astfel s schimbm implementarea intern a unui ADT fr a modifica aplicaiile care l utilizeaz. Starea unui obiect este descris de unul sau mai multe atribute numite i variabile de instan, starea curent a obiectului fiind dat de valorile pe care le iau atributele respective la un moment dat. Atributele pot fi: - simple tipuri simple de date (ex. ntreg, ir, real, etc.) care pot lua valori de tip literal; - complexe - pot conine colecii (descriu colecii de obiecte) i/sau referine (atribute de referin, descriu relaii dintre obiecte, pot conine o valoare sau o colecie de valori ce identific obiecte). Un obiect care conine unul sau mai multe atribute complexe se numete obiect complex. Pentru reprezentarea atributelor se utilizeaz notaia punct astfel: Angajat.Nume (precizeaz atributul Nume al obiectului Angajat). Aciunile asociate obiectului, numite i metode, sunt operaii (funcii) ce se vor aplica asupra valorilor atributelor. Setul de operaii specifice unui obiect mpreun cu modul cum acesta reacioneaz la stimuli externi definete comportamentul obiectului. Metodele pot fi utilizate pentru schimbarea strii obiectelor, sau pentru interogarea valorilor atributelor sale. Spre exemplu, putem avea metode pentru a aduga o persoan n baza de date, pentru reactualizarea salariului unei persoane existente n baza de date, sau pentru tiprirea la imprimant a datelor referitoare la o persoan din baza de date. Mijloacele prin care comunic obiectele sunt mesajele. Exemplu. Pentru a executa metoda Creste_salariu asupra unui obiect Angajat de tip Personal i a transmite metodei o valoare de cretere de 250000 se va scrie Angajat.Creste_salariu(250000), iar ntr-un limbaj de programare un mesaj poate fi scris ca o apelare de funcie astfel Creste_salariu(Angajat,250000) n timp ce un obiect modeleaz att starea ct i comportamentul, o entitate modeleaz doar starea. n sistemele orientate pe obiecte, la crearea fiecrui obiect se genereaz automat un identificator de obiect OID care satisface condiiile: este generat de sistem, este unic pentru acel obiect, nu poate fi modificat i nici utilizat pentru identificarea altui obiect chiar dac obiectul iniial a fost ters, este independent de valorile atributelor sale, este invizibil pentru utilizatori. Spre deosebire de modelul relaional unde unicitatea este impus la nivel de relaie prin cheia primar format din valori ale unor atribute, identificatorul de obiect OID asigur unicitatea la nivelul ntregului sistem. Dou obiecte sunt identice (se noteaz =) dac i numai dac ele reprezint acelai obiect (adic identificatorii lor OID sunt aceiai). Dou obiecte sunt egale (se noteaz = =) dac strile lor sunt aceleai (au aceleai valori ale atributelor). Exist dou tipuri de identificatori OID i anume: - identificatori OID logici care sunt independeni de localizarea fizic a obiectelor pe disc; - identificatori OID fizici care codific localizarea obiectelor pe disc. Un sistem orientat pe obiecte trebuie s poat converti identificatorii OID n pointeri de memorie i invers (operaie numit mixare de pointeri sau object faulting) n cadrul operaiilor de transfer al paginilor din memoria secundar n memoria principal i invers. Exist situaii n care un obiect complex din lumea real este format din subobiecte (obiecte coninute) legate printr-un set de relaii de tip A-PART-OF (APO = o parte din). La rndul lor subobiectele pot fi ele nsele obiecte complexe, ceea ce
28

permite construirea unei ierarhii de tip A_PART_OF. Un subobiect poate fi manipulat n dou moduri: - poate fi ncapsulat n obiectul complex formnd o parte a acestuia i n acest caz poate fi accesat numai cu metodele obiectului complex; - poate fi considerat ca avnd o existen independent de cea a obiectului complex caz n care n obiectul complex este stocat doar identificatorul OID al obiectului coninut care are structura i metodele lui proprii i poate fi deinut de diverse obiecte printe. Astfel de tipuri de obiecte sunt denumite obiecte complexe structurate, spre deosebire de obiectele complexe nestructurate cunoscute n domeniul bazelor de date sub denumirea de obiecte binare mari (BLOB Binary Large OBject) a cror structur poate fi interpretat doar de programe aplicaie. n lumea real se pot identifica clase (familii) de obiecte similare, definite de aceleai proprieti. Atributele i metodele asociate sunt definite o singur dat pentru clas i nu separat pentru fiecare obiect al clasei. Deci atributele sunt aceleai pentru ntreaga familie de obiecte, dar valorile atributelor pot diferi de la un obiect la altul. De asemenea operaiile sunt ntotdeauna aceleai ns rezultatul aplicrii lor poate s difere n funcie de valorile atributelor obiectului asupra crora sunt aplicate. Rezultatul aplicrii operaiilor nu depinde numai de valorile atributelor obiectului respectiv, ci i de unele valori exterioare acestuia. O clas poate fi privit ea nsi ca un obiect avnd propriile atribute i metode ce descriu caracteristicile generale ale clasei (ex. totaluri, medii, etc.). Obiectele unei clase se numesc instane ale clasei. Exist metode speciale ale clasei pentru crearea de noi instane i distrugerea celor inutile. De obicei metodele pentru crearea de noi instane sunt numite constructori, iar cele de distrugere a instanelor sunt denumite destructori. Unele obiecte pot avea atribute i metode comune, deci se poate pune problema partajrii acestora n vederea definirii unei clase mai generale. Cazurile speciale sunt numite subclase, iar cazurile mult mai generale superclase. Procesul de formare a unei superclase se numete generalizare, iar procesul de formare a unei subclase se numete specializare. n sistemele orientate pe obiecte, motenirea permite ca o clas s fie definit ca un caz special al unei clase mult mai generale. O subclas motenete implicit toate proprietile (atributele i metodele) superclasei sale i n plus definete proprieti specifice. Toate instanele subclasei sunt i instane ale superclasei. Relaia dintre subclas i superclas este numit A-KIND-OF (AKO) n traducere un fel de, iar relaia dintre o instan i clasa ei este denumit IS-A (este un, o). Prin operaia de definire a unei noi clase de obiecte pe baza uneia deja existente, operaie numit i derivare (sau extindere) [ROEU96], rezult o ierarhizare a claselor de obiecte. Este foarte dificil de definit o ierarhie de clase de obiecte complet (care s reprezinte realitatea nconjurtoare n totalitatea ei), ns pentru o problem dat se vor defini doar acele concepte implicate n rezolvarea problemei respective. Ierarhizarea se poate extinde pe mai multe nivele sub form arborescent. n cadrul ierarhiei se pot ntlni urmtoarele tipuri de motenire [COBS01]: - motenire simpl subclasele motenesc o singur superclas; - motenire multipl o subclas poate moteni mai multe superclase. Nu toate limbajele i sistemele de gestiune a bazelor de date accept motenirea multipl, deoarece aceasta introduce un nivel de complexitate greu de administrat (ex. rezolvarea conflictelor care apar atunci cnd superclasele conin aceleai atribute sau metode);

29

motenire repetitiv caz special de motenire multipl n care superclasele motenesc o superclas comun; - motenire selectiv o subclas motenete doar anumite atribute i metode ale superclasei. Unele dintre atributele i operaiile definite n superclas pot fi redefinite n subclasele de obiecte derivate cu meniunea c vechile atribute i operaii sunt disponibile n continuare, ns pentru a le putea accesa va trebui specificat explicit superclasa care deine copia redefinit. Aceast redefinire a unor atribute sau operaii se numete rescriere sau supracopiere, ceea ce confer flexibilitate n definirea unei ierarhii, deoarece nici un atribut sau operaie definite ntr-un punct al ierarhiei nu sunt impuse definitiv pentru conceptele derivate, permind manipularea cu uurin a cazurilor speciale cu un impact minim asupra restului sistemului. Un caz mult mai general dect supracopierea, este suprancrcarea, care permite ca numele de metode s fie reutilizate n definirea unei clase sau pe parcursul definirii claselor, ceea ce nseamn c un singur mesaj poate avea diferite funcii, depinznd de tipul obiectului ce primete mesajul i de parametrii transmii metodei. Spre exemplu pentru diverse clase se poate defini o metod de tiprire a datelor relevante ale unui obiect. Astfel este posibil ca acelai nume s fie utilizat pentru aceeai operaie, independent de tipul clasei asupra creia acioneaz. Se definete un concept mult mai general denumit polimorfism care poate fi de unul din urmtoarele trei tipuri [COBS01]: - polimorfism de incluziune cazul unei metode definite ntr-o superclas i motenit n subclasele ei; - polimorfism operaional suprancrcarea; - polimorfism parametric, sau generic utilizeaz tipurile ca parametri n declaraiile generice ale tipului sau clasei, descrierea generic acionnd ca un ablon pentru crearea ulterioar a uneia sau mai multor metode de tipuri diferite (ex. template). Selecia metodei corespunztoare pe baza tipului de obiect se numete legare. Dac determinarea tipului de obiect poate fi fcut n momentul execuiei (n loc de momentul compilrii), atunci selecia este denumit legare dinamic (ntrziat). O categorie aparte a claselor de obiecte este constituit din acele clase ce reprezint concepte care nu se pot instania direct ntruct nu avem suficiente informaii pentru a construi instane. Astfel de clase neinstaniabile sunt clase abstracte i servesc pentru definirea unor proprieti sau operaii comune mai multor clase i pentru generalizarea operaiilor referitoare la aceste clase. Dac o clas de obiecte are cel puin o metod abstract, aceast clas va fi n ntregime o clas abstract i nu va putea fi instaniat. Clasele de pe orice nivel pot avea instane proprii cu condiia s nu fie clase abstracte. -

2.1.2. Modele de date bazate pe tehnologia orientat spre obiecte


Tehnologia orientat obiect st la baza elaborrii a dou noi modele de date pentru rezolvarea problemelor puse de realizarea aplicaiilor avansate de baze de date i anume: - Modelul de date orientat spre obiecte OODM (Object Oriented Data Model); - Modelul de date relaional cu obiecte ORDM (Object Relational Data Model). SGBD-urile realizate dup aceste modele reprezint a treia generaie de sisteme SGBD constituit din: - Sisteme de Gestiune a Bazelor de Date Orientate Obiect (SGBDOO sau OODBMS - Object Oriented Data Base Management System);
30

Sisteme de Gestiune a Bazelor de Date Obiect Relaionale (SGBDOR sau ORDBMS - Object Relational Data Base Management System).

Modelul de date orientat spre obiecte ODMG Un model de date orientat spre obiecte OODM (Object Oriented Data Model ) este un model logic de date care conine semantica obiectelor, acceptat n programarea orientat spre obiecte (Kim 1991). Pn la aceast dat, nu exist un model de date orientat spre obiecte, fundamentat teoretic, universal recunoscut, echivalent modelului de date care st la baza sistemelor relaionale. n vederea elaborrii de standarde pentru sistemele SGBDOO, productori importani printre care: GemStone Systems, Object Design, O2 Technology, Versant Object Technology, UniSQL, POET Software, Objectivity, Lockheed Martin i IBEX Computing, au format grupul de administrare a bazelor de date de obiecte ODMG. n 1993 grupul ODMG a realizat versiunea iniial a standardului ODMG, iar n 1997 versiunea ODMG 2.0, avnd n vedere specificaiile documentului Object Management Architecture (OMA) Guide, publicat n 1990 de grupul principalilor productori de hardware i software OMG (Object Management Group), document ce conine specificaii privind tehnologia orientat spre obiecte i n cadrul cruia este definit modelul de obiecte OM (Object Model) care constituie un model abstract de proiectare pentru comunicarea cu sistemele orientate spre obiecte. n concepia OMG, arhitectura unui sistem SGBDOO va conine: - modelul de obiecte OM (Object Model); - limbajul de definire a obiectelor ODL (Object Data Language); - limbajul de interogare a obiectelor OQL (Object Query Language); - interfee cu limbajele C++, Smalltalk, Java. Modelul de obiecte OM conine urmtoarele specificaii pentru modelare: - Primitivele de baz pentru modelare sunt obiectul i literalul. Fiecare obiect are un identificator unic care nu poate fi modificat sau reutilizat pentru alte obiecte; - Literalul i obiectele pot fi clasificate n tipuri. Toate obiectele de un tip dat sunt caracterizate de un comportament i o stare comun. Un tip de obiect este el nsui un obiect. Tipurile de obiecte pot fi ierarhizate ntr-o reea supertip-subtip n care proprietile i operaiile unui supertip sunt motenite de subtipurile sale; - Comportamentul unui obiect este definit de un set de operaii care pot fi efectuate asupra obiectului sau de ctre obiect; - Starea unui obiect este definit de valorile pe care le au proprietile obiectului la un moment dat, o proprietate putnd fi, fie un atribut al obiectului, fie o relaie dintre acel obiect i unul sau mai multe alte obiecte; - Baza de date este definit prin schem care este creat cu ajutorul limbajului de definire a obiectelor (ODL) i stocheaz instane ale obiectelor definite de schema sa ce pot fi partajate ntre utilizatori i aplicaii multiple. Pentru crearea instanelor se utilizeaz metoda new(). Tipurile de obiecte sunt descompuse n tipuri atomice, colecii i tipuri structurate. O colecie poate conine un numr de elemente omogene de orice tip, fiecare putnd fi o instan a unui tip atomic, o alt colecie sau un tip literal. Exist colecii ordonate i colecii neordonate. Coleciile ordonate trebuie parcurse de la primul element pn la ultimul element sau viceversa n procesul de iteraie. n cadrul modelului sunt specificate 5 subtipuri de colecii i anume: - Set - colecii neordonate care nu permit duplicate; - Bag - colecii neordonate care permit duplicate; - List - colecii ordonate care permit duplicate;
31

- Array - ir unidimensional a crui lungime variaz dinamic; - Dictionary - secven neordonat a perechilor de valori cheie. Fiecare subtip are operaii pentru a crea o instan a tipului i a introduce elemente n colecie. Tipurile literale pot fi atomice, colecii, structurate sau null. Tipurile literale nu au identificatori proprii i singure nu pot constitui obiecte; fiind ns nglobate n obiecte. Tipurile literale structurate conin un numr fix de elemente eterogene, fiecare element fiind o pereche <nume, valoare >, unde valoare poate fi orice tip literal. Modelul definete dou tipuri de proprieti i anume: atribute i relaii. Un atribut este definit pentru un singur tip de obiect, iar relaiile sunt definite ntre tipuri, modelul OM oferind suport doar pentru relaiile binare 1:1, 1:n, m:n. n cadrul modelului sunt definite metadatele (date despre date). De asemenea este acceptat conceptul de tranzacie ca unitate logic de lucru ce transform baza de date dintro stare coerent n alta. Modelul OM este [COBS01] un model abstract de proiectare portabil pentru comunicarea cu sistemele orientate spre obiecte conform specificaiilor OMG dup schema din figura 2.1. Furnizori Solicitant
Cerere

BROKER DE CERERE DE OBIECTE (ORB)

Mesaj

Fig. 2.1. Modelul de obiecte OMG (sursa [COBS01]) Brokerul ORB (Object Request Broker) este o magistral software distribuit care permite obiectelor (solicitanilor, aplicaiilor) s emit cereri i s recepioneze rspunsuri de la furnizor. Solicitantul trimite o cerere la brokerul ORB, care ine evidena tuturor obiectelor din sistem i a tipurilor de servicii pe care le poate asigura. Brokerul expediaz mesajul ctre furnizor care acioneaz asupra mesajului i transmite napoi un rspuns la solicitant prin intermediul brokerului. Limbajul ODL permite definirea tipurilor de obiecte i a relaiilor dintre acestea, fiind echivalent cu limbajul de definire a datelor DDL al sistemelor SGBD tradiionale. Limbajul OQL permite interogarea bazei de date de obiecte utiliznd o sintax asemntoare limbajului SQL. Nu conine operatori de reactualizare a bazei, ntruct aceast sarcin va fi executat de operaiile definite pentru tipurile de obiecte. Poate fi utilizat att ca limbaj autonom ct i ca limbaj nglobat ntr-un alt limbaj (C++, Smalltalk, Java). 2.1.3. Sisteme de gestiune a bazelor de date orientate spre obiecte (SGBDOO) Avnd n vedere specificaiile prezentate mai sus i din analiza unor sisteme SGBDOO comerciale printre care: GemStone, ObjectStore, Itasca, Ontos, O2, Poet, Versant, se poate constata c n cadrul modelelor de date orientate spre obiecte sunt preluate o serie de concepte din diverse domenii astfel: - Sisteme de baze de date tradiionale: persistena, tranzacii, controlul concurenei, controlul refacerii, securitate, integritate, interogare; - Modele de date semantice: generalizare, agregare;

32

Programarea orientat spre obiecte: identitatea obiectelor, motenire, tipuri i clase, metode, obiecte complexe, polimorfism.

ncapsulare,

Probleme specifice sistemelor SGBDOO Probleme specifice sistemelor SGBDOO sunt: modele de tranzacii avansate, administrarea versiunilor obiectelor, evoluia schemei bazei de date. Tranzaciile care opereaz cu obiecte complexe, ntlnite n aplicaii avansate de baze de date, pot dura ore, zile sau mai mult, fiind numite i tranzacii de lung durat, ceea ce necesit protocoale de control al concurenei diferite de cele utilizate pentru tranzaciile de scurt durat ntlnite n aplicaiile obinuite de baze de date. n acest sens, se utilizeaz protocoale bazate pe supraveghere prin care este evitat apariia conflictelor, controlul concurenei mpiedicnd interferarea accesrilor. Avnd n vedere faptul c n sistemele SGBDOO unitatea de control a concurenei i refacerii este obiectul, pentru a evita anularea tranzaciilor datorit conflictelor de zvorre se utilizeaz dou noi mecanisme i anume: modele de tranzacii avansate, administrarea versiunilor obiectelor. Se definesc urmtoarele modele de tranzacii avansate: tranzacii imbricate, saga, tranzacii cu niveluri multiple. n modelul de tranzacii imbricate (introdus de Moss n 1981), o tranzacie este descompus ntr-o ierarhie (arbore) de subtranzacii care se execut de jos n sus i n care subtranzaciile unei tranzacii printe se execut ca i cum ar fi tranzacii separate. Saga este o tranzacie cu un singur nivel de imbricare n care pentru fiecare subtranzacie exist o tranzacie compensatoare. La execuia unei saga poate avea loc una din urmtoarele dou situaii: 1. toate subtranzaciile se execut cu succes; 2. o subtranzacie eueaz, este abortat i se ruleaz subtranzacii compensatoare pentru recuperare. Astfel de tranzacii pot fi utilizate dac subtranzaciile sunt independente i se pot defini subtranzacii compensatoare. n modelul de tranzacii cu niveluri multiple arborele subtranzaciilor este echilibrat (Weikum i Schek 1991), ceea ce presupune c dou operaii aflate la un anumit nivel pot s nu fie n conflict chiar dac implementrile lor de la nivelul imediat inferior sunt n conflict. Cunoscnd informaiile despre conflicte pe niveluri, utilizarea tranzaciilor cu niveluri multiple permite un grad mai mare de concuren fa de utilizarea altor tipuri de tranzacii. Exist situaii care necesit accesul la versiuni anterioare ale unui obiect (spre exemplu n dezvoltarea unui proiect este necesar s se stocheze evoluia obiectelor proiectate i a modificrilor efectuate n proiect pe parcursul realizrii acestuia). Metoda utilizat n astfel de situaii este pstrarea evoluiei obiectelor, proces cunoscut sub denumirea de administrarea versiunilor. O versiune a unui obiect este o stare identificabil a acestuia, iar istoricul versiunilor reprezint evoluia obiectului. Versiunile unui obiect pot fi ordonate prin utilizarea mrcilor de timp i utilizatori diferii pot lucra n acelai timp cu versiuni diferite ale aceluiai obiect, ceea ce reprezint o alternativ n locul utilizrii tranzaciilor avansate pentru creterea gradului de concuren. Produse comerciale printre care: Ontos, Versant, ObjectStore, Objectivity/DB, Itasca, sunt prevzute cu faciliti de administrare a versiunilor. Avnd n vedere faptul c proiectarea este un proces care evolueaz n timp, este necesar posibilatea definirii i modificrii dinamice a schemei bazei de date. n

33

acest sens n cursul procesului de proiectare pot surveni urmtoarele tipuri de modificri: - modificri n definiia claselor (modificare atributelor, modificare metode); - modificri n structura de motenire (crearea unei superclase, eliminarea unei superclase, modificarea ordinii superclaselor unei clase); - modificri n setul de clase (crearea unei noi clase, tergerea unei clase, modificarea numelui unei clase). Aceste schimbri trebuie s poat fi realizate fr oprirea sistemului sau fr implicaii majore asupra sistemului. Pentru ndeplinirea acestor deziderate, unele produse comerciale printre care Itasca i GemStone definesc o serie de reguli care trebuie respectate la efectuarea modificrilor schemei. Reguli de baz pentru sistemele SGBDOO n 1989 Atkinson .a. au propus 13 reguli pe care trebuie s le ndeplineasc un sistem SGBDOO, avnd n vedere pe de o parte faptul c un astfel de sistem trebuie s fie orientat spre obiecte i pe de alt parte faptul c trebuie s ndeplineasc cerinele unui SGBD. Primele 8 reguli se refer la partea privind orientarea spre obiecte, iar urmtoarele 5 reguli se refer la caracteristicile SGBD ale sistemului. Cele 13 reguli sunt enumerate n cele ce urmeaz: 1. Crearea obiectelor complexe prin aplicarea constructorilor SET, TUPLE, LIST sau ARRAY la obiectele de baz; 2. Asigurarea identitii obiectelor, independent de valorile atributelor lor; 3. Realizarea ncapsulrii; 4. Posibilitatea crerii de tipuri sau clase; 5. Tipurile sau clasele trebuie s poat moteni atributele i metodele de la supertipurile sau superclasele lor; 6. Trebuie oferit suport pentru legarea dinamic; 7. Limbajul de manipulare DML trebuie s posede completitudine de calcul; 8. Mulimea tipurilor de date trebuie s poat fi extins cu noi tipuri pe baza tipurilor predefinite de sistem fr deosebire de tratare ntre tipurile predefinite i tipurile definite de utilizator; 9. Asigurarea persistenei datelor (adic datele trebuie s rmn i dup finalizarea aplicaiei care le-a creat, fr intervenia utilizatorului); 10. Posibilitatea administrrii unor volume foarte mari de date; 11. Asigurarea accesului concurent la date i controlul concurenei; 12. Asigurarea refacerii bazei de date n urma unor incidente hardware i software; 13. Asigurarea unor modaliti simple de interogare a datelor, independent de aplicaii. Opional se propune: motenire multipl, distribuia printr-o reea, tranzacii i administrarea versiunilor. Nu sunt fcute precizri privind: securitatea, integritatea, vederile. Avnd n vedere aspectele prezentate mai sus privind sistemele SGBDOO, n cele ce urmeaz sunt puse n eviden avantaje i dezavantaje ale acestora. Avantaje: - faciliti sporite de modelare (modelarea prin obiecte permite o reprezentare mult mai fidel a obiectelor din lumea real i a legturilor dintre acestea); - extensibilitate (prin definirea de tipuri de date abstracte i motenire proprieti i metode se pot extinde nelimitat elementele predefinite de sistem); - putere de expresie sporit pentru limbajele de interogare a bazei de date (prin utilizare de limbaje de tip navigaional);
34

suport pentru evoluia schemei (faciliti de modificare dinamic a schemei bazei de date pe parcursul procesului de proiectare); - suport pentru tranzacii de lung durat (prin utilizarea unor modele de tranzacii avansate i/sau a versiunilor obiectelor); - faciliti sporite pentru proiectarea i exploatarea aplicaiilor avansate de baze de date. Dezavantaje: - lipsa unui model de date fundamentat teoretic i unanim acceptat; lipsa de experien, inaccesibilitate pentru utilizatorii nceptori i limitarea utilizrii la o pia restrns; lipsa de standarde pentru modele de date, limbaje de interogare; optimizarea interogrii bazei de date contravine ncapsulrii i ascunderii informaiilor; performane sczute n accesul concurent mai ales n cazul ierarhiilor de obiecte (unitatea de acces i control al concurenei fiind obiectul, se impune zvorrea la nivel de obiect); complexitatea ridicat conduce la creterea preului i dificulti n utilizarea sistemului; lipsa de suport pentru securitate, integritate i vederi. Metode utilizate pentru realizarea unui SGBDOO Analiznd produsele SGBDOO existente se constat (Khosafian i Abnous, 1990) utilizarea uneia din urmtoarele metode pentru elaborarea unui SGBDOO: - extinderea unui limbaj de programare orientat spre obiecte cu faciliti ale bazelor de date (GemStone extinde limbajele Smalltalk, C++, Java); - realizarea de biblioteci SGBD extensibile orientate spre obiecte, ce conin clase care susin persistena, gruparea, tipuri de date, tranzacii, securitatea etc. i care vor putea fi apelate n cadrul unui limbaj de programare orientat spre obiecte. n acest mod sunt realizate produsele Ontos, Versant, Object Store; - ncapsularea construciilor limbajului de baze de date orientat spre obiecte ntrun limbaj gazd convenional (spre exemplu O2 furnizeaz extensii ncapsulate pentru limbajul de programare C); - extinderea unui limbaj de baze de date cu faciliti de orientare spre obiecte (ex. SQL3). Aceast strategie este utilizat i n cadrul sistemelor relaionale cu obiecte. Standardul ODMG definete un standard pentru limbajul Object SQL. Produsele Ontos, Versant i O2 dispun de o versiune a limbajului Object SQL; - elaborarea unui nou model/limbaj original pentru bazele de date. n acest mod este realizat sistemul SIM (Semantic Information Manager) care se bazeaz pe modelul de date semantic i are un limbaj DML/DDL original. 2.1.4. Sisteme de gestiune a bazelor de date relaionale cu obiecte (SGBDOR) Avnd n vedere rspndirea larg i popularitatea de care se bucur sistemele relaionale, productorii de sisteme relaionale consider c modalitatea cea mai eficient de a remedia insuficienele modelului relaional pentru rezolvarea aplicaiilor avansate de baze de date, este de a-l extinde cu noi caracteristici de orientare spre obiecte i anume: posibilitatea definirii de noi tipuri de date de ctre utilizator (UDT), ncapsularea, motenirea, polimorfismul, legarea dinamic a metodelor, obiecte complexe, identitatea obiectelor, stocarea de metode sau proceduri n baza de date n mod asemntor datelor. Se obine astfel un hibrid

35

dintre sistemul SGBDR i sistemul SGBDOO denumit SGBDOR, care pstreaz cunotinele i experiena obinute cu sistemele relaionale i n plus nglobeaz o serie de caracteristici ale sistemelor orientate spre obiecte. Orientarea spre obiecte necesit suport adecvat pentru tipurile de date i motenirea tipurilor, suport care exist deja n modelul relaional, fiind reprezentat de domenii (tipuri) i n acest context Date afirm n [DATE04] c nu trebuie s facem nimic n modelul relaional pentru a obine funcionalitatea obiectelor n sistemele relaionale...n afar de a le implementa n totalitate i adecvat. n acest sens nc din 1991 s-a trecut la extinderea standardului SQL2 cu faciliti de orientare spre obiecte n vederea definirii standardului SQL3 finalizat la sfritul anului 1999, iar la sfritul anilor 90, productori importani de sisteme relaionale au lansat produse SGBD obiectrelaionale ntitulate servere universale printre care: Universal Database a produsului DB2, Universal Data Option for Informix Dynamic Server, Oracle Universal Server. SQL3. Extensii ale limbajului SQL2 cu faciliti de orientare spre obiecte (SQL3) n cele ce urmeaz vor fi prezentate succint principalele extensii ale standardului SQL2 cu faciliti de orientare spre obiecte i anume: tipuri de rnduri (ROW), tipuri definite de utilizator (UDT), rutine definite de utilizator (UDR), subtipuri i supertipuri, identitatea obiectelor, tipuri de referine, tipuri de colecii, module stocate persistente, obiecte mari. Tipuri de rnduri (ROW) Un tip de rnd este un tip de dat compus, definit printr-o secven de perechi denumire cmp / tip de date , care va putea fi utilizat la fel ca i o dat elementar, astfel nct grupri de date sau rnduri complete vor putea fi: memorate n variabile, transmise ca argumente rutinelor, returnate ca valori din apelul funciilor, folosite ca valori ale unei coloane dintr-un tabel. Tipuri definite de utilizator (UDT) Utilizatorul poate defini tipuri abstracte de date (ADT) numite tipuri definite de utilizatori (UDT), care pot fi folosite n acelai mod ca i tipurile predefinite (INT, CHAR, VARCHAR, FLOAT etc.). Tipurile definite de utilizator pot fi: - tipuri distincte ca de exemplu: CREATE TYPE tip_Codf AS VARCHAR(3) FINAL; - tipuri structurate constnd din una sau mai multe definiii de atribute i declaraii de rutine . n afara definiiei tipului sunt vizibile numai definiiile atributelor i rutinelor nu i implementarea acestora. Protejarea atributelor i rutinelor poate fi realizat cu ajutorul specificaiilor public, private, protected astfel: - public vizibile pentru toi utilizatorii autorizai ai tipului UDT; - private vizibile numai n cadrul definiiei UDT care le conine; - protected vizibile n tipul UDT care le conine ct i n subtipurile acelui tip UDT. Opiunea implicit n absena altei specificri este public i este luat n considerare ultima specificaie. Pentru fiecare atribut sunt definite automat o funcie observator (get) care returneaz valoarea curent a atributului i o funcie mutator (set) care stabilete valoarea atributului la o valoare specificat ca parametru. De asemenea este definit automat o funcie (public) constructor pentru a crea noi instane ale tipului UDT , funcie ce are aceeai denumire i tip ca i UDT. Cele 3 funcii pot fi redefinite de ctre utilizator n definiia tipului UDT.

36

Pot fi utilizate dou tipuri de atribute i anume: - atribute stocate corespund datelor stocate i sunt descrise prin denumire atribut urmat de tip de date (orice tip de date cunoscut sau alte tipuri UDT); - atribute virtuale nu corespund unor date stocate, ci unor date derivate din datele stocate (ex. vechime este derivat cu ajutorul funciei get_vechime i atribuit cu ajutorul funciei set_vechime). Valoarea unui atribut poate fi specificat folosind o notaie cu punct (>> sau .). Prin specificarea NOT FINAL se precizeaz faptul c pentru tipul respectiv pot fi definite subtipuri. Rutine definite de utilizator (UDR User Defined Routine) Rutinele definite de utilizator definesc metodele de manipulare a datelor, pot fi definite ca parte a unui tip UDT, sau separat ca parte a unei scheme, pot fi proceduri, funcii sau rutine iterative, pot fi definite complet n limbajul SQL, sau pot fi furnizate extern ntr-un limbaj de programare ca de exemplu C++ . O procedur poate fi apelat cu instruciunea SQL CALL i poate avea zero, unul sau mai muli parametri: de intrare (IN), de ieire (OUT), de intrare-ieire (INOUT). Pentru rutinele externe se utilizeaz instruciunea CREATE FUNCTION cu clauza EXTERNAL prin care se precizeaz fiierul obiect ce conine codul obiect al funciei compilate, iar clauza NO SQL arat c aceast funcie nu conine instruciuni SQL. Subtipuri i supertipuri Tipurile UDT pot fi organizate ntr-o ierarhie subtip/supertip utiliznd clauza UNDER. Este acceptat motenirea multipl (un tip poate avea mai multe supertipuri i mai multe subtipuri). Un subtip motenete toate atributele i comportamentele supertipurilor sale, poate defini atribute i funcii suplimentare i poate anula funcii motenite. O instan a unui subtip este considerat instan a tuturor supertipurilor sale. Pentru a crea un subtip este necesar ca utilizatorul s aib privilegiul UNDER pentru fiecare tip definit de utilizator i specificat ca supertip n definiia subtipului. Crearea tabelelor Instanele obiectelor (tipuri UDT) create n SQL3 devin persistente numai dac sunt stocate n tabele. Pentru crearea unui tabel se va utiliza instruciunea CREATE TABLE. Este posibil ca n SQL3 s nu poat fi aplicat o interogare SQL tuturor instanelor unui tip UDT dat, deoarece limbajul SQL3 nu dispune de un mecanism de stocare a tuturor instanelor unui tip UDT, n afar de cazul cnd utilizatorul creeaz explicit un singur tabel n care sunt stocate toate instanele. n astfel de situaii problema poate fi rezolvat utiliznd mecanismul de motenire a tabelelor, care permite crearea unui tabel care motenete toate atributele din unul sau mai multe tabele existente, cu ajutorul clauzei UNDER, facilitatea de subtabel/supertabel fiind independent de facilitatea de motenire a tipurilor UDT. Un tabel va moteni toate coloanele din supertabelele sale, putnd defini n plus i alte coloane proprii. Ca i n cazul subtipurilor pentru a putea crea un subtabel, utilizatorul trebuie s aib privilegiul UNDER pentru fiecare supertabel referit. Pentru interogarea i reactualizarea tabelelor n SQL3 se utilizeaz instruciuni similare ca i n SQL2 cu o serie de extensii pentru manipularea obiectelor.

37

Spre exemplu n interogarea: SELECT p.nume,p.get_vechime FROM profesori p WHERE p.este_decan este utilizat funcia virtual get_vechime motenit, iar n clauza WHERE este utilizat funcia este_decan definit de utilizator. Tipuri de referine i identitatea obiectelor Spre deosebire de SQL2 n care definirea relaiilor dintre tabele se realizeaz prin mecanismul cheie primar/cheie strin, n SQL3 pot fi utilizate tipurile de referine pentru a defini relaiile dintre tipurile de rnduri i a identifica n mod unic un rnd din cadrul ntregii baze de date. Valoarea tipului de referin poate fi stocat ntr-un tabel i utilizat ca o referin direct la un anumit rnd din alt tabel. Tipul de referin are o funcionalitate similar identificatorului OID din sistemele SGBDOO (spre exemplu n INFORMIX un OID este un identificator unic de 64 bii din care 24 bii identific tabelul, iar 40 bii identific rndul din tabel). Un tip de referin este specificat prin cuvntul cheie REF, iar n tabelele de baz se precizeaz VALUES ARE SYSTEM GENERATED. Pentru a limita referinele la un anumit tabel se va utiliza clauza SCOPE la crearea tabelului astfel: CREATE TABLE <nume tabel 1> OF <tip dat> ( PRIMARY KEY <nume atribut>, SCOPE FOR ,<nume referin> IS <nume tabel 2>);. Tipuri de colecii Coleciile pot fi utilizate pentru a crea tabele imbricate astfel nct o coloan dintr-un tabel va conine un alt tabel. SQL3 definete un tip de colecie imbricat ARRAY, care reprezint un ir unidimensional cu un numr maxim de elemente i n plus sunt avute n vedere tipurile de colecii parametrizate: - LIST colecie ordonat care permite dubluri; - SET colecie neordonat care nu permite dubluri; - MULTISET colecie neordonat care permite dubluri. Parametrul poate fi un tip predefinit, un tip UDT, un tip de rnd sau o alt colecie, ns nu poate fi un tip de referin sau un tip UDT care conine un tip de referin. ntr-o colecie toate elementele trebuie s fie de acelai tip sau din aceeai ierarhie de tipuri. Module stocate n baza de date Pentru a conferi limbajului SQL completitudine de calcul, n standardul SQL3 au fost adugate instruciuni noi astfel nct comportamentul obiectelor s poat fi stocat n baza de date sub form de instruciuni SQL care pot fi grupate n proceduri (module) care ulterior pot fi apelate i executate din cadrul bazei de date. Dintre instruciunile noi adugate menionm: - instruciunea de atribuire DECLARE - instruciunea de prelucrare condiionat IFTHENELSEEND IF; - instruciunea de selecie a unei alternative CASEWHEN...THEN...END CASE; - instruciuni pentru iteraii FOREND FOR, WHILEEND WHILE, REPEATEND REPEAT; - instruciunea CALL pentru apelul procedurilor. Declanatoare (trigger-e) Un declanator (trigger) este o instruciune SQL compus care este executat ori de cte ori apare evenimentul declanator. Declanatoarele pot fi utilizate pentru

38

validarea datelor de intrare, ntreinerea informaiilor de audit (nregistrarea modificrilor efectuate asupra bazei de date i de ctre cine), susinerea avertizrilor (ex. utilizarea potei electronice) n care este necesar ntreprinderea unei aciuni atunci cnd un tabel este reactualizat ntr-un mod oarecare, realizarea reproducerii datelor (copierea i ntreinerea datelor pe servere multiple, metod preferat n locul distribuirii datelor). Un declanator poate fi lansat nainte (BEFORE) sau dup (AFTER) apariia evenimentului asociat lui, pentru fiecare rnd (FOR EACH ROW) afectat de eveniment, sau implicit o singur dat pentru ntregul eveniment (FOR EACH STATEMENT). Evenimente declanatoare pot fi de exemplu operaiile INSERT, UPDATE, DELETE etc. Pentru a crea un declanator, utilizatorul trebuie s aib privilegiul TRIGGER pentru tabelul specificat, precum i alte privilegii necesare pentru a executa instruciunile SQL din cadrul declanatorului. Obiecte mari Un obiect mare este un cmp dintr-un tabel n care poate fi memorat o cantitate mare de date reprezentnd fie un fiier text mare, fie un fiier grafic. n SQL3 sunt definite urmtoarele tipuri de obiecte mari: - obiecte binare mari BLOB (Binary Large Object) reprezentnd iruri binare; - obiecte mari de tip caracter CLOB, NCLOB (Character Large Object, National Character Large Object) reprezentnd iruri de caractere. Aceste tipuri de obiecte difer de vechile obiecte BLOB din sistemele de baze de date tradiionale n care cmpurile BLOB sunt iruri de octei neinterpretabile, ceea ce necesit ca ntregul obiect BLOB s fie transferat prin reea de la serverul SGBD la client, fr nici o prelucrare chiar dac astfel de cmpuri reprezint tipuri de date structurate cum ar fi : imagini, imagini video, documente de prelucrare de texte Word sau pagini Web. Spre deosebire de sistemele tradiionale, n SQL3, asupra obiectelor mari se pot efectua unele operaii pe serverul SGBD. Astfel operatorii standard de tip ir, care opereaz asupra irurilor de caractere opereaz i asupra obiectelor mari de tip caracter CLOB, NCLOB. Aceti operatori sunt: - operatorul de concatenare ir1 || ir2 concateneaz cele dou iruri; - funcia SUBSTRING(ir FROM poziie FOR lungime) returneaz subirul extras din ir de la poziia poziie pe lungimea lungime; - funcia de suprapunere a caracterelor OVERLAY(ir1 PLACING ir2 FROM poziie FOR lungime) nlocuiete un subir din ir1 ncepnd din poziia poziie pe lungimea lungime cu ir2; - funciile de pliere UPPER(ir) i LOWER(ir) transform toate caracterele litere din ir n mari respectiv mici; - funcia de aranjare TRIM(LEADING | TRAILING | BOTH ir1 FROM ir2) returneaz ir2 cu ir1 premergtor i/sau posterior eliminat. Dac nu este specificat clauza FROM, atunci toate spaiile premergtoare i posterioare sunt eliminate din ir2; - funcia CHAR_LENGTH(ir) returneaz lungimea irului ir; - funcia POSITION(ir1 IN ir2) returneaz poziia de nceput a irului ir1 n cadrul irului ir2. Astfel de coloane CLOB nu pot fi utilizate n clauzele GROUP BY, ORDER BY, n definiiile de constrngeri, sau n operaiile cu mulimi (UNION, INTERSECT, EXCEPT). Obiectele binare mari BLOB sunt iruri de octei asupra crora pot fi efectuate urmtoarele operaii similare celora definite pentru obiectele mari de tip ir:
39

operatorul de concatenare pentru obiecte BLOB; funcia subir pentru obiecte BLOB; funcia de suprapunere pentru obiecte BLOB; funcia de aranjare pentru obiecte BLOB; funcia BLOB_LENGTH; funcia POSITION pentru obiecte BLOB.

Modaliti de utilizare a limbajului SQL n majoritatea sistemelor SGBD, limbajul SQL poate fi utilizat att direct ca limbaj de sine stttor (interactiv de la un terminal), ct i nglobat n cadrul unui alt limbaj de programare (host language) caz n care programul n limbaj gazd va apela instruciuni SQL. n cazul utilizrii n cadrul unui limbaj gazd, instruciunile SQL pot fi, fie interpretate i compilate n momentul rulrii aplicaiei, fie compilate n prealabil nainte de momentul rulrii aplicaiei (SQL nglobat dinamic) cu ajutorul instruciunilor PREPARE i EXECUTE sau EXECUTE IMMEDIATE. Utilizarea limbajului SQL nglobat necesit respectarea urmtoarelor cerine: toate variabilele din limbajul gazd utilizate n instruciuni SQL trebuie declarate n cadrul unei seciuni de declarare delimitat prin BEGIN DECLARE SECTION i END DECLARE SECTION; - fiecare instruciune SQL va fi precedat de cuvintele cheie EXEC SQL; - variabilele din limbajul gazd referite n instruciuni SQL trebuie precedate de caracterul :; - n seciunea de declarare se va defini o variabil SQLSTARE care, dup execuia fiecrei instruciuni SQL, va conine un cod de stare (00000 instruciunea a fost executat cu succes, 02000 nu au fost gsite date , etc.) care va trebui testat n program; - instruciunea SQL SELECT singular (care returneaz un singur rnd) va conine clauza INTO pentru specificarea variabilelor n care se va depune rezultatul interogrii; - pentru interogrile din care rezult mai multe rnduri se vor defini cursoare pentru accesarea rndurilor unul cte unul cu ajutorul instruciunilor DECLARE CURSOR, OPEN, FETCH, CLOSE. Avnd n vedere aceste cerine, n continuare este prezentat structura general a unui program de utilizare SQL nglobat. EXEC SQL BEGIN DECLARE SECTION ; /* declarare variabile PL/I */ DCL SQLSTARE CHAR(5) ; DCL SURSASQL CHAR VARYING (65000) ; EXEC SQL END DECLARE SECTION ; EXEC SQL DECLARE <nume cursor> CURSOR FOR /* declarare cursor */ <instruciune SELECT> ; . EXEC SQL SELECT <lista cmpuri> /* instruciune SELECT singular */ INTO <lista variabile> FROM <lista tabele> WHERE <condiie> ;

40

/* utilizare cursor */ EXEC SQL OPEN <nume cursor> ; WHILE <condiie> ; EXEC SQL FETCH <nume cursor> INTO <lista variabile> ; .................................................................................................. END WHILE ; EXEC SQL CLOSE <nume cursor> ; /* exemplu de utilizare a limbajului SQL nglobat dinamic */ SURSASQL =DELETE FROM cadre WHERE data_angajarii < 01/01/1940 ; EXEC SQL PREPARE COMPILATSQL FROM :SURSASQL ; EXEC SQL EXECUTE COMPILATSQL ; O alt modalitate de utilizare a limbajului SQL nglobat mai eficient dect utilizarea SQL nglobat dinamic o reprezint interfeele SQL/CLI (SQL Call-Level Interface) i ODBC (Open DataBase Connectivity) Microsoft, care permit accesul la baza de date dintr-un program scris ntr-un limbaj gazd (ca de exemplu C++), prin apelarea unor rutine furnizate de productor, rutine care vor utiliza SQL dinamic pentru efectuarea operaiilor cerute n baza de date. Aceste interfee asigur independena de sistemul SGBD utilizat, ceea ce nu se ntmpl n cazul utilizrii SQL nglobat dinamic deoarece necesit compilator SQL specific SGBD-ului. Concluzii privind sistemele SGBDOR n SQL3 obiectele devin persistente doar atunci cnd sunt stocate n tabele i ntruct identitatea obiectelor poate fi funcie de poziia n tabel rezult c identitatea obiectelor poate fi modificat. De asemenea interogrile n SQL3 se aplic numai tabelelor, ceea ce nseamn c utilizatorii trebuie s realizeze trecerea de la instanele obiectelor la tabele, s interogheze tabelele i apoi s realizeze transformarea invers. O alt deficien a limbajului SQL3 o constituie utilizarea indecilor de tip arbori B+ care constituie o metod de acces unidimensional pentru date alfanumerice i neadecvat pentru accesul multidimensional ntlnit n sistemele GIS, telemetrie i sisteme de creare a imaginilor. n vederea eliminrii acestei deficiene, unele sisteme SGBDOR ncep s accepte tipuri suplimentare de indexuri cum ar fi: - arbori B+ generici care permit construirea de arbori B+ pe orice tip de date i nu numai pe cele alfanumerice; - arbori R pentru accesul la datele bidimensionale i tridimensionale (Gutman 1984). Sistemele SGBDOR au avantaje i dezavantaje, enumerate n cele ce urmeaz. Avantaje: - pstreaz cunotinele i experiena acumulate cu sistemele SGBDR; costul trecerii la orientarea spre obiecte este redus; standardul SQL3 este astfel proiectat nct s fie compatibil cu standardul SQL2. Dezavantaje: - se pierde simplitatea i puritatea modelului relaional;

41

nu sunt tratate modele de obiecte ci sunt extinse relaiile din modelul relaional (obiectele persist doar stocate n tabele i interogrile se aplic numai tabelelor); - suport limitat pentru metode de acces multidimensional la date. Avnd n vedere experiena i rezultatele obinute cu sistemele SGBDR precum i neajunsurile acestor tipuri de sisteme pentru rezolvarea unor aplicaii avansate de baze de date, trei dintre productorii importani de sisteme SGBDR i anume Oracle, IBM i Informix i-au extins sistemele SGBDR pentru a deveni sisteme SGBDOR. n vederea definirii caracteristicilor sistemelor de baze de date din generaia a treia, au fost publicate o serie de manifeste [COBS01] n care recomandrile privind orientarea spre obiecte ocup un loc important, ns din anumite puncte de vedere exist poziii diametral opuse. Astfel n Manifestul sistemelor de baze de date din a treia generaie publicat de Comitetul pentru funcii avansate ale sistemelor SGBD (CADF), referitor la limbajul SQL se face meniunea : la bine i la ru limbajul SQL constituie limbajul de date intergalactic, iar n Cel de-al treilea manifest realizat de Darwen i Date (1995,1998) se menioneaz c modelul relaional nu are nevoie de nici o extindere, corecie, ipotez suplimentar i, mai presus de toate, de nici o transformare, totui limbajul SQL este respins fr echivoc ca o transformare a modelului i n schimb este propus un nou limbaj denumit D din care s poat fi utilizat limbajul SQL pentru utilizatorii existeni ai acestuia. 2.2. Proiectarea conceptual a bazelor de date Dependene n bazele de date, normalizarea relaiilor, forme normale ntre atributele unei relaii sau ntre atribute din relaii diferite pot exista anumite legturi logice (dependene), care influeneaz proprietile schemelor de relaie n raport cu operaiile curente care intervin n timpul exploatrii bazei de date: adugare, tergere, actualizare. Aceste legturi logice, cunoscute n literatura de specialitate sub denumirile de dependenele funcionale, dependenele multivalorice i dependene de cuplare, au implicaii majore asupra criteriilor de proiectare a schemelor relaionale. Alegerea unui model conceptual convenabil pentru o baz de date relaional poate necesita realizarea unor descompuneri pentru anumite scheme de relaie date, descompuneri care s izoleze dependenele existente i prin aceasta s elimine anomaliile care se datoreaz acestor dependene. 2.2.1. Dependene funcionale Penru definirea acestui tip de dependene se consider schema de relaie Prestari_Servicii (Cod, Nume_client, Adresa, Serviciu_prestat, Valoare) definit pentru urmrirea serviciilor prestate de o firm pentru diveri clieni. Atributul Adresa este dependent de atributul Nume_client (presupunnd c fiecare client are o singur adres, rezult c fiecare valoare a atributului Nume_client determin n mod unic valoarea corespunztoare a atributului Adresa). Analiznd schema de relaie de mai sus, se constat o redundan relativ la atributul Adresa a crei valoare este repetat pentru un client pentru fiecare serviciu prestat pentru acest client, ceea ce conduce la apariia urmtoarelor anomalii: - Anomalia la adugare: adresa unui client poate fi preluat numai dup ce pentru acesta se presteaz cel puin un serviciu. - Anomalia la tergere: dac se terg toate serviciile prestate pentru un anumit client, se pierde adresa acestui client.

42

- Anomalia la actualizare: datorit redundanei relativ la atributul Adresa, dac se schimb adresa unui client este necesar parcurgerea ntregii relaii pentru a identifica i actualiza toate apariiile acestui client, n caz contrar baza de date devine inconsistent (acelai client poate apare la adrese diferite). Aceste anomalii pot fi eliminate, dac schema de relaie Prestari_Servicii se nlocuiete prin urmtoarele dou scheme de relaie: Clienti(Cod, Nume_client, Adresa) Servicii(Cod, Serviciu_prestat, valoare) Relaia Clienti conine codul, numele i adresa fiecrui client, fr nici un fel de redundan, iar relaia Servicii conine serviciile prestate pentru fiecare client i valorile acestor servicii. Un dezavantaj al descompunerii relaiei iniiale n cele dou relaii este acela c pentru a determina adresa clientului pentru care s-a prestat un anumit serviciu este necesar efectuarea unei operaii de cuplare a relaiilor Clienti i Servicii. Se consider o schem de relaie R i A,B dou atribute simple sau compuse ale schemei de relaie R. Atributul A determin funcional atributul B sau B depinde funcional de A, dac i numai dac oricrei valori a atributului A i corespunde o singur valoare a atributului B (se noteaz A->B). Dependena funcional A->B este total dac nu exist nici un subset C al atributului A (CcA) astfel nct C->B i este parial n caz contrar. n relaia Prestari_Servicii, una din dependenele funcionale care poate fi pus n eviden este Nume_client->Adresa. Deoarece ntr-o relaie orice cheie identific n mod unic fiecare tupl a relaiei, deci determin n mod univoc valorile atributelor tuplei, rezult c n orice relaie atributele sunt dependente funcional fa de cheile acesteia. Se pot face, pn n acest moment, urmtoarele precizri: Eliminarea dependenelor funcionale din schemele de relaie i a consecinelor negative (redundana datelor; anomaliile de adugare, tergere, actualizare) se realizeaz prin descompunerea schemei date ntr-o colecie de scheme mai simple n care sunt evitate neajunsurile mai sus menionate. Reconstituirea relaiei iniiale se poate face prin operaia de cuplare (uniune). Pentru ca descompunerea schemei de relaie s fie echivalent cu relaia iniial, trebuie s fie ndeplinite condiiile: - cuplare fr pierdere de informaie; - conservarea dependenelor (dependenele funcionale din relaia iniial trebuie s se regseasc n relaiile rezultate prin descompunere). Formele normale sunt scheme de relaie echivalente obinute prin descompunerea unor scheme de relaie n vederea eliminrii redundanei datelor i anomaliilor la adugare, actualizare, tergere nregistrri n baza de date. Descompunerile schemelor de relaii n scheme de relaii echivalente avnd n vedere dependenele funcionale conduc la definirea primelor 4 nivele de forme normale i anume: prima form normal (FN1), a doua form normal (FN2), a treia form normal (FN3) i forma normal Boyce-Codd (FNBC). A patra form normal (FN4) este definit avnd n vedere dependenele multivalorice, iar a cincea form normal (FN5) este definit avnd n vedere dependenele de cuplare. ncepnd de la prima form normal i pn la forma normal FN5 se impun condiii din ce n ce mai restrictive asupra relaiilor. Astfel o relaie aflat pe un anumit nivel de normalizare (FN5) satisface toate restriciile cerute de nivele inferioare de normalizare (FN1, FN2, FN3, FNBC, FN4). n cele ce urmeaz sunt date definiiile formelor normale avnd n vedere dependenele funcionale.

43

O relaie R este n prima form normal (FN1) dac i numai dac toate atributele sale iau numai valori atomice (nu pot fi descompuse). Spre exemplu, atributul Adresa ar putea fi considerat un atribut neatomic dac n cadrul adresei ne-ar interesa localitatea, strada etc., caz n care trebuie descompus n atribute atomice. O relaie R este n a doua form normal (FN2) dac este n FN1 i orice atribut neprim este total dependent fa de orice cheie a relaiei (atributele prime sunt atribute care fac parte dintr-o cheie a relaiei i cele neprime sunt atributele care nu aparin nici unei chei a relaiei). O relaie R este n a treia form normal (FN3) dac este n FN2 i nici un atribut neprim nu este funcional dependent fa de un alt atribut neprim al relaiei. O relaie R se afl n forma normal Boyce-Codd (FNBC) dac singurele dependene funcionale admise sunt cele n care o cheie determin un alt atribut (nici un atribut prim sau neprim nu poate fi dependent funcional fa de un alt atribut dac acesta nu este sau nu conine o cheie). 2.2.2. Dependene multivalorice Pentru ilustrarea acestui tip de dependene se ia n considerare urmtoarea schem de relaie: Clase(Clasa, Discipline, Elevi) ce conine clasele dintr-o instituie de nvmnt, iar pentru fiecare clas sunt nregistrate disciplinele ce se predau i elevii nmatriculai n clasa respectiv. Se poate constata c relaia Clase poate rezulta prin operaia de cuplare dup atributul Clasa a urmtoarelor dou relaii: CD(Clasa, Discipline) CE(Clasa, Elevi) n relaia Clase, presupunnd c pentru o clas dat, fiecare elev frecventeaz toate disciplinele nregistrate pentru acea clas, exist dependenele multivalorice: Clasa ->> Discipline Clasa ->> Elevi. Ca i n cazul dependenelor funcionale, existena dependenelor multivalorice prezint aceleai neajunsuri privind redundana datelor i anomalii la efectuarea operaiilor de adugare, actualizare i tergere nregistrri n baza de date. O relaie R este n a patra form normal dac singurele dependene multivalorice admise sunt cele determinate de un alt atribut care este o cheie sau care conine o cheie a relaiei. ntruct orice dependen funcional este un caz particular de dependen multivaloric, rezult c orice relaie care se afl n forma normal FN4, se afl i n forma normal FNBC. Transformarea unei relaii ntr-o colecie de relaii care s se afle n FN4 este similar cu trecerea n FNBC, ns trebuie avut n vedere att eliminarea dependenelor funcionale ct i a dependenelor multivalorice. n concluzie, putem afirma c n cazul formelor normale de la FN1 la FN4, trecerea de la o form normal la alta s-a fcut prin descompunerea unei relaii n altele dou, urmrindu-se eliminarea dependenelor funcionale i multivalorice. O relaie aflat n forma normal FN4 nu mai poate fi descompus n continuare pe baza acestei metode. Exist situaii cnd relaii aflate n FN4 conin redundane i prezint anomalii la operaiile de adugare, tergere i actualizare. Aceste anomalii sunt cauzate de existena dependenelor de cuplare i pot fi eliminate prin descompunerea relaiei n 3 sau mai multe relaii a cror cuplare are ca rezultat relaia iniial. 2.2.3. Dependene de cuplare Se consider schema de relaie:

44

SDS (Specializari, Discipline, Studenti) care conine disciplinele care se predau la diverse specializri i studenii care le frecventeaz, cu precizarea c pot exista discipline opionale care nu sunt frecventate de toi studenii de la specializarea respectiv. n aceste condiii n cadrul schemei de relaie SDS nu au loc dependenele multivalorice: Specializari ->> Discipline Specializari->> Studenti ceea ce nseamn c relaia SDS este n FN4. Dei este n FN4, relaia SDS conine mai multe redundane care pot conduce la anomalii de actualizare. Pe de alt parte, relaia SDS nu poate fi descompus n dou componente din a cror cuplare s rezulte relaia iniial cu conservarea informaiei. Se constat ns c relaia SDS poate fi descompus n urmtoarele 3 relaii: SD(Specializari, Discipline) SS(Specializari, Studenti) DS(Discipline, Studenti) i relaia SDS este rezultatul cuplrii relaiilor: SD, SS i DS fr pierdere de informaie. SDS = SDSSDS. n acest caz spunem c n relaia SDS exist o dependen de cuplare. Dependenele multivalorice sunt cazuri particulare de dependene de cuplare. A cincea form normal este o generalizare a formei normale patru, trecerea unei relaii n FN5 presupunnd eliminarea dependenelor de cuplare existente n cadrul relaiei, mpreun cu anomaliile pe care acestea le creeaz. n cadrul unei relaii pot exista dependene de cuplare care nu conduc la redundan n memorarea datelor i nu produc anomalii la operaiile efectuate asupra nregistrrilor bazei de date (acestea sunt dependenele de cuplare implicate de o cheie a relaiei). O relaie este n forma normal cinci (FN5) dac i numai dac toate dependenele de cuplare existente n relaie sunt implicate de o cheie a acesteia. Relaia SDS se poate descompune, cu conservarea coninutului de informaie, n cele 3 componente ale sale: SD, SS i DS care sunt n FN5. Avnd n vedere similaritatea ce exist ntre definiiile pentru FNBC, FN4 i FN5, acestea pot fi unificate n urmtoarea definiie [DORO98]: O relaie R este n FNBC , FN4, FN5 dac i numai dac singurele dependene funcionale, multivalorice, de cuplare existente sunt cele implicate de o cheie a relaiei R. n concluzie, prin procesul de normalizare se realizeaz eliminarea din schemele de relaie a dependenelor (funcionale, multivalorice i de cuplare) cu scopul de a obine o schem relaional mai bun din punctul de vedere al redundanei datelor i al anomaliilor ce pot apare la operaiile de adugare, tergere i actualizare nregistrri n baza de date. Normalizarea unei scheme de relaie R nseamn nlocuirea acesteia cu o mulime de proiecii R1,...,Rn astfel nct R s fie echivalent cu uniunea proieciilor R1,...,Rn. Dei normalizarea este o operaie util n proiectarea bazelor de date, aceasta nu ofer ntotdeauna reete pentru obinerea celor mai bune modele i de aceea este la latitudinea proiectantului decizia de a aplica sau nu o anumit etap de normalizare dup o analiz temeinic a avantajelor i dezavantajelor modelului obinut. n unele cazuri normalizarea complet, pn la FN5, s-ar putea s fie dezavantajoas. Avnd n vedere constatrile de mai sus se poate afirma c dei normalizarea nu reprezint o soluie general valabil n orice situaie, totui dac pentru proiectarea bazei de date se aplic corect o metodologie de proiectare descendent, modelul rezultat va fi de la sine normalizat. Cercetrile n acest domeniu continu, fiind definite i alte forme normale printre care

45

FN6 pentru baze de date temporale. O baz de date temporal, pe lng datele curente, conine i date istorice, iar factorul (atributul) timp are un rol esenial (exemple concludente de astfel de baze de date sunt depozitele de date). Astfel, n proiectarea unei baze de date temporale trebuie avute n vedere i alte operaii de descompunere a schemelor de relaie i anume: - descompunerea orizontal pentru separarea datelor curente de datele istorice; - descompunerea vertical pentru separarea atributelor aceleiai entiti avnd n vedere valorile lor raportate la atributul temporal. n proiectarea unei baze de date nu este exclus nici operaia invers normalizrii numit denormalizare [DATE04], prin care se urmrete nlocuirea unei colecii de scheme de relaie cu o schem de relaie echivalent n vederea eliminrii necesitii efecturii unor operaii de cuplare care pot fi costisitoare. Dac n cazul normalizrii tendina este de a ajunge la nivele ct mai nalte (FN5), pentru denormalizare nu exist criterii clare putnd fi avute n vedere doar aspecte legate de performanele anumitor aplicaii. Un alt principiu care se urmrete n proiectarea unei baze de date este principiul proiectrii ortogonale conform cruia n cadrul unei baze de date dou scheme de relaie reale (variabile de relaie de baz) nu trebuie s aib semnificaii suprapuse. n timp ce prin normalizare se urmrete reducerea redundanei din cadrul unei scheme de relaie, prin proiectarea ortogonal se urmrete reducerea redundanei dintre schemele de relaie. 2.3. Integrarea bazelor de date n mediul Web Evoluia tehnologiei informaiei i comunicaiilor face ca bazele de date s nu mai fie izolate pe sisteme desktop, ci s poat fi disponibile oricui are acces fie la o reea local (Intranet) sau global (Internet). Pentru aceasta cea mai potrivit interfa este Web-ul, care este independent de hardware sau de sistemul de operare folosit i astfel baza de date este accesibil cu ajutorul unui browser Web. n prezent reeaua Web a devenit cel mai popular i puternic sistem informaional n reea. n reeaua Web, informaiile sunt stocate n documente utiliznd limbajul HTML (HyperText Markup Language), putnd fi afiate de ctre un browser Web care schimb informaii cu un server Web utiliznd protocolul HTTP (HyperText Transfer Protocol). Avnd n vedere faptul c la ora actual multe situri Web sunt bazate pe fiiere, fiecare document fiind stocat ntr-un fiier separat, pot apare dificulti privind administrarea unui numr foarte mare de astfel de fiiere create i ntreinute de autori diferii. De asemenea multe situri Web conin informaii care se modific n timp i prin urmare ntreinerea acestora att n baza de date ct i n pagini HTML separate poate constitui o sarcin dificil de realizat. De aceea se pune astzi cu acuitate problema stocrii informaiilor Web n baze de date i realizarea de pagini Web dinamice, deci se pune problema integrrii Web-SGBD. n mediul Web, modelul client-server pe dou etaje (1-clientul, 2-serverul de baze de date) a fost nlocuit cu un model pe trei etaje astfel: - etajul 1 - interfaa cu utilizatorul, care poate fi realizat de un browser Web; - etajul 2 - logica afacerii i prelucrarea datelor, care poate fi realizat pentru a deservi mai muli clieni prin intermediul unui server de aplicaie care poate fi spre exemplu un server Web; - etajul 3 - serverul de baze de date (sistem SGBD distribuit pe calculatoare diferite). Pentru crearea de pagini Web dinamice se poate utiliza fie tehnologia ASP (Active Server Page), fie tehnologia JSP (Java Server Page). Principala diferen
46

ntre cele dou metode de dezvoltare de pagini Web este faptul c ASP, n general, interacioneaz cu medii construite cu tehnologii Microsoft, pe cnd JSP este funcional n medii dezvoltate n Java. Tehnologia ASP faciliteaz crearea de pagini Web dinamice, ns funcioneaz doar cu servere Web ale Microsoft (Internet Information Server sau Personal Web Server). Date statistice recente relev c circa 22% din server-ele Web sunt bazate pe Windows NT. Internet Information Server, mpreun cu driverul ODBC, face legtura ntre baza de date propriu-zis i cererea formulat de un browser. Driverul de tip ODBC asigur independena de tipul de server SQL. Tehnologia ASP permite folosirea mai multor limbaje scriptice (VBScript, Jscript, JavaScript etc.) i conexiunea la multiple tipuri de baze de date prin drivere specifice sau prin intermediul ODBC. O baz de date (existent chiar pe un alt calculator) poate fi interogat conform schemei din figura 2.2.
Microsoft Internet Information Server [IIS] Active Server Pages [ASP] Baza de date

Weowse
r WebBro

wser Fig. 2.2. Accesarea unei baze de date prin reeaua INTERNET Web Limbajul de interogare a bazei de date este SQL. Indiferent de tipul bazei de date, formatul coninut n script-urile aferente interogrii este acelai, iar prin numele sursei de date se specific baza de date utilizat care poate fi ORACLE, MySQL, SQL Server M.S., Microsoft Access, etc. Accesul la bazele de date este facilitat de folosirea tehnologiei ActiveX Data Objects (ADO), care face ca accesul prin Internet la o baz de date s nu fie mai lent dect citirea unei pagini de Web obinuite. ADO este prima tehnologie Microsoft dezvoltat pe baza API-ului OLE DB (Object Linking and Embedding aplicat bazelor de date) i permite scrierea de aplicaii client care s acceseze i s manipuleze datele unei baze de date aflate pe server, prin intermediul driver-elor ODBC care reprezint un set de standarde, bazate pe SQL, destinat bazelor de date relaionale, care leag dialecte SQL distincte ale diverselor SGBD-uri. Tehnologia JSP este o tehnologie multiplatform care mbin performanele tehnologiei Java la nivelul serverului, cu limbajul HTML/XML pentru crearea paginilor Web, paginile JSP putnd fi create i ntreinute cu ajutorul uneltelor pentru generat pagini HTML/XML uzuale. O pagin JSP este format din: - componente HTML/XML statice; - taguri JSP; - opional, poriuni de cod Java, numite scripturi. Pentru accesarea bazei de date JSP folosete JDBC n timp ce ASP folosete ADO. JSP poate folosi taguri definite de programator n timp ce ASP nu este extensibil. Avnd n vedere faptul c limbajul de programare standard pentru Web este limbajul Java, n vederea integrrii Web-SGBD au fost realizate limbajele JDBC, JSQL, JRB, ca mecanisme de conectare a limbajului Java la un sistem SGBD compatibil ODBC [JRB96], [JSQL97]. Dintre acestea (conform aprecierii date de

INTERNE T/ INTRANE T

47

Hamilton i Cattell 1996) JDBC reprezint cea mai puternic tratare n accesarea sistemelor SGBD relaionale din limbajul Java., care se bazeaz pe SQL dinamic, ceea ce permite ca un program apelant s compun instruciuni SQL n momentul execuiei. Limbajul JSQL propus de consoriul Oracle, IBM i Tandem n 1997, const n extinderea limbajului Java cu limbajul SQL static nglobat. Alegerea tipului de SGBD pentru realizarea unei aplicaii cu baze de date este o decizie extrem de important i trebuie s rezulte n urma analizei tuturor aspectelor care trebuie avute n vedere pentru rezolvarea problemei formulate. Dac avem n vedere sistemele mari distribuite n reea (Intranet sau Extranet) organizate ierarhic pe nivele (servere de baze de date, aplicaii client) ce vor trebui s fac fa unui numr mare de utilizatori simultan, numrul SGBD-urilor care pot rspunde unor astfel de cerine este considerabil redus. Analiznd evoluia din ultimii ani a produselor soft pentru crearea i administrarea bazelor de date se constat, privitor la noile faciliti oferite de cele mai recente versiuni, tendina includerii de caracteristici orientate-obiect. Astfel, cele mai reprezentative sisteme n domeniul bazelor de date i anume: Oracle, Sybase, Informix, care pn nu demult erau n exclusivitate sisteme relaionale, au ncorporat, n ultimele versiuni realizate, tehnologie orientat-obiect care variaz de la implementarea doar a unor servicii pn la reproiectarea pe baze noi n sisteme hibride obiect-relaionale. Trei dintre principalii productori de sisteme relaionale convenionale i anume: Oracle, Informix, IBM i-au extins propriile SGBD-uri cu servere universale obiectrelaionale denumite astfel: Data Cartridges productor Oracle Cartuul/ncrctura Oracle componenta cheie a arhitecturii Oracle NCA (Network Computer Architecture) este un obiect branabil care ofer o interfa prin care el poate fi gestionat. Structura sa este definit cu SQL3, iar interfaa prin care poate fi accesat poate fi identificat de alte obiecte prin intermediul IDL (Interface Definition Language). Cartridge-urile snt de trei tipuri: localizate pe serverul de baze de date (aa numitele servicii extensibile), localizate n serverul de aplicaii i cartridge-uri client care ruleaz pe calculatorul client i au acces la serviciile standard din interfaa utilizator. Data Blades productor Informix Data Blade-urile sau lamele de date Informix snt asemntoare cu pachete orientate-obiect, cu biblioteci de clase C++ i ncapsuleaz definiiile claselor de obiecte. Ele permit, pe lng adugarea de noi tipuri avansate de date, specificarea de metode de acces optimizate i a unor opiuni de procesare pentru aceste tipuri de date. Relational Extenders productor IBM (DB2). Extensiile relaionale n DB2 snt definite n SQL3 i pot include tipuri i funcii definite de utilizator, obiecte de dimensiuni mari (LOBs), triggere, proceduri stocate i variate constrngeri i verificri asociate tipurilor de date. Compania Oracle are n vedere, n versiunile serverului de date Oracle, includerea mainii virtuale Java n nucleu permind executarea applet-urilor Java direct n baza de date (nivelul client reprezentat de browser-ele Web include deja o main virtual Java). Pn la realizarea acestui deziderat, Oracle ofer programatorilor Java dou drivere JDBC (Java DataBase Connectivity), care permit accesul la bazele de date Oracle direct din aplicaiile Java. Cele dou drivere JDBC sunt: 1. JDBC/OCI (JDBC/Oracle Call Interface) - driver destinat dezvoltatorilor de aplicaii Java client/server sau de aplicaii pentru serverul de aplicaii (cartridge-uri) n
48

Java. Acest driver convertete apelurile JDBC n apeluri OCI care sunt transmise prin Net8 sau SQL*Net (protocoale de reea Oracle) ctre serverul de date Oracle; 2. Thin JDBC - driver destinat dezvoltatorilor de applet-uri sau aplicaii Java (care rezid pe un server n reea i trebuie descrcate la execuie de client). Acest driver este scris complet n Java i respect n totalitate standardul JDBC. Fiind foarte mic, acest driver poate fi descrcat pe client o dat cu applet-ul Java la momentul execuiei. La integrarea Web-SGBD apar urmtoarele dou neajunsuri: - funcionalitatea limitat a limbajului HTML; - securitatea sczut. Utilizarea limbajelor de scriptare cum ar fi JavaScript i VBScript, permite crearea de funcii nglobate n limbajul HTML pentru a extinde att browserul ct i serverul. ntr-un mediu Web securitatea este asigurat prin servere reprezentant (proxy), servere Kerberos (servere de nume de utilizatori i parole securizate), parafocuri (previn accesul neautorizat la i de la o reea privat), semnturi digitale (iruri de bii determinate din datele semnate i cheia privat a persoanei sau organizaiei), certificate digitale (date de identificare criptate ale unei persoane sau organizaii), straturi i protocoale de securizare. n concluzie, se poate afirma c integrarea Web - SGBD se impune din urmtoarele considerente: - dificulti de administrare - numr mare de documente stocate n fiiere separate create i ntreinute de autori diferii; - dificulti de ntreinere date-informaii de natur dinamic (produse, preuri, etc.) ntreinute att n baze de date ct i n pagini HTML; - interconectivitate global - Internet, Intranet/Extranet + baze de date. 2.4. Baze de date deductive Una din direciile de cercetare desfurate n vederea rezolvrii unor probleme complexe de baze de date este [DORO98] abordarea logic prin care se urmrete dezvoltarea de Sisteme de Gestiune a Bazelor de Cunotine (SGBC) care s rspund pe de o parte cerinelor oferite de un SGBD obinuit (acces eficient la volume mari de date, gestiunea tranzaciilor, etc.) i pe de alt parte s posede un limbaj declarativ cu putere de expresie apropiat de cea a limbajelor convenionale. Cercetrile desfurate n aceast direcie au n vedere adaptarea limbajelor logice de tip PROLOG la cerinele impuse de manipularea unor volume mari de date ntlnite n cadrul SGBD-urilor. n acest sens sunt avute n vedere limbajele din familia DATALOG, care sunt considerate a fi intermediare ntre limbajele relaionale i limbajul PROLOG. Rezultatele obinute n cadrul cercetrilor n aceast direcie au condus la definirea unei noi discipline denumit Baze de date deductive [ULLM90], [ZANI90], [MALE02], [PARC02], [SPAS02], [ADIT03], sau Baze de date bazate pe logic [DATE04]. Bazele de date deductive sunt [ADIT03] sisteme de programe logice destinate pentru aplicaii cu volume mari de date i constituie o extensie a bazelor de date relaionale prin exploatarea puterii de expresie a regulilor logice , suportului pentru recursivitate i structurilor de date non-atomice, simplificnd programarea aplicaiilor care tradiional erau realizate n SQL inclus ntr-un limbaj gazd cum ar fi limbajul C. Datele sau faptele sunt reprezentate prin expresii atomice care nu conin nici o variabil (ground atoms).

49

Un predicat este memorat extensional prin memorarea ntr-o relaie a bazei de date a tuturor tuplelor adevrate pentru acest predicat. Partea extensional reprezint componenta relaional a bazei de date. Un predicat este memorat intensional prin memorarea secvenei de reguli care l definesc. Regulile sunt scrise n notaie PROLOG astfel: p: - q1,q2,,qn Partea intensional reprezint componenta deductiv a bazei de date. Formal o baz de date deductiv se compune [MALE02] din dou pri: - o baz de date extensional EDB (extensional database) - este o mulime de fapte de baz care descriu o parte a lumii reale avut n vedere; - o baz de date intensional IDB (intensional database) este o mulime de reguli, scrise ntr-un limbaj logic reprezentnd propoziii care permit deducerea de noi fapte din vechile fapte. 2.4.1. Extensii ale modelului relaional Avnd n vedere bazele de date relaionale, fiecare fapt r(c 1,c2,,ck) din baza de fapte EDB poate fi pus n coresponden cu o tupl <c 1,c2,,ck> a unei relaii R. Pe de alt parte, o regul care definete un predicat r poate fi gndit ca o definiie implicit a unei relaii R i corespunde conceptului relaional de vedere. O interogare a bazei de date este expresia unei formule logice particulare de demonstrat, rspunsul calculat pentru aceast demonstrare constituind rezultatul interogrii. n acest sens, tuplurile relaiilor sunt interpretate ca axiome de baz, cererile sunt interpretate ca teoreme, iar rspunsurile la cereri reprezint demonstraii de teoreme. Avnd n vedere rezultatele obinute n calculul propoziiilor i calculul predicatelor se definesc reguli de inferen (axiome deductive) care se aplic asupra faptelor din baza de date pentru deducerea de noi fapte. n acest mod de lucru, datele din baza de date, constrngerile de integritate, axiomele deductive i cererile de interogare vor fi reprezentate n acelai fel. Pentru definirea bazelor de date deductive plecnd de la modelul relaional de baze de date s-au realizat urmtoarele extensii [MALE02]: - extensia modelului de baze de date cu reguli active (triggere) caracterizate de o condiie i o aciune de executat, ceea ce permite descrierea de procesri reactive care se verific automat la efectuarea operaiilor de manipulare a datelor, bazele de date astfel realizate fiind numite baze de date active. - extensia modelului de baze de date cu reguli deductive (de tip PROLOG) caracterizate de o condiie i de o consecin logic, ceea ce permite exprimarea n mod declarativ a deducerii de noi relaii i date plecnd de la relaii introduse explicit, bazele de date astfel definite fiind numite baze de date deductive. Importana regulilor active i a regulilor deductive const n posibilitatea exprimrii multor operaii care altfel erau codificate n aplicaii. Aceste extensii, pe lng independena fizic i logic (independen realizat de sistemele tradiionale de baze de date), pot fi considerate ca un ulterior nivel de independen de aplicaii denumit independena de cunotine (knowledge independence). Avantajul independenei de cunotine este faptul c regulile sunt automat utilizate pentru toate aplicaiile ceea ce conduce la simplificarea scrierii codului aplicaiilor. Regulile sunt definite de administratorul bazei de date i fac parte din schema bazei de date. Limbaje declarative cum ar fi SQL2 permit exprimarea n mod declarativ a derivrii de noi relaii prin intermediul vederilor logice, ns nu permit exprimarea interogrilor complexe ce presupun recursivitatea. n acest sens, noul standard SQL3 introduce o serie de extensii ale algebrei relaionale i anume:

50

nchiderea tranzitiv a unei relaii se obine prin adugarea de tuple, deductibile prin tranzitivitate, la relaia de plecare (exemplu: dac se consider tuplele t1=(a,b) i t2=(b,c), prin tranzitivitate din cele dou tuple se obine tupla t3=(a,c)). recursivitatea - se realizeaz cu comanda WITH astfel: Fie o relaie R(A1,A2). O interogare recursiv pe relaia R are forma
WITH RECURSIVE RR(A1,A2) AS (SELECT A1, A2 FROM R) UNION (SELECT R1.A1, R2.A2 FROM RR AS R1, R AS R2WHERE R1.A2 = R2.A1) SELECT * FROM RR.

2.4.2. Limbajul DATALOG DATALOG este limbajul logic utilizat n cadrul bazelor de date deductive, att pentru definirea componentei extensionale EDB, ct i pentru definirea componentei intensionale IDB. n formalismul DATALOG datele i regulile sunt reprezentate prin clauze Horn care au forma general L0 :- L1,,Ln (2.1) L0 se numete capul clauzei, iar - L1,,Ln se numete corpul clauzei. Fiecare dintre Li este numit literal i are forma p i(t1,,tk), pi fiind un simbol numit predicat iar t i se numesc termeni, fiecare ti putnd fi o constant sau o variabil. Regulile fr variabile sunt numite de baz (ground). Corpul unei clauze poate fi vid i n acest caz clauza este un fapt. Faptele de baz sunt memorate n EDB. Regulile sunt clauze cu corpul nevid i sunt memorate n IDB. Un program DATALOG P trebuie s satisfac urmtoarele condiii de securitate (safety conditions): - orice fapt din P este de baz - fiecare variabil care apare n capul unei reguli trebuie de asemenea s apar n corpul aceleiai reguli Aceste condiii garanteaz c mulimea tuturor faptelor care pot fi derivate de un program DATALOG este finit. Semantica logic a limbajului DATALOG poate fi interpretat [MALE02] astfel: fiecare fapt DATALOG F poate fi identificat cu o formul atomic F* din logica de ordinul 1; fiecare regul DATALOG R de forma 2.1 reprezint o formul de forma X1,, Xn(L1LnL0) (2.2) unde X1,,Xn sunt toate variabilele care apar n regul; o mulime S de clauze DATALOG corespunde mulimii S* a tuturor formulelor C* astfel nct C aparine lui S; baza lui Herbrand HB este mulimea tuturor faptelor care se pot exprima n limbajul DATALOG, adic mulimea tuturor literalelor de forma p(c 1,,cn) cu ci constante; EBH este partea extensional a lui HB (mulimea predicatelor extensionale); IBH este partea intensional a lui HB (mulimea predicatelor intensionale); S fiind mulimea clauzelor DATALOG, cons(S) este mulimea tuturor faptelor care sunt consecine logice ale lui S; Semantica unui program DATALOG P poate fi descris ca o aplicaie P : EBHIBH (2.3) care asociaz fiecrei baze de date extensionale E EBH mulimea P(E) = cons(PE)IBH (2.4)

51

2.4.3. DATALOG i algebra relaional Avnd n vedere faptul c limbajul DATALOG poate fi privit ca o extensie recursiv a unui limbaj relaional, este util de a pune n relaie limbajul DATALOG cu algebra relaional astfel nct s se poat utiliza n baze de date deductive concepte dezvoltate pentru baze de date relaionale. Fiecare clauz a unui program DATALOG poate fi transformat ntr-o relaie de incluziune a algebrei relaionale. Mulimea relaiilor de incluziune care provin din reguli care definesc acelai predicat va forma deci o ecuaie a algebrei relaionale. Astfel, unui program DATALOG i va corespunde un sistem de ecuaii ale algebrei relaionale. Fiecrui predicat EDB al programului DATALOG i corespunde o relaie constant. Fiecrui predicat IDB al programului DATALOG i corespunde o relaie variabil. Determinarea soluiei sistemului corespunde determinrii valorii relaiilor variabile care satisface sistemul. n cele ce urmeaz este prezentat explicit cazul predicatelor IDB. Se consider clauza: C: p(a1,,an) :- q1(b1,,bk),,qm(b1,bh) (2.5) Clauzei C i corespunde n algebra relaional o relaie de incluziune de forma: Expr(Q1,,Qm)P (2.6) ntre relaiile P,Q1,,Qm care corespund predicatelor p,q 1,,qm cu convenia c atributele fiecrei relaii R sunt indicate cu numrul argumentului corespunztor al predicatului r. Pentru fiecare predicat p, se consider toate relaiile de incluziune de tipul Expr(Q1,,Qm)P (2.7) i se genereaz o ecuaie algebric de forma P= Expr1(Q1,,Qm) Expr2(Q1,,Qm) Exprmp(Q1,,Qm) (2.8) Transformarea unei mulimi de subecuaii ntr-o singur ecuaie semnific condiia de minimalitate a modelului Herbrand, care exprim faptul c suntem interesai numai de acele fapte de baz care pot fi deduse de program. Este posibil traducerea unui scop (goal) n interogri algebrice utiliznd selecii i proiecii asupra unora din variabilele sistemului pentru afiarea rezultatului evalurii expresiei din partea dreapt dup nlocuirea valorilor curente ale variabilelor, astfel: ?- p(X) este echivalent cu interogarea algebric P; ?- q(a,X) este echivalent cu interogarea algebric 1=a(Q). Exemplu de traducere din limbaj DATALOG n ecuaii ale algebrei relaionale. Program DATALOG Ecuaii algebrice traduse n algebra relaional
----------------------------------------------------------------------------------------------------------------------------------------------------------------------

p1(X,Y) :- c1(X,Y) p1(X,Y) :- p1(X,Z), p3(Z,Y) p1(X,Z) :- p2(X,Y) p2(X,Y) :- p1(X,Z), p3(Z,Y) p2(X,Y) :- c3(X,Y) p3(X,Y) :- p3(X,Z), c2(Z,Y) p3(X,Y) :- c4(X,Y) ?- p1(a,X)

R1=C11,4(R12=1R3) R2 R2=1,4(R12=1R3) C3 R3=1,4(R32=1C2) C4 1=a(R1)

52

---------------------------------------------------------------------------------------------------------2.4.4. SGBD deductive Sistemele deductive referite [PARC02], [SPAS02] sub denumirea de SGBD deductive, sau Sisteme de gestiune a bazelor de cunotine KBMS, reprezint o form avansat a sistemelor DBMS relaionale, inspirat din limbajul PROLOG i n care limbajul de cereri i structura de memorare sunt proiectate pe baza unui model logic al datelor. n cadrul unui SGBD deductiv pot fi puse n eviden urmtoarele componente: - partea extensional a bazei de date EDB (componenta relaional); - partea intensional a bazei de date IDB (componenta deductiv); - limbajul de programare logic (DATALOG) ce va fi utilizat pentru reprezentare EDB i IDB. Spre deosebire de sistemele tradiionale de baze de date, sistemele deductive asigur independena de cunotine, deoarece schema bazei de date, pe lng datele propriuzise, va conine i regulile ce se vor aplica asupra datelor, reguli ce vor fi automat utilizate pentru toate aplicaiile, ceea ce simplific activitatea de scriere a codului pentru aplicaii. Un sistem deductiv de baze de date este [BSC97] un SGBD care permite construirea vederilor cu demonstrare teoretic, fiind capabil s deduc noi fapte aplicnd reguli de inferen faptelor existente n baza de date. Utilizarea limbajului DATALOG ca limbaj de programare logic i privit ca o extensie recursiv a unui limbaj relaional, permite uniformizarea reprezentrii tuturor componentelor bazei de date i utilizarea, n baze de date deductive, a unor concepte dezvoltate pentru baze de date relaionale. 2.5. Modelul TransRelaional O descoperire de importan major, poate cea mai semnificativ descoperire n domeniu dup inventarea cu peste 35 de ani n urm a modelului relaional de ctre E. F. Codd care a constituit o adevrat revoluie n domeniul bazelor de date, o reprezint metoda de transformare Tarin inventat de Steve Tarin n cadrul companiei Required Technologies Inc. () i patentat SUA la sfritul anului 1999 ca tehnologie de implementare pentru diverse sisteme de stocare i regsire date printre care: sisteme SQL, sisteme pentru depozite de date, motoare de cutare pe Web, sisteme XML native, etc [DATE04]. Modelul TransRelaional referit sub denumirea prescurtat modelul TR reprezint aplicarea metodei de transformare Tarin n implementarea sistemelor relaionale avnd n vedere realizarea independenei fizice de date prin intermediul unei transformri care va defini corespondena dintre nivelul logic i nivelul fizic al sistemului i invers. Necesitatea utilizrii modelului TR este justificat plecnd de la constatarea c majoritatea sistemelor SGBD actuale (sisteme cu imagine direct) nu realizeaz cu adevrat o independen fizic de date, fiind realizat doar corespondena dintre variabilele de relaie de baz i fiierele stocate i dintre tuplurile din aceste variabile i nregistrrile memorate n aceste fiiere, iar pentru accesarea datelor n diverse secvene n condiii de performan acceptabile sunt necesare indexuri i alte structuri auxiliare ceea ce complic procesele de optimizare a accesrilor i administrarea bazei de date. Aceste neajunsuri sunt eliminate prin implementarea sistemelor relaionale utiliznd modelul TR. n cadrul unui sistem relaional implementat cu ajutorul modelului TR pot fi evideniate [DATE04] urmtoarele trei nivele de abstractizare:

53

nivelul relaional (Relaii baza de date vzut de utilizator = relaii definite de atribute i coninnd tupluri); nivelul fiierelor (Fiiere definite de cmpuri ce corespund atributelor i coninnd nregistrri ce corespund tuplurilor, dar fr nici o legtur cu fiierele stocate fizic); nivelul TR (Tabele baza de date vzut de modelul TR = structuri TR interne numite tabele formate din rnduri i coloane fr nici o coresponden direct cu relaiile, tuplurile sau atributele de la nivelul relaional.

Implementarea unui sistem relaional cu modelul TR este ilustrat n exemplul de mai jos.

Nivelul Relaional (Relaii)

Relaia Cadre

Atribute
Cod C3 C4 C1 C2 C6 C5 Nume Ionescu Antonescu Florescu Popescu Georgescu Petrescu Incadrare profesor conferentiar lector lector lector profesor Localitate Suceava Iasi Suceava Iasi Suceava Bucuresti

Tupluri

Nivelul Fiierelor (fiiere)


Secvena cmpuri 1 Secvena nregistrri 2 3 4 5 6 1 Cod C3 C4 C1 C2 C6 C5

Fiierul asociat relaiei Cadre


2 Nume Ionescu Antonescu Florescu Popescu Georgescu Petrescu 3 Incadrare profesor conferentiar lector lector lector profesor 4 Localitate Suceava Iasi Suceava Iasi Suceava Bucuresti

Nivelul TR (tabele)
Secvena coloane 1 2 3 4 5 6 1 Cod C1 C2 C3 C4 C5 C6

T2.1. Tabela valorilor cmpurilor


2 Nume Antonescu Florescu Georgescu Ionescu Petrescu Popescu 3 Incadrare conferentiar lector lector lector profesor profesor 4 Localitate Bucuresti Iasi Iasi Suceava Suceava Suceava

Secvena rnduri

T.2.2. Tabela

de reconstrucie a nregistrrilor

54

1 2 3 4 5 6

1 Cod 2 6 4 1 5 3

2 Nume 1 3 2 6 5 4

3 Incadrare 2 5 4 3 1 6

4 Localitate 5 4 2 1 6 3

Nivelul fiierelor este un nivel coordonator ntre nivelul relaional i nivelul TR astfel nct relaiile de la nivelul relaional sunt asociate fiierelor de la nivelul fiiere care apoi sunt asociate tabelelor de la nivelul TR, asocieri ce se realizeaz dup algoritmul descris mai jos. 1. Pentru fiecare variabil de relaie de pe nivelul relaional, realizarea corespondenei ntre variabila de relaie i fiierul de pe nivelul fiierelor prin care atributelor din variabila de relaie le corespund cmpurile din fiierul ataat numerotate de la stnga la dreapta, iar tuplurilor din variabila de relaie le corespund nregistrrile din fiierul ataat numerotate de sus n jos. Pentru o relaie definit de n atribute i care conine k tuple exist n! * k! posibiliti distincte (versiuni) de ordonare deci n! * k! fiiere echivalente (conin aceleai informaii) care vor fi numite versiuni diferite ale aceluiai fiier (constatare foarte important pentru modelul TR). 2. Realizarea corespondenei ntre fiecare fiier de pe nivelul fiierelor i dou tabele de pe nivelul TR (tabela valorilor cmpurilor i tabela de reconstrucie a nregistrrilor) astfel nct fiecare fiier de pe nivelul fiierelor s poat fi reconstruit din cele dou tabele corespunztoare. Fiecare din cele dou tabele va avea tot attea coloane i rnduri cte cmpuri i nregistrri are fiierul corespunztor, coloanele numerotate de la stnga la dreapta i rndurile numerotate de sus n jos, iar elementul aflat la intersecia unui rnd cu o coloan se va numi celul i va fi adresat cu ajutorul unor indici sub forma [i,j] unde i reprezint numrul rndului iar j numrul coloanei. Fiecare coloan din tabela valorilor cmpurilor va conine valorile cmpului corespunztor din fiierul corespunztor ordonate cresctor, astfel c nu exist nici o coresponden din punct de vedere al coninutului ntre nregistrrile din fiier i rndurile din tabel i deci nici ntre rndurile din tabel i tuplurile relaiei corespunztoare de la nivelul relaional. Fiecare celul din tabela de reconstrucie a nregistrrilor conine un numr de rnd care reprezint un pointer spre un numr de rnd din tabela valorilor cmpurilor sau din tabela de reconstrucie a nregistrrilor sau din ambele tabele astfel nct parcurgnd un algoritm general valabil s poat fi reconstruite nregistrrile fiierului corespunztor de la nivelul fiierelor.

55

Crearea tabelei de reconstrucie a nregistrrilor Se constat c coloana 1 din tabela valorilor cmpurilor se obine din coloana 1 a fiierului asociat conform secvenei 3,4,1,2,6,5. Analog, pentru coloana 2 rezult secvena 2,3,5,1,6,4, pentru coloana 3 rezult secvena 2,5,3,4,6,1 i pentru coloana 4 rezult secvena 6,2,4,3,5,1. Aceste secvene sunt numite permutri, rezultnd astfel tabela permutrilor T2.3. Definind inversa unei permutri ca fiind acea permutare care produce secvena ordonat 1,2,3,4,5,6 (exemplu pt. 3,4,1,2,6,5 inversa este tot 3,4,1,2,6,5 deoarece 1 din secvena 3,4,1,2,6,5 este pe rndul 3 din tabela permutrilor, 2 din secven este pe rndul 4 din tabela permutrilor, 3 din secven este pe rndul 1 din tabela permutrilor, 4 din secven este pe rndul 2 din tabela permutrilor, 5 din secven este pe rndul 6 din tabela permutrilor i 6 din secven este pe rndul 5 din tabela permutrilor; in acest caz se constat c ntmpltor cele 2 secvene coincid), din tabela permutrilor se obine tabela permutrilor inverse T2.4.

T2.3. Tabela permutrilor T2.4. Tabela permutrilor inverse 1234CodNumeIncadrareLocalitate13226243 1234CodNumeIncadrareLocalitate13466241 5231534421435666565411 1231234426435632565551

Plecnd de la aceast tabel se construiete tabela de reconstrucie a nregistrrilor astfel: pentru a construi coloana 1 din tabela de reconstrucie a nregistrrilor se consider celula [i,1] din tabela permutrilor inverse i fie r coninutul acestei celule, apoi se consider celula [i,2] i fie c coninutul acestei celule care se va depune n celula [r,1] din tabela de reconstrucie a nregistrrilor, pentru i=1,,6. Analog se va proceda i pentru celelalte coloane cu meniunea c pentru ultima coloan se iau valorile c corespunztoare din prima coloan. Algoritmul de reconstrucie a nregistrrilor Pentru reconstrucia unei nregistrri se parcurge tabela valorilor cmpurilor i tabela de reconstrucie a nregistrrilor dup algoritmul zigzag ilustrat n exemplul de mai jos. 1). Ne poziionm n tabela valorilor cmpurilor pe o celul spre exemplu [1,1] obinnd astfel valoarea primului cmp al nregistrrii dorite i anume C1. 2). Ne poziionm n aceeai celul din tabela de reconstrucie a nregistrrilor ([1,1]) i prelum valoarea memorat n celul (2), care reprezint numrul rndului din tabela valorilor cmpurilor n care se va gsi valoarea celui de-al doilea cmp al nregistrrii n coloana 2, deci se preia valoarea din celula [2,2] din tabela valorilor cmpurilor i anume Florescu. 3). Ne poziionm n celula [2,2] n tabela de reconstrucie a nregistrrilor din care prelum coninutul, adic 3, cea ce nseamn c valoarea urmtorului cmp (Incadrare) a nregistrrii se afl pe rndul 3 n tabela valorilor cmpurilor, coloana 3, deci se preia valoarea din celula [3,3] i anume lector.
56

4). Ne poziionm n celula [3,3] din tabela de reconstrucie a nregistrrilor din care prelum coninutul (adic 4) care reprezint rndul din tabela valorilor cmpurilor care va conine valoarea urmtorului cmp al nregistrrii n coloana 4, deci se preia valoarea din celula [4,4] i anume Suceava. 5). Ne poziionm n celula [4,4] din tabela de reconstrucie a nregistrrilor i prelum valoarea memorat (1) care reprezint rndul din tabela valorilor cmpurilor care conine valoarea primului cmp al nregistrrii (ar fi urmat al cincilea cmp ns nregistrarea are doar patru cmpuri), deci celula [1,1] care este punctul de plecare n reconstrucia nregistrrii, deci ciclul se termin. Se constat c am obinut nregistrarea C1, Florescu, lector, Suceava care este a treia nregistrare din fiierul ataat relaiei Cadre. Cele dou cicluri, numite zigzaguri , parcurse n cele dou tabele sunt reprezentate n figura 2.3. Parcurgnd algoritmul i pentru celulele [2,1],[3,1],...,[6,1] se realizeaz reconstrucia tuturor nregistrrilor din fiierul ataat relaiei Cadre, cea ce realizeaz implementarea comenzii SQL SELECT * FROM Cadre ORDER BY Cod
1 2 3 4

1 2 3 4 5 6

Cod C1

Nume Florescu

Incadrare lector

Localitate

Suceava

Tabela valorilor cmpurilor


1 2 3 4

1 2 3 4 5 6

Cod 2

Nume 3

Incadrare 4

Localitate

Tabela de reconstrucie a nregistrrilor


Fig. 2.3. Zigzaguri pentru reconstrucia unei nregistrri Analog se poate realiza parcurgerea de jos n sus, sau plecnd din oricare celul a tabelei valorilor cmpurilor, obinnd astfel ordonarea nregistrrilor dup diverse criterii fr a necesita sortare sau utilizarea vreunui index. Utilizare coloane condensate i coloane mbinate pentru eliminarea redundanei datelor Redundana care se constat n tabela valorilor cmpurilor poate fi eliminat prin condensarea coloanelor cu specificarea domeniilor rndurilor dup cum este ilustrat n tabelul T2.5. T2.5. Condensare coloane, specificare domenii rnduri

57

1 Cod C1 C2 C3 C4 C5 C6

2 Nume Antonescu

3 4 Incadrare Localitate conferentiar [1:1] Bucuresti [1:1] Florescu lector [2:4] Iasi [2:3] Georgescu profesor [5:6] Iasi [4:6] Ionescu Petrescu Popescu

Prin domenii se precizeaz rndurile care n coloana respectiv au aceeai valoare i lund numrul de rnduri per domeniu drept unitate de msur, fiecare coloan poate fi reprezentat printr-o histogram, ca de exemplu coloana 3 poate fi reprezentat prin histograma din figura 2.4.

Nr. rnduri

conferentiar

lector

profesor

Incadrare

Fig. 2.4. Histograma corespunztoare datelor din coloana Incadrare Astfel, tabela valorilor cmpurilor poate fi reprezentat printr-o mulime de histograme, iar dup cum am artat anterior, tabela de reconstrucie a nregistrrilor reprezint o mulime de permutri. Prin urmare, prin modelul TR se realizeaz reprezentarea unei colecii de date printr-o mulime de histograme i o mulime de permutri. Utilizarea coloanelor mbinate permite utilizarea unei coloane n tabela valorilor cmpurilor pentru dou coloane de acelai tip din acelai fiier sau din fiiere diferite, caz n care acea coloan va conine i specificarea domeniilor pentru frecare din cele dou coloane mbinate. Utilizarea coloanelor mbinate prezint o serie de avantaje ca spre exemplu n efectuarea operaiilor de uniune (join). In concluzie se poate afirma c ideea fundamental care st la baza modelului TR poate fi formulat astfel [DATE04]: forma stocat a unei nregistrri din cadrul unui fiier de la nivelul fiierelor presupune o mulime de valori ale cmpurilor i o mulime de informaii de legtur care coreleaz valorile cmpurilor, iar pentru stocarea fizic a fiecreia din cele dou mulimi pot fi utilizate diverse modaliti. Astfel, spre deosebire de sistemele cu imagine direct, n care cele dou mulimi de date sunt memorate mpreun (informaiile de legtur sunt reprezentate prin contiguitatea fizic), n modelul TR cele dou mulimi de date sunt stocate separat i anume: valorile cmpurilor sunt memorate n tabela valorilor cmpurilor, iar informaiile de legtur sunt memorate n tabela de reconstrucie a nregistrrilor care conine pointeri ctre datele propriuzise. Sintetizarea problemelor abordate privind evoluia sistemelor SGBD este prezentat n tabelul T2.6.
58

59

1. T2.6. EVOLUIA SISTEMELOR DE GESTIUNE A BAZELOR DE DATE

Modele de date
Ierarhic Reea

SGBD
Prima generaie

Tipuri de aplicaii
Aplicaii din domeniul afacerilor probleme de gestiune a ntreprinderilor (salarii, personal, producie) sisteme de rezervare a locurilor (transporturi, hoteluri , etc.) sisteme de gestiune biblioteci sisteme financiar-bancare -

Dezavantaje

Relaional

A doua generaie

putere de expresie limitat a limbajelor de manipulare utilizate posibiliti de modelare limitate

Modele semantice Modelul E/R

Permite elaborarea unui model conceptual fr a ine seama de anumite constrngeri impuse de modelul de date ierarhic, reea, relaional rezult o reprezentare mai fidel a realitii n cadrul unei etape intermediare n proiectarea unei baze de date

Aplicaii avansate de baze de date Modelul de date orientat spre obiecte OODM SGBDOO A treia generaie Modelul de date relaional cu obiecte ORDM Modelul TR SGBDOR proiectarea asistat de calculator CAD fabricarea asistat de calculator CAM ingineria programrii asistat de calculator CASE sisteme informaionale de birou OIS i sisteme multimedia editarea digital sisteme informaionale geografice GIS aplicaii tiinifice i medicale (ex. date complexe pt. modele moleculare, material genetic etc.) sisteme expert (baze de cunotine pt. aplicaii de inteligen artificial)

lipsa unui fundament teoretic lipsa de experien lipsa de standarde produse complexe dificil de utilizat i cu costuri ridicate suport limitat pentru securitate, integritate i vederi

se pierde simplitatea i puritatea modelului relaional nu sunt tratate modele de obiecte, sunt extinse relaiile din modelul relaional (obiectele persist doar stocate n tabele i interogrile se aplic numai tabelelor) suport limitat pentru metode de acces multidimensional la date

SGBD deductive Model logic al datelor (Sisteme de Gestiune a Bazelor de Cunotine SGBC)

O form avansat a sistemelor DBMS relaionale, inspirat din limbajul PROLOG i n care limbajul de cereri i structura de memorare sunt proiectate pe baza unui model logic al datelor. Componente: - partea extensional a bazei de date EDB (componenta relaional); - partea intensional a bazei de date IDB (componenta deductiv); - limbajul de programare logic (DATALOG) ce va fi utilizat pentru reprezentare EDB i IDB. Schema bazei de date, pe lng datele propriuzise, va conine i regulile ce se vor aplica asupra datelor, reguli ce vor fi automat utilizate pentru toate aplicaiile, ceea ce simplific activitatea de scriere a codului pentru aplicaii (asigur independena de cunotine).

60

ntrebri 1. Enumerai tipurile de aplicaii avansate de baze de date . 2. Enumerai tipurile de modele de date i SGBD-uri corespunztoare definite pentru rezolvarea aplicaiilor avansate de baze de date. 3. Prezentai sumar conceptele utilizate n tehnologia orientat spre obiecte n domeniul bazelor de date. 4. Enumerai principalele extensii ale limbajului SQL n cadrul standardului SQL3. 5. Enumerai tipurile de dependene n bazele de date i formele normale corespunztoare. 6. Definii baza de date temporal i tipurile de descompunere care se realizeaz n bazele de date temporale. 7. Prezentai modelul de baze de date client-server pe 3 etaje (nivele) n mediul Web. 8. Prezentai sumar conceptul de baz de date deductiv (baz de date bazat pe logic). 9. Definii SGBD deductive. 10. Definii modelul TransRelaional.

61

Curs 3 Tehnici avansate de explorare a datelor (1)


Societatea modern este caracterizat de schimbri rapide i inovare permanent n toate domeniile cunoaterii. Datorit facilitilor de comunicare dincolo de granie, spaiu i timp oferite de reeaua Internet, economia noului mileniu poate fi privit [DANA02] ca o scen digital n care noile afaceri devin e-bussines (afaceri electronice), comerul devine e-commerce (comer electronic), apar noi servicii electronice (e-services) i se nasc noi comuniti de tip virtual ( ecommunities). n noua scen cu calculatoare interconectate n reele Internet, Intranet i Extranet suntem inundai de informaie, dar flmnzi dup cunotine. Pentru realizarea activitilor dintr-un domeniu ntr-o manier inteligent, n cadrul procesului decizional, decidentul este pus permanent n situaia de a evalua i alege ntre dou sau mai multe alternative n cadrul unor activiti inteligente. Materia prim de baz prelucrat n cadrul activitilor inteligente este cunoaterea, care reprezint conceptul fundamental pentru dezvoltarea sistemelor inteligente. n vederea obinerii informaiilor necesare lurii de decizii corecte omul din societatea modern se confrunt cu necesitatea prelucrrii unui volum imens de date reprezentnd fapte culese din lumea real pe baz de observaii i msurtori, care trebuiesc organizate i stocate pe suporturi externe de memorare, apoi actualizate n permanen, regsite i prelucrate n timp util. O ierarhizare a datelor, informaiei i cunoaterii avnd n vedere gradul de abstractizare este realizat de profesorul E. Turban astfel [ANDO01]: Metacunoatere -> Cunoatere -> Informaii -> Date, iar procesarea datelor i cunotinelor n informatic, poate fi exprimat prin ecuaiile: Structuri de date + Algoritmi = Programe; Cunoatere + Inferene = Sistem inteligent. Reprezentarea i procesarea datelor i cunoaterii reprezint obiectul apariiei i dezvoltrii a dou tehnologii de importan major n informatic i anume: - Tehnologia bazelor de date; - Tehnologia sistemelor inteligente. n timp ce tehnologia bazelor de date are n vedere memorarea, ntreinerea i accesarea unor volume mari de date, tehnologia sistemelor inteligente este axat pe rezolvarea unor probleme complexe n diverse domenii care necesit expertiz uman, fiind ns restricionat de domenii bine delimitate i ineficient pentru procesri numerice i gestiunea unor volume mari de date. Cele dou tehnologii la ora actual distincte, tind s evolueze convergent n cadrul conceptului de sistem informaional inteligent care presupune elaborarea unui model unificat datecunotine. n acest sens, sistemele de baze de date au n vedere exprimarea semanticii n schemele lor conceptuale i capacitatea de infereniere (baze de date deductive), iar sistemele bazate pe cunotine tind s rezolve probleme care reclam baze de cunotine (fapte i reguli) din ce n ce mai mari. Avnd n vedere cele dou resurse informaionale (bazele de date i bazele de cunotine), pentru exploatarea maxim a acestora nu este suficient doar cuplarea sistemelor de gestiune a bazelor de date cu sistemele expert prin intermediul unor interfee n cadrul aplicaiilor, fiind necesar proiectarea fiecreia din cele dou componente ca o extensie natural a celeilalte astfel nct mpreun s conduc la realizarea unui sistem integrat. n acest sens cercetrile pot fi ndreptate n urmtoarele direcii:
62

dotarea SGBD cu instrumente suplimentare de structurare i manipulare avnd n vedere semantica datelor (un pas important n aceast direcie l constituie bazele de date deductive); dotarea sistemelor expert cu instrumente care s permit accesarea i manipularea eficient a informaiei stocate n bazele de date.

3.1. Integrarea tehnologiei bazelor de date cu tehnologia sistemelor inteligente Tehnologia bazelor de date are n vedere procesarea tranzaciilor, ceea ce presupune stocarea, ntreinerea i accesarea unor volume mari de date reprezentnd fapte organizate n structuri adecvate, prin intermediul unor produse software specializate (SGBD). Sistemele realizate pentru automatizarea proceselor din cadrul unei organizaii prelucreaz datele operaionale aferente tratrii operaiilor de zi cu zi. Aceste sisteme orientate spre prelucrarea tranzaciilor, cunoscute [COBS01] sub denumirea de sisteme OLTP (OnLine Transaction Processing) genereaz date operaionale care sunt orientate spre obiect. n cursul anilor organizaiile au acumulat astfel cantiti mari de date stocate n cadrul sistemelor lor operaionale. n ultimii ani, atenia este concentrat asupra modalitilor de utilizare a datelor operaionale, stocate n baze de date i arhive , pentru a susine procesul decizional n vederea ctigrii unor avantaje competitive. Se pune deci problema transformrii arhivelor de date n surs de cunotine care s prezinte utilizatorului o vedere unitar asupra datelor organizaiei. n acest sens s-a definit magazia sau depozitul de date cunoscute i sub denumirea de data warehouse, care se alimenteaz cu date de la multiple surse de date operaionale i care ofer posibilitatea realizrii unui sistem capabil s susin procesul decizional al organizaiei, folosind tehnici avansate de explorare a datelor. Scopul principal urmrit la proiectarea magaziei de date este susinerea interogrilor prin realizarea unor analize economice complexe, care s foloseasc ntreaga valoare pe care o posed datele colectate, n vederea furnizrii informaiilor necesare pentru luarea de decizii strategice. Se disting dou modaliti prin care se poate valorifica informaia din depozitul de date i anume: - analiza multidimensional OLAP (OnLine Analytical Processing); - mineritul n date DM (Data Mining). 3.1.1. nmagazinarea datelor Spre sfritul anilor 60 i nceputul anilor 70 cercettori de la Harvard i MIT (Massachusetts Institute of Technology) au pus problema utilizrii calculatoarelor n susinerea procesului decizional al unei organizaii. Acumulnd n timp cantiti mari de date, organizaiile i-au concentrat atenia asupra valorificrii datelor acumulate pentru susinerea procesului decizional n vederea obinerii de avantaje competitive. Astfel au fost definite conceptele: nmagazinarea datelor, magazie de date, depozit de date (Data Warehouse), pia de date . Conceptul iniial de magazie de date a fost inventat la compania IBM sub denumirea de magazie de informaii, primele ncercri n acest domeniu fiind ns respinse datorit complexitii i problemelor aprute n implementarea unor astfel de soluii. Printele noii tehnologii privind nmagazinarea datelor este considerat Bill Inmon care n 1993 definete magazia de date ca fiind O colecie de date orientat spre subiect, integrat, variabil n timp i nevolatil, care susine procesul decizional al administrrii [COBS01]. Aceast definiie are n vedere urmtoarele aspecte (caracteristici):

63

datele sunt orientate spre subiect n magazia de date sunt memorate principalele subiecte ale organizaiei (clienii, produsele, vnzrile, etc.) adic datele de susinere a deciziilor i nu datele orientate spre aplicaii (stocurile, facturile clienilor, etc.); - colecia de date este integrat deoarece reunete date generale utilizate n aplicaii, de la surse diferite astfel nct s prezinte utiilizatorilor o vedere unificat a datelor; - datele sunt variabile n timp - datele din magazia de date reprezint o colecie de instantanee fiind valabile la un anumit moment sau interval de timp; - colecia de date este nevolatil datele coleciei sunt remprosptate din sistemele operaionale la anumite intervale de timp i nu sunt reactualizate n timp real, iar datele noi sunt adugate n permanen coleciei. Scopul principal urmrit prin nmagazinarea datelor este integrarea datelor generale din ntreaga organizaie ntr-un depozit unic ( data warwhouse) ce va putea fi utilizat pentru interogri, elaborare rapoarte i analize pentru susinerea procesului decizional al organizaiei. Se transform astfel datele din sistemele operaionale OLTP (OnLine Transaction Processing) n surs de informaii pentru procesul decizional al organizaiei. Sursele de date pentru constituirea unei magazii de date pot fi: - datele operaionale de pe calculatoare mainframe memorate n baze de date de prim generaie de tip ierarhic i reea (ocup o pondere nsemnat n volumul total al datelor operaionale generale ale unei organizaii); - datele departamentale stocate n sisteme speciale de fiiere i n baze de date relaionale printre care INFORMIX i ORACLE; - datele cu caracter personal memorate pe staiile de lucru i serverele personale; - sisteme externe organizaiei printre care Internet, baze de date comerciale, baze de date ale furnizorilor i clienilor organizaiei. Plecnd de la aceste surse de date n magazia de date se vor reprezenta: - datele detaliate - sunt stocate la diverse intervale n magazia de date pentru a suplimenta datele grupate; - datele cu grad nalt i sczut de rezumare reprezint datele predefinite grupate generate de ctre administratorul magaziei de date pentru a crete performanele interogrilor, aceste date fiind actualizate continuu pe msur ce se ncarc date noi n magazia de date; - datele arhivate i copii de siguran stocheaz toate datele detaliate i rezumate n arhive de date i copii de siguran pe suporturi adecvate de memorare (benzi magnetice, discuri optice); - meta-datele reprezint definiia datelor (datele despre date) din magazia de date i aceast reprezentare este specific fiecrui proces care opereaz asupra magaziei de date. Tipuri de instrumente utilizate pentru construirea i utilizarea unei magazii de date: - instrumente de extragere, curare i incrcare date n magazia de date; - instrumente de access ale utilizatorilor finali: instrumente de raportare i interogare, instrumente de dezvoltare a aplicaiilor, instrumente pentru sistemul informaional executiv EIS, instrumente de prelucrare analitic on-line OLAP, instrumente de explorare a datelor (descoperirea de noi corelaii, tipare i tendine folosind tehnici din statistic, matematic i inteligen artificial). Operaiile ce trebuie efectuate pentru realizarea magaziei de date sunt: -

64

preluare date de la sursele de date (sistemele OLTP); curare date preluate de la sursele de date (sursele de date pot conine date incoerente, incomplete, dubluri, etc.); - restructurarea datelor (eliminare sau adugare de cmpuri, denormalizare); - rezumarea datelor (sortare i grupare date dup diverse criterii); - mpachetarea datelor (transformare date detaliate sau rezumate n diverse formate cum ar fi:foi de calcul tabelar, documente text, diagrame, alte reprezentri grafice); - arhivarea datelor vechi, realizarea copiilor de siguran, refacerea datelor din magazia de date; - elaborarea de instrumente de interogare pentru asigurarea accesului utilizatorilor n vederea exploatrii magaziei de date. Sisteme SGBD pentru magazii de date n general sistemele SGBD relaionale complexe rspund cerinelor impuse de crearea magaziilor de date, singura problem care trebuie avut n vedere fiind cea privind volumul datelor pentru magazia de date. Principalele cerine pe care trebuie s le ndeplineasc un sistem SGBDR pentru o magazie de date sunt: - performane de ncrcare (sute de milioane de rnduri de gigaoctei de date pe or); - prelucrarea ncrcrii (filtrarea, reformatarea, verificarea integritii, stocarea fizic, indexarea, reactualizarea meta-datelor); - administrarea calitii datelor (coerena local, coerena global, integritatea referenial, abilitate de a rspunde la interogrile utilizatorilor); - performanele interogrilor raportat la factorul timp de rspuns (utilizarea sistemelor SGBD paralele care permite utilizarea eficient a multor resurse cum ar fi: procesoarele, memoria, discurile, legturile n reea); - gestionarea unui volum imens de date (dimensiunea unei magazii de date poate varia de la cteva sute de gigaoctei la dimensiuni de ordinul teracteilor 10 12 octei, sau pentaocteilor 1015 octei); - accesul concurent al unui numr mare de utilizatori (dei n prezent accesul la magazia de date este limitat la un numr relativ sczut de utilizatori manageriali n viitor acest numr poate fi de ordinul miilor de utilizatori concureni); - lucrul cu multiple magazii de date n reea; - administrarea magaziei de date n condiii optime; - analiz multidimensiona (faciliti pentru creare de vederi multidimensionale cu instrumente OLAP relaionale incluse n sistemul SGBD); - posibilitatea realizrii interogrilor avansate (sistemul SGBDR trebuie s dispun de posibilitatea efecturii unui set complet de operaii analitice avansate mai mult dect poate oferi limbajul SQL). Implementarea unei astfel de soluii pentru o organizaie necesit timp (pn la 3 ani) i costuri care pot varia ntre 50.000 i 10.000.000 lire, dar i beneficiile pot fi considerabile. Astfel, conform unui studiu al IDC (International Data Corporation) realizat n anul 1996 investiiile ntoarse dup 3 ani au ajuns n medie la 401%, 90% dintre companiile studiate ajungnd la peste 40%, jumtate din ele la peste 160%, iar un sfert la peste 600% (sursa [COBS01]). Avnd n vedere faptul c realizarea unei magazii de date poate nsemna un proiect de lung durat (pn la 3 ani), unele organizaii au preferat s-i construiasc propriile piee de date care au n vedere numai cerinele unui singur 65

departament sau domeniu funcional i prin urmare pot fi realizate ntr-un timp mai scurt i cu mai puine resurse. 3.1.2. Analiza multidimensional (OLAP OnLine Analytical Processing) Bazele teoretice ale tehnologiei OLAP au fost definite de cercettorul E.F.Codd ("printele" bazelor de date relaionale) nc din anul 1993. OLAP reprezint [COBS01] sinteza, analiza i consolidarea dinamic a unor volume vaste de date multidimensionale . Printre operaiile analitice obinuite care pot fi efectuate asupra datelor multidimensionale sunt avute n vedere: consolidarea, parcurgerea n jos, tranarea i tierea. Consolidarea nseamn gruparea datelor fie dup simple criterii, fie prin expresii complexe pentru date intercorelate. Parcurgerea n jos reprezint inversul consolidrii i presupune afiarea datelor detaliate corespunztor datelor consolidate. Tranarea i tierea (pivotarea, vizualizarea unei trane din date) reprezint vizualizarea datelor dup diverse puncte de vedere. Pentru analiza tendinelor i descoperirea tiparelor, adesea consolidarea i tranarea sunt efectuate dup atributul timp (de-a lungul axei temporale). Codd a realizat manifestul OLAP care includea un set de 12 reguli care trebuiau avute n vedere, cu prioritate, n implementarea acestei noi tehnologii. Dintre aceste reguli cele mai importante priveau: numrul nelimitat de dimensiuni i niveluri de sintetizare a datelor, transparena operaiunilor de accesare a datelor, suportul consistent pentru realizarea rapoartelor, modul intuitiv de exploatare a datelor, suportul pentru realizarea interogrilor multidimensionale, arhitectura client/server i suportul multi-user. Aplicarea n practic a acestor elemente teoretice s-a realizat n perioada 1998 - 1999. Un pas important a fost realizat la nceputul anului 1999, cnd IBM i Oracle au realizat standardizarea tehnologiei OLAP la institutul ANSI. Pe parcursul anului 1999 au fost realizate diverse versiuni ale sistemelor relaionale DB2 i Oracle (exemplu: Express Server de la Oracle) care ddeau posibilitatea exploatrii acestor noi faciliti. Funciile OLAP au fost incluse treptat i n alte sisteme relaionale. Pentru a rspunde necesitilor de interogare n cadrul instrumentelor OLAP limbajul SQL a fost extins cu o serie de funcii specifice pentru prelucrarea i analiza datelor din magazia de date. Astfel a fost adus amendamentul OLAP la standardul SQL, noile funcii disponibile pentru susinerea tehnologiei OLAP oferind o mulime de noi posibiliti de sintez a datelor i n acelai timp mbuntind n mod substanial instrumentele oferite de limbajul SQL. Principalele funcii oferite de noua tehnologie sunt ROLLUP i CUBE. Funcia ROLLUP adaug, la setul rezultat n urma executrii unei operaiuni Select standard, grade de totalizare pentru fiecare nivel de grupare stabilit prin intermediul instruciunii GROUP BY. Gradele de totalizare sunt prezentate ncepnd cu nivelul cel mai de jos al ierarhiei i continund apoi cu nivelurile superioare ale acesteia. Pentru realizarea unei analize multidimensionale prin intermediul creia s rezulte toate posibilitile de combinaie ntre diferite dimensiuni este necesar s se utilizeze instruciunea CUBE. OLAP presupune existena unui sistem de baze de date relaionale, capabil s execute interogri mai complexe dect cele din bazele de date obinuite realizate pe baza opiunilor standard din instruciunea SELECT. Aceste operaiuni se realizeaz prin structurarea multidimensional a datelor (vizualizarea acestora se face dup mai multe criterii) prin utilizarea unor noi clauze n cadrul instruciunilor SQL (cum ar fi ROLLUP sau CUBE).

66

La compania Red Brick Systems s-a realizat limbajul Red Brick Intelligent SQL (RISQL) care conine o serie de extensii ale limbajului SQL cu operaii importante pentru analiza datelor i susinerea procesului decizional. n cadrul tehnologiei OLAP sunt utilizate structuri multidimensionale pentru stocarea datelor i relaiilor dintre acestea, structuri care sunt vizualizate sub forma unor cuburi de date i a unor cuburi n cadrul cuburilor, fiecare fa a unui cub reprezentnd o dimensiune. Informaiile incluse n bazele de date relaionale sunt astfel reprezentate prin dou elemente eseniale i anume: - dimensiuni reprezint categoriile descriptive dup care se realizeaz totalizarea i gruparea datelor; - valori - reprezint datele asupra crora se realizeaz operaiunile de nsumare, medie, minim, maxim sau respectiv orice alt operaiune statistic sau matematic permis de sistemul de gestiune a bazelor de date. Se mai definete i termenul de ierarhie, care reprezint nivelurile de detaliere pentru o dimensiune de date. Exemplul reprezentativ de analiz multidimensional l constituie o baz de date a vnzrilor. Astfel, n cadrul unei asemenea baze de date organizarea informaiilor pentru realizarea interogrilor prin intermediul OLAP presupune existena celor dou elemente: - dimensiunile - reprezentate n funcie de necesitile de analiz pe structura geografic (regiune, jude, ora, client) sau pe structura produselor vndute (model, caracteristici model, data vnzrii); - valorile - reprezentate de vnzrile cantitative sau valorice (cifra de afaceri) asupra crora se vor aplica funciile statistico-matematice de consolidare a datelor (sum, average, min, max, etc.). Spre exemplu, datele privind valoarea vnzrilor de locuine pe localiti pe trimestre ale anului 2010 ar putea fi reprezentate ntr-o baz de date relaional printr-un tabel cu trei coloane astfel:
LOCALITATE Suceava Suceava Suceava Suceava Rdui Rdui Rdui Rdui Flticeni Flticeni Flticeni Flticeni Gura Humorului Gura Humorului Gura Humorului Gura Humorului .......................... TRIMESTRU (2010) T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4 ............................ VALOARE VNZRI (mii lei) 1256 1048 1512 1200 810 725 820 875 514 550 535 511 623 712 594 730 ...................................

67

Datele de mai sus pot fi reprezentate mai natural printr-o matrice bidimensional dup cum este ilustrat n Fig. 3.1.
TRIMESTRU

T1
LOCALITATE

T2

T3

T4

Suceava Rdui Flticeni Gura Humorului ............................

1256 810 514 623


............................

1048 725 550 712


............................

1512 820 535 594


............................

1200 875 511 730


............................

Fig. 3.1. Reprezentare date relaionale printr-o matrice bidimensional

Datele privind valoarea vnzrilor de locuine pe tipuri de locuine pe localiti pe trimestre ale anului 2010 ar putea fi reprezentate ntr-o baz de date relaional printr-un tabel cu patru coloane astfel:
TIP LOCUIN Garsonier Garsonier Garsonier Garsonier Apart. 2 camere Apart. 2 camere Apart. 2 camere Apart. 2 camere Apart. 3 camere Apart. 3 camere Apart. 3 camere Apart. 3 camere ............................ Garsonier Garsonier Garsonier Garsonier ............................ Garsonier Garsonier Garsonier Garsonier ............................ LOCALITATE Suceava Suceava Suceava Suceava Suceava Suceava Suceava Suceava Suceava Suceava Suceava Suceava .......................... Rdui Rdui Rdui Rdui .......................... Flticeni Flticeni Flticeni Flticeni .......................... TRIMESTRU (2010) T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4 ............................ T1 T2 T3 T4 ............................ T1 T2 T3 T4 ............................ VALOARE VNZRI (mii lei) 256 148 520 400 312 215 160 290 262 245 190 270 ................................... 210 225 320 275 ................................... 127 158 215 195 ...................................

Datele de mai sus pot fi reprezentate mai natural printr-un cub tridimensional dup cum este ilustrat n Fig. 3.2.

68

520

400

Fig. 3.2. Reprezentare date relaionale printr-un cub tridimensional

n acest mod natural de reprezentare (matrice, cub) sunt puse n eviden dimensiunile (LOCALITATE, TRIMESTRU, n Fig.3.1.), respectiv (LOCALITATE, TIP LOCUIN, TRIMESTRU, n Fig.3.2.) i valorile corespunztoare realiznd astfel structurarea datelor ntr-o baz de date multidimensional. Alegerea modului de structurare a datelor este dictat de tipurile de interogri ce urmeaz a fi formulate de utilizator. Astfel, dac utilizatorul formuleaz interogri simple de forma Care este valoarea vnzrilor de locuine din trimestrul ... pentru localitatea ... atunci nu este necesar structurarea datelor ntr-o baz de date multidimensional, ns dac utilizatorul formuleaz interogri cum ar fi: Care este valoarea anual total a vnzrilor de locuine pentru fiecare localitate Care este valoarea anual medie a vnzrilor de locuine pentru fiecare localitate atunci este necesar gruparea mai multor date i efectuarea unor operaii (suma, media, etc), ceea ce pentru volume mari de date (mii de localiti, nr. mare de ani) necesit timp semnificativ de lucru n cazul datelor gestionate cu un SGBD relaional. Instrumente OLAP Exist trei tipuri de instrumente OLAP i anume (sursa [COBS01]): - instrumente OLAP multidimensionale (MOLAP); - instrumente OLAP relaionale (ROLAP); - mediul de interogare MQE.

69

Instrumentele MOLAP utilizeaz organizarea multidimensionale i au urmtoarea arhitectur:


Server baze de date ncrcare

datelor

structuri

Server MOLAP

Cerere de interogare

Rezultat interogare

Instrumente de acces pentru utilizatorii finali

Exemple de produse MOLAP: - Analisys Server realizat de compania Pilot Software; - Essbase realizat de compania Arbor Software; - Express Server realizat de compania Oracle; - Lightship Server realizat de compania Pilot Software; - TM/1 realizat de compania Sinper; - Gentium realizat de compania Planning Sciences; - Multiway realizat de compania Kenan Technology. Instrumentele ROLAP folosesc sistemele relaionale SGBDR utiliznd un strat de meta-date, permind crearea de vederi multidimensionale ale relaiilor bidimensionale i au urmtoarea arhitectur:
Server baze de date relaionale Limbaj SQL

Server ROLAP

Cerere de interogare

Rezultat cerere SQL

Rezultat interogare

Instrumente de acces pentru utilizatorii finali

Exemple de produse ROLAP: - Axsys Server realizat de compania Information Advantage; - DSS Agent/DSS Server realizat de compania MicroStrategy; - Beacon realizat de compania Platinum/Prodea Software; - Metacube realizat de compania Informix/Stanford Technology Group; - HighGate Project realizat de compania Sybase. Mediul de interogare MQE furnizeaz datele extrase direct de la sistemele SGBDR sau printr-un server MOLAP intermediar sub forma unui cub de date care vor fi stocate analizate i actualizate local la utilizatorul final. Arhitectura mediului MQE este reprezentat mai jos.
Limbajul SQL

Server baze de date relaionale


ncrcare

Rezultat interogare

Server MOLAP

Cerere date

Instrumente de acces pentru utilizatorii finali

Rezultat cerere

70

Exemple de produse MQE: - PowerPlay realizat de compania Cognos Software; - Pablo realizat de compania Andyne Software; - Mercury Project realizat de compania Business Objects; - CrossTarget realizat de compania Dimensional Insight; - Media realizat de compania Speedware. Aceast soluie este preferat de realizatorii de astfel de produse deoarece este simplu de instalat i utilizat i necesit costuri reduse, ns ofer posibiliti de analiz limitate i necesit o redundan sporit a datelor. ntrebri 1. Prezentai sumar conceptul de sistem inteligent. 2. Enumerai principalele direcii de integrare a tehnologiei bazelor de date cu tehnologia sistemelor inteligente. 3. Enumerai cele dou modaliti prin care se poate valorifica informaia din depozitul de date. 4. Definii conceptul OLTP (OnLine Transaction Processing). 5. Care este scopul principal urmrit prin nmagazinarea datelor ? 6. Prezentai definiia dat de Bill Inmon pentru magazia de date. 7. Prezentai principalele caracteristici ale unei magazii de date. 8. Enumerai sursele de date pentru constituirea unei magazii de date. 9. Enumerai tipurile de date care sunt reprezentate n magazia de date plecnd de la sursele de date. 10. Enumerai tipurile de instrumente utilizate pentru construirea i utilizarea unei magazii de date. 11. Enumerai operaiile ce trebuie efectuate pentru realizarea magaziei de date. 12. Prezentai principalele cerine pe care trebuie s le ndeplineasc un sistem SGBDR pentru o magazie de date. 13. Definii conceptul de pia de date i motivai apariia sa. 14. Definii conceptul OLAP (OnLine Analytical Processing) i principalele operaii analitice care pot fi efectuate asupra datelor multidimensionale. 15. Prezentai elementele utilizate n cadrul tehnologiei OLAP pentru reprezentarea structurilor de date multidimensionale (dimensiuni, valori, ierarhie). 16. Enumerai tipurile de instrumente OLAP. 17. Exemple de produse program MOLAP. 18. Exemple de produse program ROLAP. 19. Exemple de produse program MQE.

71

Curs 4 Tehnici avansate de explorare a datelor (2)


4.1. Data Mining (DM) Pentru extragerea cunotinelor din volume mari de date, a aprut o nou disciplin referit n publicaiile din domeniu sub diverse denumiri i anume: Data Mining (DM), Knowledge Discovery (KD), Knowledge Discovery in Databases (KDD), Information Discovery (ID), Information Archeology (IA). Data Mining este [NISR97] o tehnic care vizeaz descoperirea unor "abloane" (patterns) semnificative n structura datelor, care s indice n general tendine ale pieei, utilizndu-se n acest sens tehnici complexe din diverse domenii (inteligen artificial, statistic, matematic, etc). DM este extragerea informaiilor predictive ascunse din bazele mari de date, sau torturarea datelor pn cnd acestea se confeseaz. Spre deosebire de alte dezvoltri ale informaticii, cum au fost Internetul, tehnologia orientat obiect, reelele neuronale, algoritmii genetici, etc., care au pornit de la lumea academic, fiind ulterior preluate de cea a afacerilor, n cazul DM s-a ntmplat invers, a pornit de la firmele puternice, cum sunt IBM, Microsoft, GTE, etc., (de la necesitile de afaceri, mai exact, de la necesitatea extragerii cunotinelor din imensitatea de date n mijlocul creia se afl omul modern), lumea academic sesiznd ulterior problema. Firme mari, cum sunt IBM, Microsoft, GTE etc., i-au format grupuri proprii de cercetare sau au format grupuri de cercetare cu universiti puternice ca MIT, Stanford, Rutgers, Santafe etc. pe acest domeniu. Cele mai apropiate domenii de DM i KDD sunt OLAP (On Line Analitic Processing) i DSS (Decision Support Systems). Exist diverse prezentri [NISR97] privind OLAP i DSS pe de o parte i DM sau KDD pe de alt parte. Conform acestora, OLAP este un mod de utilizare a depozitelor de date, utilizare care presupune pe de o parte un acces n timp real (OLTP - On Line Transactional Processing), iar pe de alt parte, o analiz multidimensional (vectorial) a bazelor de date mari. DSS este un ansamblu format din baze i depozite de date, precum i alte ansambluri de informaii utile, mpreun cu produse soft pentru ntocmirea rapoartelor, analiza datelor, precum i implementarea unor algoritmi de optimizare n vederea sprijinirii actului decizional n cadrul organizaiei. n ceea ce privete rspunsurile, diferena dintre OLAP i DSS, pe de o parte, i DM i KDD, pe de alt parte, se poate asemna cu cea dintre rspunsurile date de o baz de date i rspunsurile date de o baz de cunotine. Rspunsurile din DM i KDD sunt mult mai flexibile, putndu-se obine modele nvnd din experiena trecut. Raionarea n sistemele OLAP i DSS este deductiv, n timp ce n DM i KDD este inductiv. Unul dintre domeniile de utilizare a DM, de ctre productorii de DSS i OLAP este valorificarea Internetului, avnd n vedere marea diversitate a bazelor i depozitelor de date ce pot fi accesate. Alte domenii n care se acumuleaz volume imense de date sunt [MDAN11]: - sistemul de urmarire orbitala de la NASA: 46 MB/sec, 4.000.000 MB/zi; - biblioteca de imagini cu amprente a FBI : 200.000 GB; - imagistica medical: baze de date de ordinul 10TB.

72

Problemele generate de explozia de date Cutarea n volume mari de date a tiparelor care prezint interes dintr-un anumit punct de vedere, este o necesitate n condiiile n care n ultima perioad de timp a avut loc o cretere exponenial a volumului de date stocate n baze de date, depozite de date sau alte depozite de informaii, n paralel cu dezvoltarea capacitilor i performanelor sistemelor de calcul. Apariia a noi tipuri complexe necesit tehnici speciale de manipulare. Calea pentru rezolvarea acestor probleme este Data Warehousing si Data Mining. Explorarea datelor (Data Mining) este procesul de analiz a datelor brute din bazele de date i de sintetizare a informaiilor utile n procesul lurii deciziilor, astfel nct prin utilizarea informaiilor existente s fie obinute noi fapte i s fie descoperite noi legturi anterior necunoscute chiar i pentru experii complet familiari cu datele respective. Explorarea datelor pentru descoperirea cunotinelor din bazele de date (KDD) reprezint [MDAN11] procesul netrivial de identificare a tiparelor din date, tipare valide, noi, potenial utile i inteligibile. - datele - o mulime de evenimente - tiparul -o expresie, ntr-un anumit limbaj care descrie un subset al datelor sau un model aplicabil acestui subset. - proces - descoperirea cunotinelor din date este o succesiune de pai care implic iteraii multiple pentru urmatoarele faze: pregatirea datelor; cautarea tiparelor; evaluarea cunotinelor i rafinarea. Tiparele descoperite trebuie s fie: valide pe seturi de date noi, cu un anumit grad de certitudine; noi i poten ial folositoare n sensul ca trebuie s conduc la anumite beneficii pentru utilizator; inteligibile, daca nu imediat, cel puin dup anumite operaii de post-procesare. Necesitatea definirii unor msuri cantitative pentru evaluarea tiparelor extrase: msuri pentru certitudine (acurateea prediciei estimat pe date noi); msuri pentru utilitate (ctigul, evaluat ca profit obinut de pe urma prediciei mai bune sau a creterii vitezei de rspuns a sistemului). Noiunile de noutate i inteligibilitate sunt mult mai subiective. Interesul - este o masur global a valorii unui tipar care combin validitatea, noutatea, utilitatea i simplitatea. Funcia de interes poate fi definit explicit sau se poate manifesta implicit prin intermediul unei ierarhii a tiparelor detectate sau a modelelor stabilit de sistemul de descoperire a cunotinelor din date. KDD presupune o abordare multidisciplinar: - tehnologia bazelor de date; - statistic; - matematic; - inteligen artificial (recunoatere forme, sisteme expert, nvare automat). Modele pentru KDD: - Modelul academic (Fayyad); - Modelul industrial (CRISP-DM).

73

Modelul industrial (CRISP-DM) const dintr-o succesiune de pai, parcuri ntr-o manier interactiv i iterativ: 1. analiza scopurilor declarate de utilizatorul final i primirea tuturor cunostinelor anterioare necesare; 2. datele int sunt pregtite i curate de tot ceea ce nseamn zgomote sau valori izolate; 3. se identific caracteristica util pentru reprezentarea datelor, funcie de obiectivul sarcinii de descoperire; 4. se alege i se aplic un anumit algoritm de explorare a datelor n scopul de a prezice valorile viitoare ale variabilelor de interes sau de a gsi tiparele din date, interpretabile de factorul uman; 5. tiparele sunt interpretate i evaluate cu ajutorul unor instrumente specializate, cum ar fi cele de vizualizare. Pregatirea datelor brute pentru explorare Datele reale conin erori; sunt incomplete: lipsesc valori ale unor atribute, lipsesc atribute care pot fi de interes, pot conine doar valori agregate; conin zgomote: conin erori sau date n afara domeniului; inconsistente: contin discrepane n coduri sau n nume. Activiti importante n pregtirea datelor; curare - completarea valorilor lips, identificarea sau eliminarea datelor care nu sunt n gama admis, rezolvarea inconsistenelor; integrare; transformare - normalizare i agregare; reducerea datelor - prin filtrare sau eantionare; discretizarea datelor continui. Pregtirea datelor pentru data mining consum cea mai important parte a eforturilor depuse n procesul de KDD avnd n vedere activitile: integrarea datelor din mai multe surse, extragerea caracteristicilor i selecia, discretizarea datelor, curarea datelor. Sarcinile explorarii datelor - previziunea / predicia - realizarea unui model din exemplele analizate i utilizarea modelului dezvoltat pentru a prezice valorile viitoare ale variabilei int; - clasificarea gsirea funciilor care grupeaz nregistrrile ntr-una sau mai multe clase discrete n vederea alocrii de nregistrri noi claselor existente; - analiza legturilor - dezvoltarea regulilor de asociere ntre seturi de articole; - modelarea explicit - gsirea formulelor explicite care descriu dependenele dintre diferite variabile; - clustering-ul - gruparea articolelor n subseturi similare din punct de vedere statistic. Un cluster este definit ca un subset de date. Sarcina procesului de clustering este aceea de a diviza o baz de date n clustere de nregistrri similare. - detectarea deviaiilor - determinarea schimbrilor semnificative a valorilor eseniale, obinute n urma masurtorilor, fa de valorile anterioare sau fa de cele ateptate. Metode i tehnici generale de explorare a datelor Clasificarea : gsirea unei funcii care include un articol de date ntr-una din mai multe clase predefinite.

74

Regresia: este utilizat la prezicerea unei valori a unei variabile continue bazat pe valorile altor variabile, presupunnd un model de dependen liniar sau neliniar. Gruparea (clusering-ul): identific o mulime finit de categorii sau clustere pentru a descrie datele. Rezumarea: gseste o descriere compact pentru o submulime de date. Modelarea dependenelor: gseste un model care descrie dependenele semnificative dintre variabile. Detectarea schimbrilor i a deviaiei : descoper cele mai semnificative schimbri produse n date n intervalul dintre dou masurtori. Tipuri de probleme care se rezolv prin Data Mining 1. Ce le place clienilor mei? (Clustering). 2. Ce clieni trebuie s intesc ntr-o promoie? ( Clustering). 3. Ce produse ar trebui s folosesc n promoie? ( Asocieri sau tipare secventiale). 4. Cum ar trebui s mi plasez noile magazine? ( Clustering i asocieri). 5. Cum pot detecta potenialele fraude? (Clustering plus asocieri). Aplicatii pentru Data Mining Gestiunea relaiilor cu clienii Customer Relationsip Management (CRM) pstrarea clienilor Analiza pieii Gsirea pieelor int Segmentarea pieei Vnzri ncruciate Detecia fraudelor Detecia fraudelor n domeniul sntii Detecia fraudelor n cazul crilor de credit Detecia fraudelor n telecomunicaii Altele n general instrumentele de Data Mining proceseaz datele organizate ca fiiere flat n format tabelar cu linii i coloane unde Liniile reprezint obiecte Coloanele reprezint caracteristici rezult un fiier (text) ce conine un masiv de date bidimensional. Acest fiier este generat din date stocate n alte formate mai complexe cum ar fi baze de date sau foi de calcul tabelar. Este indicat utilizarea unui depozit de date (Data Warehouse) deoarece: Datele sunt organizate pe subiecte de interes pentru utilizatori (pacienti, tipuri de teste, diagnostic); Permite analize din perspectiv istoric; Utilizeaz o structur multidimensional sub forma unui cub de date. Exemple de sisteme SGBDR care dispun de instrumente pentru Data Mining: - ORACLE; - DB2 IBM.

75

Reprezentarea cunotinelor n procesul KDD n procesul KDD termenul de cunotin este asociat cu tiparele descoperite n pasul de Data Mining. Exist mai multe moduri de reprezentare a tiparelor descoperite prin procesul de KDD i anume: - Tabele de decizie; - Arbori de decizie; - Reguli de clasificare; - Reguli de asociere; - Clustere; Pentru fiecare din aceste moduri de reprezentare exist algoritmi fundamentali de Data Mining. Tabela de decizie este cel mai simplu mod de reprezentare a unui proces de nvare n care procesul este descris prin 3 elemente i anume:reguli, condiii, aciuni. Arborii de decizie constituie modalitatea natural de reprezentare a cunotinelor, dac se face o abordare divide et impera a unei probleme de nvare dintr-un set de instane independente. Arborii de decizie sunt utilizati pentru clasificarea exemplelor necunoscute, prin testarea valorilor atributelor exemplelor prin arborele de decizie. Arborele de decizie se creaz printr-un proces inductiv. Majoritatea metodelor de generare a arborilor de decizie parcurg dou faze i anume: faza de construcie (cretere) a arborelui; faza de tiere (pruning). Faza de construcie a arborelui de decizie este un proces iterativ care implic divizarea progresiv a datelor n subseturi mai mici. Prima iteraie consider c nodul rdcin conine toate datele. Urmtoarele iteraii lucreaz pe noduri derivate care vor conine subseturi de date. La fiecare divizare, variabilele sunt analizate i este aleas cea mai bun divizare fr a se face o verificare dinainte n arbore s se vad dac o alt decizie ar produce un rezultat final mai bun. Faza de tiere identific i nltur ramurile care reflect zgomote sau excepii. Regulile de clasificare constituie o alternativ la arborii de decizie care sunt astfel nlocuii cu un set de reguli de forma If <condiie> Then Class = <clasa> Regulile de asociere reprezint forma de explorare a datelor care are n vedere descoperirea de legturi interesante ntre atribute din datele coninute n baze sau depozite de date. Definite n 1993 plecnd de la analiza datelor referitoare la coul de pia unde sunt generate reguli de forma Un client care cumpr produsele x1,x2,..xn va cumpra de asemenea i produsul y cu probabilitatea c% , regulile de asociere au devenit una din cele mai populare metode de analiz n procesul descoperirii de cunotine din bazele de date. Clustering sau analiza cluster este o metod de divizare a unui set de date (observaii) reprezentnd descrierea unei mulimi de obiecte n subseturi de date reprezentnd grupuri de obiecte similare, fiecare grup fiind numit cluster. Este o metod de nvare nesupervizat i o tehnic de analiz statistic a datelor utilizat n diverse domenii printre care: nvare automat, data mining, recunoatere forme, analiz imagini, bioinformatic, etc.

76

Reprezentri ale bazei de cunotine n sistemele inteligente bazate pe reguli ntr-un sistem expert bazat pe reguli de producie, baza de cunotine este compus dintr-o mulime de reguli care constituie baza de reguli i o mulime de fapte care constituie baza de fapte. Analiza unei baze de cunotine complexe poate fi efectuat n cadrul unei reprezentri grafice a acesteia i n acest sens pot fi utilizate urmtoarele dou metode de reprezentare grafic: - reprezentarea prin arbori I-SAU; - reprezentarea prin grafuri de dependene. Pe de alt parte, unei baze de cunotine i corespunde o tabel de decizie care poate fi utilizat fie ca instrument ajuttor n construirea bazei de cunotine, fie ca mod de reprezentare a acesteia. Arbori I-SAU Un arbore I-SAU pentru reprezentarea unei baze de cunotine este constituit din noduri i arce prin care se identific faptele i regulile ce compun baza de cunotine. ntr-un arbore I SAU pot fi definite urmtoarele tipuri de noduri : noduri SAU, noduri I i noduri frunz. Un nod SAU reprezint posibilitatea determinrii valorii unui fapt prin aplicarea unei reguli din mai multe posibile i este etichetat cu identificatorul faptului ce se gsete n partea aciune a regulilor respective. Un nod I reprezint forma conjunctiv a unei expresii booleene prezente n partea condiie; iar arcul care va prsi nodul I, nod ce este nnegrit n figur, va indica nodul ce reprezint partea aciune a regulii (n general nodurile I nu sunt etichetate). ntr-un arbore I-SAU arcele care pleac dintr-un nod I, sau cele care intr ntr-un nod SAU, pot fi etichetate cu identificatorii regulii respective. Modul de reprezentare a nodurilor SAU, I, este ilustrat n figura 4.1. Eticheta

Nod SAU

Nod I

Fig. 4.1. Reprezentarea nodurilor SAU, I ntr-un arbore I-SAU Pentru exemplificare se consider o baz de cunotine simplificat pentru analiza impactului msurilor economice asupra unei zone. Baza de fapte: f1 - numr ageni economici crete variabil boolean (adevrat, fals) f2 - investiii n forma privat variabil alfanumeric (da, nu) f3 - investiii n form mixt variabil alfanumeric (da, nu) f4 - rata omajului variabil alfanumeric (scade, crete, constant) f5 - indice producie industrial variabil alfanumeric (scade, crete, constant) f6 - impactul msurilor economice variabil numeric putnd lua valorile: 1 pt. regres economic 2 pt. Stagnare 3 pt. cretere economic f7 - produs intern brut pe locuitor - variabil alfanumeric (scade, crete, constant)

77

Baza de reguli: (R1) dac f1 atunci f2 = da (R2) dac f2 = da atunci f6 = 3 (R3) dac f3 = da i f1 atunci f4 = scade (R4) dac f4 = creste atunci f6 = 1 (R5) dac f5 = constant atunci f6 = 2 (R6) dac f4 = creste atunci f7 = scade (R7) dac f7 = scade atunci f3 = nu Se constat c n aceast baz de reguli faptele f1 i f5 sunt fapte de baz, faptele f2, f3, f4 i f7 sunt fapte intermediare, iar faptul f6 este un fapt concluziv, ce va fi considerat obiectivul expertizei. Reprezentarea grafic a arborelui I-SAU pentru baza de cunotine de mai sus este dat n figura 4.2.
f6 R2 R4 f2 R1 f1 f3 R7 f7 R6 f4 f4 R3 f1 f5 R5

Fig.4.2. Reprezentarea unui arbore I-SAU Din reprezentarea de mai sus se observ c faptul f1 constituie eticheta a dou noduri frunz, corespunztor celor dou apariii ale sale n prile condiie ale regulilor (R1) i (R3). De asemenea faptul f4 apare n reprezentare de dou ori (ca nod frunz i ca element al unui nod SAU). Reprezentarea sub form de arbore impune, n acest caz, ca dou noduri s aib aceeai etichet (f1) i din cauza unor astfel de situaii se prefer reprezentarea sub form de graf de dependene. Grafuri de dependene Un graf de dependene pentru reprezentarea unei baze de cunotine este un graf orientat n care nodurile reprezint faptele din baza de fapte (fiecare fapt din baza de fapte reprezint un nod unic) la care se adaug nodurile I corespunztoare regulilor cu pri condiie construite cu operatorul logic i, iar arcele sunt definite astfel: Dou noduri xi i xj sunt legateR1 printr-un arc orientat, de la xi la xj, dac i numai dac: f1 - fie exist o regul (Rx) dac xif2 atunci xj; R2 f6 - fie xi este un fapt aparinnd unei pri condiie scris n forma conjunctiv, iar xj este un nod I. R4de cunotine cu un numr Grafurile de dependene permit reprezentarea unei baze minim de noduri precum i reprezentarea ciclurilor. Graful de dependene R3 R5 corespunztor bazei de cunotine din exemplul anterior este reprezentat n figura f3 f4 4.3.
R6 R7 f7 78 f5

Fig. 4.3. Reprezentarea unui graf de dependene

Din reprezentarea de mai sus se constat existena ciclului f4 f7 f3 nodul_i f4. Prezena ciclurilor ntr-o baz de cunotine este o caracteristic negativ i de aceea vor trebui eliminate prin nlturarea unor reguli din baza de reguli i eventual adugarea de noi reguli. Etichetarea arcelor cu identificatorul regulii corespunztoare nu este obligatorie, ns dac se face, permite identificarea cu uurin a coninutului regulilor din baza de reguli. Tabele de decizie Construirea bazei de reguli este o problem dificil chiar i pentru experii n domeniu i n acest sens pot fi utilizate, ca instrumente ajuttoare, o serie de tehnici printre care cea mai cunoscut este tabela de decizie. Bazei de reguli din exemplul anterior i corespunde tabela de decizie din figura 4.4. Condiii: Dac f1 f2 f3 f4 f5 f7 f2 f3 Atunci f4 f6 f7 Fig.4.4. Reprezentarea unei tabele de decizie Pentru sistemele expert de dimensiune mare, elaborarea manual a tabelei de decizie este dificil, ns au fost elaborate programe (exemplu Logic Gem) care genereaz, testeaz i elimin regulile contradictorii sau redundante. X X X X X Reguli: R1 D D D D D D X X D R2 D R3 R4 R5 R6 R7

Aciuni:

79

ntrebri 1. Ce este Data Mining ? 2. Enumerai domenii n care se acumuleaz volume imense de date. 3. Definii conceptul Explorarea datelor pentru KDD. 4. KDD presupune o abordare multidisciplinar: 5. Definii modelul industrial (CRISP-DM) pentru KDD. 6. Descriei n ce const pregtirea datelor pentru explorare. 7. Prezentai sarcinile explorrii datelor. 8. Prezentai metode i tehnici generale utilizate n explorarea datelor. 9. Enumerai Tipuri de probleme care se rezolv prin Data Mining. 10. Enumerai Aplicatii pentru Data Mining. 11. Dai exemple de sisteme SGBDOR care dispun de instrumente pentru Data Mining. 12. Enumerai principalele moduri de reprezentare a cunotinelor (tiparelor) descoperite prin procesul de KDD. 13. Definii tabela de decizie. 14. Definii arborii de decizie. 15. Definii regulile de clasificare. 16. Definii regulile de asociere. 17. Definii tehnica clustering. 18. Ce este o baz de cunotine ntr-un sistem inteligent bazat pe reguli de producie ?

80

Bibliografie: Nicolae Morariu, Teorie i practic n dezvoltarea sistemelor bazate pe cunotine, Editura Didactic i Pedagogic Bucureti, ISBN 973-30-1042-1, 211p, 2005. 1. [COBS01]. Thomas Connolly, Carolyn Begg, Anne Strachan Database Systems A Practical Approach to Design, Implementation and Management Second Edition (trad. Ed. Teora: Baze de date Proiectare . Implementare . Gestionare, Buc. 2001) 2. [CVA00] Conf.univ.dr. Virgil Chichernea, Sistemul ACCESS, Ed.SYLVI, vol.I, Buc.2000 3. [CVF00]. Conf.univ.dr. Virgil Chichernea, lector univ.dr. Cezar Botezatu, Sistemul FoxPro,Ed.SYLVI, vol.II, Buc.2000 4. [DATE04]. C. J. Date, An Introduction to Database Systems, 8th Edition, published by Pearson Education, Inc. Adison Wesley Higher Education, 2004. 5. [DORO98]. Robert Dollinger-Baze de date i gestiunea tranzaciilor,ClujNapoca,1998 6. [FLAM02]. Sistemele bazate pe cunotine, Adina Magda Florea www.agora.ro/open/open5/ia.html 7. [FPV98]. FoxPro 2.6 pentru Windows. Ghidul programatorului, Traducere Ed. Teora, 1998 8. [FUS02]. Doina Fusaru, Arhitectura bazelor de date Mediul SQL, Univ.Spiru Haret, Ed.Fundatiei Romnia de mine, Buc.2002 9. [HARK00] Utilizare Microsoft Access 2000 / Susan Sales Harkins, Ken Hansen i Tom Gerhart ; trad. de Marian Daniel Merezeanu i Aurelia Nicoleta Merezeanu. Bucureti : Teora, cop.2000. - 527 p. 10. [JOJO97]. Jones John Data Bases in theory and practice Ed. Thompson Computer Press, UK 1997 11. [MOLH03] lector univ. Nicolae Morariu, lector univ. Valeriu Lupu, ing.ec. Ovidiu Hurjui, Baze de date, ISBN 973-8293-83-9, Editura Universitii tefan cel Mare Suceava,117 p, Suceava, 2003. 12. [MONI05] Nicolae Morariu, Baze de date - ndrumar de laborator, ISBN 973-666159-8, Editura Universitii Suceava, 85 p, Suceava, 2005. 13. [ORA92]. Introduction to ORACLE SQL, SQL* Plus and PL/SQL Course Notes, Glenn Maslen, Published by Oracle Corporation UK Ltd. 1992 14. [PASC94]. Totul despre SQL Interogarea bazelor de date, Corina Pascu, Adrian Pascu, Ed. Tehnic Buc. 1994 15. [SAM96]. Mircea Srbu, Analiza multidimensional http:www.byte.ro/byte96-03/datawar4.html 16. [SEKH94]. Khoshafian Setrag Object Oriented Databasses, pub. John Whiley 1994, UK 17. [TAMB96] Access - pentru programatori / Leon Tmbulea. - Cluj-Napoca : Promedia Plus, cop.1996. - 297 p. 18. [UDRI98] Aplicaii de gestiune : Access i Visual Basic / Mioara Udric. - Bucureti : Naional, 1998. - 197 p. 19. [VFP00]. Microsoft Visual FoxPro 6.0 Ghidul programatorului Ed.Teora 2000 20. [MDAN11]. Mirela Danubianu, Tehnici de explorare a datelor (Data mining)

81

Bibliografie extins [ADIT03]. The Aditi Deductive Database, Aditi Group, Dept. of Computer Science & Software Engineering, The University of Melbourn, 2003, www.cs.mu.oz.au/research/aditi [ALUJ95]. J.Gill Aluja, Al. P. Tacu, H. N. Teodorescu, Fuzzy Systems and Expert Systems in Decision Making, Publishing House Expert, Bucharest-Romania, ISBN 97397235-7-8, nov.1995. [ANDO97]. Andone I., ugui Al., Baze de date inteligente n managementul firmei, Ed, Dosoftei, Iai, 1997. [ANDO01]. Ioan I.Andone, Robert J.Mockler, Dorothy G.Dologite, Alexandru Al.ugui, Dezvoltarea sistemelor inteligente n economie. Metodologie i studii de caz., Editura Economic, Bucureti, 2001. [ANDO02]. Ioan Andone, Sisteme inteligente hibride. Teorie. Studii de caz pentru aplicaii economice. Ghidul dezvoltatorului, Editura Economic, Bucureti, 2002. [BASE96] Tudorel Baicu, Tatiana Eugenia esan, Fitopatologie Agricol, Ed.Ceres, Bucureti, 1996. [BGSV97]. Banca de Resurse Genetice Vegetale Suceava, editat la Banca de gene Suceava, 1997. [BGSV04]. Suceava Genebank Romania, Databases http://www.svgenebank.ro [BSC97]. Octavian Bsc,.Baze de date, Ed. ALL, !997. [CAPA00]. Ion Capanu, Constantin Anghelache, INDICATORI ECONOMICI pentru managementul micro i macroeconomic. Calcul. Prezentare. Analiz., Editura Economic, Bucureti, 2000. [COBS01]. Thomas Connolly, Carolyn Begg, Anne Strachan Database Systems A Practical Approach to Design, Implementation and Management Second Edition (trad. Ed. Teora: Baze de date Proiectare . Implementare . Gestionare, Bucureti 2001). [CRIS86] M. Cristea, Rasele de Porumb din Romnia, Bucureti, 1986. [CTCB91] T. Crciun, I. Tomozei, N. Cole, Galia Butnaru, GENETIC VEGETAL Ed. Didactic i Pedagogic, Bucureti, 1991. [DANA02]. Prof.univ.dr.Doina Danaiata, asist.univ.drd. Camelia Margea, Rolul agentului ntr-o lume digital. Competiia pe scena economiei digitale. Scenarii, actori i roluri, www.feea.uaic.ro. [DATE04]. C. J. Date, An Introduction to Database Systems, 8th Edition, published by Pearson Education, Inc. Adison Wesley Higher Education, 2004. [DEJP86]. Delahaye, J.P. Systemes experte: organisation et programmation des bases de connaissances en calcul propositionnel, Laboratoire d'Informatique Fondamentale de Lille, Universit des Sciences et Technologies de Lille, 1986. [DORO98]. Robert Dollinger-Baze de date i gestiunea tranzaciilor, Cluj Napoca, 1998. [DNAE04]. Computer Made from DNA and Enzymes http://nationalgeographic.com/news/2003/02/0224_030224_DNAcomputer.html [DUCO96]. D. Dumitrescu, Hariton Costin Inteligena Artificial. Reele neuronale teorie i aplicaii, Ed. Teora Bucureti, 1996. [DUMA97]. Adriana Dumitra, Proiectarea reelelor neurale artificiale Ed.ODEON, 1997. [DUMI99]. Ion Dumitrache, Nicolae Constantin, Monica Drgoicea, REELE NEURALE Identificarea i Conducerea Proceselor, MATRIX ROM, Bucureti 1999.

82

[EVAM99] Evaluation and Conservation of Barley Genetic Resource to Improve Their Accessibility to Breeders in Europe. Evaluation methods 1999, EU Project GENRES CT98-104, Genbank, IPK, Gatersleben, Germany, http//barley.ipk-gatersleben.de [FKPE00]. Florea, Adina Magda, Kayser, Daniel, Pentiuc, St. Gh. La reprsentation logiques des connaissances pour les agents intelligents, Cours interactif pour lUniversit Virtuelle Francophone, 2000. [FLAM02]. Sistemele bazate pe cunotine, Adina Magda Florea, www.agora.ro/open/open5/ia.html [FLAM98]. Ageni inteligeni Internet, Adina Magda, www.byte.ro/byte95-04adi.html [FUS02]. Doina Fusaru, Arhitectura bazelor de date Mediul SQL, Univ.Spiru Haret, Ed.Fundatiei Romnia de mine, Buc.2002. [GBS04]. UCSC Genome Bioinformatics. http://genome.ucsc.edu [GDB04]. The Genome Database. An international collaboration in support of the Human Genome Project. www.gdb.org [GOLI02]. Rule Based Networks, Prof.Rodney M. Goodman, Dr.John Lindal. www.micro.caltech.edu/research/itrule/rulenet.html [GRBR96].McGraw,K.&Hobson-Briggs, K. Knowledge Acquisition Principles and Guidelines Prentice Hall, Englewood Clifs, Nj, 1996. [GURU87]. GURU Tutor On-line System Documentation, Micro Data Base Systems Inc., Lafayette Indiana, 1987. [HABD93]. Herve Abdi, Les Reseaux de Neurones, Universite de Bourgogne,1993. [HELU02].Artificial Inteligence. www.cs.tcd.ie/Lucy.Hederman/DIPHI [HILL01]. W. Daniel Hillis, Maina care gndete. Cum funcioneaz calculatoarele. (trad. Mihai Cipu, Ed. Humanitas, Bucureti, 2001). [HOVI94]. tefan Holban, Romul Vancea, Florin Iancu , Inteligena Artificial. I Programare logic, II Tehnici de Inteligen Artificial, 1994. [IDBS02]. Inteligent Database Systems. www.cms.dmu.ac.uk/~jennyc/Intell_db_notes.htm [IEEE101]. IEEE Transactions on Computers, vol.50 nr.7 july 2001. Abort-Oriented Concurency Control for Real-Time Databases pp. 660-673. [IEEE201]. IEEE Transactions on Computers vol.50 nr.9 sept.2001. Neural Networks - Stohastic Neural Computation pp. 891-905. [IEEE02]. IEEE Transactions on Computers Real-Time Processing in ClientServer Databases, vol.51, nb.3, march. 2002, pp.269-288. [JOJO97]. Jones John Data Bases in theory and practice Ed. Thompson Computer Press, UK 1997. [JRB02]. O2 Technology. Java Relational Binding: A White Paper. http:www.o2tech.fr/jrb/wpaper.html [JSQL97]. Oracle Corporation.(1997), JSQL: Embedded SQL for Java. Preliminary Specification, http:www.oracle.com/nca/java_nca/jsql/html/jsql-spec.html [KQML]. UMBC KQML Web. KQML Papers and presentations. http:www.cs.umbc.edu/kqml/papers/ [LRUS00] Ing. Laurentiu-Virgil RUSAN, Consideratii privind structurile de date specifice sistemelor informationale geografice. www.revistaie.ase.ro/content/13/rusan.pdf [LUMO02]. Valeriu Lupu, Nicolae Morariu, The computer assisted generation of the programmers for the numerical command equipments of the tools machines for the mill of complex profiles, Proceedings 3rd International Conference on

83

Microelectronics and Computer Science Tehnical University of Moldova, september 26-28 2002, Chiinu, Vol. II, pag.242-247. [MALE02]. Prof.Donato Malerba, Course Basi di Dati e Basi di Conoscenza Le Basi di Dati Deduttive, Universita degli Studi di Bary, Italy, 2002. www.di.uniba.it/~malerba/courses/ [MAPH92]. Mathieu, Ph. La ralisation d'un gnrateur de Systemes expertes, Course imprim, Laboratoire d'Informatique Fondamentale de Lille, Universit des Sciences et Technologies de Lille, 1992. [MIKE]. http://www-lia.deis.unibo.it/Courses/AI/Lucidi/mike.pdf
[MNOO97]. Ion Sainiuc, Carmen Antonovici, Radu Ungureanu, Nicolae Morariu, GEO-GRAPH Sistem Informatic Geografic utilizat n realizarea cadastrului general finanat de Banca Mondial, Analele tiinifice ale Universitii Alexandru Ioan Cuza din Iai Tom XLII-XLIII, 1996-1997, pag. 51-54.

[MNVS03]. Nicolae Morariu, Sorin Vlad , Consideraii privind dezvoltarea sistemelor inteligente n economie, Economia romneasc prezent i perspective. Sesiunea tiinific naional cu participare internaional, Ed.Univ. Suceava, ISBN 973-666-035-4, 2003, pag.566-577. [MOHV93]. N.Morariu, t.Holban, R.Vancea, .a. Asistarea activitii de cercetare ntr-o banc de gene, faza Realizare prototip, tem de cercetare realizat n cadrul contractului nr.101/05.04.1993 ntre Societatea de Servicii Informatice Suceava S.A. i Ministerul Cercetrii i Tehnologiei, 1993-1995. [MONI95]. N. Morariu .a., Integrarea registrelor permanente. Registrul permanent al cadastrului general RCG- tem de cercetare realizat n cadrul contractului 569/1995 cu Institutul de Cercetri n Informatic, 1995. [MOHV97]. N.Morariu, t.Holban, R.Vancea, Dan Ciubotaru, .a. Proiectarea i optimizarea structurilor moleculare destinate realizrii medicamentelor, tem de cercetare realizat n cadrul contractului 459B/1995 ntre Societatea de Servicii Informatice Suceava S.A. i Ministerul Cercetrii i Tehnologiei, 1995-1997. [MONI97]. N.Morariu, .a., Realizarea de instrumente informatice privind prevenirea evaziunii fiscale pentru deinerea de terenuri i valori imobiliare, tem de cercetare realizat n baza contractului 125/1996 cu Ministerul Cercetrii i Tehnologiei n cadrul programului naional de cercetare ORIZONT 2000, 1996-1997. [MONI00]. N.Morariu, .a., Instrumente i arhitecturi noi pentru determinarea obligaiilor fiscale ale deintorilor de terenuri i valori imobiliare utiliznd B.D.U., tem de cercetare realizat n baza contractului 125/1996, act ad. 126/16.02.1999 cu Ministerul Cercetrii i Tehnologiei n cadrul programului naional de cercetare ORIZONT 2000, 1998-2000. [MONI98]. N.Morariu, .a., Cercetri experimentale privind reprezentarea digital la nivelul judeului Suceava, a zonelor expuse calamitilor (inundaii) tem de cercetare realizat n baza contractului 1246/1996, act ad. 284/1998 cu Ministerul Cercetrii i Tehnologiei n cadrul programului naional de cercetare ORIZONT 2000, 1996- 1998. [MONI99]. N.Morariu, .a., Crearea unui sistem informatic geografic - tem de cercetare realizat n baza contractului 125/1996, act adiional 126/16.02.1999/I cu Ministerul Cercetrii i Tehnologiei n cadrul programului naional de cercetare ORIZONT 2000, 1996-1999. [MONI01]. N.Morariu, .a., Cercetri privind asistarea i evaluarea activitilor de prevenire, protecie i reabilitare a Zonei inundabile a bazinului Prut utiliznd tehnologii informatice tem de cercetare realizat n colaborare cu Universitatea Tehnic a Moldovei, n baza contractului 595/29.08.2000, act adiional 1/16.03.2001
84

cu Ministerul Educaiei i Cercetrii n cadrul programului naional de cercetare ORIZONT 2000, 2000-2001. [MONC01] N.Morariu, .a., Cercetri privind utilizarea tehnologiei GIS n realizarea cadastrului general i a cadastrelor de specialitate n Romnia i Republica Moldova tem de cercetare realizat n colaborare cu Universitatea Tehnic a Moldovei, n cadrul contractului 616/9.10.2000, act adiional 1/3.08.2001 cu Ministerul Educaiei i Cercetrii, 2000-2001. [MOLH03] lector univ. Nicolae Morariu, lector univ. Valeriu Lupu, ing.ec. Ovidiu Hurjui, Baze de date, ISBN 973-8293-83-9, Editura Universitii tefan cel Mare Suceava,117 p, Suceava, 2003. [MOLU02]. Nicolae Morariu,Valeriu Lupu, The computer assisted of the manufacture times for machine tools with numerical command, Proceedings 3 rd International Conference on Microelectronics and Computer Science Tehnical University of Moldova, september 26-28 2002, Chiinu, Vol. II, pag.99-104. [MONI02]. Nicolae Morariu, nmagazinarea datelor. Tehnologiile OLAP i DM n susinerea procesului decizional din cadrul unei organizaii, Sesiunea tiinific naional cu participare internaional Economia romneasc prezent i perspective, Univ. tefan cel Mare Suceava, iunie 2002, pag.580-585. [MOOV03]. Nicolae Morariu, Dumitru Ostafe, Sorin Vlad , Consideraii privind utilizarea unor instrumente ale inteligenei artificiale n cercetarea aplicativ, Economia romneasc prezent i perspective, Sesiunea tiinific naional cu participare internaional, Ed.Univ. Suceava, ISBN 973-666-035-4, 2003, pag.615-622. [MOPE96]. N.Morariu, t.Gh.Pentiuc, .a., Sistem de diagnosticare automat a proceselor prin tehnici de recunoaterea formelor, tem de cercetare realizat n cadrul contractului 126/21.02.1996 ntre Societatea de Servicii Informatice Suceava S.A. i Ministerul Cercetrii i Tehnologiei, n cadrul programului naional de cercetare ORIZONT 2000, 1996. [MOPE01].t.Gh.Pentiuc, Nicolae Morariu, .a., Intelligent System for Prognosis and Estimation of Economic Decisions at Districtual Level, Advances in Electrical and Computer Engineering, Faculty of Electrical Engineering Stefan cel Mare University of Suceava, vol.1(8), nb.1(15), 2001, pp. 44-47. [MOPE02] B.Tanasiciuc, N.Morariu, t.Gh.Pentiuc, .a., Sistem expert destinat monitorizrii impactului msurilor economice asupra zonelor defavorizate - referin Judeul Suceava, faza Realizarea i testarea unui sistem experimental, tem de cercetare realizat n cadrul contractului nr.158/1999 ntre Societatea de Servicii Informatice Suceava S.A. i Ministerul Educaiei i Cercetrii, 2002. [MOPO97]. mat.Nicolae Morariu, prof.dr.ing.Nicolae Popovici, ing.Radu Ungureanu, ing.Ion Sainiuc, ing.Traian Teodorescu, fiz.Ctlin Zamfirescu; Sistem informaional geografic (SIG) pentru monitorizarea zonelor expuse inundaiilor, Produse software pentru reprezentarea digital i monitorizare, Revista Hidrotehnica vol. 42 Nr. 10-12 1997, pag. 43-46. [MOPO98]. N. Morariu, N. Popovici, R. Ungureanu, T. Teodorescu, I. Sainiuc, C. Zamfirescu; Sistem de reprezentare digital a zonelor expuse inundaiilor, Simpozion tiinific jubiliar 65 ani ai Universitii Agrare de Stat din Moldova, vol. 2, 7-9 octombrie 1998 Chiinu, pag. 186-188. [MOPO99]. Nicolae Morariu, Nicolae Popovici, Radu Ungureanu, Ion Sainiuc, Traian Teodorescu, Ctlin Zamfirescu; Reprezentarea digital la nivelul judeului Suceava a zonelor expuse calamitilor (inundaii), Analele tiinifice ale Universitii Alexandru Ioan Cuza Iai, Tom XLIV-XLV, 1998-1999, pag. 73-82. [MOPS02]. Nicolae Morariu,t.Gh.Pentiuc,Gh.Sandu,B.Tanasiciuc .a., Sistem expert destinat monitorizrii impactului msurilor economice asupra zonelor defavorizate

85

referin Judeul Suceava, Sesiunea tiinific naional cu participare internaional Economia romneasc prezent i perspective, Univ. tefan cel Mare Suceava, iunie 2002, pag.586-598. [MORA01]. Ungureanu Radu, Morariu Nicolae, .a., Cercetri privind utilizarea tehnologiei GIS n realizarea cadastrului general i a cadastrelor de specialitate n Romnia i Republica Moldova, faza Cercetri privind achiziia prelucrarea i conversia datelor cadastrale obinute din msurtori n teren, tem de cercetare realizat n colaborare cu Universitatea Tehnic a Moldovei n cadrul contractului nr.616/2000 ntre Societatea de Servicii Informatice Suceava S.A. i Ministerul Educaiei i Cercetrii, 2001. [MOR103]. Nicolae Morariu, Aspecte privind distribuirea datelor n cadrul unui sistem informatic pentru integrarea registrelor permanente, Tehnologii informaionale, Editura Universitii Suceava, ISBN 973-666-059-1, 2003 , pag.60-69. [MOR203]. Nicolae Morariu, Aspecte privind utilizarea de instrumente i arhitecturi noi pentru determinarea i urmrirea obligaiilor fiscale ale deintorilor de bunuri imobile, Economia romneasc prezent i perspective, Sesiunea tiinific naional cu participare internaional, Ed.Univ. Suceava, ISBN 973-666-035-4, 2003, pag. 545-552. [MOR303]. Nicolae Morariu, Integrarea tehnologiei bazelor de date cu tehnologia sistemelor inteligente, Economia romneasc prezent i perspective. Sesiunea tiinific naional cu participare internaional, Ed.Universitii Suceava, ISBN 973-666-035-4, 2003, pag.553565. [MOR403]. Nicolae Morariu, Utilizarea tehnicilor de clasificare i recunoaterea formelor pentru diagnosticarea evoluiei unor indicatori sintetici la nivel regional, Sesiunea tiinific naional Teorie i practic n dezvoltarea regional, Societatea Romn de Statistic, Suceava, 2003. [MOR104]. Nicolae Morariu, Utilizarea unor instrumente ale inteligenei artificiale pentru diagnosticare i predicie n economie, Simpozionul Internaional al Tinerilor Cercettori Ediia II - a, Academia de Studii Economice din Moldova, 29 30 aprilie 2004, Departamentul Editorial-Poligrafic al A.S.E.M. Chiinu, ISBN 9975-75-239-x, Vol.I pag.14-16. [MOR204]. Nicolae Morariu, REFORME A software product for pattern clasification and recognition by joint use of pattern recognition techniques and multi-layer perceptron, The Proceedings of the Central and East European Conference in Business Information Systems, Cluj-Napoca, may 2004, Ed. Risoprint, ISBN 973-656-648-X, pag.100-105. [MOR304]. Nicolae Morariu, Artificial Inteligence Techniques in an Evaluation and Decision System for Economic Activity, SACI 2004, Budapest Polytechnic Nepszinhaz, Budapest, Hungary, Timioara, 2004. [MOR404]. Nicolae Morariu, Sorin Vlad, Online documentation and assisted research knowledge based system for vegetal genetics resources, Proceedings of the Forth International Conference Internet Education Science IES-2004, Baku State University Azerbaijan,Vinnytsia National Technical University Ukraine, St. Cyril and St. Methodius University of Veliko Turnovo Bulgaria, oct. 2004 Vinnytsia Ukraine, ISBN 966-641-104-0, Tom 2, pag. 513-516. [MOTI01]. mat.drd.Nicolae Morariu, dr.ing.Doru Eugen Tiliue, asist.univ.Sorin Vlad, Model de definire a unei structuri evolutive de date de tip universal, A II-a Conferin internaional tiinifico-practic de informatic i economie INFECO2, Colegiul FinanciarBancar A. Diordi Chiinu, octombrie 2001, pag. 45-51.

86

[MOVV03]. lector univ.drd.Nicolae Morariu, asist.univ. Sorin Vlad, lector univ.drd. Romulus Vancea, Sistem bazat pe cunotine n genetica vegetal, Economia romneasc prezent i perspective, Sesiunea tiinific naional cu participare internaional Ed.Univ. Suceava, ISBN 973-666-035-4, 2003, pag.604-612. [NISR97]. Data mining, o nou er n informatic tefan I.Nitchi i Rodica AvramNitchi, http:www.byte.ro/byte97-02/18tend.html. [OLAP01]. The OLAP Report sept.2001, What is OLAP ? http.www.olapreport.com/fasmi.htm [ORA92]. Introduction to ORACLE SQL, SQL* Plus and PL/SQL Course Notes, Glenn Maslen, Published by Oracle Corporation UK Ltd. 1992. [ORA99]. Oracle Corporation - Analytic Functions for Oracle8i, White Paper, Oct.1999. [PASC94]. Totul despre SQL Interogarea bazelor de date, Corina Pascu, Adrian Pascu, Ed. Tehnic Buc. 1994. [PARC02]. Christine Parent, SGBD deductifs, Ecole Polytechnique Federale de Lausanne, http//lbdwww.epfl.ch/f/teaching/courses/ [PIGB90]. Pigford D. V., Baur G., Expert Systems for Business. Concepts and Applications. Featuring VP-Expert, Boyd & Fraser Pub, Boston, 1990. [PEDU95]. Elemente de teoria i proiectarea bazelor de date. Note de curs, Stefan Gh. Pentiuc, Jean Michel Duthilleul, Univ. tefan cel Mare Suceava 1995. [PENT94]. Pentiuc, t. Gh. An Algorithm for the Generation of Symbolic Classifiers for Pattern Recognition Systems. Analele Universitii "tefan cel Mare" Suceava, nr.1, 1994. [PENT97]. tefan-Gheorghe Pentiuc, Aplicaii ale recunoaterii formelor n diagnosticul automat, 158 p. ISBN 973-31-1096-5, Editura Tehnic, Bucureti, 1997. [PENT98]. Pentiuc, t. Gh. Sisteme expert. Note de curs, Facultatea de Inginerie Electric, specializarea Calculatoare, Facultatea de Inginerie Mecanic, specializarea Mecatronic, Universitatea "tefan cel Mare" Suceava, 1994- 1998. [PENT00]. t. Gh. PENTIUC, Generatoare de sisteme expert - Editura Hipparion, Cluj-Napoca, 2000, ISBN 973-9448-48-8, 112 pagini. [ROEU96]. Eugen Rotariu Limbajul Java, 1996. [RUBK82]. Rusu A, Bo N., Kiss A., Topografie-Geodezie EDP Bucureti, 1982. [SAM96]. Mircea Srbu, Analiza multidimensional. http:www.byte.ro/byte96-03/datawar4.html [SEKH94]. Khoshafian Setrag Object Oriented Databasses, pub. John Whiley 1994, UK. [SIMA98]. Dicionar modern de informatic, Sisteme multiageni, Universitatea Politehnica Bucureti, www.cs.pub.ro/~dict/sisteme_multiagenti/ sisteme_multiagenti.html [SPAS02]. Prof. Stefano Spaccapretra, Bases de Donnees Avancees - SGBD deductifs, Ecole Polytechnique Federale de Lausanne, http//lbd.epfl.ch/f/teaching/courses/poly3/index.html [SV1998]. Prefectura Judeului Suceava Carta verde a judeului Suceava, vol. 1-III, 1998. [SV2001]. Prefectura Judeului Suceava Judeul Suceava. Programul de dezvoltare economic i social pe anul 2001, 2001. [SV2003] Statistic Teritorial, Institutul Naional de Statistic, Ediia 2003. [TACU98]. Alecsandru Puiu Tacu, Romul Vancea, tefan Holban, Aurel Burciu, Inteligena Artificial. Teorie i aplicaii n economie., Editura Economic, Bucureti, 1998. [TEHN02]. prof. dr. ing. H. N .Teodorescu Curs de Reele Neuronale, Universitatea Gh. Asachi, Iai.

87

[THK95]. Kurt Thearling, From Data Mining to Data Base Marketing, White Paper, 95/02, October 1995, Data Inteligent Group Pilot Software. http://www.santafe.edu/~kurt/wp9502.html [ULMM90]. Jeffrey D. Ullman, Deductive Databases: Achievements and Future Directions, Stanford University, Stanford, California, 1990. www.cs.ucla.edu/~zaniolo/papers/ [VAHO89]. Romul Vancea, tefan Holban, Dan Ciubotariu, Recunoaterea Formelor Aplicaii, Ed. Academiei R.S.R. 1989. [VAHO95].R.Vancea, t. Holban, V.Vajnovzki, F. Iancu, Considerations sur le systemes experts avec controle flou. Inteligence Artificielle, Universite de Bourgogne, mars 1995, pp.1-23 Dijon France. [ZACS03]. Marian Zaharia, Claudia Crstea, Liana Slgean, Inteligena artificial i sistemele expert n asistarea deciziilor economice, ISBN 973-590-870-0, Ed. Economic, Bucureti, 2003. [ZANI90]. Carlo Zaniolo, Deductive Databases Theory Meets Practice, 3500 West Balcones Center Drive, Austin, Texas, USA, 1990, www.cs.ucla.edu/~zaniolo/papers/ [ZEMK99]. Zemke, F., Kulkarni, K., Witkowski, A., Lyle, B. - Introduction to OLAP functions, ISO/IEC JTC1/SC32 WG3:YGJ, ANSI NCITS H2-99-154, Apr. 1999 .

88

S-ar putea să vă placă și