MOMIS Query Manager

Analisi e Sviluppi Futuri


Analisi dello stato attuale del Query-Manager

Il query-manager richiede due funzionalita' di base :

  1. Definizione del Query-Plan
  2. Esecuzione della Query
Finora e' stato implementato quanto presentato al punto 1, ovvero la preparazione della basic-query per l'esecuzione e l'individuazione del piano di accesso da associarle. In questa fase manca la gestione della clausola WHERE di uno statement SQL,per ora vengono gestiti solo gli attributi della clausola SELECT.
Resta ancora da implementare la seconda fase, ovvero l'esecuzione della query.

Esecuzione della Query

L'esecuzione della query prevede l'utilizzo del Query-Plan, generato nella fase precedente, per poter comporre i risultati ottenuti dalle sottoquery, presentando cosi' all' utente una risposta integrata.
Tale fase prevede che siano eseguiti in stretta successione tre passi :

  1. Esecuzione delle Local Query
    Ogni Local Query generata deve essere inviata alla sorgente ed il risultato ottenuto deve essere memorizzato in una relazione temporanea.
    L' obiettivo fondamentale di questo passo e' la traduzione degli attributi locali restituiti dalle sorgenti in attributi globali. Per effettuare questa trasformazione, il Query-Manager dovra' eseguire le indicazioni contenute in UQPlan con un procedimento inverso rispetto a quello seguito nella fase di Query Plan Definition .
  2. Esecuzione delle Basic Query
    Una Basic Query viene eseguita in due passi :
    • Ricostruzione della Base Extention
      Le indicazioni su come fondere i risultati restituiti dalle classi locali sono contenute negli elementi PEClassJoin del Query-Plan. Le istanze di questa classe indicano quali sono gli attributi da utilizzare per effettuare il join fra due classi locali.
    • Unione delle Base Extention
      Anche in questa fase e' il Query-Plan che, attraverso gli elementi PEBaseExtJoin, indica come fondere le Base Extention usando una semplice unione delle istanze o, in alternativa, un outerjoin.
  3. Esecuzione della Global Query
    Al momento non e' stato ancora implementato nulla.
Ipotesi di Sviluppo