Noi modele de date şi aplicaţiile lor referat




Dezvoltarea fără precedent a aplicaţiilor bazate pe Internet a dus la apariţia unor noi modele de date. Astfel, există surse de date, ca de pildă World-Wide-Web-ul, pe care am dori să le interogăm ca baze de date, dar care nu pot fi constrânse de o schemă. Majoritatea interogărilor web-ului folosesc tehnici de regăsire a informaţiei pentru a găsi pagini după conţinut. Sunt însă puţine posibilităţi de formulare a interogărilor în vederea exploatării structurii web-ului şi, deoarece aceasta nu este conformă cu nici un model de date standard, este necesară o metodă de descriere a acestei structuri.

Modelul de date semistructurat a fost propus în vederea satisfacerii acestei necesităţi. Ideea centrală în modelul semistructurat este de a reprezenta datele sub forma unui graf etichetat. Structura documentelor hipertext este captată interpretând arcele grafului drept legături. Etichetele arcurilor pot fi atât valori (de tip întreg, şir de caractere şi alte tipuri de bază, precum şi de tip de date abstract, ca video, audio, etc.) cât şi nume de atribute (Film, Titlu, Regizor, Actor), etc. modelând de exemplu cunoscuta bază de date cinematografică "The internet movie database".




Există numeroase limbaje de interogare pentru modelul semistructurat. Toate aceste limbaje sunt construite pe baza ideii de expresii asociate căilor (path expressions). Acestea sunt expresii regulate ce exprimă căi generice în graful etichetat, permiţând astfel traversarea grafului şi colecţionarea tuturor etichetelor ce satisfac o anumită condiţie de selecţie. Dacă, de exemplu, condiţia de selecţie este "eticheta este un şir de caractere, şi arcul său este adiacent unui arc etichetat actor", atunci rezultatul acestei interogări va conţine numele tuturor actorilor din baza de date (printre altele).

Limbajele semistructurate pot fi clasificate în două categorii, după strategia de calcul adoptată. Prima categorie, dezvoltată oarecum ad-hoc, se bazează pe modelarea grafurilor în modelul relaţional şi apoi pe interogarea lor într-un limbaj relaţional de tip SQL. A doua categorie porneşte de la un limbaj bazat pe o noţiune formală de calcul cu date semistructurate: limbajul UnQL (Unstructured Query Language) este reprezentantul acestei categorii. Acest limbaj porneşte de la "recursivitatea structurală", forma naturală de recursivitate asociată cu tipul de date grafuri etichetate. Datorită bazei sale teoretice, UnQL este capabil de restructurări complexe, în adâncime, spre deosebire de limbajele din prima categorie, care se limitează la scoaterea la suprafaţă a datelor din graf, fără însă a crea noi structuri. Această capacitate de restructurare stă la baza proiectului STRUDEL care propune limbajul StruQL (Structured Querz Language) de gestiune a sit-urilor de web. Un alt avantaj al bazei teoretice a limbajelor UnQL şi StruQL este posibilitatea efectuării optimizărilor specifice acestui nou model de date. Limbajele din prima categorie pot beneficia doar de optimizările specifice modelului relaţional, deci dezvoltate pentru alt model de date şi în consecinţă nu atât de folositoare.

Integrarea datelor provenind din surse eterogene (cu scheme disparate sau, mai grav, modelate diferit), este un domeniu de cercetare care, deşi consacrat de mai bine de un deceniu, continuă să rămână în centrul atenţiei multor cercetători. Cercetarea în acest domeniu este motivată de absenţa unui model de date atotcuprinzător, fapt ce îngreuiază dezvoltarea de software care converteşte date între două modele diferite.

O complicaţie adiţională este reprezentată de faptul că majoritatea datelor stocate electronic nu se află în baze de date convenţionale, ci în sisteme de fişiere, programe de bibliotecă, de poştă electronică, foi de calcul etc., care prezintă capacităţi de interogare limitate.

Pentru a arăta tendinţele în domeniu să urmărim proiectul TsimSMI de la Stanford. Acesta îşi propune integrarea atât a surselor de date care sunt conforme cu modelele de date standard (relaţional, orientat pe obiecte), cât şi a surselor de date cu capacităţi de interogare limitate. Aceste surse neconvenţionale sunt împachetate în aşa-numiţi wrappers (înfăşurători). O astfel de înfăşurătoare asigură interfaţa între sursa de date cu capacităţi de interogare limitate şi aplicaţia care o interoghează. Aplicaţia trimite către sursă interogări într-un limbaj expresiv cum ar fi SQL sau OQL şi aşteaptă rezultatul într-un format numit OEM (Object Exchange Model).

OEM foloseşte grafuri etichetate, ca structură de date, care capturează majoritatea datelor folosite în aplicaţii de baze de date. În acelaşi timp, toate celelalte structuri de date pot fi codificate ca grafuri OEM. Rolul înfăşurătorii constă în:
- interceptarea interogării şi identificarea acelor părţi ale acesteia care pot fi efectuate de către sursă,
- translatarea acestor părţi în limbajul specific sursei,
- recepţionarea şi prelucrarea rezultatelor intermediare în vederea reconstituirii rezultatului interogării originale,
- codificarea rezultatului final în formatul OEM şi transmiterea acestuia către aplicaţie.

