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 »

10. Przykład Select From Where

(5kB)

select para( student: x.nazwisko,
              profesor: z.nazwisko ) 
from         Studenci as x, 
        x.uczęszcza_na as y, 
        y.jest_wykładany_przez as z
where z.stopień_naukowy = "profesor"

Zależne złączenie znacznie upraszcza zapytania (w porównaniu do SQL). Niestety, ODMG dopuszcza stosowanie tego operatora wyłącznie w kontekście zdania select, co wprowadza nieortogonalność i redukuje możliwości wyszukiwawcze operatora.
11. Operator grupowania

Kalka z SQL o bardzo kontrowersyjnej, mętnej składni i semantyce.

<zapytanie select> group by <atrybuty dzielące> [ having <predykat> ]

Semantyka: Dla każdego elementu z wyniku <zapytania select> ustalana jest wartość wyrażenia <atrybuty dzielace>. Następnie wynik jest dzielony na grupy zgodnie z identyczną wartością zwracaną przez <atrybuty dzielace>. <predykat> może odrzucić niektóre z tych grup. Wyrażenie po select jest obliczane dla każdej z grup.

select departament, 
        śr_zarobków:avg(select x.p.zarobek from partition as x) 
from Pracownicy as p 
group by departament: p.nr_depart 
having avg( select x.p.zarobek from partition as x) > 3000 
  • Wyjaśnienie semantyki tego operatora jest mętne i niespójne (nie da się zrozumieć).
  • Obecność frazy group_by zmienia semantykę poprzedzającej ją frazy select, co jest nie do przyjęcia
  • Reguły migracji wolnych zmiennych do i od wyrażenia < atrybuty dzielące> przeczą zasadzie modularności semantyki.
  • Obecność specjalnego słowa kluczowego partition spowoduje trudności z zagnieżdżaniem zapytań



« poprzedni punkt   następny punkt »