Sunteți pe pagina 1din 23

Baze de date orientate obiect

Curs 4

Structura modelului orientat obiect

Clase tipuri generice de obiecte Obiectele instanieri ale claselor Ierarhii de clase clase interconectate prin motenire

Definirea clasei - specificarea metadatelor n schema bazei de date - schema bazei de date cuprinde si toate clasele care au fost definite

- 2 componente: - variabile - tipuri de baz - tipuri definite de utilizator - metode - operaii cu obiectele acelei clase

Bazele de date orientate obiect = aplicarea principiilor i metodelor orientate-obiect pentru stocarea i regsirea datelor

Schema unei BDOO - mulimea claselor definite pentru gestiunea acelei baze de date - ierarhiile acelor clase

Schema unei BDOO - Se poate modifica dinamic, funcie de cerinele aplicaiei - Modificrile: - trebuie: - specificate - implementate - dou tipuri: - modificri ale clasei (definiia, atributele, metodele) - modificri ale ierarhiei claselor

Schema bazei de date - extins prin adugarea de noi clase

Obiectul - ncorporeaz structura i metodele clasei - are asociat un identificator unic, conferit de sistem

Operaiile modelului orientat obiect - creare de clase - actualizarea claselor (modificarea, tergerea) - modificarea metodelor - modificarea obiectelor (utiliznd metode dedicate) - comunicarea ntre obiecte, prin mesaje (solicitri de apeluri ale anumitor metode) - trimiterea unui mesaj ctre mai multe obiecte. - acelai mesaj poate genera comportamente diferite din partea unor obiecte diferite (polimorfism)

Reguli de integritate al modelului orientat obiect 1. toate obiectele trebuie s respecte protocolul specificat la definirea clasei lor - un obiect poate rspunde doar la mesajele permise clasei a crei instaniere este. 2. accesul din exterior la obiecte se face doar prin mesajele permise - restul metodelor / proprietilor sunt ncapsulate 3. identificatorul unui obiect asigur integritatea referirii la obiect - orice obiect are un identificator (cheie) - dac un obiect este ters, se terge i identificatorul lui - la tergerea unui obiect, trebuie terse i obiectele la care se refer acesta

Comparaie ntre modelul orientat obiect i cel relaional Din punctul de vedere al structurii: Model orientat obiect Ierarhie de clase Definirea clasei Obiect Proprietate / variabila a clasei Model relaional Schema bazei de date Definirea tabelei Tuplu / nregistrare Coloan / cmp Cheie primar -

Identificatorul de obiect Motenire de clas

Comparaie ntre modelul orientat obiect i cel relaional Din punctul de vedere al operaiilor: Model orientat obiect Definirea, tergerea sau modificarea unei clase sau variabile de instaniere Definirea, tergerea sau modificarea metodei Crearea unui obiect Transmitere/primire de mesaje Metode special create Model relaional Definirea, tergerea sau modificarea unei relaii sau a unui cmp Inserarea, adugarea unei nregistrri Adugarea unui tuplu / nregistrri Operatori relaionali (selecie, jonciune etc.)

Comparaie ntre modelul orientat obiect i cel relaional Din punctul de vedere al regulilor de integritate:

Model orientat obiect Protocol de obiect ncapsulare Identificator de obiect -

Model relaional

Integritatea entitii

Principii de baz ale unui SGBDOO

1. Un SGBDOO trebuie s utilizeze metode ce aparin claselor din BDOO clasele trebuie s fie compacte, ncapsulate i ermetizate ncapsularea - asocierea dintre metode i datele prelucrate - poate scdea numrul de accesuri la datele din baza de date

Principii de baz ale unui SGBDOO

2. Un SGBDOO trebuie s aib toate avantajele SGBD-urilor relaionale

- accesul la date prin intermediul unui limbaj de interogare (SQL) - independena aplicaiilor fa de structura datelor - ntr-un SGBDOO accesul la date se face mai mult prin interfee cu utilizatorul - obiectele se acceseaz prin pointeri

