> On Apr 9, 2018, at 6:46 PM, Jim Crate via 4D_Tech <[email protected]>
> wrote:
> On Apr 9, 2018, at 10:06 AM, Tim Nevels via 4D_Tech <[email protected]>
> wrote:
>> What is ORDA? It is not a “a historical sociopolitical and military
>> structure of Mongol Eurasia”. This is a new term that 4D has created. It
>> stands for Object Relational Database Access.
> The concept of an ORM is not new, and actual implementations date to the
> early 90s (the Enterprise Object Framework (EOF) from Next is the first one
> I’m aware of, although I’m not sure how the query language worked, since I’ve
> never used it beyond a WebObjects class in the late 90s.
> Considering that query language like this has been implemented in other ORMs
> for decades, primarily on top of SQL databases, it’s likely that 4D is
> actually using the 4D SQL engine underneath the new query language. The SQL
> implementation already queries the database without changing the (one)
> current selection, and in your example above, $entSel is not a “current
> selection” (they referred to having as many “selections” as you want), it is
> a collection of entity objects.
Hi Jim,
Regarding ORM vs. ORDA and its implementation:
ORDA does not access data through the SQL engine. It talks directly to the
database engine. This is key to ORDA.
ORMs like EOF* or its descendant CoreData*, are translation layers on top of
some datastore – which is usually a SQL database but could even be an xml file.
The ORM is responsible for translating queries, talking directly to the
datastore, loading data into memory as needed, presenting the result as an
object graph, and writing changes back to the datastore. As an abstraction
layer, the ORM is still only making SQL calls to do its operations. As an
abstraction layer, it adds overhead to the system and has fallen-out of favor
with a class of developer that wants the greatest performance or finds the
Object/Relational impedance mismatch to be a problem, preferring to use SQL
directly.
ORDA is native to the 4D database engine. There is no translation layer on top
of the database engine. The process of building the engine this way has been
underway for the majority of this decade. This level of performance and memory
optimization will mean it is important for the 4D community to be clear that
ORDA does not carry the baggage that typical ORM implementations do.
4D’s advantage has always been integration and this case is no different. The
entire environment: UI, web-server, language and more are being built to take
advantage of high performance data access though an object interface that
includes effortless relations between objects.
Sometimes it is worth waiting and getting features implemented with fewer
tradeoffs, and more advantages.
my very best
-Brian
* I am most familiar with these Apple/Next technologies, less so with other
ORM's
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ: http://lists.4d.com/faqnug.html
Archive: http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub: mailto:[email protected]
**********************************************************************