[Erp5-users] ERP5 questions

jp at nexedi.com jp at nexedi.com
Mon Apr 1 17:22:49 CEST 2013


Hi,

> 1.- Which is the Object-Relational mapping used between ZODB and MySQL to pass
> objects to relationships and how it works?

See http://www.neoppod.org/ whch also includes some notes about the different ways to use MySQL as a backend to ZODB.

BTW, the relation between  ZODB and MySQL is not "ORM" but serialization of objects.

I believe that ORM does not work and can not work in any dynamic language. If you look at projects based on ORM, you will find out many issues to handle upgrades or polymorphism. Such issues do not exist with a serialization approach as in ZODB. And since ZODB is a log database, there is no risk to ever lose any data after an upgrade or a change in the code of ERP5 classes. This is something which is very difficult to achieve with an ORM.

You can read more:
http://en.wikipedia.org/wiki/Object-relational_impedance_mismatch
http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx

The ORM limitations are an old discussion, which started a the time of the gang of five. In a sense, the reasons why ORM can not work have been well known for 30 years.

> 2.- How do Zobd and MySQL communicate?

Objects are serialized by ZODB and stored in the relevant backend: MariaDB or SQLLite if you use NEO. But it could be any other backend: filesystem, haildb, pgsql, oracle, etc.

In addition to server as a backend to ZODB, MySQL is also used as a data warehouse. All ZODB objects are indexed in MySQL in the same way as one would build a datawarehouse from heterogenous data sources which are then normalized. This actually opens ERP5 to many data analysis applications (a.k.a. Big Data if you want to use the buzzwords), such as search engine.

> 3.- Why is MariaDB preferable to use in ERP5 instead of MySQL?

Because MariaDB is still developped by Michael Widenius.

Regards,

JPS.


More information about the Erp5-users mailing list