We talked about this a bit at the TurboGears Jam a couple of weeks
ago.  Really interesting stuff.

When we talked about it John raised a good point which I think is
worth making here.

One issue to consider is the speed of (de)serialization of complex
objects.   If you have huge multi-megabyte objects you can get
significant performance gains with an OODB if it is well optimized.
To save the same object to a relational database your ORM is going to
have to do millions of little type conversions, and that can be
expensive.

ORM's give you flexibility in how you query your data, and are
generally faster at cross-object queries than their Object Database
counterparts.   Generally this is enough to keep me using Relational
Databases.

But even though OODB's haven't caught on the way many had hoped, they
can still be the right choice for a variety of applications --
particularly when you have a well understood picture of how your data
is going to be used.

--Mark Ramm

On 1/28/07, John M Camara <[EMAIL PROTECTED]> wrote:
>
>
>
> On Jan 28, 12:31 pm, John J Lee <[EMAIL PROTECTED]> wrote:
> > John didn't offer any suggestion as to why he thinks OODBMSes are more
> > applicable to "science/engineering applications" than business
> > applications.  Certainly "science/engineering applications" is quite a
> > diverse set of systems.  What did you have in mind, John?
> >
>
> Just a couple of other comments before I provide an answer to this
> question.  The reason why I brought up OO databases was the fact that
> Leandro seam to be struggling with both SO and SA and some of the
> comments he made were counter that of the experiences that others on
> this list have offered.  The reasons he gave for going back to SO are
> the very same reasons why people are switching to SA.
>
> Now at the time I brought up OO databases I had not seen his code so I
> wasn't sure if he had an issues with SA due to education or perhaps
> possibly it was an issue due to not selecting the right type of
> database.  Since one of his issues that he mentioned was in handling
> inheritance I figure I would mention OO databases as they naturally
> handle inheritance.
>
> Leandro has posted a link to his code which I just took a look at.  It
> appears to be written in Spanish which makes it a little challenging
> for myself to completely comprehend it as I only know English.  It
> does appear that for his application that a relational database would
> be fine.  I would like to understand why he had issues with both SO
> and SA but it would take me far too long to translate all the names in
> his code to English so I can make better sense of the code.
>
> Any way back to your question.  I believe the right choice of database
> type mostly boils down to access patterns.  Access patterns are not
> the only issues but tend to be the most important factor.  By access
> patterns I mean how an applications will need to access or query the
> data in the database.
>
> In a situation where you have classes that don't have any
> relationships and you need to be able to search on all attributes on
> each class you have an application that is ideal for a relational
> database.  You just create a table to each class and the fields for
> each table will just match the attributes of the classes.
>
> On the other hand , if you have a situation where all your classes
> have complex relationships between them and the query needs are only
> related to the relationships themselves you have an ideal application
> for an OO database.
>
> The reality is that almost no worth while applications falls into one
> of these situations but somewhere in between them.  Those that fit
> closer to the first example are those who should use a relational DB
> and those closer to the second one should use an OO DB.  Those
> applications that fall in the middle will likely benefit from using
> both database types.
>
> The reason why I say science/engineering applications are better
> suited for OO databases is that they usually have complex
> relationships between their classes and their is very little need to
> query on attributes other than those used for their relationships.
> Business applications usually require querying on a large percentage
> of their attributes and thus better suited for relation DBs.  Like I
> said in an early post these are just stereotypes as some business apps
> are better suited using an OO DB and likewise some science apps are
> better suited for relational DB.
>
> Hopefully this brief explanations clears things up a little. To give
> an explanation that covers this topic fully would likely require
> coming up with 2 examples (one good for OO and one good for
> relational) and then code each one using both database types and thus
> create 4 applications.  Once this is done a comparison of the 2
> applications for each example could be done.  This would clearly show
> the costs that are involved with selecting the wrong type of database
> for the job.  Unfortunately I just don't have the free time to do
> this.
>
> John
>
>
> >
>


-- 
Mark Ramm-Christensen
email: mark at compoundthinking dot com
blog: www.compoundthinking.com/blog

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to