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 »

1. ODMG 2.0: Wiązanie do C++ - charakterystyka

(1kB) Standardowy język C++, + ODL/OML (Object Manipulation Language)
  • Zunifikowany system typów zarówno dla C++ jak i dla bazy danych
  • Rozszerza C++ poprzez przeładowywanie operatorów
  • ODL/OML respektuje składnię i semantykę języka bazowego
  • Rozszerza system klas języka C++ o klasy obiektów trwałych
(1kB) Koncepcja “sprytnych” wskaźników (smart pointers): każda klasa trwała T ma podporządkowaną klasę d_Ref<T> zawierającą wskaźniki do obiektów klasy T , które działają jak normalne wskaźniki C++.
(1kB) OML: zestaw metod do tworzenia, usuwania, modyfikacji, tworzenia referencji , obsługi związków, itp. Identyczne traktowanie trwałych i tymczasowych obiektów (ale zapytania i transakcje stosuje się tylko do obiektów trwałych).
(1kB) OML: zestaw metod do obsługi kolekcji (zbiorów, wielo-zbiorów, list, tablic), dość niskiego poziomu w porównaniu z językami zapytań
(1kB) Luźne powiązanie OQL z C++ (takie samo jak SQL z językiem programowania); zapytania są traktowane jako ciągi znaków w programie C++, ze wszystkimi znanymi wadami tego rozwiązania (impedance mismatch)

2. Co to jest “niezgodność impedancji”?

Zespół chorobowo-paranoidalny powstający w wyniku eklektycznego, formalnego połaczenia języka zapytań z językiem programowania, np. SQL+C. Świat komercyjny godzi się z tą paranoją; ba, uważa ją za “osiągnięcie” technologii relacyjnej.

Typowe objawy:
  • Niezgodność składni: programista ma do czynienia z dwoma stylami
  • Niezgodność paradygmatów języków i ich semantyki
  • Niezgodność pragmatyki użycia i stylu myślenia programisty
  • Niezgodność faz i mechanizmów wiązania (wczesne vs. późne)
  • Niezgodność przestrzeni nazw i reguł zakresu (m.in. trudności z rekursją)
  • Niezgodność schematów iteracyjnych
  • Niezgodność systemu typów (SQL nie podlega statycznej kontroli typów)
  • Niezgodność w zakresie traktowania cechy trwałości danych
  • Niezgodność w zakresie środków programowania ogólnego (generic)
  • Niezgodność w zakresie metod transmisji parametrów
Leczenie:
  • Odrzucenie fałszywych hura-optymistycznych komercyjnych stereotypów
  • Budowa pełnego języka programowania bezszwowo zintegrowanego z językiem zapytań
  • Budowa bramek z języka zapytań do języka programowania (a nie odwrotnie)
  • Mimo ideologicznych deklaracji, ODMG nie rusza tego problemu...





  • « poprzedni punkt   następny punkt »