Evident, dacă interogarea originală este prea complexă, este posibil să nu poată fi efectuată pornind de la capabilităţile limitate ale sursei. Înfăşurătoarea detectează această situaţie şi anunţă sursa că nu îi poate satisface cererea. Cu cât creşte capacitatea de evaluare a interogărilor în cadrul înfăşurătorii(de exemplu, capacitatea de a efectua operaţii de tip join, proiecţii, selecţii, etc.), cu atât se extinde clasa de interogări pe care le poate satisface combinaţia sursă-ambalaj.



Navigare pe Internet. În anumite situaţii este avantajos să privim bazele de date convenţionale ca fiind semistructurate. Un exemplu este activitatea de navigare în Internet.


În general, utilizatorul nu poate interoga o bază de date fără a-i cunoaşte schema. Din nefericire însă, aceasta este adeseori greu de înţeles, datorită mărimii exagerate (zeci de tabele, de exemplu) şi a terminologiei opace, nestandard, folosite de către proiectanţii bazei de date. Descifrarea schemei ar fi considerabil uşurată de facilitatea de a interoga datele având doar o înţelegere parţială a structurii lor. De exemplu, în cazul bazei de date cinematografice din World-Wide Web "The internet movie database" , următoarele interogări ar fi de folos:


- În care atribut găsim şirul de caractere "Casablanca"?
- Există în baza de date numere întregi mai mari decât 216?
- Ce obiecte din baza de date au un atribut al cărui nume începe cu "act"?

Şi în acest domeniu, modelul semistructurat se dovedeşte a fi folositor. Spre deosebire de modelele de date convenţionale, care diferenţiază între schema (tipul, structura) şi instanţa (valoarea) datelor, modelul de date semistructurat reprezintă cele două tipuri de informaţie în mod uniform, permiţând interogarea lor simultană. Din acest motiv, datele semistructurate se numesc şi autodescriptive.

Cubul de date şi OLAP. Sistemele de suport pentru decizii (Decision support systems) sunt utilizate de către companiile moderne pentru integrarea într-o bază de date centrală data warehouse (magazia centrală de date), a datelor provenind din baze de date mici operaţionale folosite în diferite domenii de activitate/filiale ale companiei.

Datele astfel acumulate sunt analizate în timp real (OLAP: On-Line Analitical Processing) pentru a asista conducerea companiei în luarea deciziilor strategice de dezvoltare (de exemplu, analizând vânzările unui anumit produs pe trimestru şi zonă geografică, se poate stabili o nouă strategie de marketing pentru acest produs).

Datele din magazia centrală de date sunt modelate sub forma unui (hiper)cub de date multidimensional care poate fi analizat la nivelul subcuburilor de granularitate arbitrară. Subcuburile se obţin prin agregarea cuburilor din care provin.

De exemplu, prin însumarea vânzărilor trimestriale pentru fiecare zonă, cubul de date tridimensional reprezentând vânzările pe trimestru şi zona geografică poate fi redus la un subcub bidimensional (plan) reprezentând vânzările pe zona geografică. Agregarea este o operaţie costisitoare, efectuarea ei eficientă pe un volum mare de date reprezentând ţelul principal al cercetării în acest domeniu.

Noi modele tranzacţionale. În mod tradiţional, tranzacţiile modelează unităţi de lucru atomice şi izolate, efectuate asupra datelor sistemului de gestiune a bazelor de date. Izolarea tranzacţiilor nu permite crearea tranzacţiilor complexe, mari, din tranzacţii simple. Acest model a avut succes atâta vreme cât tranzacţiile efectuau un număr mic de operaţii simple asupra datelor cu structură simplă. Aplicaţii ca proiectarea asistată de calculator, automatizarea activităţii de birou, controlul producţiei, gestiunea activităţilor necesită noi modele tranzacţionale, noi metode de gestiune a tranzacţiilor, şi noi limbaje de specificare a tranzacţiilor. Limbajele tranzacţionale sunt limbaje de nivel înalt, de obicei inspirate din logica cu predicate de ordinul întâi.

Dacă limbajele tradiţionale specificau interogări şi actualizări, noile limbaje tranzacţionale se concentrează asupra relaţiei dintre tranzacţii, exprimând dependenţe de tipul: tranzacţia T2 nu poate porni înainte ca T1 să se termine, sau T2 poate începe dacă T1 întoarce o valoare mai mare ca 25.

Un excelent exponent al noii generaţii de limbaje tranzacţionale este Transaction Datalog, un limbaj deductiv care menţine în acelaşi timp toate proprietăţile tranzacţiilor clasice, cum ar fi: persistenţă, atomicitate, izolare, terminare şi rollback (revenire). Limbajul este însoţit de un model teoretic natural şi de o teorie sigură pentru demonstraţii, permiţând astfel demonstrarea echivalenţei între diverse expresii din acest limbaj. Acest fapt este crucial pentru optimizare - care constă din înlocuirea unei planificări cu o alta echivalentă din punct de vedere al efectului său asupra datelor, dar mai eficientă din punct de vedere al costului execuţiei. Mai mult, deoarece putem demonstra că efectul unei tranzacţii complexe asupra setului de date este sau nu cel scontat, se asigură consistenţa datelor.