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 »

4. Krótka charakterystyka OQL

Cele:
  • Interakcyjne zapytania (są wątpliwości, jest to język zbyt skomplikowany dla tego celu, KS)
  • Programowanie poprzez zanurzenie w C++, Smalltalk, Java,... (luźne zintegrowanie, loose coupling)
Bazuje na SQL?

Jest to mimikra mająca chyba na celu wytrącenie broni z ręki ideologom broniącym “intergalaktycznego” znaczenia SQL. Konsekwencją są bardzo kontrowersyjne decyzje syntaktyczne (za dużo lukru, zbyt duże syntaktyczne zlepki), KS.
Semantyka prawie całkowicie odchodzi od SQL:
(4kB)
  • Złożone obiekty
  • Tożsamość obiektów
  • Mocna kontrola typów
  • Klasy (dziedziczenie, przesłanianie)
  • Metody (pisane w jęz. programowania)
  • Hermetyzacja (ograniczona)
  • Nawigacje, wyrażenia ścieżkowe (path expressions)
  • Złączenia (joins) w wariancie nawigacyjnym
    (dependent joins)
  • Asocjacyjne powiązania



5. OQL - kilka przykładów

select x from Profesorowie as x 
where x.zarobek  > 5000 
(2kB) Dziedziczenie
select s.nazwisko, w.nazwa_wykładu 
from Studenci as s, s.jest_zapisany_na as w
(2kB) Zależne złączenie
Pracownicy.nazwisko
(2kB) Rezygnacja z lukru SQL (niestety, niekonsekwentna)
Kowalski.żona.adres.ulica
(2kB) Wyrażenia ścieżkowe (niestety, niekonsekwentne)
select max(select d.wiek from p.dzieci as d) 
from Pracownicy as p where p.nazwisko="Nowak"
(2kB) Ortogonalność (niestety, niekonsekwentna)
select x.nazwisko, x.zarobek_netto() 
from Pracownicy as p where p.nazwisko="Walesa"
(2kB) Wołanie metod



« poprzedni punkt   następny punkt »