DataModel is an ORM system integrated into Jet . The definition of ORM says that it provides data conversion between a relational database and an object-oriented application. That definition is accurate, but I would add that it really makes the job a lot easier and especially eliminates the work that is really annoying. Jet DataModel is far from providing data conversion between objects and the database. Although this is a basic and important function, it can do much more:
- Definition and data modeling and the dedicated tools within Jet Studio
- Generating forms based on data models. This is not a matter of the Jet DataModel, but of the forms subsystem, but in practice both are used together.
- Ability to directly create REST APIs on top of data models.
- So far, the backend is only integrated for MySQL / MariaDB and SQLit, but experimentally there was also a backend for Oracle and MS SQL - it is possible to create a backend for any modern relational database (currently, other backends are not a public part of Jet, but this possibility has been practically verified).
- A properly designed and developed application can run on different relational databases.
- As already said, it is not necessary to design data models manually, but you can use the dedicated tool that is part of Jet Studio. This makes work very efficient.
- If you are going to create modular applications , Jet Studio offers the possibility to generate an administration module for data management directly above the data model (viewing, adding, editing and deleting data, including logging operations and checking permissions). So you can have the basis of a certain functionality ready in a few minutes - literally.
- Easier and very effective creation of queries.
And what Jet DataModel is not? It is not an ORM that tries to cover all the features and capabilities of all relational databases. That's not the case. As I keep saying, a relational database is a great servant but a cruel master for an online application. Working with the database is often a bottleneck and a source of problems. Therefore, Jet DataModel is designed in such a way that it is possible to work with the data models created in it quickly and efficiently. In order to minimize the number of questions as much as possible (mainly those during reading) and in general to make everything transparent and according to the given principle. Therefore, the DataModel does not really contain the abstraction of all possible finesse and "features" of relational databases, and this is the intention.
Data models must be designed according to a certain principle, which is actually completely logical and transparent.
And last but not least, when using Jet DataModel, the work does not begin with the creation of tables, but with the creation of classes, their properties and mutual relationships, and only on the basis of this definition are the database tables created in the selected relational database system.
It can also be said that Jet DataModel adopts a bit of NoSQL philosophy. Precisely because it does not look at data primarily as tables, but as data entities represented by classes. Each such entity has a certain form / structure and there are certain relationships between them and they are always represented by classes. That is the primary view. The fact that it is stored in tables is a "thing in the background", but no longer the alpha and omega.
For some, this may be a slightly different way of thinking, but in reality it is nothing revolutionary and everything is based on my many years of experience. I've been using Jet DataModel for many years (during which I've also gradually improved it), and I can happily say that it's always worked well for me. He always made my job easy and I didn't encounter any real limitations. I believe that it will serve you as well. However, just the fact that you "click" on Modley (see Jet Studio) and immediately have a large part of the routine work solved is really very nice.
Now please familiarize yourself with the modeling principle in Jet DataModel.