CATEGORII DOCUMENTE |
Asa dupa cum s-a mai precizat, fiecare obiect are o identitate unica si stabila, numit identificatorul obiectului OID (Object Identifier), care este independenta de valoarea actuala a obiectului.
OID-ul este generat de catre sistem si atribuit obiectului in momentul crearii/incarcarii bazei de date. El este invizibil pentru utilizatori, independenti de valorile atributelor sale si stabil pe toata durata de existenta a obiectului si chiar mai mult decat atat, daca obiectul respectiv este sters din baza de date OID-ul acelui obiect nu se atribuie ulterior unui alt obiect.
Observam asemanarea si deosebirea dintre OID si cheia primara a unei relatii. Ca si OID-ul cheia primara ofera posibilitatea identificarii unice a oricarui tuplu/obiect, insa valoarea cheii primare este unica doar la nivelul unei tabele si nu la nivelul intregului sistem ca si OID-ul, iar pe de alta parte, valoarea cheii primare poate fi schimbata in timp.
Exemplu, presupunem un obiect "automobil" avand cheia primara "numarul de inmatriculare in circulatie". Totodata presupunem faptul ca proprietarul vinde "automobilul" unei alte persoane. Cu aceasta ocazie poate fi schimbat "numarul de inmatriculare", deci implicit valoarea cheii primare, desi "automobilul" ramane fizic acelasi si chiar in aceiasi baza de date la politie. In contextul bazelor de date orientate obiect OID-ul automobilului ramane acelasi doar ca se schimba proprietarul.
Faptul ca OID-ul este unic la nivelul intregului sistem si invariabil in timp prezinta o importanta deosebita sub aspectul asigurarii mai facile a integritatii entitatilor si a celor referentiale.
Daca in urma stergerii unui obiect din baza de date OID-ul acelui obiect ar fi atribuit unui alt obiect, o referinta anterioara la OID-ul obiectului sters s-ar putea mentine, insa de aceasta data OID-ul referit ar apartine unui alt obiect. Deci in realitate nu ar fi respectata si mentinuta integritatea referentiala. Exemplu: presupune o relatie referentiala intre obiectul "Parinte" si "Copil". Daca Parintele unui copil ar fi sters din baza de date si OID-ul acestui ulterior ar fi atribuit altui Parinte, in contextul posibil de a se mentine relatia referentiala s-ar ajunge la situatia in care un copil ar apartine unui alt parinte decat cel initial declarat.
O alta problema ce merita a fi prezentata, izvoreste din faptul ca identificatorii OID ca mecanism pentru identitatea obiectelor sunt independente de continut, in sensul ca identificatorii OID nu depind in nici un fel de datele continute in obiect. Intr-o astfel de situatie, doua obiecte pot parea utilizatorului aceleasi (ele avand toate valorile atributelor aceleasi) si totusi au identificatori OID diferiti, fiind astfel obiecte diferite. Tinand seama de faptul ca identificatorii OID sunt vizibili pentru utilizatori, atunci ne intrebam cum poate distinge utilizatorul aceste doua obiecte? Dintr-o astfel de stare putem desprinde concluzia ca sunt inca necesare cheile primare, pentru a permite utilizatoului sa distinga obiectele.
In incheierea acestui paragraf, facem precizarea ca exista o serie de mecanisme, tehnici si algoritmi pentru identitatea obiectelor, cum ar fi: identitatea obiectelor bazate pe valoare, identitatea folosind numele variabilelor si pointerii sau adresele de memorie virtuala, identificatoi OID logici si fizici, tehnici de mixare a pointerilor etc. Despre astfel de probleme, si chiar mai multe, cei interesati pot consulta o serie de alte materiale [1, 2, 3, 4].
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 828
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved