> 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]
**********************************************************************

Reply via email to