There are essentially two kinds of Object Persistance available today. There are
native object databases which do not use relational databases at all. These systems
are pure in a OO sense, but they suffer from a lack of compatible tools such as
reporting engines. They also have various flavours of query systems in order to query
the object database. Then there are object relational mappers, which try to map
a OO structure to a relational structure. The object relational mappers tend to be
complex, as they need to be able to be flexible enough to handle any OO structure in
a relational context. Relational tables may be able to support this in theory, but
often it increases the complexity of the database.
Sysmod is neither a true object database or a true object relational mapper. In
simple terms we have accepted certain limitations to our object model in order to
achieve an easy to use system. The most important benefit of the system is that our
objects maintain a simple one to one relationship between database tables and
data objects. This is not so say you cannot relate tables from one to another just
like a relational database. What it does mean is that you do not have the flexibility
of object relational mappers.
This is in effect a trade off. We have traded the flexibility of true object strucutres
for the ease of intergration with a relational database. There is no need to manually
map between data and objects, as this is all handled automatically. There is no need to
code data persistance, and there is no need to manually create a database.
Sysmod makes use of a single model file which is XML based. From this model all the
Java code and the database schema is derrived. Sysmod continues to be a core technology
in our professional development shop through its simplicity and effectivness.