INFO
Sylabus
Standard ODMG, część 4
1. Plan wykładu
2. Co to jest język zapytań?
3. OQL -wstępne informacje
4. Krótka charakterystyka OQL
5. OQL - kilka przykładów
6. Wejście i wynik zapytań w OQL
7. Przykłady w OQL
8. Tworzenie obiektów
9. Co zwraca zapytanie?
10. Wyrażenia ścieżkowe
11. Predykaty, złączenia
12. Wartości zerowe
13. Wołanie metod
14. Polimorfizm, późne wiązanie, wskazanie klasy
Skorowidz
Wyście:
Wyklad X. Wprowadzenie do standardu ODMG, część 4:
OQL (KURS SSR)
I II III IV V VI VII VIII IX X XI XII XIII XIV
« poprzedni punkt   następny punkt »

11. Predykaty, złączenia (predicates, joins)

Podaj adresy dzieci osób żyjących na ulicy Blacharskiej, mających co najmniej dwoje dzieci. Interesują nas tylko dzieci żyjące w innym mieście niż rodzice.

select c.adres from Osoby as x,  x.dzieci as d 
where        x.adres.ulica = "Blacharska"         and 
        count (x.dzieci) >= 2                 and 
        d.adres.miasto != x.adres.miasto
Rozbudowany predykat
(1kB)
(8kB)

Mamy dwie kolekcje, Osoby i Kwiaty.
Podaj osoby, których nazwiska są nazwami kwiatów

select p from Osoby as p, Kwiaty as k 
where p.nazwisko = k.nazwa
Złączenie a la SQL
(1kB)


12. Wartości zerowe (null values)

Rezultat dostępu do własności/obiektu posiadającego wartość null jest UNDEFINED.

Reguły przetwarzania UNDEFINED:
(1kB) Operator . lub -> działający na UNDEFINED zwraca UNDEFINED
(1kB) Porównanie UNDEFINED z czymkolwiek zwraca FALSE
(1kB)
Dwie funkcje:
is_undefined(UNDEFINED) = TRUE
is_defined(UNDEFINED) = FALSE
(1kB) Dowolna inna operacja na UNDEFINED powoduje błąd wykonania.</td>
Podaj osoby, w których adresie brakuje miasta:
select nkmpl from Osoba as nkmpl 
where is_undefined( nkmpl.adres.miasto )
KS: Naiwne podejście do poważnego problemu wartości zerowych. ODMG modyfikuje tu nieco paranoiczne rozwiązania przyjęte w SQL (patrz artykuły Ch. Date), ale jest to leczenie bólu zęba przy pomocy herbatki ziołowej.


« poprzedni punkt   następny punkt »