An information system may be modeled at any of four levels: conceptual, logical,
physical, and external. In principle, it may also be queried at any of these levels. In
practice however, although conceptual modeling is widely used, it is comparatively
rare for systems to be queried at the conceptual level. Instead, queries are typically
formulated either at the external level using forms, at the logical level using a language
such as SQL, or at the physical level using a programming language. This section
briefly indicates some problems with these lower level approaches and explains how
these problems are avoided by conceptual query languages, especially those based on
ORM.