Limbajul de interogări orientat pe obiecte (OQL) este un mijloc declarativ de accesare a unei baze de date orientate pe obiecte utilizând o sintaxă asemănătoare SQL. Nu oferă operatori de actualizare explicită, deoarece astfel de funcții sunt furnizate operațiilor definite în tipurile de obiecte. La fel ca în cazul SQL, OQL poate fi folosit ca limbă independentă sau ca limbă ale cărei operatori sunt încorporați în programe într-un alt limbaj de bază, pentru care standardul ODMG definește ordinea obligatorie. În prezent, sunt acceptate limbile de bază Smalltalk, C ++ și Java. Limba OQL poate invoca operațiunile programate în aceste limbi. O interogare în OQL este o funcție de furnizare a unui obiect al cărui tip poate fi derivat logic pe baza operatorului care face parte din expresia pentru acea interogare. Înainte de a discuta despre crearea interogărilor OQL, trebuie mai întâi să vă familiarizați cu regulile de creare a expresiilor.
Expresia pentru definiția interogării este "DEFINE Q AS e", unde Q este numele cererii și "e" este expresia de interogare.
Expresia poate consta din următoarele componente:
- atomic literal, de exemplu 10, 16.2, "x", "abcde", adevărat, zero;
- variabila iteratorului din clauza SELECT-FROM-WHERE a clauzei SELECT-FROM-WHERE, de exemplu e ca x sau ex sau x în e, unde e este o colecție de tipuri (T) și x este un obiect de tip T;
- interogare expresie interogare.
Dezvoltatorii limbii s-au bazat pe următoarele principii de bază:
- OQL se bazează pe modelul obiect ODMG.
- OQL este foarte aproape de SQL / 92. Extensiile se referă la concepte orientate pe obiecte, cum ar fi obiecte complexe, identificatori de obiecte, expresii ale căilor, polimorfism, invocarea operațiilor și legarea amânată.
- OQL furnizează primitive de nivel înalt pentru a lucra cu seturi de obiecte, dar în plus, există primitive la fel de eficiente pentru lucrul cu structuri, liste și matrice.
- OQL este un limbaj funcțional care permite compilarea nelimitată a operațiilor, în cazul în care operanzii nu depășesc limitele sistemului de tip. Aceasta este o consecință a faptului că rezultatul oricărei interogări are un tip aparținând modelului de tip ODMG și, prin urmare, se poate aplica o nouă interogare la rezultatul interogării.
- OQL nu este complet computational. Este un limbaj de interogare simplu.
- Operatorii limbii OQL pot fi chemați din orice limbaj de programare pentru care normele obligatorii sunt definite în standardul ODMG. În schimb, în interogările OQL, pot exista apeluri la operații programate în aceste limbi.
- OQL nu definește operațiile de actualizare explicită, ci utilizează apelurile către operațiile definite în obiecte în scopul actualizării.
- OQL oferă acces declarativ la obiecte. Din acest motiv, interogările OQL pot fi ușor optimizate.
26 Caracteristicile arhitecturii OO-DBMS: modalități de accesare a obiectelor în memoria externă, variante de arhitectură client-server, managementul metodelor în OODBMS
In timp ce RDBMS arhitectura foarte asemănătoare (orientare pe o companie client-server, bazându-se pe indicii, procesorul efectuează expresiile algebrice relaționale) au caracteristici și performanțe și scalabilitate, care diferă printr-un procent mic, arhitecturi OODB diferă foarte mult și prezintă caracteristici destul de diferite. După atâția ani, timp în care oamenii au învățat că toate RDBMS se comportă aproape identic, era destul de firesc să aplice aceste constatări OODBMS și declară că acestea sunt aproape identice. Când se folosește această ipoteză, în cazul în care orice deschizător de drumuri pentru a alege o anumită bază de date obiect care este potrivesc prost nevoilor aplicațiile sale ar putea veni cu ușurință la concluzia că nici o bază de date obiect nu va fi în măsură să îndeplinească aceste nevoi. Aceste raționament ilogic au condus la concepții greșite despre baza de date obiect: acestea sunt prea lente, nu asigură un nivel ridicat de paralelism, Proporțiile nu să se ocupe de volume mari de date, etc. și altele asemenea. Toate acestea este greșit, dar realitatea este că doriți să analizeze caracteristicile aplicației cu atenție și să înțeleagă ce arhitectura ei OODBMS este cea mai relevantă. La selectarea corectă a performanței arhitecturii bazei de date și scalabilitate poate fi crescută prin ordine de mărime, mai degrabă decât procente, la fel ca în implementarea relațională. După ce a înțeles acest lucru, analizăm diferențele în arhitectura bazei de date de obiect pentru a ajuta utilizatorii să ia decizii care să conducă la alegerea tehnologiei de succes.