It is one of the most important features of Lava that it neither needs "embedded SQL" nor any other special expressive means for database or transaction management. Lava is based on (bounded) quantifier logic and provides finite sets of objects, quantifiers exists, foreach, logical conjunctions and, or, not, xor, if-then-else, and a set construction expression select, that roughly corresponds to the SQL "select" expression. These can be used to express object and set queries and data manipulation algorithms, and these expressive means are independent of the persistent or transient nature of the underlying data.
The where clause of the quantifiers and the select expression corresponds roughly to the "where" clause of the SQL "select" construct. We shall need further clauses corresponding to the various clauses of "select" in SQL (for further study).
A database, including external SQL or object-oriented databases, appears in Lava as a special (persistent) component object. The attach construct is used to "open" it, which means to make it accessible through a specific interface. Subsequently the database may be used in the same way as any other Lava object.
See also