INFO
Sylabus
Standard ODMG, część 5
1. Plan wykładu (część 5)
2. Swobodne kombinowanie operatorów
3. Całość zapytania w jednym kawałku
4. Nazwane zapytania
5. Binarne porównania i operatory
6. Selekcja atrybutu, przechodzenie wzdłuż związku
7. Kwantyfikatory
8. Operatory (funkcje) zagregowane
9. Zdanie Select From Where
10. Przykład Select From Where
11. Operator grupowania
12. Uporządkowanie, operatory na tablicach i listach
13. Operacje na zbiorach
14. Reguły zakresu
15. Podsumowanie OQL
Skorowidz
Wyście:
Wyklad XI. Wprowadzenie do standardu ODMG, część 5:
OQL (KURS SSR)
I II III IV V VI VII VIII IX X XI XII XIII XIV
« poprzedni punkt   następny punkt »

14. Reguły zakresu

Ustalają, w jakim zakresie obowiązuje pewna powołana zmienna (kiedy jej definicja przestaje obowiązywać) i jaki jest priorytet wiązania do zmiennych jeżeli ich nazwy są takie same.
Jest to kluczowy problem, szczególnie w sytuacji, kiedy pewien użytkownik może skorzystać z zapytania (lub definicji) skonstruowanego przez innego użytkownika, włączając to zapytanie jako składową większego zapytania.

Dlaczego jest to problem?

Może się zdarzyć, że po zagnieżdżeniu w większe zapytanie, zagnieżdżane zapytanie zmieni swoją semantykę. Może się także zdarzyć, że zagnieżdżone zapytanie zmieni semantykę kontekstu (większego zapytania).

Reguły zakresu dla języków programowania są oparte o regułę stosu, który dyscyplinuje kontekst, w którym obowiązują definicje/deklaracje pewnych nazw. Ta reguła musi także obowiązywać dla języków zapytań.

Propozycja ODMG w kilku miejscach łamie regułę stosu, np. definicje wewnątrz frazy from obowiązują wewnątrz frazy group by, która wprowadza definicje obowiązujące globalnie. ODMG w ogóle nie wspomina o regule stosu; zamiast tego wprowadza mętne i niespójne dywagacje, które pachną totalną niekompetencją w zakresie tego tematu.




15. Podsumowanie OQL

Zalety:
  • Umożliwia formułowanie zapytań dla złożonego modelu obiektowego
  • Posiada składnię i semantykę przypominającą SQL (zaleta dla pewnych ludzi)
  • Zakłada mocną kontrolę typu.
Wady:
  • Ograniczenia modelu obiektowego (brak możliwości deklarowania wielu interfejsów do tego samego obiektu)
  • Jest mało ortogonalny, bazuje na dużym zlepku syntaktycznym
  • Posiada bardzo nieprecyzyjną semantykę, szczególnie w zakresie deklaracji pomocniczych nazw i reguł zakresu
  • Jako skutek, ograniczenia w zakresie optymalizacji zapytań
  • Nie jest zintegrowany z konstrukcjami aktualizacyjnymi i abstrakcjami programistycznymi (perspektywa, funkcja, procedura, metoda)
  • Nie zajmuje się danymi nietrwałymi (nie spełnia warunku ortogonalnej trwałości)
  • Ma wadliwie skonstruowane dziedziny semantyczne (brak referencji)
  • Wykazuje naiwny, nieprecyzyjny stosunek do takich zagadnień jak wartości zerowe, unie, grupowanie, uporządkowanie, mocne typowanie, wielodziedziczenie, ekstensje, i innych.


« poprzedni punkt   następny punkt »