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.

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

C++ wykład 2 ( ) Klasy i obiekty.
Język C/C++ Funkcje.
Programowanie obiektowe
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Deklaracje i definicje klas w C++ Składowe, pola, metody Konstruktory
Klasa listy jednokierunkowej Przekazywanie parametrów do funkcji
Programowanie obiektowe
Standardowa biblioteka języka C++
Programowanie obiektowe
1 Dzisiejszy wykład Klasa string wersja prosta wersja ze zliczaniem odwołań Wyjątki Specyfikator volatile.
Projektowanie bazy danych
Klasy i obiekty.
Wzorce.
Prowadzący: mgr inż. Elżbieta Majka
Static, const, volatile.
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Implementacja ekstensji klasy
Szablony (wzorce) Przykład 1: Szablon klasy -
OOPC++ - wstêp, klasy1 Klasy Do struktury można dołączyć operacje działające na jej polach. struct date { int day, month, year; void set (int d, int m,
ODE Triggery. Wstęp n Triggery są trójką zdarzenie-warunek-akcja (event-condition- action). n Zdarzenia mogą być proste lub złożone, co zostanie omówione.
ODE Informacje wstępne. Pojęcia podstawowe n Obiektowa baza danych u język komunikacji u ziarnistość obiektów u identyfikacja obiektów n Transakcja -
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
Obiektowe metody projektowania systemów Command Pattern.
Struktury.
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
Wykład 1: Wskaźniki Podstawy programowania Programowanie w C
Podstawy programowania PP – LAB5 Wojciech Pieprzyca.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Programowanie obiektowe III rok EiT
Podstawy informatyki 2013/2014
Podstawy programowania
Podstawy programowania II
Procedury i funkcje.
Podstawy programowania
Programowanie obiektowe III rok EiT
Jerzy F. Kotowski1 Informatyka I Wykład 14 DEKLARATORY.
Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład IX.
Inicjalizacja i sprzątanie
Programowanie obiektowe
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Programowanie obiektowe 2013/2014
Prasek Aneta, Skiba Katarzyna. Funkcje stałe const to takie funkcje, które nie mogą modyfikować stanu obiektu. Oznacza to, że funkcja stała nie może zmieniać.
Kurs języka C++ – wykład 9 ( )
PL/SQL – dalsza wędrówka
Programowanie w języku C++
Programowanie strukturalne i obiektowe C++
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
K URS JĘZYKA C++ – WYKŁAD 1 ( ) Łagodne wprowadzenie do języka C++
DOM Ewa Dukała Piotr Muszyński. DOM DocumentBuilder Factory Document Builder XML Data object obiectobject DocumentDOM.
Programowanie obiektowe Wykład 9 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/15 Dariusz Wardowski.
Pętle Zajęcia 6.
Paweł Starzyk Obiektowe metody projektowania systemów
Optymalna konfiguracja Microsoft SQL Server 2014
Wykład 3 Prowadzący: dr Paweł Drozda. Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia –
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Statyczna kontrola typów w SBQL Rafał Hryniów Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Podstawy informatyki Operatory rzutowania Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały.
Asocjacja,Kompozycja,Agregacja
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Typy wyliczeniowe, kolekcje
Indeksy.
Wprowadzenie do programowania obiektowego
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
PGO Przeciążanie metod i konstruktorów
Zapis prezentacji:

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 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 ) {...}

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) {...}

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) {...}

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) {...}

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) {...}

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

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)