I'm wondering why is ORM so popular and everybody is using ORM implementations of JDO and JDA specifications, instead of using object databases that implements these specifications as well. The performance is much better using Object database.
objectdb (JDO, JPA) db4o (JDO)
Am I right if I say that it is because developers need to use both object model and relational model in their applications ?
What about ORDBMs ? Is there any ORDBM (which worths a try) around or can Object Relational Mapping together with relational database be consid开发者_StackOverflowered ORDBM ?
The main reason why people use an RDBMS with an OR Mapper rather than an object database is that RDBMS are deeply entrenched, well understood and well supported by everyone. If you use an object database you'll have problems
- finding people to support it
- using your existing tools for reporting, backups, etc.
- having other applications access the data
There's probably also still a lot of doubts (whether justified or not I can't say) whether object databases can really deliver the same or better performance and safety in a real word scenario.
In my experience, using an object database resulted in much less code, and a much cleaner project.
It made the difference between a 6-week learning curve for an RDBMS + ORM (LINQ-to-Entities) and a 1-week learning curve for object databases (for db4o).
The commonly used DBMSs you may be familiar with (e.g. Oracle, SQL Server, DB2, MySQL, PostGreSQL) are not relational. They are based on the SQL model, which is something quite different even though it resembles the relational model in some ways.
An Object-Relational DBMS means the same thing as a Relational DBMS. It's another way of saying that a RDBMS in principle will support any unlimited set of data types and relational operations upon them. O/R Mapping software really only addresses the fact that SQL DBMSs don't do that very well.
精彩评论