-1

I'm building a model of the SQL query language.

It doesn't attempt to abstract SQL at all - instead, it tries to model it directly, so it has model objects named Query, Table, Column, Variable, Expression, Join, etc.

Contrast this with an object/relational mapper, which tries to abstract away SQL and the DBMS in favor of some new/different and (usually) higher-level abstractions.

My question is regarding the terminology to describe what I'm writing: generally, is a model always an abstraction? Is an abstraction always a model? Are they synonymous, more or less?

Specifically, is a model of SQL also an abstraction, or is it correct to describe it as just a model?

gnat
  • 20,543
  • 29
  • 115
  • 306
mindplay.dk
  • 1,707

1 Answers1

2

This is highly philosophical, but:

A model is definitely an abstraction if it is trying to represent real-world entities, in which case, of course you cannot have cars, trees, houses etc. living inside the computer, so obviously, you are abstracting.

But if the model is not trying to represent a real-world entity, and instead it is a one-to-one mapping to already abstract entities, then I think it can safely be called a model, without the need to add the "abstraction" part.

However, the reasons to go one way or the other are trifling.

Mike Nakis
  • 32,803