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 »

4. Nazwane zapytania

define id(x1,x2, ..,xn) as e(x1,x2, ..,xn)
delete definition id
define wiek(x) as
        select osob.wiek from Osoba as osob
        where osob.nazwisko = x
delete definition wiek
define Kowalscy as
        select x from Osoba as x
        where x.nazwisko = “Kowalski”
select k.imię, wiek(k) 
from Kowalscy as k
(2kB) Definicja obowiązuje i jest przechowywana jako trwała dana od momentu kiedy użytkownik ją wprowadził.
(2kB) Definicja realizuje własność określaną zwykle jako perspektywa (view).

Wątpliwości:
  • Czy definicja jest makro-definicją, czy też definicją procedury funkcyjnej?
  • Czy dopuszczalna jest rekursja? Jaka jest metoda przekazywania parametrów?
  • Czy parametr może być dowolnym zapytaniem, czy też jest prostą wartością?
  • W jakim środowisku jest przechowywana ta definicja? Wirtualne atrybuty?
  • Czy jest dostępna dla wszystkich użytkowników? Problem zaśmiecenia!
  • Dlaczego definicja nie podlega obowiązkowej specyfikacji typów?
  • Czy definicja ma samodzielne znaczenie pojęciowe? Aktualizacja perspektyw?



5. Binarne porównania i operatory

Operatory arytmetyczne na liczbach integer +, -, *, /, mod
Operatory arytmetyczne na liczbach float +. -, *, /
Operatory porównania =, !=, <, <=, >, >=
Operatory boolowskie and, or
Operatory porównania znaków i stringów || (+), c in s, s[i], s[low;up], like
Porównanie obiektów =, !=

count(Osoby) - count( Studenci)
‘przyjemny ciąg znaków’ like ‘%jemny%znak?w’
Wyrażenie zwraca true
(3kB)
‘przyjemny ciąg znaków’[5;15]
Zwraca string
‘emny ciąg z’
Jan = element(select s from Studenci 
                where x.imię = “Jan” )



« poprzedni punkt   następny punkt »