Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

ODE Zapytania. Pętla for (1) Do obiektów będących instancjami klas możemy uzyskać dostęp za pomocą pętli for Zakres tej pętli to wszystkie obiekty klasy.

Podobne prezentacje


Prezentacja na temat: "ODE Zapytania. Pętla for (1) Do obiektów będących instancjami klas możemy uzyskać dostęp za pomocą pętli for Zakres tej pętli to wszystkie obiekty klasy."— Zapis prezentacji:

1 ODE Zapytania

2 Pętla for (1) Do obiektów będących instancjami klas możemy uzyskać dostęp za pomocą pętli for Zakres tej pętli to wszystkie obiekty klasy student znajdujące się w klastrze domyślnym, w domyślnej bazie danych. Powyższe zapytanie jest tożsame z: Baza danych może być jawnie wyspecyfikowana gdzie att jest wskaźnikiem na bazę danych for (ps in student) cout nazwisko wiek << endl; for (ps in student in database::default_db() ) {...} for (ps in student in att ) {...}

3 n Analogicznie możemy określić klaster, który ma być zakresem zapytania. Dotychczasowe przykłady odwoływały się do obiektów należących do jednej klasy (student). Pamiętamy jednak, że w klastrach możemy przechowywać obiekty różnych klas. Poniższe zapytanie wydobywa wszystkie obiekty znajdujące się w klastrze. W przypadku tego typu zapytań zmienna pętli musi być typu persistent void; n Po wykonaniu pętli zmienna pętli przyjmuje wartość null. Pętla for (2) persistent student *ps;... cluster Infor ("Informatyka", db) for (ps in student in Infor) {...} persistent void *pv;... cluster Infor ("Informatyka", db) for (pv in Infor) {...}

4 Klauzula suchthat Klauzula suchthat jest odpowiednikiem klauzuli where w systemach relacyjnych i służy do selekcji obiektów spełniających określone wyrażenie boolowskie. persistent student *ps;... for (ps in student) suchthat (ps->wiek > 26) {...}

5 Połączenia n Połączenia obiektów dwóch klas na podstawie wartości odpowiedniego atrybutu można wykonywać na dwa sposoby 1. lub (bardziej efektywnie) - za pomocą wykorzystania mechanizmu wielu zmiennych pętli 2. for (ps in student) for (pk in kierunek_studiow) {...} for (ps in student; pk in kierunek_studiow) {...}

6 Klauzula in all Użycie klauzuli in all zamiast in w pętli for powoduje, że pętla zwraca wskaźniki do obiektów klasy wyspecyfikowanej w zapytani, oraz dodatkowo do obiektów klas wywiedzionych z wyspecyfikowanej klasy poprzez dziedziczenie publiczne. wtedy pętla jest tożsama ze zbiorem pętli class student {...}; class starosta : public student {...}; class skarbnik : public student {...}; class przewodniczacy : public starosta {...}; persistent student *ps;... for (ps in all student) suchthat (ps->wiek > 26) {...} for (ps in student) suchthat (ps->wiek > 26) {...} for (ps in starosta) suchthat (ps->wiek > 26) {...} for (ps in skarbnik) suchthat (ps->wiek > 26) {...} for (ps in przewodniczacy) suchthat (ps->wiek > 26) {...}

7 Indeksy (1) n Używane tylko w przypadku klauzuli suchthat n Typy u hash u B-tree n Tylko specyficzne (proste) warunki n W przypadku warunków złożonych z kilku atrybutów, na których założone są indeksy wykorzystany będzie tylko jeden z nich n Ograniczenia u zakres indeksu zawsze jest ograniczony do obiektów klasy znajdujących się w jednym klastrze u tylko jeden index na danym atrybucie klasy w klastrze u BuiltIndex ostatnią operacją w transakcji u Przed założeniem należy sprawdzić czy już nie istnieje

8 Indeksy (2) n Tworzenie indeksów u BuiltIndex(const char *typeName, const char *memberName, database *db, int unique, Index_type) u BuiltIndex(const char *clusterName, const char *typeName, const char *memberName, database *db, int unique, Index_type) n Usuwanie indeksów u IndexDelete(const char *typeName, const char *memberName, database *db, int unique) u IndexDelete(const char *clusterName, const char *typeName, const char *memberName, database *db, int unique) n Istnienie indeksów u IndexType IndexExists(const char *typeName, const char *memberName, database *db, int unique) u IndexType IndexExists(const char *clusterName, const char *typeName, const char *memberName, database *db, int unique)


Pobierz ppt "ODE Zapytania. Pętla for (1) Do obiektów będących instancjami klas możemy uzyskać dostęp za pomocą pętli for Zakres tej pętli to wszystkie obiekty klasy."

Podobne prezentacje


Reklamy Google