Interogarea World-Wide-Web-ului
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. Există
î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 capturată interpretând arcele grafului drept legături.
O reprezentare posibilă este cea introdusă în proiectul UnQL[1]. 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ă [2].
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.
Câteva exemple prezentate în literatură sunt [3], [4], [5], [6],
[7]
A doua categorie pornește de la un limbaj bazat pe o noțiune formală
de calcul cu date semistructurate: limbajul UnQL este reprezentantul
acestei categorii [1]. 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[8]
care propune limbajul StruQL 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 surselor de date eterogene
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.
Ultima observație a reprezentat punctul de plecare al proiectului
Tsimmis [9][10] de la Stanford. Proiectul Tsimmis îș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 (ambalaje). Un astfel de ambalaj asigură
interfața între sursa de date cu capacități de interogare limitate
și aplicația care o interoghează. Aplicația trimite către sursa 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 ambalajului 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. Ambalajul 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 ambalajului (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.
Un proiect similar, cu scopul interogării surselor de date structurate
din web este [13].
Cititorul a remarcat desigur similaritatea dintre modelul OEM și
cel semistructurat. Într-adevăr, Lore [11],[12] este un sistem de
interogare a datelor semistructurate, foarte similar cu UnQL, utilizând
un model de date inspirat de OEM.
Navigare în 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[2], următoarele interogări ar fi de folos:
În care atribut găsim șirul de caractere Casablanca?
Există în baza de date î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 semi-structurate se numesc și autodescriptive.
[1] prezintă un elegant limbaj de interogare care permite exprimarea
concisă a acestor interogări.
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ă numită 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 [14] (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
[15]) 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 ([16],[17],[18],[19]).
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ă.
Din păcate, modelul tranzacțiilor simple nu satisface cerințele
aplicațiilor complexe, în care tranzacțiile trebuiesc combinate și
coordonate pentru a colabora la realizarea unui scop complex. 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. [20] prezintă o clasificare și analiza
detailată a noilor limbaje tranzacționale.
Un excelent exponent al noii generații de limbaje tranzacționale
este Transaction Datalog [21], 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,
faptul că putem demonstra că efectul unei tranzacții complexe asupra
setului de date este sau nu cel scontat, asigură consistența datelor.
Optimizări
Optimizarea limbajelor de interogare a bazelor de date nu este un
domeniu nou, ci dimpotrivă, există încă de la apariția acestora. Datorită
importanței sale, acest domeniu va fi întotdeauna la modă în cercetarea
bazelor de date.
Apariția unui nou model de date atrage după sine o efervescență
în activitatea de cercetare a posibilităților de optimizare a limbajului
de interogare asociat noului model. Referințele bibliografice introduse
în secțiunea anterioară prezintă și primele încercări de optimizare
a noilor limbaje de interogare.
Bibliografie
[1] Peter Buneman, Susan Davidson, Gerd Hillebrand, Dan Suciu, A
Query Language and Optimization Techniques for Unstructured Data,
Proceedings of ACM-SIGMOD International Conference on Management
of Data, Montreal, Canada,June, 1996, pages 505-516
[2]The internet movie database
[3] S. Abiteboul, D. Quass, J. McHugh, J. Widom, J. Weiner, The
lorel query language for semistructured data, Journal of Digital
Libraries,Vol 1 number 1, 1997
[4] L. V. S. Lakshmanan, F. Sadri, I. N. Subramanian,A declarative
language for querying and restructuring the world-wide-web,Post-ICDE
IEEE Workshop on Research Issues in Data Engineering (RIDE-NDS'96),New
Orleans, February,1996
[5] A. O. Mendelzon, G. A. Mihaila, T. Milo, Querying the world Wide
Web, Proc. PIDS '96, December, 1996
[6] M. P. Consens, A. O. Mendelzon, Expressing Structural Hypertext
Queries in Graphlog, Proc. 2nd ACM Conference on Hypertext, Pittsburgh,
November, 1989
[7] S. Cluet, G. Moerkotte,Query processing in the schemaless and
semistructured context, INRIA, 1997
[8] Mary Fernandez, Daniela Florescu, Jaewoo Kang, Alon Levy, Dan
Suciu, STRUDEL: A Web Site Management System,Proc. of the 16th ACM
SIGMOD Symposium on Principles of Database Systems,Tucson, Arizona,
May, 1997
[9] Sudarshan Chawathe, Hector Garcia-Molina, Joachim Hammer, Kelly
Ireland, Yannis Papakonstantinou, Jeffrey Ullman, Jennifer Widom,
The {TSIMMIS} Project:{Integration} of Heterogenous Information Sources,
October, 1994, Tokyo, Japan,Proceedings of the Information Processing
Society of Japan Conference
[10] Yannis Papakonstantinou, Hector Garcia-Molina, Jennifer Widom,
Object Exchange Across Heterogenous Information Sources,Proceedings
of IEEE International Conference on Data Engineering, March, 1995,
251260
[11]J. McHugh, S. Abiteboul, R. Goldman, D. Quass and J. Widom,Lore:
A database management system for semistructured data,Stanford University
Database Group, February,1997
[12] S. Abiteboul, D. Quass, J. McHugh, J. Widom, J. Weiner,The
lorel query language for semistructured data,Journal of Digital
Libraries,Vol 1 number 1, 1997
[13] A. Levy, A. Rajaraman, J. J. Ordille, Querying Heterogeneous
Information Sources Using Source Descriptions,Proc. 22nd International
Conference on VLDB, Mumbai, India, 1996,
[14] Arbor Software, Multidimensional
Analysis: Converting Corporate Data into Strategic Information,White
Paper
[15] J. Xenakis, editor,Mutlidimensional Databases,Application Development
Strategies, April, 1994
[16] J. Gray, A. Bosworth, A. Layman, H. Pirahesh,Data Cube: A Relational
aggregation Operator Generalizing Group-By, Cross-Tab and Sub-Totals,
Microsoft, MSR-TR-95-22
[17] A. Gupta, V. Harinarayan, D. Quass, Aggregate Query Processing
in Data Warehousing Environments, Proc. of the 21st International
VLDB Conference,P 358-369,1995
[18] V. Harinarayan, A. Rajaraman, J. Ullman, Implementing Data Cubes
Efficiently,Proc. ACM SIGMOD, Montreal, Canada, June, 1996
[19] J. R. Smith, Dynamic Assembly of Views in Data Cubes, Proc.
of the International VLDB Conference (to appear), New York, USA, 1998
[20] A. J. Bonner, M. Kifer, An overview of transaction logic, Theoretical
Computer Science, vol 133, pp 205-265,October, 1994
[21] A. J. Bonner, Transaction Datalog: a Compositional Language
for Transaction Programming, Proc. 6th International Workshop on
Database Programming Languages, Estes Park, Colorado, August, 1997