INFO
Sylabus
Standard ODMG, część 6
1. ODMG 2.0: Wiązanie do C++ - charakterystyka
2. Co to jest “niezgodność impedancji”?
3. Założenia projektowe wiązania do C++
4. Podstawowa architektura wiązania
5. Odwzorowanie elementów modelu ODMG na C++
6. C++ ODL
7. Jednokierunkowe związki
8. C++ OML
9. Związki
10. Klasy do obsługi kolekcji
11. C++ OQL
12. ODMG 2.0: przykład w C++
13. ODMG-93 C++: Schowek aplikacji
14 Związki ze środowiskiem OMG ORB
Skorowidz
Wyście:
Wyklad XII. Wprowadzenie do standardu ODMG, część 6:
Wiązanie do C++ (KURS SSR)
I II III IV V VI VII VIII IX X XI XII XIII XIV
« poprzedni punkt   następny punkt »

8. C++ OMLObject Manipulation Language

Założenie: o ile to możliwe, składnia operacji na trwałych obiektach powinna być taka sama, jak składnia operacji na obiektach ulotnych.
K.S. Jak przyznaja sami autorzy ODMG, to załozenie “na razie” nie jest spełnione. A przecież wszyscy wiedzą, najbardziej trwałe są prowizorki...

Obiekty mogą być tworzone (operator new), usuwane i modyfikowane.

1.
void * operator new(size_t size); 
2.
void * operator new(size_t size, const d_Ref_Any &clustering, 
                        const char * typename ); 
3.
void * operator new(size_t size, d_Database *database, 
                        const char * typename );

2 i 3 tworzą trwałe obiekty. Parametr “clustering”: obiekt jest tworzony “blisko” innego obiektu.
Parametr “size”: przewidywany rozmiar reprezentacji obiektu (automatycznie wyznaczany z deklaracji klasy przez specjalna funkcję).
Parametr “typename”: określa typ tworzonego obiektu (K.S. poprzez nazwę typu przekazywaną jako string, ze wszystkimi negatwnymi skutkami dla mocnego typowania)

obj_ref . delete_object();
  Usunięcie obiektu o zadanej referencji obj_ref.

obj-ref .  mark_modified();
Zaznaczenie, że dany obiekt był zmodyfikowany. Pominięcie tej operacji spowoduje, że modyfikacje nie zostaną zapisane do bazy danych. W wielu przypadkach uzycie tej instrukcji nie jest potrzebne, ale czasami jest konieczne.
K.S. Okropne... tryumf przesadnej troski o wydajność nad koncepcją i niezawodnością.

Nazwy obiektów w bazie danych tworzą jedną płaska przestrzeń.
Specjalne funkcje C++ do wyszukiwania obiektów zgodnie z ich nazwami.

Operacje na atrybutach - standardowe C++.

profesor -> nr_ident = następny_id;
Podstawienie;
konieczne jest mark_modified.

Zgodnie z konwencją ODMG, zagnieżdżone obiekty są traktowane jak atrybuty.



« poprzedni punkt   następny punkt »