În bazele de date orientate pe obiecte (OODB), utilizatorii pot seta operațiuni pe o anumită bază de date, care este alcătuită din obiecte care pot fi de o mare varietate de tipuri și pentru care sunt setate operațiuni. Ei pot gestiona eficient informații binare, cum ar fi obiectele multimedia. Un alt avantaj suplimentar al OODB este că poate fi programat cu ușoare diferențe procedurale fără a afecta întregul sistem.
Condiții preliminare pentru crearea standardului
Istoria bazelor de date OODB orientate pe obiecte începe la sfârșitul secolului trecut. Ele au fost create pentru a răspunde nevoilor noilor aplicații. Presupunerea a fost că bazele de date orientate pe obiecte ar revoluționa sistemele software în anii 1990. Acum este clar că nu este cazul. Cu toate acestea, renașterea acestui concept prin comunitățile de software liber și identificarea aplicațiilor potrivite pentru acesta motivează o revizuire a caracteristicilorOODB, care este o alternativă la bazele de date relaționale omniprezente.
Orientat pe obiect oferă flexibilitatea de a gestiona unele sau toate cerințele și nu se limitează la tipurile de date și limbajele de interogare ale bazelor de date tradiționale. O caracteristică cheie a OODB-urilor este capacitatea pe care o oferă dezvoltatorului, permițându-i acestuia să specifice atât structura obiectelor complexe, cât și operațiunile aplicației. Un alt motiv pentru crearea OODB-urilor este utilizarea tot mai mare a limbilor pentru dezvoltarea de software.
Bazele de date au devenit fundamentul multor sisteme informatice, dar bazele de date tradiționale sunt greu de utilizat atunci când aplicațiile care le accesează sunt scrise în C++, Smalltalk sau Java. De exemplu, bazele de date orientate pe obiecte 1C au fost concepute astfel încât să poată fi integrate direct cu aplicațiile care utilizează limbaje orientate pe obiecte prin adoptarea conceptelor acestora: Visual Studio. Net, C++, C, Microsoft SQL Server și altele.
Principalul avantaj al OODB este eliminarea completă a necesității de RMs1 (impedanță) cu îmbunătățiri ulterioare ale performanței.
Defecte:
- Mecanisme de consultare foarte primitive, nicio platformă acceptată auto-standard.
- Nu pot stoca proceduri deoarece obiectele pot fi accesate numai în client.
- Immaturitate pe piață.
- Fără grupare fizică a obiectelor.
Paradigma obiectului
Bazele de date orientate pe obiecte sunt baze de date programabile care stochează date complexe și relațiile acestora direct, fără a atribui rânduri și coloane, ceea ce le face mai potrivite pentru aplicațiile care funcționează cu loturi mari. Obiectele au relații multi-la-mulți și sunt accesibile prin utilizarea pointerilor care sunt asociate cu ele pentru a stabili relații. Ca orice programabil, OODB oferă un mediu de dezvoltare a aplicațiilor și un depozit persistent gata de exploatare. Stochează și manipulează informații care pot fi digitizate sub formă de obiecte, oferă acces rapid și oferă capabilități excelente de procesare.
Concepte de bază utilizate într-o bază de date orientată pe obiecte:
- identitate obiect;
- tip de constructor;
- compatibilitate lingvistică;
- ierarhii de tip și moștenire;
- procesează obiecte complexe;
- polimorfism și supraîncărcare operator;
- creare versiuni.
Pentru a lua în considerare pe deplin toate aspectele care caracterizează o bază de date orientată pe obiecte, este important să rețineți toate paradigmele obiectelor importante:
- Încapsularea este o proprietate care vă permite să ascundeți informații pentru alte obiecte, prevenind astfel accesul incorect sau conflictele.
- Moștenirea este o proprietate prin care obiectele moștenesc comportamentul într-o ierarhie de clasă.
- Polimorfismul este o proprietate a unei operații cu care poate fi aplicatdiferite tipuri de obiecte.
- Interfața sau semnătura unei operațiuni include numele și tipurile de date ale argumentelor sau parametrilor acesteia.
- Implementarea sau metoda unei operațiuni este specificată separat și poate fi modificată fără a afecta interfața. Aplicațiile utilizator pot lucra cu date apelând operațiunile specificate prin numele și argumentele lor, indiferent de modul în care au fost implementate.
Clasuri și funcționalitate
Când luăm în considerare conceptul de clase în OODB, este necesar să se facă distincția între termenii „clasă” și „tip”. Un tip este folosit pentru a descrie un set de obiecte cu comportament similar. În acest sens, depinde ce operații pot fi numite asupra obiectului. O clasă este o colecție de obiecte care împărtășesc aceeași structură internă, deci definește o implementare, în timp ce un tip descrie cum să o folosești.
Termenul de instanțiere se referă la faptul că instanțierea unei clase poate fi folosită pentru a produce un set de obiecte care au aceeași structură și comportament ca și cea stabilită de clasă.
O caracteristică foarte importantă pentru evoluția obiectelor este aceea că își poate schimba clasa, inclusiv atributele și operațiunile, păstrând în același timp identitatea. Acest lucru ar necesita un mecanism care să gestioneze integritatea semantică rezultată.
Moștenirea bazei de date orientate pe obiecte a unei organizații permite ca o clasă să fie definită ca o subclasă a unei superclase deja existente. Acesta va moșteni toate atributele și metodele de la acesta din urmă și poate defini opționalproprii. Acest concept este un mecanism important pentru a sprijini reutilizarea. Aceleași părți ale structurii a două clase diferite pot fi definite o singură dată într-o superclasă comună, astfel că se va scrie mai puțin cod. Există unele sisteme care permit unei clase să fie o subclasă a mai multor superclase. Această caracteristică se numește moștenire multiplă, spre deosebire de moștenirea unică.
Exemplu de bază de date orientată pe obiect
Este adesea util să folosiți același nume pentru metode diferite, dar similare ale superclasei media din clasele de imagine și video. Multe fișiere pot fi vizualizate de diferiți vizualizatori. De multe ori trebuie să vizualizeze toate fotografiile și videoclipurile folosind metoda „vizualizare”, iar programul corespunzător trebuie lansat. Când funcția este apelată și se transmite un link către videoclip, playerul media este lansat. Pentru a implementa această caracteristică, în primul rând, este necesar să se definească operația de „prezentare” în superclasa media comună din clasele imagine și video. Fiecare dintre subclase redefinește operația de căutare pentru nevoile lor specifice. Acest lucru are ca rezultat metode diferite care au același nume de operație. În acest caz, folosirea acestei funcții are un avantaj important.
Structura OODB
Paradigma orientată pe obiecte se bazează pe încapsularea datelor și a codului aferent fiecărui obiect într-un singur modul. Conceptual, toate interacțiunile dintre acesta și restul sistemului sunt realizate folosind mesaje. De aici interfațaîntre ele este determinat de setul permis.
În general, fiecare obiect este asociat cu un set:
- Variabile care conțin date despre obiect și care corespund atributelor modelului ER.
- Mesaje la care răspunde. Fiecare poate avea sau nu parametri, unul sau mai mulți.
- Metode, fiecare dintre acestea fiind un cod care implementează mesaje și returnează o valoare ca răspuns la acesta.
Meseria într-un mediu OO nu implică utilizarea SMS-urilor fizice în rețelele de calculatoare. Dimpotrivă, se referă la schimbul de cereri între obiecte, indiferent de detaliile corecte ale implementării acestora. Uneori, o expresie apelează o metodă pentru a declanșa faptul că un mesaj a fost trimis către un obiect și folosește execuția metodei corespunzătoare.
Identitatea obiectului
Sistemul de baze de date orientat pe obiecte oferă o identificare unică pentru fiecare obiect independent stocat în baza de date. De obicei, este implementat folosind un identificator de obiect unic sau OID generat de sistem. Valoarea OID este invizibilă pentru utilizatorul extern, dar sistemul o folosește intern pentru a gestiona legăturile dintre obiecte.
Principala proprietate a unui OID este de a fi imuabil. Valoarea OID pentru un anumit obiect nu ar trebui să se schimbe niciodată. Aceasta păstrează identitatea lumii reale care este reprezentată. De asemenea, este de preferat ca fiecare OID să fie folosit o singură dată, chiar dacă este eliminat din baza de date, OID-ul său nu trebuie atribuit altuia. De asemenea, este adesea considerat nepotrivit să se bazeze pe un fizicadresa obiectului aflat în stocare, deoarece reorganizarea acestora în baza de date poate modifica OID-ul. Cu toate acestea, unele sisteme folosesc adresa fizică ca OID pentru a crește eficiența regăsirii obiectelor. Un cadru orientat pe obiecte impune automat constrângeri relaționale, de obicei mai aplicabile: domeniul, cheia, integritatea obiectului și integritatea referențială.
Trei constructori principali
În OODB, valorile sau stările obiectelor complexe pot fi create din altele folosind constructori de anumite tipuri. O modalitate de a le reprezenta este să ne gândim la fiecare ca un triplet (i, c, v), unde i este identificatorul unic al obiectului (OID), c este constructorul, adică un pointer către modul în care este valoarea obiectului. creat și v este valoarea sau starea obiectului. Pot exista mai mulți constructori, în funcție de modelul de date și de sistemul OO.
Trei constructori de bază de baze de date orientate pe obiecte:
- atomi;
- tupli;
- seturi.
Alte utilizări mai frecvente sunt listele și diagramele. Există și domeniul D, care conține toate valorile atomice de bază disponibile direct pe sistem. Acestea includ de obicei numere întregi, numere reale, șiruri de caractere, date și orice alt tip de date pe care sistemul le gestionează direct. Atât structura obiectelor, cât și operațiile sunt incluse în definițiile clasei.
Compatibilitate cu limbaje de programare
Conceptele de bază ale bazelor de date orientate pe obiecte sunt utilizate înca instrumente de proiectare și codificate pentru a funcționa cu baza de date.
Există mai multe limbi posibile în care aceste concepte pot fi integrate:
- Extinderea unui limbaj pentru procesarea datelor, cum ar fi SQL, prin adăugarea de tipuri complexe și OOP. Sistemele oferă extensii orientate pe obiecte pentru sistemele relaționale, numite sisteme relaționale orientate pe obiecte.
- Utilizarea unui limbaj de programare orientat pe obiecte existent și extinderea acestuia pentru a lucra cu baze de date. Ele sunt numite limbaje de programare persistente și permit dezvoltatorilor să lucreze direct cu datele fără a fi nevoiți să treacă printr-un limbaj de procesare a datelor precum SQL. Ele sunt numite persistente deoarece datele continuă să existe după terminarea programului care le-a creat.
Când decideți ce opțiune să utilizați, rețineți că limbajele persistente tind să fie puternice și este relativ ușor să faceți greșeli de programare care dăunează bazei de date. Complexitatea limbilor face dificile optimizările automate la nivel în alt, cum ar fi reducerea I/O pe disc. În multe aplicații, capacitatea de a face interogări declarative este importantă, dar limbajele persistente în prezent nu permit astfel de interogări fără probleme.
Ierarhia tipurilor de moștenire
Schemele de baze de date orientate pe obiect necesită de obicei un număr mare de clase. Cu toate acestea, mai multe clase sunt similare între ele. Pentru a permite o reprezentare directă a asemănărilor dintre ele, trebuie să punețile într-o ierarhie de specializări. Acest concept este similar cu modelele ER. Specializările de clasă sunt numite subclase, care definesc atribute și metode suplimentare pentru o clasă existentă. Obiectele create cu subclase moștenesc totul de la părinte. Este posibil ca unele dintre aceste caracteristici moștenite să fi fost împrumutate de la cele mai sus în ierarhie.
Obiectele sunt considerate complexe deoarece necesită o cantitate mare de spațiu de stocare și nu fac parte din tipurile de date standard pe care Managementul bazelor de date orientate pe obiecte (OODBS) le oferă de obicei. Deoarece dimensiunea obiectelor este semnificativă, SOOBMS poate primi o parte dintr-un obiect și o poate furniza unei aplicații înainte de a achiziționa întregul obiect. De asemenea, poate folosi metode de memorie tampon și cache pentru a obține părți ale unui obiect din timp, înainte ca o aplicație să le poată accesa.
OODB permite utilizatorilor să creeze noi tipuri care includ atât structură, cât și operațiuni, în acest caz sistemul de tip extensibil. Puteți crea biblioteci de tipuri noi definindu-le structura și operațiunile. Multe dintre ele pot stoca și primi un obiect structurat mare sub formă de șiruri și caractere sau biți, care sunt transmise „ca atare” programului de aplicație pentru interpretare.
Metoda poate accesa direct atributele obiectului țintă după nume, inclusiv orice moștenit de la clasele părinte, dar trebuie să acceseze atributele altor obiecte cu semnale secundare. Conceptul vă permite să asociați același nume de operator sau simbol cudouă sau mai multe implementări diferite ale acestuia, în funcție de tipul de obiecte la care se aplică.
Aplicații de construcție
Multe aplicații de baze de date care folosesc sisteme OO necesită mai multe versiuni ale aceluiași obiect. De obicei, activitățile de întreținere sunt aplicate unui sistem software pe măsură ce cerințele acestora se modifică și implică schimbarea unor module de dezvoltare și implementare. Dacă sistemul rulează deja și dacă unul sau mai multe module trebuie modificate, dezvoltatorul trebuie să creeze o nouă versiune a fiecăruia dintre ele făcând modificări.
Rețineți că pot exista mai mult de două versiuni ale unui obiect, în cazul în care sunt necesare două în plus față de modulul original. Versiunile proprii ale aceluiași modul software pot fi actualizate în același timp. Aceasta se numește proiectare de baze de date paralelă orientată pe obiecte. Cu toate acestea, întotdeauna vine un moment în care trebuie să fie comasate pentru ca OODB hibrid să încorporeze modificările care au fost făcute, astfel încât acestea să fie compatibile.
Condiții orientate pe obiect
Toate sistemele informatice trebuie să aibă proprietăți ale arhitecturii lor pentru a fi luate în considerare. De exemplu, un sistem trebuie să aibă tabele pentru a fi considerat relațional. OODB nu face excepție și conține unele proprietăți de bază ale arhitecturii obiectului. Cu toate acestea, în lumea reală, multe dintre aceste proprietăți sunt discutate și unele, cum ar fi moștenirea multiplă, sunt considerate îmbunătățiri ale modelului bazei de date orientate pe obiecte, mai degrabă decâtca parte a liniei de bază. De exemplu, în limbajul orientat pe obiect Smalltalk, moștenirea multiplă nu este acceptată, chiar dacă este considerată parte a arhitecturii obiectului.
Metodele pentru o clasă definesc un set de operații care pot fi efectuate asupra unui obiect. De exemplu, atunci când este aplicat unui obiect, fie returnează o valoare, fie efectuează o operațiune pentru a actualiza valorile. Uneori metodele nu-l returnează. Dacă metoda ar fi concepută pentru a actualiza numărul de pasageri pentru un vehicul, nu ar fi returnată nicio valoare, dar elementul de date din țintă l-ar modifica.
Obiectele sunt un concept fundamental în OODB. În esență, obiectele sunt o reprezentare abstractă a lucrurilor din lumea reală care sunt stocate în ele. Un obiect este o instanță a unei clase în sensul că este exclus din definiția sa.
Puteți să vă gândiți la un obiect ca la un pachet autonom care are trei părți:
- Informații personale proprii, valorile datelor.
- Proceduri private care vor manipula valorile prin definiția clasei.
- Deschideți interfața pentru ca acest obiect să poată comunica cu alții.
exemple OODB
Folosirea OODB simplifică conceptualizarea, deoarece este mai natural să reprezinte informațiile care trebuie stocate. Pentru a modela structura sau logica unei baze de date, utilizarea diagramelor de clase vă permite să introduceți clase cu relațiile lor structurale și moștenirea. Pentru a modela o parte din dinamică, interacțiune șicomportamentul dintre obiecte, se va folosi o diagramă de secvență pentru a reprezenta interacțiunea dintre obiectele aflate într-o relație temporară, descriind stările posibile astfel încât acestea să poată fi găsite având în vedere starea schimbată după producerea evenimentului.
Un exemplu de bază de date orientată pe obiecte este prezentat mai jos.
Au un nume și o viață întreagă, care poate fi temporară sau permanentă. Cheia OODB este capacitatea pe care o oferă dezvoltatorului de a specifica câte structuri și operațiuni le vor fi aplicate. Există flexibilitate și suport pentru gestionarea tipurilor de date complexe. Puteți crea clase și subclase, de exemplu, baza de clienți poate avea o subclasă a link-ului acestui client și va moșteni toate atributele și caracteristicile clasei originale, această abordare vă permite să procesați rapid și flexibil date complexe.