MOMIS Query Manager
Esempi di traduzione della clausola where
- select name, email
from University_Person
where ( pay > 10000 or title = "ordinario" )
and rank = "professor "
Durante la fase di valutazione del Query-Plan vengono selezionate dal Query Manager le classi
locali :
- SU.Research_Staff(name,dept,pay,rank,email,relation,section)
- SCS.Professor(name,dept,faculty,rank,title)
Individuate le classi locali da interrogare, il metodo createAssembler()
costruisce la eventuale clausola where della queryAssembler,in questo caso
la clausola
( pay >10000 ) or ( title = associato )
non e'
compresa interamente in nessuna delle due classi,quindi diventa
il predicato di selezione della queryAssembler.
Per poter eseguire questa query sui risultati integrati e' necessario
che fra gli attributi dello schema integrato compaiano anche
pay e title, viene quindi aggiornata la Basic Query
iniziale:
select name, email, pay, title
from University_Person
where ( pay > 10000 ) or ( title = "ordinario" )
and rank = "professor"
La fase di traduzione della basic query, in
funzione delle due classi locali selezionate, origina
le seguenti local Query:
-
select first_name, last_name, e_mail, pay
from SU.Researc_Staff
where "professor" = "professor"
-
select name, title
from SCS.Professor
where rank = "professor"
- select year, rank
from University_Person
where name = "Maria Rossi"
and year < 25
Le classi individuate sono:
- SU.School_Member(name,faculty,year,rank)
- SCS.Student(name,faculty,year,rank,takes)
Non e' presente nessuna clausola da aggiungere alla query assembler.
Le query locali generate sono:
-
select year
from SU.School_Member
where first_name = "Maria"
and last_name = "Rossi"
and year < 25
-
select year, rank
from SCS.Student
where name = "Maria Rossi"
and year < 25
Nella prima query locale non compare l'attributo rank
in quanto nella classe SU.School_Member e' mappato
col valore di default "student".