Sto costruendo un modello del linguaggio di query SQL.
Non tenta affatto di astrarre SQL - invece, prova a modellarlo direttamente, quindi ha oggetti modello denominati Query, Tabella, Colonna, Variabile, Espressione, Join, ecc.
Confrontalo con un object / relational mapper, che cerca di astrarre SQL e DBMS in favore di alcune nuove / diverse e (solitamente) astrazioni di livello superiore.
La mia domanda riguarda la terminologia per descrivere quello che sto scrivendo: generalmente, un modello è sempre un'astrazione? L'astrazione è sempre un modello? Sono anche più o meno?
In particolare, un modello di SQL è anche un'astrazione, o è corretto descriverlo come solo un modello?