Principii de baz ale unui SGBDOO

3. SGBDOO trebuie s fie deschise ctre alte sisteme - posibilitatea de interfaare cu baze de date din alte SGBD-uri

- interconectibilitate cu diverse limbaje - C#, C++, Java - pentru interogri - SQL

Avantaje i limitri ale SGBDOO Obiecte i relaii compuse - un obiect poate conine n structura sa alte obiecte - tip de dat complex - un obiect este o reprezentare mai fidel a entitii din lumea real pe care o modeleaz - gestiunea mai bun a datelor complexe, interconectate

Avantaje i limitri ale SGBDOO Ierarhia de clas - similar cu modelul din lumea real, organizat ierarhic - uor de reprezentat relaii de tip printe descendent - descrierea unei subcategorii (a unei subclase) nu implic copierea / repetarea proprietilor unei categorii cu grad mai nalt de generalitate - acces rapid i facil la componentele unei ierarhii

Avantaje i limitri ale SGBDOO

Interfaarea mai facil cu sisteme / aplicaii care nu sunt strns legate de domeniul bazelor de date - conversia obiectelor ctre alte structuri / modele de gestiune a datelor e mai facil dect n cazul tabelelor - tabele sunt mai dificil de mapat pe alte structuri de date (multe etape intermediare) - nu este necesar un limbaj de interogare pentru un SGBDOO (obiectele se pot accesa folosind limbaje imperative de uz general C++, C#, Java etc.)

Avantaje i limitri ale SGBDOO Identitatea obiectelor se asigur mai uor - SGBD relaionale utilizeaz chei, care trebuie gestionate de utilizator - SGBDOO asigur identitatea i unicitatea obiectelor n mod transparent fa de utilizator (prin conferirea de Object Ids OID) - posibilitate redus de apariie a erorilor - nu exist limitri cu privire la valorile care pot fi reinute ntr -un obiect

Avantaje i limitri ale SGBDOO Un model de date unitar - ntr-un SGBDOO nu este necesar separarea modelului bazei de date de modelul aplicaiei - datele pot fi strns corelate cu modul de gestiune al lor (cu operaiile care se pot efectua cu acestea) - componentele care stocheaz datele i cele care le gestioneaz pot fi obiecte diferite din acelai sistem

Avantaje i limitri ale SGBDOO Modificrile aduse schemei pot fi greu de implementat - adugarea / modificarea unei clase persistente - actualizare a aplicaiei - actualizri ale claselor care interacioneaz cu / depinde de clasa nou creat / modificat - actualizrile pot fi consumatoare de timp - modificarea schemei necesit de cele mai multe ori recompilarea intregii aplicaii

Avantaje i limitri ale SGBDOO Dependena de limbaj - Un SGBDOO este strns legat de limbajul care acceseaz datele prin intermediul API-ului (Application Programming Interface)

- datele dintr-un SGBDOO sunt accesibile printr-un anumit limbaj, utiliznd un anume API

Avantaje i limitri ale SGBDOO Tehnologia este (nc) incomplet - insuficient dezvoltat modul de gestiune al unui numr foarte mare de obiecte

- standardul nu e complet

- limbaj de interogare incomplet - OQL (Object Query Language) - IDE-urile moderne nu fac o verificare complet a semanticii i sintaxei codului - nu se face o verificare complet a tipului de dat (o variabil creia utilizatorul i schimb tipul de dat n mod eronat va cauza erori la runtime)

Avantaje i limitri ale SGBDOO

- modificrile la nivelul structurii claselor nu se propag n restul aplicaiei (modificrile aduse unui cmp trebuie efectuate manual n afara clasei) - nu exist un suport explicit pentru crearea de componente din interogri reutilizabile - doar prin concatenarea mai multor interogri simple - nu se pot uni dou clase la fel ca n cazul tabelelor (join) - codul este nc susceptibil atacurilor sql injection